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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20293|回復: 1
收起左側

51單片機LCD顯示的理解,真正去學會運用LCD1602

  [復制鏈接]
ID:425175 發表于 2019-1-30 15:45 | 顯示全部樓層 |閱讀模式
這幾天學了LCD1602模塊及其顯示原理,下面是我對LCD1602顯示的理解。
1.1 LCD1602模塊
1602字符型液晶,常用16*2的點陣顯示(主要是5*7點陣/每字符),初始化好后,寫命令設置顯示坐標,寫數據到8位數據總線上并顯示LCD上。
1.1.1 LCD1602模塊引腳圖
如下圖,為LCD1602模塊的引腳圖(51單片機開發板),通過旋鈕電位器(順時針可以加亮,反之亦然)。
154955d1ro3l3g9ugcv9l3.png
圖1.1.1 LCD1602引腳圖
       GND、VCC分別是電源地、電源正極。
       VO:對比度調整端,若僅僅接地,對比度會很高,常常接上一個幾K的電位器或可變電阻來調節對比度以實現理想的顯示效果。
       RS:寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。
       RW:讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。(一般對于單純的LCD顯示只用到寫操作)。
       E :使能信號。
       DB0-DB7:8個數據I/O口。
       BG_VCC、BG_GND分別是背光電源正極、負極。

1.1.2 LCD1602.h
     下面是LCD1602工作時序,如圖
2.png

圖1.1.2 LCD1602工作時序圖

1.初始化之前需要編寫‘寫命令操作’。
對于WriteCom(),由前面知道,寫操作需要RW為低電平即‘0’,并且通過使RS為低電平即‘0’來選擇命令寄存器,才能寫入命令到DATAPINS。另外,每次命令輸入DATAPINS就位后,令使能信號產生一個下降沿,將DATAPINS的命令寫進LCD1602

  1. void LcdWriteCom(uchar com)      //寫入命令
  2. {
  3.       LCD1602_E = 0;         //使能清零

  4.       LCD1602_RS = 0;        //選擇發送命令
  5.       LCD1602_RW = 0;      //選擇寫入

  6.       LCD1602_DATAPINS = com;    //放入命令
  7.       Lcd1602_Delayms(1);                   //等待數據穩定


  8.       LCD1602_E = 1;           //寫入時序,一個下降沿,將命令傳達到LCD
  9.       Lcd1602_Delayms(5);        //保持時間
  10.       LCD1602_E = 0;
  11. }
復制代碼


2.‘寫數據操作’也類似,不同之處是RS為高電平即‘1’選擇數據寄存器,將數據寫入DATAPINS,其他都一樣。
  1. void LcdWriteData(uchar dat) //寫入數據

  2. {

  3. LCD1602_E = 0; //使能清零
  4. LCD1602_RS = 1; //選擇輸入數據
  5. LCD1602_RW = 0; //選擇寫入
  6. LCD1602_DATAPINS = dat; //寫入數據
  7. Lcd1602_Delayms(1);
  8. LCD1602_E = 1; //寫入時序,一個下降沿
  9. Lcd1602_Delayms(5); //保持時間
  10. LCD1602_E = 0;

  11. }
復制代碼

3.寫命令操作編完后就可以進行LCD1602的初始化了。

  1. void LcdInit()                                         //LCD初始化子程序

  2. {
  3.      LcdWriteCom(0x38);  //功能設定 0011 1000 (8位數據線、顯示2行、每個字符為5*7點陣)

  4.       //
  5.       LcdWriteCom(0x0c);  //顯示開關控制 0000 1100(或+光標不閃爍0x0d:0000 1101)(開顯示、不開光標、光標閃爍或不閃爍)
  6.       LcdWriteCom(0x06);  //進入模式設置 0000 0110(寫入數據后光標右移一位及顯示屏不動)
  7.       LcdWriteCom(0x01);  //清屏
  8.       LcdWriteCom(0x80);  //設置數據指針起點 //DB7為高電平

  9. }
復制代碼

4.調用LCD1602顯示
  1. void  LCD1602_display()

  2. {

  3.       unsigned int i,j;
  4.       unsigned char  Compu[9]="computer";
  5.       unsigned char  Dog[5]="dog";
  6.       LcdInit();
  7.       LcdWriteCom(0x80+15);//第一行顯示C
  8. LcdWriteData(‘C’);
  9. LcdWriteCom(0x80);
  10.    /*其他方式顯示:for循環語句顯示字符串*/
  11.       for(i=0;i<8;i++) //第一行顯示‘computer’

  12.      {
  13.                 LcdWriteData(Compu[i]);
  14.       }

  15.       LcdWriteCom(0x80+0x40);
  16.       for(j=0;j<3;j++)// //第二行顯示‘dog’
  17.      {

  18.                 LcdWriteData(Dog[j]);
  19.       }
  20. }
復制代碼

     好了,今天的分享就先到這,雖然只是小case,但是做個總結還是蠻有意義的!


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:478928 發表于 2019-2-21 18:26 | 顯示全部樓層
nice看了你的總結明白了很多東西
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜大片 | 久久精品久久精品久久精品 | 久久中文字幕一区 | 久久精品视频免费观看 | 亚洲精品中文字幕 | 欧美高清一级片 | 欧美一区二区大片 | 国产91丝袜在线播放 | 日韩黄色小视频 | 国产精品免费一区二区三区 | 日韩视频在线观看一区二区 | 久久久久国产视频 | 成人欧美日韩一区二区三区 | 日韩精品一区二区三区 | 日韩欧美在线观看一区 | 二区中文字幕 | 国产免费又色又爽又黄在线观看 | 怡红院成人在线视频 | 成人免费看片 | 91视频久久| 国产高清视频 | 久久国产精品精品 | 中文字幕精品视频在线观看 | 亚洲一区在线日韩在线深爱 | 超碰97人人人人人蜜桃 | 久久精品久久久久久 | 91精品一区二区三区久久久久久 | 中文字幕第5页 | 中文字幕一区二区三区在线乱码 | 99免费看 | 夜夜艹天天干 | 美女福利网站 | 国产激情一区二区三区 | av免费网址 | 91麻豆精品一区二区三区 | 丁香久久 | 亚洲精品一 | 国产在线视频三区 | 天天操夜夜艹 | 久久精品一级 | 国产一级一片免费播放 |