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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5109|回復: 1
打印 上一主題 下一主題
收起左側

51單片機1602顯示漢字

[復制鏈接]
跳轉到指定樓層
樓主
ID:209111 發表于 2017-6-8 11:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
此程序是在51單片機上實現的,能夠實現的功能是現實字母、數字、漢字。漢字是自己寫的庫是用PCtoLCD2002軟件自作的,由于1602的內存有限只自制了部分漢字,如果有需要,大家自己可以根據需要制成想要實現效果的文字。能夠實現多種效果如閃爍,滾屏等效果。

代碼如下:
#include <reg51.h>
#include <intrins.h>
sbit BF=P0^7;  //?|?μ±ê???????BF???¨ò???P0.7òy???í¨1y2é?ˉê?2áμ?3?
sbit RS = P2^6;//êy?Y?üá??????????RS???¨ò???P2.6            
sbit RW = P2^5;//?áD?????????RW?¨ò??aP2.5
sbit E = P2^7;//ê1?üD?o??????E?¨ò??aP2.7         
unsigned char code dis1[] = {"   WELCOME TO   "};//??ê?μ?×?·?
unsigned char code dis2[] = {" AN HUIDA XUE  "};
unsigned char code dis3[] = {" ZHI DAOLAO SHI "};
unsigned char code dis4[] = {"OU YANGjuan juan"};
unsigned char code dis5[] = {"  ZHANG TIAN GUO   "};
unsigned char code dis6[] = {"  2015210475 "};
unsigned char codetable[]={"0123456789"};//??ê?è??úμ?êy×é
unsigned char code hanzi[]={0x02,0x04,0x0f,0x12,0x0f,0x0a,0x1f,0x12,0x0f,0x09,0x0f,0x09,0x0f,0x09,
       0x09,0x11,0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00,0x00,0x0e,0x04,0xff,0x04,0x0a,0x11,0x00,0x00,
0x0e,0x0a,0x0a,0x1f,0x0a,0x0a,0x00,0x00,0x00,0x80,0x1d,0x0b,0x0e,0x00,0x00};//?ê??è?μ?×????
void delay(int ms)
{                 // ?óê±×ó3ìDò?óê±è??éms
int i;
while(ms--)
{
for(i = 0; i< 250; i++)
  {
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  }
}
}
/*****************************************************
oˉêy1|?ü£o?D??òo?§??é?|?μ×′ì?
·μ???μ£oresult?result=1±íê??|?μ£?result=0±íê?2??|
***************************************************/
unsigned char BusyTest(void)
  {
   bit result;
         RS=0;                  //?ù?Yê?2á£?RS?aμíμ????RW?a??μ?????éò??á
   RW=1;
   E=1;                 //E=12??êDíD′£??á£??a???μ??×÷×?±?
   _nop_();             //??2ù×÷ò????ú?÷?ü?ú
   _nop_();
   _nop_();
   _nop_();              //??2ù×÷?ú?÷?ü?ú??μ¥???ú·′ó|ê±??
   result=BF;          //???|?μ±ê?????3?μ??result
         E=0;                //2úéú???μ???D′è???á?
   return result;     //·μ???á1??a1???1?áD′£??a0?éò??áD
  }
