Proteus—40个单片机初学程序-15.定时计数器T0作定时应用技术(一).docVIP

  • 46
  • 0
  • 约6.22千字
  • 约 7页
  • 2018-05-30 发布于广东
  • 举报

Proteus—40个单片机初学程序-15.定时计数器T0作定时应用技术(一).doc

第四章 实验及实践课题(15) 定时计数器T0作定时应用技术(一) 用AT89S51单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1,秒计数到60时,自动从0开始。硬件电路如下图所示 2. 电路原理图 图4.15.1 3. 系统板上硬件连线 (1.?????? 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。 (2.?????? 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。 4. 程序设计内容 AT89S51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要通过设置特殊功能寄存器TMOD,即可完成。定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。 注:定时/计数器方式选择寄存器(TMOD)TMOD寄存器是一个专用寄存器,用于控制两个定时计数器的工作方式,TMOD可以用字节传送指令设置其内容,但不能位寻址TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。16位定时工作方式,对于T0来说,最大定时也只有65536us,即65.536ms,无法达到我们所需要的1秒的定时,因此,我们必须通过软件来处理这个问题,假设我们取T0的最大定时为50ms,即要定时1秒需要经过20次的50ms的定时。对于这20次我们就可以采用软件的方法来统计了。 TMOD: TMOD寄存器结构 D7 D6 D5 D4 D3 D2 D1 D0 GATA M1 M0 GATA M1 M0 ←T1方式字段→ ←T0方式字段→ 因此,我们设定TMOD,即TMOD=01H。 下面我们要给T0定时/计数器的TH0,TL0装入预置初值,通过下面的公式可以计算出 TH0=(216-50000) / 256 TL0=(216-50000) MOD 256 TH0=(65536-50000)/256 =60(3CH) TL0=(65536-50000)%256 =176(B0H) 注:当为定时工作方式1时,定时时间的计算公式为: ?????????(65536—计数初值)× 晶振周期×12 或??? (65536—计数初值)× 机器周期 其时间单位与晶振周期或机器周期相同。 当T0在工作的时候,我们如何得知50ms的定时时间已到,这回我们通过检测TCON特殊功能寄存器中的TF0标志位,如果TF0=1表示定时时间已到。 TCON: color=#ffff00]??? 表2[/color]??? TCON结构 D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TR0 —— / 计数器0运行控制位。软件置位,软件复位。 TR1 —— 定时 / 计数器1运行控制位。(用法TR0类似) TF0、TF1 --------分别是定时、计数器T0、T1的溢出标志位。当定时器计满回零时,TF=1,并可申请中断;当CPU响应中断并进入中断服务程序后,TF自动清零。如对TF查询,定时器回零后,要用指令将TF清零。程序框图 ? 图4.15.2 6. 汇编源程序(查询法) SECOND EQU 30H TCOUNT EQU 31H ORG 00H START: MOV SECOND,#00H MOV TCOUNT,#00H MOV TMOD,#01H ;T0为定时器状态,工作方式1 MOV TH0,#(65536-50000) / 256 ;将3CH送到TH0 MOV TL0,#(65536-50000) MOD 256 ;将BOH送到TL0 SETB TR0 ;TR0置1,启动定时器 允许定时/计数器计数DISP: MOV A,SECOND MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P

文档评论(0)

1亿VIP精品文档

相关文档