LED显示、键盘操作及程序PPT文档格式.ppt

上传人:b****3 文档编号:15665281 上传时间:2022-11-11 格式:PPT 页数:41 大小:1.11MB
下载 相关 举报
LED显示、键盘操作及程序PPT文档格式.ppt_第1页
第1页 / 共41页
LED显示、键盘操作及程序PPT文档格式.ppt_第2页
第2页 / 共41页
LED显示、键盘操作及程序PPT文档格式.ppt_第3页
第3页 / 共41页
LED显示、键盘操作及程序PPT文档格式.ppt_第4页
第4页 / 共41页
LED显示、键盘操作及程序PPT文档格式.ppt_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

LED显示、键盘操作及程序PPT文档格式.ppt

《LED显示、键盘操作及程序PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《LED显示、键盘操作及程序PPT文档格式.ppt(41页珍藏版)》请在冰豆网上搜索。

LED显示、键盘操作及程序PPT文档格式.ppt

j+);

voidmain(void)/主程序主程序while

(1)/非非0为真,此为无限循环为真,此为无限循环LED1=0;

LED2=1;

LED3=1;

delayms(1000);

LED1=1;

LED2=0;

LED3=0;

电阻电阻R,其计算公式如下:

,其计算公式如下:

为电源电压,为电源电压,取取5V5V;

为发光二极管压降,取为发光二极管压降,取1.2V1.2V-1.8V1.8V;

为驱动器压降为驱动器压降,取取0.3V-0.5V,0.3V-0.5V,本例未使用本例未使用驱动器驱动器;

为发光二极管工作电流为发光二极管工作电流,取取8mA-20mA8mA-20mA。

发光二极管工作电流,其值越大,二极管越亮。

为了提高亮度,可减少限流电阻。

也可以选用驱为了提高亮度,可减少限流电阻。

也可以选用驱动器件以提供更大的电流,常用的驱动器件有动器件以提供更大的电流,常用的驱动器件有动器件以提供更大的电流,常用的驱动器件有动器件以提供更大的电流,常用的驱动器件有74LS0674LS0674LS0674LS06、74LS0774LS0774LS0774LS07、小功率三极管等。

、小功率三极管等。

5.2.2LED显示显示(Light-EmittingDiode)共阳极共阳极共阴极共阴极外形图外形图8段段LED字型码(段码)字型码(段码)“1”的段码(共阳极):

的段码(共阳极):

“F9H”dpgfedcbaP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.011111001“5”的段码(共阴极):

的段码(共阴极):

“6DH”dpgfedcbaP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.001101101共阳极段码:

共阳极段码:

0123456789Ab“黑黑”C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H,88H,83H,FFH共阴极段码:

共阴极段码:

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H静态静态LEDLED显示显示显示显示0000,每秒钟加,每秒钟加11,至,至9999,如此循环不止。

,如此循环不止。

P1P1、P3P3各接一个数码管:

各接一个数码管:

#includeucharcodedispcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;

voidmain(void)/主程序主程序ucharnum=0;

while

(1)P1=dispcodenum/10;

P3=dispcodenum%10;

num+;

if(num=100)num=0;

常用简化缩写来定义数据类型:

#defineucharunsignedchar#defineuintunsignedint图图5.9两位两位LED数码管动态显示数码管动态显示动态动态LEDLED显示显示例:

显示例:

显示“86”86”#includesbitLED1=P27;

/十位十位sbitLED0=P26;

/个位个位ucharcodedispcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;

voidmain(void)/主程序主程序ucharnum=86;

LED11;

LED0=0;

delayms(5);

P1=dispcodenum%10;

LED10;

LED0=1;

33独立式键盘独立式键盘键盘处理程序任务键盘处理程序任务:

*检查键盘是否有键被按下;

检查键盘是否有键被按下;

*确定被按键的键号确定被按键的键号,获取键号。

获取键号。

*硬件电路消除抖动或软件消除抖动。

硬件电路消除抖动或软件消除抖动。

按键抖动按键抖动10ms10ms“1”“0”释放抖动释放抖动1010msms+5v稳定闭合稳定闭合1.1.独立式键盘电路独立式键盘电路延时等待延时等待10ms仍有按键信号?

仍有按键信号?

Y有按键信号?

有按键信号?

NYN键盘处理键盘处理89c51P1.0P1.1P1.2/*-key.h头文件头文件功能:

三独立键处理函数功能:

三独立键处理函数-*/#ifndef_KEY_H_#define_KEY_H_#include#defineucharunsignedchar#defineUP0x01/定义键号定义键号#defineDOWN0x02#defineENTER0x03sbitUP_key=P10;

