#定義?烏恰爾?未簽名?茶
#定義?uint?未簽名?(同Internationalorganizations)國際組織
烏恰爾?位=0,十=0,百=0,千= 0;
烏恰爾?代碼?ledshow[10]={?0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/* 9 */};?//* * *陰數碼管
烏恰爾?代碼?jz_code[17]={0xff,
0xee、0xed、0xeb、0xe7、
0xde、0xdd、0xdb、0xd7、
0xbe、0xbd、0xbb、0xb7、
0x7e、0x7d、0x7b、0x 77 };//鍵盤代碼
uint?代碼?Data_square[]={0,
1,4,9,16,
25,36,49,64,
81,100,121,144,
169,196,225,256};//方形
作廢?延遲(無符號?夏爾?a)?//延遲
{
未簽名?夏爾?我;
當(a -)
for(I = 100;我& gt0;我-);
}
烏恰爾?Kbscan(void)//鍵盤掃描
{
未簽名?夏爾?掛,臥,鍵;
p 1 = 0xf 0;
延遲(5);
lie = p 1;
p 1 = 0x0f;
延遲(5);
hang = p 1;
for(key = 16;key & gt0;關鍵-)
{
?if(jz_code[key]==(hang|lie))?打破;
}
回歸?(重點);
}
作廢?data_bcd(void)?//平方分解後的結果
{
烏恰爾?我;
I = kbs can();
如果(我!=0)
{
bits = Data _ square[I]% 10;?//位
ten =(Data _ square[I]% 100)/10;?//十個人
百=(Data _ square[I]% 1000)/100;//數百
千= Data _ square[I]/1000;?//千
}
}
作廢?Display(void)//數碼管顯示,調試方法:在數碼管間隔抖動功能?延遲(5);第四關小音量。
{
data _ BCD();
P0 = led show[千];
P2 _ 0 = 0;
延遲(5);
P2 _ 0 = 1;
P0 = led show[百];
P2 _ 1 = 0;
延遲(5);
P2 _ 1 = 1;
P0 = led show[Ten];
P2 _ 2 = 0;
延遲(5);
P2 _ 2 = 1;
P0 = led show[位];
P2 _ 3 = 0;
延遲(5);
P2 _ 3 = 1;
}
作廢?主要(無效)
{
P2 = 0x ff;
while(1)
{
顯示();
}
}