|
打開(kāi)proteus雙擊單片機(jī)添加程序里的211.hex文件,OK,點(diǎn)擊左下角的倒三角,機(jī)器啟動(dòng)初始化蜂鳴器會(huì)叫一下,按下指紋正確按鈕,綠燈閃爍,蜂鳴器鳴叫,開(kāi)鎖即電機(jī)轉(zhuǎn)動(dòng)一下,開(kāi)鎖成功。按下指紋錯(cuò)誤按鈕,紅燈閃爍。按下內(nèi)部開(kāi)鎖按鈕,綠燈閃爍,開(kāi)鎖即電機(jī)轉(zhuǎn)動(dòng)一下。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
硬件電路圖
包含內(nèi)容
單片機(jī)源程序如下:
- #include<reg52.h>
- sbit led_Red=P1^0; //紅燈
- sbit led_Green=P1^1; //綠點(diǎn)
- sbit lock_jdq=P0^0; //開(kāi)鎖繼電器
- sbit K1_zhiwen=P2^1; // 指紋正確
- sbit K2_zhiwen=P2^4; // 指紋錯(cuò)誤
- sbit K3_kaisuo=P2^5; // 開(kāi)鎖按鍵
- sbit bell=P2^6; // 蜂鳴器
- void Delay1ms(unsigned int count)
- {
- unsigned int i,j;
- for(i=0;i<count;i++)
- for(j=0;j<120;j++);
- }
- void init()
- {
- P1 = 0xFF;
- P0 = 0xFF;
- P2 = 0xFF;
- P3 = 0xFF;
- bell=0;
- }
- void keyscan()
- {
- if(K1_zhiwen==0)
- {
- Delay1ms(10);
- if(K1_zhiwen==0)
- {
- led_Green=0;
- lock_jdq=0;
- bell=0;
- Delay1ms(500);
- led_Green=1;
- bell=1;
- Delay1ms(500);
- led_Green=0;
- bell=0;
- Delay1ms(500);
- led_Green=1;
- bell=1;
- Delay1ms(500);
- lock_jdq=1;
- while(!K1_zhiwen);
- }
- }
- if(K2_zhiwen==0)
- {
- Delay1ms(10);
- if(K2_zhiwen==0)
- {
- led_Red=0;
- Delay1ms(500);
- led_Red=1;
- Delay1ms(500);
- led_Red=0;
- Delay1ms(500);
- led_Red=1;
- Delay1ms(500);
- while(!K2_zhiwen);
- }
- }
- if(K3_kaisuo==0)
- {
- Delay1ms(10);
- if(K3_kaisuo==0)
- {
- led_Green=0;
- lock_jdq=0;
- Delay1ms(500);
- led_Green=1;
- Delay1ms(500);
- led_Green=0;
- Delay1ms(500);
- led_Green=1;
- Delay1ms(500);
- lock_jdq=1;
- while(!K3_kaisuo);
- }
- }
- }
- void main()
- {
- init();
- while(1)
- {
- keyscan();
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
基于單片機(jī)的智能門(mén)禁系統(tǒng)設(shè)計(jì).rar
(104.21 KB, 下載次數(shù): 257)
2019-3-27 16:17 上傳
點(diǎn)擊文件名下載附件
壓縮包
|
評(píng)分
-
查看全部評(píng)分
|