收藏 分销(赏)

北邮微原硬件实验报告.docx

上传人:Fis****915 文档编号:551794 上传时间:2023-12-06 格式:DOCX 页数:38 大小:702KB
下载 相关 举报
北邮微原硬件实验报告.docx_第1页
第1页 / 共38页
北邮微原硬件实验报告.docx_第2页
第2页 / 共38页
北邮微原硬件实验报告.docx_第3页
第3页 / 共38页
北邮微原硬件实验报告.docx_第4页
第4页 / 共38页
北邮微原硬件实验报告.docx_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、 微机原理硬件实验报告2015-2016学年第一学期微机原理硬件实验报告学院: 班级:学号:姓名: 序号:目录实验一 熟悉实验环境及IO的使用3一 实验目的3二 实验内容3三 实验过程31 实验原理32 流程图33 源代码44 子程序清单65 代码分析6四 实验总结6实验二 8255A并行接口应用7一 实验目的7二 实验内容7三 实验过程71 八位数码管位选规律72 六位数码管静态显示83 六位数码管动态显示114 扩展:显示键盘输入学号15四 实验总结21实验三 8253计数器/定时器的应用22一 实验目的22二 实验内容22三 实验过程221 蜂鸣器发音规律222 音乐发生器233 扩展:

2、小键盘弹琴功能32四 实验总结38实验一 熟悉实验环境及IO的使用一 实验目的1通过实验了解和熟悉实验台的结构,功能及使用方法。2通过实验掌握直接使用Debug的I、O命令来读写I/O端口。3学会Debug的使用及编写汇编程序。二 实验内容1学习使用Debug命令,并用I、O命令直接对端口进行读写操作。2用汇编语言编写跑马灯程序。实现功能:1)通过读入端口状态,选择工作模式(灯闪烁方式、速度等);2)通过输出端口控制灯的工作状态(低电平灯亮)。三 实验过程1 实验原理1在Debug下,用I是命令读输入端口的状态,即拨码开关的状态,用O命令向端口输出数据,通过LED发光管来查看。测试结果:1)使

3、用命令:I 0EEE0H读取开关状态,得出的结果为左低右高,即 S0 是低位,S7 是高位。2)实验命令:O 0EEE0H测试LED,改变输入的值可依次测试各个数码管是否正常。LED左边为高位,右边为低位。2分析以下程序段的作用MOV AH, 0BHINT 21HOR AL,ALJZ 0100INT 20H该段程序实现了检测键盘状态,在键盘有任意键输入时退出程序返回DOS的功能。该实现依赖于0BH号中断调用和巧妙使用程序入口返回地址直接返回。在DOS的DEBUG模式下,地址不用添加十六进制H标志。地址默认为16进制,多写了反而画蛇添足产生错误。普通数据为了区分需要添加H。2 流程图3 源代码D

4、ATA SEGMENTPORT EQU 0EEE0HDATA ENDSSTACK SEGMENT STACKSTACKDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STACKBEGIN: MOV AX,DATAMOV DS,AXMOV AL,07FH ;01111111MOV DX,PORT MOV SI,2 START: PUSH AX;入栈保存IN AL,DX;读取拨码开关状态MOV BL,AL;BL存储拨码开关状态POP AX;出栈恢复TEST BL,10H;00010000.判断左数第五个拨码开关的状态,;实现

5、灯型的变化JNZ TWO;ON状态为两个灯CMP SI,1;判断AL状态JZ CONT;SI等于1时AL有两位为0,应恢复为只有一位为0, MOV AH,ALROR AH,1OR AL,AHMOV SI,2;AL恢复为只有一位为0,SI变为2JMP CONTTWO:CMP SI,2JZ CONT;SI为2时只有AL只有1位为0,应对其变换MOV AH,ALROR AH,1AND AL,AH;AL有两位为0MOV SI,1CONT:OUT DX,ALTEST BL,08H;00001000.判断第四个拨码开关的状态,实现暂停JNZ START;ON状态实现暂停TEST BL,02H;000000

