实验二 独立按键试验实验报告

合集下载

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

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

桂林电子科技‎大学
实验报告
2016-2017 学年第一学期‎
开课单位海洋信息工程‎学院
适用年级、专业 14级机械设‎计制造及其自‎动化
课程名称《单片微型计算‎机与接口技术‎-课内实验》
主讲教师周旋
课程序号 BS1615‎000_03‎
课程代码 BS1615‎000 实验名称《独立按键识别‎》
学号 141601‎0516 - 17 姓名林亦鹏卢炳荣
独立按键识别‎实验报告
电路采用无源‎蜂鸣器,从P1.5口形成脉冲‎来驱动。

因为单片机开‎机初始化瞬间‎,其I/O口为高电平‎,会有误响动作‎。

单片机的独立‎键盘使用的是‎P1口。

当有键按下时‎,P1口相应位‎为低电平。

、查找资料说明‎按键抖动的原‎因。

、延时程序是怎‎么实现延时的‎?
定义蜂鸣器的‎连接端口--//。

单片机独立按钮实训报告

单片机独立按钮实训报告

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

二、实训内容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灯是否在按钮按下时亮起。

独立键盘设计实验报告

独立键盘设计实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

双开关实验报告

双开关实验报告

双开关实验报告双开关实验报告引言:在电路实验中,双开关是一种常见的电路元件。

它由两个独立的开关组成,可以分别控制两个电路的通断。

通过对双开关的实验研究,我们可以更好地理解其工作原理和应用场景。

本文将对双开关进行实验探究,并总结实验结果。

实验目的:1. 了解双开关的基本结构和工作原理。

2. 掌握双开关的使用方法和注意事项。

3. 研究双开关在电路中的应用。

实验步骤:1. 准备实验所需材料和仪器:双开关、电源、电线、灯泡等。

2. 将电源与灯泡串联,连接到双开关的两个开关端口。

3. 打开电源,观察灯泡的亮灭情况。

4. 分别操作两个开关,观察灯泡的变化。

实验结果:通过实验观察,我们得出以下结论:1. 当两个开关都关闭时,灯泡不亮。

2. 当一个开关打开,另一个关闭时,灯泡亮。

3. 当两个开关都打开时,灯泡亮。

实验分析:从实验结果可以看出,双开关具有独立控制两个电路的能力。

当两个开关都关闭时,电路中断,灯泡不亮。

当一个开关打开,另一个关闭时,电路闭合,灯泡亮。

当两个开关都打开时,电路再次中断,灯泡不亮。

这种特性使得双开关在电路设计中具有重要的作用。

例如,在家庭灯光控制中,可以使用双开关实现一个开关控制房间内的灯光,另一个开关控制走廊或门口的灯光。

这样,我们可以方便地控制不同区域的灯光,提高生活的便利性。

此外,双开关还可以应用于电路的安全控制。

在某些场合,为了保证电路的安全性,需要使用双开关来控制电源的通断。

例如,在实验室中,对于一些危险的电路,可以使用双开关来加强对电源的控制,避免意外发生。

实验总结:通过本次实验,我们深入了解了双开关的工作原理和应用。

双开关可以独立控制两个电路的通断,具有灵活性和安全性。

在电路设计和实验中,合理应用双开关可以提高电路的可控性和安全性。

在今后的学习和实践中,我们应该进一步探索双开关的应用领域,并结合具体的电路设计,灵活运用双开关,为电路的控制和安全提供更多的可能性。

同时,我们也应该加强对电路元件的理解和实验技能的培养,以便更好地应对电路设计和实验中的挑战。

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

