基本信息
文件名称:《单片机技术与应用》 课件 项目四任务6-定时器较长定时的实现.pptx
文件大小:757.46 KB
总页数:16 页
更新时间:2025-06-19
总字数:约1.34千字
文档摘要

项目四简易秒表设计

单片机定时器结构任务一定时器寄存器的初始化任务二定时器方式0的基本使用任务三定时器方式1的基本使用任务四定时器方式2的基本使用任务五定时器较长定时的实现任务六单片机驱动液晶任务七简易秒表的设计任务八

任务六定时器较长定时的实现

任务描述本次任务要求掌握定时器实现较长定时时间的方法,完成利用定时/计数器T0定时1s。

知识链接定时器较长定时的实现

以单片机晶振频率fosc=12Mhz为例,讨论下定时器4种工作方式下最大定时时间:定时器较长定时的实现方式0:最大定时时间=最大计数值8192*1us(机器周期)=8192us.方式1:最大定时时间=最大计数值65536*1us(机器周期)=65536us=65.536ms方式2:最大定时时间=最大计数值256*1us(机器周期)=256us.方式3:最大定时时间=最大计数值256*1us(机器周期)=256us.

下面如果要求我们定时1秒,上面任何一种工作方式都不满足定时要求。那如何实现定时1秒呢?可以利用软件计数器!选定定时器工作于方式1,定时50ms,再设置一软件计数器count,每个50ms定时时间到,就加1,加够20次,就意味着1秒的定时时间到了。其他任意定时,都可以通过此方法实现。

任务实施使用定时器T0的中断控制P1.1引脚LED的闪烁1.硬件电路2.程序设计

1.硬件电路

2.软件设计#includereg51.h#defineucharunsignedchar#defineuintunsingnedintucharcount=0;sbitLED=P1^1;voidtimer0_init(){ TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; //启动定时器0 ET0=1; //定时器T0中断使能 EA=1; //CPU开中断}voidtimer(void)interrupt1using0{ count++; if(count==20){

count=0; LED=~LED; }TH0=(65536-50000)/256;//重装初值 TL0=(65536-50000)%256;}voidmain(){timer0_init();while(1){ ;}}

对比任务5任务实施定时器1方式2无需重装初值

知识总结单片机定时器设置较长时间定时时,可以设置一软件计数器,对基本的定时来计数,便可以实现较长时间的定时。

综合评价

课后作业编写一段程序,让51MCU的P2.0输出占空比为70%,频率为100HZ的矩形波(用定时器完成),fosc=6MHz。

谢谢观看《单片机技术与应用》课程