找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3749|回复: 4
收起左侧

1602第二行不能显示,程序有问题??

[复制链接]
ID:53308 发表于 2013-10-3 22:34 | 显示全部楼层 |阅读模式

原程序如下想在1602显示屏下行显示字符,用了WriteCom命令写0x80+0x40,操作,不能在下行显示,请大神们指教下那里写错了。谢谢


#include<reg51.h>

#define GPIO_LCD P0                        //Data IO

sbit RS=P2^6;                                //RS data:H,Com:L
sbit RW=P2^5;                                //RW read:H,Write:L
sbit LCDE=P2^7;                                //LCDE delay,H,delay,L

void IntLCD();                                //Int LCD,command
void WriteCom(unsigned char);                        //
void WriteDat(unsigned char);
void Delay(unsigned int);
unsigned char code HelloYu[]="Hello!Li Ai Dang";

void main(void)
{
unsigned char i=0;
        IntLCD();                                   // use int LCD first
        //while(1)                           //putout Data to IO
        //{                                           // 16th times
        for(;i<16;i++)
        WriteDat(HelloYu);
        //}
        while(1)
        {
        }
}

/*********************************************
*函数名称:WriteCom
*功能:写命令
*
***********************************************/
void WriteCom(unsigned char n)
{
RS=0;
RW=0;
GPIO_LCD=n;
Delay(10);
LCDE=1;
Delay(10);
LCDE=0;
}

/*********************************************
*函数名称:WriteDat
*功能:写数据
*
***********************************************/
void WriteDat(unsigned char m)
{
RS=1;
RW=0;
GPIO_LCD=m;
Delay(10);
LCDE=1;
Delay(10);
LCDE=0;
}
/*********************************************
*函数名称:IntLCD
*功能:初始化LCD
*
***********************************************/
void IntLCD()
{
WriteCom(0x38);               //设置16*2,5*7的显示
WriteCom(0x0c);                   //设置下划线不显示,块状光标显示
WriteCom(0x06);                   //写一个指针加1
WriteCom(0x01);                   //清屏幕
WriteCom(0x80+0x40);                   //设置指针起始位置??俺设置了T_T,LCD不理我
}
/*********************************************
*函数名称:Delay
*功能:延时函数
*
***********************************************/
void Delay(unsigned int c)
{
unsigned char a,b;
for(;c>0;c--)
        for(a=1;a>0;a--)
                for(b=22;b>0;b--);
}

回复

使用道具 举报

ID:53205 发表于 2013-10-4 22:25 | 显示全部楼层
肯定不显示啦,你的写数据的子函数的参数又不是指针变量,你应该写成WriteDat(HelloYu[i]);
回复

使用道具 举报

ID:55675 发表于 2013-10-7 14:18 | 显示全部楼层
接我试试
回复

使用道具 举报

ID:55947 发表于 2013-10-15 00:32 | 显示全部楼层
piaogu
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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