微机控制系统与应用4讲解.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 中断、定时/计数、串行口 4.1 MCS-51单片机的中断系统及中断编程 4.2 定时/计数器及其编程 4.3 串行口及其编程 4.2 定时/计数器及其编程 * 应用举例: 【例6】 设某单片机系统中已经使用了两个外部中断源,并置定时器T1为模式2,作串行口波特率发生器用。现要求:1.增加一个外部中断源;2.由P1.0引脚输出一个5kHz的方波。 已知?osc=12MHz。 解: 1. 确定定时器的工作方式 将定时/计数器T0设置为模式3计数并定时,T0的引脚接外部中断源,TL0的计数初值设为FFH,下降沿产生中断;T0的TH0为8位定时器,在P1.0引脚上可产生方波,用中断方式;T1设为模式2定时,作串行口的波特率发生器。 2. 计算各个初值 (1)TL0的初值 为0FFH (2)TH0的初值 产生5kHz的方波的周期为:T=1/5000s=0.2ms=200 μs 4.2 定时/计数器及其编程 * 因此TH0的定时时间为:t=T/2=100 μs , Tcy=1 μs 得 100=(256-X)*Tcy X=256-100=156 TH0=#156 (3)TH1=TL1,由波特率值确定 3. TMOD值: =27H TCON值: =55H 4. 程序清单: (1)中断入口部分: ORG 0000H START:LJMP MAIN ORG 0003H LJMP E0INT ORG 000BH LJMP TL0INT ORG 0013H LJMP E1INT ORG 001BH LJMP TH0INT 4.2 定时/计数器及其编程 * (2)主程序部分 ORG 0030H MAIN: MOV SP,#5FH MOV TMOD,#27H MOV TL0,#0FFH MOV TH0,#156 MOV TH1,#data MOV TL1,#data MOV IE,#9FH ;开所有中断 MOV TCON, #55H ;启动定时器 SJMP $ : (3)中断处理程序部分 TL0溢出中断服务程序: TL0INT:MOV TL0,#0FFH (…外部中断处理…) RETI TH0溢出中断服务程序: TH0INT:MOV TH0,#156 CPL P1.0 RETI (其它外部中断服务程序略) 4.2 定时/计数器及其编程 * 综合应用举例 【例7】设某单片机系统的晶振频率为6MHz,试编写利用T0产生定时时间为1s的定时程序。 解: 1. 确定定时器T0的工作模式 Tcy=2 μs 模式0最长可定时:2μs*8192=16.384ms 模式1最长可定时:2μs*65536=131.072ms 模式2最长可定时:2μs*256=512μs 选模式1,每隔100ms中断一次,中断10次为1s。 2. 计算初值X 100000 μs=(65536-X)*2 μs X=65536-50000=15536=3CB0H 3. 实现方法:(1)计数器法;(2)中断循环程序法 15536÷ 256 商为高8位, 余数为低8位 4.1 中断系统及中断编程 [例3]:外部中断INT0的中断编程。 主程序: ORG 0000H AJMP MAIN ;主程序入口 ORG 0003H AJMP INTO ;中断服务子程序入口 …… ORG 0030H MAIN: MOV SP, #5FH;重置堆栈指针 SETB IT0 ;下降沿触发 SETB PX0 ;高优先级 SETB EX0 ;允许外部中断0中断 SETB EA ;开中断 LOOP: AJMP LOOP ;循环等待 * 子程序: ORG 1000H INT0: PUSH PSW ;保护PSW PUSH A ;保护ACC PUSH DPH

文档评论(0)

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

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

1亿VIP精品文档

相关文档