藍橋杯 CT107D微控制器之數碼管

2021-10-08 11:11:35 字數 1783 閱讀 9855

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...