<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于單片機2個IO口驅動LCD1602案例

CHANBAEK ? 來源: LYQ電子工作室 ? 作者: LYQ電子工作室 ? 2023-10-31 15:24 ? 次閱讀

LCD1602作為常見的并口數據屏幕,因為驅動簡單,相較數碼管可以顯示更多的內容,所以應用很多,當然了,不及LCD單色液晶屏和彩色LCD屏,可以操控每個像素點。

這里分享的是2個IO口驅動LCD1602,當前市面上是有這樣的方案的,不過用的是IIC芯片擴展IO口,本質上還是增加了IO口數量。當然了,移位寄存器也是擴展IO口,這里擴展的是輸出類型。

回歸正題,原理圖,時序圖如下,具體的原理分析,可以閱讀原文,觀看視頻。

圖片

主要函數代碼,此代碼用于STC8單片機,其他單片機可能需要修改部分內容,尤其是延時部分,LCD1602數據處理需要時間,延時不夠,是會出問題的。

底層驅動函數

//LCD1602寫入數據或指令
//0指令,1數據
void LCD1602_Write_Data(bit CD,u8 dat)
{
  u8 i;
  //先傳輸高4位
  //第一步,低電平
  for(i=0;i< 6;i++)
  {
    HC164_CP=0;
    HC164_DI=0;//先傳輸最高位;
    HC164_CP=1;
  }

  HC164_CP=0;
  HC164_DI=1;//E高電平
  HC164_CP=1;

  HC164_CP=0;
  HC164_DI=CD;//傳輸命令位
  HC164_CP=1;

  for(i=0;i< 4;i++)//傳輸數據高4位
  {
    HC164_CP=0;
    HC164_DI=dat&0x80;//先傳輸最高位;
    HC164_CP=1;
    dat <=1;//次高位左移到最高位
  }
  HC164_DI=1;HC164_DI=0;//LCD1602吸收數據
  //如果DI=0;那么此時DI=1;DI=0即可
  //如果DI=1;那么DI=0即可


  //傳輸低4位數據,操作同上
  for(i=0;i< 6;i++)
  {
    HC164_CP=0;
    HC164_DI=0;
    HC164_CP=1;
  }

  HC164_CP=0;
  HC164_DI=1;//E高電平
  HC164_CP=1;

  HC164_CP=0;
  HC164_DI=CD;//傳輸命令位
  HC164_CP=1;

  //這里的移位可以接著傳輸
  for(i=0;i< 4;i++)//傳輸低4位數據
  {
    HC164_CP=0;
    HC164_DI=dat&0x80;//先傳輸高位;
    HC164_CP=1;
    dat <=1;//次高位左移到最高位
  }
  HC164_DI=1;HC164_DI=0;//LCD1602吸收數據
}

延時函數

void Delay100us()    //@24.000MHz
{
  unsigned char i, j;


  i = 4;
  j = 27;
  do
  {
    while (--j);
  } while (--i);
}
//測試600us延時能用
void LCD1602_Delay()
{
  Delay100us();Delay100us();
  Delay100us();Delay100us();
  Delay100us();Delay100us();
  Delay100us();Delay100us();
}

初始化代碼

void LCD1602_Init()//LCD1602初始化
{
  LCD1602_Write_Data(0,0x02);//光標復位
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x28);//四位總線,雙行顯示
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x01);//清除顯示
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x06);//光標移動方向
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x0c);//整體顯示開,無光標
  LCD1602_Delay();
  LCD1602_Write_Data(0,0x14);//光標隨著字右移
  LCD1602_Delay();
}

以上代碼差不多了,工程代碼分享到粉絲群了,公眾號后臺可以加粉絲群下載。

PCB工程分享,此工程本人沒有測試打樣。

圖片

圖片

總結:使用74HC164+與門,2個IO口就能控制LCD1602了,但是驅動效率低一些。沒有74HC595的3線控制快。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6006

    文章

    44019

    瀏覽量

    622043
  • lcd
    lcd
    +關注

    關注

    34

    文章

    4289

    瀏覽量

    164484
  • 數碼管
    +關注

    關注

    31

    文章

    1831

    瀏覽量

    90041
  • LCD1602
    +關注

    關注

    14

    文章

    606

    瀏覽量

    52054
  • IO口
    +關注

    關注

    3

    文章

    164

    瀏覽量

    23784
