网站开发的最后五个阶段,网站制作服务公司,手游推广平台有哪些,个人网站需要备案吗门锁控制电路
二、设计思路
电路设计
1.电源部分#xff1a;使用BATTERY为整个电路提供电源#xff0c;可以在电路中加入一个电 源开关#xff0c;以便控制电源的开启和关闭。
2.处理器部分#xff1a;使用AT89C51芯片作为主处理器#xff0c;通过编写程序实现门锁的 …门锁控制电路
二、设计思路
电路设计
1.电源部分使用BATTERY为整个电路提供电源可以在电路中加入一个电 源开关以便控制电源的开启和关闭。
2.处理器部分使用AT89C51芯片作为主处理器通过编写程序实现门锁的 控制。AT89C51芯片具有丰富的I/O端口可以方便地与外部器件进行通信。
3.按键输入部分使用KEYPAD-SMALL实现按键输入。设计一个简单的矩阵 键盘包括数字0-9、确认键、取消键和解锁键等。当用户按下相应的按键 时处理器将接收按键输入并执行相应的操作。
4.显示部分使用LM016L液晶显示屏显示当前门锁的状态和操作提示等信 息。处理器通过液晶驱动器与LM016L连接控制显示的内容和方式。
5.电机驱动部分使用L293D电机驱动芯片驱动MOTOR实现门锁的开关操 作。处理器通过输出口连接L293D的输入引脚控制电机的转动方向和速度。 #includereg51.htypedef unsigned char u8;
typedef unsigned int u16;sbit RS P3^0;
sbit EN P3^1;
sbit IN1 P3^2;
sbit IN2 P3^3;#define KEY P1
#define DIS P2void delay_10us(u8 ten_us)
{while(ten_us--);
}u8 get_key()
{u8 key_value 16;KEY 0xF7;if(KEY!0xF7){delay_10us(1000);switch(KEY){case 0x77: key_value ;break;case 0xB7: key_value ;break;case 0xD7: key_value 0;break;case 0xE7: key_value c;break;}}while(KEY!0xF7);KEY 0xFB;if(KEY!0xFB){delay_10us(1000);switch(KEY){case 0x7B: key_value -;break;case 0xBB: key_value 3;break;case 0xDB: key_value 2;break;case 0xEB: key_value 1;break;}}while(KEY!0xFB);KEY 0xFD;if(KEY!0xFD){delay_10us(1000);switch(KEY){case 0x7D: key_value x;break;case 0xBD: key_value 6;break;case 0xDD: key_value 5;break;case 0xED: key_value 4;break;}}while(KEY!0xFD);KEY 0xFE;if(KEY!0xFE){delay_10us(1000);switch(KEY){case 0x7E: key_value /;break;case 0xBE: key_value 9;break;case 0xDE: key_value 8;break;case 0xEE: key_value 7;break;}}while(KEY!0xFE);return key_value;
}void delay(int n)
{int i,j;for(i0;in;i)for(j0;j255;j);
}
void lcd_cmd(char a)
{DIS a;RS 0;EN 1;delay(10);EN 0;
}void lcd_data(char a)
{DIS a;RS 1;EN 1;delay(10);EN 0;
}void display(char *ptr)
{while(*ptr ! \0){lcd_data(*ptr);ptr;}
}void main()
{u8 key_value;char password[4] 7163;u8 res0;u8 i0;lcd_cmd(0x01); //clear screenlcd_cmd(0x0E); //Display On, Cursor Blinkinglcd_cmd(0x38); //2 lines and 5*7 matrixlcd_cmd(0x80); //Force Cursor to beginning of firstdisplay(PASSWORD:);lcd_cmd(0xC0);display(---- );lcd_cmd(0xC0);while(1){key_value get_key();if(key_value9key_value0){lcd_data(key_value);if(password[i]key_value)res;i;if(i4){lcd_cmd(0xC0);if(res4){display(CORRECT);IN11;IN20;}else{display(INCORRECT);}i0;res0;}}else if(key_valuec){lcd_cmd(0xC0);display(---- );lcd_cmd(0xC0);IN10;IN20;}}
}