日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]TFT-LCD即薄膜晶體管液晶顯示器。其英文全稱為:Thin Film Transistor-Liquid Crystal Display。TFT-LCD與無源TN-LCD、STN-LCD的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設(shè)置有一個薄膜晶體管(TFT),可有效地

TFT-LCD即薄膜晶體管液晶顯示器。其英文全稱為:Thin Film Transistor-Liquid Crystal Display。TFT-LCD與無源TN-LCD、STN-LCD的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設(shè)置有一個薄膜晶體管(TFT),可有效地克服非選通時的串?dāng)_,使顯示液晶屏的靜態(tài)特性與掃描線數(shù)無關(guān),因此大大提高了圖像質(zhì)量。TFT-LCD也被叫做真彩液晶顯示器。

TFT液晶原理:


*背光模組:提供光源
*上下偏光片,TFT Glass Substrate,液晶:形成偏振光,控制光線的通過與否
*彩色濾光片:提供TFT LCD R/G/B(三原色)的來源
*ITO透明導(dǎo)電層:提供透明的導(dǎo)電通路
*Photo Spacer:提供一個固定高度給彩色濾光片和TFT Glass Substrate,作為灌入液晶的空間,以及做為上下兩層Glass的支撐

液晶特性:

TFT-LCD使用的液晶為TN(Twist Nematic)型液晶,分子成橢圓狀。TN型液晶一般是順著長軸方向串接,長軸間彼此平行方式排列;當(dāng)接觸到槽狀表面時,液晶分子就會順著槽的方向排列與槽中


當(dāng)液晶被包含在兩個槽狀表面中間,且槽的方向相互垂直,則液晶分子的排列為:
a)上表面分子:沿著a方向;
b)下表面分子:沿著b方向;
c)介于上下表面中間的分子:產(chǎn)生旋轉(zhuǎn)的效應(yīng)。
因此液晶分子在兩槽狀表面間產(chǎn)生90°的旋轉(zhuǎn)

當(dāng)線性偏極光射入上層槽狀表面時,此光線隨著液晶分子的旋轉(zhuǎn)也產(chǎn)生旋轉(zhuǎn)。
當(dāng)線性偏極光射出下層槽狀表面時,此光線已經(jīng)產(chǎn)生了90度的旋轉(zhuǎn)


當(dāng)在上下表面之間加電壓時,液晶分子會順著電場方向排列,此時入射光線不再會旋轉(zhuǎn),因而光線直線射出下表面

偏光片特性:
將非偏極光(一般光線)過濾成偏振光。
當(dāng)非偏極光通過a方向的偏光片時,光線被過濾成與a方向平行的線性偏極光
上圖:偏振方向相同,線性偏極光繼續(xù)前進(jìn),通過第二片偏光片時,光線通過。
下圖:偏振方向不同,通過第二片時,光線被完全阻擋

偏振光透過液晶分子,偏振方向發(fā)生旋轉(zhuǎn),光線可通過偏光片


當(dāng)液晶分子呈如圖方向排列時,光線偏振方向?qū)⒉辉侔l(fā)生旋轉(zhuǎn),最終無法通過偏光片

TFT上下各有一片偏振方向垂直的偏光片,背光板發(fā)出的光經(jīng)背光模組散射后,先通過下層偏光片形成偏振光
之后通過液晶分子,并由液晶分子的旋轉(zhuǎn)角度決定通過液晶分子后的偏振方向
在經(jīng)過彩色濾光片產(chǎn)生紅、綠、藍(lán)三色光,最后通過上偏光片,并由偏振光偏振方向與偏光片偏振方向夾角決定最終輸出的光強(qiáng),以形成不同的色彩。



發(fā)光強(qiáng)弱由MOS管控制液晶偏轉(zhuǎn)角度,從而控制光線出口強(qiáng)弱達(dá)到控制色彩目的.
假設(shè)240*320分辨率液晶則由于 基本色彩是3原色 所以總共有240*320*3個 MOS管


