单片机课程-版

上传人:suns****4568 文档编号:93086422 上传时间:2019-07-16 格式:PPT 页数:31 大小:120KB
返回 下载 相关 举报
单片机课程-版_第1页
第1页 / 共31页
单片机课程-版_第2页
第2页 / 共31页
单片机课程-版_第3页
第3页 / 共31页
单片机课程-版_第4页
第4页 / 共31页
单片机课程-版_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《单片机课程-版》由会员分享,可在线阅读,更多相关《单片机课程-版(31页珍藏版)》请在金锄头文库上搜索。

1、6.1 定时器的定时与计数功能,1. 定时器的计数功能 所谓计数是指对单片机外部所发生的事件进行累计。外部事件的发生以脉冲的形式表示,因此计数功能的实质就是对外部脉冲进行计数。检测一个1 到0 的跳变需要2 个机器周期,故外部输入脉冲的最高频率为振荡频率的1/24。虽然计数器对输入脉冲的占空比无特殊要求,但为了确保某个电平在变化之前被采样一次,要求电平的保持时间至少是一个完整的机器周期。 2. 定时器的定时功能 定时器的定时功能也是通过计数的方式来实现的,只是此时的计数脉冲来自单片机内部,由振荡器经12 分频后提供,即每个机器周期提供一个计数脉冲。所以在定时状态下,每个机器周期定时器自动加1

2、直至计满溢出。,6.2 定时器的有关寄存器 MCS-51 内部定时器的各种功能均在寄存器TCON 及TMOD 的控制下实现。 6.2.1 定时器控制寄存器(TCON),6.2.2 定时器工作方式控制寄存器(TMOD) 注意该寄存器不能进行位寻址,只能使用字节传送指令设置其内容。,6.3 定时器的4 种工作方式 6.3.1 工作方式0, 最大计数量: 已知要求的计数量n,则计数器的初值为: 最大定时时间: 已知要求的定时时间t,则定时器的初值为: 求得初值以后,应将x 分配到TL0 和TH0:,【例6-1】设定时器T0 选择工作方式0,定时状态,定时时间1ms,fosc=6MHz。试确定T0 初

3、值,计算最大定时时间tmax。 解: 计算最大定时时间 计算计数器的初值 转换为二进制数:x=1111 0000 01100B 取x 的低5 位送TL0 的低5 位,TL0 的高3 位取0,则(TL0)=0000 1100B=0CH。取x 的高8 位送给TH0,则(TH0)=1111 0000B=0F0H。,【例6-2】设单片机晶振频率为fosc=12MHz,使用定时器T1 以方式0 产生周期为2ms 的等宽连续方波,并由P1.0 输出(用中断方式完成)。 解:欲产生周期为2ms 的等宽连续方波,只需在P1.0 端以1ms 为周期交替输出高低电平即可。因此定时时间应为1ms。 计算计数初值 使

4、用12MHz 晶振,一个机器周期为1s。设待求计数初值为x,则: 将x 表示为二进制形式:x=1110 0000 11000B,故(TH1)0E0H,(TL1)18H。 TMOD 寄存器初始化 定时器T1 为方式0:M1M000;定时状态: T / C 0;为实现定时器T1 的运行控制,GATE0。定时器T0 不用,有关位设定为0。因此TMOD 寄存器应初始化为00H。,ORG 0000H AJMP START ORG 001BH LJMP PITO1 ORG 0100H START: MOV SP, #60H MOV TMOD, #00H MOV TH1, #0E0H MOV TL1, #1

5、8H CLR P1.0 SETB EA SETB ET1 SETB TR1 SJMP $ PITO1: MOV TL1, #18H MOV TH1, #0E0H CPL P1.0 RETI END,6.3.2 工作方式1,【例6-3】设单片机晶振频率为fosc=12MHz,使用定时器T1 以方式1 产生周期为2ms 的等宽连续方波,并由P1.0 输出(用查询方式完成)。 解:本例同例6-2,基本定时时间为1ms。 计算计数初值 将x 表示为二进制形式:x= 1111110000011000B,故(TH1)0FCH,(TL1)18H。 TMOD 寄存器初始化 定时器T1 为方式1:则M1M001

6、;定时功能: T / C 0;为实现定时器T1 的运行控制,GATE0。定时器T0 不用,有关位设定为0。因此TMOD 寄存器应初始化为10H。,ORG 0000H START: MOV TMOD, #10H CLR P1.0 MOV TL1, #18H MOV TH1, #0FCH SETB TR1 LOOP: JNB TF1, $ MOV TL1, #18H MOV TH1, #0FCH CLR TF1 CPL P1.0 SJMP LOOP END,6.3.3 工作方式2,相关参数的计算如下:,【例6-4】用定时器T0 以工作方式2 计数,每计100 次进行累加器加1 操作。 解: 计算计

