51單片機對LCD1602液晶的驅動設計

2020-11-23 電子工程專輯

51單片機——LCD1602

1、1602液晶讀寫時序

(1)、讀狀態

RS=L,R/W=H,E=H。(判斷忙完畢後釋放總線)

(2)、讀數據

RS=H,R/W=H,E=H。

(3)、寫指令

RS=L,R/W=L,D0~D7=指令碼,E=高脈衝

(4)、寫數據

RS=H,R/W=L,D0~D7=數據,E=高脈衝


2、液晶顯示驅動文件

#include

#define LCD1602_DB P0

sbit LCD1602_RS = P1 ^ 0;

sbit LCD1602_RW = P1 ^ 1;

sbit LCD1602_E = P1 ^ 5;

/* 等待液晶準備好 */

void LcdWaitReady()

{

unsigned char sta;

LCD1602_DB = 0xFF;

LCD1602_RS = 0;

LCD1602_RW = 1;

do

{

LCD1602_E = 1;

sta = LCD1602_DB; //讀取狀態字

LCD1602_E = 0;

}

while (sta & 0x80); //bit7等於1表示液晶正忙,重複檢測直到其等於0為止

}

/* 向LCD1602液晶寫入一字節命令,cmd-待寫入命令值 */

void LcdWriteCmd(unsigned char cmd)

{

LcdWaitReady();

LCD1602_RS = 0;

LCD1602_RW = 0;

LCD1602_DB = cmd;

LCD1602_E = 1;

LCD1602_E = 0;

}

/* 向LCD1602液晶寫入一字節數據,dat-待寫入數據值 */

void LcdWriteDat(unsigned char dat)

{

LcdWaitReady();

LCD1602_RS = 1;

LCD1602_RW = 0;

LCD1602_DB = dat;

LCD1602_E = 1;

LCD1602_E = 0;

}

/* 設置顯示RAM起始地址,亦即光標位置,(x,y)-對應屏幕上的字符坐標 */

void LcdSetCursor(unsigned char x, unsigned char y)

{

unsigned char addr;

if(y == 0) //由輸入的屏幕坐標計算顯示RAM的地址

{

addr = 0x00 + x; //第一行字符地址從0x00起始

}

else

{

addr = 0x40 + x; //第二行字符地址從0x40起始

}

LcdWriteCmd(addr | 0x80); //設置RAM地址

}

/* 在液晶上顯示字符串,(x,y)-對應屏幕上的起始坐標,str-字符串指針 */

void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str)

{

LcdSetCursor(x, y); //設置起始地址

while (*str != 『\0』) //連續寫入字符串數據,直到檢測到結束符

{

LcdWriteDat(*str++);

}

}

/* 初始化1602液晶 */

void InitLcd1602()

{

LcdWriteCmd(0x38); //16*2顯示,5*7點陣,8位數據接口

LcdWriteCmd(0x0C); //顯示器開,光標關閉

LcdWriteCmd(0x06); //文字不動,地址自動+1

LcdWriteCmd(0x01); //清屏

}

為了方便大家更好的學習,您還可以關注暢學電子和EDA的公眾號,每天推送相關知識,希望能對你的學習有所幫助!

