智能控制电路项目四-任务三 独立按键识别

合集下载

一键多功能按键识别技术

一键多功能按键识别技术

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 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.理解按键防抖技术

4--课程设计任务书-一键多功能识别技术-

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应用程序
实验内容:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 }
相关文档
最新文档