先用微控制器+薄膜鍵盤做密碼鍵盤的輸入,通過串列埠把獲取到的按鍵值發給樹莓派去識別和操作。這裡用了#號鍵作為密碼輸入結束的確定鍵。微控制器程式和樹莓派程式調通後,列印外殼,焊板子(因為體積關係不可能直接塞個直插封裝的微控制器下去,所以就買了比較方便焊接體積又相對小的dip封裝的微控制器,這裡用了stc15系列的微控制器,可以省掉晶振的焊接)
微控制器讀鍵盤資料的**如下(微控制器使用的是stc15w404as型號)
#include "stc15w404as.h"
#include #define key_port p1 //鍵盤介面定義
sbit key_port_0=key_port^0;
sbit key_port_1=key_port^1;
sbit key_port_2=key_port^2;
sbit key_port_3=key_port^3;
sbit beep=p5^5; //蜂鳴器
sbit open=p5^4; //開門按鍵
/*******************************
stc15w404微控制器一毫秒延時函式
*******************************/
void delay_ms(unsigned int ms)
while (--i);
}}/**************************
串列埠傳送乙個字元
**************************/
void com_send_dat( unsigned char dat)
void init_com(void) //[email protected]
/**************************
鍵盤掃瞄函式
**************************/
unsigned char keyscan(void);
key=0xff; //輸出初始化值
key_port=0x0f; //確定行列位置
if(key_port==0x0f) return(255); //無鍵按下返回0
delay_ms(5); //呼叫延時函式 ,目的是去前沿鍵抖。
if(key_port==0x0f) return(255); //再次判斷。目的是確保檢測正確
else
key=key_port; //取得鍵值
for(;key_port!=0x0f;key_port=0x0f); //等待鍵鬆開,目的是去後沿鍵抖
for(i=0;key_table[i]!=key && i<16;i++); //查表取key的值0-f
key=i;
return(key); //帶鍵值返回主調函式
}} /**************************
鍵盤掃瞄測試主函式
**************************/
void main(void)
if(open==0) //如果從裡面按下了開關則傳送乙個字串}}
微控制器控制開門的**
#include #include sbit in1=p1^0; //霍爾感測器1
sbit in2=p1^1; //霍爾感測器2
sbit out=p2^0; //門控制
sbit relay=p2^1; //繼電器
bit oflag = 0; //狀態標記
void delay100ms(unsigned int t)
while (--j);
} while (--i);
}} void main(void)
relay=1;
out=1;
}else if(in2==0)}}
電路圖如下:
基於51微控制器的智慧型溫控風扇
1.功能 本設計為一種溫控風扇系統,具有靈敏的溫度感測和顯示功能,系統選用stc89c52微控制器作為控制平台對風扇轉速進行控制。可在測得溫度值在高低溫度之間時開啟風扇弱風檔,當溫度公升高超過所設定的溫度時自動切換到大風檔,當溫度小於所設定的溫度時自動關閉風扇,控制狀態隨外界溫度而定。2.硬體設計 ...
基於51微控制器的智慧型計算器
其實,說智慧型也不算智慧型,就是在計算器上加上了日曆 時鐘和溫度顯示而已。具體用到的也是51很基礎的模組,乙個鍵盤,乙個1602,溫度顯示那塊用到了ds18b20,硬體除錯的部分也很少,主要是 的書寫。功能簡介 1 開啟電源時,顯示歡迎字樣 2 計算器功能 3 日曆及時鐘功能 4 溫度實時測量 然後...
基於51微控制器的RFID智慧型門禁系統
1.概述 1 本設計採用stc89c52作為主控晶元,專用讀卡器模組用來讀射頻卡的資訊,當有卡進入到讀卡器讀卡的範圍內時就會讀取到相應的卡序列號,並根據得到的卡序列號做出相應的操作。若正確則開門,若不正確則報警並顯示錯誤資訊。2 本設計實現了自動 準確的識別卡序列號,對門禁系統起著重要的作用eepr...