第8篇通用可编程接口芯片8253.ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 8253应用举例 8253初始化方法: 控制字 计数初值: 已知:CLK 的频率fc与定时的时间t. 计数初值: n= fc ? t 例1: fc=1MHZ,最大计数初值: 65536 一个定时器最大定时时间: N/fc=65536/ 106 =0.065536s 例2:设定时器0、定时器1工作于方式2,外部提供一个时钟,频率f=2MHZ。要求定时器1每5ms产生一个脉冲,定时器0每5s产生一个脉冲。 1). 一个定时器的最大定时时间: 65536/(2*106)=0.032768 s=32.768ms 2). 将定时器1的CLK1接2MHZ时钟,计数初值: 3).将定时器1的OUT1端接到定时器0的CLK0端,定时器0的计数初值: 发声子程序: SSP PROC NEAR ;8253初始化: MOV AL ;计数器2,模式3,初值16位,二进制 OUT 43H, AL MOV AX, 1983 ; 计数初值=1.19MHZ?600HZ=1983 OUT 42H,AL ;送计数初值低位字节 MOV AL,AH OUT 42H,AL次 ;送计数初值高位字节 8255控制程序: IN AL,61H ;读8255的PB口原输出值 MOV AH,AL ;保留到AH OR AL,03H ;使PB0\PB1均为1 OUT 61H,AL ;打开GATE2门,输出方波到扬声器 SUB CX, CX ;CX为循环次数,最大为216 L: LOOP L ;延时 DEC BL ;BL为子程序入口条件 JNZ L ;BL=6,发长声(3S),BL=1发短声(0.5S) MOV AL,AH ;取回8255的PB口原输出值 OUT 61H, AL ; 恢复8255PB口,停止发声 RET SSP ENDP 例4: 定时/计数器 8253与 8086/8088CPU 相连构成完整的定时、计数或脉冲发生器系统。要求能完成的功能是: 1)利用通道0完成对外部事件计数功能,计满100次向CPU发中断请求。 2)利用通道1产生频率为1KHz的方波。 3)利用通道2作标准时钟,定时1秒,输出接IR2。 (1)8253的数据线(D7~D0)与CPU的高8位数据线(D15-D8)相连,所以8253的端口地址必须是奇地址(A0=1)。 (2)通道0定义为工作方式0,完成计数. 通道0的计数初值应为: n0= 100 控制字: 00 01 0000=10H (3)将通道1定义为工作方式3, 控制字=0111 0110=76H, 从CLK1输入2.5MHz的时钟脉冲, OUT1输出频率为1KHz的方波,而输出方波的周期1ms。 通道1的计数初值: n1= f1*t1= 2.5?106 ?1 ? 10-3 =2500=09C4H。 (4)通道2应定义为方式0, 控制字=1011 0001=0B1H,每秒钟利用OUT2向CPU发出一次中断请求,由于输入时钟频率为1KHz,计数初值应为: n2=f2*t2=1000*1=1000。 8253的控制端口地址:66H 通道0的端口地址:60H 通道1的端口地址:62H 通道2的端口地址:64H 8253-0 EQU 60H 8253-1 EQU 62H 8253-2 EQU 64H 8253-C EQU 66H STT: MOV DX,8253-C ;8253控制口地址 MOV AL,10H OUT DX,AL

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档