单片机的课程设计30秒定时器Word文档下载推荐.docx
《单片机的课程设计30秒定时器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机的课程设计30秒定时器Word文档下载推荐.docx(13页珍藏版)》请在冰点文库上搜索。
![单片机的课程设计30秒定时器Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/ddd27334-2bad-4fe2-a187-3f2695250349/ddd27334-2bad-4fe2-a187-3f26952503491.gif)
这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。
定时计数器的原理
当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,显然,定时器的定时时间与系统的振荡频率有关。
因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。
如果晶振为12MHz,则计数周期为:
T=1/(12×
106)Hz×
1/12=1μs这是最短的定时周期。
若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。
当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。
计数器在每个机器周期的S5P2期间采样引脚输入电平。
若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。
此后的机器周期S3P1期间,新的计数值装入计数器。
所以检测一个由1至0的跳变需要两个机器周期,故外部事年的最高计数频率为振荡频率的1/24。
当CPU用软件给定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU当前操作。
CPU也可以重新设置定时器工作方式,以改变定时器的操作。
由此可见,定时器是单片机中效率高而且工作灵活的部件。
定时器工作方式
8051的两个定时器/计数器都有4种工作方式是,即工作方式0~3。
由于本次课程设计主要涉及定时器/计数器0的工作方式2,所以以下将重点介绍定时器/计数器0的工作方式2。
本次课程设计使用定时器工作方式2,是由于其相对定时器工作方式0和工作方式1有一定的长处。
工作方式0和工作方式1有一个共同点,就是计数溢出后计数器全为0,因此循环定时应用时就需要反复设置计数初值。
这不但影响定时精度,而且也给程序设计带来麻烦。
工作方式2就是针对此问题而设置的,它具有自动重新加载计数初值的功能,免去了反复设置计数初值的麻烦。
定时器/计数器0的工作方式0和工作方式2所对应的电路逻辑结构图分别如图和图所示。
图定时器/计数器0的工作方式0逻辑结构
图定时器/计数器0的工作方式2逻辑结构
对比上述两图,可以发现工作方式0和工作方式2对应的逻辑结构还是有许多部分相同的,如两图的右半部分,而两图左半部分则有所差异。
下面将对其相同点和不同点作简要分析,这也是为什么这次课程设计选择工作方式2的原因。
相同点:
两种工作方式,计数脉冲既可以来自芯片内部,也可以来自外部。
来自内部的是机器周期脉冲,图中OSC是英文Oscillator(振荡器)的缩写,表示芯片的晶振脉冲,经12分频后,即为单片机的机器周期脉冲。
来自外部的计数脉冲由T0引脚输入,计数脉冲由控制寄存器TMOD的
位进行控制。
当
=0时,接通机器周期脉冲,计数器每个机器周期进行一次加1,这就是定时器工作方式;
=1时,接通外部计数引脚T0,从T0引入计数脉冲输入,这就是计数工作方式。
不同点:
如图3-1所示的左半部分,工作方式0条件下,TL0使用了5位,当TL0的低5位计数溢出时,向TH0进位;
而全部13位计数溢出时,向计数溢出标志位TF0进位,将其置1。
如图3-2所示的左半部分,工作方式2条件下,16位计数器被分成两部分,TL作为计数器使用,TH作为预置寄存器使用,初始化时把计数初值分别装入TL和TH中。
当计数溢出后,由预置寄存器TH以硬件方法自动给计数器TL重新加载。
变软件加载为硬件加载。
更详细点,初始化时,8位计数初值同时装入TL0和TH0。
当TL0计数溢出时,置位TF0,并用保存在预置寄存器TH0中的计数初值自动加载TL0,然后开始重新计数。
如此重复,这样不但省去了用户程序中的重装指令,而且也有利于提高定时精度。
2.单元电路设计
8051单片机
图电源电路
图8051电路图
(1)P1口:
P1口是一8位双向I/O口。
口引脚~提供内部上拉电阻。
和要求外部上拉电阻。
和还分别作为片内精密模拟比较器的同相输入(AIN0)和反相输入(AIN1)。
P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。
当P1口引脚写入“1”时,其可用作输入端。
当引脚~用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流(IIL)。
P1口还在闪速编程和程序校验期间接收代码数据。
(2)P3口:
P3口的~、是带有内部上拉电阻的七个双向I/0引脚。
用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。
P3口缓冲器可吸收20mA电流。
当P3口引脚写入“1”时,它们被内部上拉电阻拉高并可用作输入端。
用作输入时,被外部拉低的P3口引脚将用上拉电阻而流出电流(IIL)。
P3口还用于实现AT89C2051的各种功能,如下表1所示。
P3口还接收一些用于闪速存储器编程和程序校验的控制信号。
P3口引脚
功能
RXD(串行输入端口)
TXD(串行输出端口)
INT0(外中断0)
INT1(外中断1)
TO(定时器0外部输入)
T1(定时器1外部输入)
表2-1-1
P3口的功能
(3)RST:
复位输入。
RST一旦变成高电平,所有的I/O引脚就复位到“1”。
当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。
每一个机器周期需12个振荡器或时钟周期。
(4)XTAL1:
作为振荡器反相放大器的输入和内部时钟发生器的输入。
(5)XTAL2:
作为振荡器反相放大器的输出。
(6)Vcc:
电源电压;
(7)GND:
地。
两个基本电路
图复位电路图晶振电路
复位电路:
一般需要送4个时钟周期的高电平。
按键后:
电容器被短路放电、RST直接和VCC相连,就是高电平,此时进入“复位状态”。
松手后:
电源开始对电容器充电,此时,充电电流在电阻上,形成高电平送到RST,仍然是“复位状态”;
稍后,充电结束,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。
晶振电路:
产生一个固定频率的脉充,驱动芯片等元件工作。
晶振也叫晶体振荡器,能产生振荡,其特点是固有频率十分稳定,而且震动具有多谐性,除了奇频震动外还有奇次谐波泛音震动。
性能上,晶振的品质因素Q和特性阻抗都非常高,而且接入系数很小,因此具有很高的频率稳定度。
两个小的瓷片电容叫负载电容,可以用来微调晶体震荡频率,这个电容要根据所用晶体来选择,晶体规格书里面会有其负载电容的值大致为20~35PF。
一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。
它是根据晶振厂家提供的晶振要求负载电容选值的,换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差。
也能保证温漂等误差。
两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。
程序清单
ORG0000H
SJMPMAIN
ORG000BH
LJMPT0_ISR
ORG0030H
MAIN:
MOVP0,#3FH;
初始化赋值
MOVP1,#0FFH
MOVP2,#3FH
MOVR0,#00H
MOVR1,#24
MOVDPTR,#TAB
KEY:
JB,$;
判断启动键是否按下
ACALLDELAY30MS
JNB,$
ACALLSTART
SJMPKEY
START:
MOVTMOD,#01H;
启动程序
MOVTH0,#0D8H
MOVTL0,#0EFH
SETBET0
SETBEA
SETBTR0
STOP:
JB,ZTJX;
判断复位键是否程序
SJMPMAIN;
复位程序
ZTJX:
JB,XS;
判断暂停键是否按下
ZT:
CLRTR0;
K2按下后暂停计数,并关中断
CLRET0
CLREA
K2再次按下继续计数
JX:
SETBET0;
第二次按下暂停键后继续倒计时(继续启动)
XS:
MOVA,R1;
显示子程序
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVP0,A;
显示秒十位
MOVA,B
MOVP2,A;
显示秒个位
CJNER0,#100,STOP;
1S时间到否,未到直接转数码管显示
MOVR0,#00H;
1S时间到,R0重赋初值
R1减1,不为0转数码管显示,为0则重新开始
CLRC
SUBBA,#1
MOVR1,A
JNCSTOP;
计数未到0继续判断暂停键和停止键
MOVR1,#24;
计数到0停止计数并关中断,
CLRTR0
SJMPSND;
跳到报警程序
SJMPKEY;
跳回开始检测启动键
RET
DELAY30MS:
MOVR6,#150;
延时程序子程序
AAA;
MOVR7,#100
DJNZR7,$
DJNZR6,AAA;
T0_ISR:
中断程序子程序
INCR0
RETI
SND:
CLR;
报警程序子程序(红色发光二极管亮一下就灭)
MOVR7,#0FFH
DL:
MOVR6,#0FFH
DL1:
DJNZR6,DL1
DJNZR7,DL
SETB
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
附录:
元器件细明表
1
IC名单
型号
个数
2
单片机
8051
3
锁存器
74HC573
4
数码管
2位的,共阴极
5
晶振
12MHz
6
电容
39PF
7
10UF
8
开关
按键开关
9
波动开关
10
电路板
10*20
11
排阻
10K欧
12
电阻
3K欧
13
30欧
14
发光二极管
亮
15
单片机底座
40引脚
16
三极管
C1008npn
17
蜂鸣器