1. 程式人生 > 實用技巧 >508【畢設課設】基於微控制器門禁門鈴控制系統設計

508【畢設課設】基於微控制器門禁門鈴控制系統設計

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

在Proteus模擬環境下進行辦公室門鈴控制系統硬體設計,在本次硬體設計中,我主要才用了AT89C51作為主要控制晶片,LCD1602主要用來顯示輸入的按鍵數字,門鈴使用方的按鍵主要用來對系統輸入數字,門鈴應答方我設定了LED燈、蜂鳴器和按鍵。LED燈與蜂鳴器主要用來提示有人按下了門鈴按鍵,應答方的按鍵主要用來開門以及關閉應答方的LED燈與蜂鳴器。另外,我用了一個藍色LED燈來模擬門開啟的效果,即在模擬中,藍色LED燈亮起代表門被開啟,藍色LED燈熄滅代表門被關閉。

在我的設計中,有兩種方法可以開啟門,第一種就是通過按下鍵盤上的數字鍵,輸入門牌號,相應的門鈴就會有聲光提示,這樣,門鈴的應答方按下應答方的按鍵,就可以關閉聲光提示,並開啟房門。第二種是在系統中初設了一個公用密碼,即如果是辦公室的相關人員要進入,不需要通過呼叫他人,而是輸入公用密碼並按下確認鍵,就可以開啟房門。

sbit sound2=P1^2;
sbit key2=P1^3;
sbit sound3=P1^4;	
sbit key3=P1^5;
sbit sound4=P1^6;
sbit key4=P1^7;

sbit open=P2^7;

void key(void);
void handle(void);
bit Flag;

unsigned char password[]={7,8,9,0};//第一次上電密碼
unsigned char num,i,x,j,k,p=16;                  
unsigned char passwordtemp[16];        //最大輸入16個
unsigned char passwordlength,PLEN;     //輸入密碼長度,實際密碼長度

/*------------------------------------------------
                    主程式
------------------------------------------------*/
main()
{	 
 	 sound1=0;sound2=0;sound3=0;sound4=0;open=0;
	 PLEN=sizeof(password)/sizeof(password[0]);//用於計算出實際密碼長度
	 
	 LCD_Init();         //初始化液晶屏
	 DelayMs(5);        //延時用於穩定,可以去掉
	 LCD_Clear();        //清屏