7、数初值 所以,(TH0)9CH,(TL0)9CH TMOD 寄存器初始化 M1M010, T / C 1,GATE0 因此 (TMOD)06H,ORG 0000H AJMP START ORG 0100H START: MOV IE, #00H MOV TMOD, #06H MOV TH0, #9CH MOV TL0, #9CH SETB TR0 LOOP: JBC TF0, LOOP1 SJMP LOOP LOOP1: INC A SJMP LOOP END,例6-5 使用定时器T0 以方式2 产生频率为5KHz 的连续方波,并由P1.0 输出(用查询方式完成)。设单片机晶振频率为fosc=

8、6MHz。 解:频率为5KHz,则周期为200s,基本定时时间为100s。 计算计数初值 所以,(TH0)0CEH,(TL0)0CEH。 TMOD 寄存器初始化 定时器T0 为方式2:则M1M010;定时功能: T / C 0;为实现定时器T0 的运行控制,GATE0。定时器T1 不用,有关位设定为0。因此TMOD 寄存器应初始化为02H。,ORG 0000H START: MOV TMOD, #02H CLR P1.0 MOV TL0, #0CEH MOV TH0, #0CEH SETB TR0 LOOP: JNB TF0, $ CLR TF0 CPL P1.0 SJMP LOOP END,

9、6.3.4 工作方式3 1. 工作方式3 下的定时器0,2. 工作方式3 下的定时器1,6.4 定时器的综合应用 【例6-6】利用定时器1 编写1s 的定时程序(假设单片机系统的振荡频率为6MHz)。 解:定时程序一般都做成子程序,以便被其他程序调用。用定时器来实现定时,主要考虑定时器的最大定时时间是否大于或等于要求的定时时间。如果不能满足要求,就要另外设置一个软计数器,对定时器基本定时的次数进行累计。,1. 确定定时器工作方式 因为振荡频率为6MHz,所以定时器0 在各种工作方式下的最大定时时间分别为: 方式0: 方式1: 方式2: 可见三种工作方式下的最大定时时间都小于要求的定时时间,在这

10、种状况下,为了减少中断或定时到的次数,避免响应误差或中间重置误差,使定时更精确,常选用定时时间最长的一种方式,即方式1。,2. 确定基本定时时间 确定基本定时时间的原则:基本定时时间尽量长且必须与要求的定时时间成整数倍关系。据此可选择定时器的基本定时时间为125ms,控制软计数器的累计次数为8次,即可实现1s 定时要求。 3. 计算初值 因此,(TL0)=0DCH,(TH0)=0BH。,ORG 1000H DEL_1S: PUSH ACC MOV TMOD, #10H ;定时器1、方式1、定时状态 MOV TL1, #0DCH MOV TH1, #0BH ;送125ms 定时初值 MOV R2

11、, #8 ;设置软计数器,使8125ms=1s SETB TR1 ;启动定时器1 LOOP: JNB TF1, $ ;判断基本定时(125ms)是否到 MOV TL0, #0DCH MOV TH0, #0BH CLR TF1 ;清除溢出标志 DJNZ R2, LOOP ;判断1s 定时是否到 CLR TR1 ;关闭定时器1 RET ;1s定时结束,【例6-7】用单片机的定时器设计一个工频频率计,并用发光二极管以二进制形式显示所测频率(设单片机的振荡频率为6MHz)。,在实际应用中,我们经常需要测量市电频率,如图6-6 所示电路即是一个比较简单的在线频率测量电路。市电经过变压器降压后,经过零电压

12、比较器将交流信号变为方波,为防止干扰,在比较器输出和定时/计数器的计数输入引脚T0 之间加了一个施密特触发器。利用发光二极管来对测量到的当前频率进行显示。 本频率计的测量方法采用直接测量法。即测量1 秒内在T0 引脚上出现的下降沿的个数,这就是市电的频率值。因为市电频率在50Hz 左右,所以将定时器0 设置为计数状态、方式2,用来对输入信号累计,其初值为0,即(TH0)=00H,(TL0)=00H;将定时器1 设置为定时状态、方式1,基本定时时间为125ms,根据例6-6 可知其初值为:(TH1)=0BH,(TL1)=0DCH。,ORG 0000H AJMP MAIN ORG 001BH AJ

13、MP T_1 ORG 0100H MAIN: MOV SP, #60H MOV P1, #00 MOV TMOD, #16H MOV TL0, #00H MOV TH0, #00H MOV TH1, #0BH MOV TL1, #0DCH MOV R3, #8 SETB EA SETB ET1 ORL TCON, #01010000B SJMP $,T_1: DJNZ R3, EXIT ANL TCON, #10001111B MOV A, TL0 CPL A MOV P1, A MOV TH0, #00H MOV TL0, #00H MOV TH1, #0BH MOV TL1, #0DCH MOV R3, #8 ORL TCON, #01010000B RETI EXIT: MOV TH1, #0BH MOV TL1, #0DCH RETI END,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号