单片机电子钟设计.ppt
- 文档编号:2743604
- 上传时间:2022-11-10
- 格式:PPT
- 页数:55
- 大小:567KB
单片机电子钟设计.ppt
《单片机电子钟设计.ppt》由会员分享,可在线阅读,更多相关《单片机电子钟设计.ppt(55页珍藏版)》请在冰豆网上搜索。
项目三项目三电子钟的设计电子钟的设计能力目标1、能够使用单片机的定时/计数器实现定时、计数等应用。
2、能够完成电子钟硬件电路与控制程序的设计、制作与调试。
知识目标1、了解单片机定时器/计数器的内部结构。
2、掌握单片机定时器的各种工作方式及特点、应用场合。
3、掌握定时器中断服务程序的编写。
任务一、认识单片机的定时器任务一、认识单片机的定时器/计数器计数器一、定时器一、定时器/计数器及其应用计数器及其应用在在单单片片机机应应用用系系统统中中,定定时时或或计计数数是是必必不不可可少少的的。
例例如如:
测测量量一一个个脉脉冲冲信信号号的的频频率率、周周期期,或或者者统统计计一一段段时间里电机转动了多少圈等。
常用的定时方法有:
时间里电机转动了多少圈等。
常用的定时方法有:
11、软件定时、软件定时软件定时是依靠执行一段程序来实现的,这段程序本软件定时是依靠执行一段程序来实现的,这段程序本身没有具体的意义,通过选择恰当的指令及循环次数实身没有具体的意义,通过选择恰当的指令及循环次数实现所需的定时,由于执行每条指令都需一定的时间,执现所需的定时,由于执行每条指令都需一定的时间,执行这段程序所需总的时间就是定时时间。
行这段程序所需总的时间就是定时时间。
软件定时的特点是无需硬件电路,但定时期间软件定时的特点是无需硬件电路,但定时期间CPUCPU被被占用,增加了占用,增加了CPUCPU的开销,因此定时时间不宜过长,而的开销,因此定时时间不宜过长,而且定时期间如果发生中断,定时时间就会出现误差。
且定时期间如果发生中断,定时时间就会出现误差。
33、可编程定时器定时、可编程定时器定时这种定时方法是通过对系统时钟脉冲的计数来实这种定时方法是通过对系统时钟脉冲的计数来实现的。
通过程序来设置计数初值,改变计数初值也就改现的。
通过程序来设置计数初值,改变计数初值也就改变了定时时间,使用起来非常灵活。
由于定时器可以与变了定时时间,使用起来非常灵活。
由于定时器可以与CPUCPU并行工作,因此不影响并行工作,因此不影响CPUCPU的效率,且定时时间精确。
的效率,且定时时间精确。
22、硬件定时、硬件定时硬件定时通常由小规模集成电路硬件定时通常由小规模集成电路555555外加电阻、电容外加电阻、电容构成,电路简单,不占构成,电路简单,不占CPUCPU资源,但定时时间的调节不资源,但定时时间的调节不够灵活方便。
够灵活方便。
(一)定时器
(一)定时器/计数器概述计数器概述在在5151系列单片机中有两个系列单片机中有两个1616位的加法计数器,位的加法计数器,分别叫做分别叫做T0T0和和T1T1。
在计数脉冲的作用下,其计数。
在计数脉冲的作用下,其计数值不断加值不断加11,在此过程中,计数器可能产生溢出,在此过程中,计数器可能产生溢出,产生溢出后,可以向产生溢出后,可以向CPUCPU发出中断请求。
发出中断请求。
如果计数脉冲来自系统时钟,称之为“定时器”,每个机器周期计数器加1;如果计数脉冲来自外部电路,称之为“计数器”一旦计数器产生溢出,TF0变为1,向CPU发出中断请求二、定时器二、定时器/计数器的控制寄存器计数器的控制寄存器11、定时器控制寄存器、定时器控制寄存器TCONTCONTF0/TF1:
定时器/计数器T1和T0的溢出中断标志。
为1,表示定时器/计数器的计数值已由全1变为全0,正向CPU发中断请求。
TR0/TR1:
定时器/计数器T0和T1的启停控制位:
为0时,定时器/计数器停止工作;为1时,启动定时器/计数器工作。
22、定时方式寄存器、定时方式寄存器TMODTMOD选择定时/计数器的工作方式,M1M0=00,方式001,方式110,方式211,方式3定时方式/计数方式的选择控制位。
为0,选定时方式,计数脉冲来自系统时钟的12分频;为1,选计数方式,计数脉冲来自外部电路当GATE=0时,只要TR0=1,与门的输出就为1,计数开始。
如果GATE为1,只有TR0=1,并且/INT0=1时,才允许计数。
C/T=0,选择定时方式C/T=1,选择计数方式GATE=0时,由TR0控制计数器启停GATE=1时,由TR0和INT0一同控制启停TR0=1时,启动定时器定时器溢出时,TF0置1三、三、T0T0、T1T1的工作方式的工作方式1111、方式、方式、方式、方式0000方式方式00的计数器由的计数器由1313位构成,其中高位构成,其中高88位在位在THTH中,低中,低55位在位在TLTL中。
当计数器产生溢出时,中。
当计数器产生溢出时,TFTF位位被置被置11,向,向CPUCPU发出中断请求。
在方式发出中断请求。
在方式00下,计数下,计数器产生溢出时,不能进行初始计数值的自动重器产生溢出时,不能进行初始计数值的自动重装(有关自动重装的问题参见方式装(有关自动重装的问题参见方式22),所以方),所以方式式00不能用于精确定时。
不能用于精确定时。
方式方式00的所有功能都可以用方式的所有功能都可以用方式11代替,方式代替,方式00的存在,是因为兼容早期的的存在,是因为兼容早期的MCS-48MCS-48单片机的原单片机的原因,所以一般不使用方式因,所以一般不使用方式00。
2222、方式、方式、方式、方式1111方式方式11与方式与方式00工作形态基本相同,只是方工作形态基本相同,只是方式式11的计数器由的计数器由1616位构成,其中高位构成,其中高88位在位在THTH中,中,低低88位在位在TLTL中,当计数器产生溢出时,中,当计数器产生溢出时,TFTF位被置位被置11,向,向CPUCPU发出中断请求。
在方式发出中断请求。
在方式11下,计数器产下,计数器产生溢出时,也不能进行初始计数值的自动重装生溢出时,也不能进行初始计数值的自动重装所以方式所以方式11也不能用于精确定时。
也不能用于精确定时。
3333、方式、方式、方式、方式2222方式方式22是可以自动重装的工作方式:
初始化时一般将是可以自动重装的工作方式:
初始化时一般将88位计数初值同时放入位计数初值同时放入THTH、TLTL中,其中,中,其中,THTH存放的是初存放的是初值的备份,值的备份,TLTL用来计数,当用来计数,当88位计数器位计数器TLTL产生溢出时,产生溢出时,除了可以向除了可以向CPUCPU发中断请求外,单片机的硬件部分还立发中断请求外,单片机的硬件部分还立即把即把THTH中的备份送入中的备份送入TLTL中。
中。
由于重新赋值是硬件自动进行的,所以避免了重新由于重新赋值是硬件自动进行的,所以避免了重新赋值的时间不一,所以方式赋值的时间不一,所以方式22可以用于精确定时。
可以用于精确定时。
4444、方式、方式、方式、方式3333T1T1经常用于串行口的波特率发生器经常用于串行口的波特率发生器,为了让为了让系统中保持两个计数器,可以让系统中保持两个计数器,可以让T0T0工作在方式工作在方式33,这时,这时,T0T0被分成两个被分成两个88位计数器,分别位于位计数器,分别位于TH0TH0和和TL0TL0中,其中中,其中TL0TL0使用使用T0T0的中断、启动控制的中断、启动控制资源,而资源,而TH0TH0则借用则借用T1T1的中断、启动控制资源,的中断、启动控制资源,而且而且TH0TH0只能工作在定时方式下,不能工作在计只能工作在定时方式下,不能工作在计数方式下。
数方式下。
(四)时间常数的计算四)时间常数的计算如果单片机需要进行周期性的工作,就应该如果单片机需要进行周期性的工作,就应该让定时器让定时器/计数器计数器T0T0或或T1T1工作在定时方式,并且给工作在定时方式,并且给T0T0或或T1T1赋以一个初始计数值,在赋以一个初始计数值,在T0T0或或T1T1被启动后,被启动后,每个机器周期使计数器中的计数值加每个机器周期使计数器中的计数值加11,计数器产,计数器产生溢出后,将再次给计数器赋值(该值被称为时生溢出后,将再次给计数器赋值(该值被称为时间常数)。
间常数)。
显然计数器溢出时间(又称定时时间)与时显然计数器溢出时间(又称定时时间)与时间常数直接相关:
时间常数越大,定时时间就越间常数直接相关:
时间常数越大,定时时间就越短;时间常数越小,定时时间就越长。
同时系统短;时间常数越小,定时时间就越长。
同时系统时钟的频率也直接影响定时时间的长短,时钟的时钟的频率也直接影响定时时间的长短,时钟的频率越高,定时时间越短;时钟的频率越低,定频率越高,定时时间越短;时钟的频率越低,定时时间越长。
时时间越长。
设系统时钟的频率为设系统时钟的频率为foscfosc,计数器的初始值为,计数器的初始值为NN,定,定时器工作于方式时器工作于方式11,则定时时间:
,则定时时间:
T=T=(221616-N-N)12/fosc
(1)12/fosc
(1)如果定时器工作于方式如果定时器工作于方式22或方式或方式33,定时时间为:
,定时时间为:
T=T=(2288-N-N)12/fosc
(2)12/fosc
(2)当初始值当初始值N=0N=0时,如果时,如果foscfosc=12MHZ=12MHZ,最大定时时间为:
,最大定时时间为:
方式方式11为:
为:
TmaxTmax=2=2161612/fosc=65536us=65.536ms12/fosc=65536us=65.536ms方式方式22、方式、方式33为:
为:
TmaxTmax=2=28812/fosc=256us12/fosc=256us根据定时时间根据定时时间TT,及公式(,及公式(11)、()、(22)分别可以求出)分别可以求出初值初值NN为:
为:
方式方式11:
N=2N=21616-Tfosc/12-Tfosc/12(33)方式方式22、方式、方式33:
N=2N=288-Tfosc/12-Tfosc/12(44)如果如果foscfosc=12MHZ,=12MHZ,以上公式可简化为以上公式可简化为方式方式11:
N=2N=21616-T-T方式方式22、方式、方式33:
N=2N=288-T-T例如:
系统的时钟频率是例如:
系统的时钟频率是12MHz12MHz,在方式,在方式11下,如果希望下,如果希望定时器定时器/计数器计数器T0T0的定时时间的定时时间TT为为10ms10ms,则初值,则初值N=2N=21616-T=65536-10000=55536T=65536-10000=55536如何将如何将5553655536给两个给两个88位寄存器位寄存器TH0TH0、TL0TL0赋值呢?
可将十赋值呢?
可将十进制数进制数5553655536转换成四位十六进制数,将高转换成四位十六进制数,将高22位送位送TH0TH0,低,低22位位送送TL0TL0。
更简单的方法是:
对于更简单的方法是:
对于1616位计数器来讲,位计数器来讲,221616等效为等效为00,对于,对于88位计数器,位计数器,2288等效为等效为00,这样公式(,这样公式(33)、()、(44)可简化为可简化为N=-TN=-T,直接用下面两条语句就可以完成计数器初值的设置:
,直接用下面两条语句就可以完成计数器初值的设置:
TH0=-10000/256TH0=-10000/256;/取取-N-N的高的高88位位TL0=-10000%256TL0=-10000%256;/取取-N-N的低的低88位位例如:
设系统的时钟频率是例如:
设系统的时钟频率是12MHz12MHz,定时器工作于方式,定时器工作于方式22,定时时间定时时间200us200us。
根据前面分析,根据前面分析,N=-T=-200N=-T=-200,可直接用以下语句实现:
,可直接用以下语句实现:
TH0=-200TH0=-200;TL0=-200TL0=-200;任务二、定时器应用任务二、定时器应用案例案例11设时钟频率设时钟频率foscfo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子钟 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)