单片机原理及应用13 的项目四电子时钟的设计与调试ppt课件_第1页
单片机原理及应用13 的项目四电子时钟的设计与调试ppt课件_第2页
单片机原理及应用13 的项目四电子时钟的设计与调试ppt课件_第3页
单片机原理及应用13 的项目四电子时钟的设计与调试ppt课件_第4页
单片机原理及应用13 的项目四电子时钟的设计与调试ppt课件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、工程四工程四 电子时钟设计与调试电子时钟设计与调试工程背景工程背景定时定时/计数器是单片机芯片中最根本的外围接口,其任务方式的灵敏运计数器是单片机芯片中最根本的外围接口,其任务方式的灵敏运用对提高编程技巧,减轻用对提高编程技巧,减轻CPU的负担和简化外围电路有很大益处。定的负担和简化外围电路有很大益处。定时时/计数器的用途非常广泛,常用于丈量时间、速度、频率、脉宽、提计数器的用途非常广泛,常用于丈量时间、速度、频率、脉宽、提供定时脉冲信号等。供定时脉冲信号等。51单片机内部设有两个单片机内部设有两个16位的可编程定时器位的可编程定时器/计数器和两个特殊功能存计数器和两个特殊功能存放器控制存放器

2、和方式存放器。其功能如任务方式、定时时间、放器控制存放器和方式存放器。其功能如任务方式、定时时间、量程、启动方式等均可由指令来确定和改动。量程、启动方式等均可由指令来确定和改动。工程目的工程目的掌握掌握51单片机定时器单片机定时器/计数器电路的构造和任务原理计数器电路的构造和任务原理掌握定时掌握定时/计数控制存放器设置方法、任务方式的控制计数控制存放器设置方法、任务方式的控制学会电子钟的设计和编程学会电子钟的设计和编程工程义务工程义务根据定时根据定时/计数器的电路构造及任务原理,任务方式及控制存放器的计数器的电路构造及任务原理,任务方式及控制存放器的作用,设计电子时钟电路、编程实现电子钟时、分

3、、秒的显示作用,设计电子时钟电路、编程实现电子钟时、分、秒的显示并改动电路和程序使电子钟具有正计时秒表和并改动电路和程序使电子钟具有正计时秒表和60S的倒计时功能。的倒计时功能。学习义务学习义务 定时定时/计数器编程运用计数器编程运用 学习内容学习内容 51单片机定时单片机定时/计数器的构造和任务原理计数器的构造和任务原理 定时定时/计数器的控制存放器和任务方式计数器的控制存放器和任务方式 定时定时/计数器的计数初值计算计数器的计数初值计算 定时定时/计数器编程运用举例计数器编程运用举例 学习目的学习目的 了解了解51单片机定时单片机定时/计数器的构造和任务原理计数器的构造和任务原理 了解定时

4、了解定时/计数器的控制存放器计数器的控制存放器 掌握定时掌握定时/计数器不同任务方式的特点计数器不同任务方式的特点 掌握计数初值计算和定时掌握计数初值计算和定时/计数器运用编程方法计数器运用编程方法一、一、 定时定时/计数器的构造和任务原理计数器的构造和任务原理 1构造构造 8051单片机内部设计有两个单片机内部设计有两个16位的定时器位的定时器/计数器,其构造组成如图计数器,其构造组成如图4-1所示。所示。 CPUTCON (88H)TH1TL1TH0TL0INT1(P3.3)INT0(P3.2)中断T1 (P3.5)定时器1定时器0溢出启动(8DH)(8BH)(8CH)(8AH)启动内部总

5、线溢出 工作方式工作方式70T0 (P3.4)70TMOD (89H)70701构造构造 从定时器从定时器/计数器的构造图中我们可以看出,计数器的构造图中我们可以看出,16位的定时位的定时/计数器分别由两个计数器分别由两个8位公用存放器组成,即:位公用存放器组成,即:T0由由TH0和和TL0构成;构成;T1由由TH1和和TL1构成,其访问地址依次为构成,其访问地址依次为8AH-8DH,每个存放器均可单独访问。,每个存放器均可单独访问。TH、TL本质上为加本质上为加1计计数器,是用于存放定时或计数初值的。此外,其内部还有数器,是用于存放定时或计数初值的。此外,其内部还有一个一个8位的定时器方式存

