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

QQ登錄

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

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

12864亂碼問(wèn)題求解答

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:74815 發(fā)表于 2016-4-28 19:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
把51的顯示移植到飛思卡爾MC9S08DZ60上,可以顯示,但是是亂碼,亂的一塌糊涂,第幾行都對(duì)不上,程序代碼如下,求高手解答和指點(diǎn),謝謝。


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#include <math.h>



#define  LCD_data  PTED                                           // 引腳定義
#define  LCD_RS PTBD_PTBD0
#define  LCD_RW PTBD_PTBD1
#define  LCD_EN PTBD_PTBD2
#define  LCD_PSB PTBD_PTBD3


byte DIS1[]={"行李分揀系統(tǒng)狀態(tài)"};          
byte DIS2[]={"空位量00000000件"};
byte DIS3[]={"補(bǔ)貨量00000000件"};
byte DIS4[]={"運(yùn)行狀態(tài):fast  "};
byte DIS5[]={"運(yùn)行狀態(tài):slow  "};



byte table[]={'0','1','2','3','4','5','6','7','8','9'};

byte i,numbuf,numbuf1,a,b,c,d,e;

/******************************12864*****************************************************/
void delay_ms(unsigned int ms)                                 //延時(shí)函數(shù)     1ms
{
        unsigned int i,j;
        for(j=0;j<=ms;j++)
        {
                for(i=0;i<=120;i++)
                {}
        }
}
void delay(uint z)
{
        uint x;
        for(x=z;x>0;x--)
        ;
}
                                                          

void LCD_wcmd(uchar cmd)        //寫(xiě)指令函數(shù)
{                          

    LCD_RS = 0;                 //RS至低,指令操作
    LCD_RW = 0;                 //RW至低,寫(xiě)操作
    LCD_EN = 0;
     delay(5);
    PTED = cmd;                        //指令數(shù)據(jù)
          delay(5);                                
    LCD_EN = 1;                        //給使能端一個(gè)上升沿保存數(shù)據(jù)
     delay(5);
    LCD_EN = 0;
    delay(5);   
}



void LCD_wdat(uchar dat)        //寫(xiě)數(shù)據(jù)函數(shù)
{

    LCD_RS = 1;                        //RS至高,數(shù)據(jù)操作
    LCD_RW = 0;
    LCD_EN = 0;
    PTED= dat;                        //給LCD要顯示的數(shù)據(jù)
     delay(5);
    LCD_EN = 1;                        //給使能端一個(gè)上升沿保存數(shù)據(jù)
     delay(5);
    LCD_EN = 0;
    delay(5);  
}

void LCDinit()                 //初始化12864LCD
{     
    LCD_PSB=1;
    LCD_wcmd(0x30);      //初級(jí)指令集
    delay_ms(5);

    LCD_wcmd(0x0C);      //開(kāi)顯示
    delay_ms(5);
    LCD_wcmd(0x01);      //清屏
    delay_ms(5);
}
void  showLCD_12864()
{     
           LCD_wcmd(0x80);  //第一行首地址

        for(i=0;i<16;i++)
        {   
                LCD_wdat(DIS1[i]);
                delay(100);
       
        }

        LCD_wcmd(0x90); //第二行首地址
        for(i=0;i<16;i++)
        {      
                LCD_wdat(DIS2[i]);
                delay(100);
        }


        LCD_wcmd(0x88);  //第三行首地址
        for(i=0;i<16;i++)
        {      
                LCD_wdat(DIS3[i]);
                delay(100);
        }

           LCD_wcmd(0x98);  //第4行首地址
        for(i=0;i<16;i++)
           delay(100);   
        {        if(numbuf==55)
            {
                LCD_wdat(DIS4[i]);
                    }
                        else
                        {
                   LCD_wdat(DIS5[i]);
                        }
        }





}
/******************************按鍵****************************************************/

void  main()
{   
  PTEDD=0xff;                                          // 引腳定義
  PTBDD=0x0f;
     numbuf=55;
   numbuf1=66;
   LCDinit();
for(;;)
{




         showLCD_12864();
          delay_ms(500);
    __RESET_WATCHDOG();      
}
     /* feeds the dog */
  /* loop forever */
  /* please make sure that you never leave main */
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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