#定義uchar無符號字符
uchar溫度;
int key1,key,disbuf//這個表是LED 0 1 23456 789 A B C D E F的字體。
無符號字符碼LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x 71 };
無符號字符ledx[8];
比特?s0,s 1;
無效延遲(uchar z)
{
uchar i,j;
for(I = 0;我& lt120;i++)
for(j = 0;j & ltz;j++);
}
Void scan() //如果按鍵被按下,掃描鍵盤代碼值。
{
p 1 = 0xf 0;
延時(1);
temp = p 1;
開關(溫度)
{
case 0xe 0:key 1 = 0;
打破;
case 0xd 0:key 1 = 1;
打破;
case 0xb 0:key 1 = 2;
打破;
case 0x 70:key 1 = 3;
打破;
}
p 1 = 0x0f;
延時(1);
temp = p 1;
開關(溫度)
{
case 0x0E:key = key 1+0;
打破;
case 0x0D:key = key 1+4;
打破;
case 0x0B:key = key 1+8;
打破;
case 0x 07:key = key 1+12;
打破;
默認:key =-1;?
}
if((key 1+1)& amp;& amp(key+1))disbuf = key;
}
void ejjc()?//判斷是否按鍵。
{
p 1 = 0xf 0;
if(P1!= 0xf 0){ scan();s0 = 1;}
else { s0 = 0;s 1 = 1;}
}
void main()
{
烏恰爾壹世;
while(1)
{
ejjc();
if(s0==1?& amp& amps1==1)
?{
?s0 = 0;s 1 = 0;
?for(I = 0;我& lt8;i++)
{ ledx[I]= ledx[I+1];ledx[8]= disbuf;}
?}
P0 = 0xff
P2 = led 7 code[ledx[0]];
P0 = 0xfe
延遲(5);
P0 = 0xff
P2 = led 7 code[ledx[1]];
P0 = 0xfd
延遲(5);
P0 = 0xff
P2 = led 7 code[ledx[2]];
P0 = 0xfb
延遲(5);
P0 = 0xff
P2 = led 7 code[ledx[3]];
P0 = 0xf7
延遲(5);
P0 = 0xff
P2 = led 7 code[ledx[4]];
P0 = 0xef
延遲(5);
P0 = 0xff
P2 = led 7 code[ledx[5]];
P0 = 0xdf
延遲(5);
P0 = 0xff
P2 = led 7 code[ledx[6]];
P0 = 0xbf
延遲(5);
P0 = 0xff
P2 = led 7 code[ledx[7]];
P0 = 0x7f
延遲(5);
}
}?