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

LCD1602液晶顯示屏

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

主函數(shù)

#include "1602.h"

void main(void)
{

InitLcd1602();//初始化 
LcdShowStr(0,0,"www.weimeng.com");//顯示屏幕上的,第1格,第一排,顯示字符串
LcdShowStr(2,1,"www.weimeng.com");//顯示屏幕上的,第3格,第二排,顯示字符串
}

LCD1602.c

#include<reg52.h>

#define LCD1602_DB  P0      //data bus 數(shù)據(jù)總線

sbit LCD1602_RS = P2^6;	  
sbit LCD1602_RW = P2^5;
sbit LCD1602_EN = P2^7;	  


/******************************底層時(shí)序***********************/
//CPU是否繁忙檢測(cè)函數(shù),判斷bit7是0,允許執(zhí)行;1禁止
void Read_Busy()           
{
    unsigned char sta;      
    LCD1602_DB = 0xff;		//P0端口(D0-D7)的引腳全部給0xff
    LCD1602_RS = 0;
    LCD1602_RW = 1;
    do
    {
        LCD1602_EN = 1;	   //使能
        sta = LCD1602_DB;  
        LCD1602_EN = 0;    //禁能,用完就拉低,釋放總線
    }while(sta & 0x80);	   //(D7)STA7=0時(shí)允許下一步讀寫操作
}						   //(D7)STA7=1時(shí)禁止下一步讀寫操作

//寫命令
void Lcd1602_Write_Cmd(unsigned char cmd)     
{
    Read_Busy();		 //繁忙檢測(cè)
    LCD1602_RS = 0;		 //RS=0,是傳輸命令
    LCD1602_RW = 0;		 //RW=0,是寫操作
    LCD1602_DB = cmd;	 //把我們要寫的數(shù)值放到D0-D7上面去
    LCD1602_EN = 1;		 //使能(開始)
    LCD1602_EN = 0;    	 //禁能(結(jié)束)
}

//寫數(shù)據(jù)
void Lcd1602_Write_Data(unsigned char dat)   
{
      Read_Busy();		 //繁忙檢測(cè)
      LCD1602_RS = 1;	 //RS=1,是傳輸數(shù)據(jù)
      LCD1602_RW = 0;	 //RW=0,是寫操作
      LCD1602_DB = dat;	 //把我們要寫的數(shù)值放到D0-D7上面去
      LCD1602_EN = 1;	 //使能(開始)
      LCD1602_EN = 0;	 //禁能(結(jié)束)
}
/****************************************************************/

/******************************高層時(shí)序***********************/

//坐標(biāo)顯示
// y=0是上面那一排,y=1是下面那一排
void LcdSetCursor(unsigned char x,unsigned char y) //本函數(shù)用來設(shè)置當(dāng)前光標(biāo)位置,其實(shí)就是設(shè)置當(dāng)前屏幕上用來編輯顯示的位置 
{												   //其實(shí)就是內(nèi)部的數(shù)據(jù)地址指針設(shè)置,其實(shí)就是RAM顯存的偏移量
    unsigned char addr;
    if(y == 0) //上面一排(00到0F的格子)
        addr = 0x00 + x;
    else	   //下面一排(40到4F的格子)
        addr = 0x40 + x;
    
    Lcd1602_Write_Cmd(0x80+addr);  //效果一樣的建議使用(addr|0x80),因?yàn)橛?jì)算機(jī)計(jì)算位或的時(shí)候比計(jì)算加減法快
	//數(shù)據(jù)指針設(shè)置(指哪個(gè)格子寫那格子)
}

//函數(shù)功能:從坐標(biāo)(x,y)開始顯示字符串str
//注意:這個(gè)函數(shù)不能跨行顯示,超過的就會(huì)跑到后面看不見的格子里面去
//不過我們是可以封裝出一個(gè)能夠折行顯示的函數(shù)的
void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str)     //顯示字符串
{
    LcdSetCursor(x,y);      //當(dāng)前字符的坐標(biāo)(調(diào)用了坐標(biāo)顯示函數(shù))
							//X用于指哪一列格子,Y用于指向行
    while(*str != '\0')
    {
        Lcd1602_Write_Data(*str++);//寫入內(nèi)容對(duì)應(yīng)的ASCLL碼用于顯示
    }
}

