5.实验验证
5.1proteus仿真验证
把写好的程序进行仿真,并不断修改程序,最终程序基本实现了预期的功能。仿真结果如下:
5.2实验室调试
用PIC16F887实验板,通过PIC3连接,进行在线调试和脱机运行,发现问题。
问题一:无法显示时间和温度,IIC通信停止。
解决办法:TC74仿真和实物的地址不一样,只需把地址1001101改为1001000
问题二:按键调整时光标没有和仿真一样闪动
解决办法:由于程序刷新太快,人眼无法分辨,所以只需在按键后面加50ms的延时即可。
问题三:不能掉电保护,每次脱机或者复位都会进行时钟初始化
解决办法:DS1307初始化前先进行判断秒的最高位是否为1,为1则进行初始化
问题四:上电了喇叭就能会响 解决办法:闹钟判断程序修改如下
原程序:BCD(sect);
if(SW==(A[0]>>4)&&GW==(A[0]&0x0F))
9
BCD(mint);
if(SW==(A[1]>>4)&&GW==(A[1]&0x0F)) BCD(hourt);
if(SW==(A[2]>>4)&&GW==(A[2]&0x0F)) CCP2CON=0b00001100; //开PWM模式 if(SW==(A[0]>>4)&&GW==(A[0]&0x0F))
{BCD(mint);
if(SW==(A[1]>>4)&&GW==(A[1]&0x0F)) {BCD(hourt);
if(SW==(A[2]>>4)&&GW==(A[2]&0x0F)) CCP2CON=0b00001100; //开PWM模式 }
修改后:BCD(sect);
6.实验小结
本次课程设计,收获颇多。通过本次课程设计,加深了我对单片机的理解,提高了编程能力、动手能力、分析问题和解决问题的能力,同时也多学了很多知识,补充了课内没有涉及的很多知识。数字时钟的成功设计也激发了我对单片机的浓厚兴趣,积累了一定的设计经验。认真编写程序和做好注释与备份就是在节省时间,模块换编程才比较简单可靠,同时最终的结果要以实物的实际情况为准。在编程和调试过程中遇到的很多问题,培养了我细心、耐心、严谨的精神,虽然,很多时候调试程序到深夜,但当看到自己的成果一点一点出来的时候,成功的喜悦和满足早已洗去了疲劳。
参考书目:
[1]《PIC16系列单片机C程序设计与PROTEUS仿真》 江和,北京航空航天大学出版社,2010 [2]《福州大学PIC单片机课程设计指导书》江和,鲍光海,2012年3月
10
相关推荐: