国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

單片機(jī)——LCD1602

這篇具有很好參考價(jià)值的文章主要介紹了單片機(jī)——LCD1602。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.基礎(chǔ)知識(shí)介紹
1.1、為什么叫1602
因?yàn)榭梢燥@示兩行,一行16個(gè)
1.2、LCD1602管腳認(rèn)識(shí)
單片機(jī)——LCD1602

編號(hào) 符號(hào) 引腳說(shuō)明
1 VSS 電源地
2 VDD 電源正極
3 VEE 液晶顯示偏壓信號(hào)
4 RS 數(shù)據(jù)/命令選擇(H/L)
5 R/W 讀/寫選擇(H/L)
6 E 使能端
7 D0 數(shù)據(jù)
8 D1 數(shù)據(jù)
9 D2 數(shù)據(jù)
10 D3 數(shù)據(jù)
11 D4 數(shù)據(jù)
12 D5 數(shù)據(jù)
13 D6 數(shù)據(jù)
14 D7 數(shù)據(jù)

1.3、LCD1602關(guān)鍵性指令設(shè)置
1.3.1、清屏指令

管腳 對(duì)應(yīng)二進(jìn)制
RS 0
R/W 0
DB7 0
DB6 0
DB5 0
DB4 0
DB3 0
DB2 0
DB1 0
DB0 1

功能:

<1> 清除液晶顯示器,即將 DDRAM 的內(nèi)容全部填入"空白"的 ASCII
碼 20H;
<2> 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方;
<3> 將地址計(jì)數(shù)器(AC)的值設(shè)為 0。

1.3.2、模式選擇指令

管腳 對(duì)應(yīng)二進(jìn)制
RS 0
R/W 0
DB7 0
DB6 0
DB5 0
DB4 0
DB3 0
DB2 1
DB1 I/D
DB0 S

功能:
設(shè)定每次定入 1 位數(shù)據(jù)后光標(biāo)的移位方向 , 并且設(shè)定每次寫入的一個(gè)字符是否移動(dòng)。參數(shù)設(shè)定的情況如下所示:

位名 設(shè)置
I/D 0=寫入新數(shù)據(jù)后光標(biāo)左移
I/D 1=寫入新數(shù)據(jù)后光標(biāo)右移
S 0=寫入新數(shù)據(jù)后顯示屏不移動(dòng)
S 1=寫入新數(shù)據(jù)后顯示屏整體右移 1 個(gè)字符

1.3.3、顯示開(kāi)關(guān)控制指令

管腳 對(duì)應(yīng)二進(jìn)制
RS 0
R/W 0
DB7 0
DB6 0
DB5 0
DB4 0
DB3 1
DB2 D
DB1 C
DB0 B

功能:
功能:控制顯示器開(kāi)/關(guān)、光標(biāo)顯示/關(guān)閉以及光標(biāo)是否閃爍。參數(shù)設(shè)定的情況如下:

位名 設(shè)置
D 0=顯示功能關(guān)
D 1=顯示功能開(kāi)
C 0=無(wú)光標(biāo)
C 1=有光標(biāo)
B 0=光標(biāo)閃爍
B 1=光標(biāo)不閃爍

設(shè)置完成之后,要判斷液晶模塊是否處于忙狀態(tài)。

1.3.4功能設(shè)置指令

管腳 對(duì)應(yīng)二進(jìn)制
RS 0
R/W 0
DB7 0
DB6 0
DB5 1
DB4 DL
DB3 N
DB2 F
DB1 X
DB0 X

功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下:

位名 設(shè)置
DL 0=數(shù)據(jù)總線為 4 位
DL 1=數(shù)據(jù)總線為 8 位
N 0=顯示 1 行
N 1=顯示 2 行
F 0=5×7 點(diǎn)陣/每字符
F 1=5×10 點(diǎn)陣/每字符

0x38:00111000,就是數(shù)據(jù)總線8位,顯示兩行,以5×7 點(diǎn)陣/每字符 進(jìn)行顯示。

2、程序解釋
2.1、宏定義
頭文件,宏定義,根據(jù)連接定義端口
單片機(jī)——LCD1602

#include <reg52.h>
#include <intrins.h>


//定義端口
sbit duan=P2^6;
sbit wei=P2^7;

sbit RS=P1^0;
sbit RW=P1^1;
sbit E=P2^5;

#define uchar unsigned char
#define uint unsigned int
#define Data P0 //	  數(shù)據(jù)接在P0

#define	  RS_commad	 RS=0 	//命令
#define	  RS_data	 RS=1 	//數(shù)據(jù)
#define	  RS_write	 RW=0	//寫
#define	  RS_read	 RW=1	//讀
#define	  E_close	 E=0	//使能關(guān)
#define	  E_open	 E=1	//使能開(kāi)	

