改装密码锁实验报告
北邮小学期简易密码锁实验报告

简易智能密码锁实验报告一、实验要求:设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。
基本要求:1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。
通过密码设置确定键(BTN 键)进行锁定。
2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。
输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。
3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。
闭锁状态下不能清除密码。
4、用点阵显示开锁和闭锁状态。
提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。
2、密码锁的密码位数(4~6 位)可调。
二、系统设计:1、设计思路:在数字电路设计中,自顶向下设计方法的主要思想是对数字系统进行划分,将复杂的设计原理简化为相对简单的模块设计,不同的模块用来完成数字系统中某一部分的具体功能。
总体思路:2、总体框图:三、仿真波形及波形分析1、键盘输入模块图3-1 键盘输入仿真在上图中,clkjp时钟控制jpcat,jpcat控制kbout从0111到1110变换,然后手动控制kbin来模拟键盘的案件,从jpout就能看到的键入的数字。
2、防抖图3-2 防抖仿真上图中可以看见,btn1只在上升沿才有用,而clear会持续到一个周期的最后才会完毕。
3、状态转移图3-3 状态转移模块仿真如上图所示,开始,按下set=1,set1=1,setmode=1,进入设置密码状态。
然后,jpout连续输入2和6,改了密码,然后btn2=1代表按下了确定键,lockmode变成1,setmode变成0,状态从设定状态变成锁定状态。
再之后,ipout输入2和6,再次btn2=1(按下确定键),lockmode 变成0,状态从锁定状态变成开锁状态。
实习报告电子密码锁设计

实习报告:电子密码锁设计一、实习背景及目的随着科技的不断发展,电子产品在日常生活中扮演着越来越重要的角色。
电子密码锁作为一种安全技术防范产品,具有安全性高、成本低、功耗低、易操作等优点,已广泛应用于家庭、办公室、银行等领域。
本次实习旨在了解并掌握电子密码锁的设计原理,提高自己在电子技术方面的实际操作能力。
二、实习内容与过程1. 了解电子密码锁的原理电子密码锁的核心部分是密码控制器,它通过接收键盘输入的密码,与设定的密码进行比较,根据比较结果控制电路或芯片的工作。
在本实习中,我们采用51单片机作为密码控制器,通过矩阵键盘输入密码,利用数码管显示密码输入情况。
2. 设计电路图根据实习要求,设计电子密码锁的电路图。
电路主要包括51单片机、矩阵键盘、数码管、报警电路、电源等部分。
矩阵键盘用于输入密码,数码管用于显示密码输入情况,报警电路用于提示密码错误,电源为整个电路提供稳定的电压。
3. 编写程序使用C语言编写程序,实现电子密码锁的功能。
程序主要包括主函数、键盘扫描函数、数码管显示函数、报警函数等。
主函数负责初始化硬件设备,循环调用键盘扫描函数,接收并显示密码输入情况。
键盘扫描函数用于检测矩阵键盘按键状态,数码管显示函数负责在数码管上显示输入的密码,报警函数则在密码错误时发出报警。
4. 调试与优化在Proteus仿真软件中进行电路仿真,调试程序。
在仿真过程中,发现键盘输入与数码管显示部分存在问题,通过修改程序代码,解决了这些问题。
同时,对程序进行优化,提高了运行效率。
5. 实物焊接与测试根据电路图,购买元器件,进行实物焊接。
焊接完成后,对电子密码锁进行测试,验证其功能是否符合预期。
在测试过程中,发现报警功能存在问题,经过排查,发现是报警电路部分出现问题,重新焊接后,问题得到解决。
三、实习收获与体会通过本次实习,我对电子密码锁的设计原理和实际操作有了更深入的了解。
在设计过程中,我学会了如何根据实际需求,运用所学知识,设计出符合要求的电路图和程序。
密码锁的实验报告

