资源描述:
《惠州学院微机实验定时器计数器8253》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验三可编程定时器/计数器(8253)一、实验目的1)学会8253芯片和微机接口原理和方法。2)掌握8253定时器/计数器的基本T作原理、工作方式和编程原理。二、实验内容按图6虚线连接电路,将计数器0设置为方式0,计数器初值为N(NWOFH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUTO电平变化(当输入N+1个脉冲后OUTO变高电平)。图6按图7连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察0UT1输岀电平的变化(频率1HZ)。296H^U5n11t112182S3UU111A
2、GATE1CLK1<¥OUT0C5GATE0CLK0<亠图7TLMHZ三、编程提示1、8253控制寄存器地址283H计数器0地址280H计数器1地址281HCLKO连接时钟1MHZ2、参考流程图(见图8、9):图8图9四、实验代码1、图6电路的实验代码CODESEGMENT;段定义开始(CODE段)ASSUMECS:CODE;规定CODE为代码段START:MOVAL,1011二进制计数);设置控制字00010000(计数器0,方式0,写两个字节,MOVDX,283HOUTDX,ALMOVDX,280HMOVAL,OFHOUTDX,ALLP1
3、:INAL,DXCALLDISPPUSHDXMOVAH,06HMOVDL,OFFH1NT21HPOPDXJZLP1MOVAll,4CHTNT21H;把控制寄存器地址放在DX寄存器中;将AL的值送入DX端口;把计数器0地址放在DX寄存器中;将OFH存入AL寄存器;将此时AL的值送入DX端口MiDX端口读入8位,放在AL寄存器屮;调用DISP;将。乂内容保存到堆栈段;将06日存入AH,为了下句调用21中断;将0FFH存入DL;调用21中断;将。乂的内容推岀栈段;如果DX的内容是0,就跳转到LP1;将4CH存入AH,为了下句调用21中断;调用21中
4、断DISPPROCNEARPUSHDXANDAL,OFH入AL中MOVDL,AL;定义一个名为DISP的子程序;把。乂的内容保存到堆栈段中;将人1,寄存器的内容与0FH进行“与”运算,再把结果存;将AL的值送入DL寄存器CMPDL,9JLENUMADDDL,7NUM:ADDDL,30HMOVAH,02HINT21HMOVDL,ODHINT21HMOVDL,OAHTNT2111POPDXRETDISPENDPCODEENDSENDSTART2、图7电路的实验代码CODESEGMENTASSUMECS:CODESTART:MOVDX,283H比较
5、DL中的值与9的大小如果DL的值小于或等于9时,则跳转到NUM将DL的值与7进行相加后,再送入DL屮将DL的值与30H进行相加后,再送入DL中将02H存入AH调用DOS21中断结合“MOVAH,02H”就是说输岀ODH调用屮断指令结合“MOVAll,0211”就是说输出0AII调用D0S21中断将DX的内容推出栈段子程序在功能完成后返冋调用程序继续执行子程序结束代码段结束程序结束;段定义开始(CODE段);规定CODE为代码段;把控制寄存黠地址放在DX寄存器屮MOVAL,36H;设置控制字00110110(计数器0,方式3,写两个字节,二进制
6、计数)OUTDX,ALMOVAX,1000HMOVDX,280HOUTDX,ALMOVAL,AHOUTDX,ALMOVDX,283IIMOVAL,7611;将AL的值送入DX端口;该语句是立即寻址方式,就是把1000H这个数赋给AX;把计数器0地址放在DX寄存器中;将AL的值送入DX端口;将AX的高8位存入AL寄存器屮;将此时AL的值送入DX端口;把端口地址放在DX寄存器中;设置控制字01110110(计数器1,方式3,写两个字节,:进制计数)OUTDX,ALMOVAX,1000HMOVDX,281HOUTDX,ALMOVAL,AHOUTDX
7、,ALMOVAH,4CHTNT21HCODEENDS;AL的值送入DX端口;把1000H赋给AX;把端口地址放在DX寄存器屮;将人乂的低8位送入DX端口;将AX的髙8位存入AL寄存器中;将人1的值送入DX端口;将4曲存入AH;调用D0S21中断;代码段结束ENDSTART;程序结束