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=0,RW=0時,寫入指令;當RS=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:
顯示開關游標——0x0C、0x06:
復位——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設計)