实验6 独立按键电路的设计与仿真

合集下载

单片机独立按钮实训报告

单片机独立按钮实训报告

一、实训目的通过本次单片机独立按钮实训,掌握单片机的基本原理,了解独立按钮的工作原理及其在单片机中的应用,提高动手实践能力,为后续单片机相关课程的学习打下坚实基础。

二、实训内容1. 独立按钮介绍2. 独立按钮在单片机中的应用3. 独立按钮驱动程序编写4. 实验电路搭建与调试三、实训过程1. 独立按钮介绍独立按钮是一种常用的电子开关,由一个开关和两个引脚组成。

当按钮未按下时,两个引脚处于断开状态;当按钮按下时,两个引脚导通,从而实现信号的传递。

2. 独立按钮在单片机中的应用在单片机中,独立按钮常用于实现简单的输入控制,如按键控制LED灯的亮灭、按键控制继电器开关等。

3. 独立按钮驱动程序编写以51单片机为例,编写独立按钮驱动程序如下:```c#include <reg51.h>#define BUTTON P1 // 定义按钮连接的端口void delay(unsigned int ms) // 延时函数{unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 120; j++);}void main(){while (1){if (BUTTON == 0x00) // 检测按钮是否被按下{delay(10); // 消抖处理if (BUTTON == 0x00) // 再次检测按钮是否被按下{// 执行按钮按下后的操作// ...}}}}```4. 实验电路搭建与调试根据上述程序,搭建如下实验电路:(1)连接按钮:将按钮的两个引脚分别连接到单片机的P1.0引脚和地(GND)。

(2)连接LED灯:将LED灯的正极连接到单片机的P1.1引脚,负极连接到地(GND)。

(3)连接电源:将单片机的VCC引脚连接到5V电源,GND引脚连接到地(GND)。

(4)调试程序:将编译好的程序烧录到单片机中,观察LED灯是否在按钮按下时亮起。

单片机独立按键控制led灯实验原理

单片机独立按键控制led灯实验原理

主题:单片机独立按键控制LED灯实验原理目录1. 概述2. 单片机独立按键控制LED灯实验原理3. 实验步骤4. 结语1. 概述单片机在现代电子设备中起着至关重要的作用,它可以通过编程实现各种功能。

其中,控制LED灯是单片机实验中常见的任务之一。

本文将介绍单片机独立按键控制LED灯的实验原理及实验步骤,希望对初学者有所帮助。

2. 单片机独立按键控制LED灯实验原理单片机独立按键控制LED灯的实验原理主要涉及到单片机的输入输出端口及按键和LED的连接方式。

在单片机实验中,按键与单片机的输入端口相连,LED与单片机的输出端口相连。

通过按键的按下和松开来改变单片机输出端口电平,从而控制LED的亮灭。

3. 实验步骤为了完成单片机独立按键控制LED灯的实验,需要按照以下步骤进行操作:步骤一:准备材料- 单片机板- 按键- LED灯- 连线- 电源步骤二:搭建电路- 将按键与单片机的输入端口相连- 将LED与单片机的输出端口相连- 连接电源步骤三:编写程序- 使用相应的单片机开发软件编写程序- 程序中需要包括按键状态检测和LED控制的部分步骤四:烧录程序- 将编写好的程序烧录到单片机中步骤五:运行实验- 按下按键,观察LED的亮灭情况- 确保按键可以正确控制LED的亮灭4. 结语通过上述实验步骤,我们可以实现单片机独立按键控制LED灯的功能。

这个实验不仅可以帮助学习者了解单片机的输入输出端口控制,还可以培养动手能力和程序设计能力。

希望本文对单片机实验初学者有所帮助,谢谢阅读!实验步骤在进行单片机独立按键控制LED灯实验时,需要按照一定的步骤进行操作,以确保实验能够顺利进行并取得预期的效果。

下面将详细介绍实验步骤,帮助读者更好地理解和掌握这一实验过程。

1. 准备材料在进行单片机独立按键控制LED灯实验前,首先需要准备相应的材料。

这些材料包括单片机板、按键、LED灯、连线和电源。

在选择单片机板时,需要根据具体的实验需求来确定,常见的有51单片机、Arduino等,不同的单片机板具有不同的特性和使用方法,因此需要根据实验要求来选择适合的单片机板。

独立键盘设计实验报告

独立键盘设计实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

按键模拟仿真 原理图与程序(汇编+C语言)

按键模拟仿真 原理图与程序(汇编+C语言)

