智能寻迹避障小车按键与显示程序设计(7-31)_第1页
智能寻迹避障小车按键与显示程序设计(7-31)_第2页
智能寻迹避障小车按键与显示程序设计(7-31)_第3页
智能寻迹避障小车按键与显示程序设计(7-31)_第4页
智能寻迹避障小车按键与显示程序设计(7-31)_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能寻迹小车设计与制作

(按键与显示程序设计)湖南创博龙智信息科技有限公司主讲:雷道仲任务一:数码管循环管显示0-9

要求:绘制流程图,并编写程序,在P2端口控制的共阳数码管上循环显示0-9的数字,数字与数字之间的显示间隔为1秒钟湖南创博龙智信息科技有限公司任务及要求按键与显示模块共设置了二个任务,分别如下:任务二:按键加、减数显示

要求:绘制程序流程图,并编写程序,要求做到每按一次S1,数码管都加1,当加到第10时回到0;每按一次S2,数码管都减1。湖南创博龙智信息科技有限公司任务及要求按键与显示模块共设置了三个任务,分别如下:任务二:按键加、减数显示

要求:绘制程序流程图,并编写程序,要求做到每按一次S1,数码管都加1,当加到第10时回到0;每按一次S2,数码管都减1。湖南创博龙智信息科技有限公司任务及要求按键与显示模块共设置了三个任务,分别如下:湖南创博龙智信息科技有限公司1.1任务一:数码管循环管显示0-91.1.1数码管显示控制电路图1数码管显示控制电路湖南创博龙智信息科技有限公司1.1.2数码管显示原理1、数码管内部结构及封装图(a)引脚分布图(b)共阴数码管

(c)共阳数码管图2八段数码管显示块湖南创博龙智信息科技有限公司LED显示器又称为数码管,它主要由8段发光二极管组成,如图2(a)所示。图2(a)中,a~g为数字或字符显示段,h段为小数点显示,通过a~g为7个发光段的不同组合,可以显示0~9和A~F共16个数字和字母。例如,当a、b、g、e、d段亮时,显示数字“2”,当a、f、e、g段亮时,则显示字母“F”。

2、工作原理1.1.2数码管显示原理湖南创博龙智信息科技有限公司LED可以分为共阴极和共阳极两种结构,如图2(b)和(c)所示。其中图(b)为共阴极结构。即把8个发光二极管阴极连在一起。这时如果需要点亮a~g中的任何一盏灯,则只需要在相应端输入高电平即可;输入低电平则截止。比如我们现在要显示数字“3”,则只要在对应的a、b、c、d、g段送入高电平,在其他端送入低电平即可,点亮为“3”。图(c)为共阳极结构。其显示端输入低电平有效,高电平截止。

2、工作原理1.1.2数码管显示原理湖南创博龙智信息科技有限公司

表1-1列出了共阳极与共阴极LED显示器显示数字、字母与显示代码之间的对应关。

显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03FHC087FH80H106HF996FH90H25BHA4A77H88H34FHB0B7CH83H466H99HC39HC656DH92HD5EHA1H67DH82HE79H86H707HF8F71H8EH表1-1

显示器显示数字、字母与显示代码之间的对应关系注意:本设计中采用共阳数码管,故代码取共阳极段码湖南创博龙智信息科技有限公司

注意:本设计中采用共阳数码管,故代码取共阳极段码,编程时一般将数码管显示段码存放在显示数组中,表示形式如下:#defineucharunsignedchar//定义无符号字符型数据类型ucharcodeZM[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,};//根据电路把数码管的段码算出来数据依次是0123456789的显示数据由于本设计中,数码管笔画与单片机P2端口反过来连接,即原本P2.1应接数码管a笔画,现在P2.7接了a笔画,故推算出“0-9”的共阳电平如上述数组所示。与表格1中共阳极段码有所不同。推导示意图如图3所示1.1.2数码管显示原理2、工作原理湖南创博龙智信息科技有限公司1.1.3工作原理图3共阳数码管示意图湖南创博龙智信息科技有限公司1.1任务一:数码管循环管显示0-91.1.3程序流程框图图4

0-9循环显示流程框图湖南创博龙智信息科技有限公司1.1任务一:数码管循环管显示0-9#include<at89x52.h> //定义头文件#defineuintunsignedint //定义uint就是unsignedint#defineucharunsignedchar//同上#defineoutP2 //定义out代表单片机P2口voiddelayms(uintx) //延时函数12兆晶振1000为一秒

11.0592兆晶振922为一秒

(会有一定误差){ uchari; while(x--) for(i=0;i<123;i++);}1.1.4参考程序湖南创博龙智信息科技有限公司1.1任务一:数码管循环管显示0-9ucharcodeZM[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,};//根据电路把数码管的段码算出来数据依次是0123456789的显示数据voidmain() //主函数{ chari; //定义一个有符号的变量

