我用矩陣按鍵來控制數碼管,顯09,但程序實際運無反映,請高手指導

2022-10-01 15:35:03 字數 2567 閱讀 2037

1樓:枕霞仙子胡豔

void keyscan()

while(temp!=0xf0)

flag=flag+1;}}

p2=0xfd;

temp=p2;

temp=temp&0xf0;

while(temp!=0xf0)

while(temp!=0xf0)

flag=flag+1;}}

p2=0xfb;

temp=p2;

temp=temp&0xf0;

while(temp!=0xf0)

while(temp!=0xf0)

flag=flag+1;}}

p1=0xf7;

temp=p1;

temp=temp&0xf0;

while(temp!=0xf0)

while(temp!=0xf0)

flag=flag+1;}}

}這是鍵掃程式,肯定有用的

2樓:嚴安珍

按鍵掃瞄,把i/0口的高低位相加

void keyscan(void)

//鍵盤編碼

} key=(r+c);

} }

利用上面所加的結果,生成鍵碼表,s=0到s=15,在主函式中,依據s的值做你想完成的操作

uchar keydeal(uchar key)}return (s); // 返回鍵編碼}

3樓:匿名使用者

彙編的你懂嗎?需要的話我教你

寫了個微控制器矩陣按鍵控制數碼管顯示數字的程式,只需要顯示0到9就好了。但是自己寫的調不出來,謝謝幫忙

4樓:

void keyscan()

while(temp!=0xf0)

flag=flag+1;}}

p2=0xfd;

temp=p2;

temp=temp&0xf0;

while(temp!=0xf0)

while(temp!=0xf0)

flag=flag+1; }}

p2=0xfb;

temp=p2;

temp=temp&0xf0;

while(temp!=0xf0)

while(temp!=0xf0)

flag=flag+1;}}

p1=0xf7;

temp=p1;

temp=temp&0xf0;

while(temp!=0xf0)

while(temp!=0xf0)

flag=flag+1;}}

} 這是鍵掃程式,肯定有用的

51微控制器利用矩陣按鍵控制數碼管顯示0-9數字。。。救救我吧,我快瘋了。 5

5樓:匿名使用者

#include

unsigned char code table[10]=;

unsigned char t=0;

unsigned char i=0;

void delay(unsigned char i)void displayled(unsigned char n)void keycan() //判斷 矩陣鍵盤是否被按下while(tmp!=0xf0)

if(tmp!=0xee)

}}p2=0xfd; //第三列

tmp=p2;

tmp=tmp&0xf0;

if(tmp!=0xf0)

while(tmp!=0xf0)

displayled(key);

}}p2=0xfb; //第二列

tmp=p2;

tmp=tmp&0xf0;

if(tmp!=0xf0)

while(tmp!=0xf0)

displayled(key);

}}p2=0xf7; //第一列

tmp=p2;

tmp=tmp&0xf0;

if(tmp!=0xf0)

while(tmp!=0xf0)

displayled(key);}}

} void main()}}

}void timerled() interrupt 1 using 1

用在矩陣鍵盤控制靜態數碼管顯示相應矩陣按鍵個位數的數字0-9,沒有錯誤,但是靜態數碼管始終不亮

6樓:

你的按鍵檢測有問題吧,keydown()這個函式不管有沒有按下按鍵都會向下執行,所以你按鍵的時候可能並沒有執行到檢測那條語句。

你把數碼管顯示寫成乙個函式,用display(keydown())這樣應該好一點

用c51微控制器按下4*4矩陣按鍵,數碼管顯示0-f,能正常顯示,只是0號和7號有時會出錯,請高手幫忙,

7樓:匿名使用者

一般讀寫操作都是先送位址,再送資料,所以你可以試試將p0=seg7[key];

p2=0xfe;

這兩句掉換一下位置。即先賦值p2,再賦值p0。

用51微控制器控制4位led數碼管,使其顯示出想要的數字,程式

1 建立數字與p口對應的陣列 2 位選顯示 數碼管是8段的吧,正好對應某個p口的8個位,要顯示某個陣列只需將相應的px x亮起來就可以了 這樣 1 首先把段碼端和片選端都設為輸出,也就是led和微控制器連的那幾個角 2 你先用延時來做吧,大致是這樣的 設乙個片選有效 把要顯示的內容放段碼中 延時15...

微控制器控制數碼管為什麼顯示很暗,微控制器數碼管顯示 為什麼會乙個亮其他的都暗

可能是延時問題,以前也遇到過 延時時間太短,至少兩三毫秒 兩位的不需要接三極體。真正的這樣接的話,不串限流電阻,應該會燒數碼管的,估計這數碼管很差。延時0.2ms的都做過,顯示正常。加個上拉電阻。使用外部供電!微控制器控制數碼管為什麼顯示很暗 長期點亮就是 數碼管最亮 的時候。但動態顯示中做不到長期...

微控制器控制數碼管時為什麼要用到鎖存器,難道不可以直接控制嗎

只要微控制器的驅動電流足夠時當然可以直接控制數碼管,但這樣佔用很多微控制器埠所以般不這樣做,用鎖存器既能節約微控制器站口,又能增加驅動電流,所以一般用鎖存器驅動數碼管。不用鎖存器的話要佔用兩個i o口,乙個控制數碼管段碼,乙個控制數碼管位碼,用鎖存器的話可以節省1個i o口 沒有問題,只要發揮程式設...