51單片機-LCD液晶顯示

目錄

前言:

一. 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 液晶顯示為各種嵌入式應用提供了一種有效的信息展示方式,在很多項目中都有廣泛應用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24289.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24289.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24289.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 將null轉0 ifnull() coalesce()

做統計報表的時候&#xff0c;有時候不希望查出來的值是null&#xff0c;因為在代碼中需要做大量的判空&#xff0c;最后轉換成0來處理。既然如此&#xff0c;那在sql中查出來就是0&#xff0c;就不用為空而去判空了。 1.IFNULL() ifnull()只能放2個值。 select IFNULL(null,0…

[240608] Zig 發布 v0.13.0 |AMD 新處理器不支持 Win 10 |DuckDuckgo 發布AI匿名聊天服務

目錄 Zig 發布 0.13.0 版本AMD 下一代銳龍處理器不支持 Windows 10DuckDuckgo 發布 AI 匿名聊天服務 Zig 發布 0.13.0 版本 Zig 發布 0.13.0 版本&#xff0c;此次發布的主要目的是升級 zig 工具鏈&#xff0c;發布重點如下&#xff1a; 工具鏈升級&#xff1a; LLVM&#xf…

DevOps的原理及應用詳解(六)

本系列文章簡介&#xff1a; 在當今快速變化的商業環境中&#xff0c;企業對于軟件交付的速度、質量和安全性要求日益提高。傳統的軟件開發和運維模式已經難以滿足這些需求&#xff0c;因此&#xff0c;DevOps&#xff08;Development和Operations的組合&#xff09;應運而生&a…

企業建站響應式網站建設平臺版源碼系統 海量模版可選擇 帶完整的安裝代碼以及搭建教程

系統概述 企業建站響應式網站建設平臺版源碼系統是一款集創新性、實用性和便捷性于一體的建站解決方案。它旨在為用戶提供一站式的網站建設服務&#xff0c;無論你是新手還是經驗豐富的開發者&#xff0c;都能通過該系統輕松實現網站的構建與部署。 該系統采用先進的技術架構…

單鏈表復習 (C語言版)

目錄 一.順序表與鏈表的區別 二.鏈表概念 三.單鏈表 1.單鏈表的開始與初始化 2.單鏈表的打印 3.單鏈表的尾插 重難點&#xff1a;單鏈表實現時的指針詳解 4.單鏈表的頭插 5.單鏈表的尾刪 6.單鏈表的頭刪 小結&#xff1a; 7.單鏈表的查找 8.在指定位置前插入數據 …

mingw64,clang,gcc

MinGW-w64、Clang 和 GCC 都是編譯器&#xff0c;但它們在功能和設計上有一些區別&#xff1a; MinGW-w64 是一個在 Windows 平臺上的開發工具集&#xff0c;它提供了一組 GNU 工具和庫&#xff0c;可以用于編譯和構建本地的 Windows 應用程序。MinGW-w64 的主要目標是提供類似…

GitHub工程獲取第三方PR操作

GitHub工程獲取第三方PR操作 1. 源由2. 獲取第三方PRStep 1&#xff1a;安裝ghStep 2&#xff1a;獲取個人TokenStep 3&#xff1a;通過git協議獲取代碼Step 4&#xff1a;獲取第三方PR分支 3. 總結 1. 源由 通常來說&#xff0c;GitHub上通常有三種場景&#xff1a; 工程管理…

STM32 UART 錯誤代碼 HAL_UART_ERROR_PE

HAL_UART_ERROR_PE 是STM32 HAL庫&#xff08;硬件抽象層庫&#xff09;中UART&#xff08;通用異步收發傳輸器&#xff09;模塊定義的一個錯誤碼&#xff0c;表示“Parity Error”&#xff08;奇偶校驗錯誤&#xff09;。當UART通信過程中檢測到奇偶校驗不匹配時&#xff0c;會…

自動化噴涂生產線方案三

本文介紹自動化噴涂生產線的另外一種方案&#xff0c;單工作站方案&#xff0c;單工作站配置一臺機械臂和一套除塵柜&#xff0c;代替一個工位完成噴涂工藝&#xff0c;其工作原理簡要介紹如下。 一套單工作站的主要組成設備有&#xff0c;10kg負載機械臂一臺主要負責噴涂工藝&…

源碼講解kafka 如何使用零拷貝技術(zero-copy)

