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

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

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

以顯示hello,world!? ? 2022.10.17? 為例。

首先把LCD1602的模塊化程序添加到項(xiàng)目目錄中,模塊化方法在51單片機(jī)之程序模塊化_學(xué)習(xí)筆記吧的博客-CSDN博客這里可以學(xué)習(xí)。

實(shí)驗(yàn)程序:

#include<regx52.h>
#include"LCD1602.h"  //添加LCD1602模塊化頭文件
void main()
{
	LCD_Init(); //初始化,這個(gè)一定要
	LCD_ShowString(1,3,"hello,world!");  //這個(gè)在LCD1602.c文件里面都可以找到有定義和注釋使用方法
	LCD_ShowString(2,4,"2022.10.17");    //LCD_ShowString 是顯示字符串,如果顯示單個(gè)字符,雙引號(hào)要改單引號(hào)‘’
	//屏幕顯示第一行,第3列開始顯示hello,world!
	//屏幕顯示第二行,第四列開始顯示2022.10.17
while(1)
{

}
}

LCD1602.c文件代碼:

#include <REGX52.H>

//引腳配置:
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^7;
#define LCD_DataPort P0

//函數(shù)定義:
/**
  * @brief  LCD1602延時(shí)函數(shù),11.0592MHz調(diào)用可延時(shí)1ms
  * @param  無
  * @retval 無
  */
void LCD_Delay()
{
	unsigned char i, j;

	i = 2;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
}

/**
  * @brief  LCD1602寫命令
  * @param  Command 要寫入的命令
  * @retval 無
  */
void LCD_WriteCommand(unsigned char Command)
{
	LCD_RS=0;
	LCD_RW=0;
	LCD_DataPort=Command;
	LCD_EN=1;
	LCD_Delay();
	LCD_EN=0;
	LCD_Delay();
}

/**
  * @brief  LCD1602寫數(shù)據(jù)
  * @param  Data 要寫入的數(shù)據(jù)
  * @retval 無
  */
void LCD_WriteData(unsigned char Data)
{
	LCD_RS=1;
	LCD_RW=0;
	LCD_DataPort=Data;
	LCD_EN=1;
	LCD_Delay();
	LCD_EN=0;
	LCD_Delay();
}

/**
  * @brief  LCD1602設(shè)置光標(biāo)位置
  * @param  Line 行位置,范圍:1~2
  * @param  Column 列位置,范圍:1~16
  * @retval 無
  */
void LCD_SetCursor(unsigned char Line,unsigned char Column)
{
	if(Line==1)
	{
		LCD_WriteCommand(0x80|(Column-1));
	}
	else if(Line==2)
	{
		LCD_WriteCommand(0x80|(Column-1+0x40));
	}
}

/**
  * @brief  LCD1602初始化函數(shù)
  * @param  無
  * @retval 無
  */
void LCD_Init()
{
	LCD_WriteCommand(0x38);//八位數(shù)據(jù)接口,兩行顯示,5*7點(diǎn)陣
	LCD_WriteCommand(0x0c);//顯示開,光標(biāo)關(guān),閃爍關(guān)
	LCD_WriteCommand(0x06);//數(shù)據(jù)讀寫操作后,光標(biāo)自動(dòng)加一,畫面不動(dòng)
	LCD_WriteCommand(0x01);//光標(biāo)復(fù)位,清屏
}

/**
  * @brief  在LCD1602指定位置上顯示一個(gè)字符
  * @param  Line 行位置,范圍:1~2
  * @param  Column 列位置,范圍:1~16
  * @param  Char 要顯示的字符
  * @retval 無
  */
void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char)
{
	LCD_SetCursor(Line,Column);
	LCD_WriteData(Char);
}

/**
  * @brief  在LCD1602指定位置開始顯示所給字符串
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  String 要顯示的字符串
  * @retval 無
  */
void LCD_ShowString(unsigned char Line,unsigned char Column,char *String)
{
	unsigned char i;
	LCD_SetCursor(Line,Column);
	for(i=0;String[i]!='\0';i++)
	{
		LCD_WriteData(String[i]);
	}
}

