Ⅰ 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;
}
}
}
Ⅱ 單片機流程圖
在word里畫的,不太漂亮,湊合看下,這個程序就是開機後,1s蜂鳴器叫一下,等到30s時(包括之後的時間都是)蜂鳴器一直響~~給你畫個圖用了半個小時時間~~
Ⅲ 51單片機怎樣用鍵盤控制數碼管顯示
51單片機怎樣用鍵盤控制數碼管顯示的方法。
如下參考:
1.首先,編寫代碼並點亮數碼管。
Ⅳ 單片機的按鍵啟動和復位電路圖
單片機的復位有上電復位和按鈕手動復位兩種。如圖(a)所示為上電復位電路,圖(b)所示為上電按鍵復位電路。
上電復位是利用電容充電來實現的,即上電瞬間RST端的電位與VCC相同,隨著充電電流的減少,RST的電位逐漸下降。圖(a)中的R是施密特觸發器輸入端的一個10KΩ下拉電阻,時間常數為10×10-6×10×103=100ms。只要VCC的上升時間不超過1ms,振盪器建立時間不超過10ms,這個時間常數足以保證完成復位操作。上電復位所需的最短時間是振盪周期建立時間加上2個機器周期時間,在這個時間內RST的電平應維持高於施密特觸發器的下閾值。
上電按鍵復位(b)所示。當按下復位按鍵時,RST端產生高電平,使單片機復位。復位後,其片內各寄存器狀態改變,片內RAM內容不變。
由於單片機內部的各個功能部件均受特殊功能寄存器控制,程序運行直接受程序計數器PC指揮。各寄存器復位時的狀態決定了單片機內有關功能部件的初始狀態。
另外,在復位有效期間(即高電平),80C51單片機的ALE引腳和引腳均為高電平,且內部RAM不受復位的影響。
圖要點一下查看大圖才清楚哦O(∩_∩)O
Ⅳ 單片機程序流程圖如何寫文字說明
單片機程序流程圖用文字敘述如下:
上電,復位初始化,進入系統待機,如果沒有感測器信號產生的中斷就一直等待感器信號觸發中斷,如果有感測器信號發出中斷則進入觸發警報服務程序,等待停止警報按鈕按下,解除警報,等待按下復位按鈕對系統初始化再次進入系統,等待中斷觸發狀態。
編程大概有80%精力放在流程圖,剩下的就是用語言描述而已。所以編程最難的不是把代碼寫出來,而是把流程圖畫出來。有了流程圖,編程就簡單很多了。
Ⅵ 51單片機顯示時間的流程圖怎麼畫
51單片機顯示時間的流程圖畫步驟。
1、首先畫出51單片機流程圖框架。
2、其次添加流程圖細節,完善框架。
Ⅶ 單片機程序及流程圖(具體可以看圖)
這些程序注釋多麼詳細,你還需要怎麼直白呢?還是自己稍微靜心一會,仔細看看程序吧。別人再也無法給你更詳細的註解了。至於流程圖,你可以以主程序為主來繪制主程序流程圖,也可以對關鍵子程序繪制功能模塊的流程圖。
Ⅷ 單片機怎麼控制電腦鍵盤輸入
進入軟體,最基礎的創建工程我就不說了,直接到按鍵程序,寫程序,首先要了解按鍵,對於按鍵,分為獨立式和矩陣式按鍵。
先說說獨立式按鍵,這個十分簡單,特點是每個按鍵佔用一條I/O線,當按鍵數量較多時,I/O口利用率不高,但程序編制簡單。所以,如果按鍵就那麼兩三個的話用起來還是占優勢的哦。這樣的開關程序就是一個檢測過程,看I/O埠是否低電平,如果是則有按鍵按下,否則就沒有。如下是獨立式按鍵的接法。
步驟閱讀
3
復雜的是矩陣式按鍵,但是他也有很大的優勢,電路連接復雜,但提高了I/O口利用率,軟體編程較復雜。要是你的東西有很多的按鍵要操作,那麼採用這種方式的優勢就十分明顯了。如下圖就是矩陣式按鍵,矩陣式按鍵的程序較獨立式按鍵復雜的多,方法也很多,基本的有線翻轉法,掃描法,計演算法,因為程序很復雜的原因,在這里就不一一講解了,有興趣的自己可以查查資料。
Ⅸ 單片機獨立按鍵的電路圖
可以,原理圖不是PCB布板,不是非得把器件用線連上才算連接的。原理圖上只要有同樣的網路編號原理上就是連通的。同樣的道理,這些電阻你都可以放到一邊,只要打上對應管腳一樣的網路標號就行