按键状态扫描显示电路的设计与制作

合集下载

按键扫描实验报告

按键扫描实验报告

一、实验目的1. 理解按键扫描的基本原理,掌握按键扫描电路的设计方法。

2. 学习并运用单片机编程技术,实现按键的识别与处理。

3. 掌握按键防抖技术,提高按键识别的准确性。

4. 熟悉数码管显示电路的连接与编程,实现按键值的实时显示。

二、实验原理按键扫描是单片机应用中常见的一种输入方式,通过扫描电路检测按键状态,并转换为单片机可识别的信号。

本实验采用行列扫描法,通过单片机的I/O口输出低电平,逐行扫描按键,同时读取列线状态,判断是否有按键被按下。

三、实验设备1. 单片机实验板(如51单片机实验板)2. 按键(如按钮、触摸按键等)3. 数码管(如7段数码管)4. 电阻、电容等电子元件5. 编程软件(如Keil、IAR等)四、实验步骤1. 电路连接(1)将按键的行线连接到单片机的I/O口,列线连接到数码管的输入端。

(2)数码管的共阳极或共阴极连接到单片机的I/O口。

(3)在按键和数码管之间接入电阻和电容,实现防抖功能。

2. 编程实现(1)初始化单片机的I/O口,将行线设置为输出模式,列线设置为输入模式。

(2)编写按键扫描函数,逐行扫描按键,读取列线状态,判断是否有按键被按下。

(3)编写数码管显示函数,根据按键值显示对应的数字或字符。

(4)编写防抖函数,消除按键抖动干扰。

3. 实验测试(1)上电后,观察数码管显示是否正常。

(2)按下按键,观察数码管是否显示对应的数字或字符。

(3)多次按下按键,观察数码管显示是否稳定。

五、实验结果与分析1. 按键扫描结果实验结果表明,按键扫描电路能够正确识别按键状态,并转换为单片机可识别的信号。

按键按下时,数码管显示对应的数字或字符,按键释放时,数码管显示前一个数字或字符。

2. 防抖效果通过实验发现,防抖函数能够有效消除按键抖动干扰,提高按键识别的准确性。

在按键按下和释放过程中,数码管显示的数字或字符稳定,没有出现跳动现象。

3. 数码管显示实验结果表明,数码管显示电路能够正确显示按键值。

按键显示电路实验报告(3篇)

按键显示电路实验报告(3篇)

第1篇一、实验目的1. 熟悉按键电路的基本原理和设计方法。

2. 掌握按键电路的搭建和调试方法。

3. 了解按键电路在实际应用中的重要性。

4. 提高动手实践能力和电路分析能力。

二、实验原理按键显示电路是一种将按键输入转换为数字信号,并通过显示设备进行显示的电路。

本实验主要涉及以下原理:1. 按键原理:按键通过机械触点实现电路的通断,当按键被按下时,电路接通,产生一个低电平信号;当按键释放时,电路断开,产生一个高电平信号。

2. 译码电路:将按键输入的信号转换为相应的数字信号,以便后续处理。

3. 显示电路:将数字信号转换为可视化的信息,如LED灯、数码管等。

三、实验器材1. 电路板2. 按键3. 电阻4. LED灯5. 数码管6. 电源7. 基本工具四、实验步骤1. 按键电路搭建(1)根据电路原理图,在电路板上焊接按键、电阻、LED灯等元器件。

(2)连接电源,确保电路板供电正常。

2. 译码电路搭建(1)根据电路原理图,在电路板上焊接译码电路所需的元器件。

(2)连接译码电路与按键电路,确保信号传输正常。

3. 显示电路搭建(1)根据电路原理图,在电路板上焊接显示电路所需的元器件。

(2)连接显示电路与译码电路,确保信号传输正常。

4. 电路调试(1)检查电路连接是否正确,确保无短路、断路等问题。

(2)按下按键,观察LED灯或数码管显示是否正常。

(3)根据需要调整电路参数,如电阻阻值、电源电压等,以达到最佳显示效果。

五、实验结果与分析1. 实验结果通过实验,成功搭建了一个按键显示电路,按下按键后,LED灯或数码管能够正确显示数字信号。

2. 结果分析(1)按键电路能够正常工作,实现电路通断。

(2)译码电路能够将按键输入转换为相应的数字信号。

(3)显示电路能够将数字信号转换为可视化的信息。

六、实验总结1. 通过本次实验,掌握了按键电路的基本原理和设计方法。

2. 提高了动手实践能力和电路分析能力。

3. 了解了按键电路在实际应用中的重要性。

1-单片机键盘与显示电路设计

1-单片机键盘与显示电路设计

独立式按键 单片机控制系统中,往往只需要几个 功能键,此时,可采用独立式按键结构。 1.独立式按键结构 独立式按键是直接用I/O口线构成的单 个按键电路,其特点是每个按键单独占 用一根I/O口线,每个按键的工作不会影 响其它I/O口线的状态。独立式按键的典 型应用如图9-3所示。
V CC
P 1.0 P 1.1 P 1.2 P 1.3 P 1.4 P 1.5 P 1.6 P 1.7
P1口某位结构

P1口电路中包含有一个数据输出锁存器、一个三态数据输入缓冲器 、一个数据输出的驱动电路。 P1口的功能和驱动能力

P1口只可以作为通用的I/O口使用;
P1可以驱动4个标准的TTL负载电路; 注意在P1口作为通用的I/O口使用时,在从I/O端口读入数据时,应 该首先向相应的I/O口内部锁存器写“1”。 举例:从P1口的低四位输入数据 MOV MOV P1,#00001111b ;;先给P1口底四位写1 A,P1 ;;再读P1口的底四位
依此规律循环,即可使各位数码管显 示将要显示的字符。虽然这些字符是在不 同的时刻分别显示,但由于人眼存在视觉 暂留效应,只要每位显示间隔足够短就可 以给人以同时显示的感觉。 采用动态显示方式比较节省I/O口,硬 件电路也较静态显示方式简单,但其亮度 不如静态显示方式,而且在显示位数较多 时,CPU要依次扫描,占用CPU较多的时 间。
矩阵式按键 单片机系统中,若使用按键较多时,通 常采用矩阵式(也称行列式)键盘 1.矩阵式键盘的结构及原理 矩阵式键盘由行线和列线组成,按键位 于行、列线的交叉点上,其结构如下图9-4 所示。
+5 V 0 4 8 12 0 1 5 9 13 1 2 6 10 14 2 3 7 11 15 3 0 1 2 3

按键状态扫描显示电路的设计与制作

按键状态扫描显示电路的设计与制作

摘要本文对按键状态扫描显示电路的原理与设计方案作了详细的说明与分析,主要通过各芯片与门电路的结合,通过合理的设计、布局,对由开关电路输入的信号进行编码、触发、保持、译码、显示等操作,实现按键状态扫描显示电路的功能。

电路的设计方案通过比较和优化,比较简单,电路的设计用到了TTL系列芯片,外加一些基本的电阻、导线、开关、电源。

电路设计方案完成后,在M ultisim 软件中进行了仿真,最后做出了实物,进行了调试与分析。

本电路的设计将所学的数字电路基础和电路的相关知识,运用于实践,最后本文对该电路设计做了整体评价,并作出总结。

关键词:按键编码触发保持译码显示按键状态扫描显示电路的设计与制作1 设计内容与方案选择1.1 设计的内容与要求初始条件:(1)以0~9十个数符标识十个按键;(2)当有键按下时,显示其标识符,并保持显示符直到新的按键作用;(3)如果多个按键同时作用,只响应最先作用的按键。

1.2方案选择1.2.1按键的标识及其对应的标识符显示的选择该电路用无锁的按键开关代替按键,用开关的通断控制信号的输入,开关按下时接通,输入1,开关断开输入0,编码电路可以采用优先编码器74LS148芯片,10输入可以用两片74LS148级联实现,输入低有效,因此开关断开时表示输入信号。

