警告 a、b……l,是 端口 位定义,而在 switch 语句里面却是 当成 char 进行赋值。
另外,LZ的那个DelayCNT 也不知道用来干嘛的。
程序没效果,原因好多:
1、for 循环使用不当,数码管只有8个,for循环却做了9次。而且,C语言是以 分号(;)为语携含猜句结尾的(花括号{}算一个语句),程序中 for()括号后面的分号 决定了辩型 for 循环的内容 为 空;也就老誉是说LZ的 for循环成 空 *** 作。
2、LZ C语言不扎实,位选 *** 作不当。
另:数码管显示代码为 char 型,LZ 的 LED[]数组没必要用 int 型的。
#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int
#define fNumVal 1234
uchar code dis_tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}
uchar LED[8]
delayms(uint xms)
{uint i,j
for(i=xmsi>0i--)
for(j=110j>0j--)
}
void main()
{
uchar loca=7
LED[0]=fNumVa/1000l%10
LED[1]=fNumVa/100l%10
LED[2]=fNumVal/10%10
LED[3]=fNumVal%10
LED[4]=fNumVa/1000l%10
LED[5]=fNumVal/100%10
LED[6]=fNumVal/10%10
LED[7]=fNumVal%10
while(1)
{
P1=0xff
loca=++loca%8
P0=dis_tab[LED[loca]]
P1=~(1<<(7-loca))
delayms(1)
}
}
没编译的,有问题再说吧,愿上帝保佑你!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)