lcd1602中文资料分享:lcd1602接线图_lcd1602与单片机连接图
48,8,pi); //pai
Write1602_Str(0x80,strlen(strMCU),strMCU); //"I love MCU!"
Write1602_Str(0x80+0x40,strlen(strTest),strTest); //"LCD1602 Test!"
for(i=0;i《50;i++) //延时一段时间
Delay(10000);
Write1602_Com(CLEAR); //指令执行时间较长
Delay(500); //多加一些延时
for(i=0;i《16;i++)
Write1602_Dat(0);
Write1602_Com(0xc0); //设置DDRAM地址
for(i=0;i《16;i++)
Write1602_Dat(1);
for(i=0;i《50;i++) //延时一段时间
Delay(10000);
Write1602_Com(CLEAR); //指令执行时间较长
Delay(500); //多加一些延时
Write1602_Str(0x80+0x10,strlen(blog),blog); //写在显示之外
while(1)
{
Write1602_Com(0x18); //左移
for(i=0;i《20;i++) //延时
Delay(10000);
}
}
//####### THE END ######
lcd1602与单片机连接图----LCD1602与8051单片机接线图
下图是LCD1602与8051单片机的接口图,图中LCD1602的数据线与8051的P2口相连,RS与8051的P1.7相连,R/W与8051的P1.6相连,E端与8051的P1.5相连。编程在LCD显示器的第1行、第1列开始显示"HOW",第2行、第5列开始显示"ARE YOU!"。
LCD1602与8051单片机接线图
汇编语言程序:
RS BIT P1.7
RW BIT P1.6 E BIT P1.5 ORG 00H AJMP START
ORG 50H ;主程序
START: MOV SP,#50H ACALL INIT
MOV A,#10000000B ;写入显示缓冲区起始地址为第1行第1列 ACALL WC51R
MOV A,#‘H’ ;第1行第1列显示字母‘H’ ACALL WC51DDR MOV A,#‘O’ ;第1行第2列显示字母"O" ACALL WC51DDR MOV A,#‘W’ ;第1行第3列显示字母‘W’
ACALL WC51DDR
MOV A,#11000100B ;写入显示缓冲区起始地址为第2行第5列 ACALL WC51R
MOV A,#‘A’ ;第2行第5列显示字母‘A’ ACALL WC51DDR MOV A,#‘R’ ;第2行第6列显示字母‘R’ ACALL WC51DDR MOV A,#‘E’ ;第2行第7列显示字母‘E’ ACALL WC51DDR MOV A,#‘ ’ ;第2行第8列显示字母‘ ’ ACALL WC51DDR MOV A,#‘Y’
;第2行第9列显示字母‘Y’
ACALL WC51DDR
MOV A,#‘O’ ;第2行第10列显示字母‘O’ ACALL WC51DDR MOV A,#‘U’ ;第2行第11列显示字母‘U’ ACALL WC51DDR MOV A,#‘!’
;第2行第12列显示字母‘!’
ACALL WC51DDR LOOP: AJMP LOOP ;初始化子程序
INIT: MOV A,#00000001H ;清屏
ACALL WC51R MOV A,#00111000B ;使用8位数据,显示两行,使用5×7的字型 LCALL WC51R MOV A,#00001100B ;显示器开,光标关,字符不闪烁 LCALL WC51R MOV A,#00000110B
;字符不动,光标自动右移一格
LCALL WC51R RET ;检查忙子程序 F_BUSY:PUSH ACC ;保护现场
MOV P2,#0FFH CLR RS SETB RW WAIT: CLR E SETB E JB P2.7,WAIT
;忙,等待
POP ACC ;不忙,恢复现场
RET ;写入命令子程序 WC51R: ACALL F_BUSY CLR E CLR RS CLR RW SETB E MOV P2,ACC CLR E RET ;写入数据子程序 WC51DDR:ACALL F_BUSY CLR E SETB RS CLR RW SETB E MOV P2,ACC CLR E RET END
C语言编程:
#include 《reg51.h》
#define uchar unsigned char sbit RS=P1^7; sbit RW=P1^6; sbit E=P1^5;
void init(void);
void wc51r(uchar i); void wc51ddr(uchar i); void fbusy(void);
//主函数
void main() {
SP=0x50; init();
wc51r(0x80); //写入显示缓冲区起始地址为第1行第1列 wc51ddr(’H’); //第1行第1列显示字母’H’ wc51ddr(’O’); //第1行第2列显示字母’O’ wc51ddr (’W’); //第1行第3列显示字母’W’
wc51r(0xc4); //写入显示缓冲区起始地址为第2行第5列 wc51ddr(’A’); //第2行第5列显示字母’A’ wc51ddr(’R’); //第2行第6列显示字母’R’ wc51ddr(’E’); //第2行第7列显示字母’E’ wc51ddr(’ ’); //第2行第8列显示字母’ ’ wc51ddr(’Y’); //第2行第9列显示字
- LCD1602初始化流程图及程序的两种方法(09-08)
- 通用型LCD1602自定义字符的显示(02-12)
- 全方位解析LCD1602特性及单片机显示应用(09-17)
- LCD1602程序代码及显示流程图(09-12)
- 以LCD1602驱动程序为例分析C51单片机编程技巧(08-26)
- lcd1602工作原理是什么?(08-24)