按键模拟仿真(入门级实验)实验介绍1:利用单片机控制一个按键以及一个LED灯,通过程序控制上述两个原件,模拟简单的按键控制LED电路。

当按键按下的时候LED灯点亮,当按键松开的时候LED熄灭。

(拓展:可以对该实验进行一定的拓展,例如当按键按下一段时间后,LED灯才开始点亮,或当按键松开后,LED灯点亮一段时间后再熄灭等等)实验目的:通过对简单的按键控制LED电路的模拟,掌握单片机读入数字量的过程以及单片机对数字量进行判断(按键按下或松开)。

仿真原理图:在仿真软件Proteus中绘制仿真仿真原理图如上图所示。

(注意事项:在上图中按键使用了“button”,该元件类似于带复位功能的按钮,当鼠标按下该按键时接通,当鼠标松开后,按键自动复位,变为断开状态。

在此原理图中也可使用“switch”元件,该元件的类似于带自锁功能的按钮,当鼠标点击一次该元件,按键接通并自锁,此时松开鼠标,按键也不能复位,当再次使用鼠标单击该按键时,按键才能处于复位状态。

)程序HEX代码如下::0300000002003BC0:0C003B00787FE4F6D8FD75810702000014:020********E50:0B00300020A204C2A080F9D2A080F53D:00000001FF程序HEX使用方法:1)新建txt文档2)将HEX代码复制到txt文档中,保存3)将该txt文档另存为“程序名.hex”,例如:pro.hex4)在仿真软件中打开即可实现仿真。

汇编语言代码以及C语言代码如下:汇编语言代码:ORG 0HJMP MAINORG 30HMAIN:JB P2.2,X1CLR P2.0JMP MAINX1:SETB P2.0JMP MAINEND注意:该程序较为简单,一般不易出错。

需要注意的是程序需要重复执行!C语言代码:#include <reg52.h>sbit P20=P2^0;sbit P22=P2^2;void main(){while(1){ if(P22==0)P20=0; //点亮LEDelseP20=1; //熄灭LED}}上述程序完成的是当按键按着的时候灯亮,而当按键松开后灯灭。

任务3.1 独立式键盘设计与仿真.

任务3.1 独立式键盘设计与仿真.

九江职业技术学院电气工程系
独立式键盘及其程序设计
• 独立式键盘

独立式键盘就是将按键直接与I/O口相连的方式。 编程时,用JNB或JB指令判断端口信号是否为低电平, 做为按键是否按下的判断。
+5V 10kΩ× 8 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
S0 S1 S2 S3 S4 S5 S6 S7
情境三 AT89S51单片机键盘接口设计
任务3.1 独立式键盘设计与仿真
九江职业技术学院电气工程系
教学目标
• 知识目标: • 技能目标:
1、认识键盘的分类及其工作原理。 。 2、独立式键盘的工作原理。 1、独立式键盘按键检测程序编写与调试。 2、键盘消除处理技能。
九江职业技术学院电气工程系
工作任务
字符名 EQU 数据或汇编符号
功能:将该指令右边的值赋给左边的“字符名”
汇编过程中,EQU伪指令被汇编程序 识别后自动将EQU后面的“数据或汇编符 号”赋给左边的“字符名”。该“字符名” 被赋值后,既可用作一个数据,也可用作 一个地址。
九江职业技术学院电气工程系
数据赋值伪指令DATA
格式: 字符名 DATA 表达式 功能:用来将右边表达式的值赋给左边的字符名。
S0 S1 S2 S3 S4 S5 S6 S7
AT89S51
九江职业技术学院电气工程系
独立式键盘及其程序设计
九江职业技术学院电气工程系
3. 3 键盘C51程序设计
• 3.3.2
计实例

键盘的C51程序设
1. 独立式键盘
+5V 10kΩ× 8 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

单片机独立按键实验报告总结

单片机独立按键实验报告总结

单片机独立按键实验报告总结本次实验我们使用了单片机进行了独立按键实验,通过学习掌握了单片机输入输出口的基本使用方法以及独立按键的使用方法和技巧。

以下是本次实验的总结:一、实验内容本次实验的主要内容是独立按键的使用方法和技巧。

通过学习,我们掌握了独立按键的接法原理和基本应用方法。

在实验中,我们首先通过理论学习了按键的工作原理,了解了按键在电路中的应用和接法方法,然后实际动手进行了按键电路的搭建和单片机程序的编写,最后进行了按键测试和实验结果分析。

