动态显示与按键消抖课件_第1页
动态显示与按键消抖课件_第2页
动态显示与按键消抖课件_第3页
动态显示与按键消抖课件_第4页
动态显示与按键消抖课件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

三、IO应用---LED数码管X位X段数码管dpgfedcbaD7D6D5D4D3D2D1D08段LED,段码是按格式:如下图显示位段码位dpgfedcbaD7D6D5D4D3D2D1D0显示位段码位11111001即为:0xF9LED数码管显示“1”编码七段共阳数码管显示数据表LED数码管显示器的显示方法有两种:静态显示和动态扫描显示。(一)LED数码管的显示方法例:利用2位LED静态显示“12”

#include<reg51.h>unsignedchard1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

voidmain(){ P0=0xff; P2=0Xff; while(1) { P0=d1[1]; //笔段码 P2=d1[2]; //笔段码

}}思考:如是实现显示完“12”延时一会儿有显示“34”呢?#include<reg51.h>unsignedchard1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

voiddelay(intm){ unsignedinti,j; for(i=0;i<m;i++) for(j=0;j<200;j++);}voidmain(){ P0=0xff; P2=0Xff; while(1) { P0=d1[1]; //笔段码”1” P2=d1[2]; //笔段码”2”

delay(100); P0=d1[3]; //笔段码”3” P2=d1[4]; //笔段码”4” delay(100); }}LED动态显示

例2:2位LED动态扫描显示(显示:12)笔段位选三极管“放大”和“开关”作用显示“1”显示“2”‘0’导通‘1’关闭#include<reg51.h>unsignedchard1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

voiddelay(intm){ unsignedinti,j; for(i=0;i<m;i++) for(j=0;j<200;j++);}voidmain(){ while(1) {

P0=d1[1]; //笔段码 P2_1=0;P2_0=1; //位选码

delay(1); //延时 P2=0XFF; //消隐

P0=d1[2]; //笔段码 P2_1=0;P2_0=1;

//位选码

delay(1); //延时 P2=0XFF; //消隐

}}显示十位数1显示个位数2思考:如何利用下面硬件电路显示:123456?#include<reg51.h>unsignedchard1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedchard2[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};voiddelay(intm);voidmain(){ unsignedchari; P0=0XFF; P2=0XFF;

while(1) {

for(i=0;i<6;i++) {

P0=d1[i+1]; //送笔段码 P2=d2[i]; //送位选码 delay(1); //延时5ms P0=0XFF; //消隐 } }}6位LED动态扫描电路----共阳电路连接笔段码位选码‘0’导通‘1’关闭四、IO应用-点阵(了解:自学)有兴趣了解一下点阵显示器—做广告用一个好的单片机应用系统,通常要有优秀的人机交互接口。键盘是与单片机进行人机交互的最基本的途径,其以按键的形式来设置控制功能或输入数据。按键的输入状态本质上是一个开关量。人们通过键盘输入一些命令或数据,以达到控制单片机运行的目的。常用的键盘有独立式按键键盘和矩阵式按键键盘两种。独立式按键接口简单,适合于简单而且少的开关量的输入。矩阵式按键键盘则适合于输入参数较多、功能复杂的系统,可以最大限度地使用单片机的引脚资源。本小节主要介绍了独立式按键和矩阵式按键键盘输入的相关知识及其编程接口。五、IO应用-按键(BUTTON)

键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换为电气上的逻辑关系(1和0)。防抖动措施为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。 键数较少时,采用硬件去抖; 键数较多时,采用软件去抖。按键触点的机械抖动“软件去抖”思想

软件上采取的措施:在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动的影响。#include<regX52.H>sbitLED=P2_7; sbitKEY=P2_0; voidDelayms(unsignedchar);

voidmain(void)//main函数{

KEY=1;//按键初始化 while(1) //死循环,保证系统一直运行 {

if(KEY==0) //如果有按键按下 {

Delayms(10);//延时去抖动

if(KEY==0)//再次确认按键{

LED=~LED;//将LED取反

while(KEY==0);

//等待松开

} } }

}例2:键控花样流水灯请大家思考,根据流程图采用C51编出任务程序!下节课用带来检查,并计入平时成绩!例2:

2位十进制按键计数器(00~99)请大家思考,采用C51编出任务程序,并画出流程图!下节课用带来检查,并计入平时成绩!单片机系统中,若使用按键较多时,通常采用矩阵式键盘,其结构如下图所示。(二)矩阵按键(keyboard

)行列式键盘由图可知,一个4×4的行、列结构,可以构成一个含有16个按键的键盘,节省了很多I/O口。识别矩阵键盘按键的方法1、行扫描法;2、线反转法①判断哪一行有键按下 写端口(0xf0):行线电平=0;列线电平=1。 读端口进行判断:若P1=0xf0→没有按键压下; 若P1≠0xf0→某行有键压下→W1②判断哪一列有键按下 写端口(0x0f):行线电平=1;列线电平=0。 读端口进行判断:若P1=0x0f→没有按键压下;若P1≠0x0f→某列有键压下→W2③将W1与W2相“或”并存于W(形成键值)——闭合键所在行、列的状态均为0,其余皆为1。④利用查表比对法求出闭合按键的键模。线反转法思路vccP10P11P12P13P14P15P16P170123456789101112131415AT89C51R1R2R3R4P10P11P12P13P14P15P16P17012345678910111213141501230123AT89C51EEDEBE7EEDDDBD7DEBDBBB7BE7D7B777

例1:矩阵键盘识别,利用LED来显示按键。#include<regx51.h>unsignedcharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};unsignedcharw;voiddelay();//申明函数voidkey_scan();voidkey_tran();voidmain(){ P1=0XFF;//输入初始化 P0=0x00;//LED开始不亮 while(1)//保证系统一直运行 {

key_scan();//键盘扫描程序 key_tran();//键值译码并显示 }}voidkey_scan(){ unsignedcharw1,w2; P1=0x0F; w1=P1&0x0F; if(w1!=0x0F) {

delay(); //软件延时去抖动

P1=0xF0; w2=P1&0xF0; w=(w1|w2); //求出相应的键值。

while(P1!=0xF0);//等待释放按键 } else { w=0xFF; }}voidkey_tran(){ switch(w) { case0xEE: P0=table[0]; break;//LED显示0 case0xED: P0=table[1]; break;//LED显示1 case0xEB: P0=table[2]; break;//LED显示2 case0xE7: P0=table[3]; break;//LED显示3 case0xDE: P0=table[4]; break;//LED显示4 case0xDD: P0=table[5]; break;//LED显示5 case0xDB: P0=table[6]; break;//LED显示6 case0xD7: P0=table[7]; break;//LED显示7 case0xBE: P0=table[8]; break;//LED显示8 case0xBD: P0=table[9]; break;//LED显示9 case0xBB: P0=table[10]; break;//LED显示A case0xB7: P0=table[11];

温馨提示

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

评论

0/150

提交评论