void lcd_wcmd(unsigned char cmd)            // D??á??ò??êy?Yμ?LCD
{                          
while(BusyTest()==1);   //?á1??a2??ü1???DD?áD2ù×÷
RS = 0;                  //D??á?
RW = 0;
E = 0;
_nop_();
_nop_();
P0 = cmd;               //????á?D′μ?P0?ú
_nop_();
_nop_();
_nop_();
_nop_();
E = 1;                 //ê1?ü???a??μ????a???μ??×?o?×?±?
_nop_();
_nop_();
_nop_();
_nop_();
E = 0;                  //2úéú???μ??????á?D′è?LCD  
}
void lcd_pos(unsigned char pos)    //éè?¨LCD??ê?????
{                          
lcd_wcmd(pos | 0x80);             //LCD??ê?μ??????a80H+μ??·?÷òaμúò?DD′ó80H?aê?
}
void lcd_wdat(unsigned char dat)         //D′è?×?·?êy?Y??ê?μ?LCD
{                          
while(BusyTest()==1);                 //LCD?|?μ?ì2a?a1ê±2??ü1???DD?áD?a0?éò??áD
RS = 1;                   //D′êy?Y
RW = 0;
E = 0;
P0 = dat;                       //??êy?Y?íè?P0?ú
_nop_();
_nop_();
_nop_();
_nop_();
E = 1;                  //ê1?ü?????a??μ????a???μ??×?×?±?
_nop_();
_nop_();
_nop_();
_nop_();
E = 0;                      //ê1?ü?????aμíμ?????êy?YD′è?μ?LCD
}
/*****************************************************
oˉêy1|?ü£o??×??¨ò?μ?×?·?μ?±à??êy×éD′è?μ?CGRAM?D
D′á?áù??oo×?μ?×?·?±à??·?±e?a?ê??è?ìì?aD?
***************************************************/
void write_hanzi()
{
unsigned char i=0,kk=0;
unsigned char temp=0x40;  //2ù×÷CGRAMμ?2ù×÷??
       for(i=0;i<47;i++)  //????×?·?óé8??×??ú×é3éóD6??×?·?Dèòa?-?·48?
       {
     lcd_wcmd(temp+i);   //2ù×÷μ?CGRAMμ??üá???+D′è?CGRAMμ?μ??·
      lcd_wdat(hanzi[kk]) ;   //D′è?êy?Y
               kk++;   
  }  
}
void lcd_init()   //LCDμ?3?ê??ˉ?éè????ê?μ??ê?
{                        
lcd_wcmd(0x38);   //16*2??DD??ê?,5*7μ??ó,8??êy?Y
delay(1);          //?ó3ù1ms
lcd_wcmd(0x0c);  //?a??ê?,1?1a±ê
delay(1);
lcd_wcmd(0x06);   //ò??ˉ1a±ê£?μ±??ê?ê±1a±ê×??ˉ?ó1
delay(1);
lcd_wcmd(0x01);   //??3yLCD??ê??úèY,1a±ê???μ?μ??·00H????
delay(1);
}
void flash()      //??????ê?μ?éá??                                                      
{                                                                        
   delay(300);                //??????í£á?ê±??300ms                     
   lcd_wcmd(0x08);           //1?±???ê?                              
   delay(100);               //?óê±ò???ê±??                                 
   lcd_wcmd(0x0c);            //?a??ê?                                 
   delay(100);                                                           
   lcd_wcmd(0x08);           //1?±???ê?                                 
   delay(100);               //?ó3ù                           
   lcd_wcmd(0x0c);            //?a??ê?                                 
   delay(100);                                                           
}              
void main()
{
     unsigned char i,j;     
     lcd_init();     //LCDμ?3?ê??ˉ
     delay(10);     //?ó3ù10ms
   while(1)              
   {
     lcd_wcmd(0x06);              //?òóòò??ˉ1a±ê
     lcd_pos(0x10);                //òaêμ?????áóòò?±?D?éè????ê??????aμúò?DD17μ??????aê?ò2?′′ó10H?aê?
     i = 0;
    while(dis1[ i ] != '\0')
    {                           
      lcd_wdat(dis1[ i ]);            //??ê?"WLCOME  TO"
      i++;
    delay(30);                 //?????????×?·?????μ???ê??ù?è
     }
      lcd_pos(0x50);               //éè???aμú?tDD??ê?μú17??????′ó50H?aê?
      i = 0;
    while(dis2[ i ] != '\0')
     {
       lcd_wdat(dis2[ i ]);         //??ê?×?·?" AN HUI LI GONG "
       i++;
      delay(30);               //?ó3ù??????ê?μ??ù?è
     }
    for(j=0;j<16;j++)             //?ò×óò??ˉ16??′ó10Hó?50H?aê?                           
     {                                                                    
       lcd_wcmd(0x18);           //×?·?μ?ò??ˉ?üá???                        
       delay(80);                //????×?·?μ?ò??ˉê±??                     
    }                                                                                                                                       
     flash();                   //éá??á??                                                                     
     delay(800);                //????í£?ùê±??
         
                     
     lcd_wcmd(0x01);          //??3yLCD??ê??úèY
     delay(1);
     lcd_wcmd(0x06);            //1a±ê?òóòò??ˉ
     
     lcd_pos(0);                //éè????ê?μ?×?·??aμúò?DDμúò???×?·?
     i = 0;
    while(dis3[ i ] != '\0')
    {                         //??ê?×?·?" ZHI DAO LAO SHI "
      lcd_wdat(dis3[ i ]);
       i++;
       delay(30);                //????á?×?·?????μ???ê??ù?è
     }
      lcd_pos(0x40);             //éè????ê????? ?aμú?tDDμúò???
      i = 0;
    while(dis4[ i ] != '\0')
    {
      lcd_wdat(dis4[ i ]);     //??ê?×?·?"OU YANG MING SAN"
      i++;
       delay(30);                //????á?×?·?????μ???ê??ù?è
     }
     flash();      
     delay(800);                //éè??í£?ùê±??
      lcd_wcmd(0x01);           //??3yLCDμ???ê??úèY  
     delay(1);
     lcd_wcmd(0x06);            //1a±ê?òóòò??ˉ
     
     lcd_pos(0);              //éè????ê??????aμúò?DDμúò???
     i = 0;
    while(dis5[ i ] != '\0')
    {                           //??ê?×?·?"  DENG CONG LONG   "
      lcd_wdat(dis5[ i ]);
      i++;
      delay(30);               //??????ê??ù?è
    }
     lcd_pos(0x40);            //éè????ê??????aμú?tDDμúò???
     i = 0;
    while(dis6[ i ] != '\0')
    {
      lcd_wdat(dis6[ i ]);        //??ê?×?·?"  2015200461  "
      i++;
    }
     flash();
     delay(800);   
     write_hanzi();         //μ÷ó?Doo×?×ó3ìDò?÷òa????D′è?CGRAM?D
               lcd_wcmd(0x01);           //??3y??ê??úèY
               
      lcd_wcmd(0x80);        //??ê?D′è?μ?CGRAM?D×??¨ò?×?·?μ??úèY ??á???
      lcd_pos(0x00);         
               lcd_wdat(table[2]);     //μúò?DDμúò?????????ê?2
        delay(30);
               lcd_pos(0x01);            //μúò?DDμú?t????????0
               lcd_wdat(table[0]);
               delay(30);
     lcd_pos(0x02);           //μúò?DDμúèy????????1     
     lcd_wdat(table[1]);
      delay(30);
                 lcd_pos(0x03);
               
                 
                lcd_wdat(table[6]); //μúò?DDμú4????????6   
                delay(30);
                lcd_pos(0x05);
               lcd_wdat(0x00);  //μúò?DDμú5????????ê?×??¨ò?×?·??a?ê?ò×??¨ò????a00H  
               delay(30);
               lcd_pos(0x07);     //μúò?DDμú7????????ê?1
               lcd_wdat(table[1]);
     delay(30);
                     lcd_pos(0x09);    //μúò?DDμú9????????ê?×??¨ò?×?·??a???ò×??¨ò????a01H  
                      lcd_wdat(0x01);
                      delay(30);
                      lcd_pos(0x0a);    //μúò?DDμú10????????ê?1
                      lcd_wdat(table[1]);
                      delay(30);
                      lcd_pos(0x0c);     //μúò?DDμú12????????ê?×??¨ò?×?·?è??ò×??¨ò????a02H  
                      lcd_wdat(0x02);
                      delay(30);
                       
     
      lcd_pos(0x43);  //μú?tDDμúèy????????ê?×??¨ò?×?·?ìì?ò×??¨ò????a03H
                 lcd_wdat(0x03);
                      delay(30);
                      lcd_pos(0x46);    //μú?tDDμúèáù????????ê?×??¨ò?×?·?ìì?ò×??¨ò????a03H
                       lcd_wdat(0x03);
       delay(30);
       lcd_pos(0x49);   //μú?tDDμú9????????ê?×??¨ò?×?·??a?ò×??¨ò????a04H
                       lcd_wdat(0x04);
        lcd_pos(0x4c);  //μú?tDDμú12????????ê?×??¨ò?×?·?D??ò×??¨ò????a05H
                       lcd_wdat(0x05);                             
                      delay(30);
                      flash();
     delay(800);
     lcd_wcmd(0x01);          //??3yLCD??ê?μ??úèY
     delay(200);                //??????×a??ê±??
     
     
   }
}



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

