学校实训密码锁设计(基于STC51单片机)报告

2023-11-07

选题的背景与意义

  单片微型机简称单片机,它是在一片芯片上集成了中央处理部件,存储器、定时器/计数器和各种输入输出设备等接口部件。单片机是微机发展的一个重要的分支,自问世以来,性能不断地改善和提高,加之单片机具有集成度高、功能强、速度快、体积小、功耗小、使用方便、性能可靠、价格便宜等优点,故在工业控制、数据采集和处理、通信系统、家用电器等领域的应用日益广泛。国内虽然起步较晚,但单片机的潜力越来越被人们所重视,尤其在工业控制、自动化仪器仪表、计算机系统接口、智能化外设等应用领域发展很快。它的应用对于产品升级换代、机电一体化都具有重要的意义,在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数,被用于各种不同产品的生产。在通信行业更为广泛利用,手机从只能基本通话,到现在一台手机拥有各种不同的功能,单片机得到了广泛的应用。

项目内容(51密码锁设计)

实现效果:采用矩阵键盘设计四位密码锁,密码由四个连续键值按顺序组成,a键为开始按键,按下按键点亮8个LED灯表示输入密码中,f键为确认键,当按下按键时数码管显示对应数值,密码设置为3236,当密码输入正确时蜂鸣器鸣叫500ms,当密码输入错误时蜂蜜器鸣叫三声,当错误次数达到三次以后蜂鸣器长报警锁死密码(按复位按键恢复),e键进入管理员模式可以修改密码。项目分工:程序编写:余源堃;PCB电路:代空军(组长);硬件调试:倪超;硬件构成:硬件我们采用4×4矩阵键盘利用动态扫描获取键值,数码管采用4位共阴极数码管用来显示键值,单片机采用STC89c52,蜂鸣器采用的是一个有源蜂鸣器利用一个三极管S8550和一个1k的限流电阻构成蜂鸣器电路,晶振采用的是一个11.592Mhz的无源晶振外接两个30Pf的电容用于滤波,外加一个上拉复位电路构成51单片机最小系统。

产品功能

采用矩阵键盘设计四位密码锁,密码由四个连续键值按顺序组成,a键为开始按键,按下按键点亮1个LED灯表示输入密码中,f键为确认键,当按下按键时数码管显示对应数值,密码设置为3236,当密码输入正确时蜂鸣器鸣叫500ms,当密码输入错误时蜂蜜器鸣叫三声,当错误次数达到三次以后蜂鸣器长报警锁死密码(按复位按键恢复),e键进入管理员模式可以修改密码。

方案论证

方案设计

在本电路设计中我们开始设想了两种方案;方案一:搭建一个51最小系统,然后外接4X4矩阵键盘和4位数码管;方案二:把键盘和数码管都画到PCB板上去。

方案实施

经过多次实验打板实验以及电路程序测试最终我们设计的版本最终效果是:

Gg

元件选择

三极管:三极管的工作原理

三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。分成NPN和PNP两种。我们仅以NPN三极管的共发射极放大电路为例来说明一下三极管放大电路的基本原理。为什么驱动共阳极数码管要用PNP管:共阳极数码管的单个二极管的高电端通过三极管接在驱动电平上,就是接在高电位上,所以要把电流从二极管的另一端流出,而八个二极管必须接在撒机关的集电极上才能满足放大条件,如果是npn管,就只能接在发射极上不满足需求。

一、电流放大

下面的分析仅对于NPN型硅三极管。如上图所示,我们把从基极B流至发射极E的电流叫做基极电流Ib;把从集电极C流至发射极E的电流叫做集电极电流 Ic。这两个电流的方向都是流出发射极的,所以发射极E上就用了一个箭头来表示电流的方向。三极管的放大作用就是:集电极电流受基极电流的控制(假设电源
能够提供给集电极足够大的电流的话),并且基极电流很小的变化,会引起集电极电流很大的变化,且变化满足一定的比例关系:集电极电流的变化量是基极电流变
化量的β倍,即电流变化被放大了β倍,所以我们把β叫做三极管的放大倍数(β一般远大于1,例如几十,几百)。如果我们将一个变化的小信号加到基极跟发射 极之间,这就会引起基极电流Ib的变化,Ib的变化被放大后,导致了Ic很大的变化。如果集电极电流Ic是流过一个电阻R的,那么根据电压计算公式
U=R*I 可以算得,这电阻上电压就会发生很大的变化。我们将这个电阻上的电压取出来,就得到了放大后的电压信号了。

