娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月22日(星期日)

2021年06月22日 | LCD1602(以51單片機為例)

發布者:breakthrough3 來源: eefocus關鍵字:LCD1602  51單片機  寄存器 手機看文章 掃描二維碼
隨時隨地手機看文章

介紹

名字含義

LCD1602名字中16代表一行中最多16個字符,2代表兩行。


引腳說明

以我的這塊LCD1602為例。
LCD1602A

  1. VSS: S=series 表示公共連接的意思,通常指電路公共接地端電壓。

  2. VDD:D=device 表示器件的意思, 即器件內部的工作電壓。

  3. VO:液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,使用時可以通過一個10K的電位器調整對比度,電壓越低對比度越高。(自己接線的話需要解決VO口外接電阻的問題,不能直接接地,因為直接接地導致顯示不正常)

  4. RS:寄存器選擇輸入端
    RS=1:指向數據寄存器
    RS=0:指向指令寄存器
    LCD1602看到 RS為高時,就明白要給我傳送數據了;看到RS為低時,就知道要給我指令了.

  5. RW:讀寫控制端,
    RW=0: 寫操作
    RW=1:讀操作
    當RW為低的時候,液晶模塊就知道了,單片機要給我“寫”了;當RW為高的時候,液晶模塊也知道了,單片機要“讀”了。

  6. E:使能信號輸入端
    讀操作時,高電平有效;
    寫操作時,下降沿有效;
    E給個一定寬度的脈沖,LCD1602才開始執行讀或者寫操作。

  7. D0~D7:8位雙向數據端。
    通過D0-D7這8根線來傳輸(比如都放在P1口),比如我要傳送的指令為x022,那么就把這個數據0x22放到P2端口,當LCD1602看到“寫”和“指令”的時候,就知道把P1端口上的0x22這個指令拿過來了。這樣就達到了“寫”“指令”“0x22”的目的。

  8. A和K:空腳或背燈電源。A引腳背光正極,K引腳背光負極。

RSRW操作
00寫命令操作(初始化、光標定位等)
01讀狀態操作(讀忙標志)
10寫數據操作(要顯示的內容)
11讀數據操作(可以把顯示存儲區中的數據反讀出來)

特性

  1. 3.3V或5V工作電壓,對比度可調

  2. 內含復位電路

  3. 提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能

  4. 有80字節顯示數據存儲器DDRAM

  5. 內建有192個5X7點陣的字型的字符發生器CGROM

  6. 8個可由用戶自定義的5X7的字符發生器CGRAM



字符集

在51單片機編程中還可以用字符型常量或變量賦值,如’B’。因為CGROM儲存的字符代碼與我們PC中的字符代碼是基本一致的,因此我們在向DDRAM寫C51字符代碼程序時甚至可以直接用P1='B’這樣的方法。PC在編譯時就把’B’先轉換為42H代碼了。


字符代碼0x00~0x0F為用戶自定義的字符圖形RAM(對于5X8點陣的字符,可以存放8組,5X10點陣的字符,存放4組),就是CGRAM了。


0x20~ 0x7F為標準的ASCII碼,0xA0~ 0xFF為日文字符和希臘文字符,其余字符碼(0x10 ~ 0x1F及0x80~0x9F)沒有定義。


程序編寫

初始化:LCD上電時,都必須按照一定的時序對LCD進行初始化操作,主要任務是設置LCD的工作方式、顯示狀態、清屏、輸入方式、光標位置等。


例子(顯示兩行內容)

#include

 #include  //其中有nop函數的定義

/*對于延時很短的,要求在us級的,采用“_nop_”函數,

這個函數相當匯編NOP指令,延時幾微秒。NOP指令為單周期指令,

可由晶振頻率算出延時時間,對于12M晶振,延時1uS。*/

#define uchar unsigned char

#define uint unsigned int

sbit RS=P2^6;  //定義數據命令選擇端

sbit RW=P2^5;  //定義讀寫選擇端

