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

📄 philips0.asm

📁 philips i2c turner fi1256
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	;+++++++++++++++++++++++++++++++++++++++
	;定义键盘及显示用
	DISGE	DATA	39H
	DISSHI	DATA	3AH
	DISBAI	DATA	3BH
	DISQIAN	DATA	3CH
	DISWAN	DATA	3DH
	DISSHIWAN	DATA	3EH
	KEYBUFF	DATA	00H
	PLOCK_LED	BIT	P0.7
	BBB	BIT	P0.6
	;+++++++++++++++++++++++++++++++++++++++
	;六位BCD码转三字节二进制码子程序用
	GEWEI	DATA	30H
	SHIWEI	DATA	31H
	BAIWEI	DATA	32H
	QIANWEI	DATA	33H
	WANWEI	DATA	34H
	SHIWAN	DATA	35H
	OUTPUTL	DATA	36H
	OUTPUTM	DATA	37H
	OUTPUTH	DATA	38H
	;+++++++++++++++++++++++++++++++++++++++
	SCL	BIT	P0.0
	SDA	BIT	P0.1
	;+++++++++++++++++++++++++++++++++++++++
	ADBW	DATA	40H
	ADBR	DATA	41H
	DB1	DATA	42H
	DB2	DATA	43H
	CB	DATA	44H
	PB	DATA	45H
	BUFER3	DATA	46H
	PLL_FSTEP	DATA	47H
	;+++++++++++++++++++++++++++++++++++++++
	BEICHUH	DATA	20H
	BEICHUM	DATA	21H
	BEICHUL	DATA	22H
	;--------------------------------------
	CHUSHUH	DATA	23H
	CHUSHUL	DATA	24H
	;----------------------------------------
	SHANGH	DATA	28H
	SHANGM	DATA	29H
	SHANGL	DATA	2AH
	;--------------------------------------
	YUSHUH	DATA	2BH
	YUSHUL	DATA	2CH
	;****************************************
	;**************************************
STAR:	MOV	DISGE,#0
	MOV	DISSHI,#5
	MOV	DISBAI,#7
	MOV	DISQIAN,#9
	MOV	DISWAN,#4
	MOV	DISSHIWAN,#0
	MOV	SP,#50H
	;-------------------------------------
	;以下为LCD应用程序的初始化程序,必须放在程序的开头
	RS	BIT	P2.0
	RW	BIT	P2.1
	E	BIT	P2.2
	BF	BIT	P3.7
	CKOU	DATA	P2
	DKOU	DATA	P3
	ZLING	DATA	70H
	SHUJU	DATA	71H
	;*******************************
	MOV	ZLING,#1B	;清屏
	ACALL	WRTC
	MOV	ZLING,#10B	;归位,AC=0
	ACALL	WRTC	
	MOV	ZLING,#111000B	;8位数据总线,2行显示,5X7点阵
	ACALL	WRTC
	MOV	ZLING,#1100B	;开显示,开光标,光标闪动
	ACALL	WRTC
	MOV	ZLING,#110B	;光标不动,显示全部右移
	ACALL	WRTC
	;***********************************
	;***********************************
M:	LCALL	SEND_PLL
	LCALL	DISLCD1
	;*************************************
	;矩阵键盘扫描,键盘接在P1口
L1:	MOV	P1,#11110000B
	MOV	A,P1
	CJNE	A,#11110000B,HAVE_KEY
	ACALL	PLL_PLOCKTEST
	SJMP	L1
	;--------------------------------
	;读高频头内部处理的数据
PLL_PLOCKTEST:	ACALL	READ_DELAY
	ACALL	READ_TURN
	MOV	A,BUFER3
	MOV	C,ACC.6	;读锁定指示到PLOCK_LED
	MOV	PLOCK_LED,C
	;----------------------------------
READ_DELAY:	PUSH	00H
	PUSH	01H
	MOV	R0,#20
R_LOOP1:	MOV	R1,#20
R_LOOP2:	DJNZ	R1,R_LOOP2
	DJNZ	R0,R_LOOP1
	POP	01H
	POP	00H
	RET	
	;--------------------------------
HAVE_KEY:	MOV	P1,#11111110B
	JNB	P1.6,K_SETF	;K0按下就转到数字设置
	AJMP	L1
K_SETF:	ACALL	KEYWAIT
	ACALL	K_SHUZI
	ACALL	SEND_PLL
	AJMP	L1	
	;-----------------------------------
	;以下为输入数字的键盘扫描
	;------------------------------------
K_SHUZI:	NOP
LINE1:	MOV	P1,#11111110B
	JNB	P1.6,K0
	JNB	P1.5,K_ENTER
	JNB	P1.4,K_ESC
	;--------------------------------
LINE2:	MOV	P1,#11111101B
	JNB	P1.6,K3
	JNB	P1.5,K6
	JNB	P1.4,K9
	;-------------------------------
LINE3:	MOV	P1,#11111011B
	JNB	P1.6,K2
	JNB	P1.5,K5
	JNB	P1.4,K8
	;-------------------------------