while(1) //循环

{for(i=0;i<10;i++) {out=ZM[i]; delayms(922); } }}//效果:数码管循环显示0-91.1.4参考程序湖南创博龙智信息科技有限公司2.1任务二:按键加、减数显示2.1.1按键加、减数控制电路图5按键加、减数显示电路湖南创博龙智信息科技有限公司2.1任务二:按键加、减数显示1.独立连接式键盘

每键相互独立,各自与一条I/O线相连,CPU可直接读取该I/O线的高/低电平状态。其优点是硬件、软件结构简单,判键速度快,使用方便;缺点是占I/O口线多。

适用场合:多用于设置控制键、功能键。适用于键数少的场合。独立连接式键盘连接图如图6所示。当没有键被按下时,所有的数据输入线都为高电平;当有任意一个键被按下时,与之相连的数据输入线将变为低电平;通过相应指令,可以判断是否有键按下。2.1.2按键工作原理湖南创博龙智信息科技有限公司2.1.2按键工作原理图6

独立连接式键盘湖南创博龙智信息科技有限公司2.矩阵连接式键盘

键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。其特点是键多时占用I/O口线少,硬件资源利用合理,但判键速度慢。

适用场合:多用于设置数字键,适用于键数多的场合

4行4列矩阵式键盘连接图如图7所示。这种键盘适合采取动态扫描的方式进行识别。

扫描方式:低电平扫描(回送线必须被上拉为高电平)、高电平扫描(回送线需被下拉为低电平)。。2.1.2按键工作原理湖南创博龙智信息科技有限公司2.1.2按键工作原理图74行4列矩阵式键盘湖南创博龙智信息科技有限公司3.矩阵连接式键盘工作原理

对于矩阵式键盘,如上页图7所示,键盘的行线X0~X3通过电阻接+5V,当键盘上没有键闭合时,所有的扫描线和回送线都断开,无论扫描线处于何种状态,回送线都呈高电平。当键盘上某一键闭合时,则该键所对应的扫描线和回送线被短路,可以确定,变为低电平的回送线与扫描线相交处的键闭合。CPU对键盘扫描的方式:程序控制的随机方式(CPU空闲时扫描键盘)、定时控制方式(定时扫描键盘)、中断方式。CPU对键盘上闭合键的键号确定方法:根据扫描线和回送线的状态计算求得,或根据行线和列线的状态查表求得2.1.2按键工作原理湖南创博龙智信息科技有限公司2.1.3程序流程图图8按键加、减显示程序流程图湖南创博龙智信息科技有限公司#include<at89x52.h> //定义头文件#defineuintunsignedint //定义uint就是unsignedint#defineucharunsignedchar //同上#defineoutP2 //定义out代表单片机P2口sbitS1=P3^2; //定义第一个按键S1sbitS2=P3^4; //定义第二个按键S2voiddelayms(uintx) //延时函数12兆晶振1000为一秒11.0592兆

晶振922为一秒(会有一定误差){ uchari; while(x--) for(i=0;i<123;i++);}2.1.4参考程序湖南创博龙智信息科技有限公司ucharcodeZM[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,}; //根据电路把数码管的段码算出来数据依次是0123456789的显示数据voidmain() //主函数{ chari; //定义一个有符号的变量

while(1) //循环

{ if(S1==0) //判断第一个按键S1是否按下

{ i++; //按下就变量加1 if(i>9) i=0; //超过范围重置

delayms(200); //延时消除按键的抖动

}2.1.4参考程序湖南创博龙智信息科技有限公司if(S2==0) { i--; //按下就减1 if(i<0) i=9; delayms(200); } out=ZM[i];//通过变量找到数组ZM里面的相同位置的数据给P2口输出

} //(假如i=2那么找到数组第二个数据给P2口输出刚好第二个数据显示的结果为2)}//效果:按S1键加数按S2键减数2.1.4参考程序湖南创博龙智信息科技有限公司

由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰,其产生的波形如图9所示,当按键按下时会产生前沿抖动,当按键弹起时会产生后沿抖动。这是所有机械触点式按键在状态输出时的共性问题,抖动的时间长短取决于按键的机械特性与操作状态,一般为10~100ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。此为键处理设计时要考虑的一个重要参数。2.1.5按键消抖程序处理湖南创博龙智信息科技有限公司2.1.5按键消抖程序处理图9

抖动干扰波形湖南创博龙智信息科技有限公司

(1)开关状态的可靠输入必须消除键抖动,可以采用硬件和软件两种方法,硬件方法就是在按键输入通道上添加去抖动电路;软件方法则采用延迟10~20ms。

(2)键盘状态的监测方法——中断方式还是查询方。

(3)键盘编码方法。

(4)键盘控制程序的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论