/键引脚,改正键引脚,改正sbitDOWN_key=P11;

sbitENTER_key=P12;

/*-功能:

毫秒延时函数功能:

毫秒延时函数参数:

当晶振为参数:

当晶振为11.0592MHz时,时,x为为ms数,数,误差为误差为16us;

x1000为为1秒秒-*/voiddelayms(unsignedintx)ucharj;

while(x-)for(j=0;

功能:

获取键号获取键号返回:

返回:

key=键号键号1-3;

key=0无键按下。

无键按下。

-*/ucharKeyscanNUM(void)ucharkey=0;

/key=0无键按下无键按下UP_key=1;

DOWN_key=1;

ENTER_key=1;

if(UP_key=0)delayms(10);

if(UP_key=0)key=UP;

elsekey=0;

if(DOWN_key=0)delayms(10);

if(DOWN_key=0)key=DOWN;

if(ENTER_key=0)delayms(10);

if(ENTER_key=0)key=ENTER;

returnkey;

#endif#includekey.h“sbitLED_RED=P32;

/补充补充sbitLED_YELLOW=P33;

sbitLED_GREEN=P34;

/键处理子函数键处理子函数/功能:

按功能:

按UP键红灯亮,按键红灯亮,按ENTER键黄灯亮,键黄灯亮,/按按DOWN键绿灯亮,键绿灯亮,voidKeyProc(ucharkey)switch(key)caseUP:

LED_RED=0;

LED_YELLOW=1;

LED_GREEN=1;

break;

caseDOWN:

LED_RED=1;

LED_YELLOW=0;

caseENTER:

LED_GREEN=0;

独立键处理演示程序独立键处理演示程序/*主程序主程序voidmain(void)ucharkey;

while

(1)key=KeyscanNUM();

if(key=UP|key=DOWN|key=ENTER)KeyProc(key);

key=0;

44行列式键盘模块行列式键盘模块独立式键盘只适合按键少的场合。

独立式键盘只适合按键少的场合。

按键较多时,常采用行列式键盘电路。

行列式键盘的程序复杂,需采用键盘扫描技术。

常用的键盘扫描方式有:

扫描法、扫描法、反转法、反转法、状态矩阵法等。

状态矩阵法等。

本节只介绍(线)反转法本节只介绍(线)反转法Line-Reverse原理如图原理如图5.125.12。

反转法原理图反转法原理图反转法接线图反转法接线图先从先从P1口的高口的高4位输出低电平(列),位输出低电平(列),低低4位输出高电平(行);

位输出高电平(行);

即即P1=0x0f0;

从从P1口读取键盘状态:

口读取键盘状态:

低低4位中只要有一位出现位中只要有一位出现“0”,说明此行中有键按下。

,说明此行中有键按下。

各行有键按下的数值依次为各行有键按下的数值依次为0EH000011100DH000011010BH0000101107H00000111步骤步骤1:

再从再从P1口的低口的低4位输出低电平(行),位输出低电平(行),高高4位输出高电平(列);

位输出高电平(列);

即即P1=0xf;

高高4位中只要有一位出现位中只要有一位出现“0”,说明此行中有键按下。

各列有键按下的数值依次为各列有键按下的数值依次为E0H11100000D0H11010000B0H1011000070H01110000将两次读取的数值组合,得到将两次读取的数值组合,得到“键值的特征码键值的特征码”。

步骤步骤2:

步骤步骤3:

/*-4x4KEY.h头文件头文件功能:

对功能:

对4x4KEY.c函数的申明函数的申明-*/#ifndef_4x4KEY_H_#define_4x4KEY_H_#include#defineucharunsignedchar#defineKey_PortP1/定义键盘接口定义键盘接口/*-检测按键函数检测按键函数功能:

消抖后判断是否真正有键按下功能:

消抖后判断是否真正有键按下返回值:

返回值:

1有按键;

有按键;

0无按键无按键-*/ucharKey_Down(void);

/*-获取键键号扫描函数获取键键号扫描函数返回键号(返回键号(0x000x0f);

无按键返回无按键返回0xff;

-*/ucharKey_Code(void);

#endif/*-函数功能:

函数功能:

4x4KEY的驱动函数的驱动函数-*/#include4x4key.hvoiddelayms(uintx)/省略省略./判断是否有键按下函数,为判断是否有键按下函数,为Key_Down服务的函数服务

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1