当前位置:首页 > 基于DS1302与LCD1602的电子日历时钟的设计与实现 - 图文
Lcd1602_Delay1ms(5); LCD1602_E = 0; }
#endif
/*******************************************************************************
* 函 数 名 : LcdWriteData * 函数功能 : 向LCD写入一个字节的数据 * 输 入 : dat * 输 出 : 无
*******************************************************************************/ #ifndef LCD1602_4PINS void LcdWriteData(uchar dat) //写入数据 {
LCD1602_E = 0; //使能清零
LCD1602_RS = 1; //选择输入数据 LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = dat; //写入数据 Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5); //保持时间 LCD1602_E = 0; } #else
void LcdWriteData(uchar dat) //写入数据 {
LCD1602_E = 0; //使能清零
LCD1602_RS = 1; //选择写入数据 LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = dat; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E = 0;
LCD1602_DATAPINS = dat << 4; //写入低四位 Lcd1602_Delay1ms(1);
17
LCD1602_E = 1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E = 0; }
#endif
/*******************************************************************************
* 函 数 名 : LcdInit() * 函数功能 : 初始化LCD屏 * 输 入 : 无 * 输 出 : 无
*******************************************************************************/ #ifndef LCD1602_4PINS void LcdInit() //LCD初始化子程序 {
LcdWriteCom(0x38); //开显示
LcdWriteCom(0x0c); //开显示不显示光标 LcdWriteCom(0x06); //写一个指针加1 LcdWriteCom(0x01); //清屏
LcdWriteCom(0x80); //设置数据指针起点 } #else
void LcdInit() //LCD初始化子程序 {
LcdWriteCom(0x32); //将8位总线转为4位总线 LcdWriteCom(0x28); //在四位线下的初始化 LcdWriteCom(0x0c); //开显示不显示光标 LcdWriteCom(0x06); //写一个指针加1 LcdWriteCom(0x01); //清屏
LcdWriteCom(0x80); //设置数据指针起点 }
#endif
3.4 位定义
PIN口定义
sbit LCD1602_E=P2^7; sbit LCD1602_RW=P2^5; sbit LCD1602_RS=P2^6;//
---定义ds1302使用的IO口---// sbit DSIO=P3^4; sbit RST=P3^5; sbit SCLK=P3^6;
18
第四章 指标测试
4.1 测试仪器
测试如表2 所示。 序号 1 2 3 4 名称 PC机 单片机仿真软件 数字万用表 ISP在线下载线 表2 测试仪器
型号 Proteus、keil C DT9205B 4.2 硬件测试
可调电子日历的电路,焊接不可轻视,只要出于一处的错误,则会对检测造成很大的不便,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。
在电子日历的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:
(1)单片机晶振不起振
(2)LCD1602液晶的VDD 与VSS 引脚接反了,当时也没接保护电阻,
电容,结果把液晶发热烧坏了。 解决:①:根据仪器的测试,发现电路引脚有接错的现象,重新焊接后晶振, 复位正常,程序能够下载。②:重新买了个液晶,把VDD与VSS重新接到 正确的引脚。
4.3 软件测试
电子日历是多功能的数字型,可以看当前日期,时间。在编写程序和调试时出现了较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。
19
4.4 测试结果分析与结论
4.4.1 测试结果分析
(1).在测试中遇到单片机晶振不起振,首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏.
(2).LCD1602液晶不显示时间和日期,首先使用试测仪对电路进行测试,观察电路是否存在短路现象。然后查看程序是否正确无误,对程序进行认真修改。
4.4.2 测试结论
经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力,同时在软件的编程方面得到更多的提高,对编程能力得到加强,同时对所学的知识得到很大的提高与巩固。
作品总结
在整个设计过程中,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识,较好的完成了作品,达到了预期的目的。完了最初的设想。在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路焊接过程中,不能心急,一个个慢慢来不能急于求成。反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,理清了思路,反而得心应手。通过做这次的毕业设计,我知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我的耐心,做什么事都要有耐心。此次毕业设计中学到了很多很多东西,这是最重要的。总之,毕业设计让我的能力得到了全方位的提高。
致谢词
感谢学院,感谢老师再设计中给予我的帮助,给我一次难得煅炼的机会,使得我的动手能力和专业技能都有了很大的提高。
在设计和制作的过程中,我深切的体会到,实践的重要性,这一次的设计是对我所学知识的一次综合性检测,无论是动手能力还是理论知识运用能力都得到了提高,同时加深了我对网络资源的认识,大大提高了查阅资料的效率,使我有充足的时间投入到电路设计当中。在做作品的日子里得到了指导教师的悉心指导,在此向我的指导教师致以诚挚的谢意。并且感谢提供相关技术帮助的老师和同学,你们的支持和鼓励使我们对这次的作品完成有了信心和动力,也给了我很多无私的帮助和支持,我在此深表谢意。
20
共分享92篇相关文档