二、实验步骤1.理论学习:首先,我们学习了独立按键的工作原理和接法原理,了解按键在电路中的应用和接法方法,掌握了按键接口的输入输出方式,并对具体实现过程和技巧进行了分析和探讨。

2.电路搭建:根据学习到的按键接法原理和电路图,我们使用面包板和导线搭建了独立按键电路,将按键连接到单片机的输入端口上,并设置相应的电阻来保护电路和单片机芯片。

3.程序编写:通过阅读单片机说明书和参考其他资料,我们学习了单片机输入输出口的基本使用方法和指令,编写了程序代码,实现了独立按键操作的功能。

我们实现了多种按键操作方式,包括单击、长按等方式,并添加了相应的提示和保护措施,以确保程序的可靠性和稳定性。

4.测试实验:最后,我们进行了独立按键测试实验,通过按键操作,观察测试实验结果,进行了数据分析和结论汇总。

实验结果表明,我们的按键电路和程序代码都实现了预期的功能和效果,证明了我们在实验中掌握的独立按键技巧和方法是正确和有效的。

三、实验结论通过本次实验,我们掌握了单片机输入输出口的基本使用方法和独立按键的使用方法和技巧,了解了按键在电路中的应用和接法方法,探索了独立按键实现的多种方式和技巧,提高了我们的电路设计能力和程序设计能力。

同时,本次实验还加强了我们的实验动手操作能力,增强了我们的实际应用能力和创新思维能力,为我们以后的学习和工作打下了坚实的基础。

独立键盘电路

独立键盘电路
独立键盘电路知识点目录1综述 独立键盘电路1.综述
2
键盘是单片机不可缺少的输入设备,在单片机应用系统中,常使用按键或者键盘 控制系统的工作状态或向系统内部输入数据。
全编码键盘 键盘
非编码键盘
独立式键盘 矩阵式键盘
1.综述
3
➢ 编码键盘:键盘闭合键的识别由专用硬件实现。
➢ 非编码键盘:键盘闭合键的识别由软件实现。
当松开按键后,线路断开,无电流流过,此时KeyIn1和+5V是等电位,为高 电平。
这样我们就可以通过KeyIn1这个接口的电平高低来判断是否有按键按下。
2.独立键盘电路
6
独立式按键程序查询方式和中断方式的接口电路
2.独立键盘电路
4
独立式键盘就是各个按键相互独立,每一个按键各接一根I/O接口线,彼此独立, 单片机通过向此I/O口发出读指令来得到当前按键的状态。原理图如图1所示。
图1 独立键盘电路原理图
2.独立键盘电路
5
工作原理:
4条输入线接到单片机的I/O口上,当按键K1按下时,+5V电源通过R1和K1进 入GND形成一条通路,此时全部电压都加到了电阻R1上,从而导致KeyIn1引脚为 低电平;
非编码键盘结构简单,成本低廉,在单片机中得到广泛应用。
➢ 独立式键盘特点:电路配置灵活,软件结构简单,但每个按键必须占用一根 I/O线,占用硬件资源较多,因此适用于按键比较少的场合。
➢ 矩阵式键盘特点:矩阵式键盘的按键设置在行、列的交叉点上。键盘中按键数 量较多时,为了减少I/O口的占用,通常采用矩阵式键盘。

实验六、独立式键盘输入实验

实验六、独立式键盘输入实验

实验六、独立式键盘输入实验一、实验目的1.认识独立式键盘的工作原理2.学习独立式键盘的接口设计二、实验设备1.单片机最小系统模块2.仿真器3.独立式键盘实验模块4.发光二极管显示模块三、实验要求要求由8个独立式键盘和8个发光二极管组成实验电路,当按下某一个键时相应的发光二极管被点亮。

四、实验原理独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其它输入线上的工作状态。

因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。

独立式键盘电路配置灵活,软件结构简单。

但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速度较高的场合。

下面介绍独立式按键的接口方法。

图6-1(a)为中断方式的独立式键盘工作电路,图(b)为查询方式的独立式按键工作电路,按键直接与89C51的I/O口线相接,通过读I/O口,判定各I/O口线的电平状态,即可识别出按下的按键。

(a)中断方式(b)查询方式图6-1 独立式键盘接口电路此外,也可以用扩展I/O口连接独立式键盘接口电路。

上述独立式键盘电路中,各按键开关均采用了上拉电阻,这是为了保证在按键断开时,各I/O口线有确定的高电平。

在我们的键盘模块中,已经在键盘输出端加上了上拉电阻,因此不用再额外加上。

