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口 沒有問題,只要發揮程式設...