6.2ns
Байду номын сангаас
90mW
3ns
3ns
75mW
54LS00/74LS00 9ns
10ns
9mW
四2输入与非门除了74LS00外还有 COMS 系列 CD4011
74ls04
04 为六组反相器,共有 54/7404、54/74H04、54/74S04、54/74LS04四种线路结 构形 式,其主要电特性的典型值如下:
(3)仿真图:
(4)硬件实物照片(没有实物的可以省去)
(5)元件清单
型号 74ls85 74ls00 74ls04 发光二极管 六脚开光 四脚开关 1k 电阻 电路板
数量 2 1 1 2 8 8 16 1
3、设计的心得和不足:
通过对74ls00、74ls04、74ls85的引脚功能、真值表的分析、并设计其原理图,且利用电子电 路计算机进行仿真使得学习研究电子技术变得更加简单、直观,学习效果进一步提高,带动了学习 的积极性。
1246534212
课程小组成员: 许俊伟
姜鑫磊
2014 年 4 月 计算机与信息工程学院
班级 : 物联网 122
数字密码锁
设计报告
小组成员学号 : 124634238 124634212
指导教师: 张婧婧
小组成员姓名 : 许俊伟 姜鑫磊
1、设计电路的工作原理及功能描述: (1)系统能够完成输入2位的密码并实现密码的存储功能。 (2)系统可以设置修改密码功能。 (3)密码输入正确、有误均有指示灯显示,并利用电磁继电器模拟开锁。 2、4、设置当前密码的显示部分,用于用户检测。课程设计的主要内容:
00 为四组 2 输入端与非门(正逻辑),共有 54/7400、54/74H00、54/74S00、54/74LS00 四种线路结构形式,其主要电特性的典型值如下:
密码锁实验设计报告黄某某

密码锁实验设计报告黄某某
本实验旨在探究密码锁的原理和应用,并通过实验设计和实验验证的方式加深对密码锁的理解。
一、实验目的
1. 了解密码锁的基本原理和应用。
2. 掌握密码锁的工作过程。
3. 利用示波器观测密码锁的输出信号。
4. 探究不同密码输入对密码锁的影响。
二、实验器材
1. 密码锁实验板
2. 示波器
3. 电源
三、实验步骤
四、实验结果及分析
通过观测密码锁的输出信号,我们可以看到,当输入正确的密码时,密码锁会产生一个高电平的输出信号,表示密码输入正确;而当输入错误的密码时,密码锁不会产生输出信号,电平为低电平。
我们还发现,密码锁的输出信号波形非常规律,周期性强,这是由密码锁内部的计数器和时钟控制器共同作用产生的。
同时,我们进一步探究不同密码输入对密码锁的影响。
在实验过程中,我们尝试输入相同的密码,但是不同的输入顺序,结果发现密码锁会把输入顺序不同的密码都视为不正确。
五、实验心得
通过本次实验,我们更深入地了解了密码锁的工作原理和应用,同时也了解了示波器的使用和密码输入顺序对密码锁的影响。
这些知识对我们今后的学习和工作都有重要意义。
密码锁实验报告doc

密码锁实验报告篇一:电子密码锁实验报告密码锁实验报告一,实验目的1. 学习8051定时器时间计时处理、跑马灯、按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上8个LED数码管,按键,跑马灯实现设置密码,密码锁的功能二,实验要求基本要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
三,实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
四,实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash 只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
1在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。
数字密码锁实验报告

