wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

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

基于51單片機之LCD1602實驗例程

作者:未知   來源:CaKen的空間   點擊數:  更新時間:2014年08月17日   【字體:

 **************************  Copyright(C)CaKe  *****************************************

========================================================================================
==============**文件名    : main.c              ==============
==============**作者      : CaKen              ==============
==============**版本號    : V1.0               ==============
==============**時間      : 2014.08.12               ==============
==============**功能描述  : 1602液晶屏實驗測試          ==============
========================================================================================
****************************************************************************************
 
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char     //宏定義
#define uint unsigned int     //宏定義
 
 
uchar code Table1[]="CaKen-2245286160";
uchar code Table2[]="                ";
 
 
sbit  LCD1602_RS=P2^4;      //數據命令端口
sbit  LCD1602_RW=P2^5;      //讀寫端口.我們在這里只寫
sbit  LCD1602_EN=P2^6;      //使能端口
 
*****************************************************************************************
函數名:延時函數
調  用:delayms();
參  數:
返回值:
結  果:
備  注:
*****************************************************************************************
 
void delayms(unsigned int ms)   
{
      unsigned int i , j;          
    for(i = 0; i < ms; i++)
         for(j = 0; j < 110; j++);
}
 
 
*****************************************************************************************
函數名:寫指令
調  用:Write_com();
參  數:
返回值:
結  果:
備  注:
*****************************************************************************************
void Write_com(uchar com)
 {
   LCD1602_RS=0;               //寫指令時RS=L
   LCD1602_EN=0;              
   P0=com;              //給端口送指令
   delayms(5);                 
   LCD1602_EN=1;               //使能端高電平有效  
   delayms(5);      
   LCD1602_EN=0;     
 }
 
*****************************************************************************************
函數名:寫數據
調  用:Write_Date();
參  數:
返回值:
結  果:
備  注:
*****************************************************************************************
 void Write_Date(uchar Date)
 {
   LCD1602_RS=1;                //寫數據時RS=L
   LCD1602_EN=0;                
   P0=Date;            //給端口送數據
   delayms(5);                   
   LCD1602_EN=1;                //使能端高電平有效  
   delayms(5);
   LCD1602_EN=0;    
 }
 
*****************************************************************************************
函數名:LCD1602初始化
調  用:LCD1602_Init();
參  數:
返回值:
結  果:
備  注:
*****************************************************************************************
void LCD1602_Init()
 {
   unsigned char num; 
   LCD1602_RW=0;                 //寫信號拉低
   LCD1602_EN=0;                 //使能端拉低
   Write_com(0x38);           //開顯示
   Write_com(0x0c);              //開顯示不顯示光標
   Write_com(0x06);              //每寫一個地址和光標加一 
   Write_com(0x01);           //顯示清零
 
   Write_com(0x80);              //第一行的初始地址為0x80
   for(num=0;num<16;num++)       //循環的數字要看上面的占多少個字符
     {
       Write_Date(Table1[num]);  //多了和少了都不會對的。
    delayms(5);
     }
 
     Write_com(0x80+0x40);       //第二行初始地址為0x80+0x40
     for(num=0;num<16;num++)
      {
         Write_Date(Table2[num]);
      delayms(5);
      }
 }
*****************************************************************************************
函數名:主函數
調  用:
參  數:
返回值:
結  果:
備  注:
***************************************************************************************** 
void main(void)
{  
     unsigned char n;
     LCD1602_Init();
 
   while(1)
 {
      Write_com (0x80+0x40+6);   //第二行第六個格開始顯示
   Write_Date(0x30+n/100);    delayms(5);
   Write_Date(0x30+n0/10); delayms(5);
   Write_Date(0x30+n);     delayms(5);
     delayms(100);
 }      
}
 
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
下面是一個提高版的程序:
 
**************************  Copyright(C) CaKe  ****************************************
========================================================================================
==============**文件名    : main.c              ==============
==============**作者      : CaKen              ==============
==============**版本號    : V1.0               ==============
==============**時間      : 2014.08.17               ==============
==============**功能描述  : LCD1602實驗測試          ==============
========================================================================================
****************************************************************************************

#include <reg52.h>     //包含單片機寄存器的頭文件
#include <intrins.h>   //包含_nop_()函數定義的頭文件

sbit RS=P2^0;            //寄存器選擇位,將RS位定義為P2.0引腳
sbit RW=P2^1;            //讀寫選擇位,將RW位定義為P2.1引腳
sbit EN=P2^2;            //使能信號位,將E位定義為P2.2引腳

