干貨!藍(lán)橋杯單片機(jī)組分析!三年國(guó)一經(jīng)驗(yàn)分享,電子專業(yè)同學(xué)福利。
版權(quán)聲明:本文轉(zhuǎn)載于路飛的電子設(shè)計(jì)寶藏公眾號(hào),所有權(quán)歸原作者所有!
藍(lán)橋杯電子類單片機(jī)組比賽分析
現(xiàn)在大學(xué)生越來(lái)越內(nèi)卷了,搞幾個(gè)國(guó)一防身是極好的,或者只為通過(guò)準(zhǔn)備比賽提高自己的電子編程能力,也算是沒(méi)有荒廢度日。
為促進(jìn)軟件和信息領(lǐng)域?qū)I(yè)技術(shù)人才培養(yǎng),提升高校畢業(yè)生的就業(yè)競(jìng)爭(zhēng)力,由教育部就業(yè)指導(dǎo)中心支持,工業(yè)和信息化部人才交流中心舉辦藍(lán)橋杯大賽。十一年來(lái),包括北大、清華在內(nèi)的超過(guò) 1300 余所院校,累計(jì)40萬(wàn)余名學(xué)子報(bào)名參賽,IBM、百度等知名企業(yè)全程參與,成為國(guó)內(nèi)始終領(lǐng)跑的人才培養(yǎng)選拔模式并獲得行業(yè)深度認(rèn)可的IT類科技競(jìng)賽。
我連續(xù)獲得了三屆的藍(lán)橋杯電子類單片機(jī)組的國(guó)一,分別在我大一、大二和大三時(shí)期(或者說(shuō)大四?疫情原因推遲),做一些分析和分享,幫助大家拿國(guó)一,希望有用。
以下是分析:
首先,該比賽分為省賽和國(guó)賽,每場(chǎng)比賽均為5個(gè)小時(shí),有30%分?jǐn)?shù)的客觀題和70%分?jǐn)?shù)的程序題。
其中,客觀題通常包含選擇題(不定項(xiàng)選擇題)和填空題(有時(shí)沒(méi)有),其考查內(nèi)容涵蓋模擬電路和數(shù)字電路及單片機(jī)的全部?jī)?nèi)容,曾考察過(guò)典型晶體管放大電路特性、濾波器、卡諾圖、邏輯門、SPI/I2C等協(xié)議基礎(chǔ),單片機(jī)的一些外設(shè)和內(nèi)部的其他特性,其中一部分知識(shí)可以通過(guò)翻閱提供的數(shù)據(jù)手冊(cè)等相關(guān)PDF來(lái)解決。
對(duì)于程序題,準(zhǔn)備時(shí)要注意幾點(diǎn):
1、 英文水平要達(dá)標(biāo),至少要能看得懂?dāng)?shù)據(jù)手冊(cè),以便在考試時(shí)遇到問(wèn)題隨時(shí)翻閱數(shù)據(jù)手冊(cè)!!
2、 熟練掌握各個(gè)外設(shè)的驅(qū)動(dòng)程序的編寫,包括LED/矩陣鍵盤/獨(dú)立鍵盤/ADC/DAC/DS1302/DS18B20/超聲波/NE555頻率測(cè)量/串口收發(fā)/EEPROM等,同時(shí)要學(xué)會(huì)條理地組織程序,學(xué)會(huì)模塊化,高耦合低內(nèi)聚以結(jié)構(gòu)化方式設(shè)計(jì)程序。
3、 對(duì)于非外界訪問(wèn)的函數(shù)和全局變量,使用static修飾以防止符號(hào)重名和誤調(diào)用。
4、 盡量不要通過(guò)extern在不同文件間共享變量。
5、 可以通過(guò)設(shè)置為L(zhǎng)arge Memory模式并開啟XDATA軟件棧,從而支持龐大的全局變量、局部變量?jī)?nèi)存空間需求和深度函數(shù)調(diào)用需求。
6、 注意正在使用的內(nèi)存空間,合理分配CODE、DATA與XDATA。
7、 學(xué)會(huì)STARTUP.A51文件中配置的相關(guān)修改方法及Keil工程中的諸多選項(xiàng)的含義。
8、 注意避免程序中的競(jìng)爭(zhēng)條件。
9、 外設(shè)操作時(shí)序嚴(yán)格時(shí)務(wù)必關(guān)中斷。
10、 要理解MCU的結(jié)構(gòu)原理和其數(shù)字電路特性,正確把握可靠的時(shí)序要求,這方面我同時(shí)推薦閱讀《編碼的奧秘》一書,同時(shí)最好將MCS-51架構(gòu)的Intel官方數(shù)據(jù)手冊(cè)完整閱讀一遍。
11、 推薦學(xué)習(xí)操作系統(tǒng)相關(guān)理論基礎(chǔ),我在平時(shí)的比賽中,就通過(guò)手寫非搶占式調(diào)度器以及其它的一些抽象組件,從而簡(jiǎn)化應(yīng)用實(shí)現(xiàn)難度,省賽2小時(shí),國(guó)賽2~3小時(shí)輕松秒殺比賽,同時(shí),自己要熟練構(gòu)造這些組件并掌握快速調(diào)試技巧,以便保證能夠在比賽中正確使用。
12、 打字速度很重要,比較快的打字速度才能支撐你使用第9條中提到的技巧,在使用這種技巧的情況下,國(guó)賽的代碼行數(shù)很可能達(dá)到1000~2000行,不過(guò)在高速打字速度以及熟練應(yīng)用系統(tǒng)化技巧的情況下,可以抵消掉不使用這些技巧時(shí)所造成的額外代碼編寫難度及調(diào)試時(shí)間,還是很劃算的。
13、 可以學(xué)習(xí)一下成熟的RTOS例如FreeRTOS、ucOS、RT-Thread的實(shí)現(xiàn),并嘗試進(jìn)行移植,可以進(jìn)一步提升這方面的技能。
14、 要熟練使用萬(wàn)用表等測(cè)量工具,這會(huì)在比賽時(shí)助你一臂之力。
15、 熟悉往屆的省賽和國(guó)賽題。
16、 比賽時(shí)要注意檢查客觀題和程序題的答案,確保客觀題答案和你想要選擇的一致,計(jì)算類客觀題要注意多計(jì)算幾次或者換方法計(jì)算,必要時(shí)可使用電腦的計(jì)算器軟件輔助計(jì)算,程序題,注意要上傳整個(gè)工程打包成的壓縮包,其中一定要有編譯好的Hex文件,要保證程序的時(shí)鐘頻率和題目要求的一致,一般11.0592M與12M為多,同時(shí)要特別注意題目要求使用矩陣鍵盤還是獨(dú)立鍵盤,注意設(shè)置對(duì)應(yīng)的跳線帽,同時(shí)一般比賽都不使用MMIO模式,敬請(qǐng)注意!
17、 推薦做一下我出的《藍(lán)橋杯終極主觀題》,如果可以在4小時(shí)以內(nèi)甚至3.5小時(shí)以完成該試題,則在不出現(xiàn)大差錯(cuò)的前提下,獲得國(guó)一問(wèn)題不大。
公眾號(hào)回復(fù)藍(lán)橋杯即可下載