?? sun.asm
字號:
RET ;子程序調用結束
NOP;
NOP;
LJMP ERR;
;
;*********************************
; 取A/D轉換數據至70H內存單元 *
;*********************************
MOVD: SETB P2.5 ;8090輸出允許
MOV A,P0 ;將A/D轉換值移入A
MOV @R0,A ;放入70H內存單元
CLR P2.5 ;關閉8090輸出
CLR A ;A/D轉換結束,恢復端口,累加器A清零
NOP ;
MOV A,#0FFH ;累加器A置1
MOV P0,A ; P0口置1
MOV P1,A ; P1口置1
RET ;取A/D轉換數據結束
NOP;
NOP;
LJMP ERR;
;
;**********************************
;* 比較采樣值子程序 *
;**********************************
AQQ: MOV A,70H;
CLR C;
SUBB A,#73H;
JC Q1;
MOV A,70H;
SUBB A,#7DH;
JNC Q2;
CLR P2.7;在11.5V和12.5V之間開啟放電開關
RET;
NOP;
NOP;
LJMP ERR;
Q2: CLR P2.7;大于12.5V時開啟放電開關
RET;
NOP;
NOP;
LJMP ERR;
Q1: SETB P2.7;小于11.5V時關閉放電開關
MAIN0: LCALL DISPLAY ;顯示數據一次
LCALL TEST ;測量一次
LCALL ATT0 ;
LCALL AQQ0 ;
NOP ;
NOP ;
AJMP MAIN0 ;返回MAIN循環
NOP ;PC值出錯處理
NOP ;空操作
NOP ;空操作
LJMP START ;重新復位起動
NOP;
NOP;
LJMP ERR;
;
;******************************************************
AQQ0: MOV A,70H;
CLR C;
SUBB A,#73H;
JC Q10;
MOV A,70H;
SUBB A,#7DH;
JNC Q20;
SETB P2.7;在11.5V和12.5V之間關閉放電開關
RET;
NOP;
NOP;
LJMP ERR;
Q10: SETB P2.7;小于11.5V時關閉放電開關
RET;
NOP;
NOP;
LJMP ERR;
Q20: CLR P2.7;大于12.5V時開啟放電開關
LJMP MAIN;
NOP;
NOP;
LJMP ERR;
;
;***********************************************
ATT0: MOV A,70H;
CLR C;
SUBB A,#87H;
JC TK10;
MOV A,70H;
SUBB A,#91H;
JNC TK20;
CLR P2.6;在13.5V和14.5V之間開啟充電開關
RET;
NOP;
NOP;
LJMP ERR;
TK10: CLR P2.6;小于13.5V時開啟充電開關
RET;
NOP;
NOP;
LJMP ERR;
TK20: SETB P2.6;大于14.5V時關閉充電開關
RET;
NOP;
NOP;
LJMP ERR;
;
;***********************************************
ATT: MOV A,70H;
CLR C;
SUBB A,#87H;
JC TK1;
MOV A,70H;
SUBB A,#91H;
JNC TK2;
CLR P2.6;在13.5V和14.5V之間開啟充電開關
RET;
NOP;
NOP;
LJMP ERR;
TK1: CLR P2.6;小于13.5V時開啟充電開關
RET;
NOP;
NOP;
LJMP ERR;
TK2: SETB P2.6;大于14.5V時關閉充電開關
MAIN1: LCALL DISPLAY ;顯示數據一次
LCALL TEST ;測量一次
LCALL ATT1 ;
LCALL AQQ1 ;
NOP ;
NOP ;
AJMP MAIN1 ;返回MAIN循環
NOP ;PC值出錯處理
NOP ;空操作
NOP ;空操作
LJMP START ;重新復位起動
NOP;
NOP;
LJMP ERR;
;
;************************************************************
AQQ1: MOV A,70H;
CLR C;
SUBB A,#73H;
JC Q11;
MOV A,70H;
SUBB A,#7DH;
JNC Q22;
CLR P2.7;在11.5V和12.5V之間開啟放電開關
RET;
NOP;
NOP;
LJMP ERR;
Q11: SETB P2.7;小于11.5V時關閉放電開關
RET;
NOP;
NOP;
LJMP ERR;
Q22: CLR P2.7;大于12.5V時開啟放電開關
RET;
NOP;
NOP;
LJMP ERR;
;
;***********************************************
ATT1: MOV A,70H;
CLR C;
SUBB A,#87H;
JC TK11;
MOV A,70H;
SUBB A,#91H;
JNC TK22;
SETB P2.6;在13.5V和14.5V之間關閉充電開關
RET;
NOP;
NOP;
LJMP ERR;
TK11: CLR P2.6;小于13.5V時開啟充電開關
LJMP MAIN;
TK22: SETB P2.6;大于14.5V時關閉充電開關
RET;
NOP;
NOP;
LJMP ERR;
ERR: CLR ET0;
POP ACC;
POP ACC;
CLR A;
PUSH ACC;
PUSH ACC;
RETI;
NOP;
NOP;
LJMP ERR;
ORG 07FAH;
NOP;
NOP;
LJMP ERR;
LJMP ERR;
ORG 00FFAH;
NOP;
NOP;
LJMP ERR;
END;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -