智能车制作
标题:
这个程序不知道那里出了问题,求解!!
[打印本页]
作者:
SHine。。
时间:
2018-1-19 09:54
标题:
这个程序不知道那里出了问题,求解!!
预期效果是单片机上数码管依次显示0~F,仿真也没问题,但单片机上就只显示数字0.
#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay()
{
int i;
for(i=0;i<50000;i++);
}
void main()
{
while(1)
{
u8 j=0;
for(;j<16;j++)
{
P1=smgduan[j];
delay();
}
}
}
作者:
神车名为GTR
时间:
2018-1-19 12:19
本帖最后由 神车名为GTR 于 2018-1-19 12:22 编辑
delay函数里i的范围不对
不过这个错误应该不是问题所在…………
还有就是你那个数组里只有16个数,为什么定义数组大小为17呢?
作者:
SHine。。
时间:
2018-1-22 19:24
神车名为GTR 发表于 2018-1-19 12:19
delay函数里i的范围不对
不过这个错误应该不是问题所在…………
谢谢,那个是把int i ;改成unsigned int i;就可以了
是i的范围出错了。
至于17 ,改成16 好些,先前我可能是输错了。
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2