12864显示问题,谁能帮我看一下!!谢谢!

2019-07-15 17:07发布

#include <STC12C5A60S2.H>
#define uchar unsigned char
#define uint unsigned int
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_EN=P4^5;
sbit Busy=P0^7;



void delay_ms(uint x)
{
        int i,j;
        for(j = 0; j < x; j++)
        {
                for(i = 0; i < 110; i++)
                {
                  }
        }
}


void mang(void)
{
   while(1)
   {LCD_RS=0;
    LCD_RW=1;
   LCD_EN=0;
   P0=0xFF;
   LCD_EN=1;
   if((P0&Busy)==0)
   break;
   }
   }


void write_dat(uchar dat)
{
    mang();
        LCD_RS=1;
        LCD_RW=0;
        LCD_EN=1;
        delay_ms(5);
        P0=dat;
        delay_ms(5);
        LCD_EN=0;
}


void write_cmd(uchar cmd)
{
        LCD_RS=0;
        LCD_RW=0;
        LCD_EN=1;
        delay_ms(5);
        P0=cmd;
        delay_ms(5);
        LCD_EN=0;
}


void lcd_init()
{
        write_cmd(0x30);//基本操作指令
        delay_ms(5);
        write_cmd(0x0c);//打开显示,光标关闭
        delay_ms(5);
        write_cmd(0x01);//清除LCD显示类容
        delay_ms(5);
}
void display(uchar x,uchar y,uchar *seg)
{
   uchar i;
   uint t=0;
   switch(x)
   {
       case 1: i=0x80; break;    //第一行   
           case 2: i=0x90; break;     //第二行   
           case 3: i=0x88; break;     //第三行   
           case 4: i=0x98; break;     //第四行   
           default : break;
            }  
            i=i+y-1;     //确定列号  
            write_cmd(i);  
            while(seg[t]!='')
            {
                   write_dat(seg[t]); //写入需要显示字符的显示码   
                   t++;
                    }
                }


uchar code string_1[]="hi";
main()
{
        lcd_init();
                display(1,2,string_1);
                while(1);
                }

SCH-2_3.pdf 下载积分: 积分 -1 分
138.77 KB, 下载次数: 4, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。