開發板所使用的數碼管為共陽數碼管,所以數碼管的碼字一定要知道,不知道也要會推。
uchar code nixie=
;//共陽數碼管碼字
共陽數碼管0~f的碼字如上**所示
y6c控制數碼管的位選端
y7c控制數碼管的段選端
//標頭檔案包含
#include
#include
//管腳宣告
//變數型別宣告
typedef
unsigned
int uint;
typedef
unsigned
int u16;
typedef
unsigned
char uchar;
typedef
unsigned
char u8;
//外部變數宣告
//函式宣告
void
all_init()
;void
operate_delay
(unsigned
int ms)
;void
timer0init
(void);
void
nixie_scan
(void);
void
nixie_show
(void);
void
time_deal
(void);
#endif
nixie.c
#include
"sys.h"
uchar code nixie=
;//共陽數碼管碼字
uchar code symbol=
;//全滅,-
uchar nixiebuff=
;//數碼管顯示緩衝區,初值0xff確保啟動時都不亮
uchar smg1,smg2,smg3,smg4,smg5,smg6,smg7,smg8;
uchar sec,min,hour;
//數碼管顯示
void
nixie_scan
(void
)//數碼管顯示
void
nixie_show
(void
)//時鐘處理
void
time_deal
(void)}
} smg1 = hour/10;
smg2 = hour%10;
smg4 = min/10;
smg5 = min%10;
smg7 = sec/10;
smg8 = sec%10;
if(smg8%2==
0)else
}
sys.c
#include
"sys.h"
extern uchar sec;
/***@brief 外設初始化
*@param[in] none
*@return none
**/void
all_init()
/***@brief 延時函式
*@param[in] 延時多少ms(0~65535)
*@return none
**/void
operate_delay
(u16 ms)
void
timer0init
(void
)//1毫秒@11.0592mhz
void
timer0
() interrupt 1
time_deal()
;nixie_show()
;nixie_scan()
;}
main.c
#include
"sys.h"
void
main()
藍橋杯微控制器學習之動態數碼管
由於藍橋杯的特殊設定,具體請看我的初始化解釋,所以藍橋杯的不同數字展示是和其他數碼管有區別的,因為藍橋杯的暫存器比較少,所以就是需要另乙個知識來實現這個不同數字顯現問題。也就是不停轉換位選來顯現不同位置上的數字,通過分流輪流控制各個數碼管的com端,這就是動態驅動 在一定時間範圍內,儘管不是同時顯示...
藍橋杯微控制器設計與開發筆記(一)
近期和我們實驗室的小夥伴一起參加了第七屆藍橋杯微控制器開發與設計組省賽,在這裡將備賽期間的一些資料和經驗總結一下,並分享給大家。藍橋杯微控制器開發板是國信長天的ct107d微控制器綜合訓練平台,個人感覺這塊開發板的設計還是很不錯的。之前一直用的普中的板子,自己也做過一些最小系統板,練習了藍橋杯的板子...
微控制器驅動數碼管
數碼管的原理?數碼管是分段控制點亮和熄滅的led段,數碼管分為共陽極以及共陰極,共陽極就是說數碼管的led段共乙個電壓正極,共陰極就是說所有的led段共乙個電壓負極。一般方法,乙個io控制公共段,共陽極為例子,給公共段施加乙個正電壓,其餘led段由io分開控制,想顯示多少,只需點亮對應的led段,即...