如何實現每秒間隔顯示數字呢?利用單片機延時函數空耗時間,延時1s來實現,等學完單片機定時器中斷,就可以設計精確計時程序。
1.程序設計
#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};//共陰數碼管編碼
void delay(uint a)//延時函數
{
uint j,i;
for(j=a;j》0;j--)
for(i=110;i》0;i--);
}
void main()//主函數
{
uint num;//定義變量
while(1)
{
delay(1000); //延時時間大約1s
P1=0xfe;
P0=table[num];
num++;
if(num》9)
num=0;
}
}
2.程序解釋
①num++;即num=num+1。
②P1=0xfe;選通第一個數碼管。
③if(num》9)
num=0;
以上是簡寫,寫全如下:
if(num》9)
{
num=0;
}
如果num變量數字大于9,num重新賦值為“0”。
3.面包板制作展示
“顯示數字”面包板制作展示
4.C語言基礎知識
(1)if語句
格式一:
if(表達式){語句1;語句2;}
步驟:如果表達式為“真”,則執行語句1和語句2,如果為“假”,則跳過語句1與語句2,執行其他的程序。
格式二:
if(表達式){語句1;語句2;}
else{語句3;語句4;}
步驟:如果表達式為“真”,則執行語句1和語句2,如果為“假”,則執行語句3與語句4。
(2)運算符
常見運算符如表
運算符
上面的程序只是讓“num”自加到9,如何顯示大于“9”的數字呢?
當顯示大于9的數值就需要用到數字的分解。
3)數字分解
以兩位數字為例,一位數碼管是無法顯示兩個數字,數字分解是必需的,分解后分別送到兩個數碼管顯示。比如一個兩位數字是num,分解十位(a表示),a=num/10(稱之為求模);分解個位(b表示),b=num%10(稱之為求余)。
責任編輯人:CC
-
數碼管
+關注
關注
32文章
1876瀏覽量
90953
發布評論請先 登錄
相關推薦
評論