以下程序是一個四位定時顯示程序
a【9】是顯示0-9是的代碼,c【3】是1-4位數碼管點亮代碼,b【0】-b【3】用來記錄各位的狀態,b【4】用來掃描各個數碼管
我用的是 stc89c52 要求是從低位開是0123456789......向高位進位是高位點亮,請教各位大俠下面這個程序有什么問題
#include<reg52.h>
int a[9];
int c[3];
delay()//延時函數
{
int i;
for(i=0;i<3340;i++)
;
}
int jishu(int i)//數據顯示表格
{
return a;
}
int dingwei(int i)//位置表格
{
return c;
}
main()
{
int b[4];
c[0]=0xfe;
c[1]=0xfd;
c[2]=0xfb;
c[3]=0xf7;
a[0]=0xff;
a[1]=0xf9;
a[2]=0xa4;
a[3]=0xb0;
a[4]=0x99;
a[5]=0x92;
a[6]=0x82;
a[7]=0xf8;
a[8]=0x80;
a[9]=0x90;
for(b[0]=0;b[0]<=9;b[0]++)//最高位
for(b[1]=0;b[1]<=9;b[1]++)//次高位
for(b[2]=0;b[2]<=9;b[2]++)//次低位
for(b[3]=0;b[3]<=9;b[3]++)//低位
for(b[4]=0;b[4]<=3;b[4]++)//定位計數函數
{
P3=dingwei(b[4]);
P0=jishu(b[b[4]]);
delay();
}
}
b[b[4]]
這里有問題
如果這么寫4以上的數字能顯示出來嗎
b[0],b[1],b[2],b[3]對應的是0-3號數碼管顯示的數字,b[b[4]]是在選擇點亮的數碼管,在0-3里選擇。
程序的問題是b數組設成b【4】時PC亂飛,改成b【5】其他什么都不變,就能按預想執行,困惑至今了
歡迎光臨 (http://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |