單片機的學習(15)--LCD1602

LCD1602

  • 14.1LCD1602的基礎知識
    • 1.LCD1602介紹
    • 2.引腳及應用電路
    • 3.內部結構框圖
    • 4.時序結構
    • 5.LCD1602指令集
    • 6.字符值
    • 7.LCD1602操作流程
  • 14.2LCD1602功能函數代碼
    • 1.顯示一個字符
      • (1)工程目錄
      • (2)main.c函數
      • (3)LCD1602.c函數
    • 2.顯示一組字符串
      • (1)代碼
    • 2.顯示數字
      • (1)無符號代碼
      • (2)有符號代碼
    • 2.顯示進制
      • (1)十六進制
      • (1)二進制

14.1LCD1602的基礎知識

1.LCD1602介紹

LCD1602(Liquid Crystal Display)液晶顯示屏是一種字符型液晶顯示模塊,可以顯示ASCII碼的標準字符和其它的一些內置特殊字符,還可以有8個自定義字符
顯示容量:16×2個字符,每個字符為5*7點陣

2.引腳及應用電路

在這里插入圖片描述

3.內部結構框圖

在這里插入圖片描述

4.時序結構

在這里插入圖片描述

5.LCD1602指令集

在這里插入圖片描述

6.字符值

在這里插入圖片描述

7.LCD1602操作流程

在這里插入圖片描述

14.2LCD1602功能函數代碼

1.顯示一個字符

(1)工程目錄

在這里插入圖片描述

(2)main.c函數

#include <REGX52.H>
#include "LCD1602.h"
void main()
{LCD_Init();LCD_ShowChar(2,3,'A');while(1){}
}

(3)LCD1602.c函數

#include <REGX52.H>sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_E=P2^7;
#define LCD_DataPort P0void LCD_Delay()		//@11.0592MHz  1ms
{unsigned char data i, j;i = 2;j = 199;do{while (--j);} while (--i);
}void LCD_WriteCommand(unsigned char Command)
{LCD_RS=0;LCD_RW=0;LCD_DataPort=Command;LCD_E=1;LCD_Delay();LCD_E=0;LCD_Delay();
}void LCD_WriteData(unsigned char Data)
{LCD_RS=1;LCD_RW=0;LCD_DataPort=Data;LCD_E=1;LCD_Delay();LCD_E=0;LCD_Delay();
}
void LCD_Init(void)
{LCD_WriteCommand(0x38);LCD_WriteCommand(0x0C);LCD_WriteCommand(0x06);LCD_WriteCommand(0x01);
}void LCD_ShowChar(unsigned char Line,unsigned char Column,unsigned char Char)
{if(Line==1){LCD_WriteCommand(0x80|(Column-1));}else{LCD_WriteCommand(0x80|(Column-1)+0x40);}LCD_WriteData(Char);
}

補充知識點:字符和字符串
字符:根據一定規則建立的數字到字符的映射(ASCII碼表)
例如:0x21=‘!’.0x41=‘A’.0x00=\0’
定義方法:char x=‘A’:(等效干char x=0x41:)

字符數組:存儲字符變量的一個數組
定義方法:char y[]=f’A’,‘B’,‘C’;(等效于char y[]={0x41,0×42,0×43;)

字符串:在字符數組后加一個字符串結束標志,本質上是字符數組定義方法:char z[]="ABC”;(等效于char z[]=f’A’,‘B’,’C’,\O;)

2.顯示一組字符串

(1)代碼

void LCD_ShowString(unsigned char Line,unsigned char Column,unsigned char String[])
{unsigned char i;LCD_SetCursor(Line,Column);for(i=0;String[i]!='\0';i++){LCD_WriteData(String[i]);}
}

2.顯示數字

(1)無符號代碼

void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{unsigned char i;LCD_SetCursor(Line,Column);for(i=Length;i>0;i--){LCD_WriteData('0'+Number/LCD_Pow(10,i-1)%10);}
}

(2)有符號代碼

void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length)
{unsigned char i;unsigned int Number1;LCD_SetCursor(Line,Column);if(Number>=0){LCD_WriteData('+');Number1=Number;}else{LCD_WriteData('-');Number1=-Number;}for(i=Length;i>0;i--){LCD_WriteData('0'+Number1/LCD_Pow(10,i-1)%10);}
}

