1.芯片簡介
LCD1602顯示屏為字符顯示屏,顯示字符為16*2。采用 LCD 顯示一個字符時比較復雜,因為一個字符由 6×8 或 8×8 點陣組成,既要找到和顯示屏幕上某幾個位置對應的顯示 RAM 區的 8 字節,還要使每字節的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內帶字符發生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據在 LCD1602上開始顯示的行列號及每行的列數找出顯示 RAM 對應的地址,設立光標,在此送上該字符對應的代碼即可。
主要特點如下
- 顯示容量為16×2個字符;
- 芯片工作電壓為4.5~5.5V,最佳工作電壓為5.0V;
- 工作電流為2.0mA(5.0V);
- 字符尺寸為2.95×4.35(W×H)mm。
2. 24C02引腳定義
- VSS(1) :顯示屏電源地;
- VDD(2) :顯示屏電源;
- V0(3) :V0為液晶顯示器對比度調整端;
- RS(4) :寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器;
- RW(5) :讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數據;
- EN(6) :使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令;
- D0-D7(7-14) :8位雙向數據線;
- A(15) :背光正極;
- K(16) :背光負極;
3.LCD1602控制時序
(1)讀操作時序如圖:
(2)寫操作時序如圖
4.LCD1602驅動程序
(1)LCD1602.h
#ifndef __LCD1602_H__
#define __LCD1602_H__
#include< reg52.h >
sbit LCD1602_RS = P2^6;
sbit LCD1602_RW = P2^5;
sbit LCD1602_E = P2^7;
#define LCD1602_Data P0
void delay_50us_1602(unsigned int t);
void LCD1602_write_com(unsigned char com);
void LCD1602_write_data(unsigned int dat);
void LCD1602_init(void);
/*******************************************
函數名稱:Disp_ZF
功 能:控制液晶顯示字符
參 數:addr--顯示位置的首地址
pt--指向顯示數據的指針
num--顯示字符個數
返回值 :無
********************************************/
void LCD1602_Disp_ZF(unsigned char addr,const unsigned char * pt,unsigned char num);
#endif
(2)LCD1602.c
#include "LCD1602.h"
//延時函數
void delay_50us_1602(unsigned int t)
{
unsigned char j;
for(;t >0;t--)
for(j=19;j >0;j--);
}
//LCD1602寫指令
void LCD1602_write_com(unsigned char com)
{
LCD1602_E = 0;
LCD1602_RS = 0;
LCD1602_RW = 0;
LCD1602_Data= com;
delay_50us_1602(10);
LCD1602_E = 1;
delay_50us_1602(20);
LCD1602_E = 0;
}
//LCD1602寫數據
void LCD1602_write_data(unsigned int dat)
{
LCD1602_E = 0;
LCD1602_RS = 1;
LCD1602_RW = 0;
LCD1602_Data = dat;
delay_50us_1602(10);
LCD1602_E = 1;
delay_50us_1602(20);
LCD1602_E = 0;
}
//LCD1602初始化
void LCD1602_init(void)
{
delay_50us_1602(300);
LCD1602_write_com(0X38);
delay_50us_1602(100);
LCD1602_write_com(0X38);
delay_50us_1602(100);
LCD1602_write_com(0X38);
LCD1602_write_com(0X38);
LCD1602_write_com(0X08);
LCD1602_write_com(0X01);
LCD1602_write_com(0X06);
LCD1602_write_com(0X0C);
}
void LCD1602_Disp_ZF(unsigned char addr,const unsigned char * pt,unsigned char num)
{
unsigned char i;
LCD1602_write_com(addr);
for(i = 0;i < (num*1);i++)
LCD1602_write_data(*(pt++));
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
控制器
+關注
關注
112文章
16389瀏覽量
178439 -
顯示屏
+關注
關注
28文章
4493瀏覽量
74426 -
電平
+關注
關注
5文章
361瀏覽量
39929 -
發生器
+關注
關注
4文章
1368瀏覽量
61719 -
lcd1602顯示
+關注
關注
0文章
10瀏覽量
7933
發布評論請先 登錄
相關推薦
如何控制LCD1602顯示屏的光標?
(賬號里只有一積分了)本人新手一枚,正在做一個單片機開發的小項目,想問一下如何控制LCD1602顯示屏里的光標啊?在網上找到了這個函數//獲取光標位置的函數void LCD_cursor(uchar
發表于 04-10 20:56
LCD1602顯示屏怎么連線呢
一般無特殊計劃 買的LCD1602顯示屏是5V版本的,不是3.3特殊版本,這時候怎么連線。下圖畫正方形的2個孔,上面是5V,下面是板子的GND。下圖右上角的VCC是3.3V.接線方式:成功:
發表于 11-29 07:17
LCD1602顯示屏的相關資料分享
說明 本文并非原創,而是結合了兩篇博文,需要看兩篇博文原創的可以直接點擊本文最后的鏈接。一、LCD1602顯示屏的具體引腳與基本配置一般來說,LCD1602顯示屏共有16個引腳,各個廠
發表于 12-03 06:34
請問LCD1602顯示屏能顯示中文漢字嗎?
LCD1602顯示屏是外文顯示屏,它本身帶的ROM固化的字型庫,只有英文數字特殊符號和日語假名,沒中文。這樣的屏能顯示中文嗎?
發表于 10-28 08:07
使用STM8S003單片機驅動LCD1602顯示屏的程序和工程文件免費下載
本文檔的主要內容詳細介紹的是使用STM8S003單片機驅動LCD1602顯示屏的程序和工程文件免費下載。
發表于 10-15 08:00
?64次下載
LCD1602顯示屏的資料合集免費下載
LCD1602顯示屏的資料合集免費下載包括了:LCD1602顯示屏技術手冊,庫文件,Arduino參考程序,1602基本
發表于 05-27 08:00
?60次下載
單片機控制LCD1602顯示屏動態顯示字符串
仿真電路圖:仿真實驗結果:C語言程序代碼:/*-----------------------------------------------名稱:LCD1602論壇:www.doflye.net編寫
發表于 11-18 12:36
?10次下載
(單片機/FPGA)LCD1602基礎理論
說明 本文并非原創,而是結合了兩篇博文,需要看兩篇博文原創的可以直接點擊本文最后的鏈接。一、LCD1602顯示屏的具體引腳與基本配置一般來說,LCD1602顯示屏共有16個引腳,
發表于 11-23 17:51
?15次下載
評論