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