五、实验步骤实验参考连线如图6-2所示。

(以6键、6发光管为例)图6-2 实验连线图1、按照图6-2的电路原理,用导线正确连接独立式键盘、发光二极管实验模块和单片机最小系统模块。

2、示例程序如下(以6键、6发光管为例):BEGIN: MOV P0,#0FFH ;熄灭二极管LOOP: MOV A,P0 ;读键盘状态ANL A,#3FH ;屏蔽高二位MOV 40H,A ;把读的键盘状态暂放在40H的地址CJNE A,#3FH,HADKEYSJMP LOOPHADKEY:ACALL DL10MS ;延时10MSMOV A,P0 ;再读键盘状态ANL A,#3FH ;屏蔽高二位CJNE A,40H,LOOP ;比较两次读键盘状态,如不同则重读MOV P2,A ;使相应的二极管发亮NOPNOPLJMP LOOPDL10MS: MOV R7,#05LOOP1: MOV R6,#0F9HLOOP2: NOPNOPDJNZ R6,LOOP2DJNZ R7,LOOP1RET将程序调入仿真器进行调试。

单片机课程实验二: 独立按键电路设计

单片机课程实验二: 独立按键电路设计

单片机课程实验二:独立按键电路设计专业:通信工程学号:1610111183 姓名:石万里一、实验步骤:在实验一STC89C52单片机控制8个流水灯的实验的基础上进行此实验。

本次实验目标:通过两个独立按键控制流水灯的变化,使得8个流水灯代表的8进制数,在按下K1键后自动加一,按下K2键后,自动减一,采用下降沿外部中断触发。

电路图在实验一的基础上进行改装,让P32与P33各自通过一个独立按键接地,手绘电路图如图1.1所示:图1.1独立按键电路图1.2独立按键电路焊接成果实验程序编写烧录后,在keil软件中生产hex文件,再烧录到单片机芯片中,再给电路板上电即可。

之后是实验程序的编写,流水灯程序编写好并在学习板上测试成功后,即可把芯片放到自己焊接的电路板上上电测试电路板,如果成功即可找老师验收,不成功需要用万用表对电路板进行测试,测试时先把万用表档位调到欧姆档,测试本实验焊接的独立按键电路是否存在开路,并检查是否存在有未焊接的部分,是否有虚焊漏焊的情况,是否上电测试时晶振未安装,电路板检查后继续进行测试,然后再检查、测试,直到自己焊接的电路板功能正常。

若是在学习板上程序未成功,则需要对程序进行修改,重新编译、烧录,不断测试。

二、流水灯程序:org 0000Hljmp mainorg 0003hljmp jiayiorg 0013hljmp jianyiorg 100h main:setb ex0setb IT0setb ex1setb IT1setb eamov r4,#07hmov r3,#07hmov r2,#02hmov a,#0fehmov p1,aloop2:acall delay next: rl aacall delaymov p1,adjnz r4,next here: acall delay//mov a,p1rr amov p1,adjnz r3,heremov r4,#07hmov r3,#07hdjnz r2,loop2acall delay loop1:mov a,#07chmov p1,asjmp loop1 delay:mov r5,#19h delay1:mov r6,#19h delay2:mov r7,#0ffhdjnz r7,$djnz r6,delay2djnz r5,delay1 retjiayi:mov a,p1dec aacall delaymov p1,asjmp jiayiretijianyi:mov a,p1inc aacall delaymov p1,asjmp jianyiretiend三、实验总结:实验结果如下图所示:前五张图片是加一结果,最后两张图片是减一结果因为拍照速度太慢,故加一减一在图中看起来可能不连续,但程序完全正确,已经过实验验证,本人建议最好录视频作为作业上交此实验是建立在实验一的基础上进行的,故相对较为简单,只需要P32与P33各自加独立按键接地即可。

独立按键识别-单片机原理-实验报告

独立按键识别-单片机原理-实验报告

宁德师范学院计算机系
实验报告
(2014—2015学年第2学期)
课程名称单片机原理
实验名称独立按键识别
专业计算机科学与技术(软工)年级2012级
学号B2012103145 姓名冯武
指导教师杨烈君
实验日期2015.5.27
实验步骤、实验结果及分析:
1 实验步骤:
1、使用
Proteus ISIS 7 Professional应用程序,建立一个.DSN文件
2、在“库”下拉菜单中,选中“拾取元件”(快捷键P),分别选择以下元件:AT89C51、CAP、CAP-ELEC、CRYSTAL、RESPACK-8。

