编辑: xiong447385 2019-07-31
第八讲、内部定时器使用 1.

51定时器/计数器的概述:1)内部有2个定时/计数器:T

0、T1;

2)每个定时/计数器都有4种工作方式: 方式

0、方式

1、方式

2、方式3;

3)51定时/计数器的定时方法: a.将系统时钟信号f(晶体震荡信号)进行12分频,得到一个频率较低的信号(f/12),再利用内部的计数器对该信号进行加1计数. 例如晶体为12mhz,则计数(时)脉冲的频率为 12m/12=1mhz;

即计数脉冲的周期为t=1/12mhz=1us,如果要定时1ms就需要计数1000个计数脉冲周期. b .51单片机采用预置初值的办法计数(计时): 51内部的T0 、T1 都存在最大的计数值,当计数达到最大值时,如果再进行计数将使得计数脉冲的个数大于最大值(容量),这时就叫做定时器溢处. 51的定时器设计理念就是预先在计数器中装上一个数(初值),在此基础之上再对计数脉冲计数,当产生溢出时说明计数(定时时间)到. 2.与定时器有关的寄存器及其设置: 与定时器有关的寄存器主要有3个,它们都位于内部RAM的特殊功能寄存器区. 分别是: TMOD :地址99H (设置定时器工作方式) TCON :地址88H(定时器控制) THX :用于放置初值的高8位TH0的地址: 8CH, TH1的地址8DH;

TLX :用于放置初值的低8位TL0的地址: 8AH, TL1的地址8BH;

IE:用于控制定时器及其他的中断的使能与否.(中断开关) TCON:中断标志和定时器开关. 1)TMOD: A.用于设置定时器的工作方式. B.是一个8位寄存器,它不能进行位操作.只能进行字节操作. C. 定时器0和定时器1都有4种工作方式:方式

0、方式

1、方式

2、方式3;

各种工作方式的特点如下: 方式0:13位计数器或定时器,TL0的低3位未用,最大可计数8192,当计满产生溢出后需要用软件方法重装初值,否则将从0开始计数;

方式1:16位计数器或定时器;

最大65536,当计满产生溢出后需要用软件方法重装初值,否则将从0开始计数;

方式2:8位自动重装初值方式,最大256;

这种方式把TLX和THX分开用,THX用于保存初值,TLX用来计数,当TLX溢出后由单片机内部硬件自动将THX的初值装到TLX中.(主要用于串口通信波特率发生和产生波形)方式3:只有T0才有方式3 .(一般不用) D.TMOD对定时器T1和T0的设置主要有3项: 1)工作在定时方式还是计数方式;

(C/T):0定时;

1计数. 2)定时器运行与否是否受外部引脚 (INT0或INT1)的控制.一般设为0. 3)工作在方式0―方式3中的何种状态;

E.TMOD的设置方法: M0 M1 C/T GATE M0 M1 C/T GATE

0 1

2 3

4 5

6 7 T1 T0 GATE=1运行受外部引脚电平控制(即INTX控制TX),GATE=0运行不受外部引脚电平控制.C/T=1为计数方式,C/T=0为定时方式.M1M0 :00 方式0;

01 方式1;

10 方式2;

11方式3. TMOD 89H 2)TCON(可以进行位操作) 用于产生定时器溢出标志和控制定时器开关(工作与否). IT0 IE0 IT1 IE1 TR0 TF0 TR1 TF1

0 1

2 3

4 5

6 7 低4位与用于外部中断触发方式和中断标志 TR

0、TR1定时器

0、1运行控制:1运行,0停止运行;

TF

1、TF0定时器

1、0溢出标志位,查询法时要软件清0;

3)中断允许控制寄存器: 可以位操作. EX0 ET0 EX1 ET1 ES / / EA

0 1

2 3

4 5

6 7 EA :中断总开关ES:串口中断开关ET1:定时器1开关ET0:定时器0开关EX0 、EX1 外部中断开关 IE A8H 可位寻址 3.定时器的使用步骤: 1)根据定时的时间长短确定选用何种工作方式;

2)根据所选的工作方式和所需计的时间计算定时器的初值;

3)向TH和TL装入初值;

4)确定用查询方式还是用中断方式来处理定时器溢出事件,如果是查询法在处理定时器事件时应该用软件将定时器的溢出标志位清0. 5)打开总中断和定时器中断 6)打开定时器 定时器初值的计算方法: 1.首先确定所使用的工作方式(确定所能计的最大机器周期数);

方式0:能计的最大数8192 ;

方式1:能计的最大数

65536 ;

方式2:能计的最大数256;

2.根据时钟频率计算出一个机器周期(每计数一次)所用的时间. t= 1/(f/12)………时钟周期12分频再求倒数. 3.对TH和TL装入初值: TH=(所能计的最大数-要计的时间数 / t)/ 256;

TL=(所能计的最大数-要计的时间数 / t)% 256;

定时器使用: 1.用T0实现P0.1引脚的发光二极管每隔0.5秒钟闪烁一次.(要求采用查询法) 2.用T0实现P0.1引脚的发光二极管每隔0.5秒钟闪烁一次.(要求采用中断法) 3.用定时器产生4kHZ的方波,驱动蜂鸣器发声.(用中断法) 4. 设计一个具有闹铃功能的时钟,要求:走时可以调整;

闹铃时间可以调整;

闹铃时间到了让蜂鸣器发声1分钟,同时点亮P0.0的led 5.用定时器产生1,2,3,4,5,6,7七个音节.使蜂鸣器发出相应的声音.并编写一个程序使蜂鸣器唱一首歌.

1976 7

988 7

494 7

1760 6

880 6

440 6

1569 5

784 5

392 5

1397 4

699 4

349 4

1319 3

659 3

330 3

1175 2

587 2

294 2

1047 1

523 1

262 1 频率 高音 频率 中音 频率 低音 6.设计一个程序,利用定时器来测试按钮K1按下的时间,并在数码管上显示出来.要求能测试的最长时间为10s.7.用另一台实验板产生一个方波,在利用本实验班来测试该方波的频率,并显示在数码管上.8.利用单片机计数器来测试按钮的所按的次数,并显示在数码管上.

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题