2.2 、延時(shí)部分(具體解釋見(jiàn)之前的博客)

void delay(uint k)
{
 uint i,j;
 for(i=0;i<k;i++)
  {
	 for(j=0;j<113;j++)
	  {
	  ;
	  }
  }

}

2.3、數(shù)碼管關(guān)閉程序
在1602程序中需要調(diào)用數(shù)碼管的程序,是因?yàn)槠渲械腸mg函數(shù)用于關(guān)閉數(shù)碼管,在LCD控制時(shí)需要先關(guān)閉數(shù)碼管,避免兩者的干擾。

void cmg ()
{
duan=1;
wei=1;
P0=0x00;
duan=0;
wei=0;	  
}

2.4、寫命令
2.4.1、程序里面用到了延時(shí),原因是在寫命令時(shí),需要給液晶一定的響應(yīng)時(shí)間。如果沒(méi)有延時(shí),液晶可能無(wú)法正確地接收到指令,從而無(wú)法正常顯示。一般情況下,液晶的響應(yīng)時(shí)間為幾微秒至幾毫秒不等,具體時(shí)間取決于液晶型號(hào)和工作狀態(tài)。這里的5毫秒延時(shí)是為了確保液晶能夠正確地接收到指令。
2.4.2、nop
nop(); 是匯編指令,表示“空操作(no operation)”,也就是不執(zhí)行任何操作,只是占用一個(gè)CPU周期。在這個(gè)代碼中,可能是為了等待指令執(zhí)行完畢,延長(zhǎng)執(zhí)行時(shí)間,確保程序的正確性。

void writecom (uchar command)
{
 delay(10)
 RS_command;	 
 RW_write;
 E_open;
 Data=data;
 _nop_();
  E_close; 	 
}

2.5、寫數(shù)據(jù)
與上面寫命令邏輯是相同的

void writedata (uchar da)
{
  delay(10);
 RS_data;	 
 RW_write;
 E_open;
 Data=da;
 _nop_();
  E_close;
 	 
}

2.6、寫字符
先進(jìn)行寫命令,讓它寫在哪一行,之后寫入數(shù)據(jù)。x,y代表橫縱坐標(biāo)

void writechar(uchar x,uchar y,uchar c)
{
 if (y==0)
 {
   writecom(0x80+x);//10000000,寫在第一行
 }
 else
 {
  writecom(0xc0+x);
 }

  writedata(c);

}

2.7、寫字符串
與寫字符的區(qū)別在于,字符串是很多構(gòu)成的所以說(shuō)要進(jìn)行循環(huán),不斷寫,直到寫完,跳出循環(huán)。

void writestring(uchar x,uchar y,uchar *s)
{
 if (y==0)
 {
   writecom(0x80+x);//10000000,寫在第一行
 }
 else
 {
  writecom(0xc0+x);
 }
  
  while(*s)
  {
   writedata(*s);
   s++;
  }

}

2.8、初始化
主要參照我上面列出的表格,確定LCD的顯示模式,例如設(shè)置光標(biāo),以及光標(biāo)移不移動(dòng),等等。
設(shè)置顯示模式需要發(fā)送三次指令0x38,每次發(fā)送可以確保指令被正確接收。0x38表示設(shè)置顯示模式為8位數(shù)據(jù)總線,2行顯示,5x7點(diǎn)陣字符,這是一種常用的基本顯示模式。

void Init()
{
 cmg();
 delay(10);
 writecom(0x38);  //設(shè)置顯示模式
 writecom(0x38);
 writecom(0x38);

 writecom(0x0e);	//顯示開(kāi)關(guān)控制,顯示功能開(kāi),有光標(biāo),	光標(biāo)不閃爍
 writecom(0x06);   // 寫入數(shù)據(jù)光標(biāo)右移,顯示屏不移動(dòng)
 writecom(0x01);  //清屏

}

2.9、主函數(shù)
進(jìn)行初始化,調(diào)用寫字符和字符串進(jìn)行寫入顯示

void main()
{
Init();
while(1)
{
 writechar(1,0,'d');	//第一行1位置上寫字符d
 writechar(2,0,'a');	// 第一行位2置上寫字符a

  writestring(3,0,"npianji");
  writestring(1,1,"tainanle");

}

}

3、完整代碼

#include <reg52.h>
#include <intrins.h>


//定義端口
sbit duan=P2^6;
sbit wei=P2^7;

sbit RS=P1^0;
sbit RW=P1^1;
sbit E=P2^5;

#define uchar unsigned char
#define uint unsigned int
#define Data P0 //	  數(shù)據(jù)接在P0

