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

📄 philips1.txt

📁 这是很好的硬件设计参考资料 有兴趣的可以看看
💻 TXT
📖 第 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
  

⌨️ 快捷键说明

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