3、构建仿真电路
图1 按键识别1、2
图2 按键识别3
图3按一下暂停
图4归零
图5时钟调整
电路图
注:1、报告内的项目或设置,可根据实际情况加以补充和调整
2、教师批改学生实验报告应在学生提交实验报告10日内。

独立式键盘的设计与应用实验报告

独立式键盘的设计与应用实验报告

独立式键盘的设计与应用实验报告实验报告:指导教师:xxx实验者:13410801 xx 13410802 xxx一、实验目的:1.了解直接输入键盘与矩阵键盘的原理。

2.了解键盘寄存器的功能。

3.掌握键盘输入的编程方法。

二、实验要求:1.对所有16个按键进行编码,当按键后,在七段数码管上显示对应的键盘编码(可以使用一个或两个七段数码管)。

2.对所有16个按键进行编码,当按键后,在八个LED上显示对应的键盘编码。

三、实验内容:1.在键盘寄存器KPC中,使能矩阵键盘。

2.必须在使用前添加下面语句:#define KAPS_VALUE (*((volatile unsigned char*)(0x41500020)))3.接下来在button_statusFetch函数中定义变量,其中j用来获取矩阵键盘的键值,具体如下:char j = 0;j = KAPS_VALUE ;4.最后,在直入键盘的分支语句后添加矩阵键盘的分支代码段,即switch(j){}代码段:switch (j){case 0x00: //key-press 5kbd_buff=0x8F12;LED_CS2 = kbd_buff;Delay(400);break;……四、程序编辑:;post_initGpio.sEXPORT post_initGpioAREA post_initGpio ,CODE ,READONLYldr r1,=0x40e00000;GPSR0MOV R0,#0x3000 ;GPIO<13:12>STR R0,[R1,#0x18];GPCR0MOV R0,#0x800 ;GPIO<11>STR R0,[R1,#0x24];GAFR0_L/////////////////////////////////////////////// /// MOV R0,#0x80000000 ;GPIO<15>:F2:nCS1 STR R0,[R1,#0x54];GAFR0_Uldr R0,=0x10 ;0xa5000010STR R0,[R1,#0x58];GPDR0///////////////////////////////////////////////// ldr R0,=0xc1a08000 ;GPIO<15>:nCS1 STR R0,[R1,#0xc];GPSR1MOV R0,#0STR R0,[R1,#0x1c];GPCR1MOV R0,#0STR R0,[R1,#0x28];GAFR1_LLDR R0,=0xc9c ;0xa9558STR R0,[R1,#0x5c];GAFR1_ULDR R0,=0xca0 ;0xaaa590aaSTR R0,[R1,#0x60]LDR R0,=0xca4 ;0xfccf0382STR R0,[R1,#0x10];GPSR2MOV R0,#0x10000STR R0,[R1,#0x20];GPCR2MOV R0,#0STR R0,[R1,#0x2c];GAFR2_L////////////////////////////////////ldrR0,=0xa0000000 ;0xaaaaaaaa ;GPIO<79:78>:nCS<3:2> STR R0,[R1,#0x64];GAFR2_U/////////////////////////////////////////ldr R0,=0x50000400;0x50090402 ;GPIO<95:94,80>:KP_DKIN<1>,KP_DKIN<2>,nCS4 STR R0,[R1,#0x68];GPDR2///////////////////////////////////////////ldr R0,=0x0221ffff ;GPIO<80:78>:nCS<4:2>STR R0,[R1,#0x14]; LDR R0,=0xca8; STR R0,[R1,#0x68]MOV R0,#0x20000STR R0,[R1,#0x118];GPCR3MOV R0,#0STR R0,[R1,#0x124];GAFR3_L////////////////////////////////////////////// ldr R0,=0x020a95c3 ;GPIO<108,105:98>STR R0,[R1,#0x6c];GAFR3_Uldr R0,=0x1408STR R0,[R1,#0x70];GPDR3///////////////////////////////////////////////// / ldr R0,=0x21381;GPIO<108,105:103>STR R0,[R1,#0x10c];config twice:;GAFR0_Uldr R0,=0xa5000010 ;0x0x10STR R0,[R1,#0x58];GAFR1_LLDR R0,=0xa9558 ;0xc9cSTR R0,[R1,#0x5c]LDR R0,=0xaaa590aa ;0xca0STR R0,[R1,#0x60];GPDR1LDR R0,=0xfccf0382 ;0xca4STR R0,[R1,#0x10];GAFR2_L/////////////////////////////////////////////// ////ldr R0,=0xa0000000 ;GPIO<79:78>:nCS<3:2>STR R0,[R1,#0x64];GAFR2_U/////////////////////////////////////////////// //////////////// ////////ldr R0,=0x50090402;GPIO<95:94,80>:KP_DKIN<1>,KP_DKIN<2>,nCS4STR R0,[R1,#0x68]mov pc,r14END;post_initKey.sEXPORT post_initKeyAREA post_initKey, CODE, READONLYnopnopldr r1,=0x41500000;KPCldr r0,=0x3FAFF1C2 ; (0x2FAFF9C3:interrupt) str r0,[r1,#0x0];KPDK; ldr r0,=0x1; str r0,[r1,#0x8]; ;KPREC; ldr r0,=0x1; str r0,[r1,#0x10];KPMK; ldr r0,=0x1; str r0,[r1,#0x18];KPAS; ldr r0,=0x1; str r0,[r1,#0x20]; ldr r0,=0x1; str r0,[r1,#0x0];KPKDIldr r0,=0x707str r0,[r1,#0x48]mov pc,r14END五、实验结果:当按下键盘上的按键时,七段数码管可以显示出对应的编码。