/**
  * @brief  返回值=X的Y次方
  */
int LCD_Pow(int X,int Y)
{
	unsigned char i;
	int Result=1;
	for(i=0;i<Y;i++)
	{
		Result*=X;
	}
	return Result;
}

/**
  * @brief  在LCD1602指定位置開始顯示所給數(shù)字
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:0~65535
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~5
  * @retval 無
  */
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(Number/LCD_Pow(10,i-1)%10+'0');
	}
}

/**
  * @brief  在LCD1602指定位置開始以有符號(hào)十進(jìn)制顯示所給數(shù)字
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:-32768~32767
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~5
  * @retval 無
  */
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(Number1/LCD_Pow(10,i-1)%10+'0');
	}
}

/**
  * @brief  在LCD1602指定位置開始以十六進(jìn)制顯示所給數(shù)字
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:0~0xFFFF
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~4
  * @retval 無
  */
void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{
	unsigned char i,SingleNumber;
	LCD_SetCursor(Line,Column);
	for(i=Length;i>0;i--)
	{
		SingleNumber=Number/LCD_Pow(16,i-1)%16;
		if(SingleNumber<10)
		{
			LCD_WriteData(SingleNumber+'0');
		}
		else
		{
			LCD_WriteData(SingleNumber-10+'A');
		}
	}
}

/**
  * @brief  在LCD1602指定位置開始以二進(jìn)制顯示所給數(shù)字
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:0~1111 1111 1111 1111
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~16
  * @retval 無
  */
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(Number/LCD_Pow(2,i-1)%2+'0');
	}
}

LCD1602.h文件代碼:

#ifndef __LCD1602_H__
#define __LCD1602_H__

//用戶調(diào)用函數(shù):
void LCD_Init();
void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char);
void LCD_ShowString(unsigned char Line,unsigned char Column,char *String);
void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length);
void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length);
void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length);
void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length);

#endif

把這兩個(gè)代碼,分別添加到LCD1602.c 和 LCD1602.h 文件,然后添加到工程目錄,后面我們只需要調(diào)用就可以了,注意里面的引腳,要和你的接線圖一致;

電路原理圖:

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

?注意事項(xiàng):

添加模塊化文件時(shí)可能會(huì)提示一個(gè)L16的警告,這個(gè)沒關(guān)系的你可以忽略或者按下面操作把他屏蔽。

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

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

?這樣就可以0報(bào)錯(cuò)0警告了,以上基本上就是寫好了LCD1602模塊化然后大家會(huì)用就可以,如果要深入學(xué)習(xí)還得去繼續(xù)觀看其他文章,但感覺沒必要,有現(xiàn)成的工具我們會(huì)用就行。賦上LCD1602程序指令:大家需要實(shí)現(xiàn)什么顯示什么,需要用到這些指令:

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

?如我們實(shí)驗(yàn)里面顯示hello,world!? ? 2022.10.17

這個(gè)就屬于第三個(gè),顯示字符串。

所以我們用的代碼是LCD_ShowString(1,3,"hello,world!")

表示在第一行,第三列,顯示字符串hello,world!文章來源地址http://www.zghlxwxcb.cn/news/detail-405059.html

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

