義隆單片機(jī)編程時(shí)應(yīng)注意的幾點(diǎn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
應(yīng)用義隆單片機(jī)編程時(shí)應(yīng)注意以下幾點(diǎn):
1.當(dāng)程序多于1K時(shí),將出現(xiàn)跳頁(yè)情況,這時(shí)如果有開中斷處理程序,在進(jìn)入中斷后,一定要把STATUS的PS0、PS1位復(fù)位為0(即回到第0頁(yè)ROM),否則當(dāng)遇到有JMP或CALL等跳轉(zhuǎn)指令時(shí),程序?qū)?huì)出錯(cuò)!
2.當(dāng)程序多于1K而使用跳轉(zhuǎn)指令BS STATUS PS0或BS STATUS,PS1時(shí),將會(huì)影響到中斷程序的中斷時(shí)間,期分頻系數(shù)不預(yù)計(jì)(即TCON受影響);并且中斷自動(dòng)關(guān)閉。跳轉(zhuǎn)返回后,一定要重新開中斷(如ENI)。
3.注意子程序的嵌套級(jí)數(shù)。一般硬件所允許的X級(jí)堆棧至少減去一個(gè)中斷程序所用,即子程序最好使用X-1個(gè)嵌套;否則將會(huì)出錯(cuò)。
4.任何對(duì)R2(即PC)進(jìn)行直接修改的指令,如:ADD R2,A | MOV R2,A | BC R2,x 等都將會(huì)使PC的第9位、10位清零,因此產(chǎn)生的跳轉(zhuǎn)只限于一個(gè)程序的前256個(gè)地址。TBL指令即除外,不會(huì)改變PC的9位、10位;執(zhí)行TBL==PC+1+A;可以解決以前對(duì)R2(即PC)直接修改所產(chǎn)生的后果。一般查表子程序放于程序最前端,就是為了避開9位、10位清零。
5.八位 單片機(jī) 的高電平一般為4.5~5V,而低電平一般為1V以下;如何讓單片機(jī)產(chǎn)生一個(gè)2.5V電壓呢?可以把要輸出2.5V電平的I/O口設(shè)置為輸出狀態(tài),并置為高電平;接著把該輸出口設(shè)置為輸入狀態(tài),這時(shí)將輸出一個(gè)2.5V電平電壓。
6.由于一個(gè)中文為兩個(gè)字節(jié),所以在注釋時(shí)應(yīng)當(dāng)小心注意,避免在程序的注釋出現(xiàn)半個(gè)中文字的亂碼現(xiàn)象;一旦出現(xiàn)這樣的問題,可以導(dǎo)致編譯出錯(cuò)或功能不正常。