“像素”(Pixel) 是由 Picture(圖像) 和 Element(元素)這兩個單詞的字母所組成的,是用來計算數(shù)碼影像的一種單位,如同攝影的相片一樣,數(shù)碼影像也具有連續(xù)性的濃淡階調(diào),我們?nèi)舭延跋穹糯髷?shù)倍,會發(fā)現(xiàn)這些連續(xù)色調(diào)其實是由許多色彩相近的小方點所組成,這些小方點就是構(gòu)成影像的最小單位“像素”(Pixel)。這種最小的圖形的單元能在屏幕上顯示通常是單個的染色點。越高位的像素,其擁有的色板也就越豐富,越能表達(dá)顏色的真實感。

每個點顯示的顏色如何由確定?
由于TFT 液晶我使用的是2.8寸的240*320分辨率(像素),16位真彩顯示(接近自然色)
該模塊采用的是顯尚光電的DST2001PH TFTLCD,DST2001PH的控制器為ILI9320(可能為其他),采用16位的80并口。
驅(qū)動芯片顯存GRAM與色彩關(guān)系:

由于是16為數(shù)據(jù),所以最低5位代表藍(lán)色,中間6位為綠色,最高5位為紅色。數(shù)值越大,表示該顏色越深。
就是向顯存里面寫入不同數(shù)據(jù),產(chǎn)生不同的顏色.
常見顏色確定:

利用畫圖工具里面3原色可能確定需要的顯存數(shù)據(jù)。


本人使用ALIENTEK MiniSTM32開發(fā)板自配2.8寸液晶
液晶驅(qū)動芯片硬件接口:


采用16位數(shù)據(jù)線(低了速度太慢,用彩色就沒什么效果了)。該模塊的80并口有如下一些信號線:
CS:TFTLCD片選信號。
WR:向TFTLCD寫入數(shù)據(jù)。
RD:從TFTLCD讀取數(shù)據(jù)。
D[15:0]:16位雙向數(shù)據(jù)線。
RST:硬復(fù)位TFTLCD。
RS:命令/數(shù)據(jù)標(biāo)志(0,讀寫命令;1,讀寫數(shù)據(jù))。

ILI9320常用寄存器指令:


R0,這個命令,有兩個功能,如果對它寫,則最低位為OSC,用于開啟或關(guān)閉振蕩器。而如果對它讀操作,則返回的是控制器的型號。這個命令最大的功能就是通過讀它可以得到控制器的型號,而我們代碼在知道了控制器的型號之后,可以針對不同型號的控制器,進(jìn)行不同的初始化。因為93xx系列的初始化,其實都比較類似,我們完全可以用一個代碼兼容好幾個控制器。
R3,入口模式命令。我們重點關(guān)注的是I/D0、I/D1、AM這3個位,因為這3個位控制了屏幕的顯示方向。
//------------------------------------------------------------------------------------------------------------------------------------------
AM:控制GRAM更新方向。當(dāng)AM=0的時候,地址以行方向更新。當(dāng)AM=1的時候,地址以列方向更新。
I/D[1:0]:當(dāng)更新了一個數(shù)據(jù)之后,根據(jù)這兩個位的設(shè)置來控制地址計數(shù)器自動增加/減少1,
/--------------------------------------------------------------------------------------------------------------------------------------------




R7:顯示控制命令。該命令CL位用來控制是8位彩色,還是26萬色。為0時26萬色,為1時八位色。D1、D0、BASEE這三個位用來控制顯示開關(guān)與否的。當(dāng)全部設(shè)置為1的時候開啟顯示,全0是關(guān)閉。我們一般通過該命令的設(shè)置來開啟或關(guān)閉顯示器,以降低功耗。

R32,R33:設(shè)置GRAM的行地址和列地址。R32用于設(shè)置列地址(X坐標(biāo),0~239),R33用于設(shè)置行地址(Y坐標(biāo),0~319)。當(dāng)我們要在某個指定點寫入一個顏色的時候,先通過這兩個命令設(shè)置到改點,然后寫入顏色值就可以了.

R34:寫數(shù)據(jù)到GRAM命令,當(dāng)寫入了這個命令之后,地址計數(shù)器才會自動的增加和減少。該命令是我們要介紹的這一組命令里面唯一的單個操作的命令,只需要寫入該值就可以了,其他的都是要先寫入命令編號,然后寫入操作數(shù).

