1、第七章8253应用举例 8253初始化程序初始化程序通道通道1:方式方式3,BCD码计数码计数 计数初值计数初值:1250初始化程序初始化程序:MOVAL,01110111BOUT43H,ALMOVAX,1250H OUT41H,ALMOVAL,AHOUT 41H,AL如果就是二进制计数如果就是二进制计数,计数初值如何设置?计数初值如何设置?读取计数值程序读取计数值程序 要先锁存要先锁存,才能读到稳定得计数值。才能读到稳定得计数值。MOV AL,01000000B OUT43H,AL ;发锁存读得命令发锁存读得命令 INAL,41H ;先读低先读低8位位 MOVAH,AL INAL,41H ;
2、后读高后读高8位位 XCHG AH,AL8253应用举例应用举例 1、硬件电路设计、硬件电路设计 地址译码电路设计地址译码电路设计 例例1 1 地址译码电路设计地址译码电路设计 例例2 2 2、“定时波形产生电路定时波形产生电路”设计举例设计举例(做补充作业做补充作业)硬件电路图硬件电路图大家学习辛苦了,还是要坚持继续保持安静 地址译码电路地址译码电路 8253通道通道0初始化程序初始化程序通道通道0:方式方式3,2进制计数进制计数 输入时钟输入时钟2MHz,输出方波输出方波2KHz 计数初值计数初值:2MHz/2KHz=1000初始化程序初始化程序:MOVAL,00110110BOUT43H
3、ALMOVAX,1000 OUT40H,ALMOVAL,AHOUT 40H,AL 8253通道通道1初始化程序初始化程序通道通道1:方式方式2,2进制计数进制计数 输入时钟输入时钟2MHz,输出负脉冲输出负脉冲40KHz 计数初值计数初值:2MHz/40KHz=50初始化程序初始化程序:MOVAL,01010100BOUT43H,ALMOVAL,50OUT41H,AL 8253通道通道2初始化程序初始化程序 通道通道2:方式方式1,BCD码计数码计数 输入时钟输入时钟2MHz(0、5us),输出输出500us宽度得单脉冲。宽度得单脉冲。计数初值计数初值:500us/0、5us=1000初始化
4、程序初始化程序:MOVAL,10110011BOUT43H,ALMOVAX,1000HOUT42H,ALMOVAL,AHOUT 42H,AL3、“计数电路计数电路”设计举例设计举例(做补充作业做补充作业)某某8086系统中系统中,8253得口地址为得口地址为40h43h,8259得口地得口地址为址为20h21h,中断类型码为中断类型码为70h77h。8253计数器计数器1得输得输入时钟为入时钟为1、193MHz,定时输出中断请求信号至定时输出中断请求信号至8259得得IR2。在中断服务程序中对中断次数计数。在中断服务程序中对中断次数计数,存在存在IR2_COUNT单元中。要求单元中。要求:1)
5、设计硬件电路设计硬件电路(分分1ms与与1s定时中断两种情况定时中断两种情况);2)编写编写8253初始化程序初始化程序(分分1ms与与1s定时中断两种情况定时中断两种情况);3)编程设置中断向量编程设置中断向量,设置中断屏蔽字设置中断屏蔽字;4)编写中断服务程序。编写中断服务程序。硬件电路硬件电路(1ms定时中断定时中断)注注:图中地址译码电路设计有误图中地址译码电路设计有误,重新修改。重新修改。编程编程:(1)8253初始化初始化(1ms定时中断定时中断):通道通道1:方式方式3(或方式或方式2),2进制计数进制计数 输入时钟输入时钟1、193MHz,输出方波输出方波1kHz 计数初值计数
6、初值:1、193MHz/1kHz=1193初始化程序初始化程序:MOVAL,01110110BOUT43H,ALMOVAX,1193 OUT41H,ALMOVAL,AHOUT 41H,AL(2)设置中断向量设置中断向量:CLIMOVAX,SEG IR2_SUBMOVDS,AXMOVDX,OFFSET IR2_SUBMOVAL,72HMOVAH,25HINT21HSTI(3)设置中断屏蔽字设置中断屏蔽字:INAL,21HANDAL,11111011BOUT21H,AL(4)中断服务程序中断服务程序:IR2_SUB:STIPUSHAXINC IR2_COUNTMOVAL,20HOUT20H,ALPOPAXIRET思考思考:定时定时1s1s中断中断,计数值计数值=1、193MHz/1Hz =1193000655361个计数器不够计数个计数器不够计数,怎么办?怎么办?2个计数器级联个计数器级联补充作业补充作业:做做“1s定时中断定时中断”得情况得情况4、8253在在PC机中得应用机中得应用 PB1PB0=11时时,计数器计数器2输出得方波信输出得方波信号才能送到扬声器号才能送到扬声器,扬声器才能发声。扬声器才能发声。编程举例编程举例产生频率为产生频率为f得通用发声程序得通用发声程序