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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

LCD1602液晶顯示(51單片機(jī)c語言)

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月10日   【字體:


效果圖:
電路圖:

#include<reg52.h> 
#include<intrins.h>  //包含_nop_()函數(shù)定義的頭文件
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^5;    //寄存器選擇位
sbit RW=P2^6;    //讀寫選擇位
sbit E=P2^7;     //使能信號(hào)位
//sbit BF=P0^7;    //忙碌標(biāo)志位
const uchar string1[ ]={"    mazirong     "};
const uchar string2[ ]={"TEL:13297961386  "};
/*****************************************************
函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)
返回值:result。result=1,忙碌;result=0,不忙
***************************************************/
/*uchar BusyTest()
{
    bit result;
 RS=0;       //根據(jù)規(guī)定,RS為低電平,RW為高電平時(shí),可以讀狀態(tài)
    RW=1;
    E=1;        //E=1,才允許讀寫
    _nop_();   //空操作
    _nop_();
    _nop_();
    _nop_();   //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
    result=BF;  //將忙碌標(biāo)志電平賦給result
 E=0;
    return result;
}*/
//*********************延時(shí)
void delay(uchar z)
{
 uchar i,j;
 for(i=z;i>0;i--);
  for(j=110;j>0;j--);
}
//********************寫指令
void WriteInstruction(uchar dictate)

// while(BusyTest()==1);
 RS=0;                  //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫入指令
 RW=0; 
 E=0;                   //E置低電平(寫指令時(shí),E為高脈沖)
                             // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
 P0=dictate;            //將數(shù)據(jù)送入P0口,即寫入指令或地址
 delay(1);
 /*_nop_();
   _nop_();
   _nop_();
  _ nop_();*/
  E=1;                   //E置高電平
  _nop_();
  _nop_();
  _nop_();
  _nop_();               //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
   E=0;                  //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令
}
//*********************寫數(shù)據(jù)
void WriteData(uchar dat)
{
// while(BusyTest()==1);  
 RS=1;   //RS為高電平,RW為低電平時(shí),可以寫入數(shù)據(jù)
 RW=0;
 E=0;            //(寫指令時(shí),E為高脈沖)
                    // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
 P0=dat;         //將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊
 delay(1);
 /*_nop_();
   _nop_();
   _nop_();
  _ nop_();*/
  E=1;          //E置高電平
  _nop_();
  _nop_();
  _nop_();
  _nop_();      //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
  E=0;          //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令
}
//*******************初始化
void Init(void)
{
 WriteInstruction(0x38);  //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口
 WriteInstruction(0x0c);  //顯示模式設(shè)置:顯示開,無光標(biāo)
 WriteInstruction(0x06);  //顯示模式設(shè)置:光標(biāo)右移,字符不移
 WriteInstruction(0x01);  //清屏幕指令,將以前的顯示內(nèi)容清除
}
//*******************主函數(shù)
void main(void)         
{
 uchar a;
   Init();      
   while(1)
   {
  a=0;
  WriteInstruction(0x80);  // 設(shè)置顯示位置為第一行的第1個(gè)字
    while(string1[a] != '\0')   //'\0'是數(shù)組結(jié)束標(biāo)志
  {     
   WriteData(string1[a]);
   a++;
  }
 
  a=0;
  WriteInstruction(0x80+0x40); // 設(shè)置顯示位置為第二行的第1個(gè)字
  while(string2[a] != '\0') //'\0'是數(shù)組結(jié)束標(biāo)志
  {     
   WriteData(string2[a]);
   a++;
  }    
 }
}

 

關(guān)閉窗口
主站蜘蛛池模板: 成人午夜又粗又硬又大 | 日韩在线免费播放 | 99在线观看视频 | 亚洲一级免费视频 | 一区二区小视频 | 老司机深夜福利视频 | 久久激情网 | 久久爱综合| 日韩第一区 | 久久99精品久久久久久国产越南 | 久久久久久久久久一区二区三区 | 国产伦精品一区二区免费 | www.亚洲天堂 | 亚洲最新视频 | 欧美激情视频一区二区三区 | 涩久久 | 久久国产精 | 精品在线播放 | 国产精品视频在线观看 | 日本黄色录像 | 精品小视频| 九九热精品视频 | 国产91av视频 | 日本视频免费观看 | 日韩在线视频播放 | 亚洲欧美精品在线 | 久热在线| www.亚洲国产| 亚洲精品18在线观看 | 精品三级在线观看 | 91欧美大片 | 一级特黄毛片 | 国产欧美日韩在线观看 | 午夜激情网 | 午夜黄色小视频 | 精品三级在线观看 | 狠狠干 | 成人三级在线 | 精品免费视频 | 日韩理论在线 | 亚洲成人免费在线 |