XXXX学院实验报告ExperimentationReportofTaiyuanNormalUniversity报告内容一、实验目的四、实验方法二、实验原理五、实验记录及数据处理三、实验仪器及材料六、误差分析及讨论系部计算机年级大三课程单片机原理与接口技术姓名同组者日期学号项目LCD1602显示时钟一、实验目的1、了解单片机顺序执行的特点;2、掌握C语言的编写和keilc51的使用;3、熟悉DS1302芯片的工作过程二、实验仪器硬件资源:单片机开发板笔记本电脑DS1302芯片;软件资源:软件KeiluVision5;三、实验原理1、流程图2、连接图四、实验结果将LCD屏连接到单片机上,点击编译运行,LCD屏上显示时间:2013-01-01212-00-38。在DS1302.c文件里修改ucharTIME[7]={0,0,0x12,0x01,0x01,0x02,0x13};为ucharTIME[7]={0x14,0x11,0x19,0x28,0x11,0x04,0x19};点击编译运行按钮,LCD屏幕显示2019-11-28419-11-14。四、实验代码及分析//主函数voidmain(){Ds1302Init();//初始化DS1302LcdInit();//初始化LCDwhile(1){Ds1302ReadTime();//DS1302读时间LcdDisplay();//LCD显示时间}}//初始化DS1302voidDs1302Init(){ucharn;Ds1302Write(0x8E,0X00);//禁止写保护,就是关闭写保护功能for(n=0;n7;n++)//写入7个字节的时钟信号:分秒时日月周年{Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);}Ds1302Write(0x8E,0x80);//打开写保护功能}//读取时钟信息voidDs1302ReadTime(){ucharn;for(n=0;n7;n++)//读取7个字节的时钟信号:分秒时日月周年{TIME[n]=Ds1302Read(READ_RTC_ADDR[n]);}}//---DS1302写入和读取时分秒的地址命令---////---秒分时日月周年最低位读写位;-------//ucharcodeREAD_RTC_ADDR[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};ucharcodeWRITE_RTC_ADDR[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//---DS1302时钟初始化2013年1月1日星期二12点00分00秒。---////---存储顺序是秒分时日月周年,存储格式是用BCD码---//ucharTIME[7]={0,0,0x12,0x01,0x01,0x02,0x13};//显示函数voidLcdDisplay(){LcdWriteCom(0x80+0X40);LcdWriteData('0'+TIME[2]/16);//时LcdWriteData('0'+(TIME[2]&0x0f));LcdWriteData('-');LcdWriteData('0'+TIME[1]/16);//分LcdWriteData('0'+(TIME[1]&0x0f));LcdWriteData('-');LcdWriteData('0'+TIME[0]/16);//秒LcdWriteData('0'+(TIME[0]&0x0f));LcdWriteCom(0x80);LcdWriteData('2');LcdWriteData('0');LcdWriteData('0'+TIME[6]/16);//年LcdWriteData('0'+(TIME[6]&0x0f));LcdWriteData('-');LcdWriteData('0'+TIME[4]/16);//月LcdWriteData('0'+(TIME[4]&0x0f));LcdWriteData('-');LcdWriteData('0'+TIME[3]/16);//日LcdWriteData('0'+(TIME[3]&0x0f));LcdWriteCom(0x8D);LcdWriteData('0'+(TIME[5]&0x07));//星期}六、心得体会通过此次实验我掌握了单片机上时钟工作过程,如何设置时钟时间,以及将时钟显示在LCD上的方法。亲自动手的实验过程使我对单片机的理论知识有了更好的掌握,明白了理论与实践相结合的重要性。在不断的调试程序的过程中,我深刻意识到动手操作的好处,在日后的学习中一定要提高自己的动手能力,注重实践,在一次次的实验操作中提高自身的综合能力。