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