數碼管的顯示
效果:顯示
00-99,
動態顯示
+變化顯示
說明:此例程將數碼管顯示內容用乙個函式打包,要顯示直接呼叫即可。
//標頭檔案:
#include "reg51.h"
//變數定義:
unsigned char table= ;
//表:共陽數碼管0-9
//引腳定義:
sbit smg_q = p1^0; //定義數碼管陽級控制腳(千位)
sbit smg_b = p1^1; //定義數碼管陽級控制腳(百位)
sbit smg_s = p1^2; //定義數碼管陽級控制腳(十位)
sbit smg_g = p1^3; //定義數碼管陽級控制腳(個位)
//函式宣告:
void display(unsigned char da);//定義顯示函式,引數為顯示內容,只顯示兩位數
void delay(void);
//主函式,c語言的入口函式:
void main(void)
if(ldata<99)
ldata++; //重新整理完成約1秒,變數做加計數
else
ldata=0; }
} //顯示函式,引數為顯示內容,只顯示兩位數
void display(unsigned char da)
//延時子函式,短暫延時
void delay(void)
這個是顯示
00-99,
動態顯示
+變化顯示,然後我對這個程式進行了擴充套件,想把它變成
0000-9999
的動態顯示,**的顯示如下:
//標頭檔案:
#include "reg51.h"
//變數定義:
unsigned char table= ;
//表:共陽數碼管0-9
//引腳定義:
sbit smg_q = p1^0; //定義數碼管陽級控制腳(千位)
sbit smg_b = p1^1; //定義數碼管陽級控制腳(百位)
sbit smg_s = p1^2; //定義數碼管陽級控制腳(十位)
sbit smg_g = p1^3; //定義數碼管陽級控制腳(個位)
//函式宣告:
void display(unsigned char da);//定義顯示函式,引數為顯示內容,只顯示兩位數
void delay(void);
//主函式,c語言的入口函式:
void main(void)
if(ldata<9999)
ldata++; //重新整理完成約1秒,變數做加計數
else
ldata=0; }
} //顯示函式,引數為顯示內容,只顯示兩位數
void display(unsigned char da)
//延時子函式,短暫延時
void delay(void)
但是出來的結果讓我下了一跳,前面100個數正常,但是到了100+就出現了數碼管顯示不正常,什麼f,h都出來了,而且是以189這個數結束的,到了289 就直接跳到了0000,實在不解,開發板我也好好看了一下,應該是**的問題,但是,我實在找不出**出問題了,,,凌亂了。
微控制器驅動數碼管
數碼管的原理?數碼管是分段控制點亮和熄滅的led段,數碼管分為共陽極以及共陰極,共陽極就是說數碼管的led段共乙個電壓正極,共陰極就是說所有的led段共乙個電壓負極。一般方法,乙個io控制公共段,共陽極為例子,給公共段施加乙個正電壓,其餘led段由io分開控制,想顯示多少,只需點亮對應的led段,即...
51微控制器數碼管詳解
led數碼管是由多個發光二極體封裝在一起組成 8 字型的器件,引線已在內部連線完成,只需引出它們的各個筆劃,公共電極。led數碼管常用的段數一般為7段,有的另加乙個小數點 led數碼管根據led的接法不同,分為共陽和共陰兩類 1.共陽極數碼管 指八段數碼管的八段發光二極體的陽極 正極 都連在一起,而...
51微控制器攻略 數碼管
使用前先明確數碼管是共陰極接法還是共陽極接法,若是共陰極接法,定義char型按位控制其輸出 共陽極與下圖相反 工作方式分為靜態顯示和動態顯示,靜態顯示數碼管必須段選接八位資料線保持字碼。下圖是共陽極數碼管,通過we控制段,p0控制位,四個數碼管共占用12個i o口,若使用74hc573等鎖存器可簡化...