1.2.2按键优先方案的选择该电路设计的难点在于如何实现当多个按键同时作用,只响应最先作用的按键。

我想到可以用触发器来实现,使当多个按键同时作用,仅第一个按键按下时触发器工作,其余按键按下时触发器输出不变。

触发器的输出端连接译码显示电路。

实现对触发器的控制有两种方案:方案一:通过输入信号控制触发器的触发信号触发器采用74LS175,低电平触发,输入信号经过与非门连接至74LS175的CP 输入端,当输入信号全为1时,与非门输出0,CP输入端为0;当有一个开关断开,输入为0时,与非门输出0→1,CP输入端为0→1,触发器工作。

如果再断开多个开关,与非门输出仍为1,CP输入也不变,触发器输出不变,后面连接的译码显示输出也不变,因此满足该电路的设计要求。

8255扫描键盘、显示实验

8255扫描键盘、显示实验

实验九8255扫描键盘、显示实验一.实验要求利用8255可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在由8279控制的七段数码管上。

8255PA口做键盘输入线,PB口作扫描线。

二.实验目的1.掌握8255编程方法。

2.掌握扫描键盘和显示的编程方法。

三.实验电路及连线CS8255接8500H,则命令字地址为8506H,PA口地址为8500H,PB口地址为8502H,PC口地址为8504H。

CS8279接8700H,则8279的状态口地址为8701H; 8279的数据口地址为8700H;模块中的十个短路套都套在8255侧。

四.实验说明在PA口与PB口组成的64点阵列上,把按键接在不同的点上,将得到不同的键码,本实验采用8×2的阵列,共可按16个键。

显示部分由8279控制,由7407驱动8位数码管显示。

五.实验程序框图主程序框图读键显示部分框图六.实验程序:D8255 EQU 8506H ;8255状态/数据口地址D8255A EQU 8500H ;8255 PA口地址D8255B EQU 8502H ;8255 PB口地址Z8279 EQU 8701H ;8279状态口地址D8279 EQU 8700H ;8279数据口地址DISPTR EQU 08H ;当前显示位置KEYVAL EQU 09H ;读到的键码ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL DELAY ;延时MOV DISPTR,#30H ;显示缓冲区头指针MOV DPTR,#D8255MOV A,#90H ;置8255状态;方式0,PB,PC口输出,PA口输入MOVX @DPTR,AMOV DPTR,#Z8279 ;置8279命令字MOV A,#0D3HMOVX @DPTR,A ;清LED显示MOV A,#00HMOVX @DPTR,AMOV A,#38HMOVX @DPTR,AMOV A,#0D1HKB_DIS:LCALL RD_KB ;读键盘MOV A,#0FFHCJNE A,KEYVAL,DISBUF ;判读到键SJMP KB_DIS ;没有则继续读键DISBUF:LCALL DISP ;把键移入显存LCALL DELAY ;延时消抖LCALL DELAYSJMP KB_DISDISP: ;显存依次前移MOV R1,#31H ;在最后加入新键值MOVE:MOV A,@R1DEC R1MOV @R1,AINC R1INC R1CJNE R1,#38H,MOVEMOV 37H,KEYVALMOV KEYVAL,#0FFHMOV DPTR,#Z8279MOV A,#90HMOVX @DPTR,AMOV R0,#08HMOV R1,#30HMOV DPTR,#D8279LP: MOV A,@R1MOVX @DPTR,AINC R1DJNZ R0,LPRETRD_KB: ;键盘扫描MOV A,#02H ;扫描第一行MOV DPTR,#D8255BMOVX @DPTR,AMOV DPTR,#D8255AMOVX A,@DPTRMOV R1,#00HCJNE A,#0FFH,KEYCAL ;判键是否按下MOV A,#01H ;扫描第二行MOV DPTR,#D8255BMOVX @DPTR,AMOV DPTR,#D8255AMOVX A,@DPTRMOV R1,#08HCJNE A,#0FFH,KEYCALSJMP NOKEY ;无键按下KEYCAL: ;计算键码MOV R0,#08HSHIFT:RRC AJNC CALCINC R1DJNZ R0,SHIFTCALC: ;换算显示码MOV DPTR,#DL_DATMOV A,R1MOVC A,@A+DPTRMOV KEYVAL,ARETNOKEY: MOV KEYVAL,#0FFH ;返回无键标志RETDELAY: MOV R0,#0H ;延时子程序DELAY1: MOV R1,#0HDJNZ R1,$DJNZ R0,DELAY1RETDL_DAT: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,FEND实验十8279显示实验一.实验要求编制程序,利用8279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。

按键状态扫描显示电路的设计与制作

按键状态扫描显示电路的设计与制作

课程设计题目按键状态扫描显示电路的设计与制作学院自动化学院专业电气工程及其自动化班级电气0903姓名李闯指导教师虞丽娟2011 年7 月 4 日课程设计任务书学生姓名:李闯专业班级:电气0903 指导教师:虞丽娟工作单位:武汉理工大学题目: 按键状态扫描显示电路的设计与制作初始条件:(1)以0~9十个数符标识十个按键(2)当有键按下时,显示其标识符,并保持显示符直到新的按键作用(3)如果多个按键同时作用,只响应最先作用的按键要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)设计任务及要求(2)方案比较及认证(3)系统框图,原理说明(4)硬件原理,完整电路图,采用器件的功能说明(5)调试记录及结果分析(6)对成果的评价及改进方法(7)总结(收获及体会)(8)参考资料(9)附录:器件表,芯片资料时间安排:6月27日~6月30日:明确课题,收集资料,方案确定,仿真7月1日~7月4日:硬件电路制作与调试7月5日~7月8日;报告撰写,交设计报告,答辩指导教师签名:年月日系主任(或责任教师)签名:年月摘要 (1)按键状态扫描显示电路的设计与制作 (2)一.原件结构设计和方案选择 (2)1.原理结构图 (2)2.原理结构图构造说明 (2)3.单元电路的设计 (2)3.1开关控制及电源实现的电路 (3)3.2译码器,锁存器及连接控制电路 (3)3.3 译码显示器 (6)4.整电路的电路图 (7)5.方案二完整电路图 (8)6.方案比较及选择 (9)二.实物连接与调试 (9)1.实物 (9)2.连接与调试 (9)3.调试遇到的问题 (9)4.调试后拆线 (10)总结 (11)参考文献 (12)附录1 (13)附录2 (15)本科生课程设计成绩评定表 (16)基于数字电子技术D触发器和译码器设计出来的按键状态扫描电路,广泛应用于生活中的各个角落,比如说计算器,按键显示灯,就连电脑当中对按键的记录也是由这种技术发展而来的。

按键阵列扫描及点阵显示器控制电路设计改版

按键阵列扫描及点阵显示器控制电路设计改版

按键阵列扫描及点阵显示器控制电路设计改版第一章设计指标 (2)1.1设计指标 (2)1.2 硬件环境 (2)第二章系统概述.......................................... .. (2)2.1设计思想.................................................................... (2)2.2可行性论证 (4)2.3各功能的构成 (4)2.4总体工作过程 (5)第三章单元电路设计与分析 (6)3.1各单元电路的选择 (6)3.2设计及工作原理分析 (7)第四章电路的组构与调试 (16)4.1 遇到的要紧问题 (16)4.2 现象记录及原因分析.................................................... (16)4.3 解决措施及效果 (16)4.4 功能的测试方法、步骤、设备、记录的数据 (16)第五章结束语 (17)5.1对设计题目的结论性意见及进一步改进的意向说明.............. (17)5.2 总结设计的收获与体会................................................. (18)附图(电路总图) (18)参考文献 (20)第一章、设计指标1.1设计指标设计一个按键阵列推断电路,使用发光二极管点阵显示器以12个显示符标识12个按键。

当有健按下时,显示其标识符,并保持显示符直到新的按键作用。

