十個(gè)51單片機(jī)編程小技巧
1.定義的變量不要太多。低128位為用戶定義變量的存放區(qū)域(默認(rèn)時(shí)),也可以把變量放在高128位,但容易出錯(cuò),盡量少放,最好不放。通過(guò)M51可以查看內(nèi)存變量的存放,最好不要超過(guò)110個(gè)字節(jié),否則程序無(wú)法運(yùn)行或出錯(cuò)。
2.如一個(gè)變量多處使用可定義為全局變量。例如循環(huán)變量i、j,盡量減少參數(shù)傳遞。
3.靜態(tài)變量最好放在程序存儲(chǔ)區(qū),用code定義。
4.變量應(yīng)定義為無(wú)符號(hào)數(shù),像標(biāo)志位等僅占一位的變量應(yīng)定義為bit。
5.子程序在main()主程序之后的應(yīng)事先聲明,放在前面的不用聲明。
6.變量、子程序定義但沒使用,系統(tǒng)給出警告。
7.雖然局部變量和全局變量不同名,但運(yùn)行時(shí)可能被全局變量改變。
8.程序在編譯后,有可能產(chǎn)生非常大的文件。比如原來(lái)5k,編譯后變成10k,這是C匯編時(shí)程序空間分配太隨意造成的??墒紫绕帘我徊糠殖绦蚓幾g,然后再去屏蔽再編譯,可恢復(fù),或一部分一部分復(fù)制到另一個(gè)文件中編譯。
9.如產(chǎn)生脈沖信號(hào)用到定時(shí)器,要去掉脈沖信號(hào)時(shí),應(yīng)先關(guān)定時(shí)器,再按要求把電平置為高電平或低電平。
10.可使用軟件實(shí)現(xiàn)“看門狗”功能。比如:一個(gè)程序運(yùn)行一個(gè)循環(huán)需要50ms,則定時(shí)器可定位100ms,當(dāng)超過(guò)100ms時(shí),程序?qū)?fù)位,在程序循環(huán)最下面都重裝定時(shí)器或重置定時(shí)器參數(shù)。