6、10.判断第二个拨码开关的状态,;实现速度的变化JNZ HIGHSP;ON状态实现高速MOV BP,0200H;低速状态时延JMP MOVEHIGHSP:MOV BP,0100H;高速状态时延MOVE:CALL DELAYTEST BL,04H;判断第三个拨码开关的状态,实现方向的变化JNZ LEFT;ON状态为方向向左RIGHT:ROR AL,1;右移,以备点亮下一盏灯JMP EXITLEFT:ROL AL,1;左移,以备点亮下一盏灯EXIT:TEST BL,01H;判断第一个拨码开关的状态JZ START;OFF状态继续运行,ON状态实现退出MOV AL,0FFH;实现全灭 OUT DX,

7、 ALMOV AH,4CHINT 21HDELAYPROC MOV CX,BP;BP越大延时次数越多,速度越慢LOOP1:PUSH CXMOV CX,0FFFFHLOOP2:LOOP LOOP2POP CXLOOP LOOP1RETDELAYENDPCODEENDSEND BEGIN4 子程序清单1)子程序名:DELAY功能:实现延迟显示,即控制每个LED点亮持续一定时间;入口参数:BP,赋值给CX控制循环次数,从而实现速度的控制;出口参数:无;使用寄存器:CX,BP。5 代码分析1)通过读取拨码开关地址获得拨码开关状态,将该状态的值赋给BL,实现对灯型、暂停、速度、方向以及退出的控制。2)灯

8、型的控制:通过相应拨码开关的状态选择灯型。灯型一共有两种,第一种为每次亮一盏灯,此时控制输出的寄存器AL中的值只有一位为0,其余七位为1;第二种为每次亮两盏灯,此时控制输出的寄存器AL中的值两位为0,其余六位为1。使用寄存器SI表示当前寄存器AL中0的个数,当SI的值与控制灯型的信息不一致时,通过逻辑与/逻辑或的操作,修改AL的值。3)暂停的控制:通过相应拨码开关的状态判断是否执行暂停操作。当需要暂停时,控制输出的寄存器AL中的值保持不变,当不需要暂停时,控制输出的寄存器AL中的值循环左移/循环右移。4)速度的控制:通过相应拨码开关的状态判断速度的大小。在不同的状态下,对BP赋不同的值,BP作

9、为DELAY子程序的入口参数控制延时的时间从而实现速度的变化。BP越大,则外循环次数越多,所耗时间越长,每个LED点亮持续时间越久,即速度越慢。5)方向的控制:通过相应拨码开关的状态判断方向。在不同的状态下,对控制输出的寄存器AL中的值循环左移/循环右移,即可控制显示的方向。6)退出的控制:通过相应拨码开关的状态判断是否退出程序。四 实验总结虽然本次实验是第一次微原硬件实验,但是在此之前已经有了一定的软件编程基础,并且在VHDL实验中我们也曾编写过跑马灯实验,因而实验之前对实验原理及代码结构有初步的掌握。实验过程中我们按照讲义中的要求先对拨码开关及LED进行了测试,便捷了之后程序的编写。总而言

10、之,通过本次实验,我们对利用汇编语言对硬件进行编程有了一定的掌握,对后续实验的开展奠定了良好的基础。实验二 8255A并行接口应用一 实验目的1掌握8255A的功能及方式0、1的实现。2熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。3了解七段数码管显示数字的原理。4掌握同时显示多位数字的技术。二 实验内容1八段数码管的显示规律及数码管的位选规律。.2六位数码管静态显示。在数码管电路上静态地显示6位学号,当主机键盘按下任意键时,停止显示,返回DOS。3六位数码管动态显示。要求在数码管电路16位数码管上,动态显示字符串HELLO,当主机键盘按下任意键时结束。4扩展部分:完成扫描键

11、盘(PC口)输入自己的学号,并在数码管上显示。三 实验过程1 八位数码管位选规律在方式0(输入/输出)下,以A口为输出口,B口为输出口, A口接六个共阴极数码管的八位段码,高电平点亮数码管的某一段,B口接数码管的位选(即要使哪个数码管亮),高电平选中某一位数码管点亮。测试结果如下图:根据上述测试结果,不难得出0-9对应的编码,如下表:字形0123456789编码0EDH21H0F4H0F1H39H0D9H0DDH61H0FDH0F9H2 六位数码管静态显示2.1 实验原理1)电路6个数码管的同名阳极段已经复接,当段选寄存器寄存了一个字型编码之后,6个数码管都将显示出相同的数字。如果要使6个数码

