请大家帮忙分析一下我这个1602四线程序,下载之后没有显示,不知怎么回事了

2019-03-24 17:50发布

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
                                                                      
sbit lcdrs=P0^0;                                                  
sbit lcdrw=P0^1;                                                   
sbit lcden=P0^2;   

#define lcd_date P0

uchar code table1[]="   stckuj    ";
uchar code table2[]="  wwtyinu  ";

void delay(uint x)                                                
{
           uint i,j;
           for(i=x;i>0;i--)
                 for(j=110;j>0;j--);
}

void Lcd_1602_write_com(uchar com)                    
{
                        delay(20);
                        lcdrw=0;
                        lcdrs=0;
                        lcden=0;
                        delay(20);
                        lcd_date=(com&0xf0);
                        delay(20);
                        lcden=1;
                        delay(20);
                        lcden=0;
                        lcd_date=(com&0x0f)<<4;
                        delay(20);
                        lcden=1;
                        delay(20);
                        lcden=0;   
}

void Lcd_1602_write_date(uchar date)
{
                                delay(20);
                                lcdrw=0;
                                lcden=0;
                                lcdrs=1;
                                delay(20);
                                lcd_date=(date&0xf0);
                                delay(20);
                                lcden=1;
                                delay(20);
                                lcden=0;
                                lcd_date=(date&0x0f)<<4;
                                delay(20);
                                lcden=1;
                                delay(20);
                                lcden=0;
                                delay(20);
}
void Lcd_1602_init()
{   
        lcd_date=0;         
          delay(20);
    Lcd_1602_write_com(0x28);   
                delay(20);
                Lcd_1602_write_com(0x28);   
                delay(20);
                Lcd_1602_write_com(0x28);   
                delay(20);
         
         
                Lcd_1602_write_com(0x28);           
    delay(20);                          
    Lcd_1602_write_com(0x0c);
                delay(20);
    Lcd_1602_write_com(0x06);  
                delay(20);          
    Lcd_1602_write_com(0x01);
                delay(20);           
}

void main()
{   
        uchar num;
         Lcd_1602_init();            
         Lcd_1602_write_com(0x80);
         for(num=0;num<16;num++)
                                                {      
                                                        Lcd_1602_write_date(table1[num]);      
                                                        delay(20);
                                                }
                        Lcd_1602_write_com(0xc0);                    
    for(num=0;num<16;num++)
                                {
                                        Lcd_1602_write_date(table2[num]);
                                        delay(20);
                                }
     while(1);
}



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
huaiqiao
1楼-- · 2019-03-26 12:11
 精彩回答 2  元偷偷看……
dcexpert
2楼-- · 2019-03-26 12:46
你的液晶是3V还是5V的?即使程序正确,如果电压不对,显示效果也会不同。这个情况遇到过一次。
18811707971
3楼-- · 2019-03-26 17:10
dcexpert 发表于 2015-10-14 21:14
你的液晶是3V还是5V的?即使程序正确,如果电压不对,显示效果也会不同。这个情况遇到过一次。

5V的,电压应该是没错的
18811707971
4楼-- · 2019-03-26 19:44
 精彩回答 2  元偷偷看……
huaiqiao
5楼-- · 2019-03-26 20:01
18811707971 发表于 2015-10-14 22:12
好的,还是谢谢你

你如果需要的话,我可以丢给你一个我之前写过的。您可以参考下。
18811707971
6楼-- · 2019-03-26 23:42
huaiqiao 发表于 2015-10-14 22:20
你如果需要的话,我可以丢给你一个我之前写过的。您可以参考下。

可以的,那非常感谢,我参考学习一下。我邮箱:18811707971@163.com
谢谢

一周热门 更多>