版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目4人机交互密码锁的设计目录任务4-1静态数码管显示4.1数组的概念4.2认识LED数码管任务4-2动态数码管显示任务4-4矩阵键盘密码锁设计4.3LED数码管动态显示任务4-3LED大屏幕电子广告牌控制4.4点阵的初步认识4.5
单片机与矩阵键盘接口任务拓展:电子琴设计项目导读本项目引导学习者理解和掌握51单片机在显示和键盘接口技术的编程与硬件交互。内容涵盖静态数码管显示到LED点阵动画显示,抢答器和键盘接口设计。通过实践,提高单片机编程理解力和应用能力,增强解决实际电子问题的能力。任务包括:使用51单片机控制静态数码管显示数字“0”,学习特殊功能寄存器操作;通过LED大屏幕电子广告牌控制任务,探索单片机控制8×8LED点阵显示,理解动态显示原理,实践扫描显示技术。最终目标是使学习者独立设计电子显示方案,掌握键盘与LED显示结合应用。思维导图任务4-1静态数码管显示1、目的与要求利用51单片机显示“0”。操作寄存器,学习交互方法。编程实践,加深理解。实现稳定显示。程序简洁,易于维护。注意端口保护。2、原理及实现利用P2.2、P2.3、P2.4引脚作为数码管位选信号。定义smgduan数组存储0到F段码值。main函数中,设置位选信号为最低位显示,P0端口值为smgduan[0](显示“0”)。程序进入无限循环。硬件连接需确保公共端正确。根据数码管类型调整段码值。建议仿真软件或开发板实践编程和调试。3、源程序设计4、任务总结本任务通过实践学习51单片机控制数码管显示数字“0”的方法,加深了对单片机编程和硬件交互的理解。学习了数码管显示原理,通过控制位选信号选择显示位,并定义段码数组实现显示数字“0”。通过无限循环保持显示状态。在任务中,保护了单片机端口,使用合适变量和数据类型,提高了代码可读性和可移植性。了解了根据数码管类型调整段码值,并通过仿真软件或开发板调试。通过本任务,掌握了单片机控制数码管显示方法,提升了实践和解决问题能力,为后续学习和应用打下基础。4.1数组的概念数组是一组有序数据的集合,数组中每一个元素的类型相同,数组必须先定义后使用。常用数组有一维数组、二维数组和字符数组。4.1.1一维数组数组定义及应用缩写结果:数组是相同类型数据集合,用于数码管、LED点阵显示、传感器补偿等,需先定义后使用,元素同类型、同名、不同下标。1、一维数组的定义一维数组的定义为:<存储类型>类型说明符
数组名[常量表达式];其中,“存储类型”包括static、extern和auto,可默认,默认时与变量处理格式相同。2、一维数组的引用C51中,使用数值型数组时,只能逐个应用数组元素而不能一次引用整个数组。数组元素的引用是通过数组名和下标来实现的,一维数组中数组元素的引用形式是:数组名[下标表达式]3、一维数组的初始化一维数组的初始化可通过以下几种形式。(1)对数组全部元素初始化。(2)可以只给一部分元素赋值。(3)如果想使一个数组中全部元素值为“0”(4)在对全部数组元素赋初值时,可以不指定数组长度。一维数据元素存放图4.1.2二维数组1、二维数组的定义定义二维数组的一般形式为类型说明符
数组名[常量表达式1][常量表达式2];2、二维数组的引用二维数组元素的引用与一维数组元素的引用相似,其形式为:数组名[下标表达式1][下标表达式2]3、二维数组的初始化(1)在定义二维数组时,分行对各元素赋初值,第一个{}内元素赋给第一行的元素,第二个{}内元素赋给第二行的元素以此类推。(2)可以将所有的值写在一个大括号内,按数组在内存中排列的顺序对各元素赋值。(3)可以只对部分元素赋值,其余元素自动为0。(4)如果对全部元素都赋值,则定义数组时第一维长度可以省略。二维数组元素存放图4.1.3字符数组用来存放字符数据的数组称为字符数组。字符数组中的每个元素就是一个字符。既具有普通数组的一般性质,又具有某些特殊性质。1、字符数组的定义与初始化(1)字符数组的定义字符数组的定义与数值型数组的定义相类似,它的一般形式为:(2)字符数组的初始化方法一:通过为每个数组元素指定初值字符来实现。方法二:用字符串常量对字符数组初始化。3、字符串和字符串结束标志字符串是字符序列,存于字符数组,以'\0'为结束标志,系统自动加在字符串常量末尾。例如:4.2认识LED数码管4.2.1LED数码管结构及字形代码通常使用的LED数码管是7段LED,它是由7个LED组成的。这7个LEDa~g呈“日”字形排列,其结构及连接如图所示。LED数码管中LED有两种接法:①所有LED的阳极连接在一起,这种连接方法称为共阳极接法;②所有LED的阴极连接在一起,这种连接方法称为共阴极接法。LED数码管的LED亮暗组合实质上就是不同电平的组合,也就是为LED数码管提供不同的代码,这些代码称为字形代码,即段码。7段LED加上1个小数点dp共计8段,字形代码与这8段的关系如下:字形代码与十六进制数的对应关系见表,从表中可以看出,共阴极接法与共阳极接法的字形代码互为补数。4.2.2LED数码管的显示方式单片机系统中,需用多个LED数码管,由n根位选线和8×n根段选线连接。显示方式不同,连接方法不同。段选线控字符,位选线控显示。连接见图。LED数码管有静态显示和动态显示两种方式。静态显示就是当LED数码管要显示某一个字符时,相应的LED恒定地导通或截止。动态显示就是逐位地轮流点亮各位数码管,对于每个LED数码管来说,每隔一段时间点亮一次,即CPU需要时刻对数码管进行刷新,显示数据有闪烁感,占用CPU时间较多。4.2.3LED数码管的识别与检测方法LED数码管的识别与检测可通过干电池检测或万用表检测两种方法进行。1、万用表检测法以指针式万用表为例,拨至“R×10k”电阻挡进行检测。测量共阴极数码管时,红表笔接“-”端,黑表笔接各段码电极;共阳极数码管则相反。指针偏转表示LED导通,否则可能损坏。此法也可快速检测不明结构的数码管。2、干电池检测法用两节1.5V干电池串联成3V电压源,并串联限流电阻,防止电流过大。负极接公共阴极,正极依次接触各段码电极。此法可快速检测断笔或连笔,并比较发光强弱。共阳极数码管检测时,只需对调电池极性。短接数码管各段码电极,接通3V电压,使全段码发光。质量好的数码管发光均匀,无残缺或变色。任务4-2动态数码管显示任务4-2动态数码管显示1、目的利用单片机控制6个共阳极数码管,动态显示“001225”。2、电路设计采用动态显示方式,电路连接如图,段选控制端并联,用P1口控制,经74LS245驱动;位选端由P2口控制,经74LS04驱动。3、程序设计动态显示方式是按位顺序点亮数码管,依次送出位选码和字型编码。例如,P2=0xfe点亮第一个数码管,P1=0x90显示字符9,依次显示第2到第6个数码管。表列出数据。由表可以看出,位选码有一定的变化规律,依次左移一位,字型码没有规律,为此定义一个一维数组来存储这6个字符的字型码。6位数码管动态显示生日“001225”的程序如下。4、任务小结本任务采用单片机并行I/O端口P1口、P2口控制6个共阳极数码管显示,进一步训练应用单片机并行I/O端口的能力,熟练掌握数码管动态显示接口技术以及使用数组和循环程序结构进行程序设计与调试的能力。4.3LED数码管动态显示在多位LED显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个8位I/O口控制,形成段选线的多路复用。而各位的共阳极或共阴极分别由相应的I/O线控制,实现各位的分时选通。图所示为一个4位7段LED动态显示器电路原理图。其中段选线占用一个8位I/O口,而位选线占用一个4位I/O口。由于各位的段选线并联,段码的输出对各位来说都是相同的。任务4-3LED大屏幕电子广告牌控制1、目的和要求利用单片机控制一块8×8LED大屏幕点阵式电子广告牌,将一些特定的文字或图形以特定的方式显示出来。任务要求在8×8LED点阵广告牌上稳定显示“0”。2、原理及实现用单片机控制一块8×8LED大屏幕电子广告牌的硬件电路如图所示。3、源程序设计8×8LED点阵显示字符程序设计:选中行,送字型码到列端口,延时1ms,逐行扫描,8ms完成一遍,循环扫描实现稳定显示。在8×8点阵上稳定显示“0”的程序如下。4、任务总结该程序是一个针对8×8LED大屏幕电子广告牌的简单显示程序,用于稳定显示数字“0”。(1)头文件程序开头通过#include"reg51.h"包含了适用于51单片机的专用寄存器定义,这对于后续使用单片机的寄存器进行IO操作至关重要。(2)变量声明:
led[]数组存储了数字“0”在8×8LED点阵上的显示码。
w变量用于控制当前显示的LED行。
i用作循环计数。(3)主函数:
在main()函数中,程序使用了一个无限循环while(1)来确保数字“0”能够持续显示在LED点阵上。
在循环内部,首先初始化w为0x01,表示从第一行开始显示。
使用一个for循环遍历led[]数组,每次循环都会将当前行的LED数据送到P0口,同时将对应的行选择信号送到P1口。
~led[i]操作是为了反转LED的亮灭状态,因为在LED点阵中,通常使用低电平来点亮LED。
delay(100)用于控制每一行显示的持续时间,确保人们能够看清整个数字“0”。
w<<=1操作将w左移一位,以便在下一轮循环中选中下一行。(4)延时函数:delay(unsignedinti)函数用于实现软件延时。它通过执行一个空循环来达到延时的效果。延时的长度由参数i控制。该程序是一个基础的LED点阵显示程序,用于在8×8LED点阵上稳定显示数字“0”。4.4点阵的初步认识4.4点阵的初步认识点阵LED显示屏特点:灵活显示面积、高亮度、长寿命、数字化、实时性,应用广。LED点阵由64个LED小灯组成(8×8)。图为最小单元,图为内部结构图。4.4.1点阵的图形显示电子项目中,LED小灯可构建流水灯,数码管显示数字。点阵LED用途更复杂,展现图案。显示花样需先制小图形,数据需转换至程序,需取模软件。取模软件提取点阵图形数据,转二进制等格式,程序直接使用。软件网络广泛可得,操作简便。图示操作界面。鼠标点一下“新建图形”,根据板子上的点阵,把宽度和高度分别改成8,然后点确定,如图所示。点击左侧的“模拟动画”菜单,再点击“放大格点”选项,一直放大到最大,那就可以在的8×8的点阵图形中用鼠标填充黑点,就可以画图形了,如图所示。经过的一番精心设计,画出来一个心形图形,并且填充满,最终出现想要的效果图,如图所示。取模软件黑白与LED相反,需选“修改图像”里的“黑白反显图像”,再点“基本操作”里的“保存图像”保存图片,如图所示。保存文件只是为了再次使用或修改使方便方便,当然你也可以不保存。操作完了这一步后,点击“参数设置”菜单里的“其他选项”,如图所示。P0口控制行用“横向取模”,控制列选“纵向取模”。选“字节倒序”因左低位右高位。点“确定”,选“取模方式”,点“C51格式”,点阵区生成8字节数据即“模”,如图。4.4.2点阵的动画显示点阵的动画显示,说到底就是对多张图片分别进行取模,使用程序算法巧妙的切换图片,多张图片组合起来就成了一段动画了,所看到的动画片、游戏等等,它们的基本原理也都是这样的。1、点阵的纵向移动上一节学了如何在点阵上画一个❤形,有时候希望这些显示是动起来的,而不是静止的。对于点阵本身已经没有多少的知识点可以介绍了,主要就是编程算法来解决问题了。比如现在要让点阵显示一个I♥U的动画,首先要把这个图形用取模软件画出来看一下,如图所示。2、点阵的横向移动关于点阵LED的左右移动操作,我们有两种常见的解决方法。方法一、较为直观和简单,即将电路板侧放,使点阵LED的纵向成为移动的方向,从而通过纵向取模来实现左右移动的效果。然而,我们不应仅满足于技术的实现,更应拓宽视野,提升解决问题的思路。技术只是工具,我们在开发过程中应灵活运用这一工具,同时培养多角度的思维方式。方法二、利用二维数组来实现,算法基本上和上下移动相似。二维数组,前边提过一次,他的使用其实也没什么复杂的。它的声明方式是:
横向动画取模图片任务4-4矩阵键盘密码锁设计1、目的与要求通过对具有16个按键和1个数码管显示的密码锁设计,让读者掌握矩阵键盘的接口电路设计和控制程序设计方法。任务要求完成一位简易密码锁设计:输入一位密码(为0~9,A~F之间的字符),密码输入正确显示“P”并将锁打开;否则显示“E”,继续保持锁定状态。2、电路设计根据任务要求,用一位共阳极LED数码管作为显示器件,显示密码锁的状态信息,数码管采用静态连接方式,16个按键采用4×4矩阵键盘连接方式,P3.0连接一个发光二极管,其亮灭表示开锁或关锁状态,电路如图
所示。3、源程序设计密码锁的基本功能如下:16个按键,分别代表数字0、1、2……9和英文字符A~F;密码在程序中事先设定为“8”;系统上电时,数码管显示“-”,表示等待密码输入;密码输入正确时显示字符“P”约3s,并通过P3.0端口将锁打开;否则显示字符“E”约3s,继续保持锁定状态。4、任务总结通过密码锁的设计和制作,让读者理解矩阵键盘的应用,并初步了解矩阵键盘的程序设计方法,程序中的键盘扫描方法采用的是逐列扫描法,也可以采用行列反转法得到相同的结果。4.5单片机与矩阵键盘接口4.5.1键盘与消除键盘抖动1.键盘键盘是由一组规则排列的按键组成,一个按键实际上是一个开关元件,也就是说键盘是一组规则排列的开关。键盘是人机交互的重要组成部分,按连接形式一般分为独立式键盘与矩阵键盘。2.消除键盘抖动机械触点式键盘在按键操作时会产生触点抖动,抖动时间大约5~10ms。为避免误判,需消除抖动。少量按键时常用硬件消抖,如使用R-S触发器构成的消抖电路,可将抖动影响降至最低。
键盘抖动过程
硬件消抖动电路4.5.2独立键盘硬件结构如图
所示,独立键盘每一个按键的电路是独立的,占用一条数据线,上拉电阻保证了按键断开时,I/O口线有确定的高电平(当I/O口线内部有上拉电阻时,外电路可以不接上拉电阻)。当其中任意一键被按下时,它所对应的端口电平就变成低电平,若无键闭合,则所有端口为高电平。这种键盘电路配置灵活,但占用I/O口多,适合少量按键的情况。4.5.3独立键盘的键值分析与程序结构独立式键盘软件通常使用扫描查询方法。其程序流程包括:键盘扫描、去抖动、求键值、等待按键释放和按键处理。键盘扫描用于检测按键是否被按下,若检测到按键则继续处理,否则退出程序。独立式键盘扫描仅需读取I/O口状态。为确保单片机对每次按键只处理一次,需消除按键抖动。按键稳定闭合或断开的时间取决于操作者,而抖动时间通常为5~10毫秒。软件消抖法通过延时来避开抖动,确保读取稳定状态。求键值即确定按下的是哪个按键。按键处理是根据系统要求,用单片机执行特定操作。扫描查询方式分为程序查询、定时查询和中断查询。程序查询通过调用键盘扫描子程序来检测按键。1)程序查询方式程序查询方式是利用CPU完成其他工作的空余时间调用键盘扫描函数来响应键盘输入的要求。2)定时查询方式定时扫描方式就是利用定时器,每隔一段时间对键盘扫描一次。3)中断查询方式中断查询方式是把键盘接入外部中断源,只要有按键按下时,就会发出中断请求,CPU响应中断,在中断服务程序中进行扫描查询,确认按键,然后散转到执行相应按键功能程序。4.5.4独立键盘应用1、编写程序实现用数码管循环显示按键按下次数1)编程要求编写程序对按键按下次数计数,每按下一次,计数加1,计数值到9后,重新从0开始计数,并用共阳数码管显示。2)编程思路如果有按键按下,首先去抖动,确认按键按下,让计数值加1,然后用共阳数码管显示。程序流程如图所示。3)编写程序根据编程思路与程序流程,参考程序如下:2、编写程序实现用一只键控制组合灯1)编程要求编写程序实现功能:当S1键按下1次,LED1亮灭变化,当S1键按下2次,LED2亮灭变化,当S1键按下3次,LED1、LED2全亮,当S1键按下4次,LED1、LED2全灭。2)编程思路程序采用查询方式判断S1键是否按下,如果按下则去抖动,按键次数加1,根据次数执行相应操作:次数为1,LED1亮
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地下室顶板种植防水施工方案
- 动火作业安全生产责任制度
- 扎兰屯市2024内蒙古呼伦贝尔市扎兰屯市文化馆多元化岗位招聘1人笔试历年参考题库典型考点附带答案详解
- 窗帘拼接精度控制方案
- 徐州市2024中共徐州市委机构编制委员会办公室所属事业单位招聘公笔试历年参考题库典型考点附带答案详解
- 7多元文化 多样魅力《多彩的世界文化》(教学设计)-统编版道德与法治六年级下册
- 山东省2025年山东泰安新泰市事业单位初级综合类岗位招聘工作人员(89人)笔试历年参考题库典型考点附带答案详解
- 宜宾市2024上半年四川宜宾市江安县事业单位考核招聘高层次和急需紧缺专业人才35人笔试历年参考题库典型考点附带答案详解
- 大悟县2025年湖北孝感大悟县事业单位统一公开招聘工作人员100人笔试历年参考题库典型考点附带答案详解
- 国家事业单位招聘2025春季中国南水北调集团水网水务投资有限公司本部及所属单位招聘岗位第笔试历年参考题库典型考点附带答案详解
- 《纳米技术与生活》课件
- 计算机网络安全技术保护措施
- 2023年铸钢件生产工序作业指导书
- 《电力建设安全工作规程 第2部分:电力线路》
- 安全隐患排查监理细则范文
- CJJT 268-2017 城镇燃气工程智能化技术规范
- 花生有害生物综合治理技术(花生生产技术课件)
- 07FS02 防空地下室给排水设施安装
- 淮安和府项目PC构件吊装专项施工方案
- 工业自动化控制plc软著
- GB/T 33683-2017陆上石油物探测量与定位技术规范
评论
0/150
提交评论