|
假如單片機(jī)體系出現(xiàn)問題,維修流程如下:
一、對(duì)硬件電路的查看
1、查看電源(40腳)
2、查看振動(dòng)(18、19腳)
3、查看地(20腳)
3、查看復(fù)位電路(9腳)
4、查看中止答應(yīng)(31腳)
5、然后再查看是不是有信號(hào)
6、信號(hào)是不是準(zhǔn)確
二、軟件編寫規(guī)矩
1、只被調(diào)用一次的不要寫成子程序
2、不比自個(gè)界說(shuō)太多的ORG地址進(jìn)口,只需界說(shuō)兩個(gè),一個(gè)0000H,還有一個(gè)主程序進(jìn)口,
3、中止程序需界說(shuō)自個(gè)的程序進(jìn)口地址,
中止源有INT0,守時(shí)器T0,INT1,守時(shí)器T1,串行口中止,共5種中止,
進(jìn)口地址分別為,INT0 = 0003H, 守時(shí)器T0 = 000BH,
INT1 = 0013H, 守時(shí)器T1 = 001BH
串口 = 0023H
從0003H開端,互相相差8個(gè)存儲(chǔ)單元,在此處中止程序是放不下的,需求跳轉(zhuǎn)到其他地址,
4、通常的跳轉(zhuǎn)和調(diào)用都運(yùn)用LJMP 和 LCALL
三、串口操控寄存器的設(shè)置
SCON sm0,sm1,sm2,ren,tb8,rb8,ti,ri
通常不能對(duì)TB8、RB8 設(shè)置,這樣會(huì)影響串口中止位 RI,即在發(fā)作中止的時(shí)分,數(shù)據(jù)還沒有徹底接收完,可是此刻由于設(shè)置了RB8位,有可能把RI置位使得數(shù)據(jù)丟掉。關(guān)于TI存在同樣狀況。
發(fā)送與接收數(shù)據(jù)都可以有兩種辦法
1、查詢 (查詢RI,TI)2。中止設(shè)定進(jìn)口地址 (ORG 0023H)
2、關(guān)于外部中止,有兩種觸發(fā)辦法,一是低電平觸發(fā),一是降低沿觸發(fā),看狀況選則觸發(fā)辦法。在以上的兩種觸發(fā)辦法下,IE0、IE1都能被CPU自動(dòng)復(fù)位成0,可是在電平觸發(fā)辦法下,必須保證INT1、INT0上的電平在中止被CPU響應(yīng)今后當(dāng)即變?yōu)楦唠娖,否則會(huì)再次觸發(fā)中止。
觸發(fā)辦法操控位 IT1 IT0
SETB IT1
SETB IT0 降低沿觸發(fā)
CLR IT1
CLR IT0 低電平觸發(fā)
四、避免程序紊亂的軟處置辦法
1.使用軟件狗來(lái)處置
2.軟件陷阱技能
3.改寫寄存器
守時(shí)時(shí)刻長(zhǎng)度核算(辦法1):
守時(shí)器初值 = FFFF - ( 守時(shí)時(shí)刻長(zhǎng)度/( 1/f*12 ))
|
|