二、偏置电路

三极管在实际的放大电路中使用时,还需要加合适的偏置电路。这有几个原因。首先是由于三极管BE结的非线性(相当于一个二极管),基极电流必须在输入电压 大到一定程度后才能产生(对于硅管,常取0.7V)。当基极与发射极之间的电压小于0.7V时,基极电流就可以认为是0。但实际中要放大的信号往往远比
0.7V要小,如果不加偏置的话,这么小的信号就不足以引起基极电流的改变(因为小于0.7V时,基极电流都是0)。如果我们事先在三极管的基极上加上一
个合适的电流(叫做偏置电流,上图中那个电阻Rb就是用来提供这个电流的,所以它被叫做基极偏置电阻),那么当一个小信号跟这个偏置电流叠加在一起时,小
信号就会导致基极电流的变化,而基极电流的变化,就会被放大并在集电极上输出。另一个原因就是输出信号范围的要求,如果没有加偏置,那么只有对那些增加的
信号放大,而对减小的信号无效(因为没有偏置时集电极电流为0,不能再减小了)。而加上偏置,事先让集电极有一定的电流,当输入的基极电流变小时,集电极
电流就可以减小;当输入的基极电流增大时,集电极电流就增大。这样减小的信号和增大的信号都可以被放大了。

三、开关作用

下面说说三极管的饱和情况。像上面那样的图,因为受到电阻 Rc的限制(Rc是固定值,那么最大电流为U/Rc,其中U为电源电压),集电极电流是不能无限增加下去的。当基极电流的增大,不能使集电极电流继续增大
时,三极管就进入了饱和状态。一般判断三极管是否饱和的准则是:Ib*β〉Ic。进入饱和状态之后,三极管的集电极跟发射极之间的电压将很小,可以理解为
一个开关闭合了。这样我们就可以拿三极管来当作开关使用:当基极电流为0时,三极管集电极电流为0(这叫做三极管截止),相当于开关断开;当基极电流很
大,以至于三极管饱和时,相当于开关闭合。如果三极管主要工作在截止和饱和状态,那么这样的三极管我们一般把它叫做开关管。

排阻:其实排阻就是由8个电阻组成的,其中一端全部接在一起,103为8个10K电阻,102为8个1K电阻,他们在电路中起到“上拉”的作用,又称上拉电阻。上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用,下拉同理.上拉是对器件注入电流,下拉是输出电流,弱强只是上拉电阻的阻值不同,没有什么严格区分,对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。上拉,就是把电位拉高,比如拉到VCC下拉,就是把电压拉低,拉到GND一般就是刚上电的时候,端口电压不稳定,为了让他稳定为高或低,就会用到上拉或下拉电阻。
有些芯片内部集成了上拉电阻(如单片机的P1、2、3口),所以外部就不用上拉电阻了。但是有一些开漏的(如单片机的P0口),外部必须加上拉电阻。

矩阵式键盘:矩阵式键盘使用于按键数量较多的场合,它由行线与列线组成,按键位于行、列的交叉点上。一个33的行列结构可以构成一个有9个按键的键盘。同理,一个44的行列可以构成一个16按键的键盘。很明显,在按键数量较多的场合,与独立式键盘相比,矩阵式键盘要节省很多I/0接口。

蜂鸣器:蜂鸣器的选择用于输入密码错误报警我们选择的是一个有源蜂鸣器,有源和无源蜂鸣器有三种不同分别是:1、外形不同,两种蜂鸣器的引脚郡朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。2、测试声音不同用黑表笔接蜂鸣器 “+”引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。3、振动频率不同用直流电压输入相应电压(可以由小调到大),频率大概2.7KHZ ,可以直接响的为有源电磁式蜂鸣器,不直接响的,需 要方波来驱动才可以响的为无源电磁式蜂鸣器。
控制中心我是采用的是由STC89C52单片机组成的51单片机最小控制系统。

STC89C51:STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统的51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

共阳极四位数码管:LED数码管由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。

设计过程

设计流程(代码)

首先我们设计出本电路主要的程序结构

其实本次设计主要是参考了我们在单片机课程中学了的密码锁知识,然后是在最后的这一段时间复习的时候想学习一下51单片机,然后觉得实训是一个很好的机会,然后这个项目也就这样出来了,下面是我们搬运的基本密码锁的部分代码:

电路仿真

