藍橋杯電子類微控制器組模組 led顯示(一般作用)

2021-10-03 05:31:16 字數 1670 閱讀 8916

幾乎每屆藍橋杯微控制器組比賽都會考到led模組;特別是對於近幾年的省賽來講,led模組的使用顯得更為靈活;即便led比較之簡單,但是編寫程式時還是很有可能出現錯誤。

現在來給大家介紹動態數碼管的使用方法

1、對led模組進行操作,無需改變跳帽的位置。

2、led模組相關原理圖如下

q:為啥led的操作是先送資料再操作鎖存器呢?

a:在執行點亮led點亮的**時,p0口可能會隨時發生改變;若此時先開啟鎖存器再傳送資料,那麼p0就有可能被多次賦值,從而導致led模組可能出現微亮現象。因此,為了杜絕此類事情發生,我們必須先送資料再操作相應鎖存器。

總而言之,在編寫**的時候必須避開這兩個坑

3、如下,附上led顯示**塊。

#include

"stc15f2k60s2.h"

#define u8 unsigned char

#define key_state0 0

#define key_state1 1

#define key_state2 2

#define led_0 0x00

#define led_1 ((0x01)<

#define led_2 ((0x01)<

#define led_3 ((0x01)<

#define led_4 ((0x01)<

#define led_5 ((0x01)<

#define led_6 ((0x01)<

#define led_7 ((0x01)<

#define led_8 ((0x01)<

//上述**簡單粗暴

void

timer0init

(void

)//配置定時器0,1ms中斷

unsigned

char

key_scan()

break

;case key_state1:

switch

(key)

key_state=key_state2;

break

;case key_state2:

if(key==0)

break;}

return key_value;

}bit key_flag;

u8 key_val;

bit led_flag;

u8 led_com[10]

=;//led顯示陣列

static

char led_choose1=0;

//若每次只需要對於乙個led進行操作

//static char led_choose2=0; //每次需要對兩個以上的led進行操作,可另外新增led_choo***

void

main()

if(key_flag)}}

}void

timer0

() interrupt 1

//定時器0中斷

}

4、這只是led模組最基本的操作,led流水燈等內容以後會提到。

祝大家在藍橋杯比賽中獲得優異的成績!

——南昌大學 電子183劉昊

藍橋杯電子類微控制器組模組 DS1302

在藍橋杯電子類微控制器組歷年的省賽以及國賽中,ds1302模組常常被考察到。而組委會為減輕考生負擔,提前給出了關於ds1302模組的 剩下的便需要我們自己去編寫 以第十屆為例 現在,我們來介紹以下ds1302模組剩餘 的編寫以及模組的運用方法。1 補全模組c檔案 include include sb...

藍橋杯電子類微控制器組模組 溫度感測器

在藍橋杯電子類微控制器組歷年的省賽以及國賽中,溫度感測器模組常常被考察到。而組委會為減輕考生負擔,提前給出了關於溫度感測器模組的 剩下的便需要我們自己去編寫 以第十屆為例 現在,我們來介紹以下溫度感測器模組剩餘 的編寫以及模組的運用方法。1 補全模組c檔案 include reg52.h sbit ...

藍橋杯電子類微控制器組模組 事件監測器

在多次的省賽和國賽中,事件監測器 這種題型都被考察過,其原理相對比較簡單。本地常量宣告 u8 code smg du u8 code smg point 0.1.2.3.4.5.6.7.8.9.1 u8 code smg wei 位碼 u8 code led du u8 code bure du v...