R80~R83:行列GRAM地址位置設(shè)置。這幾個命令用于設(shè)定你顯示區(qū)域的大小,我們整個屏的大小為240*320,但是有時候我們只需要在其中的一部分區(qū)域?qū)懭霐?shù)據(jù),如果用先寫坐標(biāo),后寫數(shù)據(jù)這樣的方式來實現(xiàn),則速度大打折扣。此時我們就可以通過這幾個命令,在其中開辟一個區(qū)域,然后不停的丟數(shù)據(jù),地址計數(shù)器就會根據(jù)R3的設(shè)置自動增加/減少,這樣就不需要頻繁的寫地址了,大大提高了刷新的速度。
//--------------------------------------------------------------------------------------------------------
我們接下來看看要如何才能驅(qū)動ALIENTEK TFTLCD模塊,TFTLCD顯示需要的相關(guān)設(shè)置步驟如下:
1)設(shè)置STM32與TFTLCD模塊相連接的IO。
這一步,先將我們與TFTLCD模塊相連的IO口設(shè)置為輸出,具體使用哪些IO口,這里需要根據(jù)連接電路以及TFTLCD模塊的設(shè)置來確定。
2)初始化TFTLCD模塊。
其實這里就是上和上面OLED模塊的初始化過程差不多。通過向TFTLCD寫入一系列的設(shè)置,來啟動TFTLCD的顯示。為后續(xù)顯示字符和數(shù)字做準(zhǔn)備。
3)通過函數(shù)將字符和數(shù)字顯示到TFTLCD模塊上。

MiniSTM32開發(fā)板的IO口對應(yīng)關(guān)系如下:
LCD_LED對應(yīng)PC10;
LCD_CS對應(yīng)PC9;
LCD _RS對應(yīng)PC8;
LCD _WR對應(yīng)PC7;
LCD _RD對應(yīng)PC6;
LCD _D[17:1]對應(yīng)PB[15:0];

基本GUI接口函數(shù)簡介(一)

80并口時序圖:

(一) :
//------寫數(shù)據(jù)函數(shù)---------這里我們采用了宏定義的方式,以提高速度(由于顯示圖像寫入讀出頻繁):
#define LCD_WR_DATA(data){

LCD_RS_SET; //選擇數(shù)據(jù)
LCD_CS_CLR; //選擇片
DATAOUT(data); //把數(shù)據(jù)放入端口
LCD_WR_CLR; //WR寫數(shù)據(jù)來個上升沿(將數(shù)據(jù)寫入)
LCD_WR_SET;
LCD_CS_SET; //CS上升沿 寫入數(shù)據(jù)完成
}
上面函數(shù)中的‘’是C語言中的一個轉(zhuǎn)義字符,用來連接上下文,因為宏定義只能是一個串,而當(dāng)你的串過長(超過一行的時候),就需要換行了,此時就必須通過反斜杠來連接上下文。這里的‘’正是起這個作用
(二):
因為該函數(shù)使用頻率不是很高,不使用宏定義
//----向寄存器發(fā)送指令函數(shù)------
void LCD_WR_REG(u8 data)
{
LCD_RS_CLR; //選擇指令
LCD_CS_CLR; //選中芯片
DATAOUT(data); //端口放上指令
LCD_WR_CLR; //WR寫數(shù)據(jù)來個上升沿(將數(shù)據(jù)寫入)
LCD_WR_SET;
LCD_CS_SET; //CS上啦完成操作
}
(三) :
由下面2個寄存器設(shè)置快速IO


