led數碼管是由多個發光二極體封裝在一起組成 「8」 字型的器件,引線已在內部連線完成,只需引出它們的各個筆劃、公共電極。led數碼管常用的段數一般為7段,有的另加乙個小數點。led數碼管根據led的接法不同,分為共陽和共陰兩類。
藍橋杯cd107微控制器為共陽數碼管,共陽數碼管真值表如下。字元0
1234
567字元
0123
4567
數值0xc0
0xf9
0xa4
0xb0
0x99
0x92
0x82
0xf8字元8
9abc
def數值
0x80
0x90
0x88
0x83
0xc6
0xa1
0x86
0x8e
硬體說明:iap15f2k61s2
實驗原理:動態顯示實質上就是輪流點亮單個數碼管實現多位數碼管整體顯示的效果。在輪流顯示過程中,每位數碼管點亮時間為1~2ms, 由於人的視覺暫留現象及發光二極體的餘輝效應,儘管實際上各位數碼管並非同時點亮,但只要掃瞄的速度足夠快,給人的印象就是一組穩定的顯示資料,不會有閃爍感。
動態顯示的效果和靜態顯示是一樣的,能夠節省大量的i/o埠,而且功耗更低。對於一組4位數碼管來說,靜態顯示和動態顯示都能實現同樣的效果,但需要的i/o埠是不同的。靜態顯示需要i/o埠: 8個段碼*4 + 4個com端= 36個i/o引腳;動態顯示需要i/o埠: 8個段碼+ 4個com端= 12個i/o引腳
實驗目標:在ct107d微控制器綜合訓練平台上,實現數碼管的動態顯示,在8位數碼管中,前面4位顯示年份「2018」,接著2位是分隔符「-」,最後兩位是月份,從面1月份開始,每隔一段時間加1個月, 到12月之後又從1月開始遞增,如此往復。
程式**:
#include
"reg52.h"
unsigned
char yu =1;
/*用於記錄月份*/
unsigned
char code smg_duanma[18]
=;/*用於數碼管段選*/
void
selecthc573
(unsigned
char channel)
/*74hc573鎖存器*/
}void
displaysmg_bit
(unsigned
char value,
unsigned
char pos)
/*數碼管顯示*/
void
delaysmg
(unsigned
int t)
/*數碼管延時函式*/
void
display_dynamic()
/*設定數碼管顯示內容*/
void
delay
(unsigned
char t)
/*延時函式*/
}void
main()
delay
(200);
}}
藍橋杯微控制器CT107D 底層驅動基礎
這兩個 檔案是其他底層驅動 的基礎 包含了控制138573 間接控制數碼管led和蜂鳴器等 delay延時函式 ct107開發板上點初始化 基礎 ct107.h 標頭檔案 ifndef ct107 h define ct107 h include define uint unsigned int d...
藍橋杯微控制器CT107D ADC
adc轉換需要寫入pcf8591三個位元組 1 0x90,器件位址及寫控制位 2 0x01光敏電阻 0x03電位器 選擇輸入控制位 3 0x91,器件位址及讀控制位 固定位址部分為 1001 可程式設計位址部分為a2 a1 a0為 000 位址 讀 1001 0001 即 0x91 位址 寫 100...
藍橋杯CT107D之PCF8591
include reg52.h include intrins.h include iic.h 匯流排引腳定義 sbit sda p2 1 資料線 sbit scl p2 0 時鐘線 void iic delay unsigned char i while i 匯流排啟動條件 void iic st...