目錄
前言:
一. LCD1602模塊簡介
二. 代碼功能實現
三.總結
前言:
本文主要是51單片機的LCD液晶顯示,使用的是LCD1602.下面是詳細介紹和完整代碼,歡迎大家的點贊,評論和關注.感謝.
一. LCD1602模塊簡介
LCD1602 模塊具有以下特點:
顯示特點:
- 可以顯示兩行每行 16 個字符。
- 能清晰地顯示字母、數字和一些簡單符號。
優點:
- 成本相對較低。
- 顯示內容直觀,易于理解。
基本構成:
- 液晶顯示屏。
- 控制電路。
接口類型:
- 常見的有并行接口和串行接口。
工作原理:
- 通過向特定引腳發送指令和數據來控制顯示內容。
應用場景:
- 各種小型電子設備的信息顯示,如計算器、小型儀器儀表等。
- 智能家居設備的簡單狀態顯示。
使用注意事項:
- 要注意引腳的正確連接。
- 按照規格書正確設置初始化參數。
- 避免在極端溫度和濕度環境下使用。
LCD1602 模塊因其簡單易用且能滿足基本的字符顯示需求,在很多電子產品中得到了廣泛應用。
? ? ? ? 引腳:VSS為電源地GND;VDD為電源正極5V;RS為寄存器選擇,高電平時選擇數據寄存器,低電平時選擇指令寄存器;R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作.當RS和R/W共同 為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當 RS為高電平R/W為低電平時可以寫入數據;E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令;D0~D7為8位雙向數據線;
二. 代碼功能實現
lcd.h
主要是初始化,和寫入數據,寫入命令
#include "lcd.h"void Lcd1602_Delay1ms(uint c) //誤差 0us
{uchar a,b;for (; c>0; c--){for (b=199;b>0;b--){for(a=1;a>0;a--);} }}void LcdWriteCom(uchar com) //寫入命令
{LCD1602_E = 0; //使能LCD1602_RS = 0; //選擇發送命令LCD1602_RW = 0; //選擇寫入LCD1602_DATAPINS = com; //放入命令Lcd1602_Delay1ms(1); //等待數據穩定LCD1602_E = 1; //寫入時序Lcd1602_Delay1ms(5); //保持時間LCD1602_E = 0;
}void LcdWriteData(uchar dat) //寫入數據
{LCD1602_E = 0; //使能清零LCD1602_RS = 1; //選擇輸入數據LCD1602_RW = 0; //選擇寫入LCD1602_DATAPINS = dat; //寫入數據Lcd1602_Delay1ms(1);LCD1602_E = 1; //寫入時序Lcd1602_Delay1ms(5); //保持時間LCD1602_E = 0;
}void LcdInit()
{LcdWriteCom(0x38); //開顯示LcdWriteCom(0x0c); //開顯示不顯示光標LcdWriteCom(0x06); //寫一個指針加1LcdWriteCom(0x01); //清屏LcdWriteCom(0xC0); //設置數據指針起點
}
lcd.h
#ifndef __LCD_H_
#define __LCD_H_#include<reg52.h>//---重定義關鍵詞---//
#ifndef uchar
#define uchar unsigned char
#endif#ifndef uint
#define uint unsigned int
#endif#define LCD1602_DATAPINS P0
sbit LCD1602_E=P2^7;
sbit LCD1602_RW=P2^6;
sbit LCD1602_RS=P2^5;void Lcd1602_Delay1ms(uint c); void LcdWriteCom(uchar com);void LcdWriteData(uchar dat);void LcdInit(); #endif
main.c
封裝要輸出的字符
u8 Disp[]=" hello work! ? ? ";
u8 Disp2[]=" 2024-05-20 ? ? ";
#include "reg52.h"
#include "lcd.h"typedef unsigned int u16;
typedef unsigned char u8;u8 Disp[]=" hello work! ";
u8 Disp2[]=" 2024-05-20 ";void main(void)
{u8 i,j;LcdInit();LcdWriteCom(0x80); //設置數據指針起點for(i=0;i<16;i++){LcdWriteData(Disp[i]); }LcdWriteCom(0xC0); //設置數據指針起點for(j=0;j<16;j++){LcdWriteData(Disp2[j]); } while(1);
}
三.總結
以下是關于 51 單片機的 LCD 液晶顯示的總結:
優點:
- 可以直觀地顯示各種信息,如字符、數字、圖形等。
- 提供清晰、穩定的顯示效果。
- 相對容易控制和編程。
基本原理:
- 通過控制單片機的引腳與 LCD 模塊進行通信。
- 發送指令和數據來配置顯示模式、顯示內容等。
主要步驟:
- 初始化 LCD 模塊,包括設置工作模式、顯示開關等。
- 編寫代碼向 LCD 寫入要顯示的數據或指令。
- 根據需要不斷更新顯示內容。
常見應用:
- 儀器儀表的顯示界面。
- 簡單的人機交互界面。
- 各種數據監測和顯示系統。
注意事項:
- 要正確連接單片機和 LCD 模塊的引腳。
- 注意指令和數據的傳輸格式和時序要求。
- 考慮顯示內容的刷新頻率以保證良好的視覺效果。
總之,51 單片機結合 LCD 液晶顯示為各種嵌入式應用提供了一種有效的信息展示方式,在很多項目中都有廣泛應用。