课程设计(论文)-基于单片机的电子密码锁设计内容摘要:
8位地址。 P3 口 可用做通用 I/O 口,可驱动 4个 TTL 负载。 当用做输入熟,要先将 P3 口各位置如外部负载将 P3 口拉低,则经过上拉电阻向外输出电流。 在编程和校验时, P3 口接收某些控制信号。 另外, XTAL1 和 XTAL2—— XTAL1 是片内振荡器反相放大器和时钟发生器的输入端,XTAL2 是片内振荡器反相放大器的输出端。 其他引脚还有 RST、 ALE/PROG、 PSEN、 EA/VPP。 按键电路设计 由于设计要求使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的 I/O 线的数目,在按键比较多的时候,通常采用这样方法。 其原理如图 32 所示。 图 32 4 4 行列式键盘原理图 每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要 N 条行线和 M条列线,即可组成具有 NM 个按键的键盘。 在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按桂林电子科技大学课程设计(论文)报告用纸 第 6 页 共 21 页 键并确认有无按键按下的程序段。 当确认有按键按下后,下一步就要识别哪一个按键按下。 对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。 对照图 32 所示的 4 4键盘,说明线反转个工作原理。 首先辨别键盘中有无键按下,有单片机 I/O 口向键盘送全扫描字,然后读入行线状态来判断。 方法是:向行线输出全扫描字 00H,把全部列线置为低电平,然后将列线的电平状态读入累加器 A中。 如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为 1。 判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查 行输入状态来实现的。 方法是:依次给列线送低电平,然后查所有行线状态,如果全为 1,则所按下的键不在此列;如果不全为 1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。 LED 显示电路 数码管按段数分为七段数码管和八段数码管, 八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“ 8”可分为 1 位、 2位、 4 位等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极 ( COM)的数码管;共阳极数码管在应用时将公共极 COM 接到 +5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。 反之,则不亮。 共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极,应用时将这一极接到地线上,当某一字段发光二极管的阴极为高电平时,相应字段就点亮。 反之,则不亮。 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式不同,可以分为静态式和动态式两类。 (1) 静态显示驱动:每个数码管的每一个段码都由一个单片机的 I/O端口进行驱动,或者使用 如 BCD 码二 十进制译码器译码进行驱动。 静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O 端口多,如驱动 5个数码管静态显示则需要 5 8=40 根 I/O 端口来驱动,实际应用时必须增加译码驱动器 进行驱动,增加了硬件电路复杂性。 (2) 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8个显示笔划的同名端“ a,b,c,d,e,f,g,dp”连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收 到相同的字形码,但究竟是哪个数码管会显示出字形取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示字形,没有选通的不会亮。 通过分时轮流控制各个数码管的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。 本系统设计的显示电路是为了给使用者以提示而设置的。 考虑到节约成本,使用最少的电子元器件, 这次显示采用并行显示的方式,即使用单片机的 P00P07 作为段选码桂林电子科技大学课程设计(论文)报告用纸 第 7 页 共 21 页 口, P22P27 为位选码口,由于银行账户密码均为六位,因此本次设计也采用六位密码,将前末位数码空置。 电路原 理图如图 33 所示。 图 33 四位七段数码管显示电路的电路原理图 从单片机 P00P07 输出的信号 是六位七段数码管的段选信号,直接送到七段数码管的段选地址中,控制七段数码管显示的码型:从单片机 P22P27 输出的信号是六位七段数码管的位选信号,送到六位七段数码管的片选地址中,控制六位七段数码管的显示个数和哪一个管子显示。 开锁电路 本设计中,基于节省材料的原则,用发光二极管代替电磁锁 , 红色管亮,表示密码错误,绿色管亮,表示密码正确。 再配有限流电阻。 具体电路图如下图 34所示。 图 34 发光二极管(开锁)电路原理图 复位电路 单片机的第 9 脚 RST 为硬件电路复位端,当振荡器工作时,只要将该端持续 4 个机器周期的高电平即可实现复位,复位后单片机各状态都恢复到初始状态,此时六位数码桂林电子科技大学课程设计(论文)报告用纸 第 8 页 共 21 页 管显示 000000。 复位电路如下图 35 所示。 图 35 复位电路原理图 图中以电解电容,电阻及按键构成上电复位电路,由于单片机是高电平复位,所以当按键按下的时候,单片机的 9脚 RESET 管脚处于高电平,此时单片机在复位状态。 当上电后,由于电容的缓慢充电,单片机的 9 脚电压逐步由高向 低转化,经过一段时间后,9脚处于稳定的低电平状态,此时单片机上电复位结束,系统程序从 0000H 开始执行。 4. 软件设计 软件设计思路 对于电子密码锁的设计,需要解决 3 个问题:键盘输入、数码管显示、单片机电路以及密码比较与处理的有关程序设计。 通过行列键盘扫描程序获取所按键的行、列号,得到键值。 键值编码规则如下:将字节的高四位( D D D D4)表示列号( 1),低四位( D D D D0)表示行号( 1),比如 11H(00010001)表示第 1 行第 1 列, 21H(00100001)表示第 1行第 2列,以此类推,可得其他键值的编码。 根据获取的键值编码,选择相应的功能,驱动数码管的指示灯显示。 主程序流程图中,计数器 0、 1初始化后,六位数码管显示 888888,然后通过扫描键盘,判断是否有键按下。 这个时候若没有键按下,则要继续扫描,不断重复循环过程,知道发现有键按下,程序才能根据按键的功能进行相应的处理,当 6位密码输入完毕,按下“确认键”,则数码管关闭显示,进入密码比较环节,根据比较的结果,指示灯输出不同的状态,指示灯点亮的时间由定时器 1控制。 数码管的动态扫描显示由定时器 0控制。 当程序中断时,程序保存现场,并重装 TH0、 TL0 的初值,然后判断 showflag 是否为 1,如是则调用数码管显示函数,最后中断返回。 定时器 1 用于指示 灯点亮时间的控制。 当程序中断时,程序保存现场,并重装 TH TL1 的初值,然后判断 t1count 是桂林电子科技大学课程设计(论文)报告用纸 第 9 页 共 21 页 否大于 20,即有没有到 1s,若到 1s,则关闭指示灯, 6 位数码管显示为“ 888888”,同时关闭定时器 1;若没到 1s,则 t1count 继续累加,最后中断返回 软件主程序流程图 No Yes 开始 初始化 打开 2ms 计数器 0 关闭 50ms 计数器 1 显示 888888 While(1) 动态键盘扫描 根据不同按键进行相应处理 是“确认”键 关闭数码显示,控制指示灯显示,打开 50ms 计数器 图 41 软件主程序流程图 桂林电子科技大学课程设计(论文)报告用纸 第 10 页 共 21 页 中断服务子程序流程图 5. 系统调试 软件编译好后下载到芯片, 进行系统调试。 这次系统调试经过许多问题,下面对于这些问题逐一进行总结。 首先是 PCB 的问题。 因为这次实验板比较小,所以在 PCB 原理图上进行了繁琐的压缩,布线,一些连接线布置的非常细,最后腐蚀又出现失误,导致几根线出现断裂,而且这些线非常细不好弥补。 解决方法:用焊锡仔细弥补。 其次是程序设计问题。 本次程序设计参考了许多实验流程图和代码, 对于 一些函数 的 程序设计不是完全了解 ,导致调试时数码管显示不理想,经过同学的指导,我了解到主要的障碍是对 S52 单片机引脚分配理解不透彻,为此我又 重温一遍单片机技术,最后显示问题得以解决。 No 2ms 定时器 0中断服务子程序 重置定时器初值 Showflag 为 1。 结束 Yes 调用 display() 图 42 中断服务子程序 1 Yes 50ms 定时器 1中断服务子程序 重置定时器初值 到 1 秒。 结束 No t1count++ 关闭指示灯;数码管显示 888888;关闭50ms 计数器 图 43 中断服务子程序 1 桂林电子科技大学课程设计(论文)报告用纸 第 11 页 共 21 页 6. 总结 耗时近一个 多 月的课程设计已经结束了,在这紧张而又充实的的 时间里 ,通过对 电子密码锁 的制作,清楚地看到了自己在 单片机 方面知 识的薄弱,各个知识点没有 融汇 贯穿, 程序设计也显得粗糙 , 因此要在仅剩的一个学期中,继续努力学习软硬件知识。 在做此课题的过程中,充分体会到了实际操作的重要性。 如果没有老师、同学的指点,可能自己会在一些地方停滞不前,因此浪费掉很多时间。 通过这次课程设计,可以很好的把理论知识与实际情况有机的联系在一起,对以后的学习、工作很有帮助。 经过这次的课程设计,让我感觉自己在动手操作方面比以前有很大提高。 再加上前几次实践所积淀下来的经验,以及老师悉心的指导,让这次课程设计的进行较为顺利,提高了这次课程设计任务的质量和速度。课程设计(论文)-基于单片机的电子密码锁设计
相关推荐
角色扮演法既是要求被试者扮演一个特定的管理角色来观察被试者扮演一个特定的管 理角色来观察被试者的多种表现,了解其心理素质和潜在能力的一种测评方法,又是通过情景模拟,要求其扮演指定行为角色,并对行为表现进行评定和反馈,以此来帮助其发展和提高行为技能最有效的一种培训方法。 它是一项参与性的活动,具有较高的灵活性。 角色扮演过程中,需要角色之间的配合、交流与沟通,因此可以增加角色之间的感情交流
台阶高度内应分层浇捣,每浇注完一台阶应稍停 小时,待其初步获得陈实后,在浇注上层,以下台阶砼溢出,台阶表面应基本抹平。 基础上有插筋时,要加以加固,保证插筋位置正确,防止浇注砼发生位移,砼浇注完毕,外露表面应覆盖浇水养护。 四、质量控制和检验方法: 模版: 模版应有足够的强度和稳定性; 模版板缝应符合规定; 模版与砼接触面应清理干净并涂刷隔离剂; 钢筋 钢筋的品种质量、焊条的牌号应符合设计要求;
661 65235 2 RE 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 65283 有了这张表,我们就可以顺利地完成发声程序的编写了。 根据以上的思路以及频率表可以写出发声程序如下: code unsigned char FH[]={ 0xFC,0xFC,0xFD
象;完善癿会员管理体系,轻松入会,好礼丌断 ,提高会员对欧兮萱品牌癿忠诚度;丰富多彩癿促销活劢,丌断提升店铺人气和店铺销售业绩。 ( 2)营销活劢 2020 年,通过大量癿广告投,在运做周期短短半年多癿时间里,珀莱雅公叵工在全国 28 个省市自治匙建立起 5000 多家零售终端,旗下 “ 珀莱 ” 、 “ 珀莱雅 ” 逐渐成为国内化妆品知名品牌。 2020 年 1 月,荣获中国化妆品十大畅销品牌
验收之日起计。 保修期内如设备、系统、工程发生故障,乙方必须在接到通知后的 个小时内派员维修,因质量问题引起的 损坏,乙方免收一切费用;否则,乙方可适当向甲方收取更换的材料、部件的成本费。 若乙方在收到通知后不及时派员维修,甲方、物业管理公司可另请人员修理,费用在保修金中扣除,如保修金不足以支付的,甲方有权向乙方追偿。 保修期内乙方应派专人负责管理,安排售后服务员 12 名至少 次