北邮微原硬件实验报告.docx
《北邮微原硬件实验报告.docx》由会员分享,可在线阅读,更多相关《北邮微原硬件实验报告.docx(38页珍藏版)》请在咨信网上搜索。
微机原理硬件实验报告 2015-2016学年第一学期 微机原理硬件实验报告 学院: 班级: 学号: 姓名: 序号: 目录 实验一 熟悉实验环境及IO的使用 3 一 实验目的 3 二 实验内容 3 三 实验过程 3 1 实验原理 3 2 流程图 3 3 源代码 4 4 子程序清单 6 5 代码分析 6 四 实验总结 6 实验二 8255A并行接口应用 7 一 实验目的 7 二 实验内容 7 三 实验过程 7 1 八位数码管位选规律 7 2 六位数码管静态显示 8 3 六位数码管动态显示 11 4 扩展:显示键盘输入学号 15 四 实验总结 21 实验三 8253计数器/定时器的应用 22 一 实验目的 22 二 实验内容 22 三 实验过程 22 1 蜂鸣器发音规律 22 2 音乐发生器 23 3 扩展:小键盘弹琴功能 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) 使用命令:I 0EEE0H 读取开关状态,得出的结果为左低右高,即 S0 是低位,S7 是高位。 2) 实验命令:O 0EEE0H 测试LED,改变输入的值可依次测试各个数码管是否正常。LED左边为高位,右边为低位。 2 分析以下程序段的作用 MOV AH, 0BH INT 21H OR AL,AL JZ 0100 INT 20H 该段程序实现了检测键盘状态,在键盘有任意键输入时退出程序返回DOS的功能。该实现依赖于0BH号中断调用和巧妙使用程序入口返回地址直接返回。 在DOS的DEBUG模式下,地址不用添加十六进制H标志。地址默认为16进制,多写了反而画蛇添足产生错误。普通数据为了区分需要添加H。 2 流程图 3 源代码 DATA SEGMENT PORT EQU 0EEE0H DATA ENDS STACK SEGMENT STACK'STACK' DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX MOV AL,07FH ;01111111 MOV DX,PORT MOV SI,2 START: PUSH AX ;入栈保存 IN AL,DX ;读取拨码开关状态 MOV BL,AL ;BL存储拨码开关状态 POP AX ;出栈恢复 TEST BL,10H ;00010000.判断左数第五个拨码开关的状态, ;实现灯型的变化 JNZ TWO ;ON状态为两个灯 CMP SI,1 ;判断AL状态 JZ CONT ;SI等于1时AL有两位为0,应恢复为只有一位为0, MOV AH,AL ROR AH,1 OR AL,AH MOV SI,2 ;AL恢复为只有一位为0,SI变为2 JMP CONT TWO: CMP SI,2 JZ CONT ;SI为2时只有AL只有1位为0,应对其变换 MOV AH,AL ROR AH,1 AND AL,AH ;AL有两位为0 MOV SI,1 CONT: OUT DX,AL TEST BL,08H ;00001000.判断第四个拨码开关的状态,实现暂停 JNZ START ;ON状态实现暂停 TEST BL,02H ;00000010.判断第二个拨码开关的状态, ;实现速度的变化 JNZ HIGHSP ;ON状态实现高速 MOV BP,0200H ;低速状态时延 JMP MOVE HIGHSP:MOV BP,0100H ;高速状态时延 MOVE: CALL DELAY TEST BL,04H ;判断第三个拨码开关的状态,实现方向的变化 JNZ LEFT ;ON状态为方向向左 RIGHT: ROR AL,1 ;右移,以备点亮下一盏灯 JMP EXIT LEFT: ROL AL,1 ;左移,以备点亮下一盏灯 EXIT: TEST BL,01H ;判断第一个拨码开关的状态 JZ START ;OFF状态继续运行,ON状态实现退出 MOV AL,0FFH ;实现全灭 OUT DX, AL MOV AH,4CH INT 21H DELAY PROC MOV CX,BP ;BP越大延时次数越多,速度越慢 LOOP1: PUSH CX MOV CX,0FFFFH LOOP2: LOOP LOOP2 POP CX LOOP LOOP1 RET DELAY ENDP CODE ENDS END BEGIN 4 子程序清单 1)子程序名:DELAY 功能:实现延迟显示,即控制每个LED点亮持续一定时间; 入口参数:BP,赋值给CX控制循环次数,从而实现速度的控制; 出口参数:无; 使用寄存器:CX,BP。 5 代码分析 1) 通过读取拨码开关地址获得拨码开关状态,将该状态的值赋给BL,实现对灯型、暂停、速度、方向以及退出的控制。 2) 灯型的控制:通过相应拨码开关的状态选择灯型。灯型一共有两种,第一种为每次亮一盏灯,此时控制输出的寄存器AL中的值只有一位为0,其余七位为1;第二种为每次亮两盏灯,此时控制输出的寄存器AL中的值两位为0,其余六位为1。使用寄存器SI表示当前寄存器AL中0的个数,当SI的值与控制灯型的信息不一致时,通过逻辑与/逻辑或的操作,修改AL的值。 3) 暂停的控制:通过相应拨码开关的状态判断是否执行暂停操作。当需要暂停时,控制输出的寄存器AL中的值保持不变,当不需要暂停时,控制输出的寄存器AL中的值循环左移/循环右移。 4) 速度的控制:通过相应拨码开关的状态判断速度的大小。在不同的状态下,对BP赋不同的值,BP作为DELAY子程序的入口参数控制延时的时间从而实现速度的变化。BP越大,则外循环次数越多,所耗时间越长,每个LED点亮持续时间越久,即速度越慢。 5) 方向的控制:通过相应拨码开关的状态判断方向。在不同的状态下,对控制输出的寄存器AL中的值循环左移/循环右移,即可控制显示的方向。 6) 退出的控制:通过相应拨码开关的状态判断是否退出程序。 四 实验总结 虽然本次实验是第一次微原硬件实验,但是在此之前已经有了一定的软件编程基础,并且在VHDL实验中我们也曾编写过跑马灯实验,因而实验之前对实验原理及代码结构有初步的掌握。实验过程中我们按照讲义中的要求先对拨码开关及LED进行了测试,便捷了之后程序的编写。总而言之,通过本次实验,我们对利用汇编语言对硬件进行编程有了一定的掌握,对后续实验的开展奠定了良好的基础。 实验二 8255A并行接口应用 一 实验目的 1 掌握8255A的功能及方式0、1的实现。 2 熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。 3 了解七段数码管显示数字的原理。 4 掌握同时显示多位数字的技术。 二 实验内容 1 八段数码管的显示规律及数码管的位选规律。. 2 六位数码管静态显示。在数码管电路上静态地显示6位学号,当主机键盘按下任意键时,停止显示,返回DOS。 3 六位数码管动态显示。要求在数码管电路1-6位数码管上,动态显示字符串HELLO,当主机键盘按下任意键时结束。 4 扩展部分:完成扫描键盘(PC口)输入自己的学号,并在数码管上显示。 三 实验过程 1 八位数码管位选规律 在方式0(输入/输出)下,以A口为输出口,B口为输出口, A口接六个共阴极数码管的八位段码,高电平点亮数码管的某一段,B口接数码管的位选(即要使哪个数码管亮),高电平选中某一位数码管点亮。 测试结果如下图: 根据上述测试结果,不难得出0-9对应的编码,如下表: 字形 0 1 2 3 4 5 6 7 8 9 编码 0EDH 21H 0F4H 0F1H 39H 0D9H 0DDH 61H 0FDH 0F9H 2 六位数码管静态显示 2.1 实验原理 1) 电路6个数码管的同名阳极段已经复接,当段选寄存器寄存了一个字型编码之后,6个数码管都将显示出相同的数字。如果要使6个数码管“同时”显示不同的数字,必须采用扫描显示的方法。 2) 通过选位寄存器选择某一位数码管,显示其数字(对应段值为1),然后关闭此数码管,再选择下一位数码管进行显示;如果在一秒钟内,每一位数码管都能显示30次以上,则人眼看到的是几位数码管同时在显示。实验证明,在扫描显示过程中,每一位显示延迟1ms是最佳选择。 3) 在本次实验中,采用行扫描方式,一次扫描6位数码管,并进行反复循环,使得每位数码管显示虽然存在间隔,但人眼仍为同时显示。每位数码管显示的时间即为显示延迟,在每一次扫面之后检测键盘状态,若有任意键输入,便退出返回DOS界面。 2.2 流程图 2.3 源代码 DATA SEGMENT NUM DB 0F4H,21H,0EDH,0DDH,39H,61H ;学号后六位为210647 DATA ENDS ;------------------------------------------------------------- STACK SEGMENT STACK 'STACK' DB 100 DUP(0) STACK ENDS ;------------------------------------------------------------- CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK STAT: MOV AL,10000000B ;A,B,C口均以方式0输出 MOV DX,0EE03H ;设置控制地址 OUT DX,AL ;送控制字到控制地址 MOV AX,DATA MOV DS,AX ;设置段地址 MOV ES,AX LOP1: XOR SI,SI ;SI清零 MOV CX,06H ;循环6次,即一个周期6位数码管 MOV DX,0EE00H ;A口的地址赋给DX,A口接八位段码 MOV BL,00000001B ;高电平即选中该位数码管点亮 LOP2: MOV AL,NUM[SI] ;将需要显示的数字赋给AL OUT DX,AL ;送AL输出至A端口 MOV AL,BL ;将控制哪一位亮的功能赋给AL INC DX ;B口的地址赋给DX,B口接六位数码管 OUT DX,AL ;送AL输出至B端口,完成指定位显示指定数字 DEC DX ;重新将A口地址赋给DX ROL BL,1 ;循环移位,控制下一位数码管亮 INC SI ;SI加1,使得下次显示中改变所显示的数字 CALL DELAY ;延时,即每位数码管点亮的时间 CALL KEY ;判断是否有键盘输入 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减1 JNZ LOP3 ;结果为0时停止,即循环11次 POP CX ;CX中数据恢复为入栈前的值 POP BX ;BX中数据恢复为入栈前的值 RET DELAY ENDP ;------------------------------------------------------------- KEY PROC NEAR ;判断是否有键盘输入 PUSH AX ;AX入栈,保留BX寄存器中的数据 MOV AH,0BH ;检查输入设备状态 INT 21H OR AL,AL ;无输入字符AL为00H,有输入为FFH JZ GOON ;全为0即为无输入,返回主程序 MOV DX,0EE01H MOV AL,00H OUT DX,AL ;完成B端口清零,即6位全灭 MOV AH,4CH ;退出程序 INT 21H GOON: POP AX RET KEY ENDP ;------------------------------------------------------------- CODE ENDS END STAT 2.4 子程序清单 1)子程序名:DELAY 功能:实现延迟显示,即控制每个LED点亮持续一定时间; 入口参数:无; 出口参数:无; 使用寄存器: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位段码的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次,总共实现FFFFH*0BH次时跳出循环,BX,CX恢复为原值后返回主程序,实现延时显示。 7) 判断有无键盘输入时,调用DOS命令,AH为0BH即为判断是否有键盘输入,无字符输入时AL为00H,与自身或操作之后结果仍全为0,返回主程序,若有字符输入时AL与自身或操作之后结果不为0,对B端口输出00H,即6位数码管全灭之后退出程序。 3 六位数码管动态显示 3.1 实验原理 1) 数码管动态显示“HELLO”字符串,相当于每次显示6位静态字符,每次显示一定时间间隔之后,显示另外6位静态字符。具体如下图所示: 显示0.5s H 显示0.5s H E 显示0.5s H E L 显示0.5s H E L L 显示0.5s H E L L O 显示0.5s H E L L O 显示0.5s 2) 每次显示静态字符串的核心代码与静态显示实验的代码相同,因而可以将静态显示中的程序封装为一个子程序直接使用。增加的功能为需要按一定时间间隔移位读取“HELLO”,程序中通过将其前加入六个空字符,作为码表存储,第一次读取为六个空字符,第二次为五个空字符和字符“H”,第三次为四个空字符和字符“HE”,依次类推,显示时依次往后读取即可。 3) 可以通过读取拨码开关输入的状态,控制延时的时间,从而实现速度快慢的变化以及实现暂停的功能。 3.2 流程图 3.3 源代码 DATA SEGMENT MESG DB 0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0 ;据显示规律“HELLO”对应码表为3DH,0DCH,8CH,8CH,0EDH DATA ENDS ;------------------------------------------------------------- STACK SEGMENT STACK 'STACK' DB 100 DUP(0) STACK ENDS ;------------------------------------------------------------- CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK ;------------------------------------------------------------- MAIN PROC FAR MOV AX,DATA MOV DS,AX ;设置段地址 MOV ES,AX MOV AL,80H MOV DX,0EE03H OUT DX,AL ;端口A,B,C均以方式0输出 LOP6: MOV BX,OFFSET MESG ;设置偏移量 MOV CX,07H ;循环次数,对应7个状态 LOP5: MOV DX,0EEE0H ;拨码开关状态控制显示速度 IN AL,DX ;读拨码开关状态给AL INC AL ;自加1,预防全0时不便延时 AND AL,07H ;取低三位的值 XOR AH,AH ;高八位清零 MOV DX,AX ;DX表示显示速度 LOPZ: CALL DISP ;调用静态显示函数 DEC DX ;DX为拨码开关后三位状态,自减1 JNZ LOPZ ;DX不为0时继续显示 ;DX越大同一状态显示时间越长,速度越慢 INC BX ;自加1,BX指向下一状态 LOOP LOP5 ;循环7次,实现滚动效果 JMP LOP6 ;每次循环结束后回到第一个状态 MAIN ENDP ;------------------------------------------------------------- DISP PROC NEAR ;将静态显示封装为子程序 PUSH CX ;入栈保护 PUSH DX PUSH AX MOV BP,000AH ;控制延时 LOPX: XOR SI,SI MOV CX,06H ;循环6次,即依次点亮6位数码管 MOV DX,0EE00H MOV AH,00000001B ;一次只亮一位 LOP2: MOV AL,MESG[BX+SI] ;需要显示的字符对应的码值赋给AL OUT DX,AL ;完成段码输出 MOV AL,AH ;控制第几个数码管工作 INC DX OUT DX,AL ;完成位码输出 DEC DX ROL AH,1 ;下一个数码管工作 INC SI CALL DELAY ;调用延时函数实现每位数码管的延时显示 CALL KEY ;调用判断键盘输入状态的函数 LOOP LOP2 ;如此循环直至数码管依次被点亮 DEC BP ;自减1 JNZ LOPX ;BP不为0则继续循环,即显示的字符串不变 POP AX ;出栈恢复 POP DX POP CX RET DISP ENDP ;------------------------------------------------------------- KEY PROC NEAR ;判断是否有键盘输入 PUSH AX ;入栈保护 MOV AH,0BH INT 21H ;DOS调用,将键盘输入信息赋给AL OR AL,AL JZ GOON ;若没有输入则继续工作 MOV DX=0EE00H MOV AL,00H ;若有输入则六个数码管均不工作 OUT DX,AL MOV AH,4CH ;退出程序 INT 21H GOON: POP AX RET KEY ENDP ;------------------------------------------------------------- DELAY PROC ;控制延时,两层循环 PUSH AX ;入栈保护 PUSH CX MOV AX,000BH ;外循环0BH次 LOPD: MOV CX,0H LOOP $ ;内循环FFFF次 DEC AX JNZ LOPD POP CX POP AX RET DELAY ENDP ;------------------------------------------------------------- CODE ENDS END MAIN 3.4 子程序清单 1) 子程序名:DELAY 功能:实现延迟显示,即控制每个LED点亮持续一定时间; 入口参数:无; 出口参数:无; 使用寄存器:AX,CX,FR。 2) 子程序名:KEY 功能:判断是否有键盘输入,若有则退出程序; 入口参数:无; 出口参数:无; 使用寄存器:AX,DX,FR。 3) 子程序名: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实现延时,调用子程序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分别接列输入。此外,本次实验识别闭合键的方法为行扫描法,具体方法为使键盘某一行线为低电平,其余为高电平,然后读取列值,如列值中有某位位低电平,则表明行列交叉点处的键被按下;否则扫描下行,直到扫完全部的行线为止。另外,在读取按键输入时需增添相应的防抖代码,以避免读取误差。 2) 基于上述方法,获得低电平的行列交叉点为按键输入,反馈其对应的数字至数码显示输出或执行相应的功能。 4.2 流程图 1) 主程序流程图 2) READ子程序 4.3 源代码 DATA SEGMENT ID DB 6 DUP(0) ;4*4键盘 ARRAY DB 11100111B,11101011B,11101101B,11101110B DB 11010111B,11011011B,11011101B,11011110B DB 10110111B,10111011B,10111101B,10111110B DB 01110111B,01111011B,01111101B,01111110B KEY DB 0EDH,21H,0F4H,0F1H,39H ;数字0~4对应码表 DB 0D9H,0DDH,61H,0FDH,0F9H ;数字5~9对应码表 DATA ENDS ;----------------------------------------------------- STACK SEGMENT STACK 'STACK' DB 100 DUP(0) STACK ENDS ;----------------------------------------------------- CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK ;----------------------------------------------------- MAIN PROC FAR MOV AX,DATA MOV DS,AX ;设置段地址 MOV ES,AX MOV DX,0EE03H MOV AL,16H ;C口PC3复位 OUT DX,AL CLEAR: XOR DX,DX ;DX表示已显示/存储数字的个数 MOV CX,6 ;循环次数,表示最多显示/存储的数字个数 MOV AL,0 XOR SI,SI LOPC: MOV ID[SI],AL ;将6位ID清零 INC SI LOOP LOPC DELETE: NOP AGN1: CALL READ ;读入按键信息 CMP AL,0FFH ;判断是否释放按键(防抖动) JNE AGN1 ;未释放则循环 CMP DX,0 ;当前没有显示数字时跳过删除操作 JE NEXT DEC DX ;将存储的数字减少一位 MOV AL,0 MOV SI,DX MOV ID[SI],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 ARRAY SUB DI,BX DEC DI ;DI表示输入按键的位置 CMP DI,9 ;判断键入是否为数字 JBE ISNUM ;跳转到显示数字对应程序 CMP DI,12 ;判断键入是否为清除键(C) JE CLEAR ;跳转到清除对应程序 CMP DI,13 ;判断键入是否为删除键(D) JE DELETE ;跳转到删除对应程序 CMP DI,14 ;判断键入是否为退出键(E) JE EXIT ;跳转到退出对应程序 JMP NEXT ISNUM: NOP AGN2: CALL READ ;读入按键信息 CMP AL,0FFH ;判断是否释放按键(防抖动) JNE AGN2 ;未释放则循环 ;释放则进行对应操作 MOV AL,KEY[DI] MOV SI,DX MOV ID[SI],AL ;将输入数字储存起来 INC DX CALL DISP ;调用静态显示函数 CMP DX,7 ;判断是否已经显示6位数字 JE CLEAR ;若已经显示6位数字,则下一次输入时清零 JMP NEXT EXIT: MOV AX,4C00H ;退出程序 INT 21H MAIN ENDP ;----------------------------------------------------- READ PROC NEAR ;读取键盘输入 PUSH DX ;入栈保护 MOV DX,0EE03H ;A口、B口以及C口的高四位以方式0输出, ;C口低四位以方式0输入 MOV AL,81H OUT DX,AL MOV AL,00H MOV DX,0EE02H OUT DX,AL ;C口高四位清零 IN AL,DX ;读取列信息 MOV BL,AL ;存储列信息 ;--------------- MOV DX,0EE03H ;A口、B口以及C口的低四位以方式0输出 ;C口高四位以方式0输入 MOV AL,88H OUT DX,AL MOV AL,00H MOV DX,0EE02H OUT DX,AL ;C口低四位清零 IN AL,DX ;读取行信息 OR AL,BL ;行列相与得到输入信息,存在AL中 POP DX ;出栈恢复 RET READ ENDP ;----------------------------------------------------- DISP PROC NEAR ;静态显示程序 PUSH CX ;入栈保护 PUSH DX PUSH AX MOV BP,000FH ;控制延时 LOPP: XOR SI,SI MOV CX,06H ;循环6次,即依次点亮6位数码管 MOV DX,0EE00H MOV AH,00000001B ;一次只亮一位 LOPD: MOV AL,ID[SI] ;需要显示的字符对应的码值赋给AL OUT DX,AL ;完成段码输出 MOV AL,AH ;控制第几个数码管工作 INC DX OUT DX,AL ;完成位码输出 DEC DX ROL AH,1 ;下一个数码管工作 INC SI CALL DELAY ;调用延时函数实现每位数码管的延时显示 LOOP LOPD ;如此循环直至数码管依次被点亮 DEC BP ;自减1 JNZ LOPP ;BP不为0则继续循环,即显示的字符串不变 POP AX ;出栈恢复 POP DX- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北邮微原 硬件 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Fis****915】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Fis****915】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Fis****915】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Fis****915】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文