然后程序搬运完成过后我在Proteus7.8中搭建测试电路

通过软件仿真过后我们完成了电路的搭建下面是用AD16进行PCB板的绘制;

PCB打板

其实一共设计了三个版本的电路板,前面两次都是失败了然后我们一共也打板了三次,在这次电路设计中真的学会了很多,虽然电路的元件参数都是参考各种开发板才做出来的,矩阵键盘的链接也是参考了STM8矩阵键盘扫描,数码管我们采用的是四位共阴极数码管,其实开始我们设计的时候就想密码锁输入密码显示四位的话,密码不是很容易被别人看到吗,其实我们就只需要一位数码管就可以了,但是我们还是设计了四位数码管,原因是设计这款板子在实训过后我们依旧还是可以用来继续学习51单片机的相关内容,所以我觉得设计这个数码管完全是由必要的,然后就是流水灯方面开始是设计了8个的,规格是按照开发板一样的规格,该有的模块我开始都涉及了,但是在第一次板子回来了过后,第二次我就相应的减少了一些不必要的模块,方便测试电路的好坏,最后我们第三版的板子也已经下单了,就等发过来等待测试,如果这次还是失败的话我们已经没有时间继续设计下一版本的电路了,我们就只能使用电路的最小系统,然后需要使用的模块来实现相应的功能。

元件购买

PCB板设计完成过后,输出BOM表单,然后在某宝购买需要的元件,在购买元件的合格流程中,其实我也学到了不少的东西,我先开始在淘宝买东西,店家给我讲诉了一些关于封装的大小以及代号,我也是第一次接触封装代码说明0603封装3528封装等等,对于这些我们就像是刚出生的婴儿一样什么都不懂也就只能被宰最后还是花费了一小部分钱,最后和与老师交流我第一块板子的设计过后,知道在淘宝买元件有买到假货的机率,老师给我推荐的是在立创商城上购买相应的元件,最后我们在立创商城上找到了相应封装的元件也挺便宜的,通过这次元件购买也对封装也有了更深的认知。

结论

通过这次实训的这个过程真的可以学到很多的东西,虽然我主要做的工作是PCB打板和电路的设计,但是在程序设计中我还是有从旁辅助,在看到自己刚刚设计出的PCB板实物到手的时候还是挺开心的,自己也是能设计出这样好看的 一块PCB板,虽然他并不是很完美但是他毕竟是我设计出来的,经过测试还是找出来一些问题最后把能修复的地方修复了,看着实训的时间还很早所以我们也就开始了后面几次的板子设计,在这次实训过程中我主要的工作是PCB电路设计,所以我学到最多的还是AD这个软件,开始真的对这个软件是没有什么兴趣的,但是在学习画PCB过后也了解了其他几款画PCB的软件,例如:Proteus(这真是我没有想到的这个软件也是挺厉害的可以仿真还可以画PCB但是用这个软件画PCB的还是很少),立创EDA这款软件是在我学习的过程中看到的一款软件, 这个软件也是挺方便的,因为他的封装元件都是可以在立创商城上一站式购买,但是回望AD这个软件一样是很强大,他的库元件在网上有很多,3D库也可以更加直观的看到电路板的实物样子,通过这次实训我学到的不止于知识,而是这些课程让我走进了应用电子这个专业,最后感谢各位指导老师对我们的栽培。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学校实训密码锁设计(基于STC51单片机)报告 的相关文章

