要求:通過鍵盤任意輸入8個數(shù)字,實時按照輸入順序依次從左到右在數(shù)碼管上顯示。
下面是我自己寫的代碼 #include <reg51.h> #define uint unsigned int #define uchar unsigned char uint i,button,temp,num,j=0,n; uchar code button_table[]={0xee,0xde,0xbe,0x7e, 0xed,0xdd,0xbd,0x7d, 0xeb,0xdb}; uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar address[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay(n) { for(i=n;i>0;i--) ; } void delay2() {for(n=50000;n>0;n--) ; } /*****************************************************************/ void main() { while(1) { P3=0xf0; if(P3!=0xf0) { delay(10000); if(P3!=0xf0) { temp=P3; P3=0x0f; button=P3|temp; for(i=0;i<10;i++) { if(button==button_table[ i]) { num=i;break;} } P2=address[j]; P0=table[num]; delay2(); j++; if(j==8)
{j=0;} } } ; } }
但是這個只能實現(xiàn)顯示當前按鍵所對應(yīng)的數(shù)字,圖上是我第三個按鍵按的6,用這種動態(tài)顯示的數(shù)碼管無法顯示8個數(shù)啊,應(yīng)該怎么辦?求大佬解答一下,謝謝~
|