12、管“同时”显示不同的数字,必须采用扫描显示的方法。2)通过选位寄存器选择某一位数码管,显示其数字(对应段值为1),然后关闭此数码管,再选择下一位数码管进行显示;如果在一秒钟内,每一位数码管都能显示30次以上,则人眼看到的是几位数码管同时在显示。实验证明,在扫描显示过程中,每一位显示延迟1ms是最佳选择。3)在本次实验中,采用行扫描方式,一次扫描6位数码管,并进行反复循环,使得每位数码管显示虽然存在间隔,但人眼仍为同时显示。每位数码管显示的时间即为显示延迟,在每一次扫面之后检测键盘状态,若有任意键输入,便退出返回DOS界面。2.2 流程图2.3 源代码DATA SEGMENTNUM DB 0F4

13、H,21H,0EDH,0DDH,39H,61H;学号后六位为210647DATA ENDS;-STACK SEGMENT STACK STACKDB 100 DUP(0)STACK ENDS;-CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTAT:MOV AL,10000000B;A,B,C口均以方式0输出MOV DX,0EE03H ;设置控制地址OUT DX,AL;送控制字到控制地址MOV AX,DATAMOV DS,AX ;设置段地址MOV ES,AXLOP1:XOR SI,SI ;SI清零MOV CX,06H ;循环6次,即一个周期6位数码管MO

14、V DX,0EE00H ;A口的地址赋给DX,A口接八位段码MOV BL,00000001B ;高电平即选中该位数码管点亮LOP2:MOV AL,NUMSI ;将需要显示的数字赋给ALOUT DX,AL ;送AL输出至A端口MOV AL,BL ;将控制哪一位亮的功能赋给ALINC DX;B口的地址赋给DX,B口接六位数码管OUT DX,AL;送AL输出至B端口,完成指定位显示指定数字DEC DX;重新将A口地址赋给DXROL BL,1 ;循环移位,控制下一位数码管亮INC SI;SI加1,使得下次显示中改变所显示的数字CALL DELAY ;延时,即每位数码管点亮的时间CALL KEY ;判断

15、是否有键盘输入LOOP LOP2 ;循环6次,6位数码管依次按要求点亮JMP LOP1;循环,重新于第一位开始点亮;- DELAY PROC NEAR ;延时程序,双重循环PUSH BX;BX入栈,保留BX寄存器中的数据PUSH CX;CX入栈,保留CX寄存器中的数据MOV BX,000BH ;BX重新赋值LOP3: MOV CX,00H ;CX重新赋值LOOP $;每循环一次,CX自减1,直至结果为0,即FF次DEC BX;BX减1JNZ LOP3 ;结果为0时停止,即循环11次POP CX;CX中数据恢复为入栈前的值POP BX;BX中数据恢复为入栈前的值RETDELAY ENDP;- K

16、EY PROC NEAR ;判断是否有键盘输入PUSH AX;AX入栈,保留BX寄存器中的数据MOV AH,0BH ;检查输入设备状态INT 21HOR AL,AL;无输入字符AL为00H,有输入为FFHJZ GOON ;全为0即为无输入,返回主程序MOV DX,0EE01HMOV AL,00HOUT DX,AL;完成B端口清零,即6位全灭MOV AH,4CH ;退出程序INT 21HGOON:POP AXRETKEY ENDP;- CODE ENDSEND STAT2.4 子程序清单1)子程序名:DELAY功能:实现延迟显示,即控制每个LED点亮持续一定时间;入口参数:无;出口参数:无;使用

17、寄存器:BX,CX,FR。2)子程序名:KEY功能:判断是否有键盘输入,若有则退出程序;入口参数:无;出口参数:无使用寄存器:AX,DX,FR。2.5 代码分析1)静态显示的过程可以分为六个状态,在每个状态中,只有一位数码管工作,显示对应数字信息。系统循环进行这六个状态,当速度合适时有静态显示六位数字的效果。2)在数据段中定义NUM,在NUM中存入待显示的“210647”六位数字,根据之前测试得其对应编码为0F4H,21H,0EDH,0DDH,39H和61H;CX表示循环次数;SI表示显示数字在NUM中的位置;BL控制数码管的工作状态。3)在每个状态中,将需要显示的信息赋值给AL,送至8位段码

18、的A口输出,然后将BL赋给AL,送至控制6位数码管的B口输出,从而使数码管在不同的位置显示数字信息。4)在每个状态结束时,对BL做循环移位,SI自加1,调用延时函数控制显示的速度。调用判断键盘输入函数,延时之后若无键盘输入,进入下一状态。如此循环完成6位数码管的显示。5)若循环一个周期仍无键盘输入,则回到第一个状态重新循环,直至有键盘输入。6)延时程序中,采用两层嵌套循环实现延时。对BX,CX采用入栈操作后重新赋值,BX赋初值为000BH,CX为00H,内循环为每循环一次,CX自减1,直至CX等于0,即内循环FFFFH次,外循环为每循环一次,BX减一,当BX为0时终止循环,即外循环0BH次,总

19、共实现FFFFH*0BH次时跳出循环,BX,CX恢复为原值后返回主程序,实现延时显示。7)判断有无键盘输入时,调用DOS命令,AH为0BH即为判断是否有键盘输入,无字符输入时AL为00H,与自身或操作之后结果仍全为0,返回主程序,若有字符输入时AL与自身或操作之后结果不为0,对B端口输出00H,即6位数码管全灭之后退出程序。3 六位数码管动态显示3.1 实验原理1)数码管动态显示“HELLO”字符串,相当于每次显示6位静态字符,每次显示一定时间间隔之后,显示另外6位静态字符。具体如下图所示:显示0.5sH显示0.5sHE显示0.5sHEL显示0.5sHELL显示0.5sHELLO显示0.5sH

20、ELLO显示0.5s2)每次显示静态字符串的核心代码与静态显示实验的代码相同,因而可以将静态显示中的程序封装为一个子程序直接使用。增加的功能为需要按一定时间间隔移位读取“HELLO”,程序中通过将其前加入六个空字符,作为码表存储,第一次读取为六个空字符,第二次为五个空字符和字符“H”,第三次为四个空字符和字符“HE”,依次类推,显示时依次往后读取即可。3)可以通过读取拨码开关输入的状态,控制延时的时间,从而实现速度快慢的变化以及实现暂停的功能。3.2 流程图3.3 源代码DATASEGMENTMESGDB 0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0 ;据显示规律“H

21、ELLO”对应码表为3DH,0DCH,8CH,8CH,0EDHDATAENDS ;-STACKSEGMENT STACK STACKDB 100 DUP(0)STACK ENDS ;-CODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STACK ;- MAIN PROC FARMOV AX,DATAMOV DS,AX;设置段地址MOV ES,AXMOV AL,80HMOV DX,0EE03H OUT DX,AL ;端口A,B,C均以方式0输出LOP6:MOV BX,OFFSET MESG;设置偏移量MOV CX,07H ;循环次数,对应7个状态LOP5:MOV DX,

22、0EEE0H ;拨码开关状态控制显示速度IN AL,DX;读拨码开关状态给ALINC AL;自加1,预防全0时不便延时AND AL,07H;取低三位的值XOR AH,AH;高八位清零MOV DX,AX ;DX表示显示速度LOPZ:CALL DISP ;调用静态显示函数DEC DX ;DX为拨码开关后三位状态,自减1JNZ LOPZ ;DX不为0时继续显示;DX越大同一状态显示时间越长,速度越慢INC BX ;自加1,BX指向下一状态LOOP LOP5 ;循环7次,实现滚动效果JMP LOP6 ;每次循环结束后回到第一个状态MAIN ENDP;-DISP PROC NEAR ;将静态显示封装为子

23、程序PUSH CX;入栈保护 PUSH DXPUSH AXMOV BP,000AH ;控制延时LOPX:XOR SI,SIMOV CX,06H ;循环6次,即依次点亮6位数码管MOV DX,0EE00HMOV AH,00000001B ;一次只亮一位LOP2:MOV AL,MESGBX+SI;需要显示的字符对应的码值赋给ALOUT DX,AL;完成段码输出MOV AL,AH ;控制第几个数码管工作INC DXOUT DX,AL ;完成位码输出DEC DXROL AH,1 ;下一个数码管工作INC SICALL DELAY ;调用延时函数实现每位数码管的延时显示CALL KEY ;调用判断键盘输