6、放器位的定时器方式存放器TMOD和一个和一个8位的定时控制位的定时控制存放器存放器TCON。这些存放器之间是经过内部总线和控制逻。这些存放器之间是经过内部总线和控制逻辑电路衔接起来的。辑电路衔接起来的。TMOD主要是用于选定定时器的任务主要是用于选定定时器的任务方式;方式;TCON主要是用于控制定时器的启动停顿,此外主要是用于控制定时器的启动停顿,此外TCON还可以保管还可以保管T0.T1的溢出和中断标志。当定时器任的溢出和中断标志。当定时器任务在计数方式时,外部事件经过引脚务在计数方式时,外部事件经过引脚T0(P3.4)和和T1(P3.5)输入。输入。2任务原理任务原理 以定时以定时/计数器

7、计数器T0为例。为例。T0、T1均可作为定时或计数功能。均可作为定时或计数功能。定时:定时基准来自系统时钟,为振荡器频率的定时:定时基准来自系统时钟,为振荡器频率的12分频。即分频。即1个机个机器周期定时器加器周期定时器加1,定时时间,定时时间=计数值计数值*机器周期。机器周期。计数:计数:T0或或T1输入的外部脉冲。最高计数频率为振荡器频率的输入的外部脉冲。最高计数频率为振荡器频率的1/24。定时定时/计数器计满时产生溢出使计数器计满时产生溢出使TCON的的TF位置位置1。二、定时二、定时/计数器的控制计数器的控制 1任务方式存放器任务方式存放器TMOD TMOD的高半字节与低半字节对应控的

8、高半字节与低半字节对应控制位称号一样。高半字节用来控制制位称号一样。高半字节用来控制T,低半字节用来控制低半字节用来控制T0,不能位寻址。,不能位寻址。GATE 门控位。门控位。GATE = 0 时,假设时,假设TR0 = 1,开启,开启T0计数任务;计数任务; 假设假设TR0 = 0,停顿,停顿T0计数。计数。GATE = 1 时,假设时,假设TR0 = 1 且且/INT0 = 1时,开启时,开启T0计数;计数; 假设假设TR0 = 1 但但 /INT0 = 0,那么不能开启,那么不能开启T0计数。计数。 假设假设TR0 = 0, 停顿停顿T0计数。计数。C/T:外部计数器:外部计数器 /

9、定时器方式选择位功能选择位。定时器方式选择位功能选择位。C/T=0:定时。:定时。 =1:计数。:计数。M1 M0:任务方式选择位。:任务方式选择位。1任务方式存放器任务方式存放器TMOD1任务方式存放器任务方式存放器TMOD 方式方式0:定时:定时/计数器由计数器由TH的的8位与位与TL的低的低5位组成,位组成,TL计计数满数满32向向TH进位。进位。 方式方式1:由:由TH的的8位与位与TL的的8位组成位组成16位定时位定时/计数器。计数器。TL计数满计数满256向向TH进位。进位。 方式方式2:定时:定时/计数器由计数器由TL的的8位组成。位组成。TH为计数初值重装为计数初值重装载存放器

10、。与方式载存放器。与方式0、1有区别:有区别: 1计数位数不同;计数位数不同; 2初值自动重装初值自动重装 方式方式3:T0分为两个分为两个8位的定时位的定时/计数器,而计数器,而T1无此方式。无此方式。T0设定为方式设定为方式3时,分成两独立定时时,分成两独立定时/计数器计数器TL0和和TH0。 TL0运用运用T0的一切控制位:的一切控制位:C/T、GATE、TR0、INT0、TF0定时定时/计数,计数, TH0运用运用T1的控制位的控制位TR1、TF1 ,只能用于定时。,只能用于定时。2定时定时 / 计数器控制存放器计数器控制存放器TCON TCON可以位寻址。可以位寻址。 TR0 定时定

