|
我是一個(gè)單片機(jī)愛好者,玩單片機(jī)純粹是業(yè)余愛好,自學(xué)而來,期間也遇到過不少問題,這里我想和大家分享幾點(diǎn)調(diào)試的經(jīng)驗(yàn)。
玩單片機(jī)不可能不遇到問題,之前我也用過proteus仿真,但現(xiàn)在基本不用,都是直接寫芯片;當(dāng)然,這得感謝STC的低價(jià)和方便,我也沒有買所謂的開發(fā)板、學(xué)習(xí)板,只買了塊51最小系統(tǒng)板,焊上插針,就是端口全開放的開發(fā)板了,需要做什么樣的實(shí)驗(yàn)就用5X7洞洞板焊接一塊電路板,如DS1302、74HC595、4X4按鍵、MAX232等,LCD1602、12864也焊上插針,象搭積木一樣用杜邦線連接,也有點(diǎn)硬件模塊化的意思。
好了,廢話少說,步入正題,遇到問題一般我都是盡量自己想辦法解決,不會做伸手黨一股腦發(fā)帖子求教。首先,采用模塊化編程,先編譯和調(diào)試基本模塊(最小化)通過后再逐步加入各個(gè)模塊,分步調(diào)試直至完成;而不是象有些初學(xué)者那樣一次性寫完所有函數(shù),一經(jīng)編譯出現(xiàn)問題大堆,無從下手;以LCD1602+DS1302+DS18B20+KEY電子鐘為例:我把程序分為main.c、LCD1602.c、DS1302.c、DS18B20.c、KEY.c模塊(對應(yīng)同名.h頭文件),先調(diào)試main.c并加入LCD1602,在指定位置正確顯示字符和數(shù)字后,再加入DS1302.c模塊,時(shí)間日期顯示正常后再加入DS18B20.c模塊,最后加入KEY.c模塊設(shè)置調(diào)節(jié)時(shí)間值。其次,在程序節(jié)點(diǎn)插入LED指示,了解程序執(zhí)行的情況。由于業(yè)余條件下沒有在線仿真器,無法在線監(jiān)控程序運(yùn)行狀況,完成編程寫入芯片后,程序沒有按照預(yù)想的情況執(zhí)行,也不知道執(zhí)行到哪一步了?至此,不少初學(xué)者感到不知所措,其實(shí)我們可以在某些節(jié)點(diǎn)人為插入LED指示燈,利用LED來指示程序執(zhí)行情況,例如KEY.c,可以在按下、釋放及各個(gè)鍵值處插入LED,指示程序執(zhí)行的情況。
|
-
51.jpg
(247.61 KB, 下載次數(shù): 67)
下載附件
2020-3-11 23:04 上傳
評分
-
查看全部評分
|