资源描述:
《编成使计数值在屏幕上显示,并同时用逻辑笔观察out0点》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验08A,按图连线,将计数器0设置为方式0,计数器初值设为0H~FH,用手动逐个输入单脉冲,编成使计数值在屏幕上显示,并同时用逻辑笔观察OUT0点平变化。程序如下:DATASEGMENT ioportequ0c000h-280h ;实验箱驱动默认中断地址为C000H,此处设置偏移量 ioport1equioport+280h ioport2equioport+281h ioport3equioport+283hDATAENDSCODES
2、EGMENTASSUMECS:CODE,DS:DATASTARTPROCFARSTT:PUSHDS SUBAX,AX PUSHAX;============================== MOVAX,DATA MOVDS,AXFORMAT:MOVDX,ioport3 ;写控制字,寄存器0,只读写低8位,工作方式0,二进制计数 MOVAL,00010000B OUTDX,AL MOVDX,ioport1 ;设置初始
3、计数值,F MOVAL,0FH OUTDX,ALCONTROL:MOVDX,ioport3 ;写控制字使其所存以便读当前计数值 MOVAL,00000000B OUTDX,AL MOVDX,ioport1 ;读当前计数值 IN AL,DX CMPBL,AL ;判断是否与上次读入的计数值相同,即是否给了一个新的时钟脉冲,如果没有,则跳过显示程序 JENEXT MOVBL
4、,AL CALLHEX2ASCII ;调用16进制转ASCII码子程序 CALLDISPLAY ;调用显示子程序NEXT: MOVAH,0BH ;判断是否有健按下,如有则退出,否则循环 INT21H CMPAL,00H JNEEXIT JMPCONTROLEXIT: MOVAH,4CH INT21H;============================== RETSTARTENDPHEX2ASCI
5、IPROCNEAR;16进制转ASCII码子程序 CLC DAA ADDAL,0F0H ADCAL,40H RETHEX2ASCIIENDPDISPLAYPROCNEAR;数据显示子程序 PUSHDX MOVDL,AL MOVAH,2 INT21H MOVDL,13 INT21H MOVDL,10INT21H POPDX RETDISPLAYENDPCODEENDSENDSTT提示:CLK0端接手动单脉冲,GATE0接+5V,试验板上标有+5V字样
6、的都可以用,OUT0接逻辑笔。试验结果:连线后打开试验箱电源,运行程序,一下一下按手动脉冲,屏幕上显示计数递减,逻辑笔显示低电平,直至递减至0,同时逻辑笔显示高电平。即计数停止产生一个中断。16进制转ASCII码子程序和显示子程序就是我以前做的,可以直接使用,这也是编写子程序的一个好处。汇编程序并不是最重要的,掌握芯片的使用方法更为重要。==============================实验08B,按图连线,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变
7、化。程序如下:DATASEGMENT ioportequ0c000h-280h ;实验箱驱动默认中断地址为C000H,此处设置偏移量 ioport1equioport+280h ioport2equioport+281h ioport3equioport+283hDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCFARSTT:PUSHDS SUBAX,AX PUSHAX;======
8、======================== MOVAX,DATA MOVDS,AXFORMAT:MOVDX,ioport3 ;写控制字,计数器0,先读写低8位,后读写高8位,工作方式3,二进制计数 MOVAL,00110110B OUTDX,AL;下面设置计数器0初始计数值,1000D=03E8H,先写入低8位,接着写入高8位,也