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

📄 lcd.asm

📁 本书通过实例介绍了嵌入式编程的方法与技巧书中例子具有实用性
💻 ASM
字号:
		RSO     BIT     P1.0
 		RW      BIT     P1.1
 		LCDEN   BIT     P1.2
 		CLR_DISP        EQU     01H
 		RT_HM           EQU     02H
 		EM_SET          EQU     06H
 		DISP_ON         EQU     0CH
 		DISP_OFF        EQU     08H
 		CURS_ON         EQU     0EH  
 		CURS_OFF        EQU     0CH
 		DISP_LFST        EQU    18H
 		DISP_RTST        EQU    1CH
 		CURS_LFST        EQU    10H
 		CURS_RTST        EQU    14H
 		FUN_SET    EQU    28H    
 		DISP_WD    EQU     20H   
 		LEN        BIT     01H

MAIN:
		LCALL LCD_SETUP
		LCALL DISP_HEL_WORLD

WAIT:
		NOP
		SJMP WAIT

LCD_SETUP:
		MOV DISP_WD,#30H
		ACALL DDATC_WR
		ACALL DELAY_5MSEC
		MOV DISP_WD,#30H
		ACALL DDATC_WR
		ACALL DELAY_5MSEC
		ACALL DELAY_150MCSEC
		MOV DISP_WD,#30H
		ACALL DDATC_WR
		ACALL DELAY_5MSEC
		ACALL DELAY_150MCSEC
		MOV DISP_WD,#20H
		ACALL DDATC_WR
		ACALL DELAY_5MSEC
		ACALL DELAY_150MCSEC
		MOV DISP_WD,#FUN_SET
		ACALL DDATC_WR
		ACALL DELAY_150MCSEC
		MOV DISP_WD,#DISP_RTST
		ACALL DDATC_WR
		ACALL DELAY_150MCSEC
		MOV DISP_WD,#RT_HM
		ACALL DDATC_WR
		ACALL DELAY_150MCSEC
		MOV DISP_WD,#DISP_ON
       ACALL DDATC_WR
       ACALL DELAY_150MCSEC
       MOV DISP_WD,#EM_SET
       ACALL DDATC_WR
       ACALL DELAY_150MCSEC
       RET

DDATC_WR:
       MOV P1,#00H
       CLR LCDEN
       NOP
       CLR RSO
       NOP
       CLR RW
       NOP
       ANL P1,#0FH
       NOP
       NOP
       NOP
       NOP
       SETB LCDEN
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       MOV A,DISP_WD
       ANL A,#0F0H
       ORL P1,A
       ACALL DELAY_400MCSEC
       NOP
       NOP
       NOP
       NOP
       NOP 
       NOP
       CLR LCDEN
       ACALL DELAY_400MCSEC 
       CLR RSO
       NOP
       CLR RW
       NOP
       CLR LCDEN
       JB LEN,DDATC_OUT 
       ANL P1,#0FH
       NOP
       NOP
       NOP
       NOP
       NOP
      SETB LCDEN
      NOP
      NOP
      NOP
      NOP
      NOP
      MOV A,DISP_WD
      ANL A,#0FH
      SWAP A
      ORL P1,A
      ACALL DELAY_400MCSEC
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      CLR LCDEN
      NOP

DDATC_OUT:
      RET

DDATD_WR:
      MOV P1,#00H
      CLR LCDEN
      NOP
      CLR RSO
      NOP
      CLR RW
      NOP
      SETB RSO
      NOP
      ANL P1,#0FH
      NOP
      NOP
      NOP
      NOP
      NOP
      SETB LCDEN
      NOP
      NOP
      NOP
      NOP
      MOV A,DISP_WD
      ANL A,#0F0H
      ORL P1,A
      LCALL DELAY_400MCSEC
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      CLR LCDEN
      NOP
      NOP
      NOP
      NOP
      NOP
      CLR RSO
      LCALL DELAY_400MCSEC 
      NOP
      CLR RW
      NOP
      CLR LCDEN
      NOP
      SETB RSO
      NOP
      ANL P1,#0FH
      NOP
      NOP
      NOP
      NOP
      NOP
      SETB LCDEN
      NOP
      NOP
      NOP
      NOP
      NOP
      MOV A,DISP_WD
      ANL A,#0FH
      SWAP A
      ORL P1,A
      LCALL DELAY_400MCSEC
      NOP
      NOP
      NOP
      NOP
      CLR LCDEN
      NOP
      NOP
      NOP
      NOP
      NOP
      CLR RSO
      RET

DISP_HEL_WORLD:
      MOV DISP_WD,#CLR_DISP
      LCALL DDATC_WR
      LCALL DELAY_5MSEC

      MOV DISP_WD,#RT_HM
      LCALL DDATC_WR
      LCALL DELAY_5MSEC

      MOV DISP_WD,#DISP_ON
      LCALL DDATC_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#CURS_OFF
      LCALL DDATC_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#80H
      LCALL DDATC_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#48H     ;H
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#45H     ;E
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#4CH     ;L
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#4CH     ;L
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#4FH     ;O
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC
      LCALL BLANK

      MOV DISP_WD,#C0H 
      LCALL DDATC_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#57H     ;W
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#4FH    ;O
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#52H    ;R
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#4CH    ;L 
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC

      MOV DISP_WD,#44H    ;D
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC

      LCALL BLANK
      LCALL BLANK
      LCALL BLANK
      RET

BLANK:
      MOV DISP_WD,#20H
      LCALL DDATD_WR
      LCALL DELAY_150MCSEC
      RET

DELAY_150MCSEC:
      MOV R0,#4BH
      DJNZ R0,$
      RET
DELAY_5MSEC:
      MOV R2,#22H
DLY:
      LCALL DELAY_150MCSEC
      DJNZ R2,DLY
      RET
DELAY_60MCSEC:
      MOV R0,#1FH
      DJNZ R0,$
      RET
DELAY_400MCSEC:
      MOV R6,#07H
DLY400:
      LCALL DELAY_60MCSEC
      DJNZ R6,DLY400
      RET
END;

⌨️ 快捷键说明

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