微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 1602液晶中代码0x07整屏左移的用法,求助!

1602液晶中代码0x07整屏左移的用法,求助!

时间:10-02 整理:3721RD 点击:
/*************************
编程者:
编程时间:
替代版本:
编程环境:尅了uV4 9.0
*************************/
/******************包含头文件**********************/
#include<reg52.h>
/******************宏定义**********************/
#define uchar unsigned char
#define uint unsigned int
/******************定义引脚**********************/
sbit dula=P2^6;
sbit wela=P2^7;
sbit lcdrw=P1^1;
sbit lcdrs=P1^0;
sbit lcden=P2^5;
/******************定义变量、数组**********************/
uchar code table[]="Hello everyone!";
uchar code table1[]="Welcome to here!";
/*************************
函数功能:延时函数
输入参数:xms
输出参数:
*************************/
void delay(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}
/*************************
函数功能:写命令函数
输入参数:come
输出参数:
*************************/
void write_come(uchar come)
{
        lcdrs=0;
        P0=come;
        lcden=1;
        delay(5);
        lcden=0;
}
/*************************
函数功能:写数据函数
输入参数:data0
输出参数:
*************************/
void write_data(uchar data0)
{
        lcdrs=1;
        P0=data0;
        lcden=1;
        delay(5);
        lcden=0;
}
/*************************
函数功能:初始化函数
输入参数:
输出参数:
*************************/
void initial()
{
        lcdrw=0;
        dula=0;
        wela=0;
        lcden=0;
        write_come(0x38);
        write_come(0x0f);
       
        write_come(0x07);//整屏左移,移动速度太快,光标跟在后面  ?
        write_come(0x01);
}
/*************************
函数功能:主函数
输入参数:
输出参数:
*************************/
void main()
{
        uchar num;
        initial();
        write_come(0x80+0x10);                //?+0x10在屏幕中间?
        for(num=0;num<15;num++)
        {
                write_data(table[num]);
                //delay(5);               
                delay(200);
        }          
        write_come(0x80+0x50);                //指针和光标在什么位置?
        for(num=0;num<24;num++)
        {
                write_data(table1[num]);
                //delay(5);                          
                delay(200);
        }          
        while(1);  
}
问题:第一行显示与第二行的显示有冲突,第一行的显示没有问题,二第二行数据只在第一个地址位一个一个字符的出现,只有在把显示第一行数据的代码【屏蔽掉,第二行才会正常显示,求助!

这样肯定有问题呀!

整屏左移的代码是0x18吧,你是不是复制别人的程序

整屏左移也是命令,用一次移动一下

整屏左移有两种方式的

哇,13年的帖子,不知道我现在回答你还能不能看得见,两年时间可以改变很多!
write_come(0x80+0x50); 在这行语句之前加一句,write_come(0x02);

去年回的帖子 我想知道这是为什么 人还在吗

0x07  是自动左移,写入数据时,在前面写一次命令就够了;
0x18  一次左移,每一次写数据前,都要配一次

0x01 吧

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

网站地图

Top