单片机应用与调试项目教程(c语言版)教学课件作者李英辉项目三任务1

上传人:w****i 文档编号:102579940 上传时间:2019-10-03 格式:PPTX 页数:59 大小:1.64MB
返回 下载 相关 举报
单片机应用与调试项目教程(c语言版)教学课件作者李英辉项目三任务1_第1页
第1页 / 共59页
单片机应用与调试项目教程(c语言版)教学课件作者李英辉项目三任务1_第2页
第2页 / 共59页
单片机应用与调试项目教程(c语言版)教学课件作者李英辉项目三任务1_第3页
第3页 / 共59页
单片机应用与调试项目教程(c语言版)教学课件作者李英辉项目三任务1_第4页
第4页 / 共59页
单片机应用与调试项目教程(c语言版)教学课件作者李英辉项目三任务1_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《单片机应用与调试项目教程(c语言版)教学课件作者李英辉项目三任务1》由会员分享,可在线阅读,更多相关《单片机应用与调试项目教程(c语言版)教学课件作者李英辉项目三任务1(59页珍藏版)》请在金锄头文库上搜索。

1、单片机控制技术与实践,李英辉,项目三 电动机控制系统设计,知识目标: 1会分析独立按键和矩阵按键工作原理; 2会分析按键控制程序设计流程。,技能目标: 1会设计独立按键控制硬件电路、软件程序并调试; 2会设计矩阵按键控制硬件电路、软件程序并调试。,素养目标: 1操作规范,符合5S管理要求; 2具备对比分析和解决复杂问题能力。,学习目标,设计要求,单片机P1口连接8个独立按键,P2口连接一个数码管,按下其中任意一个按键后,数码管显示该按键值,无按键按下时数码管显示0。,01,02,按键是输入设备,数码管是输出设备,本设计用到的8个按键占用P1口,1个数码管占用P2口;,按键的处理过程包括按键按下

2、判断、按键消抖处理、按键识别计算和按键释放判断等操作。,任务分析,知识导航,按键有时也称按钮或开关,它是控制系统中常用的外部设备之一,也是最简单的数字量输入设备,常见的按键设备如图所示。键盘是由若干个规则排列的按键组成,如手机键盘和计算机键盘等,不同的按键代表着不同的含义(一般来说,按键的含义可通过软件定义)。用户通过按动按键,输入数据或命令,实现简单的人机交互。,一、按键的功能及分类,1.按键的功能,知识导航,一、按键的功能及分类,1.按键的功能,(a)轻触开关 (b)按钮开关 (c)拨动开关 (d)拨码开关,知识导航,按照结构原理分类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;

3、另一类是无触点开关按键,如电气式按键,磁感应按键等。,一、按键的功能及分类,2.按键的分类,按照接口原理分为编码按键与非编码按键两类,编码按键主要是用硬件来实现按键的识别;非编码按键主要是由软件来实现按键的定义与识别。,按照接口形式按键可分为独立(查询)按键和矩阵按键两类。独立(查询)按键的结构简单,但占用的资源多;矩阵按键的结构相对复杂些,但占用的资源较少。,知识导航,知识检测:,1下列选项属于输入设备的是( )。 (A)数码管 (B)蜂鸣器 (C)按键 (D)LED灯 2按键按照接口形式可分为 按键和 按键两类。,1下列选项属于输入设备的是(C)。 (A)数码管 (B)蜂鸣器 (C)按键

4、(D)LED灯 2按键按照接口形式可分为 独立 按键和 矩阵 按键两类。,知识导航,检测按键是否按下的过程为按键扫描,按键扫描的方式有查询方式和中断方式两种。 查询方式:每隔一定时间,CPU扫描键盘一次,查询有无按键按下,若有按键按下则再识别按键键值,作相应处理; 中断方式:当按键按下时,就向CPU发送中断请求,CPU响应后对键盘扫描再识别键值,作相应处理。,二、按键的工作原理,1.按键输入原理,知识导航,机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来,抖动时间一般为510ms,在触点抖动期间检测按键的通断状态,可能导致判断出错。为了克

5、服按键触点机械抖动所致的检测误判,必须采取消除抖动措施,可从硬件、软件两方面进行设计。,二、按键的工作原理,2.按键消抖原理,知识导航,硬件消抖是利用基本RS触发电路实现,按键输出取基本RS触发器的输出端Q,只有当按键按下时,Q端才能输出稳定的低电平。,二、按键的工作原理,2.按键消抖原理,知识导航,软件消抖措施是当检测到有按键按下时,执行一个10ms左右的延时程序,然后再重新检测该按键是否仍然按下,若仍然保持闭合状态电平,则确认该按键处于闭合状态,从而消除抖动的影响。同理在检测该按键释放时,也可采用先延时再判断的方法消除抖动的影响。,二、按键的工作原理,2.按键消抖原理,知识导航,知识检测:

6、,1按键按键扫描方式有 和 两种。 2按键抖动时间一般为 ms,硬件消抖措施是利用 ,软件消抖措施是利用 。,1按键按键扫描方式有 查询 和 中断 两种。 2按键抖动时间一般为 510ms ms,硬件消抖措施是利用 基本RS触发电路 ,软件消抖措施是利用 延时函数 。,知识导航,独立按键的一端连接单片机的I/O引脚,按键另一端接地。当按键未按下时,由于有上拉电阻,各I/O引脚均为高电平;当某个按键按下时,相应的I/O引脚为低电平。例如,当K1按下时,引脚P1.1为低电平,其他引脚为高电平,即P1=0xfd。 独立按键硬件电路配置灵活,软件程序设计简单,但每个按键需占用一根I/O引脚,因此当按键

