实验 按键输入电路设计

合集下载

独立键盘设计实验报告

独立键盘设计实验报告

独立键盘设计实验报告引言独立键盘是一种通过单独设计的键盘,可以替代传统的键盘。

独立键盘的设计可以根据个人需求和偏好进行定制,提供更好的使用体验。

本实验旨在设计一种独立键盘,并通过实验评估其功能和效果。

设计目标本实验的设计目标如下:1. 基本功能:实现常见的键盘功能,包括字母、数字、符号等输入。

2. 人体工学:设计符合人体工学原理的键盘布局,以减少手部疲劳和不适。

3. 可定制性:提供键盘布局定制和按键映射定制的功能,以适应不同用户的需求。

4. 独立性:键盘具备自身的处理能力和输入接口,无需依赖外部设备。

设计过程键盘布局设计独立键盘的第一步是确定键盘的布局。

我们选择了常见的QWERTY键盘布局作为基础,同时参考了一些人体工学键盘的设计原则,例如将常用的按键放置在最容易触及的位置,减少手指的运动距离等。

根据这些原则,我们对QWERTY 键盘进行了一些微调和优化。

按键设计在键盘布局确定后,我们需要设计按键。

按键的设计需要考虑按键的形状、大小和高度等因素,以及按键的触发方式(例如机械按键或薄膜按键)。

我们选择了机械按键,因为它们在使用过程中具有明显的反馈和触感,且寿命较长。

电路设计为了实现键盘的独立性,我们需要设计键盘的电路。

电路主要由按键和控制芯片组成。

按键通过矩阵连接方式将多个按键连接到少量的引脚上,以减少引脚的数量。

控制芯片负责接收按键输入信号,并将其转化为计算机可以识别的数据格式。

软件开发为了使键盘能够与计算机进行通信,我们需要开发相应的软件。

软件主要负责读取控制芯片输出的数据,并将其转化为键盘输入信号。

我们开发了一个简单的驱动程序,可以将键盘识别为标准的计算机键盘,与计算机兼容。

实验评估为了评估设计的独立键盘的功能和效果,我们进行了一些实验。

功能评估我们首先测试了独立键盘的基本功能,包括字母、数字、符号等输入。

我们使用了不同的按键和组合键进行测试,验证了键盘的功能正常。

人体工学评估为了评估键盘的人体工学效果,我们请来了一些参与者进行试用。

多路按键设计实验报告

多路按键设计实验报告

多路按键设计实验报告实验报告:多路按键设计1. 引言多路按键是指在一个电路设计中,具有多个按键输入的功能。

多路按键通常用于控制电路、选择不同的模式或功能,在很多电子设备中被广泛应用,比如遥控器、手机的按键等。

本实验旨在设计一个多路按键电路,并通过测试验证其功能和性能。

2. 实验目标本实验的目标是设计一个多路按键电路,可以实现同时检测多路按键的功能。

具体要求如下:(1) 设计一个包含3个按键的电路;(2) 对每个按键的按下进行检测,并通过指示灯显示按键状态;(3) 检测多个按键时要保证检测的准确性,即只有同时按下多个按键才能正确触发多按键状态。

3. 设计思路基于以上目标,我们可以通过使用开关电路和逻辑门来实现多路按键的检测。

具体的设计思路如下:(1) 使用3个开关分别代表3个按键,这些开关可以是机械开关、触摸开关或者其他类型的电子开关;(2) 使用3个逻辑门,每个逻辑门对应一个按键,用于检测按键的状态;(3) 使用一个逻辑门来判断是否同时按下了多个按键,从而触发多按键状态。

4. 设计实现根据上述设计思路,我们可以进行如下的电路设计和实现:(1) 使用3个机械开关分别代表3个按键,将这些开关分别连接到3个逻辑门的输入端;(2) 每个逻辑门均配置成与门,输出端连接到一个指示灯上,用于显示按键的状态;(3) 使用一个与门来检测是否同时按下了多个按键,将多按键状态的输出连接到另一个指示灯上。

5. 实验结果分析经过上述设计和实现,我们得到了一个多路按键电路。

在实验测试中,我们可以同时按下3个按键,观察到相应的指示灯的亮灭情况。

同时,我们可以单独按下每个按键,观察到相应的指示灯状况。

实验结果表明,多路按键电路可以准确地检测和显示按键的状态,同时也可以正确地判断是否同时按下了多个按键。

6. 实验总结通过本次实验,我们成功地设计和实现了一个多路按键电路,实现了按键状态的检测和显示功能。

在实验过程中,我们掌握了多路按键电路的设计方法和实现技巧,加深了对开关电路和逻辑门的理解。

