1. 程式人生 > 其它 >ATmega16開發板教程(7)——LCD1602

ATmega16開發板教程(7)——LCD1602

技術標籤:ATmega16開發板模擬教程ATmega16微控制器模擬例程LCD1602顯示字元數字

​8、LCD1602

LCD1602作為最基礎的字元型液晶顯示屏,能過顯示16x02=32個字元。那麼時序的操作——讀寫是最主要的內容,今天就帶大家一起讀讀時序。

在看時序圖前,對LCD的引腳功能要了解,才能更好的讀懂時序。

這裡除了電源(1、2)、背光(15、16)、對比度(3)外,主要是控制訊號和資料訊號。

RS:資料/命令選擇引腳,即=1寫入資料,=0寫入命令;

RW:讀寫選擇引腳,即=1讀資料,=0寫資料;

EN:使能引腳;

D0-D8:8位資料位。

所以:RS=0RW=0時,寫入指令;當RS=1

RW=0時,寫入資料;當RS=0RW=1時,讀忙訊號;當RS=1,RW=1時,讀資料。

這裡忙訊號主要是D7引腳,即D7=0時,允許讀寫操作,否則LCD正在忙,禁止讀寫。

讀時序:

如圖,RS可為0(讀命令)或1(讀資料),但RW=1時有效,EN從0到1,保持一段時間後回到0。

具體程式碼——讀取忙等待:

說明:RS=0,RW=1時,讀LCD忙位,若=0,則繼續執行,否則等待。

寫時序:

如圖,RS可為0(寫命令)或1(寫資料),但RW=0時有效,EN從0到1,保持一段時間後回到0。

具體程式碼——寫指令和資料:

說明:RS=0,RW=0時,寫命令;RS=1,RW=0時,寫資料。在此之前都會進行忙等待的讀取。

剩下的操作就是對初始化的指令碼進行檢視,例如:

顯示模式——0x38

顯示開關游標——0x0C0x06

復位——0x01

如上圖主要指令介紹,只需要操作4個指令即可初始化LCD1602。

具體其它指令可參見LCD1602的資料手冊。

主函式程式碼實現功能:LCD1602初始化及顯示字串。

/**
******************************************************************************
*   @file      main.c
*   @author    Alex——小白
*   @version   V1.0
*   @date      2021.1.20
*   @brief     LCD1602 Display
*   @store     Proteus模擬店子——公眾號
*   @Link      https://shop484534014.taobao.com/
*   @Email     
[email protected]
****************************************************************************** * @attention All Rights Reserved **/ ​ #include <main.h> ​ void main(void) { LCD.LCD1602_Init(); //LCD初始化 Delay.Delay_ms(1000); while(1) { LCD.LCD1602_WriteStr(1,5,"LCD1602"); } } ​ /******************************************************** End Of File ********************************************************/

如需Proteus和IAR安裝包以及AVR程式設計參考手冊,請關注公眾號:

Proteus模擬店子

可通過檢視歷史記錄,檢視原始碼和模擬工程

(若需Proteus和IAR安裝包以及AVR程式設計參考手冊,後臺回覆:AVR;若需其它設計,後臺回覆:AVR設計