请大家帮忙分析一下我这个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);
}



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。