用普通IO驱动LCD的控制方法-松瀚汇编源程序
/***************************************
本例程为IO直接驱动LCD的方法
以下是松瀚MCU汇编源程序
****************************************/
LCD 图形如下:
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