24、入状态的函数LOOP LOP2 ;如此循环直至数码管依次被点亮DEC BP;自减1JNZ LOPX ;BP不为0则继续循环,即显示的字符串不变POP AX;出栈恢复POP DXPOP CXRET DISP ENDP;- KEY PROC NEAR ;判断是否有键盘输入PUSH AX;入栈保护MOV AH,0BHINT 21H;DOS调用,将键盘输入信息赋给ALOR AL,ALJZ GOON ;若没有输入则继续工作MOV DX=0EE00HMOV AL,00H;若有输入则六个数码管均不工作OUT DX,ALMOV AH,4CH ;退出程序INT 21HGOON:POP AXRETKEY ENDP

25、 ;-DELAY PROC ;控制延时,两层循环PUSH AX;入栈保护PUSH CXMOV AX,000BH ;外循环0BH次LOPD: MOV CX,0HLOOP $ ;内循环FFFF次DEC AXJNZ LOPD POP CXPOP AX RETDELAY ENDP ;- CODE ENDSEND MAIN3.4 子程序清单1)子程序名:DELAY功能:实现延迟显示,即控制每个LED点亮持续一定时间;入口参数:无;出口参数:无;使用寄存器:AX,CX,FR。2)子程序名:KEY功能:判断是否有键盘输入,若有则退出程序;入口参数:无;出口参数:无;使用寄存器:AX,DX,FR。3)子程序名

26、:DISP功能:静态显示6位指定字符;入口参数:无;出口参数:无;使用寄存器:AX,CX,DX,SI,BP,FR。3.5 代码分析1)动态显示的过程可以分为七个状态,在每个状态中,静态显示六位数码管信息。系统循环进行这七个状态,当速度合适时有动态显示的效果。2)在数据段中定义MESG数组,依次存入“0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0”;CX表示循环次数,对应表中的七个状态;BX表示当前需要显示的状态,DX表示动态显示的速度。3)将静态显示的程序封装为子程序以供调用,在每个状态中调用子程序DISP实现六位数码管的静态显示,调用子程序DELAY实现延时,调用子程

27、序KEY判断键盘有无输入。4)每个状态结束时,BX加1,表示进入下一状态,如此循环完成数码管的动态显示。5)主程序中通过读取拨码开关状态,将其后三位赋给DX,并在子程序DISP返回时,自减实现延时。DX越大,循环时间越久,则对应的滚动速度越慢。6)若循环一个周期仍无键盘输入,则回到第一个状态重新循环,直至有键盘输入。4 扩展:显示键盘输入学号4.1 实验原理通过4*4键盘电路输入学号,其控制原理如下:1)通过地址为EE02的端口C读取键盘输入,其中PC4、PC5、PC6、PC7分别接行输入,PC3、PC2、PC1、PC0分别接列输入。此外,本次实验识别闭合键的方法为行扫描法,具体方法为使键盘某

28、一行线为低电平,其余为高电平,然后读取列值,如列值中有某位位低电平,则表明行列交叉点处的键被按下;否则扫描下行,直到扫完全部的行线为止。另外,在读取按键输入时需增添相应的防抖代码,以避免读取误差。2)基于上述方法,获得低电平的行列交叉点为按键输入,反馈其对应的数字至数码显示输出或执行相应的功能。4.2 流程图1)主程序流程图2)READ子程序4.3 源代码DATA SEGMENTID DB 6 DUP(0);4*4键盘ARRAY DB 11100111B,11101011B,11101101B,11101110BDB 11010111B,11011011B,11011101B,11011110

29、BDB 10110111B,10111011B,10111101B,10111110BDB 01110111B,01111011B,01111101B,01111110BKEY DB 0EDH,21H,0F4H,0F1H,39H ;数字04对应码表DB 0D9H,0DDH,61H,0FDH,0F9H ;数字59对应码表 DATA ENDS ;-STACK SEGMENT STACK STACKDB 100 DUP(0)STACK ENDS ;-CODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STACK ;- MAIN PROC FARMOV AX,DATAMOV D

