(三)按键扫描程序 1、程序结构
按键识别程序结构采用: if(***)
{
delay(10);//调延时,消抖动 if(***) {
switch(key1n) {
case 1:*****; case 2:*****; ************; } 2、程序功能
能准确清晰地分析全部的按键情况,具有按键消除抖动功能。和按键蜂鸣器提示(第一次按动设置键长鸣一响;后面按动设置键或上调键、下调键都是短鸣一响)
按下SET键进入时间调整选项,按一下调整秒,按两下调整分,在日期时间星期之间转换。按下UP键调整的数据加一。按下DOWN键,调整的数据减一。再按下SET键确认并跳到下一个选项。 (四)主程序 1、程序流程图: 如图10
12
开始 液晶屏、时钟芯片、温度传感器初始化 按键扫描。等待中断产生 N Y 温度读取转换 图10 主程序流程图
显示温度、时间日期
2、源程序代码。 见附录二。
五、仿真
(一)调试联合仿真
模拟系统硬件电路调试比较简单,首先检查电路接线是否正确,然后用检查软件I/O口的定义是否与硬件电路的I/O口连线是否对应。系统软件调试可以先调试液晶显示程序,再编写定时器中断函数,在液晶上显示出正确的时间,随后调试时间调整函数。接下来分别进行DS18B20温度显示程序的调试,调试到液晶能显示温度值,在环境温度有变化时,显示温度能改变就说明已能正确读取温度数据。最后调试报警温度函数,直到实现设计任务的要求为止。 (二)仿真结果
使用Keil uVision4软件调试编译源程序,生成目标代码HEX文件,然后在Proteus软件中的虚拟单片机系统。模拟仿真观看设计结果:液晶显示结果如图11。 通过此项设计设计,本系统能完成以下功能: 1、显示公历日期功能(年、月、日、时、分、秒) 2、通过按键可随时调校年、月、日或时、分、星期 3、可动态完整显示年份
4、上电蜂鸣器提示(长鸣)、按键时蜂鸣器短鸣。
图11 液晶显示结果
六、总结
论文首先对本设计作了简要描述,对软件、硬件进行简单的描述。随后提出了不同的设计方案,经过论证最后确定该设计采用时钟模块、显示模块、键盘接口模块、温度测量模块等模块组成,接着分别从硬件系统和软件系统两方面对基于单片机的电子万年历设计作了详细论述,另外还简要介绍了一下系统的调试。
13
在整个设计过程中,硬件方面主要设计了AT89C51单片机的最小系统、DS1302接口电路、DS18B20接口电路、LCM1602显示;软件方面借助各个渠道的资料,主要设计了日期数据读取程序、温度采集程序、按键扫描程序以及LCD显示程序;系统的调试主要是通过Proteus,再借助于Keil以及少许自己搭建的外围电路实现的;再此过程中,分步调试时显示出了日期及时间,还有实时温度,集中调试达到预期效果。但在此过程中培养了自己的动手能力。
此万年历具有读显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
经过本次毕业设计,使我对大学所学专业知识的进行了系统的总结。综合运用所学知识发现、提出、分析和解决实际问题
致谢
首先感谢学校在毕业之际给我们一个可能让我们把所有的知识总结起来的机会,通过这次毕业设计,使我对以前所学的知识有了一个整体上的概括,也让我们具体了解到了每个元件在电路中的具体作用,了解到了它的功能、结构。
其次我要衷心的感谢授课老师对我专业知识的教导和指导老师的帮助。为我提供了大量而又详实的资料给我,使我从困惑迷茫的初期走向论文的顺利完成,在完成论文的同时也深受启发和教育,使我受益终生。最后接受我最诚挚的谢意!
14
参考文献
【1】刘训非,陈希.《单片机技术及应用》.北京:清华大学出版社 2010
【2】杨宁,胡学军.《单片机与控制技术》.北京:北京航空航天大学出版社.2005年 【3】余西存,曹国华.《单片机原理及接口技术》.西安:西安电子科技大学出版,2000年.
【4】沈卫红,编著.《基于单片机的智能系统设计与实现》.北京: 电子工业出版社2005年
【5】王越明,编著..黑龙江:黑龙江科技信息出版社2004年
15
《电子万年历的设计》
附录一:系统电路
16