2.顯示進制

(1)十六進制

void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{unsigned char i;unsigned char SingleNumber;LCD_SetCursor(Line,Column);for(i=Length;i>0;i--){SingleNumber=Number/LCD_Pow(16,i-1)%16;if(SingleNumber<10){LCD_WriteData('0'+SingleNumber);}else{LCD_WriteData('A'+SingleNumber-10);}}
}

(1)二進制

void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{unsigned char i;LCD_SetCursor(Line,Column);for(i=Length;i>0;i--){LCD_WriteData('0'+Number/LCD_Pow(2,i-1)%2);}
}

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

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

相關文章

oj E : 投資項目的方案

Description 有n種基礎的投資項目&#xff0c;每一種的單位收益率為profitn&#xff0c;存在m種投資組合&#xff0c;限制每一種的投資總額不能超過invest_summ 每種投資組合中項目所需的單位投入是不同的&#xff0c;為costmn 求&#xff1a;使得收益率之和最高的每種項目投…

基于機器學習的制冷系統過充電和欠充電故障診斷(采用紅外熱圖像數據,MATLAB)

到目前為止&#xff0c;制冷系統故障診斷方法已經產生很多種&#xff0c;概括起來主要有三大類&#xff1a;基于分析的方法&#xff0c;基于知識的方法和基于數據驅動的方法。基于分析的方法主要獲得制冷系統的數學模型&#xff0c;通過殘差來檢測和診斷故障。如果存在殘差且很…

[JS]BOM操作

介紹 BOM(Browser Object Model)是瀏覽器對象模型 window對象是一個全局對象, 也是JS中的頂級對象通過var定義在全局作用域中的變量和函數都會變成window對象的屬性和方法window對象下的屬性和方法調用時一般省略window 間歇函數 定時器 定時器是間歇函數的一種, 可以每個每…

酒店客房管理系統(Java+MySQL)

技術棧 Java: 作為主要編程語言。Swing GUI: 用于開發圖形用戶界面。MySQL: 作為數據庫管理系統。JDBC: 用于連接和操作MySQL數據庫。 功能要點 管理登錄認證 系統提供管理員登錄認證功能。通過用戶名和密碼驗證身份&#xff0c;確保只有授權的用戶可以訪問和管理酒店客房信…

【three.js案例二】時空隧道

import * as THREE from ./build/three.module.js // 引入軌道控制器擴展庫OrbitControls.js import { OrbitControls } from three/addons/controls/OrbitControls.js; // 引入dat.gui.js的一個類GUI import { GUI } from three/addons/libs/lil-gui.module.min.js;// 場景 co…

刷題——合并二叉樹

合并二叉樹_牛客題霸_牛客網 方法一&#xff1a; TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {// write code hereif(t1 NULL) return t2;if(t2 NULL) return t1;TreeNode* head new TreeNode(t1->val t2->val);head->left mergeTrees(t1->left, t2-…

Supplemental Logging LOG DATA (ALL) COLUMNS

加的columns越多&#xff0c;說明一個普通的update中where 條件校驗的列越多 update "SCOTT"."EMP" set "ENAME" ALLKEY where "EMPNO" 7566 and "ENAME" JONES and "JOB" MANAGER and "MGR" 783…

Android Service兩種啟動方式的區別

在Android中&#xff0c;啟動Service的方式主要有兩種&#xff0c;分別是通過startService()和bindService()。以下是這兩種方式的詳細解釋&#xff1a; 1、通過startService()啟動Service&#xff1a; 這是最常用的啟動Service的方式。開發者可以通過Intent來指定要啟動的Se…

名企面試必問30題(十)——你有自己的方法論嗎?

1.思路 第一&#xff0c;方法論指的是做某些事情或業務的套路&#xff0c;但它沒有絕對的正確性&#xff0c;每個人都可以擁有專屬的方法論。 第二&#xff0c;方法論必定源自于自身實戰經驗的總結。 2.參考解答 “在軟件測試工作中&#xff0c;我逐漸形成了自己的一套方法論。…

python簡單爬蟲firefox selenium

# codingutf-8# 1.先設置編碼&#xff0c;utf-8可支持中英文&#xff0c;如上&#xff0c;一般放在第一行# 2.注釋&#xff1a;包括記錄創建時間&#xff0c;創建人&#xff0c;項目名稱。Created on 2019-11-25 author: Project: python selenium-打開和關閉瀏覽器 # 3.導入模…

