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

📄 sh69p56.asm

📁 sinowealth单片机遥控接受程序,型号69P56,可以参考
💻 ASM
字号:
; MCU=69P56
IE		EQU	00H     ; Interrupt enable flags
IRQ		EQU	01H     ; Interrupt request flags
TM0		EQU	02H             
TM1		EQU	03H
TL0		EQU	04H
TH0		EQU	05H
TL1		EQU	06H
TH1		EQU	07H
PA		EQU	08H
PB		EQU	09H
PC		EQU	0AH
PD		EQU	0BH
PE		EQU	0CH
CONTROL		EQU	0DH
TBR		EQU	0EH
INX		EQU	0FH
DPL		EQU	10H
DPM		EQU	11H
DPH		EQU	12H
TIMCTL		EQU	13H
PBINT		EQU	14H
PBIRQ		EQU	15H
ALARM		EQU	16H
AEC		EQU	17H
PAC		EQU	18H
PBC		EQU	19H
PCC		EQU	1AH
PDC		EQU	1BH
PEC		EQU	1CH
ELON		EQU	1DH
WDTC		EQU	1EH
;		RESERVED

VREFADC		EQU	20H
ADCSEL		EQU	21H
ADCOSC		EQU	22H
ADCL		EQU	23H
ADCH		EQU	24H
LCDON		EQU	25H
DUTY		EQU	26H
LCDC		EQU	27H


PWMC0		EQU	00H
PWMC1		EQU	01H
PWMP0L		EQU	02H
PWMP0M		EQU	03H
PWMP0H		EQU	04H
PWMD0L		EQU	05H
PWMD0M		EQU	06H
PWMD0H		EQU	07H
PWMP1L		EQU	08H
PWMP1M		EQU	09H
PWMP1H		EQU	0AH
PWMD1L		EQU	0BH
PWMD1M		EQU	0CH
PWMD1H		EQU	0DH
RDT0		EQU	0EH
RDT1		EQU	0FH
RDT2		EQU	10H
RDT3		EQU	11H
;====================================================
BUFFL		EQU	31H
BUFFM		EQU	32H
BUFFH		EQU	33H



TEMP		EQU	60H		; BANK0  
TEMPL		EQU	61H		; BANK0
TEMPH		EQU	62H		; BANK0
SINFLG		EQU	63H		; BANK0 

PSH		EQU	50H		; BANK1
DTNUML		EQU	51H		; BANK1
DTNUMH		EQU	52H		; BANK1
BDPL		EQU	53H		; BANK1
BDPM		EQU	54H		; BANK1
BDPH		EQU	55H		; BANK1

; (60H-7CH) BANK1 STORE RECEIVE DATA (0E0H-0FCH)
;====================================================
;====================================================
;		JMP	MAINPROG
;		JMP	ADCINT		; ADC
;		JMP	TIME0INT	; TIMER0
;		JMP	TIME1INT	; TIMER1
;		JMP	PORTBINT	; PORTB INT
;****************************************************
;****************************************************
		ORG	0000H
		JMP	MAINPROG
		NOP
		NOP
		NOP
		JMP	PORTBINT
		

;****************************************************
;****************************************************
MAINPROG:
		LDI	IE,0		; Disable Interrupt
		LDI	IRQ,0		; Clear all interrupt flags
		LDI	WDTC,4		; WDT 64MS
		

		
		
		LDI	CONTROL,13	; OPEN 4M OSCX
		LDI	BUFFH,2
		LDI	BUFFL,0
MAINWAIT:	NOP
		NOP
		SBIM	BUFFL,1
		BNZ	MAINWAIT
		LDI	WDTC,4		; WDT 64MS
		SBIM	BUFFH,1
		BNZ	MAINWAIT
		LDI	CONTROL,15	; MAIN CLOCK 4M
		NOP
		NOP
		LDI	BUFFH,2
		CALL	DELAY_TIMES_XX	; DISPLAY 2S
		NOP
		NOP 
		




		LDI	TIMCTL,0	; TIM0 =OSC TIM1=OSC SYS
		LDI	TM1,2
		LDI	TL1,0
		LDI	TH1,0
		LDI	TEMP,0
		STA	DTNUML,1
		STA	DTNUMH,1
		LDI	PBC,0
		LDI	PB,15
		LDI	PBINT,8		; PB.0 RECEIVE
		LDI	PBIRQ,0
		LDI	SINFLG,0
		LDI	IRQ,0
		ORIM	IE,1		; ENABLE PORTB INT
;====================================================
;====================================================
MAINLOOP:
		
		
		LDI	TEMP,2
		AND	IRQ,0
		BAZ	NOTRECOVER
		ANDIM	IRQ,13
		LDA	SINFLG,0
		BAZ	NOTRECOVER
		LDI	SINFLG,0	
		LDA	DTNUML,1
		BNZ	NOTRECOVER
		LDI	TEMP,7
		LDA	DTNUMH,1
		SUB	TEMP,0
		BNZ	NOTRECOVER
