⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 201gd331main.dt

📁 201话机源程序 201话机源程序
💻 DT
📖 第 1 页 / 共 3 页
字号:
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
         page	4
         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 + -