概述
第一节 硬件解读
关于定时器,又称计数器,是单片机内部的计时的独立的系统。关于它的引脚,我们可以在原理图里面查到。
从上图中,我们不难发现,一共有5个中断源,引脚分别是P3.2,P3.3,P3.6,P3.7和P3.0;一共有2个定时器,引脚分别是P3.4和P3.5。与上一章的得到的结论一摸一样。
本章将先讲解定时器,关于中断的讲解,将放在按键部分。
第二节 程序编写
对于上述程序,重点是定时器的初始化与定时器服务函数。
在定时器初始化函数中,第一个寄存器是TMOD,该寄存器信息如下图所列。可以看出,2个定时/计数器有4种操作模式,通过TMOD的M1和M0选择。高四位bit控制T1,低四位bit控制T0。所以定时器T0有4种工作方式;TMOD =0x00(工作方式0),TMOD = 0x01(工作方式1),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。定时器T1也有4种工作方式;TMOD =0x00(工作方式0),TMOD = 0x10(工作方式1),TMOD = 0x20(工作方式2),TMOD = 0x30(工作方式3)。但是需要注意的是,如果定时器T0用方式1,T1用方式2,那TMOD = 0x21(高位T1,低位T0)。这就是为什么在TMOD寄存器中没有直接赋值,使用语句“TMOD &= 0xf1; //用定时器0工作方式1”可以保留高位的定时器T1的工作模式,即使本程序中没有用到T1定时器。
TR0:T0定时使能开关,TR0 = 1,开始工作;TR0 = 1,停止工作。
ET0:T0定时器中断开关,定时时间一到,就会跑去中断程序。ET0=1,中断使能;ET0=0失能。
EA :中断总开关,你可以想象成电路的总电闸,EA=1,中断使能;EA=0,中断失能。
TH0,TL0 : T0定时器计数寄存器,组成16位的计数,0x0000--0xFFFF(0--65535),只要TH0和TL0=0xFFFF(65535),程序就会跑去中断(计数)程序,在中断(计数)程序中,我们要重新给TH0,TL0重新赋值的。假如说,我们定时50毫秒,TH0,TL0对应着什么值呢?上面我们说了,TH0,TL0,组成的16位计数器计数范围是 0--65535 。50ms = 50 000us,我们只要让 TH0和TL0 从(65535 - 50000)开始计数,TH0,TL0就会不停的+1,直到TH0,TL0=65535,就是计数了50000次,时间就是过了50ms。我们只要在中断(计数)程序里面,重新赋值给TH0,TL0=(65535 - 50000),定时器就会不停得每50ms中断一次了。
所以,TH0=(65535-50000)/256;TL0 =(65535-50000)%256 ;
好吧,T0程序例子,定时20ms的程序 :
TMOD = 0x00;//工作方式0
TR0 = 1;//开始工作
ET0=1;//中断使能
TH0=(65535-20000)/256;
TL0 = (65535-20000)%256 ;
说完了T0,T1该怎么办?我开始的时候说了,T0,T1是一对双胞胎。大家把上面T0例子程序稍加该动即可:
TMOD = 0x00;//工作方式0
TR1 = 1;//开始工作
ET1=1;//中断使能
TH1=(65535-20000)/256;
TL1=(65535-20000)%256;
上面是所有关于定时器初始化函数的内容,如果大家不明白可以私聊微信公众号管理员。
接下来就是定时器服务函数了。这个函数里面的TH0与TL0与定时器初始化的是一模一样的,该函数最难的是这个函数的命名规范,该函数命名规范如下:
函数类型函数名interrupt n
中断号 中断源 中断向量
0 外部中断0 0003H
1 定时器/计数器0 000BH
2 外部中断1 0013H
3 定时器/计数器1 001BH
4 串行口 0023H
第三节 实验现象
实验要求:
1:USB1插上电脑。
2:J13选择”IO”模式。
3:打开开发板开关S3。
实验现象:
1:L9作为电源指示灯,常量。
2:数码管显示"12-00-00",并每秒加1
注意事项:
1:数码管有残影,属于正常现象。
往期精彩
【1】撞上电子1000粉丝福利
【2】免责声明
【3】蓝桥杯电子组教程汇总
【4】【蓝桥杯单片机】第十二章 数码管(终极篇)
【5】【蓝桥杯单片机】第十三章 中断系统与定时器/计数器(理论)
声明:
1:撞上电子公众号秉持着免费的服务,永远的开源这一宗旨,为广大电子或电子相关专业的大学生提供比赛教程。
2:免费领取比赛资料,资料请联系人工客服。
3:其他平台:微信公众号:撞上电子
4:原创内容,禁止转载,禁止用于商业用途,违者必究。
最后
以上就是沉默大侠为你收集整理的【蓝桥杯单片机】第十四章 定时器/计数器(实验)的全部内容,希望文章能够帮你解决【蓝桥杯单片机】第十四章 定时器/计数器(实验)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复