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

📄 lcd_progaram.txt

📁 此文件为单片机控制LCD1602的液晶显示程序
💻 TXT
字号:
 lcd_rs bit P3.4    ;LCD寄存器选择
 lcd_rw bit P3.3    ;LCD读写控制
 lcd_e bit P3.2     ;LCD选通
 beep   bit p3.7
 
 lcdio equ P1

 lcdbusy equ 33H    ;LCD忙寄存
 lcddata equ 34H    ;LCD传递数据

 ORG 0000H
 jmp main    ;复位入口,转主程序



  ORG 030H
Main:  mov sp,#50H  ;设置堆栈指针
       mov dptr,#char1
       clr beep
       lcall delay
       lcall delay
       lcall lcd_init  ;调液晶初始化
       lcall lcd_sendchar


loop:
       nop
       Ajmp loop
  




delay: mov r3,#50   ;延时程序
delay_loop:
       mov r4,#50
       djnz r4,$
       djnz r3,delay_loop
       ret


lcd_init:           ;液晶初始化程序
lcd_init_1:
       lcall lcd_readbusy
       mov a,lcdbusy
       cjne A,#0,lcd_init_1
       mov lcddata,#38H
       lcall lcd_writecomm
       lcall delay

lcd_init_2:
       lcall lcd_readbusy
       mov a,lcdbusy
       cjne A,#0,lcd_init_2
       mov lcddata,#06H
       lcall lcd_writecomm
       lcall delay

lcd_init_3:
       lcall lcd_readbusy
       mov a,lcdbusy
       cjne A,#0,lcd_init_3
       mov lcddata,#0dH
       lcall lcd_writecomm
       lcall delay

lcd_init_4:
       lcall lcd_readbusy
       mov a,lcdbusy
       cjne A,#0,lcd_init_4
       mov lcddata,#01H
       lcall lcd_writecomm
       lcall delay
       ret

lcd_writecomm:       ;写命令
       clr lcd_rs
       nop
       clr lcd_rw
       nop
       mov lcdio,lcddata
       nop
       setb lcd_e
       nop
       clr lcd_e

       ret


lcd_writedata:       ;写数据
       setb lcd_rs
       nop
       clr lcd_rw
       nop
       mov lcdio,lcddata
       nop
       setb lcd_e
       nop
       clr lcd_e

       ret

lcd_readdata:        ;读数据
       setb lcd_rs
       nop
       setb lcd_rw
       nop
       setb lcd_e
       nop
       mov lcdbusy,lcdio
       clr lcd_e
       ret

lcd_readbusy:        ;读忙
       clr lcd_rs
       nop
       setb lcd_rw
       nop
       setb lcd_e
       nop
       mov lcdbusy,lcdio
       clr lcd_e  
       anl lcdbusy,#80H
       ret

lcd_sendchar:        ;发送字符
lcd_sendchar_1:       
       lcall lcd_readbusy
       mov a,lcdbusy
       cjne A,#0,lcd_sendchar_1
       mov lcddata,#80H;
       lcall lcd_writecomm
       lcall delay
       mov r1,#16

lcd_sendchar_2:       
       lcall lcd_readbusy
       mov a,lcdbusy
       cjne A,#0,lcd_sendchar_2
       CLR A
       movc A,@A+DPTR
       Inc dptr
       mov lcddata,A
       lcall lcd_writedata
       lcall delay
       djnz r1,lcd_sendchar_2


lcd_sendchar_3:
       lcall lcd_readbusy
       mov a,lcdbusy
       cjne A,#0,lcd_sendchar_3
       mov lcddata,#0c0H;
       lcall lcd_writecomm
       lcall delay
       mov r1,#16
       mov dptr,#char2

lcd_sendchar_4:       
       lcall lcd_readbusy
       mov a,lcdbusy
       cjne A,#0,lcd_sendchar_4
       CLR A
       movc A,@A+DPTR
       Inc dptr
       mov lcddata,A
       lcall lcd_writedata
       lcall delay
       djnz r1,lcd_sendchar_4


       ret

char1:
      DB 'WelcomeTo ......';

char2:
      DB ' www.mcubase.com ';


   END

⌨️ 快捷键说明

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