sbit E=P2^7;   //定義使能端

 //注意:具體為哪一個IO口由你自己板子的接線來定。

  uchar text1[]="bahu yang      ";   //第一行要顯示的字符

  uchar text2[]="zhenlihai ";   //第二行要顯示的字符

      void delay_ms(uint z)  //毫秒級延時函數

    {

       uint i,j;

       for(i=z;i>0;i--)

          for(j=110;j>0;j--);

    }

    //為什么要判忙?

  /*因為LCD1602控制芯片也是一個CPU,

 它在處理上位機發來的某些指令的時候,耗時較長。

 如復位命令,全屏清除命令等。

 另外,LCD1602的CPU速度較慢,上位機較快時,

 LCD1602CPU來不及完成上條命令,會對后續命令不予理睬,

 這樣就造成了命令序列不能正確完整地到達LCD1602CPU,以至于顯示不正常。*/

 uchar Lcd1602_ReadBusy()   //判斷lcd1602是否處于忙的狀態,即讀忙

    {

       uchar temp;

       RS=0;

       RW=1;

       _nop_();

       P0=0xff;     //讀某IO口數據前,先將該口置為1

       /*原因:電路中存在的一個普遍的現象:

高電平很容易被低電平拉低,而低電平一般不可能被高電平拉高。

所以在讀數據之前將單片機IO口拉高才不會影響原來數據線上的數據!*/

       _nop_();

       E=1;

       _nop_();

       temp=P0;   //讀取此時lcd1602的狀態字

       _nop_();

       E=0;

       return (temp&0x80);  

       /*狀態字為temp(8位2進制數)的最高位,最高位為1表示禁止讀寫,為0表示允許讀寫,即temp&0x80

        得1表示忙 ,

        得0表示不忙*/

        }

        void Lcd1602_WriteCom(uchar com)  //寫命令

    {

       while(Lcd1602_ReadBusy());  //判忙

       RS=0;   //命令

       RW=0;   //寫

       _nop_();

       P0=com;   //準備發送命令

       _nop_();

       E=1;      //由時序圖知,使能端為高電平時才允許數據交換

       _nop_();

       _nop_();

       E=0;      //由時序圖知,使能端在完成數據交換后要拉低

       _nop_();

       _nop_();   

    }

    void Lcd1602_WriteData(uchar dat)  //寫數據

    {

       while(Lcd1602_ReadBusy());   //判忙

       RS=1;   //數據

       RW=0;   //寫

       _nop_();

       P0=dat;

       _nop_();

       E=1;

       _nop_();

       _nop_();

       E=0;

       _nop_();

       _nop_();   

    }

    void Lcd1602_init()   //初始化函數

    {

       delay_ms(15);

       Lcd1602_WriteCom(0x38);   //顯示模式設置

       delay_ms(5);

       Lcd1602_WriteCom(0x38);

       delay_ms(5);

       Lcd1602_WriteCom(0x38);

       Lcd1602_WriteCom(0x0c);  //顯示開

       Lcd1602_WriteCom(0x01);  //顯示清屏

       Lcd1602_WriteCom(0x06);  //顯示光標,寫一個字符數據后,地址指針后移

    }

     void main()

    {

       uchar i,j;

       Lcd1602_init();

       Lcd1602_WriteCom(0x80);   //0x80是第一行的第一個字符的地址

       for(i=0;i<10;i++)  

       Lcd1602_WriteData(text1[i]);

       Lcd1602_WriteCom(0x80+0x40);   //0xc0是第二行的第一個字符的地址

      /*表示的方法有很多,可以用0xc0,0x80+0x40,0x80|0x40等等*/

       for(j=0;j<10;j++)

            Lcd1602_WriteData(text2[j]);

    }


效果圖

效果圖


關鍵字:LCD1602  51單片機  寄存器 引用地址:LCD1602(以51單片機為例)

上一篇:51單片機矩陣鍵盤掃描和顯示
下一篇:51單片機開發之動態數碼管

推薦閱讀

不久的將來,智能音箱和家庭助手將隨處可見。根據朱尼普研究公司的數據顯示,在2022年前,將有超過7000萬的美國家庭安裝至少一臺智能音箱。自從2015年首次推出以來,智能音箱的功能已經有了顯著提升。音箱可向用戶傳遞音頻內容,這仍是消費者為他們的家庭添置一臺(或多臺)音箱的主要原因。這些音箱配有聲控數字助手,可與用戶保持“通信”。音箱上的其他...
2019年6月21日,北京訊——德州儀器(TI)(NASDAQ:TXN)今日推出了業界新款汽車系統基礎芯片(SBC)TCAN4550-Q1。該芯片集成了使用靈活數據速率控制器局域網(CAN FD)的控制器和收發器,旨在滿足車載網絡對高帶寬和數據速率靈活性的需求。它采用了幾乎所有微控制器的串行外圍接口(SPI)總線來部署CAN FD接口或提高系統中CAN FD總線端口的數量,同時...
國際獨立第三方檢測、檢驗和認證機構德國萊茵 TUV 集團(簡稱“TUV 萊茵”)向海信視像科技股份有限公司(簡稱“海信”)的安卓智能電視和 VIDAA 智能電視頒發產品隱私保護認證。TUV 萊茵大中華區工業服務與信息安全事業群副總裁、高級工程師陳偉康博士、TUV 萊茵青島公司執行董事王會波、海信國際營銷副董事長劉鑫、助理副總裁劉勇等雙方代表出席了...
三星雖然確定不出席線下的 MWC 2021,但官方表示將在北京時間 6 月 29 日凌晨 1:15 舉行一場線上直播?! 『笾辛谐隽耸謾C、平板、筆記本(或是折疊屏設備)、手表等產品的輪廓,目前不清楚是否會有新品發布,但大概率是公布公司戰略,并且透露一些軟件方面的改進。  官方表示,將在該直播中討論“不斷擴大的 Galaxy 設備生態系統...

史海拾趣

問答坊 | AI 解惑

二極管基本電路及其分析方法

二極管基本電路及其分析方法   在電子技術中,二極管電路得到廣泛的應用。本節只介紹幾種基本的電路,如限幅電路、開關電路、低電壓穩壓電路等。  二極管是一種非線性器件,因而二極管電路一般要采用非線性電路的分析方 ...…

查看全部問答∨

發現了一個測試測量的研討會,可以中NOKIA手機

分享給大家,想看那個研討會的詳細內容,去那個網站看看吧! http://www.eepw.com.cn/event/action/rigol2008/index.html 獎品 特等獎(1名):NOKIA 3500 C 手機 1部 一等獎(1名):iPod shuffle 二等獎(15名):精美U盤(1G) 三等獎(50 ...…

查看全部問答∨

譜尼測試:植根本土、服務中國

在第十屆高交會上電子展上,一大亮點是來自全球的測試機構紛紛登陸中國,例如瑞士SGS、德國萊茵、法國國際檢測局等在高交會上大力宣傳各自的服務特色,不過,本土測試機構并未示弱,它們也在高交會上宣傳自己的特色,并與這些外國測試機構同臺競技 ...…

查看全部問答∨

FPGA工程師面試試題集錦

[local]1[/local]免費共享…

查看全部問答∨

如何開始DSP編程

如何開始DSP編程…

查看全部問答∨

開發過wince dhcp的請進:如何強制使wince客戶端發起dhcp請求

如題,也就是說如何通過程序控制實現wince客戶端發起wince請求, 也就是說實現如圖所示的“更新”按鈕的作用。 用wince上可用的API函數實現也可以,能告訴wince源碼中“更新”按鈕是如何實現的最好了,哈哈 …

查看全部問答∨

關于這個軟件的詳細資料。這個軟件是做什么的,我想做它的界面,應該怎么入手?用c/c++做難嗎?(c,我是菜鳥)。用JAVA呢?需要多久?

關于這個軟件的詳細資料。這個軟件是做什么的,我想做它的界面,應該怎么入手?用c/c++做難嗎?(c,我是菜鳥)。用JAVA呢?需要多久? 感謝大俠給我好的建議。謝謝。lifelongstar@sina.com F:\\a.bmp…

查看全部問答∨

CE6及BSP安裝求救!!!!緊急啊

我之前安裝開發環境的時候,發現PB中Device Driver中的SD選項沒有,后來把Updates全裝上了,就出現了SD選項。 前幾天系統崩潰了,重新裝上所有東西后發現就是SD選項沒有,各位有沒有遇到過這種情況啊????急 …

查看全部問答∨

led 燈和節能燈的比較

replyreload += \',\' + 688615;Timson,如果您要查看本帖隱藏內容請回復…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 中西区| 萍乡市| 高州市| 台州市| 蛟河市| 忻城县| 新乡县| 永修县| 宁乡县| 龙游县| 长兴县| 息烽县| 二连浩特市| 乌兰察布市| 山丹县| 佛山市| 兴和县| 防城港市| 台安县| 西畴县| 周宁县| 米泉市| 灵宝市| 青田县| 武冈市| 绥阳县| 桓仁| 额敏县| 岫岩| 新蔡县| 乐安县| 瑞金市| 浦城县| 大埔区| 包头市| 无棣县| 铁力市| 长治市| 龙山县| 哈尔滨市| 札达县|