基于单片机电铃LCD1602液晶屏的显示Word文档下载推荐.docx
《基于单片机电铃LCD1602液晶屏的显示Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机电铃LCD1602液晶屏的显示Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
2.随季节变化,每天自动调整开与关的时间
二.计划完成时间三周
1.第一周完成软件和硬件的整体设计,同时按要求上交设计报告一份。
2.第二周完成软件的具体设计和硬件的制作。
3.第三周完成软件和硬件的联合调试。
电气154单鲁豫
摘要:
本次电路设计中采用的AT89C52单片机,主要功能的实现是通过采用89C52芯片和DS1302芯片来完成的。
同时为了使所设计的电路能够更好的使用,能够拥有更加良好的性能,该电路中还设计了,按键控制电路,为使用者带来更多便利。
关键词:
AT89C52单片机DS1302时钟芯片LCD1602液晶屏蜂鸣器
1引言
基于目前传统电铃噪音大,声音刺耳,不符合人们追求绿色环保的要求,我们采用AT89C52单片机设计了一套自动打铃系统。
单片机(Single-ChipMicrocomputerSCM)技术的应用,不但降低了生产成本,同时也方便了消费者,使操作简洁、安全。
单片机的应用使许多复杂的事情,都能够简单、方便的实现了。
用单片机控制的自动打铃器,充分发挥单片机体积小,价格便宜,功耗低,可靠性好等特点,充分发挥了单片机的控制优势。
本打铃器可用于作息时间控制,方便了广大师生。
2总体设计方案
2.1设计思路
利用单片机及其DS1302时钟芯片设计一个时钟,在每秒加1的计时过程中,取当前时间与设定的打铃时间作比较,如果相等就输出打铃信号,不等则返回。
如此反复运行
2.1.1方案对比
(1)方案一
LCD1602液晶屏显示,AT89C52单片机,用单片机与时钟芯片工作,在时钟芯片中取出数据经过单片机送入液晶屏显示,去当前的时间与设置闹铃时间对比,从而给单片机电铃控制端口送入信号。
(2)方案二
数码管显示,工作方式基本相同,在于显示方面数码管显示比较单调,只能显示数字,而液晶屏可以显示字符多种符号。
(3)结果
由于显示问题,以及部译码综合考虑,选择LCD1602显示简洁,可以直观的调节,使用者更加容易上手。
2.1.2方案确立
根据设计任务的基本要求,设计了由单片机(AT89C52)作为主控器件,LCD1602作为显示电路,四个按键组成的按键操作电路,以及三极管、蜂鸣器组成的报警提示电路。
除了以上的硬件电路外,还充分利用软件、硬件相结合,充分发挥单片机设计的优势,使设计更具特色。
系统可分成三部分,即时钟电路、时间显示电路、控制电路,而时钟电路起控制主导作用。
时钟电路的构成由DS1302时钟芯片完成,时间显示电路则由单片机并口输出,送到LCD1602液晶屏。
控制电路主要控制着复位电路、校时以及设置打铃点等操作。
2.2设计方框图
图一总体框图
3设计原理分析
3.1按键电路
图二按键复位电路
如图二所示,初步设计了由五个按键来完成所有的操作,它们的功能分别是:
设置确定键1键P1^2、返回确定键P1^3、返回加一移动键P1^4、减一移动键P1^5、复位键RST,具体操作方法由软件设计为菜单式操作,使所有的操作更加的简洁,方便。
使本打铃控制器更具有现代化。
以上按键具有多种功能,P1^2=1,P1^3=2,,1^4=3,P1^5=4,P1^4&
1^5=5。
首先进入,已在设置页面,1.setalarmtim2.setalarm,按1进入1页面设置闹铃持续时间,按2退出设置闹零持续时间页面,再按2进入闹铃时间设置,同时按下P1^5与P1^4键值为5开始移动光标,设置完毕可以按1储存时间,继续设置下一次,此时按2键返回1.setalarmtim2.setalarm界面,此时按3进入1.setting2.running,此时按1进入1.setalarmtim2.setalarm界面,按2进入时间显示页面即running开始走程序。
3.2显示电路
如图三所示,LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。
LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
1602采用标准的16脚接口,其中:
第1引脚:
GND为电源地第2引脚:
VCC接5V电源正极第3引脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4引脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5引脚:
RW为读写信号线,高电平
(1)时进行读操作,以51为例的简单原理图低电平(0)时进行写操作。
第6引脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14引脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
第15引脚背光正极,第16引脚背光负极。
特性3.3V或5V工作电压,对比度可调含复位电路提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种功能。
图三显示电路
3.3响铃电路
P2^1端口接PNP晶体管基极输入端,当P2^1输出低电平时,晶体管导通,使得蜂鸣器蜂鸣,当P2^1输出高电平时,三极管截止,使得压电蜂鸣器无提供电压而停止发音,此时电铃也不响。
三极管8550在电路中起驱动作用,把电路中的信号放大以起到驱动蜂鸣器发声的作用。
电路如图四所示。
图四响铃电路
3.4时钟电路
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302部有一个31×
8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
DS1302的引脚排列,其中VCC2为主电源,VCC1为后备电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由VCC1或Vcc2两者中的较大者供电。
当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。
当VCC2小于VCC1时,DS1302由VCC1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;
其次,RST提供终止单字节或多字节数据传送的方法。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在VCC>
2.0V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向)。
SCLK为时钟输入端。
下图为DS1302的连接图。
图五时钟电路
4总结与体会
通过这次课程设计使我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所用单片机的部结构有一个系统的了解,知道该单片机片有哪些资源;
懂得设计的关键是要有一个清晰的思路和一个完整的软件流程图。
在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路。
要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。
在实习过程中遇到了很多的问题,通过老师的指导以及与同学们的学术和思想交流,不仅使我们的问题迎刃而解还使我们在共同进步的同时增进友谊。
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感!
参考文献
(1)焕铭,51单片机C程序应用实例详解,:
航空航天大学,2011.3
(2)志民,电路分析,:
电子科技大学,2008.8
(3)丰,模拟电子技术基础第五版,:
中国矿业大学,2007.8
(4)XX百科,.baidu.
(5)搜狗百科,.sougou.
附录一主程序
#include"
stdio.h"
reg51.h"
#include"
lcd.h"
ds1302.h"
voidLcdDisplay(void);
charKey_Scanf(void);
externvoidF1602_init(void);
voidDelay10ms(unsignedintc);
unsignedintabs(unsignedinta,unsignedintb);
externvoidDisplay(charLine,unsignedchar*dat);
externucharTIME[7];
voidanjian();
sbitKEY_1=P1^2;
sbitKEY_2=P1^3;
sbitKEY_3=P1^4;
sbitKEY_4=P1^5;
chari;
sbitAlarm_IO=P2^1;
charAlarm_long=10;
inthaha;
unsignedcharTim_temp=0;
charKey_val=0;
charshi=12,fen=0,miao=0;
unsignedcharAlarm_time[30]={0};
unsignedcharAlarm_num=0;
//闹铃个数
charmain_temp=1;
unsignedcharPre_time[4]={0};
charstr[20];
externucharcodeREAD_RTC_ADDR[7];
voidmain(void)
{
KEY_1=1;
KEY_2=1;
KEY_3=1;
KEY_4=1;
Alarm_IO=1;
F1602_init();
Ds1302Init();
Alarm_IO=0;
Delay10ms(50);
while
(1)
{
sprintf((char*)str,"
1:
setting"
);
Display(1,str);
2:
running"
Display(2,str);
Key_val=Key_Scanf();
anjian();
}
}
附录二原理图
附录三PCB图