sbit BF=P0^7;            //忙碌標志位,,將BF位定義為P0.7引腳

unsigned char code string[ ]= {"abcdefghihklabc"};
unsigned char code string1[ ]={"QUICK STUDY MCU"};
unsigned char code User[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//自定義字符℃
 

void delay1ms()
{
     unsigned char i,j; 
   for(i=0;i<10;i++)
    for(j=0;j<33;j++);  
 }

 void delay(unsigned int n)
 {
    unsigned int i;
 for(i=0;i
 delay1ms();
 }

 bit BusyTest(void)
  {
     bit result;
  RS=0;         //根據規定,RS為低電平,RW為高電平時,可以讀狀態
     RW=1;
     EN=1;          //E=1,才允許讀寫
     _nop_();      //空操作
     _nop_();
     _nop_();
     _nop_();      //空操作四個機器周期,給硬件反應時間 
     result=BF;    //將忙碌標志電平賦給result
  EN=0;
     return result;
  }

void Write_com (unsigned char dictate)
{  
    while(BusyTest()==1);    //如果忙就等待
  RS=0;                   //根據規定,RS和R/W同時為低電平時,可以寫入指令
  RW=0;  
  EN=0;                    //E置低電平(寫指令時,
                             // 就是讓E從0到1發生正跳變,所以應先置"0"
  _nop_();
  _nop_();                //空操作兩個機器周期,給硬件反應時間
  P0=dictate;             //將數據送入P0口,即寫入指令或地址
  _nop_();
  _nop_();
  _nop_();
  _nop_();                //空操作四個機器周期,給硬件反應時間
  EN=1;                    //E置高電平
  _nop_();
  _nop_();
  _nop_();
  _nop_();                //空操作四個機器周期,給硬件反應時間
  EN=0;                   //當E由高電平跳變成低電平時,液晶模塊開始執行命令
 }

 void WriteAddress(unsigned char x)
 {
     Write_com(x|0x80); //顯示位置的確定方法規定為"80H+地址碼x" 
 }

 void WriteData(unsigned char y)
 {
    while(BusyTest()==1); 
   RS=1;              //RS為高電平,RW為低電平時,可以寫入數據
   RW=0;
   EN=0;               //E置低電平(寫指令時,,
                         // 就是讓E從0到1發生正跳變,所以應先置"0"
   P0=y;              //將數據送入P0口,即將數據寫入液晶模塊
   _nop_();
   _nop_();
    _nop_();
      _nop_();           //空操作四個機器周期,給硬件反應時間
   EN=1;               //E置高電平
   _nop_();
   _nop_();
   _nop_();
   _nop_();           //空操作四個機器周期,給硬件反應時間
   EN=0;               //當E由高電平跳變成低電平時,液晶模塊開始執行命令
 }

void LCD1602_Init(void)
{
    delay(15);             //延時15ms,首次寫指令時應給LCD一段較長的反應時間
    Write_com(0x38);       //顯示模式設置:16×2顯示,5×7點陣,8位數據接口
 delay(5);
 Write_com(0x38);
 delay(5);      //延時5ms
 Write_com(0x38);       //3次寫 設置模式
 delay(5);
 Write_com(0x0F);       //顯示模式設置:顯示開,有光標,光標閃爍
 delay(5);
 Write_com(0x06);       //顯示模式設置:光標右移,字符不移
 delay(5);            
 Write_com(0x01);       //清屏幕指令,將以前的顯示內容清除
 delay(5);
 }


void main(void)           
 {
  unsigned char i=0,j;
  LCD1602_Init();                       //調用LCD初始化函數 
  delay(10);
  while(1)
    {


   Write_com(0x01);                   //清顯示:清屏幕指令
   delay(5);
   WriteAddress(0x00);                // 設置顯示位置為第一行的第1個字
   delay(5);

   while(string[i] != '\0')           //'\0'是數組結束標志
   {                 // 顯示字符 abcdefghihklabc
    WriteData(string[i]);
    i++;
    delay(100);
   }

    WriteAddress(0x40);         // 設置顯示位置為第二行的第1個字
         i = 0;
    while(string[i] != '\0')          //'\0'是數組結束標志
     {               // 顯示字符 QUICK STUDY MCU
   WriteData(string1[i]);
   i++;
   delay(100);
  } 
     //while(1);

 

  delay(1000); 
                        //右側移位進來
  Write_com(0x01);               //清顯示:清屏幕指令
  delay(5);
  WriteAddress(0x10);            // 設置顯示位置為第一行的第1個字
  delay(5);
    i = 0;
  while(string[i] != '\0')       //'\0'是數組結束標志
   {             // 顯示字符  abcdefghihklabc
   WriteData(string[i]);
   i++; 
   }
   
   WriteAddress(0x50);        // 設置顯示位置為第二行的第1個字
         i = 0;
  while(string[i] != '\0')       //'\0'是數組結束標志
    {             // 顯示字符 QUICK STUDY MCU
   WriteData(string1[i]);
   i++;
    }
   
  for(j=0;j<16;j++ )
    {
    Write_com(0x18);         //左移指令
    for(i=0;i<10;i++)
          delay(30);   
    }    
   //while(1);

 

         delay(1000);
   Write_com(0x08);          //關閉顯示
   //while(1);    
         delay(3000);           //延時  維持顯示一段時間
   Write_com(0x0c);          //開顯示   
       //while(1);
         delay(3000);              //延時  維持顯示一段時間


   Write_com(0x0f);       //開光標
   // while(1);
         delay(1000);           //延時  維持顯示一段時間

   for(j=0;j<16;j++ )
   {
    Write_com(0x1c);      //右移 移出
    for(i=0;i<10;i++)
          delay(30);      
   }
   //while(1);


       Write_com(0x40);          //設定CGRAM地址
   delay(5);
   for(j=0;j<8;j++ )
   {
    WriteData(User[j]);  //寫入自定義圖形 ℃
   }
      WriteAddress(0x05);      //設定屏幕上的顯示位置
    delay(5);
      WriteData(0x00);      //從CGRAM里取出自定義圖形顯示
      while(1); 
  }    
}
 
 
關閉窗口
精品国产亚洲一区二区三区大结局 | 97超碰人人干| 亚洲天堂第一区| 欧美夜福利tv在线| 欧美日韩在线播放一区| 久久久久久久久蜜桃| 午夜天堂精品久久久久| 高清av一区二区三区| 在线国产网址| 亚洲国产一区二区久久久777| 九九视频免费看| 人妻巨大乳一二三区| 宅男噜噜99国产精品观看免费| 国产精品久久999| 综合久久给合久久狠狠狠97色 | 美女在线视频一区二区| 日韩区国产区| 日韩美女激情视频| 亚洲天堂视频在线观看| 欧美视频中文一区二区三区在线观看| 久久久久久日产精品| 日本欧美一区二区在线观看| 欧美精品乱码| 亚洲一区有码| 欧美日韩在线视频免费观看| 97香蕉久久| 天堂在线观看| 影音先锋中文字幕在线视频 | 日本一区二区在线不卡| 美女视频黄免费的久久| 91精品国产自产在线观看永久∴| 国产一区二区三区国产精品| av有码在线观看| sese在线视频| 在线观看视频免费| 黄色三级免费电影| 国产又猛又粗| 天天操天天干天天干| www毛片com| 国产97免费视频| wwwwxxxx国产| 久久av一区二区三| 精品久久久久久久无码| 97中文字幕在线| 亚洲国产精品综合| 产国精品偷在线| 国产精品成久久久久三级 | 欧美日韩国产综合视频在线观看中文| 久久嫩草精品久久久精品| 麻豆国产欧美日韩综合精品二区| 黄色精品网站| 一本精品一区二区三区| 中文字幕日本在线| 免费在线毛片| 中文在线а√在线| 男男做性免费视频网| 色网在线播放| 精品国产二区三区| 欧美色图影院| 久草在线资源福利| 午夜视频福利在线观看| 三级小视频在线观看| 99精品视频免费看| 国产91视频在线| 国产视频手机在线| 国产婷婷一区二区三区久久| 91精品国产乱码久久| 最好看的日本字幕mv视频大全 | 亚洲图片欧美视频| 国产午夜精品一区二区三区四区| 99久久www免费| 九九在线精品| 日韩高清成人在线| 欧美91在线| 一区视频网站| jizz国产精品| 欧美调教在线| 四虎884aa成人精品最新| 9l视频自拍蝌蚪9l视频成人| 成人豆花视频| 国产精品777777在线播放| 欧美最新精品| 日韩福利一区| 丁香六月综合| 欧美电影免费观看| 国模私拍视频在线播放| 欧美xxxx黑人又粗又长| 午夜伦理大片视频在线观看| 黑人精品视频| 91精品久久久久久粉嫩| 一区二区高清不卡| 麻豆影视在线观看_| brazzers在线观看| 欧美aaaaaaa| 澳门成人av网| 日韩电影精品| 欧美禁忌电影| 欧美一区二区三| 91亚洲自偷观看高清| 日韩欧美午夜| 欧美日韩综合| 视频在线观看91| 久久成人久久爱| www.在线欧美| 国产精品国产三级国产| 亚洲精品成人天堂一二三| 亚洲自拍欧美精品| 在线观看成人小视频| 欧美日韩一本到| 日韩欧美一区二区免费| 在线看不卡av| 精品剧情在线观看| 久久理论电影网| 亚洲视频中文字幕| 在线精品观看国产| 日韩免费一区二区三区在线播放| 亚洲欧洲日产国产网站| 久久久久久综合网天天| 国产精品女主播视频| 川上优av一区二区线观看| 国产精品一区二区三区四区五区| 日韩免费中文专区| www.欧美黄色| 97超碰成人在线| 手机看片国产日韩| 国语对白永久免费| 亚洲乱码精品久久久久..| 国产免费大片| 2020中文字幕在线播放| va视频在线观看| 动漫性做爰视频| 国产情侣av在线| 青青草国产在线播放| 天天干天天骑| 成人三级网址| 亚洲精品毛片| 亚洲二区三区不卡| 国产一区二区精品久久| 中文字幕在线观看一区二区| 色哟哟日韩精品| 精品一区二区亚洲| 国产色综合天天综合网| 中文字幕欧美日韩一区二区| 久久9精品区-无套内射无码| 色哟哟免费视频| 黄色精品视频在线观看| 国产强伦人妻毛片| 国产成人亚洲欧美电影| 欧美套图亚洲一区| 欧美美女被草| 国产精品s色| 成人免费毛片片v| 欧美日韩午夜激情| 欧美xxxx做受欧美| 99久re热视频这里只有精品6| av在线播放天堂| japanese在线观看| 91精品国产乱码久久| xfplay每日更新av资源| 麻豆传媒视频在线| 日韩美女毛片| 国产乱人伦偷精品视频不卡 | 国产色综合网| 中文字幕av一区二区三区高| 日韩av中文字幕在线| 91久久久久久久久久久久久| 黄色片一级视频| 久久精品这里有| 国产高清一级片| 最新av在线播放| 日本在线电影一区二区三区| 白白色亚洲国产精品| 欧美男生操女生| 中文字幕中文字幕一区| 精品美女在线播放| 91九色蝌蚪国产| 免费观看成人网| 国产成人自拍视频在线| 狠狠色丁香婷婷| 日韩在线免费| 亚洲综合精品四区| 岛国视频午夜一区免费在线观看 | 亚洲午夜三级在线| 不卡av在线网站| 一区二区视频国产| 欧美一级片在线视频| 国产黄色免费| 欧美一区二区三区久久综| 天堂中文在线视频| 久久不见久久见免费视频7| 国产女人18水真多18精品一级做| 亚洲精品在线不卡| 日本不卡在线观看| 5566中文字幕| 国产成人的电影在线观看| 中文不卡1区2区3区| 日韩avvvv在线播放| 最新成人av网站| 色综合天天综合| 色天使色偷偷av一区二区| 国产精品成av人在线视午夜片| 免费观看成人网| 国产精品久久久久久久一区二区 | 91av精品| 偷拍日韩校园综合在线| 欧美一级大片在线观看| wwwwww.色| 亚洲AV无码精品色毛片浪潮| 香蕉视频网站在线观看| 国内久久精品| 色婷婷久久综合| 成人在线观看视频网站| 久久久久久久久免费看无码 | 交100部在线观看| 青青草伊人久久| 欧美sm美女调教| 欧美日韩综合精品| dy888夜精品国产专区| 91丨porny丨九色| 久艹在线播放| 在线观看v片| 国产成+人+日韩+欧美+亚洲| 一区二区三区国产视频| 成人毛片视频网站| 欧美日韩亚洲国产另类| 成视人a免费观看视频| 免费成人av| 亚洲电影在线播放| 91久久爱成人| 免费黄色激情视频| 国产天堂av| 欧美一区三区| 91福利视频久久久久| 久久亚洲综合网| 男人天堂av片| 91亚洲国产成人久久精品麻豆| shkd中文字幕久久在线观看| 久久国产毛片| 日韩av在线最新| 免费在线观看亚洲视频| 天天操天天操天天| av在线日韩| 国产精品盗摄一区二区三区| 国产一区二区香蕉| 99久久99久久精品免费看小说.| a级女人18毛片| 欧美影院三区| 欧美一级片免费看| 大j8黑人w巨大888a片| av噜噜在线观看| 欧美色欧美亚洲另类| 亚洲超碰在线观看| 亚洲国产精品久久艾草纯爱| 国产91免费视频| 国产a∨精品一区二区三区仙踪林| 国产区av在线| 99精品在线免费观看| 一区二区三区在线免费视频| 国产精品久久久久久免费观看 | 五月婷婷亚洲综合| 91蜜桃在线视频| 91亚洲国产成人精品一区二区三| 97久久国产精品| 极品久久久久久久| 黄色片在线看| 极品尤物av久久免费看| 久久久综合av| 永久免费看片直接| 麻豆传媒在线免费| 久久蜜桃香蕉精品一区二区三区| 国产日韩精品在线观看| 精品成人免费视频| 污污视频在线看| 中文字幕国产精品一区二区| 91在线在线观看| 一区二区视频免费观看| 成人精品动漫| 精品日韩中文字幕| 九一免费在线观看| 国产丝袜控视频在线观看| 日韩精品网站| 日韩久久精品成人| 国产伦理在线观看| 国产精品自拍视频| 一道精品视频一区二区三区图片| 国产精品视频久久久| 男女超爽视频免费播放| 欧美老头gaygay1069| 美女av一区| 欧美一区二区人人喊爽| 天天操天天爽天天射| 天天干天天舔| 久久精品人人做人人爽电影蜜月| 九九精品视频在线观看| 影音先锋男人在线| 色大18成网站www在线观看| 久久综合成人精品亚洲另类欧美 | 亚洲视频一区在线观看| 亚洲国产一区二区三区在线 | 黑人巨大精品欧美黑白配亚洲| 91黑丝在线观看| 国产精品16p| 校园春色亚洲色图| 欧美系列一区二区| 高清一区在线观看| 免费观看一二区视频网站| 理论片日本一区| 91最新在线免费观看| 亚洲国产精品久久久久久6q| 精品国产中文字幕第一页| 国产欧美精品日韩区二区麻豆天美| 99re在线| 日韩一区免费视频| 99久久久久国产精品| 欧美精品情趣视频| 五月天综合在线| 国产经典一区| 欧美三级欧美一级| 日本高清一区二区视频| 嫩草在线播放| 一区视频在线播放| 青青在线视频免费观看| jizzjizz16| 国产成人免费av在线| 欧美在线日韩精品| 日本免费黄色网| 精彩视频一区二区三区| 国产欧美日韩在线播放| 欧美日韩亚洲色图| 日产国产欧美视频一区精品| 91国产丝袜在线放| 九色精品高清在线播放| 天堂va蜜桃一区二区三区漫画版| 国产在线观看精品一区二区三区| 亚洲免费成人网| 欧美国产高潮xxxx1819| 国产精品一区电影| 伊人色综合久久久天天蜜桃| 午夜在线播放视频欧美| 粉嫩高清一区二区三区精品视频| 欧美女同在线观看| 在线观看av网| 国产精品国产三级国产专播品爱网| 国产成人艳妇aa视频在线| 激情av网站| 136国产福利精品导航| 熟妇人妻va精品中文字幕 | 狠狠色综合网| 91免费的视频在线播放| 精品福利影院| 国产91丝袜在线播放九色| 亚洲欧洲免费无码| av网站免费| 国产精品污www在线观看| 欧美日韩在线一| 亚洲xxxxxx| 欧美精品黑人性xxxx| 国产一区二区三区精品在线| 最新日韩一区| 亚洲男人天堂2024| 国产污污视频在线观看| 欧美丝袜激情| 国产欧美日韩高清| 91网站免费| 久久久精品黄色| 国产精品-区区久久久狼| 91在线网址| 7777精品伊人久久久大香线蕉的 | 国内不卡的二区三区中文字幕| 色视频一区二区三区| 少妇高潮露脸国语对白| 亚洲福利一区二区三区| 中国一级特黄录像播放| 日韩成人综合网站| 欧美国产日韩二区| 日本男人天堂网| 粉嫩高潮美女一区二区三区 | www.狠狠干| 日韩精品三区四区| 最新av在线免费观看| 久草在线青青草| 欧美日韩不卡一区| 欧美日韩一级在线观看| 要久久爱电视剧全集完整观看 | 一级黄色片网址| 日韩精品亚洲aⅴ在线影院| 国产精品久久久久久网站| 国产7777| 亚洲欧洲av在线| 成人在线电影网站| 亚洲视频国产精品| 国产精品扒开腿做爽爽爽视频| 本道综合精品| 1024亚洲合集| 风间由美一二三区av片| 99久久免费精品国产72精品九九| 日本伊人精品一区二区三区介绍 | 一区二区三区四区在线看| 91精品在线观看视频| 极品色影院av|