30、S,AX;设置段地址MOV ES,AXMOV DX,0EE03H MOV AL,16H;C口PC3复位OUT DX,ALCLEAR:XOR DX,DX ;DX表示已显示/存储数字的个数MOV CX,6;循环次数,表示最多显示/存储的数字个数MOV AL,0XOR SI,SILOPC: MOV IDSI,AL ;将6位ID清零 INC SILOOP LOPCDELETE:NOPAGN1: CALL READ ;读入按键信息CMP AL,0FFH ;判断是否释放按键(防抖动)JNE AGN1 ;未释放则循环 CMP DX,0 ;当前没有显示数字时跳过删除操作JE NEXTDEC DX ;将存储的数

31、字减少一位MOV AL,0MOV SI,DXMOV IDSI,AL ;将显示的最后一位数字清零 NEXT:CALL DISP ;调用静态显示函数CALL READ ;调用读取键盘函数CMP AL,0FFH ;判断键盘是否有输入JE NEXT ;没有输入则循环保持原状;键盘有输入CLD ;设置字符串操作时DI自动加一MOV CX,16;循环次数,表示键盘16个按键MOV DI,OFFSET ARRAY REPNZ SCASB ;寻找输入的按键在键盘中的位置 MOV BX,OFFSET ARRAYSUB DI,BXDEC DI;DI表示输入按键的位置CMP DI,9 ;判断键入是否为数字JBE I

32、SNUM ;跳转到显示数字对应程序CMP DI,12;判断键入是否为清除键(C)JE CLEAR ;跳转到清除对应程序CMP DI,13 ;判断键入是否为删除键(D)JE DELETE;跳转到删除对应程序CMP DI,14;判断键入是否为退出键(E)JE EXIT ;跳转到退出对应程序JMP NEXT ISNUM:NOPAGN2: CALL READ ;读入按键信息CMP AL,0FFH ;判断是否释放按键(防抖动)JNE AGN2 ;未释放则循环 ;释放则进行对应操作MOV AL,KEYDIMOV SI,DXMOV IDSI,AL ;将输入数字储存起来INC DXCALL DISP;调用静态

33、显示函数CMP DX,7 ;判断是否已经显示6位数字JE CLEAR;若已经显示6位数字,则下一次输入时清零JMP NEXTEXIT:MOV AX,4C00H;退出程序INT 21HMAIN ENDP ;-READ PROC NEAR ;读取键盘输入PUSH DX;入栈保护MOV DX,0EE03H;A口、B口以及C口的高四位以方式0输出,;C口低四位以方式0输入MOV AL,81HOUT DX,ALMOV AL,00HMOV DX,0EE02HOUT DX,AL;C口高四位清零IN AL,DX ;读取列信息 MOV BL,AL;存储列信息;-MOV DX,0EE03H;A口、B口以及C口的低

34、四位以方式0输出;C口高四位以方式0输入MOV AL,88HOUT DX,ALMOV AL,00HMOV DX,0EE02HOUT DX,AL;C口低四位清零IN AL,DX ;读取行信息OR AL,BL ;行列相与得到输入信息,存在AL中POP DX;出栈恢复RET READ ENDP;-DISP PROC NEAR ;静态显示程序PUSH CX;入栈保护PUSH DXPUSH AXMOV BP,000FH;控制延时LOPP:XOR SI,SIMOV CX,06H;循环6次,即依次点亮6位数码管MOV DX,0EE00HMOV AH,00000001B;一次只亮一位LOPD:MOV AL,IDSI;需要显示的字符对应的码值赋给ALOUT DX,AL;完成段码输出MOV AL,AH ;控制第几个数码管工作INC DXOUT DX,AL ;完成位码输出DEC DXROL AH,1;下一个数码管工作INC SICALL DELAY ;调用延时函数实现每位数码管的延时显示LOOP LOPD;如此循环直至数码管依次被点亮DEC BP ;自减1JNZ LOPP ;BP不为0则继续循环,即显示的字符串不变POP AX ;出栈恢复POP DX

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服