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

📄 x9313wp.asm

📁 电子电位器调节程序
💻 ASM
字号:
		;LCD_TAB	查要LCD显示的32个值,放入LCDDA1开始的后32个地址里
		;LCD_SETUP	LCD上电时功能设置
		;LCD_READY	把LCDDA1开始地址后的32值给LCD显示
X9313_INC	BIT	P2.5	;加/减计数脉冲输入端,下降沿触发
X9313_UD	BIT	P2.4	;加/减计数控制端,U/ 脚输入高电平时为加计数,输入低电平时为减计数
X9313_CS	BIT	P3.0	;片选输入端,当 端输入低电平时器件被选中。当 端为高电平时, 端的上升沿
				;可使当前计数器的值被贮存在非易失性存贮器中。当 端为低电平时, 端的上升沿
				;不能贮存数据,而是返回等待。

OK_UP	BIT	20H.0	
OK_DOWN	BIT	20H.1					
LCD_RS	BIT	P3.5	;LCD的数据(H)、指令(L)寄存器选择位
LCD_RW	BIT	P2.6	;LCD的读(H)、写(L)选择位
LCD_E	BIT	P2.7	;片选信号,下降沿触发
MODE	BIT	P2.0
SETUP	BIT	P2.1
UP	BIT	P2.2
DOWN	BIT	P2.3
LCD_DA	EQU	P0	;LCD数据传输线
YANS	EQU	21H
SOUND_NUM	EQU	22H
TAB_DA	EQU	23H
LCD1_1	EQU	24H	;LCD数据1
LCD1_2	EQU	25H	;LCD数据2
LCD1_3	EQU	26H	;LCD数据3
LCD1_4	EQU	27H	;LCD数据4
LCD1_5	EQU	28H	;LCD数据5
LCD1_6	EQU	29H	;LCD数据6
LCD1_7	EQU	2AH	;LCD数据7
LCD1_8	EQU	2BH	;LCD数据8
LCD1_9	EQU	2CH	;LCD数据9
LCD1_10	EQU	2DH	;LCD数据10
LCD1_11	EQU	2EH	;LCD数据11
LCD1_12	EQU	2FH	;LCD数据12
LCD1_13	EQU	30H	;LCD数据13
LCD1_14	EQU	31H	;LCD数据14
LCD1_15	EQU	32H	;LCD数据15
LCD1_16	EQU	33H	;LCD数据16
LCD2_1	EQU	34H	;LCD数据17
LCD2_2	EQU	35H	;LCD数据18
LCD2_3	EQU	36H	;LCD数据19
LCD2_4	EQU	37H	;LCD数据20
LCD2_5	EQU	38H	;LCD数据21
LCD2_6	EQU	39H	;LCD数据22
LCD2_7	EQU	3AH	;LCD数据23
LCD2_8	EQU	3BH	;LCD数据24
LCD2_9	EQU	3CH	;LCD数据25
LCD2_10	EQU	3DH	;LCD数据26
LCD2_11	EQU	3EH	;LCD数据27
LCD2_12	EQU	3FH	;LCD数据28
LCD2_13	EQU	40H	;LCD数据29
LCD2_14	EQU	41H	;LCD数据30
LCD2_15	EQU	42H	;LCD数据31
LCD2_16	EQU	43H	;LCD数据32
START:	;显示产品型号
	MOV	A,R2
	CJNE	A,#55H,ON_POWER
	LJMP	TWO_POWER
ON_POWER:
	MOV	R2,#55H
	MOV	SOUND_NUM,#00
TWO_POWER:
	LCALL	LCD_SETUP	;LCD上电设置
	MOV	DPTR,#WORKS_MODE
	LCALL	LCD_TAB
NEXT:	
	LCALL	SOUND_ASCII
	LCALL	LCD_READY
NEXT1:
	NOP
	NOP
	JB	SETUP,NEXT1
NEXT2:
	NOP
	JB	UP,IF_X9313_DEC	
	INC	SOUND_NUM
	MOV	A,SOUND_NUM
	CJNE	A,#32,X9313
	MOV	SOUND_NUM,#31
	LJMP	X9313
IF_X9313_DEC:
	JB	DOWN,NEXT1
	DEC	SOUND_NUM
	MOV	A,SOUND_NUM
	CJNE	A,#0FFH,X9313
	MOV	SOUND_NUM,#00
X9313:
	CLR	X9313_CS	;选中
	MOV	YANS,#38
	CLR	X9313_UD	;执行减
X9313_RET:			;X9313清0
	SETB	X9313_INC
	LCALL	SP_YANS
	CLR	X9313_INC
	LCALL	SP_YANS	
	DJNZ	YANS,X9313_RET
	;***********************经过38次减已到00
X9313_RUN:
	MOV	A,SOUND_NUM
	JZ	X9313_END
	SETB	X9313_UD	;执行加
	MOV	YANS,A