假如多个按键同时闭合,只响应最先作用的按键。

1.2硬件环境设计对象的实现环境与使用的FPGA开发装置有关,本节以LP—2900为例,说明使用按键阵列扫描与点阵显示器操纵电路的设计原理与实现方法。

LP—2900开发装置上有“0~9”、“*”、“#”共12个键构成的3行4列按键阵列与8行8列64个点的点阵显示器。

FPGA通过端口RK1~RK3读取键阵列的行线状态X0~X2;通过3—8线译码器操纵键阵列的列线Y0~Y3。

按键与显示电路的设计与实现(全面)

按键与显示电路的设计与实现(全面)
学习情境4
按键与显示电路的设计与实现
2021/5/23
1
4.1 学习目标:
(1)掌握单片机外围显示和按键电路的设计 和制作; (2)掌握按键和显示电路的C51程序的编写 和调试。
2021/5/23
2
4.2 任务分析:
任务名称:
在独立电路板上设计制作单片机单片机 的按键和显示电路,满足: (1)在万用板上制作单片机的按键和显 示电路,使该电路具有和单片机最小系 统的接口,电路的结构简单,成本低廉; (2)编写基本控制程序,下载调试,使 该电路实现基本的按键输入和字符显示 功能。
2021/5/23
3
4.2 任务分析:
任务背景: 按键和显示是各种电子设备最基本的人 机交互界面,良好的按键和显示界面是电 子产品美观易用的基础。本次工作任务是 为一小型温度测控系统设计制作按键和显 示电路。
2021/5/23
4
4.2 任务分析:
任务要求: (1)学习单片机按键和显示电路的原理 和电路设计方法,合理选择按键和显示电 路的控制芯片和电路结构; (2)完成全电路理论设计、绘制电路图, 自制电路板、焊接调试; (3)撰写设计报告、调试总结报告及使 用说明书。
2021/5/23
27Biblioteka 4.4 任务实施:1.仿真 2.焊接、调试 3.编写程序模块 4.整理制作报告
2021/5/23
28
部分资料从网络收集整 理而来,供大家参考,
感谢您的关注!
N位LED动态显示原理图
2021/5/23
12
问题: 根据显示电路的要求,应如何选用数 码管的显示控制方式?
2021/5/23
13
4.3.3 LED显示器与单片机接口:

键控编码显示电路的设计与制作

键控编码显示电路的设计与制作
本项目设计的键控编码显示电路,就是由常用的组合逻辑电路,编 码器、译码器和数码显示器等构成的能显示0-9等十个数码的应用电路 。
教学目的:
1.了解组合电路的的概念及特点; 熟悉组合电路的分析方法及设计 方法。
2.了解编码器的概念及编码器的分类。 3.理解优先编码器74LS148的功能及特点。 4.了解译码器的概念及分类。 5.了解数字显示电路的组成及数字显示器件的分类;熟悉七段字符 显示器的组成及特点,.熟悉七段显示译码器74LS48、4511的逻辑功能及 特点。 6.熟悉译码器74LS138的逻辑功能,掌握用74LS138实现逻辑函数 的方法。 7.了解数据选择器的概念,熟悉74LS151的逻辑功能;会用 74LS151实现逻辑函数。 8.熟练使用电路仿真软件Multisim,正确连接仿真电路并进行功能 检测。 9.能合理布局电路元器件并进行电路装配与调试。 10.电路常见故障排查。
3位二进制数码有8种取值组合,可以表示8个信号;
……
n位二进制代码有2n 种取值组合,可以表示2n个信号。
用n位二进制代码对2n个信号进行编码的电路称为二进制编码器。显
然,二进制编码器输入信号的个数N与输出变量的位数n之间满足N=2n
的关系。
N
n

位:常用的集成组合逻辑电路
2.2.1 编码器 a.优先编码器74LS148
二—十进制编码器功能示意图
2.2:常用的集成组合逻辑电路
2.2.1 编码器
2.编码器的分类
(2)二—十进制编码器 常用的二—十进制优先编码器有74LS147,它把I0~I9的十个状态(
数)分别编成十个BCD码。其中I9的优先权最高,I0的优先权最低。其功 能表如表所示。
74LS147优先编码器的输 入端和输出端都是低电平有 效,即当某一个输入端低电 平0时,4个输出端就以低电 平0的输出其对应的 8421BCD编码。当9个输入 全为1时,4个输入出也全为1 ,代表输入十进制数0的 8421BCD编码输出。

实验二动态扫描显示电路设计

实验二动态扫描显示电路设计

实验二动态扫描显示电路设计一、设计要求1、设计要求设计一个四位LED数码显示动态扫描控制电路,显示4位十进制数或4字母的单词,要求显示内容可以通过按键切换。

2、硬件环境LP-2900开发装置的LED数码管为共阴显示器,六个显示器的七个段控制a~g及小数点dp分别对应相连,各显示器的共阴极分别由一个3线-8线译码器74138的输出Y0~Y5控制。

译码器的3位输入码分别由FPGA的I/O端口DE3、DE2、DE1控制,如图1所示。

图1 LP-2900开发装置FPGA与LED数码显示器的电路连接3线-8线译码器的3位输入码DE3、DE2、DE1为“000”~“101”时,输出Y0~Y5中有一个为0,FPGA的a~g端口将控制共阴极为0的数码管显示。

比如,当DE3、DE2、DE1为“011”时,Y3=0,数码管C4显示。

二、设计原理分析多位七段显示器的控制分为静态和动态扫描两种方法。

静态驱动方法是将所有显示器的公共端都接有效电平,各位显示器的段控制信号互不相干,分别控制。

这样,n位显示器需要7×n个控制信号(不包括小数点),即需要FPGA的56个I/O口对其进行控制。

动态扫描方法是将所有显示器的各个段控制端(a、b…、g、dp)一一对应连接,而各显示器的公共端COM由位扫描信号分别控制。

这样,n位显示器只需要8+n个控制信号(包括小数点)。

比如,LP-2900开发装置上B区的6个共阴显示器采用了动态扫描驱动方式,6个共阴端C1~C6由通过一个3线-8线译码器分时控制,电路原理如图1所示。

这样FPGA 只需要11个I/O口,其中8个控制段信号、3个输出二进制码(“000”~“101”)控制C1~C6。

1.动态显示扫描控制动态扫描驱动电路中所有的显示器由相同的段信号控制,公共端有效的显示器将显示相同的字符。

所以,要使各显示器显示不同的内容,必须控制它们的公共端分时轮流有效。

每个显示器只在其公共端为有效电平时根据段码信号显示相应的字符,公共端无效时灭显。

基于VHDL的键盘扫描及显示电路设计

基于VHDL的键盘扫描及显示电路设计

取消所有断点。

断点设置完毕后,按F5键或点击Debug下的GO,程序将执行到断点处停止,这时寄存器窗口中sec的值便是定时时间(10ms),如图16所示。

在μV2仿真环境下可以真实地模拟单片机定时器的工作状态。

6.单片机串行通信的模拟仿真Keil C51的μV2调试器提供了对单片机串行通信的模拟仿真,当源程序编译通过后,鼠标单击菜单栏的Debug/Start DebugSession,进入模拟调试环境并选择Peripherals/Serial,打开Serial串口参数窗口,如图17所示,其中Mode栏里表示单片机的通信方式,“8 bit var ,baudrate”表示当前的通信格式是8位,速率可变。

SBUF栏内的数值即为单片机发送的数据,Baudrate栏中的Audrate框里的数值为通信速率,IRQ代表中断标志TI或RI。

当然你也可以在命令栏中键入“SBUF”来随时观察SBUF缓存器的数据,如图18。

一般情况下在命令栏中键入“SBUF”看到的是单片机的发送数据,如果要给单片机发送数据,并观察数据运行结果,可采用“SIN”指令。

