• 大小: 0.07M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: 其他
  • 标签: 其他  

资源简介

两位按键控制一个数码管加减.zip

资源截图

代码片段和文件信息

//-----------------------------------------------------
// 功能: 按键控制七段LED数码管的显示值变化
// 硬件连接:七段LED数码管的数据端接P0口 2个按键接P1.0和P1.1 *
// 编写: 王晓荣
// 日期: 20110703
//-----------------------------------------------------

#include 

#define LED_DATA P0
#define KEY_PIN  P1

typedef enum 
{
NULL KEY_UP KEY_DOWN
}TYPEDEF_KEY;
unsigned char code LEDMAP[] =  //0-9共阳极代码 *
{
0xc0 0xf9 0xa4 0xb0 0x99 
0x92 0x82 0xf8 0x80 0x90
};

void Delay(unsigned int t);
TYPEDEF_KEY GetKey(void); 

//-----------------------------------------------------
// 主程序
//-----------------------------------------------------
main(void)
{
TYPEDEF_KEY key;   
unsigned char number = 0;      //仿真运行,观察该变量存储位置
while (1)
{
key = GetKey();
switch(key)
{
case KEY_UP:
number++;
if(number >= 10)
{
number = 0;
}
break;
case KEY_DOWN:
if(number == 0)
{
number = 9;
}
else
{
number--;
}
break;
default:
    break;
}
LED_DATA =  LEDMAP[number];  //查表法  
}
}

//-----------------------------------------------------
// 延时
//-----------------------------------------------------
void Delay(unsigned int t)

for (t; t>0; t--) ;
}

//-------------------------------------------------------------------------------
//得到按键值
//-------------------------------------------------------------------------------
TYPEDEF_KEY GetKey(void)
{
TYPEDEF_KEY key = NULL;
if( ~KEY_PIN & 0x03)     //有键按下
{
Delay(1000); //去抖动
if(~KEY_PIN & 0X01)
{
key = KEY_UP;
}
else if(~KEY_PIN & 0X02)
{
key = KEY_DOWN;
}
else
{
return(NULL);
}
while(KEY_PIN != 0XFF) //等待键抬起
{
Delay(2);
}   
return(key);
}
return(NULL);


/*
*   需接限流电阻:8*1K
* 添加“code”:定义的变量存储在ROM中。

*/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-05-09 13:32  按键控制七段LED数码管的显示值变化\
     目录           0  2013-05-09 13:32  按键控制七段LED数码管的显示值变化\v0.1\
     文件       87817  2011-07-04 08:58  按键控制七段LED数码管的显示值变化\v0.1\DESP0-9.DSN
     文件         626  2018-04-29 08:53  按键控制七段LED数码管的显示值变化\v0.1\DESP0-9.PWI
     文件       86488  2010-09-07 00:05  按键控制七段LED数码管的显示值变化\v0.1\Last Loaded DESP0-9.DBK
     文件        2006  2011-07-23 19:12  按键控制七段LED数码管的显示值变化\v0.1\main.c
     文件        5527  2011-07-23 19:12  按键控制七段LED数码管的显示值变化\v0.1\main.LST
     文件        4263  2011-07-23 19:12  按键控制七段LED数码管的显示值变化\v0.1\main.OBJ
     文件        4004  2011-07-23 19:12  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach
     文件         493  2011-07-23 19:12  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach.hex
     文件         278  2010-08-31 09:38  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach.LIB
     文件          53  2011-07-23 19:12  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach.lnp
     文件        5141  2011-07-23 19:12  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach.M51
     文件         229  2011-07-30 09:39  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach.plg
     文件      141502  2011-07-30 11:02  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach.uvopt
     文件       13249  2010-09-01 21:52  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach.uvproj
     文件          50  2010-08-31 09:38  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach.__b
     文件      142637  2011-07-30 11:02  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach_uvopt.bak
     文件       13255  2010-09-01 20:37  按键控制七段LED数码管的显示值变化\v0.1\NJUT_AT89S51Teach_uvproj.bak
     文件        1352  2010-09-01 20:37  按键控制七段LED数码管的显示值变化\v0.1\one_led.LST
     文件        2320  2010-09-01 20:37  按键控制七段LED数码管的显示值变化\v0.1\one_led.OBJ

评论

共有 条评论