数字密码锁实验报告⼀、主要要求及指标:1.设置三个正确的密码键,实现按密码顺序输⼊的电路。
密码键只有按顺序输⼊后才能输出密码正确信号。
2.设置若⼲个伪键,任何伪键按下后,密码锁都⽆法打开。
3.每次只能接受四个按键信号,且第四个键只能是“确认”键,其他⽆效。
4.能显⽰已输⼊键的个数(例如显⽰* 号)。
5.第⼀次密码输错后,可以输⼊第⼆次。
但若连续三次输⼊错码,密码锁将被锁住,必须系统操作员解除(复位)。
⼆、设计⽅案1.⽅案原理图:输⼊控制伪码键密码键确认键按键个数计数74LS164复位返回键复位键值锁存密码顺序判别亮灯显⽰输出控制亮灯报警密码正确2. 基本原理:输⼊按键,当密码键按正确循序按下,密码信号输⼊D触发器构成的移位寄存器,输⼊正确时信号从Q1移到Q3 ,Q3为“1”时输出密码正确信号,亮绿灯显⽰正确,否则信号传递失败,灯不亮。
按键同时⽤74164记录按键个数,⽆论密码键还是伪键,每次按键都产⽣⼀个脉冲,输出⼀个按键信号使⼀盏灯亮。
当最后位按键(第四位)不是“确认键”时,亮起红灯提⽰,重新按键。
扩展部分:当连续三次输⼊错码,74164计数电路输出错误信号,亮起红灯报警,同时使⽤与门控制使密码锁被锁住,此时必须系统操作员解除(复位)。
3.设计⽅案⽐较:按键个数计数电路我们考虑了两个⽅案。
⼀是:74164记录按键个数,⼆是由D触发器构成移位寄存器计数。
D触发器计数需使⽤更多元件,且增加电路复杂程度,使安全性稳定性⼤⼤降低,故我们最终选择了74164移位寄存器记录按键个数。
三、单元电路设计计算1、本电路主要包含四部分,分别是密码电路、按键个数计数电路、错误输⼊计数电路和防抖电路。
2、密码电路(硬件固化密码)1)⼯作原理当密码键按正确顺序按下,密码正确信号从Q1移到Q3,Q3为‘1’时表⽰密码正确输⼊。
2)D触发器7474N⼯作原理真值表:时序图:3)电路图本部分由4个D触发器和6个开关构成。
其中前三个D触发器分别代表密码的三位,第四个D触发器是确认键。
电子密码锁专业实习报告

实习报告:基于单片机的电子密码锁设计与实现一、实习背景及意义随着科技的不断发展,电子密码锁作为一种新型的安全防盗设备,已经在日常生活中得到了广泛的应用。
与传统的机械锁相比,电子密码锁具有安全性高、成本低、功耗低、易操作等优点,因此,设计并实现一款基于单片机的电子密码锁具有重要的实际意义。
二、实习目标本次实习的目标是设计和实现一款基于单片机的电子密码锁,该密码锁具有以下功能:1. 可以通过4x4矩阵键盘输入密码;2. 能够判断输入的密码是否正确,正确则开锁,错误则显示错误信息;3. 支持密码的修改;4. 在操作错误达到一定次数后能够报警。
三、实习过程1. 材料与器件选择:根据设计需求,选择合适的单片机(如51系列单片机)作为控制器,4x4矩阵键盘作为输入设备,LCD显示屏作为输出设备,以及必要的报警机构和开锁机构。
2. 仿真图设计:在PROTEUS软件中,根据所选器件,设计电路仿真图,包括单片机、矩阵键盘、LCD显示屏、报警机构和开锁机构等。
3. 程序编写:根据设计需求,使用KEIL软件编写单片机程序,实现密码输入、密码判断、密码修改、报警等功能。
4. 联合仿真与调试:将编写好的程序与PROTEUS仿真图进行联合仿真,调试程序,确保各项功能正常运行。
5. 实际制作与测试:根据仿真结果,制作实体电子密码锁,并进行实际测试,验证设计的正确性和实用性。
四、实习成果与体会通过本次实习,成功设计和实现了一款基于单片机的电子密码锁,该密码锁具有密码输入、密码判断、密码修改、报警等功能,实际测试表明,设计的电子密码锁性能稳定,满足设计需求。
通过本次实习,不仅掌握了单片机原理、电子密码锁的设计方法,还提高了实际动手能力和团队协作能力。
同时,也认识到了电子密码锁在实际应用中可能存在的问题,如功耗、抗干扰等,为今后的进一步研究提供了方向。
总之,本次实习是一次富有挑战性和收获性的实践过程,通过对电子密码锁的设计与实现,深入了解了单片机原理和电子密码锁的工作原理,提高了实际动手能力和团队协作能力,为今后的学习和工作中积累了宝贵的经验。
电子密码锁实训报告心得

