- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定时器与
通道2 8254定时/计数器 8254是可编程的定时/计数器,兼容8253,有3个可独立编程的16位定时/计数器。 数据总线缓冲器 读/写 逻辑 控制字寄存器 通道0 通道1 通道2 D7~D0 RD WR A0 A1 CS CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2 内部总线 8254的编程 通过写控制字可确定每个通道的工作方式。 方式0:计数结束输出正跃变信号 方式1:单脉冲发生器 方式2:分频器 方式3:方波发生器(分频器方式) 方式4:软件触发的单脉冲发生器 方式5:硬件触发的单脉冲发生器 控制字寄存器(0x43) SC1 SC0 RL1 RL0 M2 M1 M0 BCD 通道选择 读写方式选择 工作方式选择 数制选择 SC1 SC0 选通道,表明对那个通道进行操作。 0 0 通道 0 0 1 通道 1 1 0 通道 2 1 1 无效 D7 D6 D5 D4 D3 D2 D1 D0 读写方式 RL1 RL0 确定读写计数值的方法和顺序 0 0 锁定当前计数值,供CPU读 0 1 只读/写低8位 1 0 只读/写高8位 1 1 先读/写低8位,再读/写高8位 确定工作方式 M2M1M0 确定通道的工作方式 0 0 0 方式0 0 0 1 方式1 X 1 0 方式2 X 1 1 方式3 1 0 0 方式4 1 0 1 方式5 BCD=1:BCD码计数 BCD=0:二进制计数 0~9999 0~65535 8254在PC机中的应用 8254有两条地址线,占4个连续的I/O端口地址。 通道 通道0 通道1 通道2 控制字寄存器 I/O地址 0x40 0x41 0x42 0x43 通道0用于电子钟定时基准,OUT0接到8259A的IR0作为中断源,中断类型号08H.。 通道1用于动态RAM刷新。 通道2产生音频信号,供喇叭发声。 outportb(0x43,0xb6); 通道0的工作方式 通道0初始化为方式3 —方波频率发生器,OUT0端产生方波,方波的频率等于CLK0端输入脉冲频率除以计数初值。 T CLK0输入脉冲频率为 1.193MHz(1193182 Hz) 周期为 1/1.193MHz≈838ns 通道0 作为计数器,每838ns计数值减1,减到0时又自动恢复计数初值。这时OUT0输出的方波完成一个周期,方波的上升沿触发一次中断。 计数初值 方波的频率f2等于输入脉冲频率f1除以计数初值N f2=f1/N 方波的周期T2 =1/f2等于输入脉冲周期T1=1/f1乘以计数初值N T2=T1× N 计数初值N等于方波的周期T2(单位为秒)除以输入脉冲周期T1 N=T2/T1=T2/838ns 更精确的办法:N=T2*1193182; 通道0的初始化 MOV AL,36H OUT 43H,AL MOV AL,0 OUT 40H,AL OUT 40H,AL 控制字36H D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 1 0 1 1 0 选0通道 先写低8位 再写高8位 方式3 二进制计数 0000000000000000 -) 1 1111111111111111 0-1=65535! 0经65536次减1后又减到0 方波完成一个周期,0相当最大的计数初值65536。 通道0的中断周期 通道0的计数初值相当于65536 方波的频率 1.193MHz/65536≈18.2Hz 方波的周期 838ns*65536?55ms 通道0每55ms申请一次中断,每秒18.2次 通道0的中断服务子程序TIMER-INT固化在BIOS中,有三个功能: 1.进行年、月、日、时、分、秒的计时。 2.软盘I/O时,确定软驱电机停止转动的时间。 3.发出一个1CH类软中断,可以调用一个用户程序。 思考题 1.若希望10ms中断一次,计数初值是多少? 2.若CLK0输入脉冲频率为2MHz,采用二进制计数和BCD码计数时最大的中断周期是多少? 3.若CLK0输入脉冲频率为4MHz,希望中断周期为10ms,写出初始化程序。 时钟中断程序举例 利用8254的通道0作为实时时钟定时,每10ms中断一次。编写第8类中断的中断服务程序每
您可能关注的文档
最近下载
- 血糖仪质控规则 .pdf VIP
- 中国矿业大学《学术英语》2021-2022学年第一学期期末试卷.doc VIP
- 2025年南京新工投资集团公司治理结构组织架构和部门职能.docx
- 组织胚胎学教学教案.doc VIP
- 2025年石家庄建设投资集团有限责任公司人员招聘笔试备考试题及答案解析.docx VIP
- 九年级英语感叹句.ppt VIP
- 第3单元第7课+中国传统色(课件)-2025-2026学年+赣美版(2024)初中美术八年级上册.pptx VIP
- Unit 6 How do you feel Part B 课件(共20张PPT)(含音频+视频).pptx VIP
- 拟任县处级党政领导职务政治理论水平任职资格考试第.doc VIP
- 《我们的互联网时代》知识梳理+考点精练(一)(原卷版).docx VIP
原创力文档


文档评论(0)