单片机原理-独立按键识别-单片机原理-实验报告
sbit Led3=P1A2;sbit Led4=P1A3;
sbit Key=P3A2;
uchar Mode=0;
void delay(i nt x)II定义时间间隔
while(x--);
}
void button_Cotrol()II根据按键模式执行相
应的代码
{
if(Key==0)
{
delay(IOOO);
33
21
参考原理图
实验步骤、实验结果及分析:
1、使用Proteus ISIS7Professional应用程 序,建立一个.DSN文件
2
3
4
件;为工程选择目标器件(
5
1.
#i nclude"reg51.h"
#defi ne uchar un sig ned char
sbit Led 1= P1A0;
if(Key==0)
{
Mode=(Mode+1)%4; while(Key==0);
}
}
if(Mode==0)
{
Led4=0;
Led仁〜Led1;
delay(3000);
sbit KeyБайду номын сангаасP3A2;
uchar Mode=0;
void delay(i nt x)II定义时间间隔
{
while(x--);
}
void button_Cotrol() II根据按键模式执行相
应的代码
if(Key==O)
{ delay(IOOO); if(Key==0) {
Mode=(Mode+1)%2; while(Key==O);
2.理解按键防抖技术

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

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

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

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

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

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

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

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

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

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

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

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

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

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

华南农业大学独立按键检测实验报告

华南农业大学独立按键检测实验报告

华南农业大学独立按键检测实验报告专业班次组别题目实验三独立按键检测姓名(学号)日期 19.4.13一、实验目的1.学会使用独立按键二、实验内容1.通过按键选择LED灯左右移动三、实验相关原理图四、实验程序#include //51单片机头文件#includesbit K1 = P1^0; //对应K1按钮为P1^0sbit K2 = P1^1; //对应K2按钮为P1^1#define GPIO_LED P0 //定义led由P0口输出信号void Delay10ms(unsigned int c); //延时函数声明,延时时间为为10msunsigned char Key_Scan(); //键盘扫描函数声明void main(void) //主函数{unsigned char ledValue, keyNum; //定义两个无符号字符型变量ledValue与keyNum ledValue = 0x01; //将0000 0001赋给ledValuewhile (1) //一直进行这个while循环专业班次组别题目实验三独立按键检测姓名(学号)日期 19.4.13 {keyNum = Key_Scan(); //扫描键盘if (keyNum == 1) //如果键值返回1{ledValue = _crol_(ledValue, 1); //左循环}else if (keyNum == 2) // 如果键值返回2{ledValue = _cror_(ledValue, 1);//右循环}GPIO_LED = ledValue;//点亮LED灯}}unsigned char Key_Scan() //键盘扫描函数{unsigned char keyValue = 0 , i; //定义变量用于保存键值if (K1==0) //检测按键K1是否按下{Delay10ms(1); //消抖if (K1==0) //再次检测按键是否按下{keyValue = 1; //使得键值为1i = 0; //令i=0while ((i<50) && (K1==0)) //检测按键是否松开,当i小于50并且K1按下的{ //时候,进入循环,单片机程序再此将循环500msDelay10ms(1);i++;}}if (K2==0) //检测按键K2是否按下{Delay10ms(1); //消除抖动if (K2==0) //再次检测按键是否按下{keyValue = 2; //使得键值为2i = 0; //令i=0专业班次组别题目实验三独立按键检测姓名(学号)日期 19.4.13 while ((i<50) && (K2==0)) //检测按键是否松开,当i小于50并且K2按{ //下的时候,进入循环,单片机程序再此将Delay10ms(1); //循环500msi++;}}}return keyValue; //将读取到键值的值返回}void Delay10ms(unsigned int c) //10ms的延时函数{unsigned char a, b;for (;c>0;c--){for (b=38;b>0;b--){for (a=130;a>0;a--);}}五、思考问题1.为什么需要按键防抖?如何实现软件去抖?答、由于按钮按下时,开关的触点并没有紧密贴合,而是可能存在不停地快速的通断通断,这种现象称为按键抖动,所以需要按键防抖方法:判断按键是否被按下之后,做短暂延时,待延时过后再检测一遍按键是否被按下,如果两者结果相同,则认为该按键被按下。

20122593李九生独立按键检测实验

20122593李九生独立按键检测实验

独立按键检测实验20122593李九生实验目的:1. 熟悉51系列单片机独立按键的工作原理。

2. 掌握与外部中断引脚INT0和INT1相连的独立按键的编程方法。

实验原理:独立键盘就是各按键相互独立,每个按键各接一根I/O接口线,每根I/O接口线上的按键都不会影响其他的I/O接口线。

因此,通过检测I/O接口线的电平状态就可以很容易地判断出哪个按键被按下了。

独立键盘的结构方式有查询和中断两种方式。

查询方式在工作时通过执行相应的查询程序来判断有无键按下,是哪一个按下。

中断方式处理时,当有任意键按下时则请求中断,在中断服务程序上通过执行判断程序,判断是哪一个键按下。

实验内容:1.编写一程序,与P1口相连的独立按键控制P2口流水灯。

2.编写一程序,与INT0和INT1引脚相连的独立按键控制P2口流水灯。

实验思考题:如何实现按键按下,操作指令只执行一次?答:就是在按键检测完之后,在后面加一条while(1)无限循环语句,来检测按键是按下就好。

#include<reg51.h>#include <intrins.h>sbit key1=P1^0;sbit key2=P1^1;void delay(unsigned int i){unsigned int j;unsigned char k;for(j=i;j>0;j--)for(k=125;k>0;k--);}void main(){P1=0xff;P2=0x01;while(1){if(P1!=0xff)delay(3);if(P1!=0xff)if(key1==0){P2=_crol_(P2,1);delay(200);}while(key1==0);if(key2==0){P2=_cror_(P2,1);delay(100);}}}#include <intrins.h>sbit key1=P3^2;sbit key2=P3^3;void delay(unsigned int i){unsigned int j;unsigned char k;for(j=i;j>0;j--)for(k=125;k>0;k--);}void main(){P2=0x01;IT0 = 0;IT1 = 0;IE = 0x85;while(1);}void Ex_Interrupt_0() interrupt 0 {P2=_crol_(P2,1);delay(200);}void EX_INT1() interrupt 2{P2=_cror_(P2,1);delay(100);}。

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

实验二独立按键试验实验报告
【1】实验目的:掌握如何完成用用按键控制流水灯的流动方向、流速、闪烁方式等程序的编译和烧写。

【2】实验原理:
实验原理图如下:
【3】实验步骤:
1.打开Keil编译器,创建项目:Project---New uVision Project,创建一个文件夹来放工程相关的文件,给工程项目命名为my work,点击保存。

2.选择芯片类型,这里选择ATMEL------AT89C52这个芯片。

3.把C文件添加到我们的工程文件里。

4.在test.c这个文档里编辑代码。

5.编译通过之后,我们需要输出hex文件,也就是单片机可执行的
二进制文件。

6.利用STC-ISP将编写好的程序烧写进单片机中。

7.如下图连接试验相关模块连线:
→JP165跳线帽断开
→JP10连接J12
→JP5连接JP8
→J21接左边
【4】程序设计内容:
(1)开关状态的检测过程
单片机对开关状态的检测相对于单片机来说,是从单片机的P1.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1按下去,即输入低电平,相当开关闭合,当松开开关K1,即输入
高电平,相当开关打开。

(2)输出控制
如图3所示,当P1.0端口输出低电平,即P1.0=0时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出高电平,即P1.0=1时,发光二极管L1亮。

所以通过对P1.0端口的设置就可以控制灯的亮灭。

(3)延时程序的设置
作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔要长一些,否则人眼根本无法识别到灯的闪烁效果。

于是我们在执行某一指令时,插入延时程序,来达到我们的增加亮灯时长的效果。

【5】实验代码:
#include<reg51.h>
#include<intrins.h>
unsigned int key;
sbit key1=P1^0;
sbit key2=P1^1;
void delay(unsigned int i)
{
unsigned int j;
for(;i>0;i- -)
{
for(j=0;j<50;j++)
{
;
}
}
}
void main()
{
unsigned char i;
P0=0x00;
if(key1==0)
{
while(key2==1)
{
P0=0x01;
delay(400);
for(i=0;i<8;i++)
{
P0<<=1;
delay(400);
if(key2==0)break;
}
}
}
if(key2==0)
{
while(key1==1)
{P0=0x80;
delay(400);
for(i=0;i<8;i++)
{
P0>>=1;
delay(400);
if(key1==0)break;
}
}
}
}
【6】实验现象:
当按下K1键,松开K2键时,流水灯向左移;当按下K2键,松开K1键时,流水灯向右移。

相关文档
最新文档