基本信息
文件名称:《单片机技术与应用》 课件 项目四任务4-定时器方式1的基本使用.pptx
文件大小:459.56 KB
总页数:10 页
更新时间:2025-06-19
总字数:约1.89千字
文档摘要

项目四简易秒表设计

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

任务四定时器方式1的基本使用

任务描述本次任务要求熟悉单片机定时/计数器的方式1的基本使用,利用定时/计数器T0输出10ms方波。

知识链接定时器的工作方式1

16位的定时计数器,由TH的8位和TL的8位组成。方式1M1M0=01T1(P3.5)GATETR1INT1震荡器÷12TL18位TH18位TF1中断KC/T=0C/T=1控制T1为例:定时/计数器方式1逻辑图16位计数器“+1”1中断TF1“+1”“+1”定时器的工作方式1

任务实施从P1.1输出周期为10ms的方波。1.任务分析2.硬件电路3.程序设计

1.任务分析用P1.1作方波输出信号,周期为10ms的方波。即可用每5ms改变一次电平的方法完成,故定时值可设置为5ms。可做“+1”运算5000次,使T0工作在方式1,即16位计数器。定时初值:X=M-计数次数=65536-5000TH0=(65536–5000)/256=0xECTL0=(65536–5000)%256=0x78注意:需要不断重装计数初值。GATEC/TM1M0控制T1控制T00001TMOD选择方式1,16位计数器选择定时器方式INT0不参与控制

2.硬件电路

3.软件设计#includereg51.hsbitP1_1=P1^1;voidmain(void){TMOD=0x01; //定时器0方式1TR0=1;for(;;){TH0=(65536-5000)/256; //置计数初值 TL0=(65536-5000)%256; while(!TF0); //查询等待TF0复位P1_1=!P1_1; //定时时间到P1.0反相TF0=0; //软件清TF0}}查询方式

#includereg51.hsbitP1_1=P1^1;//------------------//定时器0中断处理程序-----------voidtimer0(void)interrupt1{P1_1=!P1_1; //P1.0取反TH0=(65536-5000)/256; //计数初值重装载TL0=(65536-5000)%256;}//-------------------主函数-------------------------------------voidmain(void){TMOD=0x01;P1_1=0;TH0=(65536-5000)/256; //预置初值TL0=(65536-5000)%256;EA=1;ET0=1;TR0=1;while(1);}中断方式

ETx=1; //开定时x中断,x=0或1EA=1; //开总中断tx_srv()interruptn{ //n=1或3……}若是查询方式——采用条件判断语句若是中断方式→中断初始化设置和中断服务程序:while(!TFx); //x=0或1补充说明:确定采用何种方式处理溢出结果

知识总结通过定时器实现定时,有两种实现方法:查询方式和中断方式。两种不同方式的区别在于确定采用何种方式处理溢出结果。中断方式是通过中断初始化设置和中断服务程序,而查询方式时采用条件判断语句判断溢出标志TFX的值。只用后者时要注意每当查询到TF0=1时,必须用指令对其清零。

综合评价

课后作业假设系统时钟频率采用6MHz,要在P1.0上输出一个周期为2ms的方波,要求用定时器方式1实现。

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