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

📄 液晶显示.asm

📁 自己学习单片机期间 自己遍的一个 LCD 显示模块 可以调整时间并且哟闹铃功能
💻 ASM
字号:
;                    SMC1602接口程序(MCS51模拟口线方式)
;***************************************************************************
;*  Title : Accessing to LCD-CONTROLLER                                    *
;*  Date :  2000.4.27                                                      *
;*  Support telephone:  0731-4167806,4167808(CHANGSHA SUNMAN)              *
;*  Support fax :0731-4167807  Support E-mail:www@sunman.cn                *
;*  Create by :褚建军(chujianjun),朱长春(zhuchangchun)                     *
;*  DESCRIPTION:This subroutine shows how to write data to LCD-CONTROLLER  *
;***************************************************************************
;连线图: *LCM---8031* *LCM---8031* *LCM------------8031*
;        *DB0---P1.0* *DB4---P1.4* *RS-------------P3.5*
;        *DB1---P1.1* *DB5---P1.5* *RW-------------P3.4*
;        *DB2---P1.2* *DB6---P1.6* *E--------------P3.6*  (参见说明书)
;        *DB3---P1.3* *DB7---P1.7* *VLCD接10K可调电阻到GND*
;注:8031的晶振频率为12MHz
;**************************************************************************
          RS   EQU P3.5
	  RW   EQU P3.4
	  E    EQU P3.6
	  XPOS EQU 20H		;行方向
	  YPOS EQU 21H		;列方向

	  ORG  00H
	  LJMP START
	  ORG  30H
START:MOV  SP,#60H
      CLR  E
      MOV  DPTR,#TAB
      MOV  R2,#0
MN_LP2:MOV  R0,#0
      MOV   YPOS,#0
      MOV   XPOS,#0
      LCALL LCDRESET
MN_LP:MOV  A,R0
      MOVC A,@A+DPTR
      LCALL LCDFILL
      INC   R0
      CJNE  R0,#32,MN_LP
      LCALL DELAY400MS
      INC   DPTR
      INC   R2
      CJNE  R2,#16,MN_LP2
      LJMP  START
;-------------------------------LCD 写满屏幕地址和字符数据指令--------------------------------
LCDFILL:
      LCALL LCDWRITE
      INC   XPOS
      MOV   A,XPOS
      CJNE  A,#16,RETURN
      INC   YPOS
      MOV   A,YPOS
      CJNE  A,#2,RETURN
RETURN:	  RET
;-----------------------------------LCD 写一个地址和字符数据指令-----------------------------------
LCDWRITE:
      LCALL LCDPOS	;lcd 写地址指令
	  LCALL LCDWD	;LCD 写字符指令
	  RET
;------------------------------LCD 写地址指令--------------------------------------------------------
LCDPOS:PUSH ACC
      ANL   XPOS,#0FH
	  ANL   YPOS,#01H
	  MOV   A,YPOS
	  CJNE  A,#00,LPS_LAY
	  MOV   A,XPOS
	  LJMP  LPS_LAX
LPS_LAY:MOV A,XPOS
      ADD   A,#40H
LPS_LAX:ORL A,#80H
      LCALL LCDWC
	  POP   ACC
	  RET
      	  	  	  	   	   
;------------------------------------LCD RESET--------------------------------------------------------------------	     
LCDRESET:
      LCALL DELAY5MS
	  LCALL DELAY5MS
	  LCALL DELAY5MS 
      MOV   A,#38H
	  LCALL LCDWCN
	  LCALL DELAY5MS
	  MOV   A,#38H
	  LCALL LCDWCN
	  LCALL DELAY5MS
	  MOV   A,#38H
	  LCALL LCDWCN
	  MOV   A,#38H
	  LCALL LCDWC
	  MOV   A,#08H
	  LCALL LCDWC
	  MOV   A,#01H
	  LCALL LCDWC
	  MOV   A,#06H
	  LCALL LCDWC
	  MOV   A,#0CH
	  LCALL LCDWC
	  RET
LCDWC:LCALL WAITIDLE
;----------------------------------LCD write not check,写指令------------------------
LCDWCN:CLR  RS
      CLR   RW
	  MOV   P1,A
	  SETB 	E
	  NOP
	  CLR   E
      RET
;--------------------------LCD busy check,wait till not busy(读状态,判断是否忙)-----------------------------------
WAITIDLE:
      PUSH  ACC
	  MOV   P1,#0FFH
	  CLR   RS
	  SETB  RW
	  SETB  E
WTD_PA:NOP
	  JB    P1.7,WTD_PA
	  CLR   E
	  POP   ACC
	  RET
;--------------------------LCD WRITE TATA(写数据)----------------------------------------
LCDWD:LCALL WAITIDLE
      MOV   P1,A
      CLR   RW
	  SETB 	RS
	  SETB  E
	  NOP
	  CLR   E
	  RET
;----------------------------DELAY---------------------------------
DELAY5MS:MOV R5,#5
    DL2: MOV R6,#250
	DL1: NOP
		 NOP
		 DJNZ R6,DL1
		 DJNZ R5,DL2
	   RET
DELAY400MS:
        MOV     R5,#20              ;延时子程序(400MS)
DL4_PA: MOV     R6,#100
DL4_PB: MOV     R7,#100
        DJNZ    R7,$
        DJNZ    R6,DL4_PB
        DJNZ    R5,DL4_PA
        RET
       
TAB:    DB 'I',' ','l','o','v','e',' ','t','h','r','e','e',' ','t','h','i'
        DB 'n','g','s',',','t','h','e',' ','s','u','n',',','t','h','e',' '
        DB 'm','o','n','t','h','s',',','a','n','d',',','y','o','u',',',' '
	END

⌨️ 快捷键说明

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