相關焦點

  • lcd1602中文資料分享:lcd1602接線圖_lcd1602與單片機連接圖
    lcd1602液晶屏是一種圖形點陣顯示器,顯示原理簡單易懂,都是液晶屏內部的液晶材料變化而顯示不同的字符,因為液晶是具有流動特性的物質,所以只需外加很微小的力量即可使液晶分子運動,以最常見普遍的向列型液晶為例,液晶分子可輕易的借著電場作用使得液晶分子轉向,由於液晶的光軸與其分子軸相當一致,故可藉此產生光學效果,而當加於液晶的電場移除消失時,液晶將借著其本身的彈性及黏性,液晶分子將十分迅速的回撤消來未加電場前的狀態
  • lcd1602接線圖_lcd1602與單片機連接圖
    lcd1602液晶屏是一種圖形點陣顯示器,顯示原理簡單易懂,都是液晶屏內部的液晶材料變化而顯示不同的字符,因為液晶是具有流動特性的物質,所以只需外加很微小的力量即可使液晶分子運動,以最常見普遍的向列型液晶為例,液晶分子可輕易的借著電場作用使得液晶分子轉向,由於液晶的光軸與其分子軸相當一致,故可藉此產生光學效果,而當加於液晶的電場移除消失時,液晶將借著其本身的彈性及黏性,液晶分子將十分迅速的回撤消來未加電場前的狀態
  • 51單片機玩轉物聯網基礎篇06-LCD1602液晶顯示器
    前言本節我們開始學習LCD1602,LCD1602是字符型液晶顯示屏,在實際項目中應用非常廣泛,學完本節就可以逐步開發一些好玩的應用了。一、基礎知識1.LCD1602簡介LCD1602是字符型液晶顯示模塊,專門用於顯示字母、數字、符號等點陣式LCD,顧名思義,LCD1602一共可以顯示兩行,每一行能夠顯示16個字符數據,採用5V供電,具有低功耗、長壽麵、搞可靠性等特性,實物圖如下:
  • lcd1602隻亮不顯示_lcd1602簡單顯示程序
    LCD1602液晶顯示器是廣泛使用的一種字符型液晶顯示模塊,通常跟單片機一起使用,由單片機控制顯示的內容,那麼當遇到lcd1602隻亮不顯示怎麼辦?   4、檢查LCD1602連接的排線是否有斷開的線或者接觸不良的接口,也有可能是排線損壞引起的原因,用數字萬用表的導通測量檔位測量排線以及接線是否正常導通.   5、以上硬體都檢查正常沒有問題的就檢查下驅動程序,檢查驅動程序是否正確,如圖所示。
  • 全方位解析LCD1602特性及單片機顯示應用
    1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。
  • Arduino基礎入門篇32—LCD1602驅動庫的使用
    LCD1602顯示本篇介紹液晶驅動庫「LiquidCrystal」,通過庫來驅動LCD1602刷新顯示秒數。1.
  • Arduino 課時七:控制LCD1602液晶顯示屏
    一.硬體準備:LCD1602液晶顯示屏1塊,LCD通用I2C轉接板,杜邦線若干LCD1602液晶顯示屏是經典的工業字符型液晶屏
  • Arduino 通過 I2C 驅動 LCD1602 液晶屏
    LCD 1602 液晶屏模塊的使用,之前在「Arduino用超聲波模塊+LCD1602測距並顯示」一文中有詳細介紹。
  • 基於51單片機定時器的電子時鐘設計方案
    單片機定時器在目前的產品研發和設計過程中,其主要作用是進行精準的時間定值,因此在對時間控制要求較高的數控領域中,單片機定時器的身影隨處可見。
  • 關於lcd1602使用中的一些問題
    lcd1602是在做畢業設計中使用最多的一款顯示憑,主要優勢就是便宜。而且經典。在買51單片機開發板時,一般都會給配發一塊!
  • 一個51單片機實現數字時鐘(1602顯示)
    用單片機實現數字時鐘,關於時間顯示,是用的1602液晶,C51單片機,然後再加一個定時器,每到一秒就動態的更新一下液晶的時間顯示
  • LCD 1602 穩定顯示
    1LCD 1602簡介筆記整理LCD1602可顯示兩行,每行16個字符,不能顯示漢字。16腳的LCD 1602帶背光,14腳的不帶背光。本文引用地址:http://www.eepw.com.cn/article/201611/318599.htm2LCD1602 埠引腳不一一記錄手冊上面是咋個描述LCD 1602的了。記錄一下操作過程,下圖是LCD 1602在51單片機上面的連線。
  • LCD1602液晶顯示屏應用
    lcd-12864應用一、實驗目的四、C代碼如下#include <reg51.h>#include六、實驗體會通過本次課程設計,我掌握了單片機與液晶顯示屏接口程序設計,學習了液晶顯示模塊與單片機接口技術
  • 單片機C語言模塊化編程方法
    模塊化程序設計應該理解以下概述:(1) 模塊即是一個.c 文件和一個.h 文件的結合,頭文件(.h)中是對於該模塊接口的聲明;這一條概括了模塊化的實現方法和實質:將一個功能模塊的代碼單獨編寫成一個.c文件,然後把該模塊的接口函數放在.h文件中.舉例:假如你用到液晶顯示,那麼你可能會寫一個液晶驅動模塊,以實現字符、漢字和圖像的現實,命名為: led_device.c,該模塊的.
  • 51單片機之4位數加法計算器的設計報告
    無源蜂鳴器內部不帶震蕩源,所以用直流信號無法令其鳴叫,必須用2K~5K的方波去驅動它。綜合考慮,為了程序控制的方便,選用了方案一。三 硬體電路設計3.1 計算器控制電路圖圖3 鍵盤電路3.3 LCD1602顯示電路的設計LCD1602液晶屏採用LM016L型號元件,其電路如圖3所示。
  • 基於51系列單片機的智能照明控制系統設計方案
    本文基於51單片機,通過設置時間、感應光照與聲音,針對教學樓和宿舍的不同需求設定照明狀態,實現對照明系統智能動態的控制。測試結果表明該系統可以在不同條件下改變照明狀態,適應不同場所的需求,達到智能控制的目的。  在當今經濟快速發展的社會,電力能源大量地消耗使其已成為緊缺資源,如何節能降耗成為近年來照明系統研究的熱點。
  • 用51單片機實現pwm專題及常見問題 - CSDN
    基於51單片機脈衝寬度調製(即PWM)直流電機轉速快慢以及霍爾測速的項目一、前言1、基於51單片機脈衝寬度調製(即PWM)直流電機轉速快慢以及霍爾測速的項目包括用Keil軟體編寫單片機C語言程序和用
  • 51單片機+PID算法水溫控制系統設計
    本系統設計採用基於PID算法的單片機控制來實現水溫的調控。單片機控制部分採用AT89C51單片機為核心,採用軟體編程,實現用PID算法來控制PWM波的產生,繼而控制電爐的加熱來實現溫度控制。通過編程對PID各參數的調整,來達到提高加溫速度,減小超調的目的。
  • 以STC89C52單片機為核心的電子密碼鎖設計
    電子密碼鎖通常使用ARM和單片機控制,單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的窖碼鎖常使用彙編語言編寫程序,顯示器多數用數碼管。而本文所介紹的電子密獁鎖使用移植性及可讀性強的高級語言C語言編寫,便於修改和增減功能蚤同時採用顯示清楚,功率消耗小而且壽命長的1602 液晶顯示器,顯示更加直觀,使用更加方便。
  • 單片機驅動DS1302時間DS18B20溫度12864液晶顯示完整程序設計
    程序說明:這是一個用51單片機驅動DS1302時間模塊+DS18B20溫度傳感器模塊+12864液晶顯示完整程序設計實例,有四個鍵盤KEY0 到KEY3,key0是修改時間的 首先是秒到分到時到年到月到日到星期 key1是加1 key2是減一 在修改時間狀態再按一下key3的時候就出去並修改時間日期,在平時狀態按著key3再按著key2 就會打開lcd 的燈 單單是只按key3那就是把燈關了