一、前言随着科技的发展,人们对安全的重视程度日益提高,电子密码锁作为一种高科技产品,广泛应用于家庭、企业、银行等领域。
为了提高自己的实践能力,我参加了电子密码锁实训课程,通过本次实训,我对电子密码锁的设计与实现有了更深入的了解,以下是我对本次实训的心得体会。
二、实训内容与过程1. 实训内容本次实训主要包括以下几个方面:(1)电子密码锁原理及设计方法;(2)电子密码锁硬件电路设计;(3)电子密码锁软件编程;(4)电子密码锁仿真与调试。
2. 实训过程(1)理论学习:通过查阅相关资料,了解电子密码锁的基本原理、设计方法以及常见硬件电路。
(2)硬件电路设计:根据实训要求,设计电子密码锁的硬件电路,包括键盘输入、密码存储、显示、报警等模块。
(3)软件编程:根据硬件电路设计,编写电子密码锁的软件程序,实现密码输入、密码存储、密码比较、报警等功能。
(4)仿真与调试:利用Proteus软件对电子密码锁进行仿真,观察电路运行状态,根据仿真结果调整电路参数,直至满足设计要求。
三、实训心得体会1. 基本原理与设计方法通过本次实训,我对电子密码锁的基本原理有了更深入的了解。
电子密码锁主要由以下几个部分组成:(1)密码输入模块:用于输入密码,一般采用键盘输入方式;(2)密码存储模块:用于存储密码,一般采用EEPROM或Flash存储器;(3)密码比较模块:用于比较输入密码与存储密码是否一致;(4)显示模块:用于显示密码输入情况、锁状态等信息;(5)报警模块:用于在密码输入错误时发出报警信号。
在设计电子密码锁时,需要考虑以下几个因素:(1)安全性:密码存储方式要保密,防止他人非法获取;(2)可靠性:电路设计要稳定,防止因电路故障导致密码丢失或误操作;(3)易用性:操作简单,便于用户使用;(4)成本:尽量降低成本,提高产品竞争力。
2. 硬件电路设计在硬件电路设计过程中,我学习了如何选择合适的元器件,如何设计电路板,以及如何布线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一分耕耘一分收获,这次实验,把这句话展现的淋漓尽致。我想在实验成功的那一刹那,就是对我们这历时一周的忙碌最好的报答。
这次实验还算顺利,在规定日期前就完成了任务。时间呢,可能大部分花费在解决一些不可预知的问题上了,无论是连电路,还是写代码,虽然也会出现问题,整体来说还算顺利。
有时候一整天都待在实验室,虽然说累,但是很值得。怀揣着一份新奇,不断尝试,感觉那样的日子很充实,很快乐。
2.设计用途
由于本设计成本较低且安全性能稳定,可适用于家庭防盗、行李箱、车载行李箱等一些安全性能要求不高且需要便携的产品上,其安全性能远远优于同等成本的安全性。其中输入密码错误无限报警和自动锁死的功能能提高用户的警觉性,降低失窃率。更重要的是本设计的键盘重新定义的思想可移植到自动提款机、公共场合的提款装置等,可以防止用户输入密码时被别人偷看、窃取等,增加用户提款时的安全性。LCD具有良好的人机友好界面,在未开锁之前显示“welcome”,并且只有知道如何开锁才能使用密码锁,进一步提高了安全性能。
3.设计功能
(1)系统功能:
1、密码键盘的输入:包括0-9数字输入、A-F为功能键。
键盘默认如下:
1 2 34
5678
90AB
CDEF
其中A代表reset(复位),B代表*,C代表关锁,D代表clear(删除),E代表change(修改),F代表#。
2、液晶显示:主要用于液晶显示屏将具体输入数字用*号代替,便于用户看到自己是否输入六位。最开始显示“Welcome”字样,然后显示操作指南“A=reset,B=*,C=close,D=del,E=change,F=#,”密码输入正确显示“right”绿灯亮并有音乐播放,密码输入错误显示“wrong”红灯亮蜂鸣器响提示输入错误。
***:实现键盘模块功能,编写了键盘的扫描函数和键盘相应状态控制函数,完成了其它一些小函数的编写。在最后实验调试中起到了重要的作用。
八、实验总结和心得体会
(1)实验总结
①概括这次实验
本项目是做一个基于ATMega 16单片机的电子密码锁,通过4×4键盘和LCD液晶显示,实现了密码锁的基本功能,并在此基础上进行音乐改装。
(3)扩展功能:
倒计时功能:密码三次输入错误后需间隔半分钟(或更久)后才能再次输入,LCD液晶显示倒计时时间。
密码重置时密码可以任意长度。
液晶显示变幻:可实现闪烁,无限滚动等效果(利用C语言编程实现)。
三.硬件设计
1.系统硬件设计思路
系统以Atmega16单片机为控制核心,4*4键盘作为输入模块,1602液晶显示屏作为显示模块实现密码锁的各项功能。
关键字:ATMega16 AVR单片机 、密码锁、 键盘、 LCD 、开锁、倒计时、喇叭
一.先前准备(流水灯数码管)
在实现大型程序之前我们进行了简单的流水灯数码管试手。该程序实现了每一秒流水灯循环移位以及数码管计时的功能, 并实现了数码管计时的外部中断,在按下按键时数码管计时停止不动,但是流水灯照常工作,取消按键时数码管继续从原来的地方开始计数。
我们的出发点是设计出既安全又成本低的密码锁。 我们的密码锁有如下功能:密码验证、修改密码、输入错误后鸣笛,输入正确后播放音乐,复位后启动倒计时功能、显示操作指南等功能。
我们收获了很多基础知识,比如说:对键盘进行扫描时,可以采用查询扫描的方法,即先对一行进行扫描,再对列进行扫描,直至将每行每列都扫描一次,通过单片机端口电平的变化,判断哪个按键被按下。当然,我们也掌握了液晶显示屏的各个管脚的左右,也掌握了ATmega16的各个管脚的作用。
(2)处理技术:
1、密码正误信息输出:“确认”输入后,扫描键盘,与EEPROM中的内置密码相比较,若相同,进入“密码重置”功能;否则,在三次提示输入错误后蜂鸣器鸣响报警。
2、密码重置:密码正确后,提示是否修改密码,修改按“g”,并且可以修改任意长度密码。两次输入一致后修改内置密码并液晶屏文字提示如果两次输入不一致则重新进入密码重置。
sei (); //使能总中断
while(1)
{if(dq==0)
{temp = PORTA;
PORTA = PORTA <<1;
dq=1;
if ( temp & 0b10000000)
{
PORTA = PORTA | 0b00000001;
五、实验器材
实验器材
4*4键盘
1个
1602液晶显示
1个
蜂鸣器
1个
发光二极管
2个
喇叭
1个
导线
若干
六、ቤተ መጻሕፍቲ ባይዱ验结果及截图
(1)欢迎界面 (2)操作指南无限循环
(3)当任意按一个键,进入键盘解锁界面 (4)进入输入密码界面
(5)输入六位密码 (6)判断正误(左边正确,右边错误)
(7)修改密码界面
七、分工情况
***:在实验中负责电路搭建与优化,协调输出端口的分配,负责LED显示屏和4*4矩阵键盘代码的编写和原理研究,提出密码锁关于音乐的改装思路。
(3)LED电路:用指示灯模拟继电器。密码输入正确绿灯亮,单片机的PD0端口便会输出高电平;密码输入错误红灯亮,单片机的PD2端口便会输出高电平,此时锁未打开。
(4)喇叭电路:密码输入正确喇叭播放一段音乐,喇叭接PD5。
(5)蜂鸣器电路:蜂鸣器电路用于报警。当密码输入错误时,单片机的PD1端口便会输出高电平,蜂鸣器即发出报警声。
二.设计目的、用途、功能
1.设计目的
随着科技的发展,安全问题越来越受到人们重视,不仅居家安全受到重视,出门在外行李物品的安全问题也受到了很多关注,在此基础上各种安全产品相继问世,密码锁一直都是人们财产安全乃至生命安全的一种重要保障。伴随着人类历史的发展和人们对自身财产安全和人生安全的重视,各种各样的多功能的锁具也相继出现,人们使用的锁具也由传统的机械式锁逐渐发展为安全性能更好,功能更多的电子密码锁。在现代社会,电子密码锁已是一个被大家所熟识的名词。本次试验中将要介绍的电子密码锁是一种通过判断密码输入是否正确来控制电路或是芯片的工作状态。本次试验中,我们在密码锁基础上实现解锁、更改任意长度密码、输入三次错误进入倒计时锁定功能,输入密码成功播放音乐等功能,使得密码锁功能更加丰富,交互界面更加友好。
3.电路原理图
四、软件设计
1.程序设计思想
(1)键盘扫描:键盘扫描程序的流程图如下图所示。对键盘进行查询扫描,确定有键按下后,读取键值,进行延时去抖,再次读取键值,若两次键值相等则返回键值。
一般情况下,我们运用软件进行延时去抖,通常用delay_ms(10),在此期间CPU不能进行其它工作。
(2)LCD显示程序:根据1602的数据手册,我们可以针对其各引脚的定义和内部结构,定义显示字符函数、显示字符串函数、清屏函数和初始化函数,在后续程序中调用即可。
(3)音乐程序:此程序根据ATMEGA16的PD4,PD5端口的第二功能通过定义音乐字符的音调和持续时间来进行音乐的输出。
(3)整体流程:此程序通过设置多个全局变量把各部分的程序统一成为整体。其中input_sign用于标记是否有键按下,当其为1时代表有键按下;state用于标记功能,state=0代表输入密码,state=1代表密码输入成功,state=2代表改密码,state=3代表修改键盘,state=4代表功能选择;数组password[]用于存储密码;数组key[][]用于存储键值。运用if语句即可实现各种功能。
3.紧接着就是显示屏的代码问题,会遇到一些字符显示太快,或者是没有达到预期的结果,但是都通过不断地修改断码来解决问题。距离说一下,就是我要实现的功能是按了*键之后,显示”press #”,但是每次都显示“press *”,后来发现是函数里有一个case少了一个break。
4.最后呢是显示倒计时, 刚开始显示乱码。最后写了这样一个函数LCD_show(m,n); 利用for循环,把数组里的0,1,2等换成‘0’,‘1’,‘2’才解决了问题。
(1)系统硬件方框图如下:
(2)系统工作的流程图如下
2.电路连接原理
(1)键盘电路:4*4键盘采用行列式键盘,使用单片机的8个I/O端口就可以控制16个按键。键盘的8个引脚分别接在PORTB的8个端口。对键盘进行扫描时,可以采用查询扫描的方法:先对一行进行扫描,再对列进行扫描,直至将每行每列都扫描一次,通过单片机端口电平的变化,判断哪个按键被按下。
自然,我们不仅收获了上面所说的知识,也锻炼了自己的动手能力和解决问题的能力。最重要的是也培养了我们团结协作的能力。
②实验中遇到的问题以及解决方案
1.之前在搭建电路时使用了PC2-PC5管脚,发现下载时出错,最后才知道PC2-PC5管脚是下载端,改了电路端口后错误消失。
2.在测试键盘功能时,不能控制键盘,而且按键的时候发现实际功能和预设功能不同,当时觉得很奇怪。后来经过不断地探索,发现是判断按键的那段代码的值错了,在修改之后发现好了了。
{0b10111111,//0
0b00001110,//1
0b11011011,//2
0b11001111,//3
0b01101110,//4
0b11101101,//5
0b11111101,//6
0b00001111,//7
0b11111111,//8
0b11101111//9
};
volatile int temp0 = 0;
int i , j;
char temp;
DDRA = 0xff;
DDRB = 0xff;
DDRD = 0xf7;
PORTD = 0b10111111;
PORTB = 0b10110111;
PORTA = 0b00000001;
MCUCR = (1<<ISC11) ;//INT1设置边沿触发
GICR|=(1 << INT1);//使能INT1中断