独立按键识别-单片机原理-实验报告

独立按键识别-单片机原理-实验报告

宁德师范学院计算机系实验报告(2014—2015学年第2学期)课程名称单片机原理实验名称独立按键识别专业计算机科学与技术(软工)年级2012级学号B2012103145 姓名冯武指导教师杨烈君实验日期2015、5、27实验步骤、实验结果及分析:1实验步骤:1、使用Proteus ISIS 7 Professional应用程序,建立一个、DSN文件2、在“库”下拉菜单中,选中“拾取元件”(快捷键P),分别选择以下元件:AT89C51、CAP、CAP—ELEC、CRYSTAL、RESPACK—8.3、构建仿真电路图1 按键识别1、2图2 按键识别3图3按一下暂停图4归零4、创建一个Keil 应用程序:新建一个工程项目文件;为工程选择目标器件(A T89C52);为工程项目创建源程序文件并输入程序代码;保存创建得源程序项目文件;把源程序文件添加到项目中。

5、把用户程序经过编译后生成得HEX 文件添加到仿真电路中得处理器中(编辑元件→文件路径) 2 实验程序 〈流程图>(1)按键识别 ( 按下L ED灯亮,再按灭)#incl ude 〈reg51、h 〉#de fi ne uint unsigned int#d efine uc har uns igne d ch ars bit l ed=P2^6;sbit key=P2^7;void delay(ui nt x ){while(x ——);}voi d ma in(){ﻩ while (1) ﻩ{ ﻩﻩif(key==0) { dela y(1000);if (ke y==0)ﻩﻩ {ﻩ led=~led ;whi le(k ey==0);ﻩ }ﻩﻩ }}}(2)按键识别 ( 按下灭,再按闪)#in clude 〈re g51、h〉#d ef ine u int unsig ned in t#def ine uch ar unsign ed charsb it led=P2^6;sbit key =P2^7;void d elay(uin t x){图5时钟调整 电路图注:1、报告内得项目或设置,可根据实际情况加以补充与调整2、教师批改学生实验报告应在学生提交实验报告10日内。

一、 独立式键盘接口电路及程序设计

一、 独立式键盘接口电路及程序设计

; 选择边沿触发方式 ; 允许外部中断0 ; 允许CPU中断 ; 送8155命令口地址
; 控制字写入 ; 模拟主程序
ORG 0120H
; 中断服务程序
KEYJMP:MOV R3, #08H
; 设循环次数
MOV DPTR,#0EF01H ; 送A口地址
MOV R4, #00H
; 计数器清零
MOVX A, @DPTR ; 读入按键状态
一、 独立式键盘接口电路及程序设计
首先判断有无键按下; 若检测到有键按下,延时10ms避开抖动的影响,查询是哪 一键被按下并执行相关的操作。 然后再用软件查询等待按键的释放,当判明键释放后,用 软件延时10ms后再返回。
第二次延时的作用是: 一方面避开按键释放时触点 抖动的影响;另一方面也具 有防连击的功能。
二状态分析法设计键盘分析程序的设计32led321led显示原理322七段led显示及接口323点阵led显示及接口led即发光二极管它是一种由某些特殊的半导体材料制作成的pn结由于参杂浓度很高当正向偏置时会产生大led显示器具有工作电压低体积小寿命长约十万小时响应速度快小于1s颜色丰富红黄绿等等特点是智能仪器最常使用的显示器
SB0: … … ; 转相…应…功能处理
SB1;:入J口…MP地…址K表EYRET ……
JMP KEYRET ……
AJMP SB4
……
AJMP SB5
SB7: … …
AJMP SB6
……
AJMP SB7
JMP KEYRET
;S0键功能程序 ;S0键执行完返回 ;S1键功能程序
;S7键功能程序
二、 矩阵式键盘接口电路及程序
能完成上述工作的程序清单如下:
ORG 0000H AJMP MAIN ORG 0003H AJMP KEYJMP

