如何實(shí)現(xiàn)每秒間隔顯示數(shù)字呢?利用單片機(jī)延時(shí)函數(shù)空耗時(shí)間,延時(shí)1s來(lái)實(shí)現(xiàn),等學(xué)完單片機(jī)定時(shí)器中斷,就可以設(shè)計(jì)精確計(jì)時(shí)程序。
1.程序設(shè)計(jì)
#include《reg52.h》//頭文件
#defi ne uchar unsigned char//宏定義
#defi ne uint unsigned int
uchar code table []={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共陰數(shù)碼管編碼
void delay(uint a)//延時(shí)函數(shù)
{
uint j,i;
for(j=a;j》0;j--)
for(i=110;i》0;i--);
}
void main()//主函數(shù)
{
uint num;//定義變量
while(1)
{
delay(1000); //延時(shí)時(shí)間大約1s
P1=0xfe;
P0=table[num];
num++;
if(num》9)
num=0;
}
}
2.程序解釋
①num++;即num=num+1。
②P1=0xfe;選通第一個(gè)數(shù)碼管。
③if(num》9)
num=0;
以上是簡(jiǎn)寫(xiě),寫(xiě)全如下:
if(num》9)
{
num=0;
}
如果num變量數(shù)字大于9,num重新賦值為“0”。
3.面包板制作展示
“顯示數(shù)字”面包板制作展示
4.C語(yǔ)言基礎(chǔ)知識(shí)
(1)if語(yǔ)句
格式一:
if(表達(dá)式){語(yǔ)句1;語(yǔ)句2;}
步驟:如果表達(dá)式為“真”,則執(zhí)行語(yǔ)句1和語(yǔ)句2,如果為“假”,則跳過(guò)語(yǔ)句1與語(yǔ)句2,執(zhí)行其他的程序。
格式二:
if(表達(dá)式){語(yǔ)句1;語(yǔ)句2;}
else{語(yǔ)句3;語(yǔ)句4;}
步驟:如果表達(dá)式為“真”,則執(zhí)行語(yǔ)句1和語(yǔ)句2,如果為“假”,則執(zhí)行語(yǔ)句3與語(yǔ)句4。
(2)運(yùn)算符
常見(jiàn)運(yùn)算符如表
運(yùn)算符
上面的程序只是讓“num”自加到9,如何顯示大于“9”的數(shù)字呢?
當(dāng)顯示大于9的數(shù)值就需要用到數(shù)字的分解。
3)數(shù)字分解
以兩位數(shù)字為例,一位數(shù)碼管是無(wú)法顯示兩個(gè)數(shù)字,數(shù)字分解是必需的,分解后分別送到兩個(gè)數(shù)碼管顯示。比如一個(gè)兩位數(shù)字是num,分解十位(a表示),a=num/10(稱之為求模);分解個(gè)位(b表示),b=num%10(稱之為求余)。
責(zé)任編輯人:CC
-
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1882瀏覽量
91124
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論