;----------------------------------------------------
		NOP			; RECEIVE OK
		NOP
					; ADD YOU PROGRAM

		LDI	TEMP,0
		STA	DTNUMH,1
		STA	DTNUML,1
;----------------------------------------------------
NOTRECOVER:	LDA	SINFLG,0
		BNZ	NOTCLRTIM1
		LDI	TL1,0
		LDI	TH1,0
NOTCLRTIM1:
	
		
		JMP	MAINLOOP
;****************************************************
;****************************************************




;****************************************************
;****************************************************
DELAY_TIMES_XX:				; BUFFH=?
		LDI	BUFFM,15
		LDI	BUFFL,15
DLYTM10:	NOP
		NOP
		SBIM	BUFFL,1
		BNZ	DLYTM10
		LDI	WDTC,4		; WDT 64MS
		SBIM	BUFFM,1
		BNZ	DLYTM10
		SBIM	BUFFH,1
		BNZ	DLYTM10
		RTNI
;****************************************************
;****************************************************
		ORG	800H
		
PORTBINT:	STA	PSH,1
		LDI	IRQ,0
		LDA	PBIRQ,0
		BA3	RECEIVENT
		JMP	PORTBINTEN
RECEIVENT:	LDA	SINFLG,0
		BNZ	RECEIVEFNT
		LDI	TL1,0
		LDI	TH1,0
		LDI	SINFLG,1
		JMP	PORTBINTEN
RECEIVEFNT:	SBI	SINFLG,1
		BNZ	RECEIVEDAT
		LDA	TH1,0
		STA	TEMPH,0
		LDA	TL1,0
		STA	TEMPL,0
		LDI	TL1,0
		LDI	TH1,0
		SBI	TEMPH,2
		BNC	PORTBINTEN
		SBI	TEMPH,4
		BC	PORTBINTEN
		LDI	SINFLG,2	; FONT OK
		JMP	PORTBINTEN
RECEIVEDAT:	SBI	SINFLG,2
		BNZ	PORTBINTEN
		
		LDA	TH1,0
		STA	TEMPH,0
		LDA	TL1,0
		STA	TEMPL,0
		LDI	TL1,0
		LDI	TH1,0

		

		SBI	TEMPH,2
		BC	PORTBINTEN
		LDA	TEMPH,0
		BNZ	PORTBINTXX
		SBI	TEMPL,3
		BNC	PORTBINTEN	; DAT: 03<TH1,TL1<14H OK
PORTBINTXX:		
		LDI	TEMPH,7
		SUB	DTNUMH,1	; DATNUM<70H
		BC	PORTBINTEN
		
		LDI	TEMPH,0
		SBI	TEMPL,11
		BNC	RECDATCHG
		LDI	TEMPH,1		; DAT=0/1
RECDATCHG:
		LDA	DPH,0
		STA	BDPH,1
		LDA	DPM,0
		STA	BDPM,1
		LDA	DPL,0
		STA	BDPL,1
		
		LDI	DPH,1
		LDA	DTNUML,1
		SHR
		SHR
		STA	DPL,0
		LDA	DTNUMH,1
		SHR
		SHR
		STA	DPM,0
		ADIM	DPM,6
		LDI	TEMPL,3
		AND	DTNUMH,1
		STA	TEMPL,0
		ADDM	TEMPL,0
		ADDM	TEMPL,0
		ADDM	DPL,0
		
		LDI	TEMPL,3
		AND	DTNUML,1
		STA	TEMPL,0
		BAZ	RECDATNXT0
		SBI	TEMPL,1
		BAZ	RECDATNXT1
		SBI	TEMPL,2
		BAZ	RECDATNXT2
		LDA	TEMPH,0
		BAZ	RECDATNXTEN
		LDI	TEMPL,8
		LDA	INX,0
		ORM	TEMPL,0
		STA	INX,0
		JMP	RECDATNXTEN
RECDATNXT2:	LDA	TEMPH,0
		BAZ	RECDATNXTEN
		LDI	TEMPL,4
		LDA	INX,0
		ORM	TEMPL,0
		STA	INX,0
		JMP	RECDATNXTEN
RECDATNXT1:	LDA	TEMPH,0
		BAZ	RECDATNXTEN
		LDI	TEMPL,2
		LDA	INX,0
		ORM	TEMPL,0
		STA	INX,0
		JMP	RECDATNXTEN
RECDATNXT0:	LDA	TEMPH,0
		STA	INX,0
RECDATNXTEN:
		LDA	BDPH,1
		STA	DPH,0
		LDA	BDPM,1
		STA	DPM,0
		LDA	BDPL,1
		STA	DPL,0
		LDI	TEMPH,1
		ADDM	DTNUML,1
		LDI	TEMPH,0
		ADCM	DTNUMH,1	; DATA NUMBER
		
		
PORTBINTEN:	LDI	PBIRQ,0
		ORIM	IE,1		; ENABLE PORTB INT
		LDA	PSH,1
		RTNI
;****************************************************
;****************************************************

;****************************************************
;****************************************************
		END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -