找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2574|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

關(guān)于12864液晶顯示的代碼問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
#include <reg51.h>
#include <intrins.h>
#include <stdlib.h>       
#define uchar unsigned char
#define uint  unsigned int
#define LCD_data  P0      
sbit LCD_RS  =  P2^0;         
sbit LCD_RW  =  P2^1;           
sbit LCD_EN  =  P1^2;         
sbit LCD_PSB =  P2^6;         
uchar dis1[10];
uchar code dis2[] = {"www.txmcu.com"};
uchar code dis3[] = {"龍卷風(fēng)"};
uchar code dis4[] = {"--------"};
void cls_buzz(void)
{
        P2 = (P2&0x1f|0xA0);
        P0 = 0x00;
        P2 = 0x1f;
       
        P2 = (P2&0x1f|0x80);
        P0 = 0xff;
        P2 = 0x1f;
       
        P2 = (P2&0x1f|0xc0);
        P0 = 0x00;
        P2 = 0x1f;

        P2 = (P2&0x1f|0xe0);
        P0 = 0xff;
        P2 = 0x1f;
}

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

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

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

void lcd_pos(uchar X,uchar Y)
{                          
   uchar  pos;
   if (X==0)
     {X=0x80;}
   else if (X==1)
     {X=0x90;}
   else if (X==2)
     {X=0x88;}
   else if (X==3)
     {X=0x98;}
   pos = X+Y ;  
   write_cmd(pos);
}

void makerand()
{
        uint ran;
        ran=rand();
        dis1[0]=ran/10000+0x30;       
        dis1[1]=ran%10000/1000+0x30;
        dis1[2]=ran%1000/100+0x30;
        dis1[3]=ran%100/10+0x30;
        dis1[4]=ran%10+0x30;
        ran=rand();
        dis1[5]=ran/10000+0x30;       
        dis1[6]=ran%10000/1000+0x30;
        dis1[7]=ran%1000/100+0x30;
        dis1[8]=ran%100/10+0x30;
        dis1[9]=ran%10+0x30;

}

void lcd_init()
{
    LCD_PSB = 1;         //2¢¿ú·½ê½  
    write_cmd(0x30);      //»ù±¾Ö¸áî2ù×÷
    delay_1ms(5);
    write_cmd(0x0C);      //ÏÔ꾿a£¬1Ø1a±ê
    delay_1ms(5);
    write_cmd(0x01);      //Çå3yLCDμÄÏÔê¾ÄúèY
    delay_1ms(5);
}

void main()
{
    uchar i;
                cls_buzz();
    delay_1ms(10);      
    lcd_init();                  
    lcd_pos(1,0);      
    while(dis2[i] != '\0')
    {
       write_dat(dis2[i]);      
       i++;
    }
        lcd_pos(2,0);      
    i = 0;
    while(dis3[i] != '\0')
    {
       write_dat(dis3[i]);  

    }
        lcd_pos(3,0);           
    i = 0;
    while(dis4[i] != '\0')
    {
       write_dat(dis4[i]);   
       i++;
    }
    while(1)
        {
                lcd_pos(0,0);
                makerand();
                for(i=0;i<10;i++)
                {
                    write_dat(dis1[i]);
                }
        }
}

原代碼如上,用12864液晶顯示三行數(shù)據(jù)
代碼是例程,我就改了sbit的端口數(shù)據(jù),因?yàn)槭窃诹硪粔K板子上弄
但是怎么都沒(méi)顯示
求指教~


QQ圖片20170704123810.png (5.25 KB, 下載次數(shù): 39)

修改端口的LCD原理圖

修改端口的LCD原理圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213766 發(fā)表于 2017-7-4 12:55 | 只看該作者
自己回復(fù)自己。。問(wèn)題已解決,是硬件問(wèn)題
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表