打印

单片机1602的显示问题

[复制链接]
1148|3
手机看帖
扫描二维码
随时随地手机跟帖
沙发
fmzhangpei241| | 2013-10-27 10:38 | 只看该作者
这种代码很多参考程序的,看看别人的程序就可以了

使用特权

评论回复
板凳
ballack_linux| | 2013-10-27 10:40 | 只看该作者
好久没玩1602了 当时也没测试过1分钟的延时 你试试我的程序
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P2^2;
sbit lcdrs=P2^0;
sbit dula=P2^6;
sbit wela=P2^7;
uchar i;
uchar code table[]="I love China!" ;
uchar code table1[]="Me too.";
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void init()
{
        dula=0;
        wela=0;
        lcden=0;
}               
void write_lcd(uchar com,bit j)
{
        lcdrs=j;
        P0=com;
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
}       
void display_lcd(bit y,uchar x,uchar value)
{
        x&=0x0f;
        if(y)
        {
                 x+=0x40;
        }
        x+=0x80;
        write_lcd(x,0);
        write_lcd(value,1);

}
void main()
{
        init();       
        write_lcd(0x38,0);                         //        显示模式设置
        write_lcd(0x0c,0);                         // 显示开/关及光标设置                                                            
        write_lcd(0x01,0);                         // 使用前先将数据指针和所有显示清零

        for(i=0;i<13;i++)
        {
                display_lcd(0,i,table[i]);
                delay(5);
        }
        for(i=0;i<7;i++)
        {
                display_lcd(1,i+9,table1[i]);
                delay(5);
        }
        while(1);                                                 //使显示固定
}       

使用特权

评论回复
地板
lzqxs89| | 2013-10-28 10:34 | 只看该作者
应该是你程序逻辑有些问题,仔细检查下!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