久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

不帶字庫的128*64液晶漢字顯示程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2011年03月06日   【字體:

下面是線路連接圖,我自己已經搞了整整一個測試成功了絕對可用


由于篇幅有限完整的c51代碼下載 :http://www.zg4o1577.cn/f/12864wu.rar

源代碼:

#include<reg52.h>
#define LCD P0
unsigned char i,j,k;

sbit EN=P2^0;
sbit RW=P2^1;
sbit RS=P2^2;
sbit CS1=P2^3;
sbit CS2=P2^4;
sbit BUSY=P0^0;
void delay(unsigned char a);



unsigned char code ban[16][16]={
{0x00,0x00,0x00,0xf0,0x90,0x90,0x90,0xfe,0x90,0x90,0x90,0xf0,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x3f,0x24,0x24,0x24,0x27,0x20,0x38,0x00,0x00},//電

{0x00,0x00,0x00,0x00,0x8c,0x88,0x88,0x88,0x88,0xc8,0xa8,0x98,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//子

{0x00,0x00,0x00,0x00,0x10,0x10,0x30,0x54,0x9c,0x90,0x50,0x00,0x30,0x10,0x00,0x00},
{0x00,0x40,0x30,0x0c,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00},//產

{0x00,0x00,0x00,0x00,0x7c,0x44,0x44,0x44,0x44,0x44,0x44,0x7c,0x00,0x00,0x00,0x00},
{0x00,0x00,0x3f,0x21,0x21,0x21,0x3f,0x00,0x00,0x3f,0x21,0x21,0x21,0x3f,0x00,0x00},//品

{0x00,0x00,0x00,0x00,0x0c,0x08,0x08,0x08,0xf8,0x08,0x08,0x08,0x08,0x00,0x00,0x00},
{0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x3f,0x20,0x20,0x20,0x20,0x30,0x00,0x00},//工

{0x00,0x90,0x90,0x88,0xf8,0x84,0x86,0x00,0x7c,0x44,0x44,0x44,0x44,0x7c,0x00,0x00},
{0x40,0x30,0x0c,0x02,0x7f,0x02,0x0c,0x10,0x49,0x49,0x49,0x7f,0x49,0x49,0x00,0x00},//程

{0x00,0x10,0x10,0x10,0xfc,0x90,0x10,0x00,0xd0,0x50,0x50,0x7e,0x50,0xd0,0x50,0x00},
{0x04,0x08,0x04,0x22,0x7f,0x00,0x40,0x20,0x10,0x09,0x06,0x06,0x09,0x10,0x20,0x40},//技

{0x00,0x00,0x10,0x10,0x10,0xd0,0x10,0xfe,0x10,0x50,0x94,0x1c,0x10,0x00,0x00,0x00},
{0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x7f,0x00,0x00,0x00,0x03,0x04,0x18,0x60,0x00},//術  
};

unsigned char code qrs[6][16]={
{0x00,0x00,0xbc,0xe0,0xa0,0xa0,0xe0,0xa0,0x3f,0xa0,0x60,0x20,0x20,0x3c,0x00,0x00},
{0x00,0x00,0x00,0x3f,0x24,0x24,0x3f,0x22,0x11,0x09,0x05,0x07,0x09,0x13,0x20,0x00},//嵌

{0x00,0x00,0x00,0x00,0x02,0x04,0xc8,0x30,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00},
{0x00,0x40,0x20,0x18,0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x06,0x0c,0x30,0x00},//入

--{0x00,0x00,0x00,0x20,0xa0,0xa0,0xa0,0xa0,0xa2,0xa4,0x38,0xe0,0x24,0x2c,0x00,0x00},
{0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x0f,0x09,0x04,0x04,0x00,0x07,0x18,0x20,0x00},//式


};


checkbusy()
{ EN=1;
  RW=1;
  RS=0;
  LCD=0XFF;
  if(BUSY);
}

writecode(unsigned char dat)  //寫命令
{ checkbusy();
  EN=1;
  RW=0;
  RS=0;
  LCD=dat;
  EN=1;
  EN=0;
}
writedata(unsigned char dat)  //寫數據
{ checkbusy();
  EN=1;
  RW=0;
  RS=1;
  LCD=dat;
  EN=1;
  EN=0;
}

void displayhanzi(unsigned char page,unsigned char lineaddress,int n,  unsigned char table[][16])
{
 unsigned char  temp[32];
   if(lineaddress<0X80)
  {CS1=1;
  CS2=0;}//left
 for(j=0;j<n;j++)
    { 
     if(lineaddress>=0X80)
     {
     CS1=0;//right
       CS2=1;
      lineaddress=lineaddress-0X40;
     }
 ////////////////////////////////////////
   for(k=0;k<16;k++)
       {temp[k]=table[j][k];}
   j+=1;
   for(k=0;k<16;k++)
   {temp[16+k]=table[j][k];}     //一個字:占兩個字符,32個數據(temp[32])
///////////////////////////////////////
        writecode(page);
        writecode(lineaddress);
       for(i=0;i<16;i++)
         { writedata(temp[i]);}

       writecode(page+1);
       writecode(lineaddress);
       for(i=16;i<32;i++)
        { writedata(temp[i]);}   //寫一個字:每頁16個數據
////////////////////////////////////////////////
  lineaddress+=16;


  delay(200);
 
 
    }

}

void clear()
{
     unsigned char b=0x40,c,d;
   for(c=0;c<4;c++)
    {
     for(a=0;a<8;a++)
       {
         switch(c)
          {
             case 0:d=0xb8;break;
             case 1:d=0xba;break;
             case 2:d=0xbc;break;
             default:d=0xbe;
          }
         displayhanzi(d,b,2,&lin);
         b+=0x10;
       } 
     b=0x40; 
    }
}
void lcdinti()
{     writecode(0X3f);//顯示開關關
    writecode(0XC0);//修改顯示起始行
    writecode(0XB8);//修改頁地址,x地址
    writecode(0X40);//修改列地址,y地址
     
}
void delay(unsigned char a)
 {
 unsigned char i,j;
 for(i=0;i<a;i++)
  for(j=0;j<200;j++)
   ;
 }
 
main()
{ 
  lcdinti();
  clear();

 while(1)
 {

displayhanzi(0XB8,0X40,12,&xx);
displayhanzi(0XBa,0X40,16,&ban);
displayhanzi(0XBc,0X60,6,&zjy);
displayhanzi(0XBe,0X60,6,&qrs);
delay(200);
clear();

displayhanzi(0XB8,0X40,12,&xx);
displayhanzi(0XBa,0X40,16,&ban);
displayhanzi(0XBc,0X60,4,&sg);
displayhanzi(0XBe,0X60,6,&qrs);
delay(200);
clear();
                    
displayhanzi(0XB8,0X40,12,&xx);
displayhanzi(0XBa,0X40,16,&ban);
displayhanzi(0XBc,0X60,6,&qrs);
displayhanzi(0XBe,0X60,8,&jqyk);      

        delay(200);
  delay(200);
  delay(200);
  delay(200);
  delay(200);
     delay(200);
  delay(200);
  delay(200);
        clear();

}
}

 匯編源代碼:
完整代碼下載:http://www.zg4o1577.cn/f/12864wuasm.rar

ORG 0100H

EN  BIT  0A0H       ;sbit EN=P2^0;  
RW  BIT  0A1H       ;sbit RW=P2^1;
RS  BIT  0A2H       ;sbit RS=P2^2;
CS1 BIT  0A3H       ;sbit CS1=P2^3;
CS2 BIT  0A4H 
BUS BIT 80H

START:
      CLR   CS1
      CLR   CS2 
      CALL  INIT
      CALL  CLEAR
      CALL  HANZI  
      SJMP  $

      
      
WRITEDATA:        ;入口參數R1
      PUSH  PSW
      PUSH  ACC

      SETB EN
      CLR  RW
      SETB RS
NOP
      MOV  P0,R1 
NOP       
      SETB EN
NOP
NOP
      CLR  EN
      POP   ACC
      POP   PSW
      RET
 
WRITECODE:       ;入口參數R2
      PUSH  PSW
      PUSH  ACC

      SETB  EN
      CLR   RW
      CLR   RS
NOP
      MOV   P0,R2
NOP
      SETB  EN
NOP
NOP
      CLR   EN
      POP   ACC
      POP   PSW
      RET

DELAY:            ;入口參數R2
      PUSH  PSW
      PUSH  ACC
      MOV   R1,0FFH 
A2:   DEC   R2 
A1:   DEC   R1 
      DJNZ  R1,A1
      DJNZ  R2,A2
      POP   ACC
      POP   PSW
      RET
             
   
INIT:
      PUSH  PSW
      PUSH  ACC
      MOV   R2,0C0H
      CALL  WRITECODE

      MOV   R2,3FH
      CALL  WRITECODE

      MOV   R2,0BBH
      CALL  WRITECODE

      MOV   R2,50H
      CALL  WRITECODE
      POP   ACC
      POP   PSW
      RET

CLEAR:
      PUSH  PSW
      PUSH  ACC
      CLR   CS1
      CLR   CS2
      MOV   R2,0B8H
B2:
      MOV   31H,R2
      PUSH  31H 
      CALL  WRITECODE

      MOV   R2,40H
      CALL  WRITECODE
B1:   MOV   R1,#00H
      CALL  WRITEDATA 
      INC   R2
      CJNE  R2,#80H,B1

      POP   31H
      INC   31H
      MOV   R2,31H 
      CJNE  R2,#0BEH,B2 
               
      POP   ACC
      POP   PSW 
      RET 
 
HANZI:
      PUSH  PSW
      PUSH  ACC
      CALL  INIT
      ANL   A,#00H
      MOV   DPTR,#DAT
B3:
      MOVC  A,@A+DPTR
      MOV   R1,A 
      CALL  WRITEDATA 
      INC   R2
      INC   A
      CJNE  R2,#50H,B3

      MOV   R2,0B9H
      CALL  WRITECODE
      MOV   R2,40H
      CALL  WRITECODE
B4:
      MOVC  A,@A+DPTR
      MOV   R1,A 
      CALL  WRITEDATA
      INC   R2
      INC   A
      CJNE  R2,#50H,B4
                  
      POP   ACC
      POP   PSW
      RET

DAT:
     DB  0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01
     DB  0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01     
END
關閉窗口

相關文章

主站蜘蛛池模板: 噜噜噜噜狠狠狠7777视频 | 色播久久 | 国产一区精品在线 | 国产亚洲精品久久久久动 | 日韩免费视频一区二区 | 国产精品一区二区av | 毛片韩国 | 天天干天天爱天天 | 日日噜噜噜夜夜爽爽狠狠视频, | 日韩精品一区二区三区中文字幕 | 久在线观看 | 在线视频日韩精品 | 9久9久| 亚洲欧美视频 | wwww.xxxx免费 | 欧美一级免费片 | www.天天操.com| 91精品导航 | 久久精品亚洲欧美日韩精品中文字幕 | 国产一区二区三区在线视频 | 国产精品18久久久久久白浆动漫 | 久久久久久久久久一区二区 | 午夜视频一区二区 | 真人女人一级毛片免费播放 | 久久一区二区三区四区 | 国产91一区 | 中文在线a在线 | 国产一区在线看 | 亚洲一区二区精品视频 | 亚洲成人一区二区在线 | 99re热精品视频 | 中文字幕在线一区 | 亚洲综合视频 | 日韩视频高清 | 亚洲精品日韩视频 | 亚洲视频在线免费观看 | 在线一区| 国产在线视频一区二区董小宛性色 | 精品视频www | 亚洲综合免费 | 欧美日韩久久精品 |