//初始化LCD,讓它能開始正常工作
void InitLcd1602()              //1602初始化
{
    Lcd1602_Write_Cmd(0x38);    //顯示模式設(shè)置:16x2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
   	Lcd1602_Write_Cmd(0x08);	//關(guān)閉顯示:顯示開/關(guān)及光標(biāo)指令設(shè)置
	Lcd1602_Write_Cmd(0x01);    //清屏 
    Lcd1602_Write_Cmd(0x06);	//顯示光標(biāo)移動(dòng)設(shè)置 
								//全部設(shè)置好以后在打開顯示防止花屏(雖然一瞬間的花屏無傷大雅)
	Lcd1602_Write_Cmd(0x0c);	//打開顯示:顯示開/關(guān)及光標(biāo)指令設(shè)置 
}

LCD1602.h

#ifndef __1602_H__
#define __1602_H__

//只需要聲明高層時(shí)序即可,而低層時(shí)序是不需要聲明的。
//因?yàn)槲覀冊(cè)陬^文件中聲明這個(gè)函數(shù),目的是為了讓別的文件去包含這個(gè)頭文件
//從而可以調(diào)用這個(gè)頭文件中聲明的函數(shù),所以我們只需要聲明1602.c中將來會(huì)被外部.c文件調(diào)用的那些函數(shù)即可。
//而1602.c中自己使用的內(nèi)部函數(shù)將來也不會(huì)被外部.c文件調(diào)用,因此就不用聲明了


//只需要聲明高層時(shí)序即可,而低層時(shí)序是不需要聲明的。
void LcdSetCursor(unsigned char x,unsigned char y);//坐標(biāo)顯示
void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str); //顯示字符串(調(diào)用了坐標(biāo)顯示函數(shù))
void InitLcd1602();//初始化LCD1602

#endif

LCD1602液晶顯示屏LCD1602液晶顯示屏

接線圖:

LCD1602液晶顯示屏

?

LCD1602液晶顯示屏

1、1602屏幕=16x2=32個(gè)字符,總共有32個(gè)字符

?2、每個(gè)字符由35個(gè)像素組成

LCD1602液晶顯示屏LCD1602液晶顯示屏

每個(gè)像素由一小塊液晶控制

---------------------------------------------------------------------------------------------------------------------------------

液晶的控制原理:

不施加電壓——液晶完全透明:0(透明)

施加電壓——---液晶變不透明:1(不透明)

注意:通上電后LED背光板是一直發(fā)光的

LCD1602液晶顯示屏黃的是背光板,灰的是液晶

組成:

1、背光板、液晶

2、控制液晶的芯片:HD44780U

---------------------------------------------------------------------------------------------------------------------------------

控制原理:

LCD1602液晶顯示屏

控制原理:CUP因?yàn)橐_不夠所以一般不直接控制液晶,而是通過控制芯片HD44780U來控制液晶

HD44780U芯片的控制范圍:總共有80個(gè)字節(jié)的顯存(DRAM)

LCD1602液晶顯示屏

HD44780U芯片:

橫向:控制顯示40個(gè)字符

豎向:控制2個(gè)字符

LCD1601顯示屏:

但是LCD1601顯示屏上只能顯示的范圍:

第一排:00字符——0F字符(16個(gè)字符)

第二排:40字符——4F字符(16個(gè)字符)

LCD1602液晶顯示屏控制LCD1601顯示屏:永遠(yuǎn)有48個(gè)字節(jié)用不到

---------------------------------------------------------------------------------------------------------------------------------

?LCD1602液晶顯示屏

液晶只能顯示:ASCLL碼上的數(shù)字、字母、符號(hào)

顯示字符到對(duì)應(yīng)的液晶塊的代碼原理:

第一步:CPU——發(fā)送顯存地址——————————>HD44780U芯片——>LCD1602

第二步:CPU——在發(fā)送顯示字符的ASCLL碼————>HD44780U芯片——>LCD1602

---------------------------------------------------------------------------------------------------------------------------------

HD44780U芯片引腳分布圖以及原理:

LCD1602液晶顯示屏COM引腳控制:橫向像素

SEG引腳控制 :縱向像素LCD1602液晶顯示屏

COM控制一行:給低電壓

SEG控制一豎:給高電壓顯示 或者 給低電壓不顯示

弊端:

這樣子一次只能顯示一行像素的。

要顯示全部的像素如何解決呢?

解:逐行掃描的控制方式;

這樣子我們?nèi)搜鄄痪涂吹揭恢痹趻呙枇藛幔?/strong>

不會(huì)的,這是通過人眼的視覺暫留原理,因?yàn)橹鹦袙呙璧念l率很快,所以人眼看到的是靜止的畫面

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