LINE4:	MOV	P1,#11110111B
	JNB	P1.6,K1
	JNB	P1.5,K4
	JNB	P1.4,K7
	;--------------------------------
	AJMP	LINE1
	;-------------------------------
K0:	MOV	KEYBUFF,#0
	AJMP	YIWEI
K1:	MOV	KEYBUFF,#1
	AJMP	YIWEI
K2:	MOV	KEYBUFF,#2
	AJMP	YIWEI
K3:	MOV	KEYBUFF,#3
	AJMP	YIWEI
K4:	MOV	KEYBUFF,#4
	AJMP	YIWEI
K5:	MOV	KEYBUFF,#5
	AJMP	YIWEI
K6:	MOV	KEYBUFF,#6
	AJMP	YIWEI
K7:	MOV	KEYBUFF,#7
	AJMP	YIWEI
K8:	MOV	KEYBUFF,#8
	AJMP	YIWEI
K9:	MOV	KEYBUFF,#9
	AJMP	YIWEI
	;---------------------------------------
K_ENTER:	LCALL	KEYWAIT
	RET
K_ESC:	LCALL	KEYWAIT
	LCALL	DATA_ESC
	RET
	;----------------------------------------
YIWEI:	ACALL	KEYWAIT
	MOV	DISSHIWAN,DISWAN
	MOV	DISWAN,DISQIAN
	MOV	DISQIAN,DISBAI
	MOV	DISBAI,DISSHI
	MOV	DISSHI,DISGE
	MOV	DISGE,KEYBUFF
	ACALL	DISLCD1
	AJMP	LINE1
	;**************************************
	;*************************************
DATA_ESC:	MOV	DISGE,GEWEI
	MOV	DISSHI,SHIWEI
	MOV	DISBAI,BAIWEI
	MOV	DISQIAN,QIANWEI
	MOV	DISWAN,WANWEI
	MOV	DISSHIWAN,SHIWAN
	LCALL	DISLCD1
	RET
	;***************************************
	;***************************************
KEYWAIT:	ACALL	KEYDELAY
KW:	MOV	P1,#11110000B
	MOV	A,P1
	CJNE	A,#11110000B,KW
	RET
	;**************************************
KEYDELAY:	PUSH	00H
	PUSH	01H
	MOV	R0,#80
LOOP1:	MOV	R1,#255
LOOP2:	CPL	BBB
	DJNZ	R1,LOOP2
	DJNZ	R0,LOOP1
	POP	01H
	POP	00H
	RET
	;*******************************
	;**********************************
	;六位BCD码转三字节二进制码子程序
;入口:	GEWEI、	SHIWEI、	BAIWEI、	QIANWEI、	WANWEI、	SHIWAN(个、十、百、千、万、十万位)
;出口:	OUTPUTL、OUTPUTM、OUTPUTH	低、中、高八位
	;占用资源A,B,GEWEI,SHIWEI,BAIWEI,QIANWEI,WANWEI,SHIWAN,66H,67H,68H,
	;69H,6AH,6BH,6CH,6DH,6EH,3FH,70H,71H,OUTPUTH,OUTPUTM
	;*****************************************
KH:	MOV	A,SHIWEI	;	SHIWEI*10
	MOV	B,#10
	MUL	AB
	MOV	66H,A
	;--------------------------------
	MOV	A,BAIWEI	;	BAIWEI*100	
	MOV	B,#100
	MUL	AB
	MOV	67H,A
	MOV	68H,B
	;--------------------------------
	MOV	A,QIANWEI	;	QIANWEI*1000
	MOV	B,#10
	MUL	AB
	MOV	B,#100
	MUL	AB
	MOV	69H,A
	MOV	6AH,B
	;---------------------------------
	MOV	A,WANWEI	;	WANWEI*10000
	MOV	B,#10
	MUL	AB
	MOV	B,#100
	MUL	AB
	MOV	6BH,A
	MOV	6CH,B
	;----------------------
	MOV	A,6BH
	MOV	B,#10
	MUL	AB
	MOV	R0,A
	MOV	R1,B
	MOV	A,6CH
	MOV	B,#10
	MUL	AB
	MOV	R2,A
	MOV	R3,B
	MOV	6DH,R0
	CLR	C
	MOV	A,R1
	ADD	A,R2
	MOV	6EH,A
	MOV	A,R3
	ADDC	A,#0
	MOV	3FH,A
	;-----------------------------------
	MOV	A,SHIWAN	;	SHIWAN*100000
	MOV	B,#10
	MUL	AB
	MOV	B,#100
	MUL	AB
	MOV	70H,A
	MOV	71H,B
	;-------------------------
	MOV	A,70H
	MOV	B,#100
	MUL	AB
	MOV	R0,A
	MOV	R1,B
	MOV	A,71H
	MOV	B,#100
	MUL	AB
	MOV	R2,A
	MOV	R3,B
	MOV	OUTPUTH,R0
	CLR	C
	MOV	A,R1
	ADD	A,R2
	MOV	OUTPUTM,A
	MOV	A,R3
	ADDC	A,#0
	MOV	OUTPUTL,A
	;----------------------
