?? 201gd331main.dt
字號:
include "em78806m.inc"
include "mcro806m.inc"
include "ver806m.h"
ORG 0x0
JMP BEGIN
NOP
NOP
nop
nop
nop
nop
JMP BEGIN
ORG 0X8
DISI
nop
NOP
; bs fsksr,b358e
MOV R13,R4
BANK 0
MOV A,R13
MOV PUSHR4,A
MOV PUSHA,A
MOV A,R3
MOV PUSHR3,A
MOV A,R5
MOV PUSHR5,A
; MOV A,R10
; FMOV PUSHR10,A
; MOV A,R11
; FMOV PUSHR11,A
; MOV A,R12
; FMOV PUSHR12,A
; MOV A,R13
; FMOV PUSHR13,A
; BANK 0
FJMP MINT
ORG 0X30
BEGIN: MOV A,@0xa4 ;***p70is falling edge signal ,interrupt by eni/reti ,tcc signal sourse 16.38k ,prescaler for tcc
CONTW
BS PORT6,6
MOV a,@0X00 ;***OPEN WDTC,OPEN INTERRUPT P96/P97 ,
WDTC
mov r5,a
mov RE,@0x01
MOV FSKSR,@0x93;93;80;*********main clock 0.459MHZ,CPU clock 0.459MHZ,
;fsk demodulator power down,normal mode
JBS R3,4 ;判斷是否是上電復位
JMP BEGIN_W ;否
BC CONFLAG,5 ;不用檢測手柄摘機
BC CONFLAG1,5 ;復位狗標志
CLR CTIME
BEGIN_W:
nop
nop
MOV CIDDA,@0X30
;MOV CIDADD,@0X50
;mov a,@0x50
; fmov caiddata,a
;fmov a,@r11
mov r4,a
MOV A,@0X00
FMOV SECOND,A
FMOV MINUTE,A
FMOV HOUR,A
bank 0
nop
nop
; clr tcc
mov a,@0x00;;;
iow imr
BC CONFLAG,7 ;set reset condition to 0, no reset big cpu
FCLR OVHOUR
mov a,@0x1B ;0001,1011B,P5 IS LCD SEG ,P6,P9 IS I/O,LCD VOL IS 111,SC IS CLOSED
iow IOCA
MOV A,@0x0f
IOW IOC5 ;IOC5 BIT0~bit3 DTMF DATA,p5.4~p5.7 is output
MOV A,@0X00 ;p6 is output
IOW IOC6
mov a,@0x2f ;
mov PORT6,a
MOV A,@0Xfd ;p7 is input
IOW IOC7
mov a,@0xfd
mov port7,a
MOV A,@0X00 ;p8 is output
IOW IOC8
mov a,@0x03 ;
mov PORT8,a
MOV A,@0XE2 ;p9 1110,0010 P9.1,P9.5~7is input,p9.0,p9.2~p9.4 is output
IOW IOC9
mov a,@0x09;eB ;
mov PORT9,a
BS R3,7 ;PAGE1
MOV A,@0B00001011 ;RAW DATA
IOW IOCE
MOV A,@0XFF
IOW IOCD
bc r3,7
PAGE 5
call resdis
MOV R11,@0X30
call cdis
PAGE $ / 0X400
mov r11,@0x0c
mov r4,@0x30
mov r10,@0x00
dis1:
wdtc
mov a,r10
bank 1
mov r0,a
bank 0
inc r4
inc r10
djz r11
jmp dis1
NOP
NOP
BC BITF1,2
mov r10,@0x0b
mov r4,@0x30
mov r11,@0x07
BANK 1
page 5
call display1
page $ /0x400
BANK 0
WDTC
BS CONFLAG,7
BC CONFLAG,6
mov ISF,@0X00
ior imr
or A,@0xCB;0CB
IOW IMR
mov ISF,@0X00
ENI
;WAIT:WDTC
; JMP WAIT
BANK 0
BS RE,WURING ;open the wake-up function of ringtime
mov a,@0
mov CIDNUM,A
bc bitf2,1
bc bitf2,3 ;=1時,表示有效的DTMF或FSK接收完畢,開始檢測是否摘機
bc bitf1,3
bc bitf2,4 ;=1時,表示摘機
idle1:
WDTC
BS FSKSR,IDLE ;INTO IDLE MODE
jbc bitf1,3 ;dtmf標志
jmp innoidle
; BC FSKSR,B358E
nop;$$$$$$$$$$$$$$$$$$$$$
bs fsksr,b358e
innoidle:
jbc bitf2,3
jmp judge2
jbc bitf2,1
jmp judge112
jbC FSKSR,RD ;判斷各中斷標志
jmp judge1
ring:
; NOP
; NOP
; NOP
jbs bitf1,3
jmp idle1
jbs bitf2,3
jmp ring1
bc bitf1,3
jmp idle1
ring1:
; NOP
; NOP
; NOP
fcall rx_datafsk
BANK 0
jbc bitf1,1
jmp judge12
jmp judg_1
judge1:jbs bitf1,3 ;dtmfi腳產生中斷
jmp judge2
judge11:
JBC bitf2,1
jmp judge112
; mov a,@0x1
page 4
call wait1ms
call wait1ms
call wait1ms
PAGE $ / 0X400
jbs port9,1
jmp innoidle
nop
NOP
page 4
call wait1ms
call wait1ms
PAGE $ / 0X400
jbs port9,1
jmp innoidle
; MOV FSKSR,@0X93
bs bitf2,1 ;=1表示進入DTMF接收狀態
bs r5,pwdn ;dtmf接收上電
judge112:
JBS BITF1,1
JMP JUDGE2
judge12:
BC BITF1,1
NOP
NOP
MOV A,CIDDA
add a,cidnum
cbank 0
MOV CIRA,A
MOV a,data
mov CIRD,a
INC CIDNUM
sub a,@0x0c
jbs r3,2 ;z
jmp judge2
; MOV FSKSR,@0X80 ;
bc r5,pwdn
bc bitf1,3
bs bitf2,3
bc bitf2,1
WDTC
mov r11,CIDNUM
mov r4,@0x30
MOV CIRA,@0X31
dis_d1:
wdtc
mov a,CIRD
bank 1
mov r0,a
bank 0
inc r4
inc CIRA
djz r11
jmp dis_d1
; BC BITF1,2
mov r10,@0x0b
mov r4,@0x30
mov r11,CIDNUM
bank 1
page 5
DISI
call display1
page $ /0x400
ENI
BANK 0
;wai: jmp wai
; MOV CIRA,@0X51
; page 5
; call display1
; PAGE $ / 0X400
jmp judg_1
judg_1:
;call bijiao
;jmp
jmp idle1
judge2:
jbs bitf2,4
jmp judge3
BS BITF2,3
WDTC
jmp mhand
judge3:
jmp idle1
mhand:
nop
BC CONFLAG1,7
BC CONFLAG1,6
; JBS PORT6,3
; JMP MAIN1
MOV A,@0X31 ;主叫摘機通訊main call
BC CONFLAG,5
BC CONFLAG,0
jMP COMMU
COMMU:MOV RES_R,A
mov a,@0x01;0
iow imr
bc FSKSR,B358E
;MOV A,@0X44
;CONTW
BC PORT9,3 ;open vcc_power on
; bs port9,3
nop
nop
MOV A,@0X05 ;wait 100ms
CALL WAIT10MS
page $ / 0x400
nop
BS PORT9,2 ;reset big cpu
MOV A,@0X7 ;wait 100ms
page 4
CALL WAIT10MS
page $ / 0x400
nop
MOV A,@0X7 ;wait 100ms
page 4
CALL WAIT10MS
page $ / 0x400
nop
BC PORT9,2
mov a,@0xff
iow ioc7
MOV A,@0X5;20 ;wait 50ms
page 4
CALL WAIT10MS
page $ / 0x400
WDTC
nop
;BS PORT6,7
BC PORT9,4
MOV A,@0X50
BS CONFLAG,7 ;send reset information
MOV TITLE,A
CBANK 0
MOV CIRA,@0X40
MOV A,RES_R
MOV CIRD,A
INC CIRA
JBS CONFLAG,5
FJMP COMM1
JBC PORT6,3 ;判斷門是否打開
JMP COMM_REP
MOV A,@0X01 ;門故障
; bank 1
; MOV R0,A
; bank 0
; INC R4
MOV CIRD,A
INC CIRA
JMP COMM_KEY
COMM_REP:;MOV A,@0X00 ;門正常
;bank 1
;MOV R0,A
;bank 0
;INC R4
MOV CIRD,A
INC CIRA
COMM_KEY:WDTC ;判斷鍵盤是否故障
ior port6
and A,@0XF0
IOW PORT6
BC PORT6,0
BC PORT6,1
BC PORT6,2
BC PORT6,3
page 4
MOV A,@1
CALL WAIT10MS
page $ /0x400
JBS PORT7,4
JMP COMM_KEYR
JBS PORT7,5
JMP COMM_KEYR
JBS PORT7,6
JMP COMM_KEYR
JBS PORT7,7
JMP COMM_KEYR
MOV A,@0X00 ;鍵盤正常
;bank 1
; MOV R0,A
; bank 0
; INC R4
MOV CIRD,A
INC CIRA
FJMP COMM1
COMM_KEYR: MOV A,@0X01 ;鍵盤故障
;bank 1
; MOV R0,A
; bank 0
;INC R4
MOV CIRD,A
INC CIRA
FJMP COMM1
; MOV A,@0
; CALL SERIAL
; CALL OPEN_DATA
; MOV A,@1
; CALL SERIAL
; CALL OPEN_DATA
; ORG 0X800
COMM1: MOV FSKSR,@0xf3
MOV A,@0X3E
;bank 1
; MOV R0,A
; bank 0
MOV CIRD,A
INC CTIME
BS CONFLAG1,5
WDTC
; BC FSKSR,B358E
; mov a,@1
; page 4
; call wait31ms
; page $ /0x400
IOR IMR
AND A,@0B11111011
IOW IMR
FCALL SEND_BUFF ;通訊
FCALL R_ACK ; R_DATA;
; BS FSKSR,B358E
IOR IMR
OR A,@0B00000100
IOW IMR
BC ISF,2
BC CONFLAG1,5
WDTC
CLR CTIME
fCLR SECOND
fCLR OV_MINU
MAINLOOP1:BANK 0
PAGE 5
CALL CDIS
PAGE $ /0X400
; mov r11,@0x0c
; mov r4,@0x30
; mov r10,@0x00
;dis11:
; wdtc
; mov a,r10
; bank 1
; mov r0,a
; bank 0
; inc r4
; inc r10
; djz r11
;jmp dis11
; mov r10,@0x0b
; mov r4,@0x30
; mov r11,@0x07
; bank 1
; page 5
; call display1
; page $ /0x400
; NOP
; NOP
; CBANK 0
;
; MOV A,@0X0A
; PAGE 5 ;本機號
; CALL DISHZ112
; page $ / 0x400
; MOV A,@0X05
; PAGE 5 ;請撥號
; CALL DISHZ112
; PAGE $ / 0X400
MOV ISF,@0X00
MOV A,@0X07;f;/////////////
IOW IMR
MOV ISF,@0X00
BANK 0
MOV A,@0X00
MOV KEYNUMBER,A
mov dialnumber,a
MOV COUNT2,A
bc CONFLAG,1
BC BITF2,0
MOV cira,@0x40
FMOV DATAPRO,cira
bank 0
MAINLOOP:NOP ;overtime protect
MAINL0: WDTC
bank 0
;JBS PORT6,1
;JMP DATASAVE
JBC CONFLAG,5
JMP MAINL2
JBS PORT7,0
JMP MAINL1 ;掛機handset check
MOV A,@1
page 4
CALL WAIT10MS
page $ / 0x400
JBS PORT7,0 ;掛機
JMP MAINL1
call HANDFLASH
MOV A,@20 ;50 ;1000ms
page 4
CALL WAIT10MS
page $ /0x400
JBC PORT7,0
JMP HANDOUT ;摘機
BC CONFLAG,0
JMP MAINLOOP1
MAINL1:WDTC
JBS PORT9,7
JMP MAINL5
JBC CONFLAG,0 ;被叫
JMP MAINLOOP
ior port6
and A,@0XF0
IOW PORT6 ;掃描鍵
BC PORT6,0
BC PORT6,1
BC PORT6,2
BC PORT6,3
WDTC
MOV A,@10;1
page 4
CALL WAIT31MS
page $ / 0x400
JBS PORT7,4
JMP MAINKEY1
JBS PORT7,5
JMP MAINKEY2
JBS PORT7,6
JMP MAINKEY3
JBS PORT7,7
JMP MAINKEY4
JMP MAINL2
MAINKEY1:MOV A,@10
PAGE 4
CALL WAIT10MS
PAGE $ / 0X400
JBS PORT7,4
JMP MAINKEY
JMP MAINL2
MAINKEY2:MOV A,@10
PAGE 4
CALL WAIT10MS
PAGE $ / 0X400
JBS PORT7,5
JMP MAINKEY
JMP MAINL2
MAINKEY3:MOV A,@10
page 4
CALL WAIT10MS
page $ / 0x400
JBS PORT7,6
JMP MAINKEY
JMP MAINL2
MAINKEY4:MOV A,@10
PAGE 4
CALL WAIT10MS
PAGE $ /0X400
JBS PORT7,7
JMP MAINKEY
JMP MAINL2
MAINKEY:NOP ;有鍵
FCALL KEYSDCAN
MOV A,KEYVALUE
SUB A,@0XFF
JBS R3,2
JMP SEND
JMP MAINLOOP
SEND: WDTC
INC KEYNUMBER
MOV A,@0X57
MOV TITLE,A
CBANK 0
MOV CIRA,@0X40
;MOV R4,A
MOV A,KEYVALUE
;bank 1
;MOV R0,A
;bank 0
;INC R4
MOV CIRD,A
INC CIRA
; CALL OPEN_DATA
MOV A,@0X3E
;bank 1
;MOV R0,A
;bank 0
MOV CIRD,A
WDTC
; Bs FSKSR,B358E
; mov a,@1
; page 4
; call wait31ms
; page $ /0x400
IOR IMR
AND A,@0B11111011
IOW IMR
FCALL SEND_BUFF ;通訊
NOP
FCALL R_ACK ; R_DATA;
NOP
NOP
; BS FSKSR,B358E
IOR IMR
OR A,@0B00000100
IOW IMR
bank 0
BC ISF,2
nop
nop
; BC CONFLAG,1 ;
; JBC PORT6,4
; BS CONFLAG,1
WAITK:WDTC ;判斷鍵是否松開
ior port6
and A,@0XF0
IOW PORT6
BC PORT6,0
BC PORT6,1
BC PORT6,2
BC PORT6,3
MOV A,@10
PAGE 4
CALL WAIT10MS
PAGE $ / 0X400
JBS PORT7,4
JMP WAITK
JBS PORT7,5
JMP WAITK
JBS PORT7,6
JMP WAITK
JBS PORT7,7
JMP WAITK
WDTC
MOV A,KEYVALUE
SUB A,@0X10
JBS R3,0
JMP MAINLOOP1
MOV A,KEYNUMBER ;鍵個數是否大于48
SUB A,@64
JBS R3,2
JMP MAINLOOP
MAINL5: JMP MAINL5 ;等待看門狗復位
MAINL2:
NOP
NOP
jbs bitf2,0
jmp mainl_23
jmp mainl_22
mainl_23:
jbs conflag,1
jmp mainl2_ret
jmp mainl_24
mainl_22:
jbs bitf1,1
jmp mainl2_ret
fmov cira,datapro
; mov a,data
NOP
NOP
MOV A,@0X62
MOV TITLE,A
MOV CIRA,@0X40
MOV A,data
MOV CIRD,A
INC CIRA
; CALL OPEN_DATA
MOV A,@0X3E
MOV CIRD,A
WDTC
; BC FSKSR,B358E
; mov a,@1
; page 4
; call wait31ms
; page $ /0x400
IOR IMR
AND A,@0B11111011
IOW IMR
FCALL SEND_BUFF ;通訊
FCALL R_ACK ; R_DATA;
; BS FSKSR,B358E
IOR IMR
OR A,@0B00000100
IOW IMR
mainl_24:
jbs bitf1,1
jmp mainl2_ret
BC BITF1,1
fmov cira,datapro
bank 0
INC CIDNUM
MOV A,CIDNUM
JBS CIDNUM,0
JMP MAINL_CUN1
MAINL_CUN:
mov a,data
MOV R12,A
SWAPA R12
OR A,@0X0F
MOV CIRD,A
JMP MAINL_CUN2
MAINL_CUN1:
MOV A,CIRD
AND A,@0XF0
MOV R12,A
MOV A,DATA
ADD A,R12
MOV CIRD,A
INC CIRA
MAINL_CUN2:
JBS CONFLAG,3
JMP MAINL_CUN8
DJZ TONG
JMP MAINL_CUN3
JMP MAINL_CUN7
MAINL_CUN8:
JBS CONFLAG,2
JMP MAINL_CUN4
MOV A,DATA
SUB A,@3
JBC R3,2
JMP MAINL_CUN3
MOV A,DATA
SUB A,@4
JBC R3,2
JMP MAINL_CUN3
MOV A,DATA
SUB A,@5
JBC R3,2
nop
nop
JMP MAINL_CUN3
MOV A,DATA
SUB A,@1
JBS R3,2
JMP MAINL_CUN5
BS CONFLAG,3
MOV TONG,@2
JMP MAINL_CUN4
MAINL_CUN5:
MOV A,DATA
SUB A,@0
JBS R3,2
JMP MAINL_CUN6
BS CONFLAG,3
MOV TONG,@2
JMP MAINL_CUN7
MAINL_CUN6:
MOV A,DATA
SUB A,@2
JBS R3,2
JMP MAINL2_RET
BS CONFLAG,3
MOV TONG,@1
JMP MAINL_CUN7
MAINL_CUN4:
BANK 0
MOV A,DATA
SUB A,@0X0c;a ;dtmf "d"
JBS R3,2
JMP MAINL_cun7
nop
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -