找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9870|回复: 0
收起左侧

1602液晶怎样滚动显示

[复制链接]
ID:80093 发表于 2015-5-16 19:45 | 显示全部楼层 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LIKE MCU!";
uchar code table1[]="WWW*TXMCU*COM";
sbit LCD1602_E=P2^7;  // 使能
sbit RW=P2^5;  // 选择写入
sbit LCD1602_RS=P2^6; // 选择发送命令
uchar num,bb;
void delay(uint z)
{
        uint x,y;
                for(x=z;x>0;x--)
                        for(y=110;y>0;y--);
}
void write_com(uchar com) //写命令
{
  LCD1602_RS=0;          //使能
  P0=com;             //赋值              //P0口接液晶屏
  delay(5);
  LCD1602_E=1;
  delay(5);
  LCD1602_E=0;

}
void write_data(uchar date)        //写数据
{
  LCD1602_RS=1;
  P0=date;
  delay(5);
  LCD1602_E=1;
  delay(5);
  LCD1602_E=0;

}
void init()   //初始化
{
  LCD1602_E=0;
  write_com(0x38);
  write_com(0x0e);
  write_com(0x06);
  write_com(0x01);
  write_com(0x80+0x10);        // 第一行地址 指针
}
void main()
{
   RW=0;  //选择写入为低电平
   init();

   for(num=0;num<11;num++)
   {
                   write_data(table[num]);
                delay(20);
   }
           //        write_com(1); // 清屏
                   write_com(0x80+0x53); // 第二行地址 指针        
      for(num=0;num<13;num++)
   {
                   write_data(table1[num]);
                delay(20);
   }
            
        while(1)
        {

      for(num=0;num<10;num++)
        {                                                        
                write_com(0x18); //从右往左开始流动10位
                delay(100);
        }            
                write_com(1); //清屏    去掉这个清屏就可以从右往左流动,
                        
        }        
   }

        //   我要的效果: 我要从右往左流动10位就清屏,从新开始从右往左流动

                        //    搞不定  请问怎么弄谢谢了!!!!   

QQ图片20150515173152.jpg

新建文本文档.rar

862 Bytes, 下载次数: 61

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表