ZH:	CLR	C
	MOV	R0,#0
D1:	MOV	A,GEWEI
	ADD	A,66H
	JNC	D2
	INC	R0
D2:	ADD	A,67H
	JNC	D3
	INC	R0
D3:	ADD	A,69H
	JNC	D4
	INC	R0
D4:	ADD	A,6DH
	JNC	D5
	INC	R0
D5:	ADD	A,OUTPUTH
	JNC	DEND
	INC	R0
DEND:	MOV	OUTPUTH,A
	;---------------------
	MOV	A,R0
	ADD	A,68H
	MOV	68H,A
	MOV	R0,#0
	JNC	M1
	INC	R0
M1:	MOV	A,68H
	ADD	A,6AH
	JNC	M2
	INC	R0
M2:	ADD	A,6EH
	JNC	M3
	INC	R0
M3:	ADD	A,OUTPUTM
	JNC	MEND
	INC	R0
MEND:	MOV	OUTPUTM,A
	;---------------------
	MOV	A,R0
	ADD	A,3FH
	MOV	3FH,A
H:	MOV	A,3FH
	ADDC	A,OUTPUTL
	MOV	OUTPUTL,A
	RET
	;*****************************************
	;三字节除双字节商为三字节除法子程序
;被除数:	BEICHUL(被除数最低位)~BEICHUH
	;(被除数最高位)
;除数:	CHUSHUL(除数最低位),CHUSHUH(除数最高位)
;商:	SHANGL(商最低位)~SHANGH(商最高位)
;余数:	YUSHUL(余数低位)~YUSHUH(余数高位)
;额外占用资源:	R1,R2,R7
	;------------------------------
CHUFA:	MOV	R7,#18H
	MOV	SHANGH,#0
	MOV	SHANGM,#0
	MOV	SHANGL,#0
	MOV	YUSHUH,#0
	MOV	YUSHUL,#0	
SH_32DIV:	CLR	C
	;----------------------------
	MOV	A,BEICHUL
	RLC	A
	MOV	BEICHUL,A
	;----------------------------
	MOV	A,BEICHUM
	RLC	A
	MOV	BEICHUM,A
	;----------------------------
	MOV	A,BEICHUH
	RLC	A
	MOV	BEICHUH,A
	;----------------------------
	MOV	A,YUSHUL
	RLC	A
	MOV	YUSHUL,A
	;----------------------------
	MOV	A,YUSHUH
	RLC	A
	MOV	YUSHUH,A
	;----------------------------
	MOV	A,SHANGL
	RLC	A
	MOV	SHANGL,A
	;----------------------------
	MOV	A,SHANGM
	RLC	A
	MOV	SHANGM,A
	;----------------------------
	MOV	A,SHANGH
	RLC	A
	MOV	SHANGH,A
	;+++++++++++++++++++++++++++++
	CLR	C
	MOV	A,YUSHUL
	SUBB	A,CHUSHUL
	MOV	R1,A
	;-----------------------------
	MOV	A,YUSHUH
	SUBB	A,CHUSHUH
	MOV	R2,A
	;+++++++++++++++++++++++++++++
	JC	TO_LOOP1
	INC	SHANGL
	MOV	A,R1
	MOV	YUSHUL,A
	MOV	A,R2
	MOV	YUSHUH,A
TO_LOOP1:	DJNZ	R7,SH_32DIV
	;++++++++++++++++++++++++++++++++++
	RET
	;******************************************
SEND_PLL:	MOV	GEWEI,DISGE	;将显示BCD值送到二进制合成程序
	MOV	SHIWEI,DISSHI
	MOV	BAIWEI,DISBAI
	MOV	QIANWEI,DISQIAN
	MOV	WANWEI,DISWAN
	MOV	SHIWAN,DISSHIWAN
	LCALL	KH
	;-------------------------------------------------
	;----------------------------------------
	MOV	BEICHUH,OUTPUTL
	MOV	BEICHUM,OUTPUTM
	MOV	BEICHUL,OUTPUTH
	;--------------------------------------
	;---------------------------------------
;38000KHZ对应二进制数为:	9470H	
ADDIF:	CLR	C
	MOV	A,BEICHUL
	ADD	A,#70H
	MOV	BEICHUL,A
	MOV	A,BEICHUM
	ADDC	A,#94H
	MOV	BEICHUM,A
	MOV	A,BEICHUH
	ADDC	A,#0
	MOV	BEICHUH,A
	;-------------------------------------
	;-------------------------------------
	CLR	C
	MOV	A,BEICHUL
	SUBB	A,#0C8H
	MOV	A,BEICHUM
	SUBB	A,#20H
	MOV	A,BEICHUH
	SUBB	A,#03H
	JC	SETUP_LHF
	;---------------------------------------

⌨️ 快捷键说明

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