A. 為51單片機設計一個上拉輸入和下拉輸入的按鍵電路並分析其工作原理
按鍵一般是上拉,單片機的IO通過電阻上拉高電平,按鍵正常高電平當按鍵按下短路,把IO變成低電平,單片機檢測到低電平表示有按鍵按下,按鍵下拉一般是把單片機IO通電阻接到GND,按鍵正常是低電平,當按鍵按下把IO拉高,單片機檢測到高電平表示有按鍵按下。
B. 51單片機鍵盤的原理圖中只有兩個引腳,平面圖形,在實物電路連接中鍵盤是四個引腳的,那要怎麼連接電路
你把那個四角的微動開關反過來看
中間有一個矩形框
在矩形框同一邊的兩個腳是相連的圖中1,4內部相連2.3內部相連
所以你要是用兩個腳就一個連1一個連2就好了
當然如果你有萬用表一測就出來了
C. 51單片機「上電/按鍵復位電路」的原理及其電容C的作用
簡單來講電容在這里只起到了一個啟動的作用,就是按鍵按下後立即釋放電容內部的電荷,直接連接到單片機的復位端給復位端強行輸入一個電位使單片機復位~~
D. 51單片機3鍵鍵盤電路圖[只有三個按鍵,鏈接pc的]
同學你好,我來幫你,你可以使用串口啊,比如:1:給你一個從PC發給單片機數據後,單片機再原樣發給PC的參考代碼:2:將51某一個(引腳)按鍵0,1狀態,發給PC;
1::::::::::::::
#include <REG52.H>
bit Flag;
unsigned int R_D,S_D;
unsigned char i;
void usart_init(void); ///串口初始化
void main (void) {
usart_init(void); ///串口初始化
while(1)
{
if (Flag==1)
{
SBUF = S_D; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
Flag=0;
}
}
}
}
void ser_int (void) interrupt 4 using 1
{
if(RI == 1) //RI接受中斷標志
{
RI = 0; //清除RI接受中斷標志
R_D = SBUF; //SUBF接受/發送緩沖器
S_D=R_D;///////返回PC發送
Flag=1;
}
}
void usart_init(void)///串口初始化
{
SCON = 0x50; //REN=1允許串列接受狀態,串口工作模式1
TMOD|= 0x20; //定時器工作方式2
PCON|= 0x80;
TH1 = 0xF3;// //baud*2 /* 波特率4800、數據位8、停止位1。效驗位無 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //開串口中斷
EA = 1; // 開總中斷
}
2:::::::::::::
#include <REG52.H>
sbit p34=P3^4;////////定義一個按鍵
bit Flag=1;
unsigned int S_D;
unsigned char i;
void usart_init(void); ///串口初始化
void delay (unsigned int Z) ; //延時程序 Z倍 MS
void key_p34(void) ; /////按鍵檢
void main (void) {
usart_init(void); ///串口初始化
key_p34(void) ; ////上電後檢測一次按鍵的狀態
if (Flag==1)//上電後發送一次按鍵的狀態
{
SBUF =1; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
else
{
SBUF =0; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
while(1)
{
key_p34(void) ;
if (Flag==1)
{
SBUF =1; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
else
{
SBUF =0; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
}
}
void usart_init(void)///串口初始化
{
SCON = 0x50; //REN=1允許串列接受狀態,串口工作模式1
TMOD|= 0x20; //定時器工作方式2
PCON|= 0x80;
TH1 = 0xF3;// //baud*2 /* 波特率4800、數據位8、停止位1。效驗位無 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //開串口中斷
EA = 1; // 開總中斷
}
void delay (unsigned int Z)//延時程序 Z倍 MS
{
unsigned int x,y;
for(x=Z;x>0;x--)
for(y=110;y>0;y--) ;
}
void key_p34(void) /////按鍵檢測
{
if(p34==0)
{ delay(10);
if(p34==0)
{
while(!p34) ;/////等待按鍵鬆手
Flag=0;
}
}
}
E. 51單片機鍵盤電路的兩種方式,各自的優缺點
獨立按鍵優點:可以直接讀取,檢測佔用時間較少,不受其他因素影響
缺點:佔用IO口資源較多,每一個按鍵都獨佔一個IO口。
矩陣鍵盤優點:佔用IO口資源較少。
缺點:必須掃描檢測按鍵情況,程序復雜,佔用時間較多。
F. 51單片機鍵盤編程 小弟一點也不懂,好心的大俠幫個忙!
JNZ K1,K11
JNZ K2 ,K22
JNZ K3,K33
JNZ K4,K44
K11: SETB P1.0
;延時一下
clr p1.0
其它的你就自己編了就是輸入幾個電平就是了
G. 單片機鍵盤顯示電路設計的程序要求輸入64個按鍵,8個LED顯示
一種是採用8行8列組成的按鍵就可以了,實際上是16個開關,但可以實現64個按鍵。具體的看看網上的4*4鍵盤是什麼原理。基礎要自己想。
第二種是採用8255或8155擴展,具體的要自己去看去學。