南华大学
第五章 系统测试与总结
5.1 系统测试
从开始准备到写完论文大概花了一周时间,原理图和PCB制作花了一天时间,在这期间主要遇到的问题是Altium Designer软件的使用,遇到问题主要到百度上查找答案,PCB做出之后紧接着就是焊接元器件,这部分由于粗心将电解电容正负极焊反,后面经过万用表不断的测试才判断出来,及时纠正过来,焊接与硬件调试大概花了半天时间。紧接着大部分的时间都花费在硬件与软件的结合调试上,在调试过程中使用自己在网上买的51单片机开发板上进行一步一步的调试。由于是第一次做课程设计,同时也是第一次写这么综合的程序,所以在调试过程中遇到很多问题,一部分是关于DS1302与1602的硬件特点以及在硬件的基础之上驱动程序的调用,这里主要是网上找资料去学会调用与编写,主要是通过网上视频教学 ;另一部分是自己做的硬件存在很多误差,特别是电源供电部分,刚开始是用废弃的鼠标上的那个USB接口线插在电脑上供电,但由于电源介入硬件的是两个排针,所以很不稳定,1602上总乱码,或者5个按键随便一个按下都是复位,而且从电脑输出5V接到硬件系统后只有4.5V了,想了一下,最后拿出上学期期末自己做的电源将它调节到6V后,接入硬件系统就能达到5V。
5.2 总结
通过本次论文设计,使我加深了对单片机的认识,并且熟悉了单片机系统的设计流程,收获丰硕。功能上基本达标:时钟与闹钟的显示,调时间和闹钟功能以及闹钟鸣叫功能。时钟与闹钟显示功能,精确度完全可以满足日常生活显示时间的需要;调时间与闹钟功能,方便快捷。硬件设施基本合乎要求,软件设计可以配合硬件实现其功能。
技术在不断进步,机械式时钟已经被淘汰,取而代之的是具有高度准确性和直观性且无机械装置,具有更长的使用寿命等优点的电子时钟。电子时钟更具人性化,更能提高人们的生活质量,更受人们欢迎。机械时代已经远去,电子时代已经到来。做为新时代的我们,更应该提高自身能力,适应新时代的发展。知识来自实践,多从生活中探寻所需要的。
从这次的论文设计中,我真正的体会到,知识的重要性,特别是要理论联系实际,把我们所学的理论知识运用到实际生活当中,要用知识改变一切。
- 17 -
南华大学
致谢
首先,感谢学校2年来对我的培养。为我们营造了一个良好的学习氛围,建设一流的教学设施,使我们身心愉快的投入到学习中。
其次,感谢学院的老师,有了他们的谆谆教诲,才使本论文的前期准备以及整个研究过程顺利完成。学院老师的严谨治学态度、扎实的理论基础、全身心投入工作的精神以及对学生尽心尽力的态度给了我极大的帮助与鼓励,使我受益匪浅。从学院老师的教学态度上,我学到的不仅仅只有书本上的知识,还有做人的道理。他们严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。在此谨向学院全体老师致以诚挚的谢意和崇高的敬意。
最后,感谢我的父母多年来给予我的支持和关怀,同时感谢我的舍友和朋友对我的帮助。
参考文献
[1]李广第,朱月秀,冷租祁.单片机基础第三版.北京:北京航空航天大学出版社(1——259)。 [2]李庆亮.C语言程序设计实用教程.北京:机械工业出版社,2005.3(1——100)。 [3]康华光.电子技术基础数字部分.北京:高等教育出版社,2008(1——560)。 [3]康华光.电子技术基础模拟部分.北京:高等教育出版社,2008(1——560)。 [4]杨志忠.数字电子技术.北京:高等教育出版社,2003.12(30——100)。
[4]及力.Protel 99 SE原理图与PCB设计教程.北京:电子工业出版社,2007.8(48——100)。 [10]杨欣.电子设计从零开始.北京:清华大学出版社,2005(10——200)。 [12]邢小杰.单片机电子时钟设计.中国科技博览,2009。
源程序清单
#include
sbit lcden=P2^7;//定义下面通过lcden来操作P2^7口,1602液晶使能控制端 sbit lcdwr=P2^5;//定义下面通过lcdrw来操作P2^5口,1602读写选择端 sbit lcdrs=P2^6;//定义选数据寄存器选指令寄存器控制端 sbit sda=P3^4;//定义DS1302数据总线
- 18 -
南华大学
sbit rst=P3^5;//DS1320复位 sbit sck=P3^6;//定义时钟总线 sbit s1=P1^0;//定义设置按钮 sbit s2=P1^1;//定义调时按钮 sbit s3=P1^2;//定义确定按钮 sbit s4=P1^3; sbit ACC0=ACC^0; sbit ACC7=ACC^7; sbit BELL=P1^5;
char fen,shi,miao,ri,yue,nian,zhou,s1num,s2num,s4num,flag1,flag2,lshi,lfen; uchar code table[]={\ - \要写入1602液晶的数据
uchar code table1[]={\ : : : \字库中的字可直接以外加\号的形式直接写入 uchar code table2[]={\欢迎界面 uchar code table3[]={\ //欢迎界面
/******************************************************************************* 时函数,z的取值为这个函数的延时ms数,delay(200);大约延时200ms. delay(500);大约延时500ms
*******************************************************************************/ void delay(uint z) { }
/*********************蜂鸣器函数************************************************/ void didi() { uchar i;
for(i=0;i<60;i++) {
BELL = 0;
delay(1); BELL = 1; delay(1); uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);
}
- 19 -
南华大学
}
/*******************向1602液晶中写一个指令**************************************/ void write_com(uchar com) { }
/****************************向液晶写数据***************************************/ void write_data(uchar date)//与写指令类似,这里lcdrs设为1 { }
/*****************************初使化1602液晶************************************/ void init_1602() { }
/*******************************************************************************/
- 20 -
lcdwr=0;
//lcdwr为读写控制端,lcdwr=0,这里可不写
lcdrs=0; //液晶rs接口为0时,写指令,rs为1时写数据 P0=com; //将要写的指令赋给P0口,
delay(5); //由1602读写操作时序图,先将指令赋给P0口,延时后将使能 lcden=1; // 端lcden置高,再延时一段时间,然后将lcden置低,这样指令 delay(5); // 就写入到LCD了 lcden=0;
lcdrs=1; P0=date; delay(5); lcden=1; delay(5); lcden=0;
lcdwr=0; lcden=0;
write_com(0x38);//设置LCD为16*2显示、5*7点阵、8位数据接口模式 write_com(0x0c);//开显示、不显示光标 write_com(0x06);//写一个字符后,地址指针加1 write_com(0x01);//显示清0
相关推荐: