第一范文网 - 专业文章范例文档资料分享平台

基于PIC16F887单片机的数字钟课程设计报告

来源:用户分享 时间:2025/5/25 17:38:37 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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

基于PIC16F887单片机的数字钟课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7475c69kp15nd0e7n2yj9vfqx3d4pq015x2_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top