- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第6章 MCS - 51单片机内部定时器/计数器及串行接口 练习 1. 设fosc=6MHz,要求P1.0上输出周期为2s的方波,用定时器T0。采用查询方式。 (1)定时器T0工作方式的确定 因定时时间较长,采用哪一种工作方式?由定时器各种工作方式的特性,可计算出:因定时时间较长,采用哪一种工作方式?由定时器各种工作方式的特性,可计算出: 方式0最长可定时16.384ms; 方式1最长可定时131.072ms; 方式2最长可定时512?s。 选方式1,每隔100ms中断一次,中断10次为1s。 (2)计算计数初值 因为:(216-a)×2×10-6 = 10-1 所以:a=15536=3CB0H 因此:TH0=3CH,TL0=B0H (3)10次计数的实现 对于中断10次计数,可使T0工作在计数方式,也可用循环程序的方法实现。本例采用循环程序法。 MOV B, #0AH MOV TMOD, #01H SETB TR0 LOOP: MOV TH0, #3CH MOV TL0, #0B0H WAIT: JNB TF0, WAIT CLR TF0 DJNZ B, LOOP CPL P1.0 MOV B, #0AH SJMP LOOP 2. 假设系统时钟为6MHz,编写定时器T0产生1秒定时的 程序。用中断方式。 ORG 0000H RST: LJMP MAIN ORG 000BH LJMP IT0P ORG 0100H MAIN: MOV SP,#60H MOV B,#0AH MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 SETB ET0 SETB EA HERE: SJMP HERE ITOP: MOV TL0,#0B0H MOV TH0,#3CH DJNZ B,LOOP CLR TR0 LOOP:RETI 3. 利用T0工作方式0,产生1ms的定时,在P1.0引脚上输出周期为2ms的方波,设系统时钟频率为12MHz,采用查询方式和中断方式两种方法实现。 由公式T=12/fosc*(213-a)us 计算得 a=7192=1C18H 11000B 所以TH0=0E0H, TL0=18H 查询方式: MOV TMOD, #00H SETB TR0 LOOP: MOV TH0, #0E0H MOV TL0, #18H WAIT: JNB TF0, WAIT CPL P1.0 CLR TF0 SJMP LOOP 中断方式: ORG 0000H SETB TR0 LJMP MAIN SJMP $ ORG 000BH TOSER: CPL P1.0 LJMP TOSER MOV TH0, #0E0H ORG 0040H MOV TL0, #18H MAIN: SP, #60H RETI MOV TMOD, #00H MOV TH0,#0E0H MOV TL0, #18H 4.若单片机时钟频率为12MHZ,要求从P1.1引脚输出周期为4ms的方波。 解:此处采用定时器0定时,通过查询TF0状态检查定时时间是否已到。定时器定时周期为2
文档评论(0)