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

📄 1602程序asm.txt

📁 lcd1602的asm液晶点亮通用程序
💻 TXT
字号:
RS BIT P1.0
RW BIT P1.1
E  BIT P1.2
ORG 0000H
     AJMP START
ORG 000BH
     AJMP INSE
ORG 0100H             ;程序地址
START:  MOV TMOD,#00H    ;设置计时/计数模式
       MOV TL0,#00H      ;#00H-->计时0低位
       MOV TH0,#00H      ;#00H-->计时0高位
       SETB EA           ;开中断
       SETB ET0        ;中断使能
       SETB TR0        ;计时0开绐
       MOV 50H,#32H      ;#32H-->50H
       MOV SP,#60H       ;#60h-->SP 地址指针
       ACALL INIT        ;调 INIT 子程序   ( LCD 模式设置)
       ACALL QLCD         ;调清屏子程序
       MOV A,#80H        ;#80H-->A (设LCD地址第一行第一列)
       ACALL WIR         ;调写IR子程序
       MOV DPTR,#L1      ;#L1-->DPTR
       ACALL PWDR        ;调批量写DR子程序
       MOV A,#0C0H       ;#0C0H-->A (设LCD地址第二行第一列)
       ACALL WIR         ;调写 IR 子程序
       MOV DPTR,#L2      ;#L2-->DPTR
       ACALL PWDR        ;调批量写DR子程序
LOOP:   AJMP LOOP        ;转LOOP
INSE:   MOV TL0,#00H     ;#00H-->计时0低位
       MOV TH0,#00H      ;#00H-->计时0高位
       DJNZ 50H,INSE0    ;50H-1 不等于0转INSE0
       MOV 50H,#32H      ;#32H-->50H
INSE0:  RETI          ;中断返回
INIT:   MOV A,#38H       ;#38H-->A (使用8Bits汇流排,显示2行5*7字符)
       LCALL WIR         ;调写IR子程序
       MOV A,#0EH        ;#0EH-->A (显示开,光标开,光标闪烁)
       LCALL WIR         ;调写IR子程序
       MOV A,#06H        ;#06H-->A (字符不动,光标自动右移一格)
       LCALL WIR         ;调写IR子程序
       RET               ;返回
CKLCD:  PUSH Acc         ;Acc进栈
CK00:   CLR RS           ;RS 清 0
        SETB RW          ;RW 置 1
        CLR E            ;E 清 0
       SETB E            ;E 置 1
       MOV A,P0       ;P0-->A
       CLR E          ;E 清 0
       JB Acc.7,CK00     ;Acc.7=1 转 CK00
       POP Acc           ;Acc 出栈
       ACALL STS00       ;调延时子程序 STS00
       RET               ;返回
WIR:    ACALL CKLCD         ;调查空闲子程序
       CLR E          ;E 清 0
       CLR RS            ;RS 清 0
       CLR RW            ;RW 清 0
       SETB E            ;E 置 1
       MOV P0,A       ;A-->P0
       CLR E          ;E 清 0
       RET               ;返回
WDR:    ACALL CKLCD         ;调查空闲子程序
       CLR E          ;E 清 0
       SETB RS           ;RS 置 1
       CLR RW            ;RW 清 0
       SETB E            ;E 置 1
       MOV P0,A       ;A-->P0
       CLR E          ;E 清 0
       RET               ;返回
STS00:  MOV 52H,#05H     ;#05H-->52H
STS001: MOV 51H,#0F8H    ;#0F8H-->51H
       DJNZ 51H,$        ;51H-1不等于0转再-1
       DJNZ 52H,STS001      ;51H-1不等于0转STS001
       RET               ;返回
QLCD:   MOV A,#01H       ;#01H-->A
       ACALL WIR         ;调写IR子程序
       RET               ;返回
PWDR:   PUSH Acc         ;Acc进栈
PWDR1:  CLR A            ;A 清 0
       MOVC A,@A+DPTR    ;A+DPTR-->A
       JZ PEND           ;A=0 转 PEND
       ACALL WDR         ;调写DR子程序
       INC DPTR       ;DPTR+1
       AJMP PWDR1        ;转 PWDR1
PEND:  POP Acc           ;Acc 出栈
        RET              ;返回
L1:     DB 20H,4EH,61H,74H,69H,65H,62H,20H,45H,6CH,65H,63H,74H,72H,6FH,6EH,00H
L2:    DB 7EH,6EH,61H,74H,69H,65H,6DH,40H,32H,31H,63H,6EH,2EH,63H,6FH,6DH,00H
       END




































⌨️ 快捷键说明

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