11、时 / 计数器计数器0运转控制位。软件置位,软件复运转控制位。软件置位,软件复位。位。 TR1 定时定时 / 计数器计数器1运转控制位。运转控制位。 用法与用法与TR1类似。类似。 TF0、TF1:定时:定时/计数器计数器T0、T1的溢出标志位。的溢出标志位。 TF0、1由硬件置由硬件置1;CPU呼应中断自动清呼应中断自动清0,查询方式软,查询方式软件清件清0。三、计数初值计算三、计数初值计算 计数功能计数功能 计数频率最高为计数频率最高为fosc / 24。 计数值计数值=2nX 其中其中n为计数器的位数,由任务方式决议,为计数器的位数,由任务方式决议,X为计数初值。为计数初值。 求出求出X

12、的值后根据不同任务方式分配的值后根据不同任务方式分配TH和和TL的值。的值。 定时功能定时功能 定时基准:定时基准:12个振荡周期,即对机器周期个振荡周期,即对机器周期进展计数。进展计数。 定时时间定时时间=计数值计数值*机器周期机器周期2nX*机器周期机器周期 同样求出同样求出X的值后根据不同任务方式分配的值后根据不同任务方式分配TH和和TL的值。的值。四、定时四、定时/计数器编程运用计数器编程运用 .对定时对定时/计数器的编程初始化步骤计数器的编程初始化步骤 1根据功能确定任务方式,根据功能确定任务方式,C/T 、GATE及及M1、M0对对TMOD写控制字。写控制字。 2计算计数初值,分配

13、计算计数初值,分配TH、TL的的值,写入值,写入TH、TL。 3根据能否需求运用中断确定根据能否需求运用中断确定IE、IP; 4启动定时启动定时/计数器。计数器。.运用举例运用举例 例例4-1:有一个单片机系统,振荡频率为:有一个单片机系统,振荡频率为12MHz,要求设,要求设计一个能产生周期计一个能产生周期T=1ms的方波信号发生器,并编程调的方波信号发生器,并编程调试、用虚拟仪器察看信号波形。试、用虚拟仪器察看信号波形。 分析与计算:选用分析与计算:选用T0定时器功能,定时器功能, C/T=0,GATE= 0 由振荡频率为由振荡频率为12MHz,知机器周期为,知机器周期为1us 要得到要得

14、到T=1ms的信号,需定时的信号,需定时500 us 计数值计数值 = 定时时间定时时间/ 机器周期机器周期 = 500 所以,计数初值所以,计数初值 X = 2n500 ,n与任务方式有关。与任务方式有关。 选择任务方式,方式选择任务方式,方式0、方式、方式1均可要求均可要求2n要大于计数要大于计数值,取方式值,取方式0,n=13 213=8192 X = 8192500 = 7692, 7692/32商数装入商数装入TH0,7692%32余数装入余数装入TL0中:中: TH0 240 TL0 12.运用举例运用举例汇编言语程序: ORG 0000H LJMP MAIN ORG 000BH

15、;T0的中断入口地址 LJMP INSE1 ORG 0100HMAIN:MOV TMOD,#00H ;设置T0的任务方式MOV TL0,#12 ;装入计数初值 MOV TH0,#240 SETB TR0 ;启动T0 SETB ET0 ;开中断 SETB EA SJMP ;程序反复执行跳转动作INSE1:MOV TL0,#0CH ;计数初值重装入 MOV TH0,#0F0H CPL P1.0 ;P1.0取反,实现高低电平变化 RETI ENDC 言语程序/*声明区*/#include sbit HH=P10; /*中断函数*/void t0(void) interrupt 1 using 0 T

16、H0=7692/32; /重新加载计数初值 TL0=7692%32; HH=HH;/*主程序*/ void main() TMOD=0 x00; /设置定时器任务方式 EA=1; /开中断 ET0=1; TH0=7692/32; /加载计数初值 TL0=7692%32;TR0=1; /启动定时器任务 while(1); /显示无限循环.运用举例运用举例 例例4-2:设:设fosc=12MHz ,在两位数码管上显示,在两位数码管上显示60秒以内计时。秒以内计时。分析:分析: fosc=12MHz,机器周期为,机器周期为1us,理想定,理想定时时间为时时间为1秒。用秒。用T0或或T1作为定时器,任

