微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > lcd1602中文资料分享:lcd1602接线图_lcd1602与单片机连接图

lcd1602中文资料分享:lcd1602接线图_lcd1602与单片机连接图

时间:07-17 来源: 点击:

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列显示字

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top