实验五:独立式键盘实验

实验五:独立式键盘实验

实验五:独立式键盘实验4.5.1 实验目的1. 掌握单片机独立键盘接口设计方法。

2. 掌握单片机键盘扫描程序设计方法。

3. 掌握按键功能设计方法。

4. 掌握软件消除按键抖动方法。

4.5.2 实验预习1.熟悉Keil集成编译环境的使用方法。

2. 复习单片机C语言程序设计方法。

3. 复习独立键盘工作原理。

4. 复习按键去抖动方法。

4.5.3 实验原理实验板上提供4个独立按键,与单片机接口如图4.5.1所示,每个按键单独接单片机一个I/O接口。

只要将相应端口设为1,然后判断端口状态,如果仍为1,则按键处于断开(释放)状态,如果为0,则按键处于接通(闭合)状态。

图4.5.1 独立键盘电原理图4.5.4 预作实验任务1. 用Proteus仿真软件绘制独立键盘电路图,包括如图4.5.1所示键盘接口,单片机最小系统以及数码管动态显示电路。

2. 简述按键识别过程中如何等待按键释放。

3. 简述按键抖动对单片机系统工作性能的影响,并简介消除按键抖动的方法。

4. 编写按键识别函数,要求正确识别4个按键的状态,如果有按键按下则返回键值,从左到右四个键值分别为1~4。

并通过仿真或实验板验证(要求用软件的方法消除按键抖动)。

5.为实验板上4个按键设定不同的功能,在数码管上显示数字128,4个按键按下后分别对显示的数字做如下修改:key1:数字+1;key2:数字-1;key3:数字+10;key4:数字-10;流程图如图4.5.2所示,试设计完整程序(按键识别子程序KEYSCAN和动态显示子程序DISPLAY可直接调用这里省略)。

图4.5.2 按键功能设计流程图4.5.5 实验任务1.开机时数码管显示1002.按键key1一次数字加1,按键key2一次数字减1。

加到999时再加1归零,减到000时再减1得999。

3.按住键key3不放实现连加功能,每0.2s加1。

4.按住键key4不放实现连减功能,每0.2s减1。

4.5.6 实验步骤1.分析题意,确定算法,绘制主程序流程图。

独立按键实验总结范文

独立按键实验总结范文

一、实验背景在单片机实验中,独立按键实验是一个基础且重要的实验项目。

通过本实验,我们能够了解独立按键的工作原理、硬件连接以及软件编程方法,从而为后续的单片机应用开发打下坚实的基础。

二、实验目的1. 掌握独立按键的工作原理及硬件连接方法;2. 学会编写独立按键的软件程序,实现按键控制LED灯的亮灭;3. 熟悉单片机编程过程中的延时函数、状态判断等基本操作。

三、实验内容1. 独立按键的工作原理独立按键是一种电子开关,通过内部金属片的接触与断开来控制电路的连通与断开。

在未按下按键时,内部金属片不接触,电路断开;当按下按键时,内部金属片接触,电路导通。

按键的内部结构如图1所示。

2. 独立按键的硬件连接本实验使用了一个独立按键和一个LED灯作为实验对象。

按键的一端接地,另一端连接到单片机的P3.0口,LED灯的正极连接到单片机的P1.0口,负极连接到地。

电路连接如图2所示。

3. 独立按键的软件编程(1)编写延时函数延时函数用于实现按键消抖处理。

以下是一个10ms延时的函数实现:```cvoid delay10ms(unsigned int ms){unsigned int i, j;for(i = 0; i < ms; i++)for(j = 0; j < 123; j++);}```(2)编写按键检测函数按键检测函数用于检测按键是否被按下。

