【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)

这篇具有很好参考价值的文章主要介绍了【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


typora-root-url: ./

【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)

任务书

主要研究内容:

掌握电子密码锁的原理、构造、以及运用51单片机设计出一款简易密码锁,实现相应的一些要求;掌握并且实际运用所学知识,将书中知识转化为实际能力;对密码锁的应用和未来的发展进行分析。

研究方法:

通过相关的书籍和网上资料,查阅相关资料,收集有用的信息。研究已有的设计,逐步完善自己的设计,同时咨询指导老师,以达到专业标准,顺利完成合格的设计。

要求:

设计一个具有设置数字密码任设、存储、画面显示、语言播报以及具有报警功能的密码锁。密码锁具有语言播报和状态显示功能。一次性只允许三次密码输入操作,支持密码修改。具有报警功能。

原理图工程文件
原理图截图
PCB工程文件
仿真模型工程文件
源代码工程
仿真截图
实物图片
答辩论文低重复率文档,26009字
英文文献及翻译
任务书

设计说明书

摘要

本次设计基于51单片机的智能语音密码锁设计,电子密码锁需要实现密码锁的开锁、解锁、以及更改密码等功能,再通过LED灯和蜂鸣器辅助表示其状态等功能。需要使用51单片机及其外围电路组成控制系统。单片机最小系统、LCD1602显示器、键盘、AT2402储存器、蜂鸣器、LED、语音模块、喇叭组合而成。

通过对当前关于锁的发展背景分析,确定系统功能实现。然后对系统的硬件与软件进行设计。整个系统是以模块化的形式设计电路的各个子电路为一个功能模块,最后汇总到一起组成的控制系统应用电路。软件设计同样是以模块化的形式编写程序,按照功能对软件驱动划分最后调用到主函数中。最后制作实物,通过对系统电路连接,并将程序导入到单片中,运行调试。

最后测试系统功能与系统稳定性,总结完成设计的相应功能,完成了本次的设计。

设计框架架构

前 言… 1

第一章 绪论… 2

第一节 电子密码锁的研究背景… 2

第二节 电子密码锁的研究现状及趋势… 3

一、研究现状… 3

二、研究趋势… 3

第三节 电子密码锁的研究意义… 4

第四节 论文主要研究内容… 5

第五节 本章小节… 6

第二章 电子密码锁的设计方案… 7

第一节 系统的设计功能分析… 7

第二节 元器件使用方案选择… 7

一、主控制器选择… 7

二、显示器件的选择… 8

第二节 电子密码锁的系统结构… 9

第三节 本章小结… 9

第三章 电子密码锁的硬件设计… 11

第一节 单片机最小系统… 11

第二节 矩阵按键电路… 12

第三节 AT24C02电路… 13

第四节 LCD1602显示器电路… 14

第五节 蜂鸣器及LED电路… 14

第六节 语音播报电路… 15

第六节 电源电路… 16

第七节 系统的总电路… 17

第八节 本章小结… 18

第四章 系统的软件设计… 19

第一节 编程软件的介绍… 19

第二节 主程序设计… 20

第三节 AT24C02程序设计… 21

第四节 矩阵键盘程序设计… 21

第五节 蜂鸣器报警及LED程序设计… 22

第六节 LCD1602显示程序设计… 23

第七节 语音播报程序设计… 24

第八节 本章小结… 25

第五章 实物制作与调试… 26

第一节 实物制作与调试… 26

第三节 功能测试… 28

第四节 本章小节… 34

结 论… 35

致 谢… 37

参考文献… 38

附 录… 40

一、英文原文… 40

二、英文翻译… 43

三、源代码… 46

设计说明书及设计文件

【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)
【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)
【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)
【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)
【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)
开发项目需要使用的软件,百度云共享
AD16
链接:https://pan.baidu.com/s/1FIhJkE0Pv2mRxJIooRzKNA
提取码:uqvd
Keil4
链接:https://pan.baidu.com/s/1_0qtwROJ6hDeioyG0XL-xg
提取码:t82c
Visio
链接:https://pan.baidu.com/s/1aS8FCZat7lAdHjclNa8owA
提取码:l9o1
Proteus
链接:https://pan.baidu.com/s/1GinRzP3QHtfVOIBxJ5yD3w
提取码:u0vb

其他资料

matlab2018b
链接:https://pan.baidu.com/s/1xVTUiPleysWvhy-Xl_JqNg
提取码:4tpn

NI Multisim 14.0
链接:https://pan.baidu.com/s/15K4Lms3Jx0ba3DPXTxVCeQ
提取码:vwpy

本文资料提取:资料文章来源地址https://www.toymoban.com/news/detail-445626.html

源码展示

