在多次的省賽和國賽中,「事件監測器」這種題型都被考察過,其原理相對比較簡單。
/***************************************本地常量宣告**********************************/
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=
;void
timer0init
(void
)//1毫秒中斷@12.0mhz
unsigned
char
key_scan()
break
;case key_state1:
if(key_temp==no_key)
else
}break
;case key_state2:
if(key_temp==no_key)
break;}
return key_val;
}bit key_flag=0;
//按鍵讀取標誌位
u8 key_value;
//按鍵鍵值
u8 led_choose=0;
//led1燈選擇
u8 bure_choose=0;
//uln2003選擇
/********code_added********/
u8 adc_val;
//adc讀取
u8 adc_display_array[8]
;//儲存adc數值
u8 vp=
100;
//參考adc值
bit thing_scan=0;
//事件檢測狀態
u8 thing_count;
//時間計數值
/********code_added********/
void
main()
}/********code_added********/
adc_val=
read_adc
(0x03);
//讀取電位器的adc值,範圍為[0,255]
adc_display_array[0]
=smg_du[adc_val/
100]
; adc_display_array[1]
=smg_du[adc_val/10%
10]; adc_display_array[2]
=smg_du[adc_val%10]
;//前三位顯示當前adc值
adc_display_array[6]
=smg_du[thing_count/10]
; adc_display_array[7]
=smg_du[thing_count%10]
;//後兩位顯示事件次數
/********code_added********/
/********code_added********/
if(adc_val>vp)
//判斷當前adc是否大於參考adc
if(thing_scan)
//滿足檢測條件
}/********code_added********/}}
void
timer0
() interrupt 1 using 1
/***************************************顯示定時器中斷**********************************/
display_count++;if
(display_count==1)
if(display_count==2)
if(display_count==3)
}祝大家在藍橋杯比賽中獲得優異的成績!
——南昌大學電子資訊工程182 劉昊
藍橋杯電子類微控制器組模組 DS1302
在藍橋杯電子類微控制器組歷年的省賽以及國賽中,ds1302模組常常被考察到。而組委會為減輕考生負擔,提前給出了關於ds1302模組的 剩下的便需要我們自己去編寫 以第十屆為例 現在,我們來介紹以下ds1302模組剩餘 的編寫以及模組的運用方法。1 補全模組c檔案 include include sb...
藍橋杯電子類微控制器組模組 溫度感測器
在藍橋杯電子類微控制器組歷年的省賽以及國賽中,溫度感測器模組常常被考察到。而組委會為減輕考生負擔,提前給出了關於溫度感測器模組的 剩下的便需要我們自己去編寫 以第十屆為例 現在,我們來介紹以下溫度感測器模組剩餘 的編寫以及模組的運用方法。1 補全模組c檔案 include reg52.h sbit ...
藍橋杯電子類微控制器組模組 led顯示(一般作用)
幾乎每屆藍橋杯微控制器組比賽都會考到led模組 特別是對於近幾年的省賽來講,led模組的使用顯得更為靈活 即便led比較之簡單,但是編寫程式時還是很有可能出現錯誤。現在來給大家介紹動態數碼管的使用方法 1 對led模組進行操作,無需改變跳帽的位置。2 led模組相關原理圖如下 q 為啥led的操作是...