按键显示电路实验报告(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. 了解了按键电路在实际应用中的重要性。

06 12864LCD显示计算器键盘按键实验

06 12864LCD显示计算器键盘按键实验

目录1 课程设计概述和要求 (1)1.1 课程设计要求与任务 (2)1.2 课程设计思路 (2)1.3 课程设计需要配置的环境 (3)2 系统设计 (3)2.1 设计框图 (3)2.2 元件解析 (3)2.2.1 LCD12864芯片……………………………………………………………42.2.2 AT89C51芯片 (5)2.2.3 其他部件 (6)2.2.4 电路分析 (7)3 软件设计 (12)3.1 程序流程图 (12)3.2 程序代码 (12)4 系统的仿真与调试 (13)4.1 硬件调试 (13)4.2 软件调试 (14)4.3 软硬件调试 (14)5 总结 (14)附录1:程序代码附录2:12864LCD显示计算器键盘按键实验Proteus仿真图1 课程设计概述和要求1.1 课程设计任务与要求设计任务:利用AT89C51单片机结合12864LCD显示器设计计算器键盘按键。

设计要求1:本设计实现一个12864LCD显示12864LCD显示器设计计算器键盘按键2.利用AT89C51控制整个电路来实现. 显示12864LCD显示器设计计算器键盘按键,系统主要包括硬件和软件两部分。

重点就是各部分硬件的连接设计以及程序的编写。

本章讲述的就是系统硬件的设计,其中包括各模块的器件选择和电路设计。

将计算器按键上的信息传送至AT89C51主芯片之中,利用P2端口使之显示于12864LCD液晶显示屏上。

1.2 课程设计目的思路1、先把与题目有关的芯片资料找到,熟悉一下芯片资料2、把此程序的电路图看懂,了解一下它的实现原理,以及实现的功能。

3、分析一下此程序的各部分的功能,各零件的工作原理。

4、对程序进行调试,分析调试结果,观察并得出结论。

1.3 课程设计需要配置的环境1、一台主机,一台显示器2、Keil uVision3/Keil uVision4 应用程序软件3、ISIS 7 Professional 仿真软件4、老师交给的仿真电路图,及案例5、纸张,以及一些参考资料2 系统设计2.1.设计框图框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。

按键控制数码管实训报告

按键控制数码管实训报告

一、实训目的本次实训旨在通过实际操作,掌握按键控制数码管的基本原理和实现方法,熟悉数字电路设计流程,提高动手能力和工程实践能力。

通过本次实训,学生应能够:1. 理解按键控制数码管的工作原理;2. 熟悉FPGA开发环境及工具的使用;3. 掌握数码管驱动电路的设计方法;4. 能够编写简单的FPGA程序,实现按键控制数码管的功能;5. 提高团队合作能力和问题解决能力。

二、实训原理数码管是一种常用的显示器件,由多个发光二极管组成,通常用于显示数字和字符。

按键作为输入设备,通过电路连接到微控制器(如FPGA、单片机等)的输入引脚,实现用户与数码管的交互。

按键控制数码管的基本原理如下:1. 按键输入处理:微控制器不断扫描按键的状态,当检测到按键被按下时,根据按键的编号或功能执行相应的操作。

2. 指令转换:将按键的输入转换为数码管能够理解的显示指令。

这通常涉及将按键编号或功能映射到特定的数字或字符编码。

3. 数码管显示控制:微控制器根据转换后的显示指令,通过控制数码管的驱动电路来点亮或熄灭数码管中的不同段,从而显示出所需的数字或字符。

4. 循环扫描与更新:为了保持数码管显示内容的实时性,微控制器需要不断重复上述步骤,形成一个循环扫描和更新的过程。

三、实训内容本次实训主要内容包括:1. 硬件电路设计:设计数码管驱动电路,包括LED数码管、按键、电阻、电容等元件的选择和连接。

2. FPGA程序设计:编写FPGA程序,实现按键控制数码管的功能,包括按键输入处理、指令转换、数码管显示控制等。

3. 系统调试与测试:将硬件电路与FPGA程序连接,进行系统调试和测试,验证系统功能是否正常。

四、实训步骤1. 硬件电路设计:- 选择合适的LED数码管、按键、电阻、电容等元件;- 根据元件规格和电路要求,绘制电路原理图;- 使用面包板搭建电路,并进行测试。

2. FPGA程序设计:- 选择合适的FPGA开发环境(如Vivado、Quartus II等);- 创建FPGA工程,添加必要的IP核(如时钟源、按键输入、数码管驱动等);- 编写FPGA程序,实现按键控制数码管的功能;- 编译FPGA程序,生成比特流文件。

矩阵式键盘设计实训报告

矩阵式键盘设计实训报告

一、实验目的1. 掌握矩阵式键盘的工作原理及电路设计方法。

2. 熟悉单片机与矩阵键盘的接口连接及编程技巧。

3. 提高动手实践能力,培养创新意识。

二、实验设备1. 单片机实验平台2. 矩阵键盘模块3. 数字多用表4. 编译器(如Keil51)5. 连接线三、实验原理矩阵键盘是一种常用的键盘设计方式,通过行列交叉点连接按键,从而实现多个按键共用较少的I/O端口。

矩阵键盘通常采用逐行扫描的方式检测按键状态,当检测到按键按下时,根据行列线的电平状态确定按键位置。

四、实验内容1. 矩阵键盘电路设计2. 矩阵键盘编程3. 矩阵键盘测试与调试五、实验步骤1. 电路设计(1)根据矩阵键盘的规格,确定行线和列线的数量。

(2)将行线和列线分别连接到单片机的I/O端口。

(3)在行线上串联电阻,防止按键抖动。

(4)连接电源和地线。

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

(2)编写逐行扫描程序,逐行拉低行线,读取列线状态。

(3)根据行列线状态判断按键位置,并执行相应的操作。

3. 测试与调试(1)将编写好的程序下载到单片机中。

(2)连接矩阵键盘,观察按键是否正常工作。

(3)使用数字多用表检测行列线电平,确保电路连接正确。

(4)根据测试结果,对程序进行调试,直到矩阵键盘正常工作。

六、实验结果与分析1. 电路连接正确,按键工作正常。

2. 逐行扫描程序能够正确检测按键位置。

3. 按键操作能够触发相应的程序功能。

七、实验总结1. 通过本次实训,掌握了矩阵式键盘的工作原理及电路设计方法。

2. 熟悉了单片机与矩阵键盘的接口连接及编程技巧。

3. 提高了动手实践能力,培养了创新意识。

八、心得体会1. 在实验过程中,遇到了电路连接错误和程序调试困难等问题,通过查阅资料、请教老师和同学,最终成功解决了问题。

2. 本次实训让我深刻体会到理论知识与实际操作相结合的重要性,同时也认识到团队合作的重要性。

九、改进建议1. 在电路设计过程中,可以考虑增加去抖动电路,提高按键稳定性。

数字电路设计实验-简易密码锁

数字电路设计实验-简易密码锁

数字电路设计实验报告——简易密码锁学院:班级:学号:姓名:目录●任务要求●系统设计✓设计思路✓总体框图✓分块设计●波形仿真及波形分析●源代码●功能分析●故障分析及问题解决●总结及结论●任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。

基本要求:1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。

通过密码设置确定键(BTN 键)进行锁定。

2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。

输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。

3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。

闭锁状态下不能清除密码。

4、用点阵显示开锁和闭锁状态。

提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。

2、密码锁的密码位数(4~6 位)可调。

3、自拟其它功能。

●系统设计设计思路将电子密码锁系统分为三个部分来进行设计,数字密码输入部分、密码锁控制电路和密码锁显示电路。

密码锁输入电路包括时序产生电路,键盘扫描电路,键盘译码电路等,将用户手动输入的相关密码信息转换为软件所能识别的编码,作为整个电路的输入。

密码锁控制电路包括相应的数据存储电路,密码核对电路,能够进行数值的比较,进行电路解锁,开锁,密码的重新设置等。

密码锁显示电路包括将待显示数据的BCD 码转换成数码管的七段显示驱动编码,密码锁在相应的状态下的点阵输出以及蜂鸣器的报警输出。

总体框图按复位键 键入初始密码0000 密码错误密码正确 按确认键 按复位键按确认键密码锁显示电路 密码锁控制电路 数码管显示报警电路密码更改与密码设计电路键入状态闭锁状态开锁状态 报警状态分块设计✓键盘扫描电路首先,向列扫描地址逐列输出低电平,然后从行码地址读回,如果有键摁下,则相应行的值应为低,如果没有按键按下,由于上拉的作用,行码为高。

单片机实验报告-LED灯控制器.doc

单片机实验报告-LED灯控制器.doc

单片机实验报告-LED灯控制器.doc本文主要介绍了一款基于51单片机的LED灯控制器的设计与实现,讲述了设计过程及原理,并列举了操作方法和应用场景。

一、设计过程1. 系统结构设计本系统主要包括三个模块:单片机模块、按键输入模块和LED控制模块。

单片机模块主要负责控制整个系统的运行,所以选用了AT89C51单片机;按键输入模块通过按键输入来控制LED灯的亮灭和灯光颜色的选择;LED控制模块通过单片机控制LED灯的亮度和颜色。

2. 硬件电路设计按键输入模块主要是通过8个按键输入实现。

通过8个按键分别控制LED的开关和颜色的选择,具体实现原理如下:当按键按下时,对应的IO口从高电平变为低电平,单片机从低电平口读取输入数据,判断按键的状态,并进行相应的操作。

由于按键输入电平不稳定,需要增加一个脉冲抗干扰的电路,以保证按键输入的稳定性。

LED控制模块主要采用的是3路PWM调光电路,配合RGB LED灯实现颜色选择。

该PWM 调光电路是通过改变占空比来实现LED灯的亮度控制,实现原理如下:单片机通过PWM信号控制三个三极管的ON/OFF,以调节LED灯的亮度。

3. 软件程序设计主要实现功能包括:初始化系统、按键读取、LED颜色选择、LED亮度调节等。

初始化系统:主要是对单片机进行初始化,包括IO口配置、定时器/计数器配置等。

按键读取:通过循环扫描的方式,读取按键输入,判断按键状态,根据不同的按键按下情况进行相应的操作。

LED颜色选择:通过按键选择不同的颜色,将对应的PWM输出数字量传递给三联杆TRIAC,实现LED灯颜色的选择。

二、系统实现及测试我们根据以上设计过程,设计出了一个简单的LED灯控制器,通过51单片机控制按键输入和LED亮度和颜色的选择,实现了简单的灯光场景切换。

2. 系统测试经过实际测试,系统可以稳定运行,按键输入灵敏度、LED亮度和颜色切换效果均达到预期目标。

三、操作方法1. 颜色选择按下对应颜色的按钮即可选择对应颜色。

键盘 实验报告

键盘 实验报告

键盘实验报告实验报告:键盘引言:键盘是计算机输入设备中最常用的一种设备,用于输入字符、数字、命令等等。

键盘以一定的方式将我们按下的按键转换成计算机可识别的信号,从而实现输入功能。

本实验的目的是了解键盘的工作原理、结构以及使用方法。

实验目的:1. 了解键盘的工作原理;2. 掌握键盘通信协议;3. 掌握键盘的结构和按键布局;4. 学习键盘的使用方法。

实验原理:键盘的工作原理是通过扫描矩阵的方式实现的,常见的键盘为4x4矩阵结构,也有其他规格的矩阵结构。

按键的每一个位置都与键盘电路中的一个电气开关相连接,当按下某个按键时,会导电并向计算机发送信号。

键盘通过PS/2或USB 接口与计算机相连,传输按键的信息。

键盘结构通常包括以下部分:1. 按键:键盘上的每一个按键代表一个字符、数字、命令或功能等。

按键大致分为四个区域:字母区、数字区、符号区和功能区。

2. 电路板:键盘的电路板上连接着按键开关,实现按键的电气连接和信号传输。

3. 导线和线缆:将电路板与接口连接,传递信号。

4. 接口:键盘通过PS/2或USB接口与计算机相连,实现信号的传输。

实验步骤:1. 准备一个计算机和一台键盘,确保键盘的连接正确。

2. 打开计算机,进入操作系统。

3. 在文本编辑器中打开一个文档,用来记录实验结果。

4. 将注意力集中在键盘上,按下键盘上的一个按键,观察文档中的输入情况。

5. 重复步骤4,测试其他按键,记录测试结果。

6. 关闭计算机,结束实验。

实验结果与分析:通过本实验,我们了解到键盘的工作原理是通过扫描矩阵的方式实现的,按键通过电路板中的电气开关与计算机相连,实现键盘输入。

键盘的按键布局通常分为四个区域:字母区、数字区、符号区和功能区。

通过实验测试,我们发现按键输入是可靠的,按下按键时能够正确输入对应的字符或数字。

键盘的使用方法是简单明了的,只需要按下对应的按键即可完成输入。

实验总结:键盘作为计算机最常用的输入设备,广泛应用于各个领域。

按键计数器设计实训报告

按键计数器设计实训报告

一、实训目的本次实训旨在通过设计并实现一个简单的按键计数器,使学生能够巩固和加深对数字电路、微控制器原理以及程序设计的基本知识和技能。

通过实训,学生能够学会使用微控制器进行硬件设计和程序设计,熟悉按键去抖动处理、中断控制以及数码管显示等关键技术,培养独立解决问题的能力。

二、实训内容1. 硬件设计- 选择合适的微控制器作为核心处理单元,本实训选择AT89C51单片机。

- 设计电路原理图,包括按键输入、计数器电路、数码管显示电路以及必要的去抖动电路。

- 选择合适的按键和数码管,本实训选择常用的机械按键和共阳极数码管。

2. 软件设计- 编写汇编语言程序,实现按键的检测、去抖动处理、计数以及数码管显示功能。

- 使用中断技术实现按键的快速响应,提高系统的实时性。

3. 系统集成与调试- 将硬件电路与软件程序结合起来,进行系统集成。

- 通过实验验证系统的功能,并对程序和电路进行调试,确保系统稳定可靠运行。

三、实训步骤1. 原理图设计- 根据实训要求,设计按键输入电路,包括按键连接和去抖动电路。

- 设计计数器电路,利用单片机的I/O口连接数码管。

- 绘制原理图,并确保电路的连通性和正确性。

2. 程序编写- 使用汇编语言编写程序,实现以下功能:- 按键去抖动:检测按键状态,并在按键稳定后进行计数。

- 计数功能:对按键按下次数进行计数,并更新数码管显示。

- 中断处理:设置外部中断,实现对按键的快速响应。

3. 系统集成- 将编写好的程序烧录到单片机中。

- 将硬件电路连接到开发板上,包括按键、数码管和去抖动电路。

- 确保所有连接正确无误。

4. 调试与测试- 通过按键测试计数功能,观察数码管显示是否正确。

- 对程序进行调试,确保计数准确无误,且按键去抖动效果良好。

- 测试中断响应速度,确保系统实时性。

四、实训结果与分析1. 硬件实现- 成功设计并搭建了按键计数器硬件电路,包括按键输入、计数器和数码管显示。

- 电路连接正确,无短路或开路现象。

EDA 论文

EDA 论文

武汉职业技术学院《EDA技术》课程结业论文论文题目:按键输入电路设计姓名:付昊所在院系:电子信息工程学院班级:电信12304班学号:12012830指导教师:虞沧武汉职业技术学院二〇一四年六月目录第一章EDA技术简介与VHDL语言第二章设计方法与步骤第三章设计程序及说明第四章程序仿真和验证摘要人类文明已进入到高度发达的信息化社会。

信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。

电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。

实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDElectronic Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。

为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。

目前,在国内电子技术教学和产业界的技术推广中已形成“EDA 热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。

本设计主要利用VHDL硬件描述语言在EDA平台Quartus II上设计一个4×4阵列键盘扫描电路,将行扫描信号输入阵列键盘,读取列信号的值,输出按键编码,从而判断出按键按下的位置。

并且使用Modelsim软件进行模拟仿真,下载到EDA实验箱进行硬件证。

关键词:EDA VHDL语言 4×4阵列键盘扫描第一章EDA技术简介与VHDL语言1.1 EDA技术简介1.1.1 EDA技术含义EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

单片机实验五报告_单片机键盘实验

单片机实验五报告_单片机键盘实验

单片机实验五报告_单片机键盘实验一、实验目的本次单片机键盘实验的主要目的是让我们深入了解单片机与键盘的接口技术,掌握如何通过编程实现对键盘输入的检测和响应,从而提高我们在单片机应用开发中的实际操作能力。

二、实验原理在单片机系统中,键盘通常是作为输入设备使用的。

常见的键盘有独立式键盘和矩阵式键盘两种类型。

独立式键盘是每个按键单独占用一根 I/O 线,其优点是电路简单,编程容易,但缺点是占用较多的 I/O 口资源。

矩阵式键盘则是将按键排列成矩阵形式,通过行线和列线的交叉来识别按键。

这种方式可以有效地节省 I/O 口资源,但电路和编程相对复杂一些。

在本次实验中,我们采用了矩阵式键盘。

其工作原理是通过逐行扫描或者逐列扫描的方式,检测行线和列线的电平状态,从而确定按下的按键。

三、实验设备及材料1、单片机开发板一块2、计算机一台3、编程软件(如 Keil C51)4、下载工具(如 STCISP)四、实验步骤1、硬件连接将矩阵式键盘与单片机的 I/O 口进行连接,注意行线和列线的对应关系。

连接好电源和地线,确保硬件电路正常工作。

2、软件编程打开编程软件,创建一个新的工程。

编写初始化程序,包括设置 I/O 口的工作模式、中断等。

编写键盘扫描程序,通过循环扫描行线和列线的电平状态,判断是否有按键按下。

当检测到按键按下时,根据按键的编码执行相应的操作,如在数码管上显示按键值、控制 LED 灯的亮灭等。

3、编译和下载对编写好的程序进行编译,检查是否有语法错误。

如果编译成功,使用下载工具将程序下载到单片机中。

4、实验调试观察硬件电路的工作状态,看是否有异常现象。

按下不同的按键,检查程序的响应是否正确。

如果出现问题,通过调试工具(如单步调试、断点调试等)查找并解决问题。

五、实验代码以下是本次实验的部分关键代码:```cinclude <reg51h>//定义键盘的行和列define ROW_NUM 4define COL_NUM 4//定义行线和列线的端口sbit ROW1 = P1^0;sbit ROW2 = P1^1;sbit ROW3 = P1^2;sbit ROW4 = P1^3;sbit COL1 = P1^4;sbit COL2 = P1^5;sbit COL3 = P1^6;sbit COL4 = P1^7;//定义按键值的编码unsigned char code KeyCodeMapROW_NUMCOL_NUM ={{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'','0','','D'}};//键盘扫描函数void KeyScan(){unsigned char i, j, temp;unsigned char keyValue = 0;//逐行扫描for (i = 0; i < ROW_NUM; i++){//先将所有行线置高电平ROW1 = ROW2 = ROW3 = ROW4 = 1;//将当前行线置低电平switch (i){case 0: ROW1 = 0; break;case 1: ROW2 = 0; break;case 2: ROW3 = 0; break;case 3: ROW4 = 0; break;}//读取列线的电平状态temp = COL1 | COL2 | COL3 | COL4;//如果有列线为低电平,则表示有按键按下if (temp!= 0xF0){//延迟去抖动delay_ms(10);//再次读取列线的电平状态temp = COL1 | COL2 | COL3 | COL4; if (temp!= 0xF0){//确定按下的按键for (j = 0; j < COL_NUM; j++){if ((temp &(1 << j))== 0){keyValue = KeyCodeMapij;break;}}//执行相应的操作switch (keyValue){case '1'://具体操作break;case '2':break;//其他按键的操作}}}}}//主函数void main(){while (1){KeyScan();}}```六、实验结果及分析在实验过程中,我们成功地实现了对矩阵式键盘的输入检测,并能够根据不同的按键执行相应的操作。

单片机按键实验报告

单片机按键实验报告

单片机按键实验报告篇一:单片机按键扫描实验报告键盘扫描一.实验目的(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为延时指针。

七.程序设计KPIN:ORG MOV MOV ANL MOV 0000H P1,#0F0H A,P1 A,#0F0H B,AMOVP1,#0FHMOVA,P1ANLA,#0FHORLA,BCJNE A,#0FFH,KPIN1AJMP EXITKPIN1: MOVB,AMOVDPTR,#TABKPMOVR3,#0KPIN2: MOVA,R3MOVC A,@A+DPTRCJNE A,B,KPIN3MOVA,R3LOOP: MOVR1,#0FEH;键盘动态显示 LOOP1: MOVA,R3ANLA,#0FHMOV DPTR,#TABMOVC A,@A+DPTRCLRP2.0CLRP2.1MOVP0,ASETB P2.0NOPCLRP2.0LOOP2: MOVA,R1;位选码MOVP0,ASETB P2.1MOVR5,#250LOOP3: DJNZ R5,LOOP3CLRP2.1SJMP LOOPKPIN3: INCR3CJNE A,#0FFH,KPIN2EXIT: RETTABKP: DB0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBHDB 0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,67H,0FFHTAB: DB77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FHDB 79H,33H,7CH,3BH,1BHEND八.调试出现的问题及解决问题1:程序正常运行,但按键显示出现乱码解决:动态显示笔形码错误,并改正。

数字电路课程设计——设计一个简易键盘-精选资料

数字电路课程设计——设计一个简易键盘-精选资料

《数字电路逻辑设计》课程设计指导书一、课程设计的目的1 、学习数字逻辑等电路设计方法,熟知编码器、译码显示等其他电路的工作原理及特点;2 、培养勤奋认真、分析故障和解决问题的能力。

二、设计名称设计一个简易键盘三、设计要求0-9 十个数字分别对应一个按键,当其中一个按键按下时,在数码显示管上显示对应的数字。

四、设计过程1 、收集相关资料,完成相关电路的设计图,正确选用适合设计内容的集成电路、器件和器材,并列出“领料清单”;2 、利用多功能虚拟软件Multism8 进行电路的制作、调试,并生成文件。

五、设计细则严格按照电路设计的步骤,实现其设计基本内容和功能,利用虚拟软件进行仿真,电路运行稳定、可靠;描述实验现象,实验过程中出现的问题及解决方案。

六、说明课程设计任务书课程设计报告课程:数字电路逻辑设计学号:姓名:班级:教师:计算机科学与技术学院设计名称:设计一个简易键盘日期:2019 年1月 6 日设计内容:0-9 十个数字分别对应一个按键,当其中一个按键按下时,在数码显示管上显示对应的数字。

设计目的与要求:1 、学习数字逻辑等电路设计方法,熟知编码器、译码显示等其他电路的工作原理及特点;2 、培养勤奋认真、分析故障和解决问题的能力。

设计环境或器材、原理与说明:环境:Multisim 8 器材:编码器芯片74LS248,以及与非门(4个),或非门( 6 个),七段发光二极管显示器,开关和电源。

原理:若要将 4 位二进制数作为七段发光二极管的输入来进行显示,而二进制数则通过二- 十进制译码器原理,通过十进制数来显示,从而得到从十进制-二进制- 十进制显示的功能。

所以需要设计一个电路,将一位十进制数字转化为四位二进制编码,即二—十进制编码器。

根据键盘输入的原理,当输入一个数字的时候是不能出现其他的数字的,所有要用到优先编码器的原理。

所以根据题意设计了电路,将输入的十进制数转化为四位二进制数。

从而实现简易键盘的功能。

按键控制实验报告

按键控制实验报告

按键控制实验报告按键控制实验报告一、实验目的本实验旨在让学生掌握按键控制的基本原理和方法,学会使用按键控制模块实现简单的控制功能。

二、实验原理按键控制是通过检测按键的状态来控制电路的工作。

按键控制模块内部一般包含有按键输入电路和微控制器,通过微控制器检测按键的状态,从而控制输出电路的工作。

三、实验步骤1.准备实验器材:按键控制模块、LED灯、杜邦线、面包板等。

2.将按键控制模块连接到面包板上,并将LED灯连接到按键控制模块的输出端。

3.通过杜邦线将按键控制模块的输入端连接到面包板上的按键上。

4.给按键控制模块供电,并使用串口调试助手与微控制器进行通信。

5.编写程序,实现按键控制LED灯的亮灭。

具体程序代码如下:#include <reg52.h>sbit led = P1^0; // LED灯连接在P1.0口sbit key = P1^1; // 按键连接在P1.1口void delay(unsigned int t) // 延时函数{while(t--);}void main(){while(1){if(key == 0) // 检测到按键按下{delay(100); // 延时去抖动if(key == 0) // 再次检测按键状态{led = ~led; // 控制LED灯的亮灭while(key == 0); // 等待按键松开}}}}6.将程序下载到微控制器中,并运行程序。

此时,按下按键,LED灯的状态将会改变。

四、实验结果与分析通过本次实验,我们成功地实现了按键控制LED灯的亮灭。

按下按键时,LED 灯的状态会发生改变。

实验结果表明,我们的程序设计是正确的,按键控制模块也能够正常工作。

在实验过程中,我们也遇到了一些问题。

首先,在连接电路时,需要注意按键控制模块的输入输出端口的接线方式,以免出现错误。

其次,在编写程序时,需要考虑按键的去抖动问题,以避免按键的误判。

最后,在下载程序时,需要注意选择与微控制器型号相匹配的下载方式和下载口,以保证程序的正确下载和运行。

基于fpga的按键控制电路实验报告

基于fpga的按键控制电路实验报告

基于fpga的按键控制电路实验报告
实验目的:
1.了解FPGA芯片的基本结构和工作原理。

2.学习FPGA芯片的开发流程与设计方法。

3.掌握FPGA芯片中按键输入信号的采集方法。

4.实现基于FPGA芯片的按键控制功能。

实验器材:
1.FPGA开发板一个。

B数据线一个。

3.万用表一个。

实验步骤:
1.连接FPGA开发板和计算机。

2.打开Xilinx软件工具。

3.创建FPGA项目,设置基本参数。

4.在FPGA项目中添加VHDL源文件,编写代码实现按键采集及控制功能。

5.将编写好的代码综合并下载到FPGA芯片中。

6.按动开发板上的按键,观察LED指示灯亮灭情况。

7.调试,测试按键控制电路是否正常工作。

实验心得:
在本次实验中,我首次接触了FPGA芯片,并学习了FPGA芯片的基本结构和工作原理。

通过对Xilinx软件工具的使用,我掌握了FPGA芯片的开发流程和设计方法,并实现了基于FPGA 芯片的按键控制功能。

实验过程中,我遇到了许多问题,如代码的编写、综合、仿真和下载等方面,但经过同学和老师的帮助,我成功地完成了实验。

通过该实验,我不但增加了对FPGA芯片的理解和应用,而且也提高了自己的综合实验能力。

按键功能实验报告总结(3篇)

按键功能实验报告总结(3篇)

第1篇一、实验背景按键作为电子设备中常见的输入装置,其功能丰富,应用广泛。

本实验旨在通过设计和实现一系列按键功能,加深对按键工作原理的理解,并提高电子设计实践能力。

二、实验目的1. 掌握按键的基本原理和电路设计方法。

2. 熟悉按键在不同应用场景下的功能实现。

3. 培养电子设计实践能力,提高问题解决能力。

三、实验内容1. 实验器材:51单片机最小核心电路、按键、LED灯、电阻、电容、面包板等。

2. 实验内容:(1)单按键控制LED灯闪烁(2)按键控制LED灯点亮与熄灭(3)按键控制LED灯亮度调节(4)按键实现数字时钟调整(5)按键实现多功能计数器(6)按键实现密码输入与验证四、实验步骤1. 根据实验要求,设计电路图,并选择合适的元器件。

2. 使用面包板搭建实验电路,包括单片机、按键、LED灯、电阻、电容等。

3. 编写程序,实现按键功能。

4. 对程序进行调试,确保按键功能正常。

5. 实验完成后,撰写实验报告。

五、实验结果与分析1. 单按键控制LED灯闪烁实验结果:按下按键,LED灯闪烁;松开按键,LED灯停止闪烁。

分析:本实验通过单片机定时器实现LED灯的闪烁。

当按键按下时,定时器开始计时;当定时器达到设定时间后,LED灯点亮;定时器继续计时,当达到设定时间后,LED灯熄灭。

如此循环,实现LED灯的闪烁。

2. 按键控制LED灯点亮与熄灭实验结果:按下按键,LED灯点亮;再次按下按键,LED灯熄灭。

分析:本实验通过单片机的I/O口控制LED灯的点亮与熄灭。

当按键按下时,单片机将I/O口置为高电平,LED灯点亮;当按键再次按下时,单片机将I/O口置为低电平,LED灯熄灭。

3. 按键控制LED灯亮度调节实验结果:按下按键,LED灯亮度逐渐增加;松开按键,LED灯亮度保持不变。

分析:本实验通过单片机的PWM(脉宽调制)功能实现LED灯亮度的调节。

当按键按下时,单片机调整PWM占空比,使LED灯亮度逐渐增加;松开按键后,PWM占空比保持不变,LED灯亮度保持不变。

按键控制数码管和流水灯设计报告实验报告

按键控制数码管和流水灯设计报告实验报告

按键控制数码管和流水灯设计报告实验报告实验名称:按键控制数码管和流水灯设计报告一、实验目的本实验旨在通过使用按键来控制数码管和流水灯的显示,加深对数码管和流水灯工作原理的理解,并掌握按键的基本输入输出原理。

二、实验器材1. Arduino开发板2.数码管模块3.面包板4.面包板连接线5.按键模块6.跳线三、实验原理数码管是一种将数字和一些常用符号通过数码电路显示在特定位置的显示器件,由多个LED组成,可显示0-9及一些小于9的字母和符号。

流水灯是一种LED灯的组合,通过不同的时序控制,实现灯光依次点亮或熄灭的效果。

本实验通过使用按键控制器将数码管和流水灯的状态控制与显示,按下不同的按键可以使数码管切换显示不同的数字,同时控制流水灯的点亮或熄灭。

四、实验步骤1. 将数码管模块连接到Arduino开发板的数字I/O口,连接方式可参考数码管模块的接口定义和Arduino开发板的编号。

2. 将按键模块连接到Arduino开发板的数字I/O口,连接方式可参考按键模块的接口定义和Arduino开发板的编号。

3. 按键模块和数码管模块都需要使用面包板连接线和跳线连接到Arduino开发板的相应引脚上。

4.根据按键的读取状态,通过编程控制数码管显示相应的数字,利用流水灯实现通过按键的控制点亮或熄灭。

五、实验结果经过编程和调试,实验中数码管能够正确显示按键输入的数字,同时根据按键输入状态控制流水灯的点亮或熄灭。

按不同的按键可以切换数码管的数字显示,实现了按键对数码管和流水灯的控制。

六、实验总结本实验通过按键来控制数码管和流水灯的显示,加深了对数码管和流水灯的工作原理的理解。

同时,掌握了按键的基本输入输出原理,并通过编程控制实现了按键对数码管和流水灯的控制。

本实验还有一些可以改进的地方,例如可以增加多个按键,实现更多的控制功能;还可以通过增加延时函数控制流水灯的点亮或熄灭速度。

通过不断改进和练习,可以提高对Arduino开发板的理解和掌握。

实验二60秒倒计时电路设计的实验报告

实验二60秒倒计时电路设计的实验报告

实验二60秒倒计时电路设计的实验报告一、实验目的1.进一步熟悉Quartus II混合层次化设计方法。

2.学习7段数码管的驱动设计方法。

二、实验内容60秒倒计时电路如图1所示。

其中,模块cnt_d60完成60倒计数,输出结果为2位十进制BCD码。

模块SCNA_LED完成BCD码到7段数码管显示译码功能。

图1 60秒倒计时电路图2 60秒倒计时底层电路60倒计数模块cnt_d60底层电路如图2所示。

主要由2片74192(双向十进制计数器)构成。

模块cnt_d60和SCNA_LED的源设计文档(cnt_d60.bdf和SCAN_LED.vhd)提供给大家。

要求大家建立新工程,为模块cnt_d60和SCNA_LED新建封装(*.bsf),并根据图1完成顶层60秒倒计时电路设计。

完成以上程序设计,编译时器件选择Cyclone系列的EP1C12Q240C8。

引脚锁定参考表1内容。

注意:应把未分配管脚置为三态输入,切记!!表1 实验连线1.原理图设计输入(1)首先将模块cnt_d60和SCNA_LED的源文件放在等一下需要建立的文件中,打开QuartusII软件。

(2)选择路径。

选择File/New Project Wizard。

添写后以后,单击“NEXT”进入下一步。

(3)添加设计文件,在File name中选择路径然后添加模块cnt_d60和SCNA_LED的源文件,点击“Next”。

(4)选择FPGA器件。

Family选择Cyclone,先在Packge选择Any QFP,Pin Count 选择240,Speed grade选择8;然后在Available device中选择EP1C12Q240C8,点击“Next”。

(5)选择外部综合器、仿真器和时序分析器。

设置好后,单击“NEXT”进入下一步。

(6)结束设置。

“工程设置统计”窗口,列出了工程的相关设置情况。

最后单击“Finish”,结束工程设置。

51单片机电子密码锁设计(包含原理图-电路设计-c语言程序)

51单片机电子密码锁设计(包含原理图-电路设计-c语言程序)

电子密码锁设计1.实验任务根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。

2.电路原理图图4.32.13.系统板上硬件连线(1).把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上;(2).把“音频放大模块”区域中的SPK OUT端子接喇叭和;(3).把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上;(4).把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上;(5).把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上;4.程序设计内容(1).密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。

(2).密码的输入问题:由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。

进入密码的判断比较处理状态并给出相应的处理过程。

(3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。

5.C语言源程序#include <AT89X52.H>unsigned char code ps[]={1,2,3,4,5};unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};unsigned char pslen=9;unsigned char templen;unsigned char digit;unsigned char funcount;unsigned char digitcount;unsigned char psbuf[9];bit cmpflag;bit hibitflag;bit errorflag;bit rightflag;unsigned int second3;unsigned int aa;unsigned int bb;bit alarmflag;bit exchangeflag;unsigned int cc;unsigned int dd;bit okflag;unsigned char oka;unsigned char okb;void main(void){unsigned char i,j;P2=dispcode[digitcount];TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1){if(cmpflag==0){if(P3_6==0) //function key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_6==0){if(hibitflag==0){funcount++;if(funcount==pslen+2){funcount=0;cmpflag=1;}P1=dispcode[funcount];}else{second3=0;}while(P3_6==0);}}if(P3_7==0) //digit key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_7==0){if(hibitflag==0){digitcount++;if(digitcount==10){digitcount=0;}P2=dispcode[digitcount];if(funcount==1){pslen=digitcount;templen=pslen;}else if(funcount>1){psbuf[funcount-2]=digitcount;}}else{second3=0;}while(P3_7==0);}}}else{cmpflag=0;for(i=0;i<pslen;i++){if(ps[i]!=psbuf[i]){hibitflag=1;i=pslen;errorflag=1;rightflag=0;cmpflag=0;second3=0;goto a;}}cc=0;errorflag=0;rightflag=1;hibitflag=0;a: cmpflag=0;}}}void t0(void) interrupt 1 using 0{TH0=(65536-500)/256;TL0=(65536-500)%256;if((errorflag==1) && (rightflag==0)){bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(aa==800){aa=0;P0_1=~P0_1;}second3++;if(second3==6400){second3=0;hibitflag=0;errorflag=0;rightflag=0;cmpflag=0;P0_1=1;alarmflag=0;bb=0;aa=0;}}if((errorflag==0) && (rightflag==1)) {P0_1=0;cc++;if(cc<1000){okflag=1;}else if(cc<2000){okflag=0;}else{errorflag=0;rightflag=0;hibitflag=0;cmpflag=0;P0_1=1;cc=0;oka=0;okb=0;okflag=0;P0_0=1;}if(okflag==1){oka++;if(oka==2){oka=0;P0_0=~P0_0;}}else{okb++;if(okb==3){okb=0;P0_0=~P0_0;}}}}。

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