7、数目较多时,I/O引脚浪费较大。,三、独立按键控制,1.独立按键硬件电路,知识导航,独立按键程序设计一般采用查询方式,其处理过程依次为按键判断、消抖处理、释放判断、按键识别四个过程,具体如下:(1)首先通过逐位查询每根I/O引脚的输入状态进行按键判断,如果某根I/O引脚的输入为低电平,则认为可能有按键按下;(2)其次进行消抖处理,通常采用软件延时进行处理,延时510ms后再检测此I/O引脚的输入状态是否为低电平,若是则可确认该I/O引脚对应的按键已按下;(3)然后进行释放判断,当检测到该引脚为高电平时则确定按键释放,(4)最后进行按键识别操作,通过编程识别该按键值,再转向该按键的功能处理程序。

8、,三、按键工作原理,2.独立按键程序设计,知识导航,P1=0xff; /锁存器置1 while(1) if(P1!=0xff) /按键判断 delay(); /消抖处理 if(P1!=0xff) /按键判断 i=P1; /键值存储 while(P1!=0xff); /释放判断 switch(i),三、按键工作原理,2.独立按键程序设计,8个独立按键程序结构如下:, /按键识别 case 0xfe:key=1;break; case 0xfd:key=2;break; case 0xfb:key=3;break; case 0xf7:key=4;break; case 0xef:key=5;br

9、eak; case 0xdf:key=6;break; case 0xbf:key=7;break; case 0x7f:key=8;break; default: key=0;break; ,知识导航,在某些控制系统中为了节省I/O引脚资源,可以采用多功能按键实现单个按键的多种控制功能,如单键实现电子秒表的启动、暂停和复位操作,单键实现LED灯的点亮、闪烁和熄灭等。多功能按键与单功能按键编程上的区别是必须添加释放判断语句,通过按键按下的次数进行按键识别,从而实现不同的控制功能,下面以单键控制数码管分别显示年度、日期和时间为例介绍多功能按键程序设计。,三、按键工作原理,3.多功能按键程序设计,

10、知识导航,控制要求:当第1次按下按键时数码管显示年度2017,第2次按下时数码管显示日期0414,第3次按下时数码管显示时间1040,第4次按下时和第1次一样,依此类推。,三、按键工作原理,3.多功能按键程序设计,知识导航,#include #define uchar unsigned char uchar code led=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90; uchar duan4=0; /数码管段码 uchar code wei=0x01,0x02,0x04,0x08; /数码管位码 sbit key=P10; /按键定义

11、 /*延时函数*/ void delay() 略 /*年度显示函数*/ void key1() duan0=led2; /年度显示 duan1=led0; duan2=led1; duan3=led7; ,三、按键工作原理,/*日期显示函数*/ void key2() duan0=led0; /日期显示 duan1=led4; duan2=led1; duan3=led4; /*时间显示函数*/ void key3() duan0=led1; /时间显示 duan1=led0; duan2=led4; duan3=led0; ,3.多功能按键程序设计,知识导航,/*主函数*/ void mai

12、n() uchar i,j; key=1; /锁存器置1 duan0=led0; /显示初始化 duan1=led0; duan2=led0; duan3=led0; while(1) if(key=0) /按键判断 delay(); /消抖处理 if(key=0) /按键判断 i+; /次数递增 if(i=4) /终值判断 i=1; /次数复位,三、按键工作原理,while(key=0); /释放判断 switch(i) /次数识别 case 1:key1();break; /第1次按下 case 2:key2();break; /第2次按下 case 3:key3();break; /第3

13、次按下 for(j=0;j4;j+) /数码管显示 P2=weij; /数码管位码 P0=duanj; /数码管段码 delay(); ,3.多功能按键程序设计,知识导航,知识检测:,1P2口接8个独立按键,当按键未按下时P2= ,当低四位按下时P2= 。 2 按键处理过程为: 。 3当单片机P1.0引脚接按键时,按键判断语句为 ,释放判断语句为 。 4单功能按键与多功能按键的区别是必须添加 语句,并且通过判断按键按下次数进行 。,知识导航,知识检测:,1P2口接8个独立按键,当按键未按下时P2= 0xff ,当低四位按下时P2= 0xf0 。 2 按键处理过程为:按键判断 消抖处理 释放判断

14、按键识别 。 3当单片机P1.0引脚接按键时,按键判断语句为if(P10=0) ,释放判断语句为while(P10=0); 。 4单功能按键与多功能按键的区别是必须添加释放判断 语句,并且通过判断按键按下次数进行按键识别 。,任务实施,一、硬件电路,任务实施,二、软件程序,#include #define uchar unsigned char /*数码管字形码数组*/ uchar code led=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80; /*延时函数*/ void delay() 略 ,任务实施,二、软件程序,/*主函数*/ void main() uchar i,key; /变量定义 P1=0XFF; /锁存器置1 P2=led0; /数码管初值显示 while(1) if(P1!=0XFF) /按键判断 delay(); /消抖处理 if(P1!=0XFF) /按键判断 i=P1; /键值存储 while(P1!=0xff); /按键释放,任务实施,二、

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号