如何實(shí)現(xiàn)每秒間隔顯示數(shù)字呢?利用單片機(jī)延時(shí)函數(shù)空耗時(shí)間,延時(shí)1s來實(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;
以上是簡寫,寫全如下:
if(num》9)
{
num=0;
}
如果num變量數(shù)字大于9,num重新賦值為“0”。
3.面包板制作展示
“顯示數(shù)字”面包板制作展示
4.C語言基礎(chǔ)知識
(1)if語句
格式一:
if(表達(dá)式){語句1;語句2;}
步驟:如果表達(dá)式為“真”,則執(zhí)行語句1和語句2,如果為“假”,則跳過語句1與語句2,執(zhí)行其他的程序。
格式二:
if(表達(dá)式){語句1;語句2;}
else{語句3;語句4;}
步驟:如果表達(dá)式為“真”,則執(zhí)行語句1和語句2,如果為“假”,則執(zhí)行語句3與語句4。
(2)運(yùn)算符
常見運(yùn)算符如表
運(yùn)算符
上面的程序只是讓“num”自加到9,如何顯示大于“9”的數(shù)字呢?
當(dāng)顯示大于9的數(shù)值就需要用到數(shù)字的分解。
3)數(shù)字分解
以兩位數(shù)字為例,一位數(shù)碼管是無法顯示兩個(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文章
1889瀏覽量
92598
發(fā)布評論請先 登錄
數(shù)碼管驅(qū)動芯片的使用方法
硬件模塊---數(shù)碼管基本原理與實(shí)現(xiàn)方法

如何實(shí)現(xiàn)每秒間隔顯示數(shù)字
請***片機(jī)中斷法實(shí)現(xiàn)數(shù)碼管每秒加一的方法是什么?
數(shù)碼管靜態(tài)顯示和動態(tài)顯示的實(shí)現(xiàn)方法
分享三個(gè)在FPGA開發(fā)板上實(shí)現(xiàn)數(shù)碼管動態(tài)顯示的案例
分享一個(gè)基本的數(shù)碼管動態(tài)顯示案例
數(shù)碼管(靜態(tài)顯示)【匯編版】
動態(tài)數(shù)碼管顯示程序
靜態(tài)數(shù)碼管和動態(tài)數(shù)碼管

數(shù)碼管的顯示原理及其實(shí)現(xiàn)方式

評論