17、务方式作为定时器,任务方式1,最大计数值,最大计数值65536,最长定时时间为,最长定时时间为65536 us=65.536 ms,不能到达秒定时要求,那么取,不能到达秒定时要求,那么取定时时间为定时时间为50ms,需计数,需计数50000,每,每20次定时次定时中断就可到达中断就可到达1秒时间。计数初值秒时间。计数初值=65536-50000=15536,TH=15536/25660,TL=15536%256=176。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/

18、AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51PROGRAM=2SM.HEXR1200OhmR2200OhmR3200OhmR4200OhmR5200OhmR6200OhmR7200Oh

19、m.运用举例运用举例ORG 0000H LJMP MAIN ORG 000BH LJMP ZD ORG 0100HMAIN: MOV 33H,#00H MOV 32H,#00H MOV TMOD,#01H ;T0任务于方式1 MOV TH0,#60 ;装入计数初值 MOV TL0,#176 MOV IE,#82H ;开放T0中断 SETB TR0 ;启动T0任务NEXT: MOV A,32H ;取秒单元中的数 MOV B,#10 ;除数10装入B存放器 DIV AB ;秒数除以10得到十位和个位 MOV DPTR,#TAB ;字型表道地址装入DPTR MOVC A,A+DPTR ;十位数查表得

20、到字型代码 MOV P3,#0FFH ;灭显示 MOV P2,A ;字型代码输出 MOV P3,#0EFH ;位控制 LCALL DEL MOV A,B ;取个位数显示 MOV DPTR,#TAB MOVC A,A+DPTR ;查字型 MOV P3,#0FFH MOV P2,A MOV P3,#0DFH ;另一位显示控制 LCALL DEL LJMP NEXTZD: PUSH ACC ;进入中断,先压棧维护A存放器内容 MOV TH0,#60 ;重装计数初值 MOV TL0,#176 INC 33H ;计数单元数加1 MOV A,33H CJNE A,#20,NEX ;计数值与20比较,相等那

21、么到1秒 MOV 33H,#00 INC 32H ;秒单元加1 MOV A,32H CJNE A,#60,NEX ;秒数与60比较,相等那么到1分 MOV 32H,#00NEX: POP ACC ;恢复维护内容 RETI ;前往主程序TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDEL: MOV R7,#02HDEL1: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,DEL1 RET END1汇编言语程序:汇编言语程序:设设33H作为中断计数单元,作为中断计数单元,32H作为秒单元。每次定时中断后作为秒单元。每次定时中断后33H单

22、元内的计数值加单元内的计数值加1,每计数到,每计数到20即为即为1秒,秒单元秒,秒单元32H中的秒计时加中的秒计时加1。.运用举例运用举例XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78

23、P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C51PROGRAM=WWW.HEXR1220R2220R3220R4220R5220R6220R7220R8220R9220R10220R11220R12220R13220R14220 2用用C言语编程实现言语编程实现60秒倒计时功能,两位数静态显示。秒倒计时功能,两位数静态显示。/*声明区*/#include #define uchar unsigned charuchar miao=60; /显示初值为60uchar a; u

24、char code tab=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 xC6,0 xA1,0 x86,0 x8E ;/*中断函数*/void t1(void) interrupt 3 TH1=15536/256; /计数初值重装 TL1=15536%256;a=a-1; /每次中断计数值减1if(a=0) /判别能否到1秒a=20; /到1 秒恢复计数值 miao=miao-1; /秒值减1if(miao=0) /秒值为0,重装为60 miao=60; /*主程序*/void main()

25、TMOD=0 x10; /设置定时器任务方式EA=1; /开中断ET1=1;TH1=15536/256; /加载计数初值TL1=15536%256; TR1=1; /启动定时器任务a=20; / a初值为20,20*50ms为1秒while(1) /显示无限循环P2=tabmiao /10 ; /十位数显示 P3=tabmiao %10 ; /个位数.运用举例运用举例 例例4-3:在单片机最小系统的根底上接入:在单片机最小系统的根底上接入LED数码显示器数码显示器和驱动电路,设计出电子时钟的电路原理图;编写时钟的和驱动电路,设计出电子时钟的电路原理图;编写时钟的程序,运用仿真调试软件调试,使数

