xbye寫法由於暫時不了解其內部工作原理,在國信長天2020版本的51板子上 p42 p44與按鍵相連。如果用xbyte數碼管顯示雖然方便但如果在中斷中有矩陣鍵盤寫法的按鍵掃瞄,使p42 p44強制拉低或拉高 會出現亂七八糟的的不可預判的bug,如數碼管不可顯示 矩陣鍵盤失效。
推薦直接用p埠寫法,在架構處列出
三行按鍵掃瞄這種大佬級的玩意,發明的人固然兩個字 nb 但如果p3其他埠有pwm(特別是p34 專門空出來接排針) 這個三行按鍵掃瞄就是乙個bug 裡面的trg 和 cont值就不是可以預判的了,推薦使用國信長天的矩陣鍵盤程式,超好用
三行按鍵掃瞄:
//pinb是某個埠
unsigned
char trg =0;
unsigned
char cont =0;
void
keyread
(void
)
串列埠》pwm>數碼管顯示(數碼管顯示最低)
與時代接軌,與其他物件導向程式設計語言接軌
函式:小寫_小寫_小寫()
如: void oled_show(void);
變數:小寫直接組合起來
如:timebuff[0]
#define:全部大寫
如:#define chwei(); p2 &= 0x1f; p2 |= 0xbf;
當然單詞太長了可以簡寫
#include
"headfile.h"
#define chwei(); p2 &= 0x1f; p2 |= 0xc0;
#define chduan(); p2 &= 0x1f; p2 |= 0xe0;
#define chled(); p2 &= 0x1f; p2 |= 0x80;
#define ch0(); p2 &= 0x1f;
void
main
(void
)else
if(keyval == ***x)}}
void
isrt_imer0
(void
)void
temp_show
(void
)void
read_keyboard
(void
)break
;case1:
else
if(p42 ==0)
else
if(p35 ==0)
else
if(p34 ==0)
}break
;case2:
else
if(p42 ==0)
else
if(p35 ==0)
else
if(p34 ==0)
}break
;case3:
else
if(p42 ==0)
else
if(p35 ==0)
else
if(p34 ==0)
}break
;case4:
else
if(p42 ==0)
else
if(p35 ==0)
else
if(p34 ==0)
}break;}
}else
}break
;case2:
break;}
}
①讀寫eeprom記得完成一次加點delay
②ds18b20單匯流排延遲那個函式要在while 裡面寫個
for (i = 0; i < 12; i++)
③從stc_isp複製的定時器** 要注意晶振大小和記得加!!!
et0 =1;
//開定時器0中斷
ie2 |
=0x04
;//開定時器2中斷
ea =1;
//開總中斷
1-7屆省賽中有客觀題、ad畫圖、程式題 部分,所以說程式部分比較簡單
8屆及以後僅有程式和客觀題 所以說程式題要難些
也有人說 第十屆省賽難度 = 第七屆國賽
藍橋杯微控制器國賽 長按和短按
第九屆藍橋杯微控制器設計與開發專案決賽有這一部分 s7 定義為引數 設定 按鍵,按下此按鍵,進入電壓閾值引數設定介面 圖6 在閾值設定介面下,s6 回顯 按鍵定義為閾值調整功能 備註 非閾值設定介面下,s6按鍵為回顯功能 每次按下s6,電壓閾值增加0.1v,長按0.8秒以上,可實現快速增加功能 備註...
關於微控制器藍橋杯 EEPROM
eeprom運用了iic協議,我們在藍橋杯上寫eeprom時,應該注意他給的延時是不是15個 nop 然後,在他給的iic協議的基礎上,我們自己新增兩個eeprom write與eeprom read兩個讀寫函式 void eeprom write uchar add,uchar dat iic s...
藍橋杯 微控制器 中斷程式設計
使用程式前,將跳線j5調整為btn模式 2 3引腳短接使第一列按鍵一端接地 將跳線j13調整為io模式 2 3引腳短接使u25或非門輸入訊號wr接地 按下p32 int0引腳對應的按鍵s5,l1狀態翻轉 按下p33 int1引腳對應的按鍵s4,l2狀態翻轉 include reg52.h unsig...