假设发到单片机的数据是01H,如果你想模拟这个过程,可以在命令栏中键入“SIN=0X01”,这时单片机通过串口收到的数据即是“01H”,然后可以在μV2环境下采图18图17用单步或其它方式调试程序,可一目了然地看到单片机串口参数的变化过程。

在μV2下通过这种调试程序的方法可以准确地模拟通信口的发送和接收数据的全过程。

总之, Keil公司的μVision2内嵌的单片机软件仿真器可以真实地模拟单片机的工作过程及状态,在许多场合下甚至可以不使用硬件仿真器,仅仅通过在μV2下的模拟调试便可以完成一个中小规模的单片机项目的调试工作,提高了单片机的开发效率。

◆VHDL语言是一种标准硬件描述语言,本文介绍的是用VHDL来对键盘扫描电路进行描述的设计。

矩阵式键盘是一种常见的输入装置,在日常生活中,矩阵式键盘在计算机、电话、手机、微波炉等各式电子产品上已经被广泛应用。

按键状态扫描显示电路的设计与制作

按键状态扫描显示电路的设计与制作

题目按键状态扫描显示电路的设计与制作题目: 按键状态扫描显示电路的设计与制作初始条件:(1)以0~9十个数符标识十个按键(2)当有键按下时,显示其标识符,并保持显示符直到新的按键作用(3)如果多个按键同时作用,只响应最先作用的按键要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)设计任务及要求(2)方案比较及认证(3)系统框图,原理说明(4)硬件原理,完整电路图,采用器件的功能说明(5)调试记录及结果分析(6)改进方法(7)总结(收获及体会)(8)参考资料(9)附录:器件表,芯片资料时间安排:6月25日~6月28日:明确课题,收集资料,方案确定7月28日~7月2日:整体设计,硬件电路调试7月2日~7月6日;报告撰写,交设计报告,答辩指导教师签名:2012年 7月日目录摘要 (1)1 设计内容及方案选择 (2)1.1设计内容及其设计要求. (2)1.2方案选择 (2)1.2.1 按键的标识及对应的标识符显示方案的选择 (2)1.2.2 信号的锁存及按键优先作用方案的选择 (2)2 电路的设计及器件的选择 (3)2.1电路的原理 (3)2.1.1 电路的原理框图及其说明 (3)2.1.2 单元电路的说明 (3)2.1.3 完整的电路图 (4)2.2开关电路的设计和器件的选择 (5)2.2.1开关电路的设计 (5)2.2.2各主要芯片的功能说明 (5)2.2.3 电路的总体说明 (10)2.3方案二完整电路图及其比较选择 (11)3 硬件电路的设计及其制作与调试 (11)3.1仿真使用的系统 (12)3.2 制作与调试的方法和技巧 (12)3.3测试的数据分析 (12)3.4 制作与调试中出现的故障、原因及排除方法 (12)结束语 (13)参考文献 (14)附录按键状态扫描显示电路所用元件 (15)本科生课程设计成绩评定表 (16)摘要此课程设计是基于键盘按键功能的模拟,需要运用现有所学的数字电子技术的知识,主要实现以下设计的功能 1.按键显示:按下一个按钮输出显示对应的数字,十个按钮分别用0~9显示 2.按键保持:按键后的显示一直保持到新的按键作用 3.优先按键:如果多个按键同时作用,只响应最先作用的按键。

微机原理键盘扫描及显示设计实验

微机原理键盘扫描及显示设计实验

微机原理键盘扫描及显⽰设计实验⼀、实验名称:键盘扫描及显⽰设计实验⼆、实验⽬的1.学习按键扫描的原理及电路接法;2.掌握利⽤8255完成按键扫描及显⽰。

三、实验内容及步骤1. 实验内容编写程序完成按键扫描功能,并将读到的按键值依次显⽰在数码管上。

实验机的按键及显⽰模块电路如图1所⽰。

按图2连线。

图1 键盘及显⽰电路图2 实验连线2. 实验步骤(1)按图1接线;(2)键⼊:check命令,记录分配的I/O空间;(3)利⽤查出的地址编写程序,然后编译链接;(4)运⾏程序,观察数码管显⽰是否正确。

四、流程图五、源程序;Keyscan.asm;键盘扫描及数码管显⽰实验;***************根据CHECK配置信息修改下列符号值*******************IOY0 EQU 9800H ;⽚选IOY0对应的端⼝始地址;*****************************************************************MY8255_A EQU IOY0+00H*4 ;8255的A⼝地址MY8255_B EQU IOY0+01H*4 ;8255的B⼝地址MY8255_C EQU IOY0+02H*4 ;8255的C⼝地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)DATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS ;键值表,0~F对应的7段数码管的段位值CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,3000H ;建⽴缓冲区,存放要显⽰的键值MOV AL,00H ;先初始化键值为0MOV [SI],ALMOV [SI+1],ALMOV [SI+2],ALMOV [SI+3],ALMOV DI,3003HMOV DX,MY8255_MODE ;初始化8255⼯作⽅式MOV AL,81H ;⽅式0,A⼝、B⼝输出,C⼝低4位输⼊OUT DX,ALBEGIN:CALL DIS ;显⽰刷新CALL CLEAR ;清屏CALL CCSCAN ;扫描按键JNZ GETKEY1 ;有键按下则跳置GETKEY1MOV AH,1 ;判断PC键盘是否有按键按下INT 16HJZ BEGIN ;⽆按键则跳回继续循环,有则退出QUIT:MOV AX,4C00H ;返回到DOSINT 21HGETKEY1:CALL DIS ;显⽰刷新CALL DALLYCALL DALLYCALL CCSCAN ;再次扫描按键JNZ GETKEY2 ;有键按下则跳置GETKEY2GETKEY2:MOV CH,0FEHMOV CL,00H ;设置当前检测的是第⼏列COLUM:MOV AL,CH ;选取⼀列,将X1~X4中⼀个置0 MOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_C ;读Y1~Y4,⽤于判断是哪⼀⾏按键闭合IN AL,DXL1:TEST AL,01H ;是否为第1⾏JNZ L2 ;不是则继续判断MOV AL,00H ;设置第1⾏第1列的对应的键值JMP KCODEL2:TEST AL,02H ;是否为第2⾏JNZ L3 ;不是则继续判断MOV AL,04H ;设置第2⾏第1列的对应的键值JMP KCODEL3:TEST AL,04H ;是否为第3⾏JNZ L4 ;不是则继续判断MOV AL,08H ;设置第3⾏第1列的对应的键值JMP KCODEL4:TEST AL,08H ;是否为第4⾏JNZ NEXT ;不是则继续判断MOV AL,0CH ;设置第4⾏第1列的对应的键值KCODE:ADD AL,CL ;将第1列的值加上当前列数,确定按键值CALL PUTBUF ;保存按键值PUSH AXKON:CALL DIS ;显⽰刷新CALL CLEAR ;清屏CALL CCSCAN ;扫描按键,判断按键是否弹起JNZ KON ;未弹起则继续循环等待弹起POP AXNEXT:INC CL ;当前检测的列数递增MOV AL,CHTEST AL,08H ;检测是否扫描到第4列JZ KERR ;是则跳回到开始处ROL AL,1 ;没检测到第4列则准备检测下⼀列MOV CH,ALKERR:JMP BEGINCCSCAN PROC NEAR ;扫描是否有按键闭合⼦程序MOV AL,00HMOV DX,MY8255_A ;将4列全选通,X1~X4置0 OUT DX,ALMOV DX,MY8255_CIN AL,DX ;读Y1~Y4NOT ALAND AL,0FH ;取出Y1~Y4的反值RETCCSCAN ENDPCLEAR PROC NEAR ;清除数码管显⽰⼦程序MOV DX,MY8255_B ;段位置0即可清除数码管显⽰MOV AL,00HOUT DX,ALRETCLEAR ENDPDIS PROC NEAR ;显⽰键值⼦程序PUSH AX ;以缓冲区存放的键值为键值表偏移找到键值并显⽰MOV SI,3000HMOV DL,0F7HMOV AL,DLAGAIN:PUSH DXMOV DX,MY8255_AOUT DX,AL ;设置X1~X4,选通⼀个数码管MOV AL,[SI] ;取出缓冲区中存放键值MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AXMOV AL,[BX] ;将键值作为偏移和键值基地址相加得到相应的键值 MOV DX,MY8255_B OUT DX,AL ;写⼊数码管A~DpCALL DALLYINC SI ;取下⼀个键值POP DXTEST AL,01H ;判断是否显⽰完?JZ OUT1 ;显⽰完,返回ROR AL,1MOV DL,ALJMP AGAIN ;未显⽰完,跳回继续OUT1:POP AXRETDIS ENDPPUTBUF PROC NEAR ;保存键值⼦程序MOV SI,DIMOV [SI],ALDEC DICMP DI,2FFFHJNZ GOBACKMOV DI,3003HGOBACK: RETPUTBUF ENDPDALLY PROC NEAR ;软件延时⼦程序PUSH CXMOV CX,00FFHD1: MOV AX,00FFHD2: DEC AXJNZ D2LOOP D1POP CXRETDALLY ENDPCODE ENDSEND START六、体会和感想通过这次的实验我了解到⾃⼰还有很多的不⾜,⽐如做实验的速度很慢,效率很低,思维不集中导致最后⽼师验收的时候没有来的及交,对书本的了解不是很透彻,也因此我决定下次实验的时候⼀定要好好地去思考,尽量在课外把实验看懂!。

