基于89C52单片机的电子时钟设计毕业设计论文Word格式.docx
- 文档编号:18751808
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:26
- 大小:798.92KB
基于89C52单片机的电子时钟设计毕业设计论文Word格式.docx
《基于89C52单片机的电子时钟设计毕业设计论文Word格式.docx》由会员分享,可在线阅读,更多相关《基于89C52单片机的电子时钟设计毕业设计论文Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
同样的因为单片机的功能强、体积小、质量轻、灵活好用、性价比高等优良的性能,使得它可以更好地融入到更多更全面的系统中,可以构成许多功能不同的微电子产品。
根据这种实际情况,设计了只采用一个单片机制作的多功能电子时钟,具备了最基本的时间日期显示功能,定时闹铃功能和温度显示功能,以及秒表功能,还可以针对家电等电气产品的自动控制对其进行相应的扩展,同样可以避免操作繁琐的控制器而产生的失误,准确实现“一对多”的控制;
温度传感器的添加,使得此电子时钟可以准确,快捷的进行温度显示,为人们的生活工作提供的极大的便利。
对此设计还可以进一步的扩展利用,也可在此设计添加湿度传感器,进而实时进行湿度的显示。
1.3电子时钟设计的应用
电子钟已成为人们日常生活中不可或缺的生活品,广泛是车站、码头、剧场、办公室等的公共设施,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便、性价比高等优点可以构成许多功能不同的微电子产品。
它还用于计时、自动报时及自动控制等领域。
第二章电子时钟的硬件设计
2.1单片机的选择
单片微型计算机简称为单片机,是典型的嵌入式微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
存储器、中央处理器(CPU)和I/O接口电路等。
因此,单片机只需要配合适当的软件及外部设备,便可成为一个单片机控制系统。
单片机经历SCM、MCU、SoC三大阶段的发展,使得单片机具有了多功能、高性能、低电压、低价格、低功耗、大存储容量、强I/O功能及较好的兼容性等优点。
1、多功能
单片机中尽可能地把诸多模块都集成在一块芯片上,使得单片机可以实现的功能更加繁多。
其中把ADC、DAC以及多路模拟开关和采样/保持器乃至LED等显示驱动器集成在单片机芯片中,也就是外围器件的内置化。
2、高性能
为了提高执行速度和执行效率,单片机开始使用RISC结构、流水线和DSP的设计技术,使单片机的性能有了显著的提高。
由于系统资源和系统复杂程度的增加,开始使用高级语言来开发单片机的程序。
使用高级语言明显降低开发难度以及缩短了开发的周期,软件的可读性和可移植性也得到了大大的提升,便于改进和扩充功能。
3、低电压和低功耗
因单片机使用的场合空间有限,对其体积的要求严格,这也决定了单片机具有低电压和低功耗的特性非常重要。
目前单片机制造工艺普遍应用CHMOS工艺,其中HMOS工艺为互补金属氧化物具有高速度、高密度的特点,再加上CMOS工艺具备了低功耗的优良特性。
由于CHMOS工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。
这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。
目前,国内生产单片机的种类繁多,在此,我们采用为89C52单片机为主控制器。
89C52内置8位中央处理器、256字节内部数据存储器RAM、8k片内部程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
89C52具有PDIP(40pin)和PLCC(44pin)两种封装形式。
2.2单片机的基本简介
单片机有两种基本结构:
一种是在通用微型计算机中广泛采用的,数据存储器和程序存储器共用一个存储器空间的结构,称为“冯·
诺依曼”(VonNeumann)结构。
另一种称为“哈佛”(Harvard)结构是将数据存储器和程序存储器完全分开,采用不同的访问指令进行访问,目前的单片机多采用“哈佛”结构。
2.2.189C52单片机主要功能特性
·
标准MCS-51内核和指令系统
片内8kROM(可扩充64kB外部存储器)
32个双向I/O口
256x8bit内部RAM(可扩充64kB外部存储器)
3个16位可编程定时/计数器
时钟频率3.5-12/24/33MHz
向上或向下定时计数器
改进型快速编程脉冲算法
6个中断源
5.0V工作电压
全双工串行通信口
布尔处理器
—帧错误侦测
4层优先级中断结构
—自动地址识别
兼容TTL和CMOS逻辑电平
空闲和掉电节省模式
PDIP(40)和PLCC(44)封装形式
2.2.289C52单片机各引脚功能
1.主电源引脚有VCC、VSS。
VCC(40脚):
接+5V电源,为程序运行和校检时提供所需的电能。
VSS(20脚):
为接地端。
2.外界晶体引脚有XTAL1、XTAL2。
XTAL1(18脚):
片内它属于一个反向振荡放大器输入端,此放大器构成了片内振荡器,可以提供单片机相应的时钟控制信号。
XTAL2(19脚)在单片机内部,接至上述振荡器的反向输出端。
当使用内部时钟时,两引线端用于外接石英晶体和微调电容;
当使用外部时钟时,用于接外部时钟信号,外部时钟由XTAL1引入,XTAL2处于悬空状态。
3.控制类引脚包括RESET(即为RST/VPD)、ALE、PSEN、EA,可以提供控制信号,有些具有复用功能。
RSR/VPD(9脚):
VPD是单片机内部备用电源,为单片机的上电复位和掉电保护端。
振荡器工作时,在此引脚加上两个机器周期的高电平将使单片机进行复位(REST)操作。
复位后应使此引脚电平保持为不超过0.5V的低电平,以保证单片机正常运行。
当电源端出现故障、小于低电平设定值或者掉电,此引脚可接入备用电源(VPD)以保持内部RAM中的数据不出现异常。
ALE/PROG(30脚):
地址锁存允许信号,以平均每机器周期两次有效的信号输出。
在访问片外存储器或I/O时,用于锁存低八位地址,以实现低八位地址与数据的隔离。
在不访问外部RAM和ROM时,ALE可以1/6的振荡频率固定速率输出,可作为对外输出的时钟或用作外部定时脉冲。
注意:
在访问外部RAM期间,ALE脉冲会跳过两个机器周期此信号有效3次,此种状态下便不适合作为时钟输出。
PSEN(29脚):
片外程序存储器读选通信号,低电平有效。
在从片外程序存储器取指期间,在每个机器周期中,当有效时,程序存储器的内容被送上P0口(数据总线)。
EA/VPP(31脚):
片外程序存储器访问允许控制信号,此控制信号低电平为有效。
EA=1(高电平),选择片内程序存储器;
EA=0(低电平),则程序存储器全部在片外而不管片内是否有程序存储器
4.四个输入/输出引脚包括P0口、P1口、P2口和P3口。
P0(39脚-32脚)—8位、漏极开路的双向I/O口。
当使用片外存储器时,复用作低八位地址和数据总线分时复用。
P1(1脚-8脚)—8位、准双向I/O口。
P2(21脚-28脚)—8位、准双向I/O口。
当使用片外存储器时,复用作输出高8位地址。
P3(10脚-17脚)—8位、准双向I/O口,具有内部上拉电路。
P3口功能表:
P3口各引脚的第二功能
P3口的位
第二功能
说明
P3.0
RXD
串行数据接收口
P3.1
TXD
串行数据发射口
P3.2
INT0
外部中断0输入
P3.3
INT1
外部中断1输入
P3.4
T0
计数器0计数输入
P3.5
T1
计数器1计数输入
P3.6
WR
外部RAM写信号
P3.7
RD
外部RAM读信号
2.2.389C52单片机内部结构图:
第三章电子时钟的软件设计
3.1程序总体设计
程序总体流程图:
NO
YES
综上电路图,本设计的设计思路为下:
当连接电源后,液晶显示屏显示的是分别是时分秒、星期、年月日、温度等。
并且随着LED灯每隔1秒的闪烁,走时将自动叠加一次,当闪烁第60次时分钟将自动加1。
下面讲述的便是按键的各种功能模式:
1.日期模式:
按下1键后,显示的是年月日可以进行调节,调节状态指示灯亮。
年份的调节:
按下6键时调节年份的千位以及百位,一次可叠加1
按下5键调节的是年份的十位和个位,同样的按下一次叠加1
月份的调节:
4键便是调整月份的,按下一次便会叠加1,当所显示的月份到达12月时,再次叠加将会显示1月
日的调整:
3键就是调节月份所属的日期,每叠加一位便会加1,其中当为1、3、5、7、8、10、12时日期最高显示为31日,当为4、6、9、11时显示的最高日期便为30日,至于2月当为所属的年份为平年或者闰年时,最高显示将不同分别为28日和29日。
平年和闰年的计算下面将会继续做详细的讨论。
2.调时模式:
按下2键时,显示的是时分秒可以进行调节,且此时的调节指示灯亮。
时钟的调节:
按下6键时此时可以调节的是时钟,按下一次该位也将自动加1,最高可显示23,最低显示0。
分钟的调节:
触动5键可以进行分钟的调节,按一次分钟就加1,当显示为59时按5键,分钟的显示将变为0,此时时钟也将加1。
秒的调节:
按4键将会使钟清零。
3.闹铃模式:
3键为闹钟的调整,此时显示的是闹钟时刻的可调节,指示灯变亮。
闹铃调节相对应的按键:
5键,对应的是进行时钟的调整;
4键对应的是分钟的调整。
每按一次键时对应的位也将相应的加1。
4.倒计时模式:
长按4键进入倒计时模式,显示定时长度可进行相应的调节,同样的状态指示灯变亮。
定时调整相对应按键:
6键控制分的调节,5键控制秒的调节,4键启动定时功能,边显示倒计时。
5.按5键铃声测试,扬声器播放音乐。
6.按下7键,进入秒表模式,显示秒表走时。
拨上7键,秒表暂停;
按下7键,秒表又继续走时。
按下8键,秒表清零。
0键——调整状态指示灯灭,返回主程序,显示时间
日期模式调整完毕后,按0键返回主程序,此时指示灯灭,显示调节好的时间
7.按下8键,数码管熄灭,时钟仍在走时,进入节能模式。
拨上8键,数码管亮,恢复普通工作模式。
8.9键为闹铃启动(停止)键,按下可以选择是否要闹铃,以及在闹铃响起时,按此键可以停止闹铃。
9.10键为铃声选择开关,按下与否,可以选择两手音乐。
10.11键为闹铃重响控制开关,重响功能开启时,从闹铃随音乐结束而结束的时刻开始,或从手动按9键停止闹铃的时刻开始定时,一段时间后闹铃重响。
11.12键为闹铃重响间隔选择开关,可选两个定时长度,以便在闹铃重响功能开启时,闹铃初次响后,过一段时间闹铃继续响。
3.2程序主要模块
3.2.1延时模块
数码管显示动态扫描时,用到延时程序,这里使用延迟1ms的程序,此程序需要反复调用程序如下:
D_1MS:
MOVR7,#2
D_5:
MOVR2,#250
DJNZR2,$
DJNZR7,D_5
RET
除数码管动态扫描外,数码管的闪烁提示,以及音乐模块也用到了延时,只是延时的长短不同罢了。
3.2.2中断服务程序
本实验中,计数器T0,T1中断都有运用,其中T0中断为时钟定时所用,T1中断用于音乐播放。
T0的定时长度为0.01s,工作于方式1,计数1次,时长1us,故计数器计数10000次,进入中断,计数初值为65536-10000=55536=#0D8F0,装满定时器需要0.01s的时间,从而100次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。
包括日期显示的功能也是如此。
另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。
基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。
以下为定时中断流程图:
计数器T1工作于方式1,当调用响铃程序时,其计数功能开启,为音乐音调不同频率的方波的形成,提供延时。
其中断服务程序就是根据音调改变音乐方波输出口电平的高低,用语句CPL实现。
中断服务程序中日历的实现较为复杂,要考虑平年,闰年,特殊的2月,每月的天数的不尽相同。
具体的逻辑判断方法为:
首先,要考虑年份是不是闰年,闰年的判断方法是:
将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;
若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。
只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。
其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。
日历进位判断流程图如下:
本实验用8个数码管,刚好能显示年,月,日,扫描显示与时间的扫描显示类似。
年比较特殊,由两个寄存器存储,个位,十位为0时,表明年数能被100整除,若此时千位,百位
组成两位数能被4整除,则年数被400整除,为闰年。
若十位,个位组成两位数能被4整除,则年数能被4整除,为闰年。
3.2.3主程序
主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用相关程序,该段程序如下:
MAIN:
JNBP3.0,DATETZ;
按下0键,显示日期并可对日期进行调整
JNBP3.1,ZSTZ1;
按下1键,显示时间,并可调时
JNBP3.2,NLTZZ;
按下2键,进行闹铃设置
JNBP3.3,DSTZ;
按下3键,进行定时设置
JNBP3.4,CESHI;
闹铃测试
JNBP3.6,STOPWATCHTZ;
按下6键,进入秒表方式
ACALLDISP;
调用时钟显示子程序
JNBP0.6,RERING;
判断是否开启闹铃重响功能
RE:
JNBP2.7,DSPDKQ;
判断是否开启闹铃功能,没开则去判断定时
FMQPD:
;
判断定时值R4,R3是否到零、闹铃时刻是否已到
MOVA,HOUR;
SUBBA,38H;
JZFEN;
判断小时数是否到闹铃所定时间,若到,则对分进行判断;
若不到,则对定时进行判断
AJMPDSPDKQ
FEN:
MOVA,MINUTE;
SUBBA,37H;
JZMIAO;
判断分是否到闹铃所定时间,若到,则对秒进行判断;
MIAO:
MOVA,SECOND
SUBBA,#0
JZSHENGYIN1;
判断秒是否到闹铃所定时间,若到,则时,分,秒都到达闹铃时刻,进入响铃子程序;
若不到则判断定时
RERING:
闹铃重响判断程序
JNBF0,RE;
标志位F0为0,不进行闹铃重响设定
CPLF0
MOV3CH,#1;
定时判断标志位赋1,定时判断功能开启
JNBP0.7,M1;
闹铃重响间隔时间选取
MOVR4,#0;
闹铃重响间隔30秒
MOVR3,#30
AJMPMAIN
M1:
闹铃重响间隔60秒
MOVR4,#1
MOVR3,#0
DSPDKQ:
判断是否应该进行定时判断
MOVA,3CH;
3CH是引入的判断因子,当其为0时,不对定时时间是否到0进行判断
JNZDSPD2;
当3CH不是0时,跳转到定时判断程序
DSPD2:
MOVA,R4;
JZS_PD;
R4所存定时分数为0,则转而判断R3所存定时秒数
AJMPMAIN;
S_PD:
MOVA,R3;
JNZMAIN;
R4,R3所存参数减为0,定时长度已到
JNBP0.6,SHENGYIN2;
闹铃重响功能开启时,跳入响铃程序
AJMPTISHI;
不是闹铃重响定时,则定时时间到时,跳入提示程序
CESHI:
ACALLRING
SHENGYIN1:
调用响铃子程序
LCALLRING
SHENGYIN2:
SETBF0;
闹铃重响标志位设定
LCALLRING;
响铃
CLRF0;
标志位复位
NLTZZ:
AJMPNLTZ1;
跳入闹铃调整程序
DSTZ:
AJMPDSTZ1;
跳入定时调整程序
DATETZ:
AJMPDATETZ1;
跳入日期调整程序
STOPWATCHTZ:
AJMPSTOPWATCHTZ1;
跳入秒表程序
3.2.4显示子程序
8个数码管轮流进行显示,分别显示1ms,依赖人的视觉暂留效应,给人以数码管持续高亮的错觉。
该段程序如下:
DISP:
时间显示子程序
JNBP3.7,OUT1;
判断节能开关7是否按下,按下则数码管不显示,延长其寿命
MOVDPTR,#LEDTAB
MOVA,SECOND;
显示当前时间秒位
MOVB,#10
DIVAB;
A存十位,B存个位
MOVCA,@A+DPTR
MOVP1,A
CLRSEC_S
ACALLD_1MS;
显示当前时间秒十位
SETBSEC_S
MOVA,B
CLRSEC_G
显示当前时间秒个位
SETBSEC_G
MOVA,MINUTE;
显示当前时间分位
DIVAB
CLRMIN_S
ACALLD_1MS
SETBMIN_S
CLRMIN_G
SETBMIN_G
MOVA,HOUR;
显示当前时间时位
CLRHOU_S
SETBHOU_S
CLRHOU_G
SETBHOU_G
MOVA,WEEK;
显示当前星期数
CLRY_S
SETBY_S
OUT1:
日期的显示,秒表的显示,倒计时的显示,调闹铃,调定时的显示,闪烁的显示程序与以上的的扫描相似,有的以子程序的方式出现,通过子程序调用语句ACALL调用;
有点直接嵌套在相应的程序里面,顺序执行,或者用调转语句AJMP调用。
3.2.5调整程序
时钟包括很多调整,如时间,日期,闹铃,秒表等,本程序,设计了相应的调整程序段,通过对应的按键,程序跳入调整模式或功能模式。
在此着重分析一下闹铃重响以及定时功能的实现过程,这两个功能都灵活运用了标志位。
1,定时功能运用了一个内存地址3CH为标志位,只有3CH中所存值非0时,在主程序中才判断定时是否已到。
3CH值初始化为0,程序开始运行时并不判断定时是否已到。
当通过按键进入定时初值设置,并开始倒计时,3CH的值被赋为1,
当倒计时显示到0时,进入闪烁提示,提示结束后3CH又被赋值为0,程序回到主程序后,不必判断定时是否已到。
但当倒计时未完
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 89 C52 单片机 电子 时钟 设计 毕业设计 论文