//-------讀取寄存器值函數(shù)---------
u16 LCD_ReadReg(u8 LCD_Reg)
{
u16 t;
LCD_WR_REG(LCD_Reg); //寫入要讀的寄存器號
GPIOB->CRL=0x88888888; //將端口PORTB設(shè)置成輸入模式
GPIOB->CRH=0x88888888;
GPIOB->ODR=0xffff; //端口上拉預(yù)備輸入
#ifdef LCD_FAST_IO //判斷快速IO口是否宏定義過
LCD_RS_SET; //運用快速IO口 (例:#define LCD_CS_SETGPIOC->BSRR=1<<9 //片選口PC9)
LCD_CS_CLR;
LCD_RD_CLR;
LCD_RD_SET; //RD腳產(chǎn)生上升沿
t=DATAIN;
LCD_CS_SET;
#endif
GPIOB->CRL=0x33333333; //恢復(fù)輸出狀態(tài)
GPIOB->CRH=0x33333333;
GPIOB->ODR=0xffff;
return t;
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式開發(fā)中,STM32的時鐘系統(tǒng)因其靈活性和復(fù)雜性成為開發(fā)者關(guān)注的焦點。然而,看似簡單的時鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導(dǎo)致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時鐘源選擇、PLL配置、總線時鐘分配等關(guān)鍵環(huán)...

關(guān)鍵字: STM32 時鐘系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內(nèi)部溫度傳感器因其低成本、高集成度特性,廣泛應(yīng)用于設(shè)備自檢、環(huán)境監(jiān)測等場景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準(zhǔn)算法、軟...

關(guān)鍵字: STM32 溫度傳感器

在能源效率與智能化需求雙重驅(qū)動下,AC-DC轉(zhuǎn)換器的數(shù)字控制技術(shù)正經(jīng)歷從傳統(tǒng)模擬方案向全數(shù)字架構(gòu)的深刻變革?;赟TM32微控制器的PFM(脈沖頻率調(diào)制)+PWM(脈沖寬度調(diào)制)混合調(diào)制策略,結(jié)合動態(tài)電壓調(diào)整(Dynam...

關(guān)鍵字: AC-DC STM32

當(dāng)前智能家居產(chǎn)品需求不斷增長 ,在這一背景下 ,對現(xiàn)有澆花裝置缺陷進(jìn)行了改進(jìn) ,設(shè)計出基于STM32單片機(jī)的全 自動家用澆花機(jī)器人。該設(shè)計主要由機(jī)械結(jié)構(gòu)和控制系統(tǒng)構(gòu)成 ,機(jī)械結(jié)構(gòu)通過麥克納姆輪底盤與噴灑裝置的結(jié)合實現(xiàn)機(jī)器...

關(guān)鍵字: STM32 麥克納姆輪 安全可靠 通過性強(qiáng)

用c++編程似乎是讓你的Arduino項目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個圖形化編程平臺將復(fù)雜電子項目的創(chuàng)建變成了拖動和連接塊的簡單任務(wù)。在本文中,我們將帶您完成使...

關(guān)鍵字: Visuino Arduino ESP32 STM32

基于STM32與LoRa技術(shù)的無線傳感網(wǎng)絡(luò)憑借其低功耗、廣覆蓋、抗干擾等特性,成為環(huán)境監(jiān)測、工業(yè)自動化等場景的核心解決方案。然而,如何在復(fù)雜電磁環(huán)境中實現(xiàn)高效休眠調(diào)度與動態(tài)信道優(yōu)化,成為提升網(wǎng)絡(luò)能效與可靠性的關(guān)鍵挑戰(zhàn)。本...

關(guān)鍵字: STM32 LoRa

在實時控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對時間敏感的應(yīng)用場景中,中斷響應(yīng)延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關(guān)鍵字: STM32 DMA

數(shù)字電源技術(shù)向高功率密度、高效率與高動態(tài)響應(yīng)方向加速演進(jìn),STM32微控制器憑借其基于DSP庫的算法加速能力與對LLC諧振變換器的精準(zhǔn)控制架構(gòu),成為優(yōu)化電源動態(tài)性能的核心平臺。相較于傳統(tǒng)模擬控制或通用型數(shù)字控制器,STM...

關(guān)鍵字: STM32 數(shù)字電源

STM32微控制器憑借其針對電機(jī)控制場景的深度優(yōu)化,成為高精度、高可靠性驅(qū)動系統(tǒng)的核心選擇。相較于通用型MCU,STM32在電機(jī)控制領(lǐng)域的核心優(yōu)勢集中體現(xiàn)在FOC(磁場定向控制)算法的硬件加速引擎與PWM死區(qū)時間的動態(tài)補(bǔ)...

關(guān)鍵字: STM32 電機(jī)控制

無線充電技術(shù)加速滲透消費電子與汽車電子領(lǐng)域,基于Qi協(xié)議的無線充電發(fā)射端開發(fā)成為智能設(shè)備能量補(bǔ)給的核心課題。傳統(tǒng)模擬控制方案存在響應(yīng)滯后、參數(shù)調(diào)整困難等問題,而基于STM32的數(shù)字PID控制結(jié)合FOD(Foreign O...

關(guān)鍵字: STM32 無線充電
關(guān)閉