#include <reg52.h>	         //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义	变量范围0~255
#define uint  unsigned int	 //无符号整型 宏定义	变量范围0~65535

uchar  i;		//变量
 
sbit relay = P2^2;  //继电器定义
sbit beep  = P3^3;  //蜂鸣器定义

sbit beiguan = P2^3;  //背光

uint flag_time;

uint flag_guan;

uchar dis_smg[7]={0};

uchar password[7]={0};	    //密码保存
uchar password_bj[7]={0};	//密码比较
uchar code password_r[6]  = {1,2,3,1,2,3} ;
uchar code password_gl[6] = {5,2,0,0,2,5} ;
uchar password_xg[6];	//密码修改
uchar flag_password;      //密码正确否
uchar flag_password_cichu1;//密码错误次数

uchar flag_200ms=1;     //200毫秒的变量
  
uchar menu_1,menu_i;

/***********************语音模块控制IO口的定义************************/
sbit  VBUSY = P3^4;	    //忙脚
sbit  VDATA = P3^5; 	//数据输入脚
sbit  VCS   = P3^6;     //片选脚
sbit  VCLK  = P3^7;	    //时钟脚  

sbit scl = P2^1;	//24c02信号引脚 
sbit sda = P2^0;    //24c02数据引脚 
 
/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{
	uint i,j;
	for(i=0;i<q;i++)
		for(j=0;j<120;j++);
}

/***********************语音模块子程序************************/
void Send_threelines(unsigned char addr) 
{
   unsigned char i;
 	VCS=0;		  //片选脚 低电平
     for(i=0;i<8;i++)   //8位的数据 要循环8次1位1位的写入
	{
		VCLK=0;		 //时钟脚 低电平
		if(addr&0x01 == 0x01)
		{
			VDATA=1;		 //数据输入脚 写数据1
		}
		else 
			VDATA=0;		 //数据输入脚 写数据0
		addr<<=1;	  //数据左移一位
		VCLK=1;		   //时钟脚   高电平
	}
	VCS=1;	    //片选脚 高电平
	while(VBUSY == 0);	  //忙等待
}
 
sbit rs=P2^5;	 //寄存器选择信号 H:数据寄存器  	L:指令寄存器
sbit rw=P2^6;	 //寄存器选择信号 H:数据寄存器  	L:指令寄存器
sbit e =P2^7;	 //片选信号   下降沿触发

/********************************************************************
* 名称 : delay_uint()
* 功能 : 小延时。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void delay_uint(uint q)
{
	while(q--);
}

/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602指令函数
* 输入 : 输入的指令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{
 	rs=0;	     //写指令
	rw=0;	     //对1602写操作
	P0=com;	     //P0口对1602写指令数据 
	delay_uint(25);
	e=1;		 //e=1使能信号 
	delay_uint(100);   //延时一下等1602完成操作
	e=0;
}

/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{
 	rs=1;	     //写数据
	rw=0;	     //对1602写操作
	P0=dat;	 	 //P0口对1602写数据 
	delay_uint(25);
	e=1;		 //e=1使能信号 
	delay_uint(100);   //延时一下等1602完成操作
	e=0;	
}
 
/*********************光标控制***********************/
void lcd1602_guanbiao(uchar open_off,uchar add)
{
	if(open_off == 1)   //开光标
	{
		write_com(0x80+add);              //将光标移动到秒个位
		write_com(0x0f);                //显示光标并且闪烁
	}
	else 
	{
		write_com(0x0c);   //关光标
	}		
}

/***********************lcd1602上显示两位十进制数************************/
void write_lcd2(uchar hang,uchar add,uchar date)
{
 	if(hang==1)   
		write_com(0x80+add);		//1602写第一行的地址 
	else
		write_com(0x80+0x40+add);	//1602写第二行的地址 
 	write_data(0x30+date/10%10);	//显示十位数
	write_data(0x30+date%10);	    //显示个位数
}

/***********************lcd1602上显示这字符函数************************/
void write_string(uchar hang,uchar add,uchar *p)
{
	if(hang==1)   
		write_com(0x80+add);	   //1602写第一行的地址 
	else
		write_com(0x80+0x40+add);   //1602写第二行的地址 
	while(1)														 
	{
		if(*p == '\0')  break;	//\0字符串的结尾标志  break结束while循环 结束写字符
		write_data(*p);	    //写数据 
		p++;	            //指针地址加1  
	}	
}

/***********************lcd1602初始化设置************************/
void init_1602()
{
	write_com(0x38);  //显示模式设置:16×2显示,5×7点阵,8位数据接口 不检测忙信号
	write_com(0x0c);  //开显示 不显示光标
	write_com(0x06);  //当写一个字符是,地址指针加 1
	write_string(1,0," Password Lock  ");	
	write_string(2,0," Input:         ");
	lcd1602_guanbiao(1,7+0x40);  //开光标 第2行第7位显示光标
}


