?? ebu.asm
字號:
; ***********************
; * EBU.ASM *
; ***********************
LTG EQU 47H
LTP EQU 50H
LTA EQU 41H
LTD EQU 44H
LTZ EQU 5AH
ADRSS EQU 26h
HOUR EQU 27H
MIN EQU 28H
SEC EQU 29H
DATE BIT 00H
ZDA BIT 01H
FIX2D BIT 02H
FIX3D BIT 03H
GPSINT BIT 04H
EBU BIT P1.0
LED BIT P1.1
;----------------------
;EBU-GPS-MAIN-PROGRAM
;----------------------
ORG 0000H
AJMP MAIN0
ORG 0003H
AJMP MAIN1
ORG 000BH
AJMP MAIN1
ORG 0013H
AJMP MAIN1
ORG 001BH
AJMP MAIN1
ORG 0023H
AJMP GPSDB
ORG 0032H
MAIN0: MOV PSW,#0
MOV IP,#10h
MOV IE,#0h
MOV SP,#6AH
MOV TCON,#00H
MOV TMOD,#20H
MOV SCON ,#01000000B
MOV PCON,#00H;SMOD=0
MOV TL1,#0FAH
MOV TH1,#0FAH
MOV 20H,#00H
MOV 21H,#00H
MOV HOUR,#0h
MOV MIN,#0h
MOV SEC,#0h
SETB REN
SETB ES
SETB TR1
MAIN1: SETB EA
JNB GPSINT,$
CLR EA
CLR GPSINT
ACALL CHULI
ACALL O_EBU
CPL LED
AJMP MAIN1
;**********************************
CHULI: MOV A,30H
MOV R0,#31H
SWAP A
XCHD A,@R0
ORL A,#40H
MOV HOUR,A
INC R0
MOV A,@R0
SWAP A
INC R0
XCHD A,@R0
MOV MIN,A
INC R0
MOV A,@R0
SWAP A
INC R0
XCHD A,@R0
MOV SEC,A
RET
;
GPSDB: CLR EA
PUSH ACC
PUSH PSW
SETB RS0
MOV R0,ADRSS
MOV A,SBUF
JB DATE,WGPSDB
ACALL PSJT
MOV ADRSS,#30H
GPSDB1: CLR TI
CLR RI
CLR RS0
POP PSW
POP ACC
SETB EA
RETI
WGPSDB: NOP
CJNE A,#2AH,TODATE
CLR DATE
CLR ZDA
SETB GPSINT
AJMP GPSDB1
TODATE: MOV @R0,A
INC R0
MOV ADRSS,R0
AJMP GPSDB1
;
PSJT: JBC RI,$
MOV A,SBUF
CJNE A,#24H,SEXT1
CLR RI
SDBB0: JBC RI,SDBG1
AJMP SDBB0
SDBG1: MOV A,SBUF
CJNE A,#LTG,SEXT1
WAIT1: JBC RI,SDBBP
AJMP WAIT1
SDBBP: MOV A,SBUF
CJNE A,#LTP,SEXT1
WAIT2: JBC RI,SDBG2
AJMP WAIT2
SDBG2: MOV A,SBUF
CJNE A,#LTZ,SEXT1
WAIT3: JBC RI,SDBG3
AJMP WAIT3
SDBG3: MOV A,SBUF
CJNE A,#LTD,SEXT1
WAIT4: JBC RI,SDBBA
AJMP WAIT4
SDBBA: MOV A,SBUF
CJNE A,#LTA,SEXT1
WAIT5: JB RI,SDBBB
AJMP WAIT5
SDBBB: SETB DATE
CPL LED
SEXT1: CLR RI
RET
;++++++++++++++++++++++++++++++++++
O_EBU: ACALL LOWLEV ;50uS
MUL AB
MUL AB
NOP
NOP
NOP
ACALL HIGLEV ;50uS(49.91)
MOV R7,#25
NOP
OUTDB0: MOV R2,#6
MOV R3,#7
MOV R4,#7
MUL AB
NOP
MOV A,HOUR
ACALL HIGLEV ;50uS
DJNZ R7,OUTDB0
;52uS
OHOUR1: RRC A
NOP
NOP
NOP
NOP
NOP
NOP
JC HGLV1 ;2uS
ACALL LOWLEV ;2
DJNZ R2,OHOUR1
AJMP OMIN
;54
HGLV1: ACALL HIGLEV
DJNZ R2,OHOUR1
NOP
NOP
;THE HOUR SEND END
OMIN: MOV A,MIN
MOV R2,#7
OMIN1: RRC A
NOP
NOP
JC HGLV2 ;2uS
ACALL LOWLEV ;2
NOP
NOP
NOP
MOV R3,#7
DJNZ R2,OMIN1
NOP
MOV A,SEC
OSECH1: RRC A
JC HGLV3H
ACALL LOWLEV
PUSH DPH
NOP
POP DPH
NOP
DJNZ R3,OSECH1
AJMP OZERO
HGLV3H: ACALL HIGLEV
PUSH DPH
NOP
POP DPH
NOP
DJNZ R3,OSECH1
AJMP OZERO
;
HGLV2: ACALL HIGLEV
NOP
NOP
NOP
MOV R3,#7
DJNZ R2,OMIN1
NOP
;57
OSEC: MOV A,SEC
OSEC1: RRC A
JC HGLV3
ACALL LOWLEV
PUSH DPH
NOP
POP DPH
NOP
DJNZ R3,OSEC1
AJMP OZERO
HGLV3: ACALL HIGLEV
PUSH DPH
NOP
POP DPH
NOP
DJNZ R3,OSEC1
NOP
NOP
;60
OZERO: NOP
ACALL LOWLEV
NOP
RET
;***************************
LOWLEV: CLR EBU ;1uS
PUSH ACC ;2uS
MUL AB ;4uS
MUL AB ;4uS
MUL AB ;4uS
SETB EBU ;1uS
;
MUL AB ;4uS
MUL AB ;
MUL AB ;4uS
MUL AB ;
MUL AB ;4uS
MUL AB ;4uS
NOP
NOP
POP ACC ;2uS
RET ;2uS
;
HIGLEV: CLR EBU ;1uS
PUSH ACC ;2uS
MOV B,#1 ;1uS
MUL AB ;4uS
MUL AB ;
MUL AB ;4uS
MUL AB ;
MUL AB ;4uS
MUL AB ;
MUL AB ;4uS
MUL AB ;
MUL AB ;4uS
NOP
SETB EBU ;1uS
POP ACC ;2uS
RET ;2uS
;
SP_IN: MOV SCON,#50H
JNB RI,$
MOV A,SBUF
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -