0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Proteus教程:LCD1602顯示

Harmony&嵌入式學(xué)習(xí) ? 來(lái)源:Harmony&嵌入式學(xué)習(xí) ? 作者:Harmony&嵌入式學(xué) ? 2023-06-14 11:21 ? 次閱讀

視頻教程:https://www.bilibili.com/video/BV1HK411W7La

pYYBAGSJMc-AR0NhAAJclMhW7Ek374.pngpoYBAGSJMdaAZypIAAQIEw9nEL4997.png
#include
#define uchar unsigned char
#define uint unsigned int
#define LCD1602_DATAPINS P0
sbit LCD1602_E=P2^2;
sbit LCD1602_RW=P2^1;
sbit LCD1602_RS=P2^0;
sbit KEY = P3^0;
/*******************************************************************************
* 函 數(shù) 名         : Lcd1602_Delay1ms
* 函數(shù)功能		   : 延時(shí)函數(shù),延時(shí)1ms
* 輸    入         : c
* 輸    出         : 無(wú)
* 說(shuō)    名         : 該函數(shù)是在12MHZ晶振下,12分頻單片機(jī)的延時(shí)。
*******************************************************************************/

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--);
		 }      
	}
    	
}

/*******************************************************************************
* 函 數(shù) 名         : LcdWriteCom
* 函數(shù)功能		   : 向LCD寫入一個(gè)字節(jié)的命令
* 輸    入         : com
* 輸    出         : 無(wú)
*******************************************************************************/
void LcdWriteCom(uchar com)	  //寫入命令
{
	LCD1602_E = 0;     //使能
	LCD1602_RS = 0;	   //選擇發(fā)送命令
	LCD1602_RW = 0;	   //選擇寫入
	
	LCD1602_DATAPINS = com;     //放入命令
	Lcd1602_Delay1ms(1);		//等待數(shù)據(jù)穩(wěn)定

	LCD1602_E = 1;	          //寫入時(shí)序
	Lcd1602_Delay1ms(5);	  //保持時(shí)間
	LCD1602_E = 0;
}
/*******************************************************************************
* 函 數(shù) 名         : LcdWriteData
* 函數(shù)功能		   : 向LCD寫入一個(gè)字節(jié)的數(shù)據(jù)
* 輸    入         : dat
* 輸    出         : 無(wú)
*******************************************************************************/		   	   
void LcdWriteData(uchar dat)			//寫入數(shù)據(jù)
{
	LCD1602_E = 0;	//使能清零
	LCD1602_RS = 1;	//選擇輸入數(shù)據(jù)
	LCD1602_RW = 0;	//選擇寫入

	LCD1602_DATAPINS = dat; //寫入數(shù)據(jù)
	Lcd1602_Delay1ms(1);

	LCD1602_E = 1;   //寫入時(shí)序
	Lcd1602_Delay1ms(5);   //保持時(shí)間
	LCD1602_E = 0;
}


/*******************************************************************************
* 函 數(shù) 名       : LcdInit()
* 函數(shù)功能		 : 初始化LCD屏
* 輸    入       : 無(wú)
* 輸    出       : 無(wú)
*******************************************************************************/		   
void LcdInit()						  //LCD初始化子程序
{
 	LcdWriteCom(0x38);  //開顯示
	LcdWriteCom(0x0c);  //開顯示不顯示光標(biāo)
	LcdWriteCom(0x06);  //寫一個(gè)指針加1
	LcdWriteCom(0x01);  //清屏
	LcdWriteCom(0x80);  //設(shè)置數(shù)據(jù)指針起點(diǎn)
}




//按指定位置顯示一個(gè)字符
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
 Y &= 0x1;
 X &= 0xF; //限制X不能大于15,Y不能大于1
 if (Y) X |= 0x40; //當(dāng)要顯示第二行時(shí)地址碼+0x40;
 X |= 0x80; // 算出指令碼
 LcdWriteCom(X); //這里不檢測(cè)信號(hào),發(fā)送地址碼
 LcdWriteData(DData);
}
//按指定位置顯示一串字符
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
 unsigned char ListLength;

  ListLength = 0;
 Y &= 0x1;
 X &= 0xF; //限制X不能大于15,Y不能大于1
 while (DData[ListLength]>=0x20) //若到達(dá)字串尾則退出
  {
   if (X <= 0xF) //X坐標(biāo)應(yīng)小于0xF
    {
     DisplayOneChar(X, Y, DData[ListLength]); //顯示單個(gè)字符
     ListLength++;
     X++;
    }
  }
}


void main()
{
	uint datt = 324;
	LcdInit();
	//DisplayListChar(3,1,"Cheng One");
	DisplayOneChar(0,0,(char)(datt/100+'0'));
	DisplayOneChar(1,0,(char)(datt/10%10+'0'));
	DisplayOneChar(2,0,(char)(datt%10+'0'));
	
	while(1)
	{
		if(KEY==0)
		{
			Lcd1602_Delay1ms(20);
			if(KEY==0)
			{
				while(KEY==0);
				datt++;
			}
		}
			DisplayOneChar(0,0,(char)(datt/100+'0'));
	DisplayOneChar(1,0,(char)(datt/10%10+'0'));
	DisplayOneChar(2,0,(char)(datt%10+'0'));
	}
}

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 液晶
    +關(guān)注

    關(guān)注

    6

    文章

    606

    瀏覽量

    69634
  • Proteus
    +關(guān)注

    關(guān)注

    79

    文章

    1692

    瀏覽量

    106573
  • 晶振
    +關(guān)注

    關(guān)注

    34

    文章

    2866

    瀏覽量

    68033
  • LCD1602
    +關(guān)注

    關(guān)注

    14

    文章

    607

    瀏覽量

    52590
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    液晶顯示模塊LCD1602應(yīng)用

    液晶顯示模塊LCD1602應(yīng)用
    發(fā)表于 09-25 16:58 ?683次下載
    液晶<b class='flag-5'>顯示</b>模塊<b class='flag-5'>LCD1602</b>應(yīng)用

    LCD1602顯示漢字

    LCD1602顯示漢字,原本只能顯示字符。
    發(fā)表于 11-09 16:17 ?22次下載

    lcd1602顯示及注意點(diǎn)

    lcd1602顯示及注意點(diǎn),lcd1602顯示及注意點(diǎn)。
    發(fā)表于 12-28 12:01 ?0次下載

    時(shí)鐘lcd1602顯示

    時(shí)鐘lcd1602顯示
    發(fā)表于 12-27 21:14 ?12次下載

    lcd1602顯示原理,LCD1602液晶顯示器的分類有哪些?

    LCD1602是一種工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。LCD1602液晶顯示原理 LCD1602液晶
    發(fā)表于 10-20 10:32 ?3.6w次閱讀

    LCD1602是什么?關(guān)于LCD1602液晶模塊的顯示問(wèn)題?

    LCD1602表示2行16個(gè)字符,也就是有不同的顯示地點(diǎn),那么單片機(jī)如何告訴LCD1602顯示地點(diǎn)呢?因此前面的分析可以總結(jié)為三個(gè)問(wèn)題,如何初始化;如何傳送
    發(fā)表于 07-02 09:16 ?2.3w次閱讀
    <b class='flag-5'>LCD1602</b>是什么?關(guān)于<b class='flag-5'>LCD1602</b>液晶模塊的<b class='flag-5'>顯示</b>問(wèn)題?

    LCD1602顯示接收到的紅外線鍵值程序和LCD1602的延遲函數(shù)

    本文檔的主要內(nèi)容詳細(xì)介紹的是LCD1602顯示接收到的紅外線鍵值程序和LCD1602的延遲函數(shù)。
    發(fā)表于 05-06 16:40 ?25次下載
    <b class='flag-5'>LCD1602</b><b class='flag-5'>顯示</b>接收到的紅外線鍵值程序和<b class='flag-5'>LCD1602</b>的延遲函數(shù)

    lcd1602液晶顯示屏介紹_lcd1602引腳功能

    本文首先闡述了lcd1602液晶顯示屏的概念,其次闡述了LCD1602外形尺寸,最后介紹了lcd1602引腳功能。
    發(fā)表于 04-23 08:53 ?7.2w次閱讀

    lcd1602proteus中怎么找_lcd1602proteus仿真

    proteus提供了很多LCD的仿真器件,分享一個(gè)關(guān)于lcd1602的查找操作,希望對(duì)需要的朋友有幫助。
    發(fā)表于 04-23 09:02 ?12.4w次閱讀
    <b class='flag-5'>lcd1602</b>在<b class='flag-5'>proteus</b>中怎么找_<b class='flag-5'>lcd1602proteus</b>仿真

    基于51單片機(jī)的LCD1602顯示proteus實(shí)驗(yàn)

    基于51單片機(jī)的LCD1602顯示proteus實(shí)驗(yàn)
    發(fā)表于 04-30 10:14 ?38次下載

    51單片機(jī)驅(qū)動(dòng)LCD1602顯示原理及例程

    51單片機(jī)驅(qū)動(dòng)LCD1602顯示原理及例程1.LCD1602A介紹2.LCD1602A中文手冊(cè) 下載3.LCD1602A接線4. 51單片
    發(fā)表于 11-10 19:51 ?149次下載
    51單片機(jī)驅(qū)動(dòng)<b class='flag-5'>LCD1602</b><b class='flag-5'>顯示</b>原理及例程

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

    實(shí)驗(yàn)?zāi)繕?biāo):掌握LCD1602顯示控制方法; 掌握利用Proteus單片機(jī)控制系統(tǒng)的仿真及調(diào)試方法。任務(wù):根據(jù)要求編寫程序,并寫出原理性注釋; 將檢查程序運(yùn)行的結(jié)果,分析一下是否正確; 完成所建
    發(fā)表于 11-10 20:06 ?25次下載
    51單片機(jī)<b class='flag-5'>LCD1602</b><b class='flag-5'>顯示</b>實(shí)驗(yàn)

    STMCubeMX+Proteus仿真DHT11(LCD1602顯示)

    信息顯示LCD1602上Tips:之前寫過(guò)一期LCD1602的,貼個(gè)傳送門 STM32CubeMX+Proteus仿真LCD1602
    發(fā)表于 11-21 14:06 ?50次下載
    STMCubeMX+<b class='flag-5'>Proteus</b>仿真DHT11(<b class='flag-5'>LCD1602</b><b class='flag-5'>顯示</b>)

    51單片機(jī) LCD1602驅(qū)動(dòng)顯示(模板)+Proteus

    51單片機(jī) LCD1602驅(qū)動(dòng)顯示(模板)+Proteus本項(xiàng)目工程篇,只展示LCD1602驅(qū)動(dòng)顯示,不涉及其他外設(shè)驅(qū)動(dòng)使用,可以作為
    發(fā)表于 11-23 17:06 ?30次下載
    51單片機(jī) <b class='flag-5'>LCD1602</b>驅(qū)動(dòng)<b class='flag-5'>顯示</b>(模板)+<b class='flag-5'>Proteus</b>

    STM32CubeMX+Proteus仿真LCD1602顯示

    本文說(shuō)明開發(fā)工具:STM32CubeMX+Keil5開發(fā)芯片:STM32F103R6顯示屏幕:LCD1602仿真軟件:Proteus 8.12工程目標(biāo):在LCD1602
    發(fā)表于 01-14 09:31 ?60次下載
    STM32CubeMX+<b class='flag-5'>Proteus</b>仿真<b class='flag-5'>LCD1602</b>的<b class='flag-5'>顯示</b>