随机推荐

  • 防火墙 IPS IDS区别

    看了好多篇关于防火墙 IPS IDS的区别 感觉都好啰嗦 决定自己写一篇
  • Matlab_用雅可比(Jacobi)迭代法解线性方程组

    1 程序代码 function x majacobi A b x0 ep N n length b if nargin lt 5 N 500 end if nargin lt 4 ep 1e 6 end if nargin lt 3 x0
  • 【Git常用命令】

    git clone url 下载一个项目和它的整个代码历史 git init 初始化仓库 默认为 master 分支 git add 提交全部文件修改到暂存区 git diff 查看当前代码 add后 会 add 哪些内容 git stat
  • 解决Qt5的QserialPort串口数据接受不完整的问题------完全有效

    解决Qt5的QserialPort串口数据接受不完整的问题 解决问题出处 https blog csdn net jason thinking article details 78455750 学习中遇到使用Qt在Windows下读取串口信
  • java BigDecimal 取平均值

    代码如下 import org apache commons collections4 CollectionUtils import java math BigDecimal import java util public class Bi
  • 企业微信开发实战(四、OA审批之企业假期管理配置、获取成员假期余额、修改成员假期余额)

    文章目录 7 获取企业假期管理配置 7 1概述 7 2代码实战 8 获取成员假期余额 8 1概述 8 2代码实战 8 3试错 9 修改成员假期余额 9 1概述 9 2代码实战 9 3试错 源码 赞赏 7 获取企业假期管理配置 7 1概述 1
  • struts2 struts.xml文件标签说明

  • [C++]构造与毁灭:深入探讨C++中四种构造函数与析构函数

    个人主页 北 海 CSDN新晋作者 欢迎 点赞 评论 收藏 收录专栏 C C 希望作者的文章能对你有所帮助 有不足的地方请在评论区留言指正 大家一起学习交流 目录 构造函数有什么作用 构造函数有什么特点 构造函数的种类 一 默认构造函数 1
  • 【华为OD机试真题】查找充电设备组合(python)100%通过率 超详细代码注释 代码优化

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 查找充电设备组合 时间限制 5s空间限制 256MB限定语言 不限 题目描述 某个充电站 可
  • 【书虫录】《一句顶一万句》

    一直以来看的书都是跟工作强相关的书籍 更是很少会看小说类书籍 但是渐渐发现 工作的专业技能需要学习成长 生活 又何尝不是呢 这本书 被称之为中国的百年孤独 一句顶一万句 也算是刘震云老师的代表作 此书也同时被翻译成了多国语言版本 并且相当流
  • 2023金九银十必看前端面试题!2w字精品!

    文章目录 导文 CSS 1 请解释CSS的盒模型是什么 并描述其组成部分 2 解释CSS中的选择器及其优先级 3 解释CSS中的浮动 float 是如何工作的 并提供一个示例 4 解释CSS中的定位 position 属性及其不同的取值 5
  • LVM新增磁盘扩容

    实验环境 Rocky 9 0 VM16 Pro 1 新增一块磁盘 接口类型 SCSI 2 通过执行 lsblk 系统并未识别新增的磁盘 遇到这样的情况 咱们可以重启系统或者通过以下方法识别到新磁盘 但在生产环境中 很多时候并不能随意关闭服务
  • 02 初识Prometheus - 利用grafana让mysql数据生成折线图,柱状图

    https cloud tencent com developer article 1582979 step1 新建一个表testgraph 用来存放查询的数据 DROP TABLE IF EXISTS testgraph CREATE T
  • vue+electron桌面

    node js安装 cnpm下载 npm install g cnpm registry https registry npmmirror com vue脚手架安装 cnpm install g vue cli 安装 electron脚手架
  • JavaSE的思维导图

    学了这么久的Java我们来做一次整体性的总结 回顾我们所学过的整个知识体系 大致内容包括 初识Java 数据类型与变量 运算符 数据类型与变量 运算符 逻辑控制 方法的使用 数组的定义与使用 类与封装 继承与多态 抽象类与接口 String
  • ChatExcel?

    大家好 我是章北海mlpy 最近在浅学LangChain 在大模型时代 感觉这玩意很有前途 LangChain是一个开源的应用开发框架 目前支持Python和TypeScript两种编程语言 它赋予LLM两大核心能力 数据感知 将语言模型与
  • 模版类运算符重载

    span style font size 18px 自定义分数模版类 运算符重载 同时支持宽字符 wchar t span span style font size 18px span span style font size 18px i
  • 链表(变形)

    单链表结点只有一个指向其后继的指针 使得单链表只能从头结点 依次顺序地向后遍历 要访问某个结点的前驱结点 delete insert 只能从头开始遍历 访问后继结点的时间复杂度为O 1 访问前驱结点的时间复杂度O n 一 双链表 双链表结点
  • oracle语句查询时间范围,oracle时间范围查询

    当时间精确到秒的指标和时间精确到日的时间进行对比是恒不等于的 但是可以判断大于或者等于的情况 举个例子 指标 时间精确到秒 select 时间精确到秒 from table where 时间精确到秒 lt to date 2013 11 2
  • 学校实训密码锁设计(基于STC51单片机)报告

    这里写目录标题 选题的背景与意义 项目内容 51密码锁设计 产品功能 方案设计 方案实施 元件选择 一 电流放大 二 偏置电路 三 开关作用 设计流程 代码 电路仿真 PCB打板 结论 选题的背景与意义 单片微型机简称单片机 它是在一片芯片