/*
按鍵靜態顯示不同的數字,即按鍵1顯示1。
動態顯示:數字移動顯示
*/
# include & ltreg52.h & gt
#定義?uint?未簽名?int?
#定義?烏恰爾?未簽名?夏爾?
sbit?dp=p0^6;
sbit?d1=p2^4;
sbit?d2=p2^5;
sbit?d3=p2^6;
sbit?d4=p2^7;
烏恰爾?代碼?表[]=
{0x28,0xeb,0x32,0xa2,
0xe1,0xa4,0x24,0xea,
0x20,0xa0,0xf 7 };
烏恰爾?代碼?table1[]=?{0xfe,0xfd,0x FB };?
uint?num1=0,temp,num,flag = 0;
夏爾?Char[50]="=== ",* p;
烏恰爾?dp=0,魏;
浮動?a = 0;
作廢?延遲(uint?z)
{?uint?x;
uint?y;
for(x = z;x & gt0;x -)?
for(y = 110;y & gt0;y -)?;?}
作廢?簡()?//鍵盤掃描?
{
if(num 1 = = 3)num 1 = 0;
P2 = table 1[num 1];
temp = P2;
溫度=溫度& amp0xf0
if(temp!=0xf0)
{延遲(5);
temp = P2;
溫度=溫度& amp0xf0
if(temp!=0xf0)
?{ temp = P2;flag = 1;
?開關(溫度& gt& gt4)
?{案例?0x0e:num = 0+4 * num 1;
打破;
案子?0x0d:num = 1+4 * num 1;
打破;
案子?0x0b:num = 2+4 * num 1;
打破;
案子?0x 07:num = 3+4 * num 1;
打破;
?}
while(temp!=0xf0)
?{
temp = P2;
溫度=溫度& amp0xf0
?}
延遲(5);
while(temp!=0xf0)
?{
temp = P2;
溫度=溫度& amp0xf0
?}
?
?}
}
num 1++;?P2 = 0x ff;
}
//數碼管顯示
作廢?顯示(char?z[],uchar?Z1)/"表示"-"/* *無。
{?if(z[0]-' 0 ' & lt;13)?//不能小於或等於0。
{
d 1 = 0;P0 = table[z[0]-' 0 '];if(z 1 = = 1)Dp = 0;
延時(1);d 1 = 1;P0 = 0xff
}
if(z[1]-' 0 ' & lt;13){ D2 = 0;P0 = table[z[1]-' 0 '];if(z 1 = = 2)Dp = 0;延時(1);D2 = 1;P0 = 0xff?}
if(z[2]-' 0 ' & lt;13){ D3 = 0;P0 =表[z[2]-' 0 '];if(z 1 = = 3)Dp = 0;延時(1);D3 = 1;P0 = 0xff}
if(z[3]-' 0 ' & lt;13){ D4 = 0;P0 =表[z[3]-' 0 '];if(z 1 = = 4)Dp = 0;延時(1);D4 = 1;P0 = 0xff?} }
作廢?主()
{
while(1)
{
簡();
if(flag = = 1){ flag = 0;?
?char[Wei+3]= ' 0 '+num;?wei++;
?p = Char+Wei-1;
?
?}?
?如果(魏& gt0)顯示(p,DP);?
}
}
硬件電路圖