本文來自互聯(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)文章

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

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

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

    2023年04月11日
    瀏覽(28)
  • 【51單片機(jī)】LCD1602 液晶顯示實(shí)驗(yàn)指導(dǎo)書

    【51單片機(jī)】LCD1602 液晶顯示實(shí)驗(yàn)指導(dǎo)書

    ??????? ?來介紹一種非常簡(jiǎn)單且常用的顯示裝置——LCD1602 液晶顯示器,使用它可以顯示更多的字符數(shù)字。這將有助于我們清晰的觀察程序的運(yùn)行結(jié)果,更加方便我們的后續(xù)調(diào)試和開發(fā)。 ????????我們的開發(fā)板上集成了一個(gè) LCD1602 液晶顯示器接口,將LCD1602 液晶對(duì)應(yīng)插

    2024年02月01日
    瀏覽(23)
  • 【附報(bào)告】51單片機(jī)計(jì)算器(LCD1602液晶顯示)

    【附報(bào)告】51單片機(jī)計(jì)算器(LCD1602液晶顯示)

    ? 由于本文較早,這里推薦一下近期剛優(yōu)化的:【優(yōu)化】51單片機(jī)計(jì)算器(LCD1602液晶顯示)_Gxtoeilee的博客-CSDN博客 ? 1 設(shè)計(jì)目標(biāo) 設(shè)計(jì)可選模式的計(jì)算器? 2 主要功能 功能一:可選兩種計(jì)算模式,模式一為四則運(yùn)算,模式二為擴(kuò)展內(nèi)容; 功能二:除法的計(jì)算結(jié)果保留到小數(shù)點(diǎn)

    2024年02月11日
    瀏覽(20)
  • 【C語言】51單片機(jī)計(jì)算器(LCD1602液晶顯示)

    【C語言】51單片機(jī)計(jì)算器(LCD1602液晶顯示)

    ? 由于本文較早,這里推薦一下近期剛優(yōu)化的:【優(yōu)化】51單片機(jī)計(jì)算器(LCD1602液晶顯示)_Gxtoeilee的博客-CSDN博客 ? 1 設(shè)計(jì)目標(biāo) 設(shè)計(jì)可選模式的計(jì)算器? 2 主要功能 功能一:可選兩種計(jì)算模式,模式一為四則運(yùn)算,模式二為擴(kuò)展內(nèi)容; 功能二:除法的計(jì)算結(jié)果保留到小數(shù)點(diǎn)

    2024年02月07日
    瀏覽(52)
  • Proteus仿真-LCD1602液晶屏使用方法(驅(qū)動(dòng)一)

    Proteus仿真-LCD1602液晶屏使用方法(驅(qū)動(dòng)一)

    一、硬件鏈接 在元件庫中搜索LM016即可找到LCD1602液晶屏。 按下圖方式鏈接單片機(jī)和屏幕。 二、軟件驅(qū)動(dòng)代碼 三、示例程序

    2024年02月12日
    瀏覽(16)
  • 第十講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:圖像運(yùn)算

    第十講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:圖像運(yùn)算

    目錄 第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過RA8889驅(qū)動(dòng)彩色液晶屏播放視頻 第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架 第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化 第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖 第五講 單片機(jī)驅(qū)動(dòng)彩色液

    2024年01月22日
    瀏覽(17)
  • 第九講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯存操作

    第九講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯存操作

    目錄 第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過RA8889驅(qū)動(dòng)彩色液晶屏播放視頻 第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架 第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化 第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖 第五講 單片機(jī)驅(qū)動(dòng)彩色液

    2024年01月16日
    瀏覽(19)
  • 第八講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示圖片

    第八講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示圖片

    目錄 第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過RA8889驅(qū)動(dòng)彩色液晶屏播放視頻 第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架 第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化 第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖 第五講 單片機(jī)驅(qū)動(dòng)彩色液

    2024年01月22日
    瀏覽(21)
  • 第十三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 bin檔的燒錄方法

    第十三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 bin檔的燒錄方法

    目錄 第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過RA8889驅(qū)動(dòng)彩色液晶屏播放視頻 第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架 第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化 第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖 第五講 單片機(jī)驅(qū)動(dòng)彩色液

    2024年02月19日
    瀏覽(28)
  • 【雕爺學(xué)編程】Arduino動(dòng)手做(85)---LCD1602液晶屏模塊7

    【雕爺學(xué)編程】Arduino動(dòng)手做(85)---LCD1602液晶屏模塊7

    37款傳感器與執(zhí)行器的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟?,以學(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動(dòng)手嘗試系列實(shí)驗(yàn),不管成功(程序走通)

    2024年02月16日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包