以下是一个按键检测函数的实现:```cunsigned char checkKey(void){if(P3_0 == 0) // 检测按键是否被按下{delay10ms(500); // 延时消抖if(P3_0 == 0) // 再次检测按键是否被按下return 1; // 按键被按下}return 0; // 按键未被按下}```(3)编写主函数主函数用于实现按键控制LED灯的亮灭。

以下是一个主函数的实现:```cvoid main(void){while(1){if(checkKey()) // 检测按键是否被按下{LED = !LED; // 切换LED灯状态delay10ms(500); // 延时消抖}}}```四、实验总结通过本次独立按键实验,我们掌握了以下知识点:1. 独立按键的工作原理及硬件连接方法;2. 独立按键的软件编程,包括延时函数、按键检测函数以及主函数;3. 按键消抖处理的重要性及实现方法。

按键功能实验报告总结(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、按键直接与I/O口连接
19:34
应用电子系
1
【例】按图(a)、(b),分别编制按键扫描子程序。
按图(b)编程如下:
KEYB:ORL P1,#07H
;置P1.0~P1.2为输入态
MOV A,P1
;读键值,键闭合相应位为1
ANL A,#00000111B ;屏蔽高5位,保留有键值信息的低3位
JB
Acc.1,KB1
;转1#键功能程序
JB
Acc.2,KB2
;转2#键功能程序
GRET:RET
KB0: LCALL WORK0
;执行0#键功能子程序
RET
KB1: LCALL WORK1
;执行1#键功能子程序Fra bibliotekRETKB129::3LR4CEATLL WORK2
;执行2#键功能子程序
应用电子系
2
2、按键与并行扩展I/O口连接
JZ GRET
;全0,无键闭合,返回
LCALL DY10ms
;非全0,有键闭合,延时10ms,软件去抖动
MOV A,P1
;重读键值,键闭合相应位为1
ANL A,#00000111B ;屏蔽高5位,保留有键值信息的低3位
JZ GRET
;全0,无键闭合,返回;非全0,确认有键闭合
JB
Acc.0,KB0
;转0#键功能程序
19:34
应用电子系
3
【例】按图编制按键扫描子程序,将键信号存入内 RAM 30H。
解:编程如下:
KEY99: MOV DPTR,#7FFFH ;置74373口地址
MOVX A,@DPTR ;输入键信号(“0”有效)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验项目五独立按键电路的设计与仿真
[实验目的]
1.掌握独立键盘的工作原理
2.掌握独立键盘硬件电路的设计方法
3.掌握对独立键盘的控制方法
[实验原理]
[实验仪器]
PC机一台
[Proteus用到器件的关键词]
单片机(at89c52)、数码管(7seg-com-cathode)、排阻(respack-7)、按键(button)、蜂鸣器(buzzer active)
[实验内容与步骤]
1.用Proteus软件设计出独立键盘接口电路原理图。

2.用P2.1口来控制独立键盘ADDKEY,每按一次按键,让数码管显示的数值加1一次,一直加到9,再按一次,数码管重新显示0。

同时,每按一次键,蜂鸣器会发“滴”的声音。

3.在进行按键处理时,要注意按键去抖动的软件处理方法,在按键松开时要进行按键松手检测。

4.用Keil编写程序,完上上面所描述的任务,最后调试程序、编译后生成HEX文件。

5.将HEX文件装载到MCU AT89C52中,单击Start按钮开始动态仿真。

[实验数据记录]
ADDKEY BIT P2.1
BEEP BIT P2.6
ORG 0000H
AJMP MAIN
ORG 0050H
MAIN: MOV P0,#00H
LCALL DELAY
MOV DPTR,#0100H
LP: JB ADDKEY,$ ;检测到有键按下
CLR BEEP
LCALL DELAY ;软件延时去抖
SETB BEEP
JB ADDKEY,$ ;确实有键按下
JNB ADDKEY,$ ;松手检测
LCALL DISPLAY
SJMP LP
DISPLAY:MOVC A,@A+DPTR
MOV P0,A
INC DPTR
CLR A
MOV R2,DPL
CJNE R2,#10,DONE ;数码显示到9,给DPL重新赋值,并清零计数器R2
MOV R2,#00H
MOV DPL,#00H
DONE: RET
DELAY: MOV R0,#64H ;延时100ms
DL1: MOV R1,#0C8H
DL2: NOP
NOP
NOP
DJNZ R1,DL2
DJNZ R0,DL1
RET
ORG 0100H
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;段选代码,对应0123456789 END
[实验数据处理]
[实验结果及讨论]。

相关文档
最新文档