见图片!
代码供大家参考!
#include<reg52.h>
#define unchar unsigned char
#define unint  unsigned int
unchar nb,ww,x;
sbit SCL=P1^1;
sbit SDA=P1^2;
sbit RS=P2^4;
sbit RW=P2^5;
sbit EN=P2^6;
void dslcd_wradd(unchar com);
void dslcd_wrdate(unchar date);
void lcd_xy(unchar aa,unchar bb);
void init_1602();
unchar code tebol[]={"   www.eepwcom.cn.welcom to MCUDIY-51   "};
void delay(unint z)
{
 unint x,y;
 for(x=z;x>0;x--)
    for(y=120;y>0;y--);
 
 }
void main()
{ 
 SCON=0x50; //串口方式1,允许接收
 T2CON=0x34; //设定时器2 开始计数 
  RCAP2H = 0xFF;
  RCAP2L = 0xD9;//设定波特率为9600
  TR2=1;//启动定时器2
  ES=1;
  EA=1;
  init_1602();
  lcd_xy(1,2);
  for(x=0;x<40;x++)
  {
   dslcd_wrdate(tebol[x]);
   }
  lcd_xy(2,2); 
  
 while(1)
 {
  
  
  } 
  
 
 }
 
void uart0() interrupt 4
{
 
  ww=SBUF;   
  if(RI==1)
  {
   RI=0;
   REN=0;
   //delay(1);
   SBUF=ww;
   REN=1;
   dslcd_wrdate(ww);
  }  
 
 } 
void dslcd_wradd(unchar com)
{
 RS=0;
 RW=0;
 EN=0;
 P0=com;
 delay(2);
 EN=1;
 delay(2);
 EN=0; 
} 
 
void dslcd_wrdate(unchar date)
{
 RS=1;
 RW=0;
 EN=0;
 P0=date;
 delay(2);
 EN=1;
 delay(2);
 EN=0; 
} 
  
 
void lcd_xy(unchar aa,unchar bb)
{
 unchar k;
 if(aa==1)
 k=0x80+bb;  
 else
 k=0xC0+bb; 
 dslcd_wradd(k);
 delay(20);
} 
void init_1602()
{
 dslcd_wradd(0x38);
 delay(5);
 dslcd_wradd(0x01);
 delay(5);
 dslcd_wradd(0x06);
 delay(5);
 dslcd_wradd(0x0d);
 delay(2);
 } 
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |
			
			
			
						
			
										
										
 我要赚赏金
