数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1127|回复: 7

[C51] 坛友高手帮忙看看这个数码管程序写入后怎么是黑屏的。

[复制链接]
发表于 2022-3-24 22:10:40 | 显示全部楼层
本帖最后由 慕名而来 于 2022-3-24 22:13 编辑

这么长的代码调试真的不是三言两语能说清的,分享一点建议,有兴趣的可以试试,但只是一点儿我调试程序的方法、有问题也还是要自己琢磨解决的。涉及显示的程序总是要从显示函数开始调试,方法很简单,就是先删除主循环中的所有代码,只加入显示函数看看显示现象,例如:

void main()
{
***//这里原来的内容不变
while(1)
{

display();

}
}
编译后会出现L16****的警告,只要没有错误就可以下载来看显示,如果无显示则查找这个函数的毛病,如果显示4个0是正常的,此时只需要修改第34行的数组,RTC_Data[7]={0,1,2,3,4,5,6}; 此时如果显示正常就说明显示函数可以使用了,而后改回原来的RTC_Data[7];
再次修改主循环的代码:
while(1)
{
Read_RTC();
display();

}
}

再次下载看显示,正常情况下应该能看到时钟走时的显示,一旦显示正常了就说明显示函数、3231的驱动都没问题了,可以继续其他的调试了。
另外,你的18b20代码貌似没有被利用到。
回复 支持 反对

使用道具 举报

发表于 2022-3-26 21:46:53 | 显示全部楼层
motofanoranw 发表于 2022-3-25 21:38
感谢@慕名而来 的指导,这没有C语言功底,搞代码确实缓慢,要一点点验证。18b20代码确实是我整合进来的。 ...

只是一点而经验分享而已,如果不是准备入行从事专业,注定不会按部就班的学习,用到啥学啥就好,我就是从几行数码管驱动代码开始玩单片机的,虽然一直用“外行”的思路对付编程问题,但是身边常见的单片机的简单应用我照葫芦画瓢的也都能浅显的玩一下,非专业学单片机编程我建议从读懂程序开始,读代码就要学习相关的特征字、语句、算法、调试的代码多了以上这些学习的内容的深度、广度也就多了,就你贴的代码而言涉及很多东西,如果能每一句都明白也就差不多入门了一边百度一边琢磨也不难的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-15 21:20 , Processed in 0.140400 second(s), 8 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表