利用51单片机数码管显示时间的8位数码管在一二和七八位,间隔1S循环显示0和1

程序没有错误 2个警告 应该可以用 檢查一下硬件电路 可以先做仿真

硬件电路没有问题我试过别的程序了。两个警告怎么解决
 警告一般是语法的问题也可能是你Keil设置的问題,
解决办法:
1.是文件没有添加到工程里
2.可能是因为存在没有被调用的已经定义的函数。
3.不知道你有没有把Source group组下面的A51.C删掉如果没有删,在A51.c上点右键选择remove file " ".
4.建一个新的c文件,里面写一个空的函数把该文件添加到project中,注意该文件不能再选generate assembler SRC file和assemble SRC file选项重新编译工程,如果警告該函数没被调用在主文件中调一下。
5.建一个新的c文件把主文件中的几个函数移至该文件,把该文件添加到project中注意该文件不能再选generate assembler SRC file和assemble SRC file選项。重新编译工程
其他:UNRESOLVED EXTERNAL SYMBOL 说明连接的时候没有找到外部变量
extern xdata unsigned char RxPnt; 只是说明引用外部变量,并不是实际的声明
应该在某个.c文件里有xdata unsigned char RxPnt才行。
externΦ对这个变量做了声明,说这个变量将会在这个文件中用到,但并没有定义
嗯其实还有两个个问题那就是我宏定义uint和uchar写倒了,还有x++应该是x--功能已经实现了。谢啦!

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

段码就不说了吧就是个查表,位码就是你输到第几个数字,就只显示到那一位

假设数码管位动态扫描方式,位码是P2控制,而且是输出1有效,第一位是在P2.0口

BITNB里边是你存进去的現在显示到第几位了

加延时(有效位数码管显示的时间,时间长短影响是否闪烁)

这样,如果你只显示到第二位

他就会一直刷新显示第一,第二位,后媔的没输出,也就是不显示

同理,如果是第6位,就刷新显示前6位,后两位不显示

BITDATA里边存放要显示几,如果要显示0,就给他赋值0,是9,就赋值9

不知道这样回答是否清楚

我要回帖

更多关于 51单片机数码管显示时间 的文章

 

随机推荐