ZLG72128硬件电路设计之按键扫描电路

ZLG72128硬件电路设计之按键扫描电路

ZLG72128硬件电路设计之按键扫描电路摘要:刚接触单片机时,为了实现稳定的按键检测,往往需要进行按键消抖处理,按键数量较多时还得考虑采用矩阵连接方式进行列扫描检测,软件操作尽显复杂之势。

如今立功科技推出的ZLG72128专用芯片帮你轻松实现。

1.ZLG72128简介:ZLG72128是广州立功科技股份有限公司自行设计的数码管显示驱动及键盘扫描管理芯片。

一片ZLG72128能够直接驱动12位共阴式数码管(或96只独立的LED),同时还可以扫描管理多达32只按键。

其中有8只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt键一样。

另外ZLG72128内部还设置有连击计数器,能够使某键按下后不松手而连续有效。

通信采用I²C总线接口,与微控制器的接口仅需两根信号线。

该芯片为工业级芯片,抗干扰能力强,在工业测控中已有大量应用。

ZLG72128对外采用I2C总线接口通信,通信简单便于控制;由于I2C采用开漏输出结构,所以使用时需接上拉电阻,一般通信速率越高,为保证通信波形的正确性,其上拉电阻也要随之减小,I2C通信速率不要大于400KHz,上拉电阻的典型值为4.7KΩ,过小会增加功耗。

其电路设计极其简单,简要电路框图如图1所示:图1 电路设计框图2.ZLG72128按键电路:如图2所示,ZLG72128的32只按键电路极为简单,COM8~COM11引脚为按键的行接口;COM0~COM7为按键的列接口,如此构成4行8列的32只按键扫描电路,其中COM11行上的8只按键为功能键,其余24只按键为普通键。

在键盘电路与ZLG72128芯片引脚之间需要连接一个电阻,其典型值是10KΩ。

当然用户也可以根据自己的按键数量需求,进行按行或按列自行裁剪,以满足系统的最优设计需求。

图2 按键电路3.ZLG72128按键识别功能介绍:ZLG72128内置按键消抖处理,可管理高达32只按键,当有按键按下时会有中断信号INT产生,主机接到中断信号后只需读取对应的寄存器即可得知是哪一只按键按下,程序操作极为简单,再也不需要主机主动进行消抖处理或主动轮询检测,大大减小了主机MCU的资源消耗。

单片机键盘显示接口电路设计

单片机键盘显示接口电路设计

单片机键盘显示接口电路设计设计单片机键盘显示接口电路,需要考虑到键盘输入与显示输出两个方面。

以下是一个简单的设计示例,供参考:键盘通常采用矩阵键盘连接电路的方式,通过扫描矩阵的方式读取键盘输入信息。

以下是矩阵键盘接口电路的设计流程:1.确定键盘的规格和类型:键盘一般有正方形、矩形、圆形等几种形状,需要根据键盘的规格和类型选择适合的扫描方式。

2.确定键盘的逻辑矩阵大小:根据键盘的布局和规格,确定键盘的逻辑矩阵的行和列数,例如4行4列。

3.确定键盘的连接方式:键盘的连接方式一般有行列扫描、列行扫描、行列+列行扫描等几种方式,需要根据键盘的输出信号特点和单片机的输入要求进行适当的选择。

4.设计按键输入的译码电路:将键盘的输出信号通过译码电路解码成易于读取的二进制数,以便单片机的输入端口读取。

显示输出接口电路设计一般有两种方式:数码管和液晶显示。

1.数码管显示电路设计:数码管是通过控制各个数码管的段选和位选,实现数字或字符的显示。

以下是数码管显示电路的设计流程:a.确定显示的数字或字符类型:根据设计需求,确定要显示的数字或字符类型,例如整数、小数、字母等。

b.确定数码管的位数和类型:根据显示需求,确定数码管的位数和类型,有共阴数码管和共阳数码管两种类型,需要选择适合的数码管。

c.设计数码管的译码电路:根据数码管的类型和位数,设计数码管的译码电路,将输入的数字或字符转换为控制各个数码管的段选和位选的电信号。

2.液晶显示电路设计:液晶显示器是一种常见的显示设备,通过控制液晶的极性来实现图形和字符的显示。

以下是液晶显示电路设计的流程:a.确定显示的内容类型:根据设计需求,确定要显示的内容,例如字符、图像等。

b.选择适合的液晶显示器:根据显示的内容和要求,选择适合的液晶显示器,有字符型液晶显示器和图形型液晶显示器两种类型。

c.设计液晶的驱动电路:根据液晶显示器的类型和特性,设计液晶的驱动电路,将输入的数字或字符转换为控制液晶的电信号。

基于单片机技术的按键扫描电路分析

基于单片机技术的按键扫描电路分析

四、实验验证
为了验证本次演示所介绍的基于单片机技术的按键扫描电路分析的正确性, 我们设计了一个简单的实验:通过单片机控制一个4×4的按键矩阵,实现8个按 键的扫描和识别。实验结果表明,该方法可以有效地实现对多个按键的扫描和识 别。
五、总结
本次演示详细介绍了基于单片机技术的按键扫描电路的基本概念、电路组成、 电路原理、电路板设计以及软件设计等方面的内容。通过实验验证,该方法可以 有效地实现对多个按键的扫描和识别。未来可以进一步研究如何提高按键扫描电 路的性能和稳定性,以及在实际应用中的优化问题。
3、输出控制:经过按键处理后,单片机根据预设的程序对外部设备进行控 制。例如,当按下某个按键时,单片机可以控制一个LED灯的亮灭。
二、单片机按键模块的设计方法
下面以8051单片机为例,介绍一种常见的单片机按键模块设计方法。
1、硬件设计:8051单片机具有 4个并行输入输出口(P0、P1、 P2、P3)
(1)按键抖动:按键抖动是由于按键过程中电压波动引起的现象。为了消 除按键抖动,可以在程序中加入去抖动算法,例如延时检测、两次确认等。
(2)连键:连键是指多个按键同时按下或相互连通的现象。为了避免连键 现象,可以在程序设计时增加防连键处理,例如为每个按键设置唯一的标识符, 同时按下多个按键时只识别其中的一个。
参考内容
在现代电子设备中,按键模块是一种常见的人机交互方式。通过按键,用户 可以向电子设备发送指令,控制设备的运行。单片机作为嵌入式系统的重要分支, 具有体积小、价格低、可靠性高等优点,因此在按键模块设计中具有广泛的应用。
一、单片机按键模块的基本原理
单片机按键模块的工作原理主要包括三个步骤:按键检测、按键处理和输出 控制。
if(KEY != key1) //如果检测到按键状态发生变化 key1 = KEY; //更新输出位状态

