打开proteus双击单片机添加程序里的211.hex文件,OK,点击左下角的倒三角,机器启动初始化蜂鸣器会叫一下,按下指纹正确按钮,绿灯闪烁,蜂鸣器鸣叫,开锁即电机转动一下,开锁成功。按下指纹错误按钮,红灯闪烁。按下内部开锁按钮,绿灯闪烁,开锁即电机转动一下。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg52.h>
- sbit led_Red=P1^0; //红灯
- sbit led_Green=P1^1; //绿点
- sbit lock_jdq=P0^0; //开锁继电器
- sbit K1_zhiwen=P2^1; // 指纹正确
- sbit K2_zhiwen=P2^4; // 指纹错误
- sbit K3_kaisuo=P2^5; // 开锁按键
- 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();
- }
- }
复制代码
所有资料51hei提供下载:
基于单片机的智能门禁系统设计.rar
(104.21 KB, 下载次数: 247)
|