基于单片机实现的LCD定时电子闹钟课程设计.docx
- 文档编号:11414050
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:55
- 大小:367.54KB
基于单片机实现的LCD定时电子闹钟课程设计.docx
《基于单片机实现的LCD定时电子闹钟课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的LCD定时电子闹钟课程设计.docx(55页珍藏版)》请在冰豆网上搜索。
基于单片机实现的LCD定时电子闹钟课程设计
摘要
本设计是采用单片机技术的电子定时闹钟,近年来集成电路技术的出现和应用,是推动了人类文明的突飞猛进。
基于集成电路技术的单片机产品更是方便了人们的生活和工作,目前以单片机技术的应用为核心的产品种类非常丰富。
应用我们所学过的知识和查阅相关资料,我制作了这个单片机技术为基础的LCD可校时可定时电子闹钟,这是一个简单的实用的单片机电子设计产品。
本“LCD定时电子闹钟’设计采用AT89C51为主控芯片。
在充分理解了设计的要求后,准确的定位了设计的目的,然后构思了总体的方案。
在选择和合适的硬件完成了电路的设计后,又进行了软件的设计和调试。
本系统的硬件组成以及工作原理都有详细的图文说明,所应用的软件技术和各个模块设计的功能及工作过程也有详细的介绍,最后的部分则详细描述了了软件仿真及调试过程。
本电子钟设计是以单片机技术为核心,采用了中小规模集成度的单片机制作的功能较为完善的电子闹钟。
硬件设计应用了成熟的数字钟电路的基本设计方法以,并详细介绍了系统的工作原理。
硬件电路中使用了除AT89C51外,另外还有LCD、晶振、电阻、电容、发光二极管、开关、喇叭等元件。
在硬件电路的基础上,软件设计按照系统设计功能的要求,运用所学的汇编语言,实现的功能包括‘时时-分分-秒秒’显示、设定和修改定时时间的小时和分钟、校正时钟时间的小时、分钟和秒、定时时间到能发出一分钟的报警声。
最后应用‘伟福’及‘Proteus’等软件将硬件电路和软件系统链接在一起对各个部分及整体进行仿真并调试构成了整个完整的电子闹钟的设计。
最后通过反复的实际仿真和测试表明,该系统能够实现所有要求的功能包括:
(1)能显示‘时时-分分-秒秒’。
(2)能够设定定时时间、修改定时时间及时钟。
(3)定时时间到蜂鸣器能发出铃声,另外还在此基础上实现了其他的附加功能比如万年历。
当然这个系统仍然是属于比较简单的单片机应用系统,要设计功能更强的更复杂的系统还需要我进一步的学习。
1概述
1.1单片机技术和数字钟简介
单片机是单片微型计算机的简称,它是一种特殊的计算机。
它特别适合于控制领域,故又称为微控制器MCU(microcontrolunit).采用了嵌入系统,通常由单块集成电路芯片组成,内部包含有计算机的基本功能部件:
中央处理器CPU,存储器和I/O接口电路等。
单片机集成度高、功能强、通用性好,而且体积小、重量轻、能耗、低价格便宜,只要和适当的软件及硬件设备相结合,便可成为一个独立的单片机控制的功能系统,单片机也成为目前测量控制应用系统的优选机种和新电子产品的关键部件。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,和传统控制技术相比有革命性的进步。
时钟是将小时、分种、秒种显示于人的肉眼的计时装置。
而单片机模块中最常见的正是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
而LCD电子定时闹钟是以单片机为基础的数字电路实现对小时、分钟、秒的数字显示的数字计时装置,它的计时周期为24小时,另外应有校时功能和一些显示日期、闹钟等附加功能。
一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”,“星期”计数器、校时电路、报时电路和振荡器组成。
目前电子种广泛用于各种私人和公众场合,成为我们生活工作学习中不可缺少的好帮手。
由于时钟的实用性和在人们生活中的重要性,所以尝试设计以单片机为核心的数字时钟是很有意义的。
钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能,本设计中LCD电子时钟采用LCD显示时间和日期年月,直观实用,而且可以方便的校调,附带的万年历和定时功能也是很方便和实用的.
1.2设计本电子定时闹钟的目的
①复习和巩固所学过的知识,利用此课程设计正好可以对所学习过的知识进行系统的回顾和总结
②拓展知识面,课堂的知识是远远满足不了设计的要求的,这就需要我们去主动找寻更多的资料,了解更多的知识.
③培养了设计能力和解决实际实际问题的能力,同时增强了
自学能力,通过设计完整的单片机系统也初步掌握了组成系统、编程、调试等能力。
④通过本LCD电子种的设计初步了解了单片机应用系统开发研制过程,软件和硬件设计的方法.
1.3本LCD电子闹钟的功能和特点介绍
1.3.1设计特点
本LCD电子定时闹钟是一种种基于单片机技术的多功能、多用途的电子产品,有电子时钟、日期显示、定时闹铃等多种功能。
本设计产品性能卓越,功能丰富,采用LCD显示更加直观,是一个比较实用的电子产品.
1.3.2本电子钟的主要功能
(1)可以显示24小时制“时时-分分-秒秒”,LCD显示。
(2)可以显示日期具有万年历功能
(3)可以方便的设定定时时间、修改定时时间,闹铃功能,预设定时时间到将发出闹铃声.
(4)能够修改时钟时间的时、分、秒,能够修改日期的年月日.
2系统总体方案及硬件设计
2.1总体方案设计
本LCD电子定时数字闹钟,是以单片机及外围接口电路作为核心硬件,辅以外围硬件电路,用汇编语言设计的程序来设计并实现的。
根据C51单片机的外围接口特点扩展成相应的硬件电路,然后根据单片机的指令设计出数字钟相应的软件,再利用软件来执行一定的程序实现数字钟的功能。
之所以用单片机来制作电子钟,是因为这样在设计制作简单而且功能多、精确度高,也可方便的扩充其他功能,淡然实现也十分简单。
本设计是利用AT89C51单片机为主控芯片,由七段数码管、晶振、电阻、电容、发光二极管、开关、喇叭等元件组成硬件电路,通过编写软件程序来实现和控制的数字定时闹钟。
2.2硬件设计
2.2.1电路总体概念图设计
总体的硬件系统结构框图如下图所示,由于LED的显示效果比较差因此选用了更先进的LCD:
图1:
硬件电路概念示意图
图2:
硬件电路概念图
2.2.2主控芯片AT98C51
单片机是20世纪70年代中期发展起来的一种大规模集成电路器件。
它在一块芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。
20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。
在我们日常学习和生活中,常见的有51系列、52系列、PIC系列等。
其中51系列的单片机的模块化结构比较典型、应用灵活,为许多大公司和个人所采纳。
在本LCD电子闹钟设计中就是采用利用我们熟悉的AT89C51单片机为主控芯片。
AT89C51单片机由微处理器,存储器,I/O口以及特殊功能寄存器SFR等部分构成。
其存储器在物理上设计成程序存储器和数据存储器两个独立的空间,片内程序存储器的容量为4KB,片内数据存储器为128个字节。
89C51单片机有4个8位的并行I/O口:
P0口,P1口,P2口和P3口。
各个接口均由接口锁存器,输出驱动器,和输入缓冲器组成。
P1口是唯一的单功能口,仅能用作通用的数据输入/输出口。
P3口是双功能口除了具有数据输入/输出功能外,每条接口还具有不同的第二功能,如P3.0是串行输入口线,P3.1口是串行输出口线。
在需要外部程序存储器和数据存储器扩展时,P0可作为分时复用的低8位地址/数据总线,P2口可作为高8位的地址总线。
P3口也可作为AT89C51的一些特殊功能口,同时为闪烁编程和编程校验接收一些控制信号.
各口管脚的备选功能如下所示:
P3.0RXD(串行输入口);
P3.1TXD(串行输出口);
P3.2/INT0(外部中断0);
P3.3/INT1(外部中断1);
P3.4T0(记时器0外部输入);
P3.5T1(记时器1外部输入);
P3.6/WR(外部数据存储器写选通);
P3.7/RD(外部数据存储器读选通)。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH)不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入;
XTAL2:
来自反向振荡器的输出。
AT89C51单片机由微处理器,存储器,I/O口以及特殊功能寄存器SFR等部分构成。
其存储器在物理上设计成程序存储器和数据存储器两个独立的空间,片内程序存储器的容量为4KB,片内数据存储器为128个字节。
89C51单片机有4个8位的并行I/O口:
P0口,P1口,P2口和P3口。
各个接口均由接口锁存器,输出驱动器,和输入缓冲器组成。
P1口是唯一的单功能口,仅能用作通用的数据输入/输出口。
P3口是双功能口除了具有数据输入/输出功能外,每条接口还具有不同的第二功能,如P3.0是串行输入口线,P3.1口是串行输出口线。
在需要外部程序存储器和数据存储器扩展时,P0可作为分时复用的低8位地址/数据总线,P2口可作为高8位的地址总线。
P3口也可作为AT89C51的一些特殊功能口,同时为闪烁编程和编程校验接收一些控制信号。
AT89C51单片机的封装及管脚分布如图一:
图3、AT89C51单片机封装及管脚分布图
AT89C51系列的单片机的时钟方式分为内部方式和外部方式。
内部方式就是在单片机的XTAL1和XTAL2的两引脚外接晶振,就够成了自激振荡器在单片机内部产生时钟脉冲信号。
外部时钟方式是把外部已经有的时钟信号引入到单片机内部。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。
本LCD电子闹钟设计是采用内部时钟方式,用一个12MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用.其电路图如下:
图4:
时钟电路
之所以采用高性能的振荡电路,因为:
1. 单片机电子钟的计时脉冲基准是由外部晶振的频率经过12分频后提供,采用内部的定时/计数器来实现计时功能。
所以,外接晶振频率精确度直接影响电子钟计时的准确性。
2. 单片机电子钟利用内部定时/计数器溢出产生中断(12M晶振一般为50ms)再乘以相应的倍率来实现秒、分、时的转换。
大家都知道从定时/计数器产生中断请求到响应中断需要3-8个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的机器周期。
2.2.3LCD显示电路部分
为了获得更好的效果本设计并没有采用常见的LED,而是采用了型号为LM016L的LCD。
LCD有LED数码显示更好的更的直观效果,也更加经久耐用。
液晶显示模块体积小功耗低、显示内容丰富,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件之一了。
本LCD是2行16列液晶可显示2行16列英文字符,有8位数据总线D0-D7,RS,R/W,EN三个控制端口(共14线),工作电压为5V。
没背光,和常用的1602B功能和引脚一样(除了调背光的二个线脚).该模块也可以只用D4-D7作为四位数据分两次传送。
这样的话可以节省MCU的I/O口资源。
图5:
LM016LLCD
引脚说明:
VDD:
电源正极,4.5-5.5V,通常使用5V电压;
VL:
LCD对比度调节端,电压调节范围为0-5V。
接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;
RS:
MCU写入数据或者指令选择端。
MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;
R/W:
读写控制端。
R/W为高电平时,读取数据;R/W为低电平时,写入数据;
E:
LCD模块使能信号控制端。
写数据时,需要下降沿触发模块。
D0-D7:
8位数据总线,三态双向。
如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。
本充电器就是采用4位数据传送方式;
BLA:
LED背光正极。
需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;
BLK:
LED背光地端。
2.2.4喇叭部分的电路
扬声器的电路部分比较简单,如图,通过单片机发出的控制信号经过简单的放大和处理后直接控制LS1喇叭。
图6:
SPEAKER部分电路图
其中2N5088的参数为:
类型:
NPN
集电极-发射集最小雪崩电压Vceo(V):
30
集电极最大电流Ic(max)(mA):
0.050
直流电流增益hFE最小值(dB):
350
直流电流增益hFE最大值(dB):
-
最小电流增益带宽乘积Ft(MHz):
50
封装/温度(℃):
TO92/-55~150
采用2N5088将获得更好更纯净的声音信号LS1是经典常见的喇叭.。
3软件设计
3.1软件设计概述
这里用汇编的单片机程序构成了本LCD电子闹钟的软件系统。
该程序实现时间及定时(时间以0点0分0秒为基准计算,闹铃定时以0时0分为基准计算)的显示,有外中断0和五个开关实现校时,闹钟功能。
其中程序的晶振频率为12MHz,最小计时单位为1/20秒。
主芯片p0.1-p0.7输出数据到LCD数据总线,p2.0-2.2输出LCD控制信号,P3.7输出声音信号,.P1.4-P1.5输入外部控制信号,整个软件系统也是根据这个关系连接成一个完整的系统。
最后经过反复的修改和实验最终确定了主程序见附录1,并附有十分详细的注释.因为注释已经详细的介绍了软件设计的细节过程下面仅就软件系统特定的部分进行详细的说明,其他细节不再一一详述,
3.2主函数的设计
本LCD电子闹钟的的主程序流程图如图7所示,。
NO
Yes
Yes
图7:
主函数流程图1
图8:
主函数流程图2
3.3部分设计思想的说明
3.3.1程序初始化
在系统开始上电时,需要对C51主芯片和周边电路进行初始化.首先初始化主芯片:
ORG0000H
LJMPSTART
ORG000BH
LJMPTIMER0
ORG001BH
LJMPTIMER1
ORG0100H
START:
MOVSP,#60H
MOVR0,#18H
MOVA,#00H
MEM_INI:
MOV@R0,A
INCR0
CJNER0,#5FH,MEM_INI
然后就是对LCD进行初始化,具体程序见附录1
3.3.2闹钟的实现
闹钟功能的实现涉及到两个方面:
闹铃时间设定和是否闹铃判别与相应处理。
闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹铃判别与处理模块的设计问题。
闹铃判别与闹铃处理的关键在于判别何时要进行闹铃。
当时十位、时个位、分十位、分个位中任一位发生改变(进位)时,就必须进行闹铃判别。
程序设计思想如图。
图9:
闹铃实现思想流程图
3.3.3显示程序
显示程序包括时钟显示和定时显示程序。
具体程序见附1
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3是TC1602EL液晶模块的内部显示地址。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?
这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H),
液晶模块内带标准字库,内部的字符发生存储器(CGROM)已经存储了192个5×7点阵字符,32个5×10点阵字符。
另外还有字符生成RAM(CGRAM)512字节,供用户自定义字符。
如表1所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
0
清显示
0
0
0
0
0
0
0
0
0
1
光标返回
0
0
0
0
0
0
0
0
1
*
置输入模式
0
0
0
0
0
0
0
1
I/D
S
显示开/关控制
0
0
0
0
0
0
0
D
C
B
光标/字符移位置
0
0
0
0
0
0
S/C
R/L
*
*
置功能
0
0
0
0
1
DL
N
F
*
*
置字符发生存储器地址
0
0
0
1
字符发生存储器地址(ACG)
置数据存储器地址
0
0
1
显示数据存储器地址(ADD)
读忙标志或地址
0
1
0
计数器地址(AC)
写数到CGRAM/DDRAM
1
要写入的数据
从CGRAM/DDRAM读数
1
1
读出的数据
液晶模块内部的控制器共有11条控制指令:
指令1:
清显示,指令码01H,光标复位到地址00H位置
指令2:
光标复位,光标返回到地址00H
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符
指令7:
字符发生器RAM地址设置
指令8:
DDRAM地址设置
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据
指令11:
读数据
时钟显示和定时显示程序都是应用动态显示,即将字形代码送入字形锁存器;再将所要显示的位置代码送入字位锁存器锁存。
为防止闪烁,每位显示时间都调用延时程序进行短暂延时,然后显示另一位。
4Proteus软件仿真
将完整的单片机程序保存为后缀名为.asm文件。
打开伟福E6000软件,,点击伟福E6000主菜单当中的‘仿真器’,在下拉菜单中点击‘仿真器设置’。
在弹出对话框中,语言对话框中选—‘KeilC(V5或更高),英特尔PL/M51,英特尔汇编器’,仿真器对话框中—‘G6W’-‘POD-51’-‘8031’,晶振频率栏填12000000(Hz),然后点击‘好’完成仿真器设置。
然后点击伟福E6000主菜单,新建项目,导入上述ASM文件,选择无包含文件,保存此项目文件,再双击ASM文件打开,然后选择‘项目’—‘编译’或按F9,对.asm文件进行编译,编译顺利完成,生成.HEX文件。
然后用PROTEUS7.1软件打开设计好的硬件系统原理图DZZ.dsn,双击原理图上的AT89C51单片机加载DZZ.HEX文件。
然后点击PROTEUS7.1软件窗口下方的相应仿真运行按纽进行仿真.
经过反复的防真和调试,此闹钟可以实现所有的功能,既可以显示日期时间,也可以方便的调整日期和时间,定闹钟的功能也正常.实际的防真效果截图如下图(图10、图11),其中图10是正在调整定闹钟的时间,图11是调整显示时钟的时间。
至此整个设计基本成功的完成.
图10:
仿真效果截图(调整和显示定时)
图11:
仿真效果截图(调整和显示时钟)
5课程设计体会
单片机是计算机技术发展的产物,是经济实用开发简便的高科技产品,在当今工业控制、家电等领域占据广泛的市场。
通过此次单片机课程设计来设计个简单的数字闹钟,我巩固了自己学习的单片机知识,来初步了解了小型单片机系统的设计和运用,并提高自己实际动手能力。
,
课程设计过程也使我了解了自己能力的不足,不过通过资料收集和文献查询等方法,找出了设计过程中的一些问题以及解决问题的方法,从而比较顺利的完成了这个设计任务。
这次自己所做的设计取得了一些宝贵的经验,提高了自己的动手能力,为将来的学习和工作很有好处。
通过这次课程设计我学到了很多全新的在课堂上没法学到的知识,同时也加深了以前所学知识的理解,也增强了理论联系实际的操作能力。
但是,在实际的编程以及调试程序过程中,我发现自己应该学的还有太多太多。
光靠书本上是远远行不通的!
总之,理论必须和实际结合才有威力,知识必须通过应用才能实现其价值!
所学的东西最终是要面向社会,是在以后的工作能够更好的应用,此时的知识积累是为以后的工作做好坚实的基础。
这个设计总体上不算完美,但是在这个课程设计的经历的好处是不可估量的。
参考文献:
[1]余发山.单片机原理及应用技术.中国矿业大学出版社.
[2]孙涵芳.MCS-51系列单片机原理及应用[M].北京:
北京航空航天大学出版社.1996-4
[3]王义军.单片机原理及应用习题与实验指导书[M].北京:
中国电力出版社,2006
[4]陈明荧.8051单片机课程设计实训教材[M].北京,清华大学出版社,2004
[5]唐前辉、丁明亮.重庆电专PROTEUS中文入门教程
[6]彭小军.用单片机实现电子时钟.新余高等专科学报,2004
[7]黄正谨.综合电子设计与实践.东南大学出版社.2002-3\
[8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 实现 LCD 定时 电子 闹钟 课程设计