使用道具 舉報

沙發
ID:1 發表于 2017-6-8 16:49 | 只看該作者
謝謝分享 樓主能上傳一下壓縮包嗎 注釋是亂碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产福利视频 | 日一区二区 | 国产97色| 成人免费一级 | 一级a爱片性色毛片免费 | 玖玖爱365 | 九色在线观看 | h视频在线观看免费 | 中文字幕免费中文 | 99re6在线视频精品免费 | 久久99国产精一区二区三区 | 国内精品视频在线 | 五月天婷婷久久 | av二区三区 | 欧美区日韩区 | 日韩成人免费视频 | 免费观看一级视频 | 四虎国产 | 欧美一区二区三区电影 | 精品熟人一区二区三区四区 | 亚洲国产精品一区二区三区 | 欧美日韩中文字幕 | 国产欧美精品一区 | 亚洲久久一区 | 99久久精品国产一区二区三区 | 国产麻豆乱码精品一区二区三区 | 久久久精品综合 | 国产精品免费看 | 国产一区二区日韩 | 欧美视频成人 | 特黄视频| 午夜成人免费视频 | 欧美中文字幕一区二区三区亚洲 | 亚洲精品久久久一区二区三区 | 午夜视频一区 | 黄色一级免费看 | 久久国产亚洲 | 午夜精品一区二区三区在线视频 | 国产激情偷乱视频一区二区三区 | 成人午夜免费福利视频 | 全免一级毛片 |