學習記錄:`for` 語句與`while`語句的區別

for 語句與while語句的區別&#xff1a; for 和 while 語句都是循環控制結構&#xff0c;用于重復執行一段代碼直到滿足特定條件。盡管它們的基本目的是相似的&#xff0c;但它們的語法和一些使用場景有所不同。 for 語句&#xff1a; 用途&#xff1a;通常用于已知循環次數…

離線安裝docker社區版

以下是離線安裝 Docker 社區版的一般步驟&#xff1a; 準備工作&#xff1a; 在有網絡的環境下&#xff0c;從 Docker 官網下載適合你系統的 Docker 社區版安裝包以及相關依賴包。 傳輸安裝包到離線機器&#xff1a; 使用移動存儲設備或其他合適的方式將下載好的安裝包及依賴轉…

【劍指Offer系列】53-0到n中缺失的數字(index)

給定一個包含 [0, n] 中 n 個數的數組 nums &#xff0c;找出 [0, n] 這個范圍內沒有出現在數組中的那個數。 示例 1&#xff1a; 輸入&#xff1a;nums [3,0,1] 輸出&#xff1a;2 解釋&#xff1a;n 3&#xff0c;因為有 3 個數字&#xff0c;所以所有的數字都在范圍 [0,3]…

應用決策樹批量化自動生成【效果好】【非過擬合】的策略集

決策樹在很多公司都實際運用于風險控制,之前闡述了決策樹-ID3算法和C4.5算法、CART決策樹原理(分類樹與回歸樹)、Python中應用決策樹算法預測客戶等級和Python中調用sklearn決策樹。 本文介紹應用決策樹批量自動生成效果好,非過擬合的策略集。 文章目錄 一、什么是決策樹二…

數字化那點事:一文讀懂數字鄉村

一、數字鄉村的定義 數字鄉村是指利用信息技術和數字化手段&#xff0c;推動鄉村社會經濟發展和治理模式變革&#xff0c;提升鄉村治理能力和公共服務水平&#xff0c;實現鄉村全面振興的一種新型發展模式。它包括農業生產的數字化、鄉村治理的智能化、鄉村生活的現代化等方面…

Elasticsearch的節點、集群和分片

Elasticsearch的節點、集群和分片 節點 什么是節點 ES是使用Java語言開發的。ES可以創建多個節點&#xff0c;一個節點就是一個ES實例&#xff0c;也就是一個Java線程。ES在生產環境中每個節點都是分布在不同的服務器上的&#xff0c;目的是達到集群的高可用多個節點構成一個…

Nginx系列-1 Nginx安裝與使用

背景 最近對項目進行了Https改造&#xff0c;改造過程涉及Nginx技術&#xff0c;因此進行簡單總結。 從本文開始將開啟一個新的專題Nginx系列&#xff0c;用于收集Nginx相關的文章&#xff0c;內容將包括&#xff1a; Nginx系列—1 Nginx安裝與使用Nginx系列—2 Nginx配置Ngi…

記一次小程序滲透

這次的小程序滲透剛好每一個漏洞都相當經典所以記錄一下。 目錄 前言 漏洞詳情 未授權訪問漏洞/ 敏感信息泄露&#xff08;高危&#xff09; 水平越權&#xff08;高危&#xff09; 會話重用&#xff08;高危&#xff09; 硬編碼加密密鑰泄露&#xff08;中危&#xff0…

熟練掌握爬蟲技術

一、Crawler、Requests反爬破解 1. HTTP協議與WEB開發 1. 什么是請求頭請求體&#xff0c;響應頭響應體 2. URL地址包括什么 3. get請求和post請求到底是什么 4. Content-Type是什么1.1 簡介 HTTP協議是Hyper Text Transfer Protocol&#xff08;超文本傳輸協議&#xff09;…

整合 Mybatis Plus

什么是 MyBatis Plus&#xff1f; MyBatis Plus &#xff08;簡稱 MP&#xff09; 是一款持久層框架&#xff0c;說白話就是一款操作數據庫的框架。它是一個 MyBatis 的增強工具&#xff0c;就像 iPhone手機一般都有個 plus 版本一樣&#xff0c;它在 MyBatis 的基礎上只做增強…