第4章 单片机内部电路.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设晶振频率为6MHZ,程序如下: ORG 0000H AJMP MAIN ;转主程序 ORG 000BH ;T0中断首地址 MOV TL0 , #131 ;TL0装入时间常数(256-125) CPL P1.1 ;P1.1口得到方波 RETI ORG 001BH ;T1中断处理程序首地址 MOV TH0 , #06H ;TH0装入时间常数(256-250) CPL P1.2 ;P1.2口得到方波 RETI MAIN: MOV TMOD , #03H ;T0工作于方式3、定时 MOV TL0 , #131 例4:设定时/计数器T0工作于方式3,TL0和TH0作为两个独立 的8位定时/计数器分别产生250us和500us的定时中断,使 P1.1和P1.2 产生500us和1000us的方波(晶振频率为6MHz )。 注意: 当一个定时器的最大定时时间仍不能满足定时要求,如: 6MHZ时钟时, 一个机器周期为2us, 最大定时时间 65536×2=131072us=131ms=0.13s 若希望定时 0.2s=200ms,则不可能用一个定时器来完成。 这时可以对定时器进行级联。 MOV TH0 , #06H ;送时间常数 SETB EA ;CPU开中断 SETB ET0 ;允许中断 SETB ET1 SETB TR0 ;启动定时 SETB TR1 SJMP $ ;等待 方式3时,由于只能是8位计数器,所以可以在中断程序中辅以软件计数,实现较长时间定时。 例5:如上述,希望定时200ms。时间到时,发光二极管或明或暗。 设定时器0 定时 20ms, 在软件中查询定时器0定时是否到20ms?若到,用一个口位(P1.0)输出方波,周期为40ms,将此方波加到T1(定时器T1的外部输入),并设置T1的计数常数为5,则可实现200ms定时: 时钟 6MHZ 时, 20ms/2us=10000,时间常数: 65536-10000=55536 5V 300Ω P1.7 P1.0 P3.5 CTC0定时 CTC1计数 40ms 定时器0 :方式1,定时 定时器1 :方式2,计数(5个) 例: P139 6-4 要求:①用T0扩展外部中断源; ② P1.0引脚输出一个5KHz(周期200us)的方波。 使T0工作在方式3,此时,TL0、TH0为两个独立的8位计数器 TH0 仅可用于定时,且占据了T1的TR1和TF1。 TL0 可工作在定时或计数方式,使用原T0的各控制位、引脚和中断源。 这时,T1可工作在方式 0~2,仅用C/T即可切换其运行在定时或计数工作方式(本题中要求T1用于串行口波特率发生器)。 1 1 1 0 0 1 0 0 TMOD 1 0 1 0 1 0 1 0 TCON T0:TL0作计数用,初值FFH,当T0引脚电平有变化则产生中断 TH0作为8位定时器,控制P1.0输出5KHz的方波。 T1: 工作在方式2,定时,溢出信号作串行口波特率发生器。 设置INT0 INT1 申请中断 启动T0、T1 MOV TMOD,#27H ;T0为模式3,T1为模式2, MOV TL0,#0FFH ;置TL0计数初值。 MOV TH0,#156 ;置TH0计数初值 (定时100us) MOV TH1,#data ;data是根据波特率要求设 ;置的常数(即初值) MOV TL1,#data MOV TCON,#55H

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档