前言 kafka 作為一個高吞吐量的分布式消息系統,廣泛應用與實時應用場景中。為了實現高效的數據傳輸,kafka使用了零拷貝技術(zero-copy)顯著提高了性能。本文將詳細講解 Kafka 如何利用零拷貝技術優化數據傳輸。 什么是零拷貝 零拷貝技術目的是減少數據傳輸的效率。在傳統…

馮喜運:6.8下周倫敦金行情怎么看?黃金原油下周操作建議

【黃金消息面分析】&#xff1a;黃金不是由通脹驅動的。它也不是由通貨緊縮驅動的。它也不是由美元驅動的。當股市反彈時&#xff0c;它也不會下跌&#xff0c;反之亦然。黃金是由市場情緒驅動的。而且&#xff0c;它是黃金市場上唯一的常數&#xff0c;使人們能夠對黃金價格趨…

vue elementui el-input 正則驗證,限制只能輸入數字和小數

vue elementui el-input 正則驗證 限制只能輸入數字和小數&#xff0c;以下兩種方法都可以&#xff1a; 1、οninput“value value.replace(/[^0-9.]/g,‘’)” 2、οninput“value value.replace(/[^\d.]/g, ‘’)” 限制只能輸入數字&#xff1a; 1、oninput “valuevalu…

c++使用_beginthreadex創建線程

記錄使用_beginthreadex()&#xff0c;來創建線程。方便后期的使用。 創建一個線程 相關函數介紹 unsigned long _beginthreadex( void *security, // 安全屬性&#xff0c; 為NULL時表示默認安全性 unsigned stack_size, // 線程的堆棧大小&#xff0c; 一般默認為0 u…

3D打印隨形透氣鋼:技術革新引領模具制造新潮流

在模具制造領域&#xff0c;透氣鋼一直扮演著重要角色&#xff0c;它能夠有效解決模具困氣問題&#xff0c;提高注塑成型的效率和質量。然而&#xff0c;傳統的透氣鋼制造方法受限于工藝和材料&#xff0c;難以滿足復雜模具的需求。隨著3D打印技術的飛速發展&#xff0c;3D打印…

Go微服務: 分布式之通過本地消息實現最終一致性

概述 我們的業務場景是可以允許我們一段時間有不一致的消息的狀態的&#xff0c;并沒有說必須特別高的這個消息的一致性比如說在TCC這個架構中&#xff0c;如果采用了消息的最終一致性&#xff0c;整體架構設計要輕松好多即便我們庫存服務掛了&#xff0c;或者我們積分服務掛了…

【2024PythonPycharm詳細安裝教程】

1.打開官網 https://www.python.org/ downloads——>Windows 2.找到 Download Windows installer (64-bit) 下載 3.下載完成雙擊安裝包 勾選Add python.exe to PATH(自動配置系統變量) 點擊Install Now&#xff08;默認安裝&#xff09; 然后看到安裝成功&#xff0…

LeetCode-day05-3038. 相同分數的最大操作數目 I

LeetCode-day05-3038. 相同分數的最大操作數目 I 題目描述示例示例1&#xff1a;示例2&#xff1a; 思路代碼 題目描述 給你一個整數數組 nums &#xff0c;如果 nums 至少 包含 2 個元素&#xff0c;你可以執行以下操作&#xff1a; 選擇 nums 中的前兩個元素并將它們刪除。…

深度學習中2D檢測

深度學習中的2D目標檢測 2D目標檢測是深度學習中的一個關鍵任務&#xff0c;旨在識別圖像中的目標對象&#xff0c;并在每個目標對象周圍生成一個邊界框。該任務在自動駕駛、視頻監控、機器人視覺等領域具有廣泛應用。以下是對深度學習中2D目標檢測的詳細介紹&#xff0c;包括…

通過windbg查看dump文件中靜態變量的值

可以使用 WinDbg 和 SOS 擴展來查看它們。下面是如何使用 WinDbg 和 SOS 的步驟&#xff1a; 打開 WinDbg&#xff0c;并用它打開你的 dump 文件。你可以使用 File → Open Crash Dump 來實現。 在命令行中&#xff0c;加載 SOS 擴展。一般來說這可以通過 .loadby sos clr 來完…

Oracle EBS AP發票創建會計科目錯誤:子分類帳日記帳分錄未按輸入幣種進行平衡

系統版本 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 問題癥狀: 提交“創建會計科目”請求提示錯誤信息如下: 中文報錯: 該子分類帳日記帳分錄未按輸入幣種進行平衡。請檢查日記帳分錄行中輸入的金額。 英文報錯:The subledger journal entry does not balance i…