哈。最太懶了,都沒來更新,夏天的陽光都把我曬化嘍
繼續(xù)更新我的筆記吧。
用到單片機就不可避免要涉及人機交互,而最簡單的顯示就是使用數(shù)碼管了。它可以顯示0-9的數(shù)字和部分因為字母。
我一般使用的是七段數(shù)碼管,它的腳位從頂橫順著數(shù)分別為,a,b,c,d,e,f中間一橫為g而小數(shù)點為h,由這幾個就可以構(gòu)成顯示不同符號的碼表:abcdefgh
下面是數(shù)碼管顯示的小程序
//該程序是通過按鍵控制數(shù)碼管開始或停止在0-9加1顯示
void Delay(unsigned char count) //該延時子程序是12Mhz下的X*1ms延時
{
unsigned char j;
while(count-- != 0)
{
for(j=0;j<72;j++);
}
}
char Keyhit(void)
{
P3=0xff; //P3口置高,在C51里這些默認定義的關(guān)鍵字都要大寫
if((P3^0xff)!=0) //通過P3的值與上全1判斷有無按鍵
Delay(10); //有按鍵則延時再判斷,去抖動
if((P3^0xff)!=0)
return(1);
else
return(0);
}
void LedPrint(void)
{
unsigned char i;
P2 =0x0f;
while(i<10)
{
P0=LedCode[i];
P2&=0xfe;
Delay(800);
if(Keyhit())
{
P2 =0x0f;
break;
}
i++;
if(i==10) i=0;
}
}
void main(void)
{
unsigned int num=0;
while(1)
{
if(Keyhit())
{
num++;
num=num%2;
while(Keyhit());
}
if(num==1)
LedPrint();
}
}