单片机原理(按键识别 )实验报告
单片机独立按键识别实验报告
桂林电子科技大学
实验报告
2016-2017 学年第一学期
开课单位海洋信息工程学院
适用年级、专业 14级机械设计制造及其自动化
课程名称《单片微型计算机与接口技术-课内实验》
主讲教师周旋
课程序号 BS1615000_03
课程代码 BS1615000 实验名称《独立按键识别》
学号 1416010516 - 17 姓名林亦鹏卢炳荣
独立按键识别实验报告
电路采用无源蜂鸣器,从P1.5口形成脉冲来驱动。
因为单片机开机初始化瞬间,其I/O口为高电平,会有误响动作。
单片机的独立键盘使用的是P1口。
当有键按下时,P1口相应位为低电平。
、查找资料说明按键抖动的原因。
、延时程序是怎么实现延时的?
定义蜂鸣器的连接端口--//。
单片机控制按键实训报告
一、实训目的1. 掌握单片机的基本工作原理和硬件结构;2. 熟悉单片机编程环境及编程方法;3. 学习按键控制的基本原理和编程技巧;4. 提高动手能力和解决问题的能力。
二、实训内容1. 单片机简介2. 单片机编程环境及编程方法3. 按键控制原理及编程4. 实验设计与实现三、实训步骤1. 单片机简介(1)单片机定义:单片机是一种集成度高、功能强大的微处理器,具有运算、存储、输入输出、定时计数等功能。
(2)单片机硬件结构:主要包括中央处理单元(CPU)、存储器(RAM、ROM)、输入输出接口(I/O)、定时器/计数器、串行通信接口等。
2. 单片机编程环境及编程方法(1)编程环境:Keil uVision、IAR EWARM等。
(2)编程语言:C语言、汇编语言等。
3. 按键控制原理及编程(1)按键控制原理:按键作为一种输入设备,其作用是将物理信号转换为电信号,通过单片机对电信号进行处理,实现相应的功能。
(2)按键编程技巧:① 按键消抖:由于按键存在机械特性,按下和释放时会产生抖动,导致单片机检测到多个按键动作。
为了消除抖动,通常采用软件消抖方法,如延时消抖、计数消抖等。
② 按键扫描:按键扫描是检测按键状态的一种方法,通过单片机的I/O口循环检测每个按键的状态,实现按键的识别。
③ 按键去抖:在按键扫描过程中,若检测到按键动作,则需要进行去抖处理,以消除抖动对按键识别的影响。
4. 实验设计与实现(1)实验目的:通过按键控制LED灯的亮灭。
(2)实验原理:当按下按键时,单片机检测到按键动作,通过编程控制LED灯亮起;当按键释放时,单片机检测到按键释放,控制LED灯熄灭。
(3)实验步骤:① 准备实验器材:单片机、按键、LED灯、电阻、面包板等。
② 连接电路:将按键、LED灯、电阻等元器件连接到单片机的相应引脚上。
③ 编写程序:根据实验原理,编写控制LED灯的亮灭程序。
④ 烧录程序:将编写的程序烧录到单片机中。
⑤ 测试程序:观察LED灯的亮灭状态,验证程序的正确性。
单片机独立按钮实训报告
一、实训目的通过本次单片机独立按钮实训,掌握单片机的基本原理,了解独立按钮的工作原理及其在单片机中的应用,提高动手实践能力,为后续单片机相关课程的学习打下坚实基础。
二、实训内容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点亮显示。
二、实验原理矩阵键盘是一种由多路单向控制器输入行选择信号与列选择信号连接而形成的一一对应矩阵排列结构。
它广泛应用于电子游戏机、办公自动化设备、医疗仪器、家电控制及书籍检索机器等方面。
本次实验采用的矩阵键盘是一个4 x 4矩阵,用4段数码管显示按键编码,每个按键都可以输入一个代码,矩阵键盘连接单片机,实现一个软件算法来识别键码转化。
从而将键盘中的按键的按下信号转换成程序能够识别的代码,置于相应的输出结果中,控制LED点亮,从而可以实现矩阵键盘按键的转换功能。
三、实验方法1.硬件搭建:矩阵键盘(4行4列)与单片机(Atmel AT89C51)相连,选择引脚连接,并将数码管和LED与单片机相连以实现显示和点亮的功能。
2.程序设计:先建立控制体系,利用中断服务子程序识别和码值转换,利用中断服务子程序实现从按键的按下信号转换为程序能够识别的代码,然后将该代码段编写到单片机程序中,每次按下矩阵键盘按键后单片机给出相应的按键编码输出,用数码管显示,控制LED点亮。
四、实验结果经过实验,成功实现了矩阵键盘与单片机之间的连接,编写了中断服务子程序,完成了按键编码输出与LED点亮的功能。
实验完成后,数码管显示各种按键的编码,同时LED会点亮。
本次实验介绍了矩阵键盘的原理,论述了键码转换的程序设计步骤,并实验完成矩阵键盘与单片机的连接,实现用LED点亮以及数码管显示按键的编码。
通过本次实验,受益匪浅,使我对使用单片机编写算法与程序有了更深入的认识,同时丰富了课堂学习的内容,也使我更加热爱自己所学的专业。
独立按键识别-单片机原理-实验报告
宁德师范学院计算机系
实验报告
(2014—2015学年第2学期)
课程名称单片机原理
实验名称独立按键识别
专业计算机科学与技术(软工)年级2012级
学号B********** 姓名冯武
指导教师杨烈君
实验日期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日内。
单片机原理实验报告(详细)
湖南城市学院实验报告2018-2019 学年上学期姓名:***班级学号:******实验课程:单片机原理及应用实验室名称:电子工程实验室湖南城市学院信息与电子工程学院实验中心印制实验项目名称:实验一指示灯和开关控制器实验一、实验目的及要求1、学习51单片机I/O基本输入/输出功能,掌握汇编语言的编程与调试方法;2、熟悉proteus软件,了解软件的结构组成与功能;3、学会在ISIS模块中进行汇编程序录入、编译和调试;4、理解单片机程序控制原理,实现指示灯/开关控制器的预期功能。
二、实验原理实验电路原理图如图1所示,图中输入电路由外接在P3口的8只拨动开关组成;输出电路由外接在P2口的8只低电平驱动的发光二极管组成。
此外,还包括时钟电路、复位电路和片选电路。
图1 实验原理图在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的灯亮状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。
软件编程原理为:(1)8只发光二极管整体闪烁3次亮灯:向P2口送入数值0;灭灯:向P2口送入数值0FFH;闪烁3次:循环3次;闪烁快慢:由软件延时时间决定。
(2)根据开关状态控制灯亮或灯灭开关控制灯:将P3口(即开关状态)内容送入P2口;无限持续:无条件循环。
程序流程图如图2所示。
图2 实验程序流程图三、实验仪器设备及装置(1)硬件:电脑一台;(2)仿真软件:Proteus;(3)编程软件Keil uVision4。
其中,仿真软件ISIS元件清单如表1所示。
表1 仿真软件ISIS元件清单四、实验内容和步骤(一)实验内容:(1)熟悉ISIS模块的汇编程序编辑、编译与调试过程;(2)完成实验的汇编语言的设计与编译;(3)练习ISIS汇编程序调试方法,并最终实现实验的预期功能。
(二)实验步骤:(1)提前阅读与实验相关的阅读材料;(2)参考指示灯/开关控制器的原理图和实验的元件清单,在ISIS中完成电路原理的绘制;(3)参考程序流程图在Keil uVision4中编写和编译汇编语言程序;(4)利用ISIS的汇编调试功能检查程序的语法和逻辑错误;(5)观察仿真结果,检验与电路的正确性。
单片机按键实验实训报告
一、实验目的1. 理解单片机按键的工作原理和电路连接方法;2. 掌握按键消抖原理及其实现方法;3. 学会使用单片机编程控制按键功能,实现简单的输入控制;4. 提高单片机实验操作能力和编程能力。
二、实验仪器及设备1. 单片机开发板(如STC89C52);2. 按键;3. 万用表;4. 电脑;5. Keil C编译器。
三、实验原理1. 按键原理:按键是一种电子开关,按下时导通,松开时断开。
在单片机应用中,按键常用于输入控制信号。
2. 按键消抖原理:由于按键机械弹性,闭合和断开时会有一连串的抖动。
若直接读取按键状态,容易导致误操作。
因此,需要进行消抖处理。
3. 消抖方法:主要有软件消抖和硬件消抖两种方法。
本实验采用软件消抖方法,即在读取按键状态后,延时一段时间再读取,若两次读取结果一致,则认为按键状态稳定。
四、实验步骤1. 硬件连接:将按键一端接地,另一端与单片机的某个I/O口相连。
2. 编写程序:使用Keil C编译器编写程序,实现以下功能:(1)初始化I/O口,将按键连接的I/O口设置为输入模式;(2)读取按键状态,判断按键是否被按下;(3)进行消抖处理,若按键状态稳定,则执行相应的功能。
3. 编译程序:将编写好的程序编译成HEX文件。
4. 烧录程序:将编译好的HEX文件烧录到单片机中。
5. 实验验证:观察实验现象,验证按键功能是否实现。
五、实验结果与分析1. 硬件连接正确,程序编译无误。
2. 实验现象:当按下按键时,单片机执行相应的功能;松开按键后,按键功能停止。
3. 分析:通过软件消抖处理,有效避免了按键抖动导致的误操作。
六、实验总结1. 本实验成功实现了单片机按键控制功能,掌握了按键消抖原理及实现方法。
2. 通过实验,提高了单片机编程和实验操作能力。
3. 在后续的单片机应用中,可以灵活运用按键控制功能,实现各种输入控制需求。
4. 本次实验为单片机应用奠定了基础,为进一步学习单片机技术打下了良好基础。
单片机独立按键实验报告总结
单片机独立按键实验报告总结本次实验我们使用了单片机进行了独立按键实验,通过学习掌握了单片机输入输出口的基本使用方法以及独立按键的使用方法和技巧。
以下是本次实验的总结:一、实验内容本次实验的主要内容是独立按键的使用方法和技巧。
通过学习,我们掌握了独立按键的接法原理和基本应用方法。
在实验中,我们首先通过理论学习了按键的工作原理,了解了按键在电路中的应用和接法方法,然后实际动手进行了按键电路的搭建和单片机程序的编写,最后进行了按键测试和实验结果分析。
二、实验步骤1.理论学习:首先,我们学习了独立按键的工作原理和接法原理,了解按键在电路中的应用和接法方法,掌握了按键接口的输入输出方式,并对具体实现过程和技巧进行了分析和探讨。
2.电路搭建:根据学习到的按键接法原理和电路图,我们使用面包板和导线搭建了独立按键电路,将按键连接到单片机的输入端口上,并设置相应的电阻来保护电路和单片机芯片。
3.程序编写:通过阅读单片机说明书和参考其他资料,我们学习了单片机输入输出口的基本使用方法和指令,编写了程序代码,实现了独立按键操作的功能。
我们实现了多种按键操作方式,包括单击、长按等方式,并添加了相应的提示和保护措施,以确保程序的可靠性和稳定性。
4.测试实验:最后,我们进行了独立按键测试实验,通过按键操作,观察测试实验结果,进行了数据分析和结论汇总。
实验结果表明,我们的按键电路和程序代码都实现了预期的功能和效果,证明了我们在实验中掌握的独立按键技巧和方法是正确和有效的。
三、实验结论通过本次实验,我们掌握了单片机输入输出口的基本使用方法和独立按键的使用方法和技巧,了解了按键在电路中的应用和接法方法,探索了独立按键实现的多种方式和技巧,提高了我们的电路设计能力和程序设计能力。
同时,本次实验还加强了我们的实验动手操作能力,增强了我们的实际应用能力和创新思维能力,为我们以后的学习和工作打下了坚实的基础。
单片机键盘检测控制实验原理
单片机键盘检测与控制实验是嵌入式系统和数字电子技术领域的一个常见实验,通过该实验,可以学习到单片机输入输出的基本原理、数字信号的处理方法以及键盘输入的检测和控制技术。
以下是这个实验的基本原理和步骤:**实验目的:**1. 了解单片机的输入输出原理。
2. 掌握键盘输入的检测原理。
3. 实现对键盘输入的基本控制。
**实验原理:**1. **单片机输入输出原理:** 单片机通常具有一些通用输入输出引脚,用于与外部设备进行信息交互。
这些引脚可以配置为输入或输出模式。
在实验中,我们主要使用单片机的输入引脚,将键盘连接到这些引脚上,以便单片机可以读取键盘的输入信号。
2. **键盘输入的检测原理:** 键盘通常是由多个按键组成的矩阵结构。
每个按键都与键盘的一行和一列相连。
通过扫描键盘的行和列,可以检测到哪个按键被按下。
具体步骤如下:- **行扫描:** 单片机首先选择一行,将该行置为低电平,同时检测每一列的状态。
如果某一列为低电平,说明该列对应的按键被按下。
- **列扫描:** 单片机依次选择每一列,将该列置为低电平,同时检测每一行的状态。
如果某一行为低电平,说明该行对应的按键被按下。
3. **实现对键盘输入的基本控制:** 一旦检测到按键按下的信号,单片机可以采取相应的措施,例如在数码管上显示按下的键值、驱动LED灯等。
**实验步骤:**1. **连接键盘:** 将键盘的行和列引脚连接到单片机的相应引脚上。
2. **编写程序:** 使用编程语言(如C语言或汇编语言)编写程序,实现键盘输入的检测和控制逻辑。
3. **下载程序:** 将编写好的程序下载到单片机中。
4. **运行实验:** 接通电源,运行实验,观察键盘输入的检测和相应控制的效果。
**实验注意事项:**1. 确保键盘连接正确,行和列的对应关系准确。
2. 程序中的扫描算法要正确,确保能够准确检测到键盘的按键状态。
3. 在程序中加入防抖动处理,防止由于按键机械弹性导致的多次触发。
单片机实验报告实验5行列式键盘实验
学号姓名专业电气工程及其自动化班级实验5 行列式键盘实验一、实验目的(1)、学习掌握行列式键盘接口方法(2)、学习掌握行列式键盘编程方法。
二、实验内容用单片机P1口接4*4键盘,P0口接共阳数码管,编程实现键字的显示。
P1.0-P1.3为行,P1.4-P1.7为列。
先给端口设处置FEH,相当于给第一行置0,然后分写列值,如果对应的列值为0,说明该行与该列交叉处的键是按下的,接下来扫描第二行,与第一行的操作相同。
这就是行列式键盘扫描原理。
当扫描到某行的键按下时,就退出扫描,然后取键值,再将键值对应的额编码送P0端口显示。
三、实验设备计算机(已安装Keil和Proteus软件)元器件:A T89C51, CAP, CAP-ELEC, CRYSTAL, RES, 7SEG-COM-AN-GRN, RESPACK-7, BUTTON四、实验硬件电路实验源程序:#include<reg51.h>charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x7 1};charkey_buf[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x 77};char getkey(void){char key_scan[]={0xef,0xdf,0xbf,0x7f};char i=0,j=0;for(i=0;i<4;i++){P1=key_scan[i];if((P1&0x0f)!=0x0f){for(j=0;j<16;j++){if(key_buf[j]==P1)return j;}}}return -1;}void main(void){char key=0;P0=0x00;while(1){key=getkey();if(key!=1)P0=~led_mod[key]; }}五、实验要求(1)、根据实验内容设计相应的调试程序,并通过仿真,运行正确。
最新单片机实验三键盘识别实验
单片机实验三键盘识别实验昆明理工大学信息工程与自动化学院学生实验报告(2012—2013学年第1学期)课程名称:单片机技术开课实验室:信自楼402 2012年 12月 4日一、实验目的掌握单片机I/O口的输入检测的方法、独立按键的识别方法、键盘消抖等。
学会实时程序的调试技巧。
二、实验原理我们在手动按键的时候,由于机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms 左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到稳定的时间也为5-10ms,如果我们在首次检测到键被按下后延时10ms 左右再去检测,这时如果是干扰信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。
三、实验内容在如下实验电路中每按一次独立键盘的S2 键,与P1 口相连的八个发光二极管中点亮的一个往下移动一位。
图1 实验板键盘电路原理图四、实验步骤及结果1、按实验要求在KeilC中创建项目,编辑、编译程序。
(1)创建项目:注意文件为。
”.c”文件。
(2) 选择Device为“Atmel 89C52”(3)添加文件及编辑、编译程序2、将编译生成的目标码文件(后缀为.Hex)传入实验板中。
(1)编译生成的目标码文件(后缀为.Hex)(2)查看端口号:(2)将编译生成的目标码文件传入实验板中。
3、在实验板上运行程序,观察实验运行结果并记录。
五、实验总结在这次试验中,我们的主要目的是掌握单片机I/O口的输入检测的方法、独立按键的识别方法、键盘消抖等。
通过这次试验我对键盘输入检测有方法有了初步的了解。
键盘是单片机运用系统中最常用的输入设备,在单片机运用系统中,操作人员一般都通过键盘向单片机体统输入指令、地址和数据,实现简单的人机通信。
键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。
抖动时间的长短由按键开关的机械特性决定,一般是5到10ms,这种抖动对于人体来说是感觉不到的,但对于单片机来说,则是完全可以感应到的。
微机原理 单片机 实验6 按键识别与数码管动态显示
四、程序烧入时的2000综合仿真 仪与微型计算机连接起来; 2) 在XL2000综合仿真仪上,将JP13和JP14 两个232/USB通信选择方式端口的跳线帽跳至 232的方式;
3)将JP17的开关设置在弹起位置,选择编程 模式;
本次实验报告中要回答的问题
实验五 按键识别与数码管动态显示 一、实验目的:
1、输出显示与键盘输入是扩展的重要内容。要求 掌握数码管动态显示与矩阵按键的识别技术。 2、熟悉XLISP系列 单片机综合仿真试验仪的组成 和使用方法。
(1)学会XLISP软件的应用:XLISP的安装、检测、 程序擦除和烧写过程。
(2)用XLISP软件和keil-uvision2集成调试软件进 行实验并能得到正确的实验结果。
(4)点击(图标)目标1前的“+”号,出现(图标) 源程序组1,选中并点右键,选”文件增加到源程序组 1”,选择文件类型为Asm,再选输入的程序名.ASM, 点ADD(加入),点确定。 此时点击源程序组1可以看到输入的程序名.ASM
(5)程序编写完成,并将*.asm添加到工
程中后,进行仿真前,对目标1的属性进行修 改;
如右图,点击工 程下拉菜单中的 ”目标’目标1’ 属性”;
单击”目标”,输入仿真器的频率12(MHz);
选择”输出”菜单中的”生成HEX文件”, 以便汇编后产生HEX代码,供编程器使用;
(6)点击调试 开始调试,点击屏幕上方左下角的 编译图标 对文件进行编译,观察左下角的调试程序 信息显示,如有错可根据该栏提示的信息进行修改, 修改后要重新保存和编译,直到无错误提示。
单片机实验五报告_单片机键盘实验
南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合■设计⃞创新实验日期:2018.05.18 实验成绩:实验五单片机键盘实验(一)实验目的1.掌握单片机键盘控制;2.掌握数码管显示控制。
(二)设计要求1.行列扫描按键键值为0~F;2.按键只支持单键按下,不支持多键同时按下;3.要求用数码管显示按键值。
(三)实验原理1.矩阵式键盘的设计按键数目较多的杨合常采用矩阵式(也称行列式)键盘。
键盘由行线和列线组成,按键位于行、列的交叉点上,如下图所示,一个4×4的行列结构可构成一个16个按键的键盘,需要一个8位的并行I/O口。
很明显,在按键数目较多的场合,矩阵式键盘要比独立式键盘节省较多的I/O口线。
对下图所示的矩阵式键盘的查询扫描,一般包括以下4个步骤。
(1)首先判别整个键盘有无按键按下方法为单片机驱动列线P0.0-P0.3输出全0,然后读行线P0.4-P0.7的状态,若全为1,则键盘上没有闭合键;若P0.4-P0.7,则有键按下。
(2)去除键的抖动当判别出可能有键按下时,软件延时一段时间(10ms左右)再判别键盘的状态,若仍有键闭合,则认为键盘上有确定的键按下,否则是键抖动。
(3)求出按下键的键号上图中的16个按键,键号依次为0,1,...15。
各行的首键号分别为0,4,8,12,列号依次为0,1,2,3。
行线通过上拉电阻接+5V,当无键按下时,行线为高电平,当有按键按下时,对应的行线与列线短接,行线的电平将由此行线相连的列线电平决定。
如果把行线设置为单片机的输入口线,列线设置为单片机的输出口线,则按键号的识别过程是:先令0列线P0.0为低电平0,其余3根列线都为高电平,遂行检查行线状态。
如果行线P0.4-P0.7都为高电平1,则P0.0这列上没有按键闭合,若P0.4-P0.7中有一行为低电平,则该行线与列线交叉的按键按下。
如果P0.0这一列上没有按键闭合,接着再使P0.1为低电平,其余列线为高电平。
独立按键识别-单片机原理-实验报告
师学院计算机系
实验报告
(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日。
单片机按键的识别与显示实验报告
单片机按键的识别与显示实验报告
一、实验目的
1.掌握单片机I/O的工作方式;
2.掌握单片机以串行口方式0工作的LED显示;
3.掌握按键的识别和LED显示的编程方法。
二、实验器材
1.G6W仿真器一台。
2.MCS—51实验板一台。
3.PC机一台。
4.电源一台。
三、实验内容及要求
8051单片机的PI口作为8个按键的输入端,构成独立式键盘。
四个LED显示器通过四个串/井移位寄存器74L51644接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。
编写一个计算器程序,当某一键按下时可执行相应的加、减、乘、除运算方式,在四个显示器上显示数学算式和最终计算结果。
注:①通过按键来选择加、减、乘、除四种运算方式。
②输入两个数字均为一位十进制数,可预先放在内存中。
单片机原理-独立按键识别-单片机原理-实验报告
实验报告
(2014—2015学年 第2学期)
课程名称单片机原理
实验名称独立按键识别
专 业计算机科学与技术(非师)
年 级12级
学号B2012102147姓名王 秋
指导教师杨烈君
实验日期2015.5.27
实验目的:
1.掌握查询式按键的原理和编程方法
2.理解按键防抖技术
实验要求:一
1.在Proteus软件中画好51单片机最小核心 电路,包括复位电路和晶振电路
应的代码
if(Key==O)
{ delay(IOOO); if(Key==0) {
Mode=(Mode+1)%2; while(Key==O);
}}if(Mo来自e==0) Led 1=0;if(Mode==1)
{
Led仁〜Led1; delay(IOOO);
}
}
void mai n()
while⑴button_Cotrol();
图
2.
#i nclude"reg51.h"
#defi ne uchar un sig ned char
sbit Led仁P1A0;sbit Led2=P1A1;
sbit Led3=P1A2;sbit Led4=P1A3;
sbit Key=P3A2;
uchar Mode=0;
void delay(i nt x)II定义时间间隔
7.扩展要求:通过3个按键实现时钟的调整
(KEY1模式,KEY2+,KEY3-)
实验设备(环境):
计算机、Proteus ISIS7Professio nal应用程序、Keil应用程序
实验内容:
单片机按键实验报告
单片机按键实验报告篇一:单片机按键扫描实验报告键盘扫描一.实验目的(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:程序正常运行,但按键显示出现乱码解决:动态显示笔形码错误,并改正。
按键功能实验报告总结(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灯亮度保持不变。
单片机原理(按键识别 )实验报告
教育资料
.
while (1) {
if(key==0) {
delay(1000); if(key==0) {
led=~led; while(key==0); }
} } } (2)按键识别 ( 按下灭,再按闪) #include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit led=P2^6; sbit key=P2^7;
.
switch(j) { case 0 : led=0;break; case 1 : led=~led;delay(100);break; default:break; }
}
}
(3)按键识别 ( 按下数码管数值加 1) #include<reg51.h> #define uint unsigned int #define uchar unsigned char uchar code LedCode[]={ 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00}; uchar DispBuf[8]; sbit led=P2^6;
教育资料
.
if(hour>=24) {
hour=0; }
}
void main() {
uint i=2; while (1) {
if(key==0) {
delay(1000); if(key==0) {
i++; while(key==0); i=i%3;
教育资料
.
} } switch(i)
单片机按键扫描实验报告
单片机按键扫描实验报告
实验目的:
通过实验,掌握单片机按键的原理和按键的扫描方法。
实验器材:
1. STC89C52单片机开发板
2. 按键模块
3. 面包板、杜邦线等
实验原理:
单片机按键的原理是通过按键模块接通或断开单片机的某个IO口,从而改变该IO口的电平状态,由单片机检测到电平状态的改变,从而实现对按键的检测和响应。
按键模块一般采用矩阵按键的形式,通过多个IO口设为输出,多个IO口设为输入的方式,实现对多个按键的扫描检测。
按键模块一般会采用行列扫描的方法,即将按键分为多个行和列,按下按键时,某一行和某一列之间接通,从而改变了IO口的电平状态。
实验步骤:
1. 将按键模块连接到单片机开发板的IO口上。
根据按键模块的接口定义将VCC、GND和各个行列引脚分别连接到开发板上。
2. 根据按键模块的引脚定义,编写单片机程序进行按键的扫描。
通过循环检测每个行引脚和每个列引脚之间的电平变化,来判断按键是否被按下。
3. 在程序中可以通过LED等显示设备来显示按键是否被按下的状态。
4. 执行程序,观察按键是否可以正常检测和响应。
实验结果:
实验完成后,观察到按键的检测和响应正常,按下按键时,LED等显示设备可以正确显示按键被按下的状态。
经过实验,掌握了单片机按键的原理和按键的扫描方法,进一步提升了对单片机设备的理解和应用能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
switch(j) { case 0 : led=0;break; case 1 : led=~led;delay(100);break; default:break; }
}
}
(3)按键识别 ( 按下数码管数值加 1) #include<reg51.h> #define uint unsigned int #define uchar unsigned char uchar code LedCode[]={ 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00}; uchar DispBuf[8]; sbit led=P2^6;
教育资料
.
sbit key=P2^7; void delay(uint x) {
while(x--); } void disnum(uint n) {
uint i; for(i=0;i<=7;i++) {
DispBuf[7-i]=n%10; if(n==0&&i)
DispBuf[7-i] =10; n=n/10; }
实验设备(环境): 1.计算机 2.Proteus ISIS 7 Professional 应用程序 3.Keil 应用程序
教育资料
.
实验内容: 按键识别 要求实现: 1. 实现单按键控制 Led 灯闪烁
2. 实现单按键多功能识别——控制 4 路 Led 灯闪烁
3. 实现 0-99 的计数器效果,按一下数值加一
.
实验报告
课程名称
单片机原理
实验名称
独立按键识别
Hale Waihona Puke 专 业 计算机科学与技术(软工)教育资料
.
实验目的与要求:
目的: 1. 掌握查询式按键的原理和编程方法 2. 理解按键防抖技术
要求: 1. 在 Proteus 软件中画好 51 单片机最小核心电路,包括复 位电路和晶振电路 2. 在电路中增加按键、Led 灯、八位 7 段数码管(共阳/共阴 自选),将 P2 口作数据输出口与 7 段数码管数据引脚相连 ,P3 引脚输出位选控制信号。 3. 实现单按键控制 Led 灯闪烁 4. 实现单按键多功能识别——控制 4 路 Led 灯闪烁 5. 实现 0-99 的计数器效果,按一下数值加一 6. 实现 0-99 码表 ( 按一次开始计时,第二次停止,第三 次清零 ) 7. 扩展要求: 通过 3 个按键实现时钟的调整 ( KEY1 模 式 , KEY2 + ,KEY3 - )
while(x--); } void main() {
教育资料
.
while (1) {
if(key==0) {
delay(1000); if(key==0) {
led=~led; while(key==0); }
} } } (2)按键识别 ( 按下灭,再按闪) #include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit led=P2^6; sbit key=P2^7;
4. 实现 0-99 码表 ( 按一次开始计时,第二次停止,第三 次清零 )
5. 扩展要求: 通过 3 个按键实现时钟的调整 ( KEY1 模 式 , KEY2 + ,KEY3 - )
RP1
RESPACK-8
U1
19 XTAL1 18 XTAL2
9 RST
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
10 11 12 13 14 15 16 17
1 2 3 4 5 6 7 8 9
D1
D2
D3
D4
LED-GREEN LED-GREEN LED-GREEN LED-GREEN
参考原理图
教育资料
. 教育资料
.
实验步骤、实验结果及分析: 1 实验步骤: 1、使用 Proteus ISIS 7 Professional 应用程序,建立一个.DSN 文 件 2、在“库”下拉菜单中,选中“拾取元件”(快捷键 P),分别选择 以下元件:AT89C51、CAP、CAP-ELEC、CRYSTAL、RESPACK-8。 3、构建仿真电路
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
AT89C51
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
39 38 37 36 35 34 33 32
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
教育资料
.
void delay(uint x) {
while(x--); } void main() {
uint i,j; while (1) { led=1;
if(key==0) {
delay(1000); if(key==0) {
i++; j=i%2; while(key==0);
} }
教育资料
教育资料
.
图 1 按键识别 1、2
教育资料
图 2 按键识别 3 图 3 按键识别 4
.
图 3 按一下暂停
教育资料
图 4 归零
.
图 5 时钟调整
电路图
教育资料
. 教育资料
.
4、创建一个 Keil 应用程序:新建一个工程项目文件;为工程选 择目标器件(AT89C52);为工程项目创建源程序文件并输入程 序代码;保存创建的源程序项目文件;把源程序文件添加到项目 中。 5、把用户程序经过编译后生成的 HEX 文件添加到仿真电路中的 处理器中(编辑元件→文件路径) 2 实验程序 <流程图> (1)按键识别 ( 按下 LED 灯亮,再按灭) #include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit led=P2^6; sbit key=P2^7; void delay(uint x) {