藍橋杯微控制器第八屆省賽 電子鐘

2021-10-22 17:39:24 字數 1652 閱讀 5720

九層妖塔 起於壘土

改編自國信長天藍橋杯官方藍皮書例程,按照自己的習慣進行了補充和修改

2021.3.20

做到三個半小時的時候,卡在了數碼管閃爍的地方。晚上又參考例程補了上去。

總之……得……二刷……

1、在數碼管資料處理函式void seg_proc(void)中實現。

2、在sprintf(puc_seg_buf,……)"之後實現,

3、在sprintf列印完字串puc_seg_buf後,即得到完整資料後,再用下面語句將陣列puc_seg_buf中的某一位單獨置為空,對應數碼管段碼就是滅。

puc_seg_buf[0]

=' '

;

4、再用

if

((ul_sec%2)

==0)或

if( ul_sec >=

2)

來實現以1s為間隔閃亮。

case6:

//鬧鐘設定

break

;case2:

break

;case3:

break;}

}}break

;

1、加操作

if

(++puc_rtc[0]

==24

) puc_rtc[0]=0;

陣列可以對其中的單個元素進行賦值操作,先++再判斷,所以臨界值寫為24,注意時分秒的臨界值分別為24,60,60。

1、減操作

if

(!puc_rtc[0]

) puc_rtc[0]

=23;else puc_rtc[0]

--;if(

!puc_rtc[1]

) puc_rtc[1]

=59;else puc_rtc[1]

--;

先判斷陣列相應位是否為0,再對其進行操作。若在減操作前就已經為0,再減就是借位了。

0→1→2……58→59→,0→1→2→3……58→59

指示燈l1以0.2s為間隔閃爍,持續5s。

放在定時器1的中斷服務函式中,1ms執行一次。

if

(uc_alarm_num)

}

第一次接觸狀態機是在數電和fpga的課本裡,數電將時序電路稱為狀態機(state machine,sm),指的是,電路時序電路在工作時是在電路的有限個狀態間按照一定的規律轉換的。

絕對嚴謹的狀態機,構建了完整邏輯嚴謹的程式框架,再去寫程式就不會出現邏輯錯誤,減少bug。

彩 蛋

藍橋杯第八屆省賽

第4題 6x6的方格,沿著格仔的邊線剪開成兩部分。要求這兩部分的形狀完全相同。如圖 p1.png,p2.png,p3.png 就是可行的分割法。試計算 包括這3種分法在內,一共有多少種不同的分割方法。注意 旋轉對稱的屬於同一種分割法。請提交該整數,不要填寫任何多餘的內容或說明文字。圖的dfs 按照兩...

第八屆藍橋杯省賽(包子湊數)

小明幾乎每天早晨都會在一家包子鋪吃早餐。他發現這家包子鋪有n種蒸籠,其中第i種蒸籠恰好能放ai個包子。每種蒸籠都有非常多籠,可以認為是無限籠。每當有顧客想買x個包子,賣包子的大叔就會迅速選出若干籠包子來,使得這若干籠中恰好一共有x個包子。比如一共有3種蒸籠,分別能放3 4和5個包子。當顧客想買11個...

藍橋杯第八屆省賽 日期問題

日期問題 小明正在整理一批歷史文獻。這些歷史文獻 現了很多日期。小明知道這些日期都在1960年1月1日至2059年12月31日。令小明頭疼的是,這些日期採用的格式非常不統一,有採用年 月 日的,有採用月 日 年的,還有採用日 月 年的。更加麻煩的是,年份也都省略了前兩位,使得文獻上的乙個日期,存在很...