键盘扫描显示实验

键盘扫描显示实验

实验二键盘扫描显示实验1、实验目的:(1)掌握键盘和显示器的接口方法和编程方法。

(2)掌握键盘扫描和LED八段码显示器的工作原理。

2、实验要求:在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。

实验程序可分成三个模块。

1、键盘输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。

2、显示模块:将显示单元的内容在LED显示器上动态显示。

3、主程序:调用键盘输入模块和显示模块。

3、实验电路图:LED1LED2LED3LED4LED5LED64、实验器材:(1)超想-3000TB综合实验仪 1 台(2)超想3000仿真器 1 台(3)计算机 1 台5、实验连线:无6、实验说明:本实验仪提供了一个6×4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。

这样就可以通过输出的列码和读取的行码来判断按下的是什么键.。

在判断有键按下后,要有一定的延时,防止键盘抖动。

列扫描码还可以分时用作LED的位选通信号。

7、程序框图8、实验程序CCON EQU 0E100H ;8155控制字地址OUTBIT EQU 0E101H ;LED显示位控制地址PACON EQU 0E101H ;PA口,键盘列输出CLK164 EQU 0E102H ;164时钟控制地址DAT164 EQU 0E102H ;164数据控制地址IN EQU 0E103H ;键盘读入口LED1 EQU 08H ;6个LED显示码的存放地址LED2 EQU 09H ;LED3 EQU 0AH ;LED4 EQU 0BH ;LED5 EQU 0CH ;LED6 EQU 0DH ;KEYLIST EQU 0EH ;按下键盘的列值KEYTEMP EQU 10H ;得到键盘的扫描值ORG 0000HLJMP STARWAIT: ;循环程序LCALL SHOW ; 调用LED显示子程序LCALL SCANKEY ;调用按键扫描程序...MOV A , KEYTEMPJZ WAIT ;判断是否有按键按下,有的话继续,否则;返回继续等待LCALL GETKEY ;SJMP WAIT ;循环RETSHOW: ;LED显示子程序MOV R2 , #00100000B ;从最左边的LED开始显示MOV B , #06H ; 6个LEDMOV R1 , #LED1 ;取得第一位LED显示码地址SHOWLED: ;显示6个LED的循环程序CLR A ;熄灭所有LED管MOV DPTR ,#OUTBITMOVX @DPTR , APUSH BMOV B , #8 ;B用来计数,8表示8段LEDMOV A , @R1 ;取得第一个显示码MOV R0, AINC R1 ;指向下一个显示码SHOWBIT: ;给8段LED赋值的循环程序MOV A , R0 ;取出显示码的每一位,从高位开始RLC AMOV R0 , A ;MOV ACC.0 , CCLR ACC.1 ;置0 做脉冲用MOV DPTR , #DAT164MOVX @DPTR , A ;将显示码的每一位送入164中MOV DPTR , #CLK164SETB ACC.1 ;置1 做脉冲用MOVX @DPTR , ACLR ACC.1 ;置0 做脉冲用MOVX @DPTR , ADJNZ B , SHOWBIT ;判断8位显示码是否都送入164中POP BMOV A , R2MOV DPTR ,#OUTBIT ;显示该位LEDMOVX @DPTR , A ;CALL DELAYRR A ;指向下一位LEDMOV R2 , ADJNZ B , SHOWLED ;判断6个LED是否都显示完毕RETSCANKEY: ;键盘扫描子程序,判断是否有按键按下MOV DPTR , #PACONCLR AMOVX @DPTR , AMOV DPTR , #INMOVX A , @DPTR ;获取扫描结果CPL AANL A , #0FHMOV KEYTEMP , A ;扫描结果放入KEYTEMP中,KEYTEMP;为0时候表示没有按键按下RETGETKEY: ;获取键盘显示码;思路:先获取按键的行值和列值,然后根据该按键的行和列的位置到KEYMAP 表中去查询该按键的字面值,最后根据该按键的字面值到LEDMAP表中得到该按键的显示码,然后将该显示码送到;LED6中...MOV KEYLIST , #0 ;保存按键的列值MOV B , #06H ;计数,6表示键盘有6列MOV R0 , #11111110B ;从键盘的最左边开始扫描GETKEY0:MOV DPTR , #PACON ;扫描键盘的每一列MOV A , R0MOVX @DPTR , AMOV DPTR , #IN ;获取键盘扫描结果MOVX A , @DPTRCPL AANL A , #0FHMOV KEYTEMP , AJNZ GETKEY1 ;判断该列是否有有按键按下MOV A ,R0;RL AMOV R0 , AINC KEYLIST ;列值+1DJNZ B , GETKEY0 ;判断键盘的6列是否都扫描完毕RETGETKEY1:MOV A , KEYTEMP ;获取扫描结果JB ACC.3 , LINE0 ;第0行JB ACC.2 , LINE1 ;第1行JB ACC.1 , LINE2 ;第2行JB ACC.0 , LINE3 ;第3行LINE0:MOV A , KEYLIST ;按键的列值ADD A ,#0 ;键盘为4*6格式,所以一行需要+6 ;因为这是第0行所以+0MOV DPTR , #KEYMAPMOVC A , @A+DPTR ;获取按键的字面值ANL A , #0FHMOV DPTR , #LEDMAPMOVC A , @A+DPTR ;获取按键的显示码MOV LED6 , A ;将显示码送入LED6中LJMP GETKEYENDLINE1: ;同上....MOV A , KEYLISTADD A , #6 ;MOV DPTR ,#KEYMAPMOVC A , @A+DPTRANL A , #0FHMOV DPTR , #LEDMAPMOVC A , @A+DPTRMOV LED6 , ALJMP GETKEYENDLINE2: ;同上....MOV A , KEYLISTADD A , #6ADD A , #6MOV DPTR , #KEYMAPMOVC A , @A+DPTRANL A , #0FHMOV DPTR , #LEDMAPMOVC A , @A+DPTRMOV LED6 , ALJMP GETKEYENDLINE3: ;同上....MOV A , KEYLISTADD A , #6ADD A , #6ADD A , #6MOV DPTR , #KEYMAPMOVC A , @A+DPTRANL A , #0FHMOV DPTR , #LEDMAPMOVC A , @A+DPTRMOV LED6 , ALJMP GETKEYENDGETKEYEND: ;结束LCALL SCANKEY ;调用键盘扫描子程序MOV A , KEYTEMPJNZ GETKEYEND ;等到按键松开RETLEDMAP: ; 八段管显示码DB 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hDB 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKEYMAP: ; 键盘对应的数字DB 07H,08H,09H,0AH,10H,00HDB 04H,05H,06H,0BH,11H,12HDB 01H,02H,03H,0CH,13H,14HDB 00H,0FH,0EH,0DH,15H,16HDELAY: MOV 20H , #0FH ;延时子程序DELAY1:DJNZ 20H , DELAY1RETSTAR: ;程序开始MOV SP,#16HMOV DPTR , #CCON; 设计8155的工作方式PA和PB输出,PC输入MOV A , #03HMOVX @DPTR,AMOV LED1 , #0FFH ;给6个LED管赋初值8.8.8.8 (后两位为空)MOV LED2 , #0FFHMOV LED3 , #0FFHMOV LED4 , #0FFHMOV LED5 , #00HMOV LED6 , #00HLJMP WAIT ;转到等待循环子程序END9、思考问题1、如何能够让键盘输入两位数字。

实验四键盘扫描及显示设计实验报告

