智能控制电路项目四-任务三 独立按键识别
一键多功能按键识别技术
1.实验任务如图4.9.1所示,开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。
2.电路原理图图4.9.13.系统板上硬件连线(1.把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上;(2.把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。
4.程序设计方法(1.设计思想由来在我们生活中,我们很容易通过这个叫张三,那个叫李四,另外一个是王五;那是因为每个人有不同的名子,我们就很快认出,同样,对于要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的ID号标识,这样,每按下一次按键,ID的值是不相同的,所以单片机就很容易识别不同功能的身份了。
(2.设计方法从上面的要求我们可以看出,L1到L4发光二极管在每个时刻的闪烁的时间是受开关SP1来控制,我们给L1到L4闪烁的时段定义出不同的ID号,当L1在闪烁时,ID=0;当L2在闪烁时,ID=1;当L3在闪烁时,ID=2;当L4在闪烁时,ID=3;很显然,只要每次按下开关K1时,分别给出不同的ID号我们就能够完成上面的任务了。
下面给出有关程序设计的框图。
5.程序框图图4.9.2 6.汇编源程序ID EQU 30HSP1 BIT P3.7L1 BIT P1.0L2 BIT P1.1L3 BIT P1.2L4 BIT P1.3ORG 0MOV ID,#00HSTART: JB K1,RELLCALL DELAY10MSJB K1,RELINC IDMOV A,IDCJNE A,#04,RELMOV ID,#00HREL: JNB K1,$MOV A,IDCJNE A,#00H,IS0CPL L1LCALL DELAYSJMP STARTIS0: CJNE A,#01H,IS1CPL L2LCALL DELAYSJMP STARTIS1: CJNE A,#02H,IS2CPL L3LCALL DELAYSJMP STARTIS2: CJNE A,#03H,IS3CPL L4LCALL DELAYSJMP STARTIS3: LJMP START DELAY10MS: MOV R6,#20LOOP1: MOV R7,#248DJNZ R7,$DJNZ R6,LOOP1RETDELAY: MOV R5,#20LOOP2: LCALL DELAY10MSDJNZ R5,LOOP2RETEND7.C语言源程序#include <AT89X51.H>unsigned char ID;void delay10ms(void){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}void delay02s(void){unsigned char i;for(i=20;i>0;i--){delay10ms();}}void main(void){while(1){if(P3_7==0){delay10ms();if(P3_7==0){ID++;if(ID==4){ID=0;}while(P3_7==0); }}switch(ID){case 0:P1_0=~P1_0;delay02s();break;case 1:P1_1=~P1_1; delay02s(); break;case 2:P1_2=~P1_2; delay02s(); break;case 3:P1_3=~P1_3; delay02s(); break;}}。
单片机原理-独立按键识别-单片机原理-实验报告
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.理解按键防抖技术
4--课程设计任务书-一键多功能识别技术-
一、设计目的1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
2.掌握汇编语言程序设计方法。
3.培养实践技能,提高分析和解决实际问题的能力。
二、课程设计题目:一键多功能按键识别技术三、设计任务及要求1.利用开关控制接在单片机P0口的4个发光二极管。
2.上电的时候,第一个发光二极管闪烁,当按下开关的时候,第二个发光二极管闪烁,依次类推。
四个灯闪烁的时间间隔均为0.2秒。
四、总体设计思路1.硬件设计思路及系统框图。
2.软件设计思路及程序流程框图。
五、设计步骤1.硬件设计(1)确定目标:设计整个系统是由那些模块组成,各个模块之间的信号传输,并画出电路图。
(2)系统分析:根据系统功能,选择各模块所用电路形式。
(3)总电路图:连接各模块电路。
2.软件设计(1)分析系统功能,设计软件流程图并编写功能代码。
(2)运用Keil软件进行程序调试。
3. 基于Proteus 和Keil的软硬件联合仿真六、课程设计成果要求课程设计报告打印稿、电子稿,使用Keil、Proteus软件综合调试仿真产生的文件夹。
硬件电路图一份(A4)一、设计目的1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
2.掌握汇编语言程序设计方法。
3.培养实践技能,提高分析和解决实际问题的能力。
二、课程设计题目:一键多功能按键识别技术三、设计任务及要求1.利用开关控制接在单片机P0口的4个发光二极管。
2.上电的时候,第一个发光二极管闪烁,当按下开关的时候,第二个发光二极管闪烁,依次类推。
四个灯闪烁的时间间隔均为0.5秒。
四、总体设计思路1.硬件设计思路及系统框图。
2.软件设计思路及程序流程框图。
五、设计步骤1.硬件设计(1)确定目标:设计整个系统是由那些模块组成,各个模块之间的信号传输,并画出电路图。
(2)系统分析:根据系统功能,选择各模块所用电路形式。
实验报告二 独立按键识别
桂林电子科技大学信息科技学院
单片机原理与接口技术实验报告
-----------------------------------------------------------------------------------------------------------------------------------------------------
1、理解机械式按键产生抖动的原因; 2、掌握软件延时消除按键抖动的原理; 3、熟练掌握延时程序的具体设计调试。
二、实验任务
1、 复习按键消抖的软硬件方法;理解掌握软件延时消除按键抖动的原理及编程方法。
2、 参考下面所示电路,编写单片机程序,要求实现如下功能:
判别按键是否按下,每按下一次,按键次数加一,4 个发光二极管按照一位十六进制 数的形式点亮。
-----------------------------------------------------------------------------------------------------------
桂林电子科技大学信息科技学院
单片机原理与接口技术实验报告
-----------------------------------------------------------------------------------------------------------------------------------------------------
3、独立按键识别原理及过程
否 按键是否按下
是 软件延时 10ms
否 按键是否按下
是 按键处理程序
否 按键是否释放
是
三、实验步骤
1、根据参考电路,利用 Proteus 软件设计绘制完整的应用电路。 2、绘制程序设计流程图
独立按键识别-单片机原理-实验报告
宁德师范学院计算机系
实验报告
(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)与前导课程的联系:学生在学习本课程前,具备基本模拟电路、数字电路的分析与设计基础,对计算机应用系统应具有一定的了解,通过本课程的学习,要求熟练掌握典型单片机系统的设计方法,能利用C51单片机组成实际系统,具备硬件和软件编程能力。
(2)与后续课程的联系:使学生通过本课程的学习,使学生掌握51系列单片机的程序编写能力和设计小型产品的设计能力,为后续独立分析和设计单片机测控系统的打下基础。
2.职业技能目标(1)能正确使用智能控制芯片单片机,懂得其典型应用。
(2)学会智能控制技术的基本分析方法。
(3)具备中、小型智能应用系统的硬件及软件设计、调试、检测、维护的能力。
(4)具有智能控制技术应用能力。
3.职业素质目标(1)提高逻辑思维能力,培养自学能力和勇于创新的科学态度。
(2)培养严谨认真的工作作风和团队合作精神、进去精神。
(3)培养工匠精神、劳模精神、爱国精神。
三、教学设计思想本课程以指示灯、流水灯、投篮游戏机、广告牌、智能小车、智能家居等项目为载体,以实际工程开发流程作为学习情境;根据岗位工作任务要求,结合课程在人才培养方案中的地位和作用,遵循学生认知规律,紧密结合电子信息专业的发展需要,为将来从事相关等工作领域奠定坚实的基础。
独立按键识别-单片机原理-实验报告
师学院计算机系
实验报告
(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日。
单片机原理-独立按键识别-单片机原理-实验报告
实验报告
(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应用程序
实验内容:
3.5 独立按键
按下key3按键
举一反三
1、使用一个按键控制一个指示灯的开和关。
2、使用不同的按键切换流水灯的不同显示方式。
led1=0;//打开LED1
led2=1;//关闭LED2 led3=1;//关闭LED3
编程实例
led4=1;//关闭LED4 } } if (key2==0) { delay(10); if (key2==0)
{
led1=1;//关闭LED1 led2=0;//打开LED2 led3=1;//关闭LED3 led4=1;//关闭LED4 } }
led3=1;//关闭LED3
led4=0;//打开LED4 } } } }
编程实例
void delay (uint z)//延时函数,约延时1毫秒。
{
uint x,y; for (x=z;x>0;x--) { for (y=110;y>0;y--);
}
}
下载验证
程序编写结束并编译通过后,打开STC-ISP下载软件, 下载程序。下载程序后当我们按下按键key3时,可以看 到学习板上的指示灯D3被点亮了。如图所示。
独立按键原理图
模块硬件分析
3、独立按键使用经验
1)、在使用按键编程时,如果检测到按键按下,则需要做 相应的延时消抖,最佳消抖延时为 10ms 。也可以使用 硬件消抖 2) 、最好将单片机接按键的 I/O 接 10K 上拉电阻,避免 I/O 浮空造成系统不稳定。
C语言知识点回顾
1、“= =”是一二元运算符,形式为甲==乙,返回值视不 同语言而定,若甲等于乙,则返回布尔值“真”( 1), 否则返回布尔值“假”(0)。
编程实例
程序要求,定义了4个按键变量key1,key2,key3, key4和4个指示灯变量led1,led2,led3,led4。当按下 按键key1 以后,点亮指示灯 led1,类此,通过 4 个按键
独立按键及矩阵键盘控制LED灯课件
THANKS
电路。
当按键被按下时,按键的两个触 点之间会短路,从而接通电路; 当按键释放时,触点断开,电路
断开。
独立按键通常用于简单的输入控 制,如开关一个LED灯。
独立按键控制LED灯的电路连接
01
将LED的正极连接到按键的常闭 触点上,LED的负极连接到地线 。
02
当按键没有被按下时,LED灯不 亮;当按键被按下时,LED灯亮 起。
控制家电设备
独立按键和矩阵键盘可以用于控制各种家电设备,如灯光、空调、电视等,实现一键控制和智能 化管理。
实现人机交互
通过独立按键和矩阵键盘,用户可以方便地与智能家居系统进行交互,实现语音控制、手势控制 等多种交互方式。
实现家庭安全
独立按键和矩阵键盘可以用于设置安全报警系统,如门窗报警、烟雾报警等,提高家庭安全防范 能力。
应用场景的比较
独立按键
适用于按键数量较少,布局较为分散 的场合,如遥控器、计算器等。
矩阵键盘
适用于按键数量较多,布局较为紧凑 的场合,如电脑键盘、游戏机手柄等 。
优缺点的比较
独立按键
01
缺点:占用引脚多,不适合大量按键的应 用场景。
03
02
优点:每个按键独立控制,电路简单,易于 实现。
04
矩阵键盘
优点:可节省引脚数量,适用于大量按键 的应用场景。
05
06
缺点:电路较为复杂,需要行列扫描或解 码电路才能实现。
04
独立按键及矩阵键盘在智能 家居中的应用
智能家居概述
1 2
3
智能家居定义
智能家居是指通过互联网、物联网等技术,将家庭中的各种 设备连接到一起,实现智能化控制和管理,提高生活便利性 和舒适度。
独立按键控制霓虹灯讲课稿
《独立按键控制霓虹灯》讲课稿今天我们学习第四个项目,用LED装饰你的生活。
很有启发性的一个课题,教材上题目是按键控制霓虹灯。
我们先看背景图,塔上面有一个人正在观看着日出,这是很有希望的一个情境。
希望通过项目四的学习,同学们想用单片机控制LED制作霓虹灯,去装饰美化你们的生活环境。
就像这张图的情境一样对生活充满希望。
(生活情趣培养)下面我们从项目任务、项目分析、项目实施、项目评估四个方面入手,剖析按键控制LED灯实验项目。
同学们把项目任务齐读一遍,讨论完成本项目我们需要做那些具体的工作……请同学回答讨论结果,总结一下:完成本项目我们需要分三步去完成:第一步:设计独立按键输入电路和LED的输出硬件电路第二步:编写程序分别实现按下按键1和按键2,LED灯闪烁方式不同,按键3复位第三步:下载程序到单片机中,运行程序观察结果并进行软硬件的联合调试对于单片机任何一个项目我们都可以通过硬件设计、程序设计和运行调试这三个步骤去完成。
本项目输出电路我们接的是LED,这是便于电路设计和观察结果,如果改接接口电路、继电器等就可以实现智能控制。
(创新思维培养)本项目的电路设计和程序设计我们分解为硬件电路消除抖动、软件延时程序消除抖动、单片机I/O口电路连接方式、程序设计四个子任务去探讨研究。
其中,单片机I/O接口电路连接方式我们已经在项目二和项目三有所接触。
根据项目要求,应该设计的电路有单片机最小电路、显示电路和键盘输入电路。
I/O口电压理论上是方波,实际上得到的是b图这样的波形,有按键抖动和释放抖动,这就需要消除抖动。
消除抖动的方法有硬件电路消除和软件延时消除。
硬件电路可以彻底消除抖动,只是会增加成本、增大键盘体积,性价比低;软件延时消除抖动是通过延时的方式躲开抖动,这样可以降低成本,减小体积,性价比高。
下面我们通过这段视频了解一下机械键盘。
键盘是实现人机交互的重要计算机输入设备,其中按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。
GPIO的使用-按键识别实验
GPIO的使用-按键识别实验二、预备知识:人机交互接口是指人与计算机之间建立联系、交换信息的输入/输出设备的接口,这些设备包括键盘、显示器、打印机、鼠标器等,按键/键盘向微处理器输入数据、命令等功能,是人机对话的主要手段。
按键需完成3项任务,(1)判别是否有键按下?若有,进入下一步;(2)识别哪一个键被按下,并求出相应的键值。
(3)根据键值,找到相应键值处理程序入口。
按键识别有查询和中断两种方式,查询方式即使无按键按下,也要查询,为提高键盘扫描的工作效率,可采用中断扫描方式,即只有在按键按下时,才进行扫描查询与处理。
本实验采用查询方式识别按键,利用开发板上的K1、K2、K3控制LCD背光点亮、熄灭与闪烁,其中背光闪烁由长按K3实现。
三、实验步骤:1、SysTick定时器(滴答定时器)按键识别需用到时间函数,采用软件延时会占用CPU时间,采用定时器可回避此缺点。
Cortex‐M3处理器内部包含了一个简单的定时器,SysTick定时器。
SysTick 定时器为24位倒计数定时器,具备自动重载和溢出功能。
当计数器计数到0时,就会从LOAD寄存器中自动重装定时初值,只要不把CTRL寄存器中的ENABLE 清零,它就会永不停止。
所有基于Cortex‐M3处理器的微控制器都可以由这个定时器获得统一的时间间隔,SysTick是为了给RTOS系统节拍而设的,它为任务调度提供一个周期性的中断。
SysTick定时器除了能服务于操作系统外,还能用于其他目的:如作为一个闹钟,用于测量时间等。
SysTick定时器驱动函数:1)systick.c#include "systick.h"static u8 fac_us=0;//us延时倍乘static u16 fac_ms=0;//ms延时倍乘void Delay_Init(void) //初始化延时函数,SYSTICK的时钟固定为HCLK 时钟的1/8{SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//选择外部时钟HCLK/8fac_us=SystemCoreClock/8000000;fac_ms=(u16)fac_us*1000;}void Delay_Us(u32 nus)//nus为要延时的us数{u32 temp;SysTick->LOAD=nus*fac_us; //时间加载SysTick->V AL=0x00; //清空计数器SysTick->CTRL=0x01 ; //开始倒数do{temp=SysTick->CTRL;}while(temp&0x01&&!(temp&(1<<16)));//等待时间到达SysTick->CTRL=0x00; //关闭计数器SysTick->V AL =0X00; //清空计数器}void Delay_Ms(u16 nms){u32 temp;SysTick->LOAD=(u32)nms*fac_ms;SysTick->V AL =0x00;SysTick->CTRL=0x01 ;do{temp=SysTick->CTRL;}while(temp&0x01&&!(temp&(1<<16)));SysTick->CTRL=0x00;SysTick->V AL =0X00;}2) systick.h#ifndef _SYSTICK_H#define _SYSTICK_H#include "stm32f10x.h"void Delay_Init(void);void Delay_Ms(u16 nms);void Delay_Us(u32 nus);#endif2、创建按键驱动函数定义3个按键,分别控制LCD背光点亮、熄灭及闪烁,其中闪烁控制位长按按键实现。
独立按键的识别与应用原理
独立按键的识别与应用原理1. 什么是独立按键独立按键是指一类具有自主功能的电子组件,可与电路板相连接,用于控制电子设备的开关、功能选择、音量调节等。
独立按键通常包括一个按钮,按下按钮时,会产生一个电信号,从而激活相应的设备或执行特定的功能。
2. 独立按键的工作原理独立按键的工作原理通常是通过金属接触的方式实现的。
按键内部通常包含一个弹簧和一对金属触点。
当按键没有被按下时,弹簧将触点分开,断开电路。
当按键被按下时,弹簧会被按下,触点相互接触,从而闭合电路,产生一个电信号。
3. 独立按键的连接与布线要将独立按键连接到电路板上,需要使用导线将按键的触点与电路板的相应引脚连接起来。
连接时需要注意按键的正负极性,通常使用不同颜色的导线进行区分。
而布线时应尽量避免导线之间的交叉或短路,以确保电路的正常工作。
4. 独立按键的应用场景独立按键广泛应用于各种电子设备和电路中,常见的应用场景包括: - 电脑键盘:电脑键盘上的每个按键都是独立按键,通过按下不同的按键来输入字符或执行特定的命令。
- 遥控器:遥控器上的按键用于控制电视、空调、音响等设备的开关与调节功能。
- 手机键盘:手机键盘上的按键用于输入字符和进行通话操作。
- 游戏手柄:游戏手柄上的按键用于控制游戏角色的移动、攻击等操作。
5. 独立按键的识别与编程为了识别独立按键的触发事件,通常需要对按键进行编程。
编程过程中可以使用各种编程语言和平台,具体的方法根据不同的环境而定。
以下是一些常见的识别独立按键的方法: - Arduino平台:在Arduino平台上,可以使用digitalRead函数来读取按键的状态,根据返回值判断按键是否被按下。
- Raspberry Pi:在树莓派上,可以使用GPIO库来读取按键的状态,同样根据返回值来判断按键是否被按下。
- C/C++编程语言:通过调用相应的库函数来读取按键状态,一般也是通过返回值来判断按键是否被按下。
6. 独立按键的常见问题与解决方法在使用独立按键过程中,可能会遇到一些常见的问题,例如按键无法触发、按键触发过于敏感、按键按下后松开后无法及时恢复等。
独立按键工作原理
独立按键工作原理
独立按键是指在键盘或其他输入设备上单独存在的按键,与其他按键没有物理连接。
独立按键的工作原理可以分为以下几个步骤:
1. 电路设计:独立按键通常由一个机械开关和一个电路组成。
机械开关是按键的实体部分,当按下按键时,机械开关会闭合。
而电路则通过控制机械开关的开闭来识别按键的状态。
2. 连接到主控制器:独立按键的电路会与主控制器相连。
主控制器可以是键盘控制器或其他的输入设备控制器。
按下独立按键时,机械开关的闭合会使电路与主控制器建立连接。
3. 识别按键状态:主控制器会通过扫描或轮询的方式不断地检测连接到它的电路中的独立按键状态。
当检测到某个按键被按下时,主控制器会相应地记录下按键的信息。
4. 发送输入信号:主控制器会将按键的信息转换为对应的输入信号,然后将该信号发送给计算机或其他接收设备。
接收设备会根据接收到的信号来执行相应的操作,例如输入字符、执行功能等。
总的来说,独立按键通过机械开关和电路的配合工作,利用主控制器来识别按键状态并发送输入信号。
这样,用户在按下独立按键时,就能够通过电子设备实现相应的操作。
按键识别控制
XXXXX 大学单片机最小应用系统设计报告指导老师:XXXXX学生:XXXX学号:XXXXXXXXX学院XXX年XX月单片机最小应用系统设计报告一、设计题目 (1)二、设计内容与要求 (1)三、设计目的意义 (1)3.1设计目的 (1)3.2系统设计意义 (1)四、系统硬件电路图 (2)五、系统流程图与源程序 (3)5.1 系统程序流程图 (3)5.2 系统汇编源程序 (4)六、系统功能分析与说明 (4)6.1 MCS-51单片机结构和原理 (4)6.2时钟电路 (7)6.3复位电路 (8)6.4键盘的工作原理 (9)6.5独立式按键 (11)6.6实训设备与元器件 (11)6.7设计步骤 (12)6.8电路板的制作 (12)6.9系统连线说明 (13)6.10系统PCB图设计 (14)6.11系统功能分析与说明 (14)七、设计体会 (15)八、参考文献 (15)一、设计题目按键识别控制二、设计内容与要求用8031单片机控制用一键实现多功能按键识别。
将开关SP1接P3.7,P1口接四个发光二极管。
上电时,接P1.0 的发光二极管亮;按下开关SP1时,接P1.1 的发光二极管亮;再按下开关SP1时,接P1.2 的发光二极管亮;再按下开关SP1时,接P1.3 的发光二极管亮。
再按下开关SP1时,接P1.0 的发光二极管亮,如此循环。
三、设计目的意义3.1设计目的(1)了解单片机的基本组成及功能(2)通过最小应用系统实例了解单片机的基本工作过程(3)掌握指令格式及表示方法(4)掌握常用指令的功能及应用(5)掌握汇编语言的基本结构(6)了解汇编语言程序设计的基本方法和思路(7)了解按键识别方法3.2系统设计意义(1)在系统掌握单片机相应基础知识的前提下,熟悉单片机最小应用系统的设计方法及系统设计的基本步骤。
(2)完成所需单片机最小应用系统原理图设计绘制的基础上完成系统的电路图设计。
(3)完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。
按键控制键盘检测原理与应用
按键控制键盘检测原理与应用一、任务目标:认知目标1、掌握按键分类及工作原理2、掌握IF条件选择结构和使用方法3、掌握循环结构和使用原理4、掌握独立按键子函数的编写原理及方法1、独立键盘在简单的单片机应用系统中,往往只需要几个功能键就能满足要求,此时,可采用独立式按键结构。
独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O 口线,每个按键的工作不会影响其它I/O口线的状态。
独立式按键的典型应用如图1.2.1所示。
独立式按键示意图独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。
程序开始,检测按键是否被按下,若按下,则移动机器人启动,未被按下,继续检测。
这里将程序分成三个部分,分别是延时子函数、按键子函数、主函数。
延时子函数,通过参数t设置延时时间;按键模块子函数需用到延时函数,对按键进行消抖;主函数主要调用按键检测程序,实现对移动机器人的控制。
程序流程图如图1.2.2所示程序流程图程序示例:在编写程序开始的部分,将系统头文件“STC89C52RC.H”包含进来,对常用的变量类型进行宏定义,规划各函数和变量,对变量进行定义和初始化,对自定义子函数进行声明并添加相应标注,程序开始部分如下sbit IN1=P1^0;sbit IN2=P1^1;Void key();编写主函数,在主函数中就是调用按键检测函数。
Void main(){key();}编写key()按键检测函数,按键按下,输出低电平,通过if语句检测低电平,延时10ms 后,再次检测,若检测为高电平,则表示为机械抖动,若检测到低电平表示按键按下。
Void key(){if(IN1==0){delay_ms(10);if(IN1==0){while(IN1==0);IN2=~IN2;}}}在上面的程序中,就只有一个检查按键扫描的函数key(),key()函数是检查有没有按键按下编写的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不会自动跳出switch,转而去执行
}
其后面的语句。因此,通常在每一 段case 的结束加入“break;”语句,
}
使 程序退 出 switch 结 构 ,即终 止
主函数
#include "reg51.h"
main()
#define uchar unsigned char {
#define uint unsigned int sbit KEY1=P3^2; //指定按键 sbit KEY2=P3^3; //指定按键 sbit KEY3=P3^4; //指定按键 sbit KEY4=P3^5; //指定按键
仿真演示
任务3 独立按键识别
任务分析
独立按键
硬件
单片机最小应用系统 +
数码管显示电路 +
独立按键电路
软件
任务3 独立按键识别
完成本任务需要掌握的知识:
(1)独立按键识别原理 (2)分支结构程序设计方法及实现语句 (3)绘制程序流程图方法 (4)按键消抖:硬件消抖、软件消抖
任务3 独立按键识别
{ switch(P3)
sbit KEY4=P3^5; //指定按键
uchar code DSY_CODE[]=
{0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90};
执行完一个case 后面的语句后,并
{ case 0xfb:P0=DSY_CODE[1];break; case 0xf7:P0=DSY_CODE[2];break; case 0xef:P0=DSY_CODE[3];break; case 0xdf:P0=DSY_CODE[4];break;
uchar code DSY_CODE[]=
{0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90};
P2=0xfe;
while(1)
{ if(KEY1==0) //判断KEY1是否按下 P0=DSY_CODE[1]; if(KEY2==0) //判断KEY2是否按下 P0=DSY_CODE[2]; if(KEY3==0) //判断KEY3是否按下 P0=DSY_CODE[3];
复习: 数码管动态显示原理 BCD码
任务3 独立按键识别
新课: 按键分类:
根据结构,按键可分为两类: 触点式开关按键 无触点式开关按键
根据接口原理按键可分为两类: 编码键盘 非编码键盘
任务3 独立按键识别
独立按键识别电路
任务3 独立按键识别
程序流程图
顺序程序
任务3 独立按键识别
计算器
任务4 矩阵按键识别
任务5 简易计算器设计实现
任务3 独立按键识别
任务要求
单片机系统的运行,需要输入设备实现简单的人 机对话。键盘是单片机最简单、最常用的输入设备。 设计4个独立键盘,编号为“1~4”,当按下某键时,数 码管显示该键所对应的编号。
任务3 独立按键识别
任务3 独立按键识别
程序流程图
所谓流程图就是用各种符号、图形、箭头把程序的流向及过程用 图形表示出来。绘制流程图是单片机程序编写前最重要的工作。 通常所编写的程序就是根据流程图的指向,采用适当的语句来编 写的。
对于简单的应用程序,可以不画出流程图,但绘制清晰正确的流 程图是一个良好的编程习惯。常用的流程图符号如图所示。
if语句 (3)嵌套分支语句
其语句格式为: if(条件1) {语句1} else if(条件2) {语句2} else if(条件3) {语句3} ...... else if(条件m) {语句m} else {语句n}
任务3 独立按键识别
if语句独立按键识别程序流程图
任务3 独立按键识别
if语句独立按键识别程序:
智能控制电路项目实践
学习项目
一 单片机最小应用系统构建 二 单片机开发工具的使用 三 LED流水灯设计制作 四 简易计算器的设计制作 五 里程表的设计制作 六 秒表的设计制作 七 LED电子显示屏的设计制作 八 简易仪器仪表设计制作
项目四 简易计算器设计制作
任务1 一位数码显示
任务2 四位数码显示
任务3 独立按键识别
switch语句独立按键识别程序:
主函数
#include "reg51.h"
main()
#define uchar unsigned char
{
#define uint unsigned int
P2=0xfe;
sbit KEY1=P3^2; //指定按键 while(1)
sbit KEY2=P3^3; //指定按键 sbit KEY3=P3^4; //指定按键
常用流程图符号
任务3 独立按键识别
if语句
判定给定条件是否满足,根据判定结果(真或假)决 定执行给出的两种操作之一。
(1)单一分支体 语句格式为: if(条件) { 语句 }
任务3 独立按键识别
if语句 (2)双分支体 语句格式为:
if(条件) {语句1} else {语句2}
任务3 独立按键识别
循环程序用于重复执行某种动作。在编写循环程序时,控制循环 次数极为重要,具体方法依实际情况而定。循环次数已知的,可 以简单地用计数器来控制;循环次数未知的,可以用某个位或某 个变量的状态作为条件并结合跳转语句来控制。
分支结构的执行是依据一定的条件选择执行路径,而不是严格按 照语句出现的物理顺序。分支结构的程序设计方法的关键在于构 造合适的分支条件和分析程序流程,并根据不同的程序流程选择 适当的分支语句。分支结构适合于带有比较或条件判断的情况, 设计这类程序时往往都要先绘制其程序流程图,然后根据程序流 程写出源程序,这样做把程序设计分析与语言分开,使得问题简 单化,易于理解。
if(KEY4==0) //判断KEY4是否按下
P0=DSY_CODE[4];
}
}
查询方式
任务3 独立按键识别
switch语句 C语言提供switch语句直接处理多分支选择。 switch
的一般形式如下: switch(表达式) { case 常量表达式1:语句1 case 常量表达式2:语句2 …… case 常量表达式n:语句n default:语句n+1 }