用普通IO驱动LCD的控制方法-松瀚汇编源程序

/***************************************

本例程为IO直接驱动LCD的方法

 

以下是松瀚MCU汇编源程序

****************************************/

LCD 图形如下:

用普通IO驱动LCD的控制方法-松瀚汇编源程序

LCD真值表如下:用普通IO驱动LCD的控制方法-松瀚汇编源程序

 

;源程序如下:

;驱动IO定义

P_COM3	EQU	P5.4

P_COM2	EQU	P5.3

P_COM1	EQU	P5.2

PM_COM3	EQU	P5M.4

PM_COM2	EQU	P5M.3

PM_COM1	EQU	P5M.2



P_SEG1	EQU	P0.4

P_SEG2	EQU	P0.5

P_SEG3	EQU	P0.6

P_SEG4	EQU	P0.7

P_SEG5	EQU	P5.0

P_SEG6	EQU	P5.1





;变量定义

C_FR	DS	1	;液晶扫描状态

R_DSPCOM1	DS	1

R_DSPCOM2	DS	1

R_DSPCOM3	DS	1



R_BITI	DS	1





;中断服务程序



INT_T0:	;  T0中断定时1MS 依次扫描八个状态

	B0BTS1	FT0IRQ

	RETI

	B0BCLR	FT0IRQ

	B0BTS1	FT0IEN

	RETI

	PUSH

	

	;以下是LCD显示扫描

	MOV	A,#256-32

	B0MOV	T0C,A	



;以下是LCD显示扫描

	INCMS	C_FR

	NOP

	MOV	A,C_FR

	SUB	A,#6

	B0BTS0	FC

	CLR	C_FR	



	B0BCLR	PM_COM1

	B0BCLR	PM_COM2

	B0BCLR	PM_COM3



	MOV	A,C_FR

	AND	A,#0X07

	@JMP_A	6

	JMP	A_COM0

	JMP	A_COM1

	JMP	A_COM2

	JMP	A_COM3

	JMP	A_COM4

	JMP	A_COM5

	JMP	A_COM5

	JMP	A_COM5





A_COM0:

	B0BSET	PM_COM1

	B0BCLR	P_COM1 ;低电平驱

	

	MOV	A,R_DSPCOM1

	

	JMP	A_SEG	

A_COM1:

	B0BSET	PM_COM2	

	B0BCLR	P_COM2 ;低电平驱



	MOV	A,R_DSPCOM2	



	JMP	A_SEG	

A_COM2:

	B0BSET	PM_COM3

	B0BCLR	P_COM3 ;低电平驱



	MOV	A,R_DSPCOM3	



	JMP	A_SEG



A_COM3:

	B0BSET	PM_COM1 

	B0BSET	P_COM1 ;高电平驱



	MOV	A,R_DSPCOM1

	XOR	A,#0XFF



	JMP	A_SEG

A_COM4:

	B0BSET	PM_COM2

	B0BSET	P_COM2 ;高电平驱



	MOV	A,R_DSPCOM2

	XOR	A,#0XFF



	JMP	A_SEG

A_COM5:

	B0BSET	PM_COM3

	B0BSET	P_COM3 ;高电平驱



	MOV	A,R_DSPCOM3

	XOR	A,#0XFF



	JMP	A_SEG

A_SEG:

	MOV	R_BITI,A



	B0BCLR	P_SEG1

	BTS0	R_BITI.	0

	B0BSET	P_SEG1



	B0BCLR	P_SEG2

	BTS0	R_BITI.	1

	B0BSET	P_SEG2



	B0BCLR	P_SEG3

	BTS0	R_BITI.	2

	B0BSET	P_SEG3



	B0BCLR	P_SEG4

	BTS0	R_BITI.	3

	B0BSET	P_SEG4



	B0BCLR	P_SEG5

	BTS0	R_BITI.	4

	B0BSET	P_SEG5



	B0BCLR	P_SEG6

	BTS0	R_BITI.	5

	B0BSET	P_SEG6



INT_EX:



	POP

	RETI


 

 

你可能感兴趣的:(IO)