LCD1602液晶顯示屏LCD1602液晶顯示屏

?HD44780U芯片:

一共有40個(gè)SEG引腳,但是一個(gè)字符要用5個(gè)SEG引腳,這樣子只能控制縱向的8個(gè)區(qū)域

問:另外縱向的8個(gè)區(qū)域的16個(gè)字符怎么控制?

?答:HD44780U芯片??HD44100H芯片是協(xié)助主控完成另外一半的顯示任務(wù)的

LCD1602液晶顯示屏

?HD44100H芯片:

LCD1602液晶顯示屏HD44780U芯片??HD44100H芯片=80個(gè)SEG引腳

???????????????????????????????????? 剛好可以控制LCD1602的所有像素也就是32個(gè)字符的顯示

LCD1602液晶顯示屏

---------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------應(yīng)用擴(kuò)展-------------------------------------------------------------

?LCD1602液晶顯示屏

在原來的基礎(chǔ)上在加三塊,在換一款能顯示80字符的液晶顯示屏,就能控制80個(gè)字符的顯示了。

但這在多控制都不可能了,因?yàn)镠D44780U芯片此時(shí)的顯存已經(jīng)滿了文章來源地址http://www.zghlxwxcb.cn/news/detail-469801.html

到了這里,關(guān)于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)文章

  • STC89C52單片機(jī)LCD1602顯示屏介紹與代碼演示

    STC89C52單片機(jī)LCD1602顯示屏介紹與代碼演示

    LCD1602顯示屏介紹 引腳介紹 內(nèi)部結(jié)構(gòu)框圖 ?存儲(chǔ)器 ?DDRAM儲(chǔ)存器地址 ?CGRAM與?CGROM的地址 時(shí)序介紹 LCD1602快捷指令? LCD1602指令操作流程: 字符、字符串的顯示 ?各種進(jìn)制的數(shù)字顯示 在LCD1602上顯示十進(jìn)制數(shù)字 在LCD1602上顯示十六進(jìn)制數(shù)字 在LCD1602上顯示二進(jìn)制數(shù)字 LCD1602(Liq

    2024年02月08日
    瀏覽(22)
  • STM32-基本知識(shí)梳理10-FSMC控制ST7789V-LCD液晶顯示屏

    STM32-基本知識(shí)梳理10-FSMC控制ST7789V-LCD液晶顯示屏

    一、ST7789V-LCD液晶顯示 1,一種計(jì)算機(jī)的I/O設(shè)備,即輸入輸出設(shè)備; 2,數(shù)據(jù)傳遞結(jié)構(gòu),光線的傳遞通過偏光片進(jìn)行調(diào)整,最終傳遞到濾光片上,進(jìn)而不同RGB數(shù)據(jù)點(diǎn),即像素點(diǎn); 3, LCD顯示器的關(guān)鍵參數(shù) ①像素:顯示器的像素指它成像最小的點(diǎn) ②分辨率:像素點(diǎn)的個(gè)數(shù)的乘積

    2024年02月12日
    瀏覽(21)
  • TFT-液晶顯示屏的結(jié)構(gòu)和原理

    TFT-液晶顯示屏的結(jié)構(gòu)和原理

    TFT-LCD (薄膜晶體管 液晶顯示屏)的結(jié)構(gòu)組成分為:背光部分,上下偏光片,液晶模組、TCON板 1. 背光模組部分 又分為: ? (1)燈珠(冷陰極管):背光光源 (2)反射板:將燈管發(fā)出來的光 反射到導(dǎo)光板上,增加光的利用率 (3)導(dǎo)光板:將光線折射到擴(kuò)散片上,使光 更

    2023年04月10日
    瀏覽(23)
  • STM32學(xué)習(xí)記錄0010——TFTLCD液晶顯示屏

    STM32學(xué)習(xí)記錄0010——TFTLCD液晶顯示屏

    《STM32不完全手冊(cè)》第18章 《ILI9341數(shù)據(jù)手冊(cè)》 TFT-LCD 即薄膜晶體管液晶顯示器。其英文全稱為:Thin Film Transistor-Liquid Crystal Display。TFT-LCD與無源 TN-LCD、STN-LCD 的簡(jiǎn)單矩陣不同,它在液晶顯示屏的每一個(gè)象素上都設(shè)置有一個(gè)薄膜晶體管(TFT),可有效地克服非選通時(shí)的串?dāng)_,使

    2023年04月09日
    瀏覽(29)
  • FPGA實(shí)現(xiàn)LCD顯示屏顯示彩條

    FPGA實(shí)現(xiàn)LCD顯示屏顯示彩條

    目錄 總體設(shè)計(jì) ?讀顯示屏ID ?讀顯示屏ID代碼 時(shí)鐘分頻 ?時(shí)鐘分頻代碼 ?LCD顯示 lcd顯示模塊 LCD驅(qū)動(dòng)模塊 lcd驅(qū)動(dòng)代碼 頂層模塊 頂層模塊代碼 系統(tǒng)總體分為五個(gè)模塊,分別是:rd_id(讀顯示屏ID模塊),clk_div(時(shí)鐘分頻模塊),lcd_display(lcd屏顯示模塊),lcd_driver(lcd屏驅(qū)動(dòng)模塊),和頂

    2024年02月16日
    瀏覽(24)
  • LCD拼接屏、LED顯示屏和OLED顯示屏的主要區(qū)別

    LCD拼接屏、LED顯示屏和OLED顯示屏的主要區(qū)別

    我們?cè)谏罨蚬ぷ髦薪?jīng)??吹酱蟠笮⌒〉娘@示屏,但很多人卻分不清楚這些屏到底屬于哪一類,今天sostron與大家一起來分享下關(guān)于:LCD拼接屏、LED顯示屏、OLED透明屏三者的區(qū)別。 LCD拼接屏、LED顯示屏和OLED顯示屏是不同類型的顯示技術(shù),它們?cè)跇?gòu)成、工作原理和特點(diǎn)上存在明

    2024年02月17日
    瀏覽(23)
  • 單片機(jī)期末設(shè)計(jì) - 液晶顯示屏顯示時(shí)間、日期、溫度及按鍵控制(實(shí)驗(yàn)板實(shí)現(xiàn))

    單片機(jī)期末設(shè)計(jì) - 液晶顯示屏顯示時(shí)間、日期、溫度及按鍵控制(實(shí)驗(yàn)板實(shí)現(xiàn))

    設(shè)計(jì)本代碼的主要目的是為了完成期末作業(yè),即在液晶顯示屏上顯示、時(shí)間、日期、溫度,以及用按鍵控制時(shí)間、溫度的顯示。總的來說就是對(duì)前面學(xué)習(xí)計(jì)數(shù)的糅合,本代碼實(shí)現(xiàn)的是顯示時(shí)間,并能在實(shí)驗(yàn)板上成功顯示。 1.液晶顯示屏模塊應(yīng)用 主要是學(xué)會(huì)如何在液晶顯示屏上

    2024年02月08日
    瀏覽(19)
  • LCD1602液晶顯示模塊

    LCD1602液晶顯示模塊

    1、概述: LCD1602(Liquid Crystal Display)是一種工業(yè)字符型液晶,能夠同時(shí)顯示 16×02,32個(gè) 字符(16列兩行)。是我們接觸引腳最多的模塊。 LCD1602我們的非標(biāo)準(zhǔn)協(xié)議(標(biāo)準(zhǔn)協(xié)議有IIC、IIS、SPI)中比較容易懂的玩法。 2、引腳說明:翻閱LCD1602說明書 共有16根引腳,如下表: 編號(hào) 符號(hào)

    2024年02月16日
    瀏覽(26)
  • LCD12864顯示屏原理及使用教程

    LCD12864顯示屏原理及使用教程

    ????????LCD12864液晶顯示模塊是 128×64點(diǎn)陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖形,內(nèi)置 8192個(gè)中文漢字(16X16 點(diǎn)陣)(需帶有字庫的型號(hào)才能顯示中文)、128 個(gè)字符(8X16 點(diǎn)陣)及 64X256 點(diǎn)陣顯示 RAM(GDRAM)??膳c CPU 直接接口,提供兩種界面來連接微處理機(jī):8

    2024年01月19日
    瀏覽(23)
  • 【STM32篇】驅(qū)動(dòng)LCD顯示屏

    【STM32篇】驅(qū)動(dòng)LCD顯示屏

    本次使用的硬件設(shè)備為野火的霸道V2開發(fā)板,顯示器控制芯片型號(hào)為ILI9341,實(shí)際型號(hào)為ST7789V。在編寫代碼時(shí)參考的是ILI9341數(shù)據(jù)手冊(cè),二者差別不大,都是240*320分辨率。 ????????ILI9341是一個(gè)用于TFT液晶顯示的單芯片控制驅(qū)動(dòng)器,具有262144色的240RGB x 320像素顯示解決方案。

    2024年02月12日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包