【51单片机Keil+Proteus8.9】门锁控制电路

这篇具有很好参考价值的文章主要介绍了【51单片机Keil+Proteus8.9】门锁控制电路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

门锁控制电路

二、设计思路

电路设计

1.电源部分:使用BATTERY为整个电路提供电源,可以在电路中加入一个电 源开关,以便控制电源的开启和关闭。

2.处理器部分:使用AT89C51芯片作为主处理器,通过编写程序实现门锁的 控制。AT89C51芯片具有丰富的I/O端口,可以方便地与外部器件进行通信。

3.按键输入部分:使用KEYPAD-SMALL实现按键输入。设计一个简单的矩阵 键盘,包括数字0-9、确认键、取消键和解锁键等。当用户按下相应的按键 时,处理器将接收按键输入并执行相应的操作。

4.显示部分:使用LM016L液晶显示屏显示当前门锁的状态和操作提示等信 息。处理器通过液晶驱动器与LM016L连接,控制显示的内容和方式。

5.电机驱动部分:使用L293D电机驱动芯片驱动MOTOR,实现门锁的开关操 作。处理器通过输出口连接L293D的输入引脚,控制电机的转动方向和速度。

【51单片机Keil+Proteus8.9】门锁控制电路,51单片机,51单片机,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-809191.html

#include<reg51.h>

typedef 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 P2

void 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(i=0;i<n;i++)
	for(j=0;j<255;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 res=0;
	u8 i=0;
	lcd_cmd(0x01); //clear screen
	lcd_cmd(0x0E); //Display On, Cursor Blinking
	lcd_cmd(0x38); //2 lines and 5*7 matrix
	lcd_cmd(0x80); //Force Cursor to beginning of first
	display("PASSWORD:");
	lcd_cmd(0xC0);
	display("----     ");
	lcd_cmd(0xC0);
	while(1)
	{
		key_value = get_key();
		if(key_value<='9'&&key_value>='0')
		{
			lcd_data(key_value);
			if(password[i]==key_value)res++;
			i++;
			if(i==4){
				lcd_cmd(0xC0);
				if(res==4){
					display("CORRECT");
					IN1=1;
					IN2=0;
				}
				else{
					display("INCORRECT");
				}
				i=0;
				res=0;
			}
		}else if(key_value=='c')
		{
			lcd_cmd(0xC0);
			display("----     ");
			lcd_cmd(0xC0);
			IN1=0;
			IN2=0;
		}
	}
}

到了这里,关于【51单片机Keil+Proteus8.9】门锁控制电路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Proteus8仿真:51单片机A/D转换(ADC0808)

    元器件 名称 排阻 RESPACK-8 51单片机 AT89C51 数码管 7SEG-MPX4-CA-BLUE ADC芯片 ADC0808 滑动变阻器 POT-HG ADC0808引脚作用 项目 Value ADDA-C 选择IN通道 IN0-7 模拟量输入 VREF+ ADC参考电压 VREF- ADC参考地 CLOCK 时钟 VREF+ ADC参考电压 OUT1-8 数字信号输出 START 起始信号 OE 输出使能 EOC 结束信号 ADC080

    2024年02月11日
    浏览(38)
  • 【MCU】单片机从 keilC51 编程到 Proteus8.9 仿真再到 STC-ISP 烧录保姆级流程

    ① 安装 USB转串口驱动(CH340) ② 打开文件夹“单片机软件开发板USB转串口CH340驱动” ③ 双击安装程序“CH341SER” ④ “用户账户控制”点击“是” ⑤ 点击“安装” ⑥ 安装成功点击“确定”,然后点击“关闭” 至此,USB转串口驱动安装完毕。 ① 启动程序“Keil uVison5” ②

    2024年02月03日
    浏览(47)
  • 51单片机实现简易计算机,Keil4代码Proteus工程一步到位

    目录  前言  Proteus硬件部分 键盘 程序部分 运算代码逻辑(代码解释) LCD屏幕显示运算结果 输入部分 键值判断部分 删除按键的实现 程序执行运算 Hello,大家好。想做关于嵌入式的一些小项目已经很久了,今天借着我们课设的机会,给大家展示我自己对代码逻辑的理解,为了方

    2024年02月08日
    浏览(45)
  • 【Proteus仿真】【51单片机】温度报警控制系统设计

    本项目使用Proteus8仿真51单片机控制器,使用继电器模块、DS18B20温度传感器模块、LCD1602模块、蜂鸣器、按键模块等。 主要功能: 系统运行后,LCD1602显示DS18B20采集温度值、温度上下限阈值。可通过K1、K2键对温度上限设置,可通过K3、K4键对温度下限设置,若检测温度大于或小

    2024年02月09日
    浏览(47)
  • 【Proteus仿真】【51单片机】步进电机控制系统设计

    本项目使用Proteus8仿真51单片机控制器,使用ULN2003电机模块、LCD1602模块、按键模块等。 主要功能: 系统运行后,LCD1602显示电机当前运行档位、方向、状态。 可通过按键K4启动与停止,按键K1加速、按键K2减速,按键K3换向;档位可在1-5挡。 最终可实现: 按键功能:具有加速

    2024年02月12日
    浏览(49)
  • 基于51单片机控制的BUCK开关电源Proteus仿真

    这里是给出的参考电路(如下图)使用了两路L293D的输出OUT1和OUT2,那么就会很疑惑。。。。 关于两路L293D的输出呢? 因为程序控制的时候,IN2始终由单片机输出0,所以底下这样也不像是差分,很难理解是为什么。 理想的状态:当out1 =1,二极管不导通,上方电感充电,经过

    2024年02月06日
    浏览(73)
  • 单片机仿真软件Proteus8.0的安装及使用

    介绍: Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、

    2023年04月09日
    浏览(46)
  • 51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】

    该系统由AT89C51单片机+LCD1602+DS18B20温度传感器+DS1302时间模块+ADC0832采集模拟水位、浑浊度信息+继电器控制电机和加热器模块+蜂鸣器模块构成。 可实现功能: 1、LCD1602显示各种信息 2、DS1302获取北京时间,用户通过按键设定1个喂食时间,默认时间12:30:00。到时间后自动喂食,

    2024年02月07日
    浏览(49)
  • 51单片机的智能温室大棚控制系统【proteus仿真+程序+报告+原理图】

    该系统由AT89C51单片机+LCD1602模块+DS18B20温度传感器模块+DS1302时间模块+继电器驱动模块+电位器模块构成。本方案适用于智能温室大棚、蔬菜大棚等各类设计中。 版本一: 1、 DS18B20 温度传感器检测大棚温度 2、光照/湿度电位器模拟,ADC0832进行转换 3、水泵/风扇/加热丝/补光灯

    2023年04月20日
    浏览(54)
  • 基于51单片机的PWM控制直流电机设计( proteus仿真+程序+报告+讲解视频)

    仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0031 基于51单片机的PWM控制直流电机设计 1.设计要求 采用51单片机作为核心控制器,控制直流电机的正转,反转,制动,停止。 2.功能要求 1)数码管显示当前转动方向和当前的PWM占空比0~100%。 2)电机

    2023年04月25日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包