26、码管显示器显示当前程序,运用仿真调试软件调试,使数码管显示器显示当前时间,并能调整。时间,并能调整。 详细功能要求如下:详细功能要求如下: 1能直接显示时、分、秒十进制数字。能直接显示时、分、秒十进制数字。 2LED数码管时钟电路采用数码管时钟电路采用24h计时方式,时、分、计时方式,时、分、秒分别用两位数码管显示,数码管构造为共阴极,采用动秒分别用两位数码管显示,数码管构造为共阴极,采用动态显示编程。态显示编程。 3开机时,显示开机时,显示12:00:00; 具备时间调整功能具备时间调整功能 P0.0控制控制“时的调整,每按一次秒加时的调整,每按一次秒加1; P0.1控制控制“分的调整,每按

27、一次分加分的调整,每按一次分加1; P0.2控制控制“秒的调整,每按一次小时加秒的调整,每按一次小时加1。.运用举例运用举例XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RX

28、D10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C51PROGRAM=誓愿.HEXR1200R2200R3200R4200R5200R6200R7200R8200R94.7KR104.7KR114.7K参考电路连线见图参考电路连线见图4-6 汇编言语程序:30H、31H、32H分别为时分秒存储单元,ORG 0000H LJMP MM ORG 000BH ;定时器T0的中断入口 LJMP ZD ORG 0030HMM: MOV 30H,#12 ;小时单元设置 MOV 31H,#00 ;分单元 M

29、OV 32H,#00 ;秒单元 MOV 33H,#00 ;中断 MOV TMOD,#01H MOV TH0,#60 MOV TL0,#176 MOV IE,#82H SETB TR0TZSJ:JNB P0.0,XS JNB P0.1,FEN JNB P0.2,MIAO LJMP JZZHXS: LCALL YS JNB P0.0,XS INC 30H MOV A,30H CJNE A,#24,JZZH MOV 30H,#00 LJMP JZZHFEN: LCALL YS JNB P0.1, FEN INC 31H MOV A,31H CJNE A,#60,JZZH MOV 31H,#00 LJ

30、MP JZZHMIAO:LCALL YS JNB P0.2, MIAO INC 32H MOV A,32H CJNE A,#60,JZZH MOV 32H,#00JZZH:MOV A,30H MOV B,#10 DIV AB MOV 70H,A MOV 71H,B MOV A,31H MOV B,#10 DIV AB MOV 72H,A MOV 73H,B MOV A,32H MOV B,#10 DIV AB MOV 74H,A MOV 75H,B: MOV R0,#70H MOV R4,#6 MOV R3,#0FEH MOV DPTR,#TABWW: MOV A,R0 MOVC A,A+DP

31、TR MOV P3,#0FFH MOV p2,A MOV A,R3 MOV P3,A RL A MOV R3,A INC R0 LCALL YS DJNZ R4,WW LJMP TZSJYS: MOV R7,#05HSS: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,SS RET中断程序:ZD: PUSH ACC ; 维护现场 MOV TH0,#60 ; 重装计数初值 MOV TL0,#176 INC 33H ; 计数、秒、分、小时单元数加1 MOV A,33H CJNE A,#20,FH ; 计数值与20比较,一样那么到1秒 MOV 33H,#00 INC 32H MOV

32、A,32H CJNE A,#60,FH MOV 32H,#00 INC 31H MOV A,31H CJNE A,#60,FH MOV 31H,#00 INC 30H MOV A,30H CJNE A,#24,FH MOV 30H,#00FH: POP ACC ;恢复现场 RETI ;中断前往TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND.运用举例运用举例.运用举例运用举例2言语程序/*声明区*/#include #define uint unsigned int#define uchar unsigned charunsigned char

33、 code led=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;uchar sec,min,hour;sbit KEY0=P00; /定义开关称号sbit KEY1=P01;sbit KEY2=P02;/*延时函数*/void delay(unsigned int ms)unsigned int i=ms*91;for(;i0;i-);/*显示程序*/void disp(unsigned char sec,min,hour)uchar i;unsigned char num6;num0=sec%10; /得到秒的个位数,以下分、小时同num1=sec/10; /得到秒的十位数,以下分、小时同num2=min%10;num3=min/10;num4=hour%10;num5=ho

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论