#include
实现功能:利用2个键:加、减键,实现一个加减计数器,每短按一下加键,数码管显示加1,最大到999999,长按加键3秒,进入到自加模式,每0.25秒加1,直到加键放开。减键也是一样处理。显示时,高位的0不要显示出来,比如要显示的计数值为586,那么左边的3个数码管将不显示。
///KEY4键为加键,KEY12键为减键
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
sbit KEY1 = P2^4;
sbit KEY2 = P2^5;
sbit KEY3 = P2^6;
sbit KEY4 = P2^7;
sbit kout1 = P2^3;
sbit kout3 = P2^1;
#define uchar unsigned char
#define uint unsigned
int
#define add_key 1
#define sub_key 2
unsigned char key_value=0;
static unsigned long cnt =0 ;
unsigned long t =0 ;
unsigned char flagls=0;
bit t3s_time_flag=0;
bit t05s_time_flag=0;
uchar t3s_time_count=0;
bit t3s_time_over_flag=0;
uchar t05s_time_count=0;
bit t05s_time_over_flag=0;
unsigned char code LedChar[] = {
//数码管显示字符转换表
0xC0, 0xF9, 0xA4, 0xB0,
0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83,
0xC6, 0xA1, 0x86, 0x8E
};
unsigned char LedBuff[6] = {
//数码管显示缓冲区
0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF
};
void delay(void);
void key_sca