平時看到一些網友貼一些不入流的程序給別人看,浪費別人的時間,很氣憤,作得不好就不要貼嘛!拿出來丟人現眼. 看到樓主有這些困惑,我作為EMC單片機愛好者,貼一個比較正規一點的時間中斷程序給大家分享,歡迎大家評論是非. 平常我把這個程序作為結構化程序的一個模塊,此程序需要在START程序里進行設置一些中斷參數,至於怎樣設置,這麼簡單的問題靠你自已,總不至於不動腦就可以得到我的真傳吧! ;*****************************
ORG 0X000 JMP START ;跳到初始化設置程序 ORG 0X008 ;************時間中斷入口**************** MOV A_BUF,A ;累加器數據先暫存 SWAP A_BUF SWAPA STATUS ;態狀寄存器先暫存 MOV STATUS_BUF,A INT_TIME: MOV A,@136 ; ADD TCC,A ;*****************EM78P153用此參數比較準******************************
INC T_1MS MOV A,@8 ;125*8 等於1MS SUB A,T_1MS JBS STATUS,Z JMP INT_OUT CLR T_1MS BS F_TIME,F_1MS BS F_TIME,F_1MS1 ; bs f_time,f_1ms2 ;******************************************** INC T_10MS MOV A,@10 SUB A,T_10MS JBS STATUS,Z JMP INT_OUT CLR T_10MS bs f_time,f_10ms bs f_time,f_10ms1 ;********時間中斷出口***************** INT_OUT: CLR RF SWAPA STATUS_BUF ;恢復狀態寄存器 MOV STATUS,A SWAPA A_BUF ;恢復累加器 RETI ;中斷進行完畢跳回原處 |