WRITE_X9313:	
	SETB	X9313_INC
	LCALL	SP_YANS
	CLR	X9313_INC
	LCALL	SP_YANS	
	DJNZ	YANS,WRITE_X9313
X9313_END:
	LCALL	SP_YANS
	SETB	X9313_INC	;准备存
	LCALL	SP_YANS
	SETB	X9313_CS	;存入
	LJMP	NEXT	
LCD_SETUP:  
	CLR     LCD_RS
	CLR     LCD_RW
	SETB    LCD_E
	MOV     LCD_DA,#30H                 ;1
	CLR     LCD_E
	MOV	R0,#5
LCD_5MS:	
	LCALL	LCD_WHITE_1MS
	DJNZ	R0,LCD_5MS
	SETB    LCD_E
	MOV     LCD_DA,#30H                 ;2
	CLR     LCD_E
	MOV     R0,#240
W100US:   
	DJNZ    R0,W100US             ;DELAY 100US
	SETB    LCD_E
	MOV     LCD_DA,#30H                 ;3
	CLR     LCD_E
	LCALL   LCD_WHITE_40US               ;DELAY 40US
	SETB    LCD_E
	MOV     LCD_DA,#38H                 ;8位接口2行显示
	CLR     LCD_E
	LCALL   LCD_WHITE_40US               ;DELAY 40US
	SETB    LCD_E
	MOV     LCD_DA,#08H                 ;5 DIS OFF关显示
	CLR     LCD_E
	LCALL   LCD_WHITE_40US
	SETB    LCD_E
	MOV     LCD_DA,#01H                 ;6 CLEARS ALL DISPLAY AND RETURN 清屏及显示有移位
	CLR     LCD_E
	MOV	R0,#10
LCD_10MS:	
	LCALL   LCD_WHITE_1MS                ;CURSOR TO HOME POSITION
	DJNZ	R0,LCD_10MS
	RET
LCD_TAB:
	MOV	R0,#00H		;查表基址清0
	MOV	R1,#LCD1_1	;付值查表结果存放基址
TAB_LOOP:			
	MOV	A,R0		;付查表基址给A
	MOVC	A,@A+DPTR	;查表
	MOV	@R1,A		;存结果
	INC	R0		;查表基址加1
	INC	R1		;存放基址加1
	CJNE	R0,#32,TAB_LOOP	;完成?	
	RET
LCD_READY:			;LCD 准备
	MOV	R0,#00H		;LCD输出移位基址清0
	MOV	R1,#LCD1_1	;LCD输出基值付值	
	CLR	LCD_RW
	CLR 	LCD_RS
	SETB	LCD_E
	MOV	LCD_DA,#0CH       ;清屏并返回
	CLR	LCD_E
	LCALL	LCD_WHITE_40US
	SETB	LCD_E
	MOV	LCD_DA,#80H       ;选LCD显示地址,第一行 1X16
	CLR 	LCD_E
	LCALL	LCD_WHITE_40US
	SETB	LCD_RS	      ;写数据开           		
LCD_SHOW:		      ;1X16
	SETB	LCD_E
	MOV	LCD_DA,@R1
	CLR 	LCD_E
	LCALL	LCD_WHITE_40US
	INC	R0
	INC	R1
	CJNE	R0,#16,LCD_SHOW
	;********
	CLR	LCD_RS         
	SETB	LCD_E
	MOV	LCD_DA,#0C0H      ;选LCD显示地址,第二行 2X16
	CLR 	LCD_E
	LCALL	LCD_WHITE_40US
	SETB	LCD_RS        ;写数据开
LCD_SHOW1:		      ;2X16
	SETB	LCD_E
	MOV	LCD_DA,@R1
	CLR 	LCD_E
	LCALL	LCD_WHITE_40US
	INC	R0
	INC	R1
	CJNE	R0,#32,LCD_SHOW1
	RET
;************************************************
LCD_WHITE_1MS:	
	MOV	R6,#20
DEL1:		
	MOV	R7,#100
DEL2:	
	DJNZ	R7,DEL2
	DJNZ	R6,DEL1
	RET
;************************************************
LCD_WHITE_40US:	
	MOV	R7,#80
LCD_WHITE_40US_W:
	NOP	
	DJNZ	R7,LCD_WHITE_40US_W
	RET
;************************************************
SOUND_ASCII:
	MOV	A,SOUND_NUM
	MOV	B,#10
	DIV	AB
	MOV	LCD2_16,B	;个
	MOV	B,#10
	DIV	AB
	MOV	LCD2_15,B	;十
	ORL	LCD2_15,#30H
	ORL	LCD2_16,#30H
	RET		
WORKS_MODE:	
	DB  	'  WELCOME  USE  '
	DB  	'====AUDIO=====  '
SP_YANS:
	MOV	R3,#200
SP_YANS1:
	NOP
	DJNZ	R3,SP_YANS1
	RET		
        END

⌨️ 快捷键说明

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