收藏 人收藏

    評論

    相關推薦

    LCD1602#單片機

    單片機LCD1602
    Super IC
    發布于 :2022年05月25日 12:59:39

    求助關于LCD1602驅動

    我從網上下載了一單片機4位驅動LCD1602的程序,源程序用的是P2,
    發表于 07-19 21:38

    LCD1602自定義顯示字符及漢字

    ,要不然驅動不了,因為單片機的四組IO 就P0的內部無上拉,驅動能力弱!看下面的圖:在P0
    發表于 08-03 15:08

    51單片機僅用SDA,SCL兩怎樣控制IIC LCD1602顯示

    ` 本帖最后由 763439226 于 2013-8-3 12:04 編輯 各位發燒友們,請幫忙看看啊,手里有一IIC LCD模塊,用的是PCF8574T控制LCD1602,51單片機
    發表于 08-03 12:02

    51單片機lcd1602程序詳解

    51單片機lcd1602程序詳解,LCD1602是我們常用的一種顯示屏,一直想寫一些關于元器件的介紹和使用。今天就來從LCD1602開始。
    發表于 07-19 09:20

    LCD1602什么意思?

    一行可以顯示16字符,一共有兩行?,F在我們來看看如何使用簡單的IO控制和延時來實現操作LCD1602液晶模塊。既然是用單片機控制LCD1602
    發表于 07-21 09:24

    51單片機驅動 LCD1602液晶顯示系統

    51單片機驅動 LCD1602液晶顯示系統,51單片機驅動 LCD1602液晶顯示系統PROTE
    發表于 07-21 07:35

    51單片機是怎樣驅動LCD1602

    51單片機驅動LCD1602顯示原理及例程1.LCD1602A介紹2.LCD1602A中文手冊 下載3.
    發表于 11-17 07:51

    熟悉LCD1602單片機的電路連接

    一、實驗目的:(一)熟悉 LCD1602單片機的電路連接;(二)熟悉 LCD1602 的引腳功能;(三)掌握 LCD1602 的時序;(四)掌握
    發表于 11-18 06:23

    單片機原理及應用LCD1602顯示原理

    單片機原理及應用LCD1602顯示原理,為了讓你們更快掌握1602的使用
    發表于 06-15 15:53 ?17次下載

    基于51單片機LCD1602四數據線驅動程序,LCD1602單片機驅動程序

    基于51單片機LCD1602四數據線驅動程序,LCD1602單片機驅動程序
    的頭像 發表于 09-20 19:43 ?1564次閱讀

    51單片機驅動LCD1602顯示原理及例程

    51單片機驅動LCD1602顯示原理及例程1.LCD1602A介紹2.LCD1602A中文手冊 下載3.
    發表于 11-10 19:51 ?149次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>驅動</b><b class='flag-5'>LCD1602</b>顯示原理及例程

    單片機LCD1602 的應用實驗

    一、實驗目的:(一)熟悉 LCD1602單片機的電路連接;(二)熟悉 LCD1602 的引腳功能;(三)掌握 LCD1602 的時序;(四)掌握
    發表于 11-11 15:21 ?16次下載
    <b class='flag-5'>單片機</b>:<b class='flag-5'>LCD1602</b> 的應用實驗

    51單片機驅動——LCD1602

    51單片機驅動——LCD16021.描述51單片機控制LCD1602屏幕顯示測量數據、固定字符串等,大家復制過去可以直接使用,相關注釋我已標
    發表于 11-21 09:06 ?22次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>驅動</b>——<b class='flag-5'>LCD1602</b>

    51單片機 LCD1602驅動顯示(模板)+Proteus

    51單片機 LCD1602驅動顯示(模板)+Proteus本項目工程篇,只展示LCD1602驅動顯示,不涉及其他外設
    發表于 11-23 17:06 ?30次下載
    51<b class='flag-5'>單片機</b> <b class='flag-5'>LCD1602</b><b class='flag-5'>驅動</b>顯示(模板)+Proteus
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>