欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機8位總線驅動LCD1602

[復制鏈接]
跳轉到指定樓層
樓主
ID:259435 發表于 2017-12-9 15:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /*8位總線驅動LCD1602*/

  2.     #include<reg52.h>

  3.     #defineuchar unsigned char

  4.     #defineuint unsigned int

  5.     #include<intrins.h>//延時時鐘周期時用到

  6.     sbitweixuan=P2^7;     //將兩個鎖存器關閉,防止數碼管顯示亂碼

  7.     sbitduanxuan=P2^6;

  8.     //sbitLCD_RW=P2^7;  //檢查忙位

  9.     sbitLCD_RS=P3^5;

  10.     sbitLCD_EN=P3^4;

  11.     ucharcode table[]="123456789ABCDEFG";

  12.     ucharcode table1[]="123456789ABCDEFG";

  13.     voiddelayxms(uint xms)    //延時X毫秒

  14.     {   

  15.         uinti,j;

  16.        for(i=0;i<xms;i++)

  17.            for(j=0;j<114;j++);

  18.     }   

  19. /*  voidread_LCD_busy() //檢查忙函數

  20.     {

  21.        LCD_RS=0;

  22.        LCD_RW=1;

  23.        IO7=1;  //I/O口寫1

  24.        LCD_EN=1;

  25.        while(IO7);    //等待液晶寫完

  26.        LCD_EN=0;

  27.     }      */

  28.     voiddelayxus(uint xus)  //延時X微秒

  29.     {   

  30.        uchari;

  31.        for(i=0;i<xus;i++)

  32.        {

  33.            _nop_();

  34.        }

  35.     }

  36.     voidwrite_LCD_CD(uchar cd,uchar CD)  //cd=0寫指令,cd=1寫數據

  37.     {

  38.        //read_LCD_busy();//檢查忙函數

  39.         delayxus(20);//最低延時(一定要在開頭有個延時)

  40.        LCD_RS=cd;

  41.        P0=CD;

  42.        LCD_EN=1;            

  43.        LCD_EN=0;

  44.     }

  45.     voidLCD_init()    //initialization,液晶初始化

  46.     {

  47.        write_LCD_CD(0,0x38);    //顯示模式設置(16*2顯示,5*7點陣,4位數據接口)

  48.        write_LCD_CD(0,0x06);   // 寫一個字符后地址指針加1

  49.        write_LCD_CD(0,0x0c);    //設置開顯示,不顯示光標

  50.        write_LCD_CD(0,0x01);    //顯示清屏,數據指針清0(清屏需要一定時間)

  51.        delayxus(80);//清屏時間

  52.     }

  53.     voidmain()

  54.     {

  55.        uchari;

  56.        duanxuan=0;

  57.        weixuan=0;

  58.        LCD_EN=0;

  59.        LCD_init();

  60.        write_LCD_CD(0,0x80);//數據地址指針,第一行

  61.        do

  62.        {

  63.            write_LCD_CD(1,table[ i]);  //寫數據,data是編譯器關鍵詞

  64.            i++;

  65.        }

  66.        while(table[ i]!='\0');

  67.        i=0;

  68.        write_LCD_CD(0,0x80+0x40);//數據地址指針,第二行

  69.        do

  70.        {

  71.            write_LCD_CD(1,table1[ i]);  //寫數據,data是編譯器關鍵詞   

  72.            i++;

  73.        }

  74.        while(table1[ i]!='\0');     //因為table是字符串

  75.        delayxms(2000);   

  76.        //write_LCD_CD(0,0x01);  //顯示清屏,數據指針清0     

  77.        //delayxus(80);

  78.        write_LCD_CD(0,0x0f);

  79.        write_LCD_CD(0,0x01);      

  80.        write_LCD_CD(0,0x80);      

  81.        while(1);  

  82.     }

復制代碼


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表