/***************启始信号 ***************************/
void start()
{
	sda = 1;
	scl = 1;
	sda = 0;
	scl = 0;
}

/****************结束信号 **************************/
void stop()
{
	sda = 0;
	scl = 1;
	sda = 1;
	scl = 0; 
}

/*****************检测应答*************************/
void ack()
{
	uchar i;
	sda = 1;   
	scl = 1;	
	while((i < 100) & (sda == 1))	i++;
	scl =0;
}

/*****************非应答*************************/
void no_ack()
{
	sda = 1;
	scl = 1;
	scl = 0;
}

/*****************写一个字节*************************/
void write_iic(uchar dat)
{
	uchar i;
	for(i=0;i<8;i++)
	{
		scl = 0;
		dat <<= 1 ;
		sda = CY;
		scl = 1;
	}
	scl = 0;
}



到了这里,关于【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【毕业设计】基于单片机的智能鱼缸系统设计与实现 - 嵌入式 物联网 stm32 51单片机 智能鱼缸

    Hi,大家好,今天向大家介绍一个 单片机项目, 大家可用于 课程设计 或 毕业设计 基于单片机的智能鱼缸系统设计与实现 🔥 项目分享与指导: https://gitee.com/sinonfin/sharing 近年以来,随着我国综合实力飞速飙升,人们对物质和精神生活质量的要求也不断提升,各式各样的智能

    2024年02月04日
    浏览(90)
  • 毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计

    选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的! 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业

    2024年02月07日
    浏览(69)
  • 毕业设计 基于51单片机的汽车倒车防撞报警系统 (源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月09日
    浏览(74)
  • 【51毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机

    功能介绍: 1.输出 正弦波、矩形波、三角波、锯齿波 波形 2.设定波形输出频率 3.设定修改频率的步进值 整体功能简述: 通过按键可以修改输出的波形,一共可以输出四种波形,分别是:正弦波、矩形波、三角波、锯齿波 ;波形也可以修改频率,频率范围为50Hz~0.1Hz。并且可

    2024年02月09日
    浏览(67)
  • 【毕业设计】基于超声波智能跟随小车 - 单片机 物联网 stm32 c51

    自动跟随小车系统由两部分组成:跟随小车和移动目标携带装置。 工作原理:跟随小车系统通过无线通信模块发送寻找信号,同时超声波接收器开始计时,如果移动目标接收到无线寻找信号,则立即发送超声波信号。这样小车的三角超声波接收器陆续收到超声波信号,CPU通过

    2023年04月08日
    浏览(69)
  • 【毕业设计】6-基于51单片机的电子称重装置/电子测温/压力测试控制系统设计(原理图+源码+仿真工程+论文+PPT)

    包含此题目毕业设计全套资料: 原理图工程文件 工程源代码工程文件 仿真工程文件 论文(低重复率), 21533字 原理图截图 仿真截图 主要研究内容: 设计一个基于51单片机的电子称重装置,该装置主要由51单片机、传感器、A/D转换器、电源、键盘、LCD、LED显示器等实验器材

    2024年02月03日
    浏览(73)
  • 毕业设计 基于51单片机环境监测设计 光照 PM2.5粉尘 温湿度 2.4G无线通信

    选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的! 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业

    2023年04月08日
    浏览(179)
  • 毕业设计 单片机推箱子游戏(AT89C51)

    一、电路设计 此电路由AT89C51最小系统、LCD12864显示模块、74LS08芯片和四个独立按键组成。 LCD12864显示模块 带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置

    2024年02月21日
    浏览(72)
  • 基于单片机的毕业设计推荐

    ** ** 1、基于51单片机的多功能门禁系统(低端、功能限制较大)。 2、基于单片机的多功能实时时钟。 3、基于单片机的音乐播放器。 4、基于STM32单片机的多功能门禁系统(高端、没有限制)。 5、基于单片机的智能窗帘系统。 6、基于单片机的智能灯光系统。 7、基于单片机

    2024年02月06日
    浏览(84)
  • 【单片机毕业设计】【mcuclub-jj-011】基于单片机的加湿器的设计

    项目名:加湿器 项目编号:mcuclub-jj-011 单片机类型:STC89C52 具体功能: 1、通过DHT11获取湿度值,当湿度值低于设置最小值,则启动加湿器加湿,大于设置最大值,则停止加湿 2、通过液位检测模块检测加湿器中是否还有水,如果没有,则自动停止加湿、声光提醒 3、通过按键

    2023年04月17日
    浏览(106)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包