|
#include "main.h"
sbit S7=P3^0;//加
sbit S6=P3^1;//減
sbit S5=P3^2;//清0
uchar key_code,key_counts;//按鍵代碼,按鍵計(jì)數(shù)
uchar num_buff[3]={0,0,0};//數(shù)碼管顯示內(nèi)容
uchar dula[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
void main()
{
allint();
while(1)
{
key_contrul_smg_display();
key_contrul_smg_display_buff();
}
}
void delay(uchar i)
{
while(i--);
}
void allint()
{
P2=0X80;P0=0XFF;P2=0X00;
P2=0XA0;P0=0X00;P2=0X00;
P2=0XC0;P0=0XFF;P2=0X00;
P2=0XE0;P0=0XFF;P2=0X00;
}
void key_contrul_smg_display()
{
uchar i,j=0x80;
num_buff[0]=key_counts/100;
num_buff[1]=key_counts%100/10;
num_buff[2]=key_counts%10;
for(i=0;i<3;i++)
{
j=_crol_(j,1);
P2=0XE0;P0=dula[num_buff[ i]];P2=0X00;
P0=0XFF;
P2=0XC0;P0=j;P2=0X00;
P0=0X00;
delay(1000);
}
}
void key_contrul_smg_display_buff()
{
uchar i;
P30=1;P31=1;P32=1;
key_code=P3;
if(key_code!=0xff)
{
for(i=0;i<30;i++)
{
key_contrul_smg_display();
switch(key_code)
{
case 0xfe:if(key_counts<9)key_counts++;break;
case 0xfd:if(key_counts>0)key_counts--;break;
case 0xfb:key_counts=0;break;
}
key_code=0xff;
}
}
} |
|