#define	  RS_command	 RS=0 	//命令
#define	  RS_data	 RS=1 	//數(shù)據(jù)
#define	  RW_write	 RW=0	//寫
#define	  RW_read	 RW=1	//讀
#define	  E_close	 E=0	//使能關(guān)
#define	  E_open	 E=1	//使能開(kāi)	


//延時(shí)部分
void delay(uint k)
{
 uint i,j;
 for(i=0;i<k;i++)
  {
	 for(j=0;j<113;j++)
	  {
	  ;
	  }
  }

}

//數(shù)碼管部分,注意是關(guān)數(shù)碼管
void cmg ()
{
duan=1;		  //段開(kāi)啟
wei=1;
P0=0x00;
duan=0;
wei=0;	  
}

//寫命令
void writecom (uchar command)
{
 delay(10);
 RS_command;	 
 RW_write;
 E_open;
 Data=command;
 _nop_();
  E_close;	 
}

//寫數(shù)據(jù)
void writedata (uchar da)
{
  delay(10);
 RS_data;	 
 RW_write;
 E_open;
 Data=da;
 _nop_();
  E_close;
 	 
}

//寫字符  (確定坐標(biāo))
void writechar(uchar x,uchar y,uchar c)
{
 if (y==0)
 {
   writecom(0x80+x);//10000000,寫在第一行
 }
 else
 {
  writecom(0xc0+x);
 }

  writedata(c);

}

//寫字符串
void writestring(uchar x,uchar y,uchar *s)
{
 if (y==0)
 {
   writecom(0x80 + x);//10000000,寫在第一行
 }
 else
 {
  writecom(0xc0+x);
 }
  
  while(*s)
  {
   writedata(*s);
   s ++;
  }

}

//初始化
void Init()
{
 cmg();
 delay(15);
 writecom(0x38);  //設(shè)置顯示模式
 writecom(0x38);
 writecom(0x38);

 writecom(0x0e);	//顯示開(kāi)關(guān)控制,顯示功能開(kāi),有光標(biāo),	光標(biāo)不閃爍
 writecom(0x06);   // 寫入數(shù)據(jù)光標(biāo)右移,顯示屏不移動(dòng)
 writecom(0x01);  //清屏

}

//主函數(shù)
void main()
{
Init();
while(1)
{
  writestring(1,0,"danpianji");
  writestring(1,1,"tainanle");

}

}

4、運(yùn)行結(jié)果
猜猜運(yùn)行結(jié)果是什么
單片機(jī)——LCD1602文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-468800.html