实验四键盘扫描及显示设计实验报告

实验四键盘扫描及显⽰设计实验报告实验四键盘扫描及显⽰设计实验报告⼀、实验要求1. 复习⾏列矩阵式键盘的⼯作原理及编程⽅法。

2. 复习七段数码管的显⽰原理。

3. 复习单⽚机控制数码管显⽰的⽅法。

⼆、实验设备1.PC 机⼀台2.TD-NMC+教学实验系统三、实验⽬的1. 进⼀步熟悉单⽚机仿真实验软件 Keil C51 调试硬件的⽅法。

2. 了解⾏列矩阵式键盘扫描与数码管显⽰的基本原理。

3. 熟悉获取⾏列矩阵式键盘按键值的算法。

4. 掌握数码管显⽰的编码⽅法。

5. 掌握数码管动态显⽰的编程⽅法。

四、实验内容根据TD-NMC+实验平台的单元电路,构建⼀个硬件系统,并编写实验程序实现如下功能:1.扫描键盘输⼊,并将扫描结果送数码管显⽰。

2.键盘采⽤ 4×4 键盘,每个数码管显⽰值可为 0~F 共 16 个数。

实验具体内容如下:将键盘进⾏编号,记作 0~F,当按下其中⼀个按键时,将该按键对应的编号在⼀个数码管上显⽰出来,当再按下⼀个按键时,便将这个按键的编号在下⼀个数码管上显⽰出来,数码管上可以显⽰最近 4 次按下的按键编号。

五、实验单元电路及连线矩阵键盘及数码管显⽰单元图1 键盘及数码管单元电路实验连线图2实验连线图六、实验说明1. 由于机械触点的弹性作⽤,⼀个按键开关在闭合时不会马上稳定地接通,在断开时也不会⼀下⼦断开。

因⽽在闭合及断开的瞬间均伴随有⼀连串的抖动。

抖动时间的长短由按键的机械特性决定,⼀般为 5~10ms。

这是⼀个很重要的时间参数,在很多场合都要⽤到。

键抖动会引起⼀次按键被误读多次。

为了确保 CPU 对键的⼀次闭合仅做⼀次处理,必须去除键抖动。

在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。

按键的抖动,可⽤硬件或软件两种⽅法消除。

2. 为了减少键盘与单⽚机接⼝时所占⽤ I/O 线的数⽬,在键数较多时,通常都将键盘排列成⾏列矩阵形式。

3. 从数码管显⽰⽅式看,数码管分为静态显⽰和动态显⽰两种⽅式。

单片机按键扫描实验报告

单片机按键扫描实验报告

单片机按键扫描实验报告键盘扫描一.实验目的(1)掌握矩阵键盘接口电路和键盘扫描编程方法。

(2)掌握按键值处理与显示电路设计。

二.实验任务(1)设计 4_4 键盘,编写各个键的特征码和对应的键值(0~F);(2)编程扫描按键,将按键对应的数字值使用数码管显示出来。

三.实验电路及连线方法1.采用动态显示连线方法:电路由2 片74LS573,1 个六字一体的共阴数码管组成。

由U15 输出段选码,U16 做位选码,与单片机的采用I/O 口连接方式,短路片J22 连接P2.0,J23 连接P2.3,做输出信号锁存。

(实际电路连接是 d7-d6-d5-d4-d3-d2-d1-d0 h-c-d-e-g-b-a-f)。

PW12 是电源端。

2.键盘电路连线方法:电路由16 个按键组成,用P1 口扩展4 _____4 行列式键盘。

J20 是键盘连接端,连接到P1 口。

J21 是行列键盘、独立键盘选择端,当J21 的短路片连接2-3 脚时,构成4 _____4 行列式键盘;当J21 的短路片连接2-1 脚时,可形成3 _____4 行列式键盘,4 个独立式按键S4、S8、S12、S16,这4 个独立按键分别连接P1.4~P1.7;其他12 个键3 _____4 行列式键盘。

PW15 是电源端。

四.编程思路1.采用反转法识别按键的闭合。

2.采用动态显示将键值显示出来。

五.算法流程图六.资源分配 1.用 P1 口进行查找按键 2.用 R3 做键值指针 3.用 R1 做动态显示为选码指针。

4.R5 为延时指针。

七.程序设计ORG0000H KPIN: MOVP1,#0F0HMOVA,P1ANLA,#0F0HMOVB,AMOVP1,#0FHMOVA,P1ANLA,#0FHORLA,BCJNEA,#0FFH,KPIN1 AJMPE_IT KPIN1: MOV B,AMOVDPTR,#TABKP MOVR3,#0 KPIN2: MOV A,R3MOVCA,@A+DPTRCJNEA,B,KPIN3MOVA,R3LOOP: MOVR1,#0FEH;键盘动态显示 LOOP1: MOV A,R3ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTRCLRP2.0CLRP2.1MOVP0,ASETBP2.0NOPCLRP2.0 LOOP2: MOVA,R1;位选码MOVP0,ASETBP2.1MOVR5,#250 LOOP3: DJNZR5,LOOP3CLRP2.1SJMPLOOPKPIN3: INCR3CJNEA,#0FFH,KPIN2 E_IT: RET TABKP: DB0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBHDB0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,67H,0FFH TAB: DB 77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FHDB79H,33H,7CH,3BH,1BHEND 八.调试出现的问题及解决问题 1:程序正常运行,但按键显示出现乱码解决:动态显示笔形码错误,并改正。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 按键状态扫描显示电路的设计与制作初始条件:(1)以0~9十个数符标识十个按键(2)当有键按下时,显示其标识符,并保持显示符直到新的按键作用(3)如果多个按键同时作用,只响应最先作用的按键要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)设计任务及要求(2)方案比较及认证(3)系统框图,原理说明(4)硬件原理,完整电路图,采用器件的功能说明(5)调试记录及结果分析(6)对成果的评价及改进方法(7)总结(收获及体会)(8)参考资料(9)附录:器件表,芯片资料时间安排:6月27日~6月30日:明确课题,收集资料,方案确定,仿真7月1日~7月4日:硬件电路制作与调试7月5日~7月8日;报告撰写,交设计报告,答辩指导教师签名:年月日系主任(或责任教师)签名:年月目录摘要 (Ⅰ)1 任务及要求 (2)1.1 设计任务 (2)1.2 设计要求 (2)2 设计方案 (2)2.1 总体设计思想 (2)2.2 总体逻辑功能图 (2)2.3 设计方案的选择 (3)2.3.1 编码电路的选择 (3)2.3.2 触发电路的选择 (5)3 单元电路的功能说明 (6)3.1 单元电路的设计 (6)3.1.1 按键控制电路 (6)3.1.2 编码电路 (8)3.1.3 触发电路的设计 (9)3.1.4 逻辑反馈电路的设计 (10)3.1.5 译码显示电路的设计 (11)3.2 整体电路的工作原理 (15)4 利用Protues,Multisim仿真电路 (16)5 结束语 (18)参考文献 (19)附录 (20)摘要随着电子技术和计算机技术的飞速发展,电子线路的设计工作也日益显得重要。

经过人工设计,制作实验板,调试再修改的多次循环才定型的传统产品设计方法必然被计算机辅助设计所取代,因为这种费时费力又费资源的设计调试方法即增加了产品开发的成本和周期,又受到实验工作场地及仪器的限制。

因此,在EDA飞速发展的今天,EDA技术正慢慢领导着电子科技,同时慢慢进入到生活的各个方面。

本次按键状态扫描显示电路的设计与制作,就是一次理论知识与EDA技完美结合。

本次设计要求以0-9十个数符标识十个按键,当有按键按下时,显示其标识符,并保持显示符,并保持显示指导新的按键作用,如果多个按键同时作用,只响应最先作用的按键,有点类似于带数字的抢答器,不过加了个数码显示管。

