1 / 20

任务 13  定时器控制单灯秒闪

任务 13  定时器控制单灯秒闪. 4 学时. 1. 掌握定时计数器编程控制方法. 2. 掌握定时计数器的查询方式编程要点. 3. 掌握定时计数器的中断方式编程要点. 一.任务目标. 二.任务要求. 通过 P1.x 口线控制外接的 LED 发光二极管亮 1 秒、灭 1 秒,循环不止。. 仿真演示. 三. 相关知识. 1 . 16 位加法计数器

Download Presentation

任务 13  定时器控制单灯秒闪

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 任务13 定时器控制单灯秒闪 4学时

  2. 1.掌握定时计数器编程控制方法 2.掌握定时计数器的查询方式编程要点 3.掌握定时计数器的中断方式编程要点 一.任务目标

  3. 二.任务要求 通过P1.x口线控制外接的LED发光二极管亮1秒、灭1秒,循环不止。

  4. 仿真演示

  5. 三. 相关知识 1.16位加法计数器 • 定时器/计数器的核心是16位加法计数器,用特殊功能寄存器TH0、TL0及TH1、TL1表示。TH0、TL0是定时器/计数器0加法计数器的高8位和低8位,TH1、TL1是定时器/计数器1加法计数器的高8位和低8位。 • 作计数器用时,加法计数器对芯片引脚T0(P3.4)或T1(P3.5)上的输入脉冲计数。 • 作定时器用时,加法计数器对内部机器周期脉冲T计数。

  6. 2.定时器/计数器方式控制寄存器TMOD • 定时器/计数器T0、T1各有四种工作方式,可通过指令对TMOD设置来选择。TMOD的低4位用于定时器/计数器0,高4位用于定时器/计数器1。

  7. 定时器/计数器方式控制寄存器TMOD • D7位 GATE——T1的门控位 • D6位 C/T——T1的功能选择位 • D5D4位 M1M0——T1的工作方式选择位 • D3位 GATE——T0的门控位 • D2位 C/T——T0的功能选择位。 • D1D0位 M1M0——T0的工作方式选择位

  8. 定时器/计数器方式控制寄存器TMOD

  9. 3.定时器/计数器控制寄存器TCON • TCON的作用是控制定时/计数器的启动与停止,标志定时/计数器的计满溢出和中断情况。

  10. 定时器/计数器控制寄存器TCON • TCON.7位 TF1——定时器T1的溢出标志位 • TCON.6位 TR1——定时器T1运行控制位 • TCON.5位 TF0——定时器T0的溢出标志位 • TCON.4位 TR0——定时器T0运行控制位 • TCON.3位 IE1——外部中断1(INT1)的请求标志位 • TCON.2位 IT1——外部中断1(INT1)触发方式选择位 • TCON.1位 IE0——外部中断0(INT0)的请求标志位 • TCON.0位 IT0——外部中断0(INT0)触发方式选择位

  11. 方式字的应用举例 • 设定时器T0为定时工作方式,要求软件启动按照方式1工作,定时器T1为计数方式,要求软件启动按照方式0工作。根据TMOD寄存器各位的作用,可知命令字为: • 由于TMOD不能位寻址,因此指令格式为: • MOV TMOD,#41H

  12. 4.定时器/计数器方式0(M1M0=00) • 在方式0工作条件下,T0/T1是13位计数器,如图4.1.1所示 • 计数值由下式确定: • N=213-x=8192-x • 式中N为计数值,x是THx、TLx的初值。x=8191时为最小计数值1,x=0时为最大计数值8192,即计数范围为1—8192。 • 注意:计数器溢出后,必须用指令重新对THx、TLx设置初值,否则下一次THx、TLx将从0开始计数。 • 采用方式0时计算和装入计数器初值时比较麻烦而且容易出错,因此一般情况下尽量避免采用此方法。

  13. 5.定时器/计数器方式1(M1M0=01) • 当M1M0=01时,定时器/计数器设定为工作方式1,构成16位定时器/计数器。此时THx、TLx都是8位加法计数器。其它与工作方式0相同。 • 在方式1时,计数器的计数值由下式确定: • N=216-x=65536-x • 计数范围为1—65536。定时器的定时时间由下式确定: • t=N×T=(65536-x)T T为机器周期 • 如果fosc=12MHz,则T=1μs,定时范围为1—65536 μs。

  14. 四、任务分析 1、硬件电路

  15. 2、软件分析 • 计算计数器初值 • 溢出一次的定时时间为100000us(即t=0.1s),连续溢出10次,总的定时时间就是1s。此时的计数器初值由: • 216-x=t/T • 得:x=216-t/T=65536-100000/2=15536=3CB0H • 定时器初始化 • 初始化涉及到两个方面: • 一是设置TMOD,本例中TMOD=00000001B=01H; • 二是装入计数初值,本例中TH0=3CH,TL0=B0H。 • 完整程序设计(具体内容省略)

  16. 开始 定时器初始化,R1=10 启动定时器 溢出? No Yes 清除溢出标志,重装计数初值 No R1-1=0? Yes R1=10,P1.x取反 编写程序流程图 • 查询方式的程序流程图

  17. 主程序: 开始 定时器初始化,中断初始化 R1=10 启动定时器,开中断 等待中断 子程序: 进入中断子程序 重装计数初值 No R1-1=0? Yes R1=10,P1.x取反 中断返回 编写程序流程图 • 中断方式的程序流程图

  18. 五.任务实施 • 1、在PROTEUS软件中按图4.1.2搭接好电路; • 2、在伟福软件中编辑程序,进行编译,得到.HEX格式文件; • 3、将所得的HEX格式文件在PROTEUS中指定到MCU芯片中; • 4、运行仿真,观察仿真结果; • 5、PROTEUS中结果正常后,用实际硬件搭接并调试电路,通过编程器将.HEX格式文件下载到AT89C51中,通电验证实验结果。

  19. 六、任务总结 • 任务回顾 • 课后作业 • 思考题

  20. Thank you! 标志

More Related