到了這里,關(guān)于單片機(jī)——LCD1602的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 五一單片機(jī)之LCD1602

    五一單片機(jī)之LCD1602

    ??1.LCD1602的介紹 LCD1602(Liquid Crystal Display)液晶顯示屏是一種字符型液晶顯示模板,是一種字符型液晶顯示模板,可以顯示ASCll碼的標(biāo)準(zhǔn)字符和其他的一些內(nèi)置特殊字符還可以有8個(gè)自定義字符 顯示容量:16*2個(gè)字符,每一個(gè)字符是5*7的點(diǎn)陣 (對(duì)于字符,其實(shí)每一個(gè)像素點(diǎn)是有

    2024年02月04日
    瀏覽(17)
  • 51單片機(jī)LCD1602調(diào)試工具

    51單片機(jī)LCD1602調(diào)試工具

    參考視頻:江協(xié)科技51單片機(jī) LCD1602頭文件代碼 LCD1602 C語(yǔ)言文件 LCD1602主函數(shù)文件

    2024年01月24日
    瀏覽(24)
  • 【【51單片機(jī)LCD1602模塊介紹】】

    【【51單片機(jī)LCD1602模塊介紹】】

    顯示容量16x2 每個(gè)字符是5x7的點(diǎn)陣 VDD 是電源正極 4.5-5.5v VO 是對(duì)比度調(diào)節(jié)電壓 RS 數(shù)據(jù)/指令 選擇 1為數(shù)據(jù)0為指令 RW 讀寫選擇1是讀 0為寫 E 使能 1為數(shù)據(jù)有效 下降沿執(zhí)行命令 D0-D7 數(shù)據(jù)輸入輸出 A 背光電源正極 K 背光電源負(fù)極 LCD1602的操作流程 1.初始化: 發(fā)送0x38//八位數(shù)據(jù)接口,

    2024年02月15日
    瀏覽(33)
  • 51單片機(jī)矩陣鍵盤——LCD1602顯示

    51單片機(jī)矩陣鍵盤——LCD1602顯示

    本次的實(shí)驗(yàn)需要用到LCD1602液晶屏,需要用到LCD1602.c 與LCD1602.h文件鏈接: https://download.csdn.net/download/YLG_lin/86404949 使用矩陣鍵盤隨意按下按鍵,LCD1602第二行前兩位就會(huì)顯示對(duì)應(yīng)按鍵按下的數(shù)字。 在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式 采用

    2023年04月09日
    瀏覽(33)
  • 51單片機(jī)(五)LCD1602調(diào)試工具

    51單片機(jī)(五)LCD1602調(diào)試工具

    ?? 專欄簡(jiǎn)介:本專欄記錄了從零學(xué)習(xí)單片機(jī)的過(guò)程,其中包括51單片機(jī)和STM32單片機(jī)兩部分;建議先學(xué)習(xí)51單片機(jī),其是STM32等高級(jí)單片機(jī)的基礎(chǔ);這樣再學(xué)習(xí)STM32時(shí)才能融會(huì)貫通。 ?? 專欄適用人群 :適用于想要從零基礎(chǔ)開(kāi)始學(xué)習(xí)入門單片機(jī),且有一定C語(yǔ)言基礎(chǔ)的的童鞋

    2023年04月27日
    瀏覽(22)
  • MCU-51:?jiǎn)纹瑱C(jī)LCD1602詳解

    MCU-51:?jiǎn)纹瑱C(jī)LCD1602詳解

    LCD1602(Liquid Crystal Display)液晶顯示屏是一種字符型液晶顯示模塊,可以顯示ASCII碼的標(biāo)準(zhǔn)字符和其它的一些內(nèi)置特殊字符,還可以有8個(gè)自定義字符 顯示容量:16×2個(gè)字符,每個(gè)字符為5*7點(diǎn)陣 點(diǎn)陣圖形式液晶由M×N個(gè)顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對(duì)應(yīng)

    2023年04月09日
    瀏覽(27)
  • 51單片機(jī) | LCD1602 液晶顯示實(shí)驗(yàn)

    51單片機(jī) | LCD1602 液晶顯示實(shí)驗(yàn)

    ??在前面章節(jié),我們已經(jīng)學(xué)習(xí)過(guò)幾種顯示裝置,例如靜態(tài)數(shù)碼管、動(dòng)態(tài)數(shù)碼管、 8*8LED 點(diǎn)陣、串口通信。使用它們可以直觀顯示一些字符數(shù)據(jù),但是它們也有各種局限性,比如顯示字符數(shù)據(jù)太少,硬件設(shè)計(jì)復(fù)雜、代碼編寫難度大等。這一章就來(lái)介紹一種非常簡(jiǎn)單且常用的顯

    2023年04月11日
    瀏覽(29)
  • 單片機(jī)學(xué)習(xí)筆記---LCD1602功能函數(shù)代碼

    單片機(jī)學(xué)習(xí)筆記---LCD1602功能函數(shù)代碼

    目錄 LCD1602.c 模擬寫指令的時(shí)序 模擬寫數(shù)據(jù)的時(shí)序 初始化 顯示字符 顯示字符串 顯示數(shù)字 顯示有符號(hào)的數(shù)字 顯示16進(jìn)制數(shù)字 顯示二進(jìn)制數(shù) LCD1602.h main.c 上一篇講了LCD1602的工作原理,這一節(jié)開(kāi)始代碼演示! 新創(chuàng)建工程:LCD1602功能函數(shù)代碼 新創(chuàng)建main.c,LCD1602.c和LCD1602.h文件

    2024年02月19日
    瀏覽(16)
  • 【單片機(jī)】16-LCD1602和12864和LCD9648顯示器

    【單片機(jī)】16-LCD1602和12864和LCD9648顯示器

    (1)顯示器,常見(jiàn)顯示器:電視,電腦 (2)LCD(Liquid Crystal Display),液晶顯示器,原理介紹 (3)LCD應(yīng)用領(lǐng)域:手機(jī),電腦 (4)將來(lái)取代LCD:LED,OLED【全面屏---軟性】 1.像素(分辨率) 顯示單元【液晶分子】 但是實(shí)際上: 像素!=分辨率 比如:出廠時(shí)電腦的像素已經(jīng)確

    2024年02月08日
    瀏覽(23)
  • 51單片機(jī)LCD1602液晶屏顯示方法

    51單片機(jī)LCD1602液晶屏顯示方法

    以顯示hello,world!? ? 2022.10.17? 為例。 首先把LCD1602的模塊化程序添加到項(xiàng)目目錄中,模塊化方法在51單片機(jī)之程序模塊化_學(xué)習(xí)筆記吧的博客-CSDN博客這里可以學(xué)習(xí)。 實(shí)驗(yàn)程序: LCD1602.c文件代碼: LCD1602.h文件代碼: 把這兩個(gè)代碼,分別添加到LCD1602.c 和 LCD1602.h 文件,然后添加

    2023年04月08日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包