关键词:EDA技术状态扫描数码显示按键状态扫描显示电路的设计与制作1 任务及要求1.1设计任务1)以0-9十个数符标识十个按键;2)当有键按下时,用数码显示管显示其标识数字,并保持到新的按键作用;3)如果多个按键同时作用,只响应最先作用的按键。

1.2设计要求本课程设计要求设计一个10按键数字状态扫描显示电路,以0-9标识十个按键,按下某一按键,数码显示管显示相应的数字。

2 设计方案2.1总体设计思想根据课程设计任务书要求,以及十个按键所对应的逻辑关系分析,得出设计及该电路大体需要按键控制电路、编码电路、触发电路、逻辑反馈电路、译码电路以及译码显示,其中译码电路和译码显示共同构成了译码显示电路。

其控制关系如图2-1所示。

图2-1总体方案图2.2总体逻辑功能图按照按键控制电路的运行状态与数码管的显示数字的分析,总结写出不同开关按下时,数码管的显示,以满足当有开关按下时,用数码显示管显示其标识数字,并保持到新的按键作用,并且多个按键同时作用,只响应最先作用的按键的任务要求。

其关系如下表1。

表1 开关和数码显示的关系2.3设计方案的选择在设计本电路时,一共考虑过两种方案。

这两种方案的不同点在于编码的方法不同,触发电路以及译码显示电路的芯片选择不同。

下面简单的介绍一下这两种方案。

2.3.1.编码电路的选择方案一:用十个按键和门电路组成的8421BCD码编码器此电路逻辑图如图2-2所示,增值表如表2所示,十个按键S0-S9分别对应十进制数0-9,编码输出为ABCD和GS。

对真值表和逻辑电路进行分析,可得知:1.该编码器为输入低电平有效;2.再按下S0-S9中任意一个键时,即输入信号中有一个为低电平是GS=1,表示信号输入,在本次设计中还可作为后续电路的反馈信号,只有S0-S9均为高电平时GS=0,图2-2 用十个按键和门电路组成的8421BCD码编码器表示有无信号输入,此时的输出代码0000为无效代码。

尽管用十个按键和门电路组成的8421BCD码编码器由以上诸多强大的功能,不过其门电路在实际中很难找到。

我也曾经想过用其他的门电路来代替图2-2中的五输入与非门但还是比较复杂让人望而却步。

这就是我不选此电路的一个重要原因。

表2 十个按键8421BCD码编码器真值表方案二:由74LS147和非门组成的十进制编码电路此方案中用一个74LS147代替了方案一中大量的门电路,让电路变得简化。

美中不足的是74LS147只有九个输入端,再加上74LS芯片后必须得加上四个非门,让我感觉很麻烦,这也让我一度放弃用这种编码电路。

后来,我发现可以用反馈电路中的一个开关代替“0”输入开关,弥补了它的不足,这一点将在后续的反馈电路中加以说明。

所以采用此方案。

2.3.2触发电路的选择方案一:由74LS373和反馈电路连接74LS373是一个八D锁存器。

我让其使能端与反馈电路相连接,使得有信号输入后,反馈使能,锁存信号,使得其他信号不能输入,实现如果多个按键同时作用,只响应最先作用的按键的作用。

理论分析的结果和仿真效果完全吻合。

但是,在实际制作中,我们的开关系统所用的开关是按键是的。

用这种方法,当开关由闭合到断开后,数码显示管显示的数字会归零,不符合“当有键按下时,用数码显示管显示其标识数字,并保持到新的按键作用”的功能。

另外,选用锁存器就是一个方向性的错误。

当我决定用按键开关时,就应该想到应该用触发器。

综合以上理由,不选方案一。

方案二:由74LS273与反馈电路连接74LS373是一个八D触发器,适合于这种用按键开关控制的电路。

按键开关每按一下都会产生相应的一个脉冲信号,进行反馈和触发。

方案二完全符合本题目的要求,所以选方案二方案一和方案二的总体电路图分别如图2-3,图2-4所示。

图2-3方案一的总体设计图(弃选)图2-4方案二的总体设计图(采用)3.单元电路的功能说明3.1单元电路的设计3.1.1 按键控制电路按键控制系统不仅仅是几个开关,图3-1就是一个典型错误。

图3-1 错误的开关连接图3-2正确的开关连接图3-1中没有加上拉电阻,当按键没有按下时,芯片输入管脚悬空,不利于电路功能的实现。

正确的按键电路应该是加上10k的上拉电阻,使得当按键都没有按下时,芯片输入为高电平。

否则,若按照图3-1的接法,没有一个按键按下时,芯片的输入有可能是高电平,也有可能是低电平,造成芯片输入混乱,对后面的逻辑电路造成重大的影响。

如图3-2所示,从上到下的按键分别表示1,2,3,4,5,6,7,8,9.。

.通过按键的闭合即可完成相关信号的输入。

3.1.2编码电路按键状态扫描显示电路的设计我采用的是74LS147十进制优先编码器,它的真值表和管脚图如下。

表3 74LS147真值表其中74LS147的第9脚NC为空。

74LS147优先编码器有9个输入端和4个输出端。

某个输入端为0,代表输入某一个十进制数。

当9个输入端全为1时,代表输入的是十进制数0。

4个输出端反映输入十进制数的BCD码编码输出。

74147将9 条数据线(1-9)进行4 线BCD 编码,即对最高位数据线进行译码。

当 1-9 均为高电平时,编码输出(ABCD)为十进制零。

故不需单设/IN0 输入端。

74LS147优先编码器的输入端和输出端都是低电平有效,即当某一个输入端低电平0时,4个输出端就以低电平0的输出其对应的8421 BCD编码。

当9个输入图3-3 74LS47管脚图全为1时,4个输入出也全为1,代表输入十进制数0的8421 BCD编码输出。

选用74LS147有一个明显的缺陷,就是它只有九个输入端子,不能实现“0”按键的功能。

但是,幸运的是,“0”按键的功能比较简单。

可以在后续电路中实现,具体情况我将要在后续电路中介绍。

3.1.3触发电路的设计如图3-5所示,为带有清零端的八D触发器74LS273。

只有在清除端保持高电平时,数据才能通过触发器传递到后续电路。

触发控制端为11脚CLK,采用上升沿触发。

通过D触发器,我们可以将输入的相关信号“锁存”(因为必须要有上升沿的脉冲触发才能使信号通过,有点类似于锁存)起来。

防止信号的任意跳变。

74LS273是8位数据/地址锁存器,他是一种带清除功能的8D触发器1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上;第一脚WR:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0(低电平);CP(CLK):触发端,上升沿触发,即当CP从低到高电平时,D0~D7的数据通过芯片,为0时将数据锁存,D0~D7的数据不变1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

图3-4 74LS273的电气符号引脚图和逻辑功能表通过真值表以及芯片的相关功能,我们已经了解74LS273的相关功能。

在本次相关电路的设计中,通过反相器作用的信号输入到芯片74LS273,由于芯片为八D 触发器。

由D触发器的基本功能,输出Q端与输入D相同,如果同时有多个按键作用的时候,此时74LS273芯片起到锁存器的作用,只显示出最初输入的信号。

同时,当按键恢复到没有按下去的时候,信号通过相关逻辑作用后,反馈给CLK。

在CLK的作用下,实现清零的功能。

清零以后,D触发器就不再锁存以前加入的信号。

当有按键按下去的时候,此时芯片输入的就是作用按键的信号,再通过D触发器的作用,就可以完成新输入信号的锁存。

3.1.4逻辑反馈电路的设计逻辑反馈电路如图3-5所示,有四个个或门(实际操作时,用或非门加上一个非门代替或门,具体原理为:L=A+B=A B)和一个开关组成。

其中出现的开关是“0”开关。

当图3-6中的四个非门有一个输出为高电平,就会输入一个上升沿信号到CLK 端,并且输出一个高电平到清零端,使得输出的信号通过。

相关文档
最新文档