单片机及接口14(第四章)解说.pptVIP

  • 13
  • 0
  • 约3.68千字
  • 约 18页
  • 2016-12-21 发布于湖北
  • 举报
History of Automation and Automatic Control 例题一:使用T0定时,使得由P0.7输出周期为2ms的方波。设单片机时钟为6MHz。使用方式0和方式1分别实现。请编制程序。 分析:2ms的方波,即1ms高电位,1ms低电位。可以这样实现:定时1ms中断一次,在中断中使得P0.7状态反相。 1)计算定时器初值X。 定时器计数脉冲周期是时钟的12倍。计时1ms需要计数1000/2=500个脉冲。即N=500。 若用方式0,13位计数器,则有: X= — 500 = 8192—500 = 7692 换算成16进制数为1E0CH 用高八位和低五位表示(TH0、TL0): F00CH 2)编制初始化程序: T0工作在方式0,方式控制字为00H,TH0=F0H,TL0=0CH 编程: ORG 1000H MOV TMOD,#00H; * MOV TH0,#0F0H MOV TL0,#0CH MOV IE,#82H SETB TR0 WAIT:SJMP WAIT 3)编制中断程序: ORG 0000H ; 上电复位入口地址 LJMP 1000H ORG 000BH LJMP TINT ORG 300H TINT: CPL P0.7 MOV TH0,#0F0H MOV TL0,#0CH MOV IE,#82H RETI 例题二:设8031时钟频率为12MHz,请编出利用定时器/计数器T0在P1.0引脚上输出周期为2s的方波程序。 分析:2s的方波,即1s高电位,1s低电位,要求T0能定时1秒,但该值已超出T0的最大定时时间。只有采用定时器和软件计数相结合的方法实现。即在主程序中设定一个初值为20的软件计数器R0,并使T0计时50ms。 1)计算定时器初值X。 X=216 — 50ms/1us = 15536 换算成16进制数为3CB0H 2)编制初始化程序: T0工作在方式1,方式控制字为01H,TH0=3CH,TL0=B0H 编程: ORG 1000H MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV IE,#82H SETB TR0; MOV TCON,#10H* MOV R0, #14H WAIT:SJMP WAIT 3)编制中断程序: ORG 0000H ; 上电复位入口地址 LJMP 1000H ORG 000BH AJMP TINT ORG 0080H TINT: DJNZ R0, NEXT; CPL P1.0 MOV R0, #14H NEXT: MOV TH0,#3CH MOV TL0,#0B0H MOV IE,#82H RETI Yu Naigong School of Information and Control Beijing Polytechnic University Beijing, P. R. China 北京工业大学人工智能与机器人研究所 * 一、结构 二、定时器/计数器控制寄存器TCON 三、工作方式控制寄存器TMOD 四、定时器/计数器的工作模式(以T1为例) 五、定时器工作举例 第四章 单片机中的定时器/计数器 一、结构 CPU TH1 TL1 TH0 TL0 TCON TMOD 时钟/12 P3.5(T1) P3.4(T0) TF1,TF0——定时器溢出标志位。最高位产生溢出时置1, 并请求中断。 TR1,TR0——定时器的运行控制位, 1允许计数,0停止计数。 IE1——外部中断1请求源标志(/INT1,P3.3), 1表示有中断,0为硬件复位。 IT1——外部中断1触发控制位。 0为电平触发,低电平有效。1为边沿触发,下降沿有效。 IE0,IT1——外部中断0请求源标志(/INT0,P3.2)和触发控制位。 注意:计数器为增1计数器

文档评论(0)

1亿VIP精品文档

相关文档