版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
3.4項(xiàng)目實(shí)踐:帶屏顯的溫濕度計(jì)本章主要項(xiàng)目實(shí)踐-帶屏顯的溫濕度計(jì)。通過學(xué)習(xí)本節(jié)將能夠了解屏顯溫濕度計(jì)的項(xiàng)目實(shí)踐過程。通過本節(jié)學(xué)習(xí)可以熟悉:OLED屏顯示數(shù)字OLED屏顯示中文項(xiàng)目程序?qū)崿F(xiàn)
OLED屏顯示數(shù)字OLED屏顯示中文項(xiàng)目程序?qū)崿F(xiàn)
OLED屏顯示數(shù)字(1/5)
在屏上顯示一個(gè)字符如同顯示一個(gè)小圖片一樣,字符的像素點(diǎn)陣數(shù)據(jù)記錄每個(gè)像素點(diǎn)是否要顯示出來,如‘W’字符的8x6像素點(diǎn)陣圖:點(diǎn)陣數(shù)據(jù)第0列的數(shù)據(jù)為0x00,第1列數(shù)據(jù)為0x3F,依次對應(yīng)。OLED屏顯示數(shù)字(2/5)打開PcToLCD工具后,在菜單“模式”中選中“字符模式”后配置選項(xiàng):OLED屏顯示數(shù)字(3/5)輸入框中輸入“0123456789.”,生成字模16x8的像素點(diǎn)陣數(shù)據(jù):OLED屏顯示數(shù)字(4/5)然后將字符的像素點(diǎn)陣數(shù)據(jù)復(fù)制到源文件中,并由一個(gè)二維數(shù)組存放起來:OLED屏顯示數(shù)字(5/5)在源文件中實(shí)現(xiàn)讓OLED屏顯示數(shù)字字符的功能函數(shù)關(guān)鍵代碼:voidoledShowFloat(u8x,u8y,floatn)//在oled屏上顯示浮點(diǎn)數(shù),
x、y表示屏顯始坐標(biāo),
n表示要顯示的浮點(diǎn)數(shù)
u8data[20];
sprintf(data,"%.1f",n);//轉(zhuǎn)換成一位小數(shù)的浮點(diǎn)數(shù)字符串
for(intk=0;k<strlen(data);k++)
for(intr=0;r<2;r++)//每個(gè)字符像素?cái)?shù)據(jù)是16x8,所以只算2行
oledSetPosition(x+k*8,r+y);
for(intc=0;c<8;c++)
//一行8個(gè)像素點(diǎn)
if('.'==data[k])
oledSendData(numberData[10][n++]);
else
oledSendData(numberData[data[k]-'0'][n++]);
OLED屏顯示數(shù)字OLED屏顯示中文項(xiàng)目程序?qū)崿F(xiàn)
OLED屏顯示中文(1/3)PcToLCD工具上生成中文字符的像素16x16點(diǎn)陣數(shù)據(jù):OLED屏顯示中文(2/3)將中文字符的點(diǎn)陣數(shù)據(jù)復(fù)制到源文件中,修改后由一個(gè)二維數(shù)組存放起來:OLED屏顯示中文(3/3)在源文件開發(fā)實(shí)現(xiàn)OLED屏顯示中文字符的功能函數(shù)://在ole屏上顯示中文字符,
x、y表示屏顯的始坐標(biāo),
index表示第幾個(gè)中文字符voidoledShowChinese(u8x,u8y,u8index){
intn=0;
for(intr=0;r<2;r++)//16列,oled屏2行
{
oledSetPosition(x,r+y);//設(shè)置屏顯的始坐標(biāo)
for(intc=0;c<16;c++)//每行有16列
{
oledSendData(charData[index][n++]);//每次發(fā)一列的8個(gè)像素?cái)?shù)據(jù)
}
}}OLED屏顯示數(shù)字OLED屏顯示中文項(xiàng)目程序?qū)崿F(xiàn)
項(xiàng)目程序?qū)崿F(xiàn)
實(shí)現(xiàn)在OLED屏上顯示DHT11傳感器所獲取的溫度與濕度數(shù)據(jù),主要步驟:1.基于原DHT11驅(qū)動源文件上修改2.在DHT11源文件中的采集線程函數(shù)中在屏上刷出“溫度”、“濕度”3.溫濕度數(shù)據(jù)采集完成后,I2C通信原理鴻蒙系統(tǒng)I2C操作函數(shù)OLED屏工作原理OLED屏驅(qū)動OLED屏工作原理(1/3)
OLED,全稱是OrganicLight-EmittingDiode,即有機(jī)發(fā)光二極管。OLED屏也就是使用一個(gè)發(fā)光二極管的亮與熄分別表示圖像每個(gè)像素點(diǎn)的白與黑。由于存在能發(fā)出不同顏色光的二極管,OLED屏因此既有白、藍(lán)、黃等單色屏,也有由紅、綠、藍(lán)三個(gè)不同的發(fā)光二極管共同構(gòu)成每個(gè)像素顏色的OLED彩屏。OLED屏工作原理(2/3)OLED屏物理上一行有128個(gè)像素點(diǎn),共有64行,因此稱12864屏。屏幕上的每個(gè)像素點(diǎn),通過控制其對應(yīng)的發(fā)光二極管來顯示黑色或藍(lán)色,而圖像與字符的呈現(xiàn),則依賴于由多個(gè)像素點(diǎn)構(gòu)成的點(diǎn)陣來實(shí)現(xiàn)。如K字符16x8點(diǎn)陣的像素?cái)?shù)據(jù)分成兩行,每行8字節(jié)數(shù)據(jù),每字節(jié)表示從低位到高位上下8行一列的像素點(diǎn)數(shù)據(jù)OLED屏工作原理(3/3)
本次OLED屏模塊采用了SSD1306驅(qū)動IC,該驅(qū)動IC內(nèi)部集成了128x64像素點(diǎn)的顯存以及眾多配置寄存器,并支持I2C通信接口。OLED屏的驅(qū)動流程:I2C通信原理鴻蒙系統(tǒng)I2C操作函數(shù)OLED屏工作原理OLED屏驅(qū)動OLED屏驅(qū)動(1/8)
根據(jù)芯片手冊,SSD1306芯片在作為I2C設(shè)備時(shí),其設(shè)備地址為0x3C。根據(jù)屏商家提供的例程源碼,雖然在物理上OLED屏像素分成64行,每行128個(gè)像素點(diǎn),但在代碼邏輯中僅僅分成8行,每行由物理上的8行組成:OLED屏驅(qū)動(2/8)開發(fā)板與OLED屏模塊引腳連接如下:OLED屏模塊
開發(fā)板
VCC
-------
3.3V
GND
-------
GND
SDA
-------
IO13//I2C0_SDA
SCL
-------
IO14//I2C0_SCLOLED屏驅(qū)動(3/8)驅(qū)動流程:1.OLED屏所接的I2C控制器初始化2.通過I2C控制器向OLED屏發(fā)送命令進(jìn)行屏的初始化3.屏初始化完成后,顯示花屏。OLED屏驅(qū)動(4/8)屏上顯示圖像流程:1.使用PcToLCD工具將圖像轉(zhuǎn)換為二進(jìn)制像素?cái)?shù)據(jù)。工具的配置選項(xiàng):OLED屏驅(qū)動(5/8)2.生成字模數(shù)據(jù)后,圖像的二進(jìn)制數(shù)據(jù)由十六進(jìn)制數(shù)據(jù)表示。將圖像數(shù)據(jù)復(fù)制到源文件中,并由一個(gè)數(shù)組存放起來:OLED屏驅(qū)動(6/8)3.實(shí)現(xiàn)設(shè)置OLED屏刷出像素點(diǎn)的開始坐標(biāo)函數(shù):voidoledSetPosition(u8x,u8y){//x表示一行的第幾個(gè)像素點(diǎn),y表示OLED屏的第幾行(注意此行為物理上的8行像素) oledSendCmd(0xb0+y); oledSendCmd(((x&0xf0)>>4)|0x10); oledSendCmd(x&0x0f);}OLED屏驅(qū)動(7/8)4.實(shí)現(xiàn)將圖像數(shù)據(jù)傳輸至SSD1306驅(qū)動IC,讓之在OLED屏上顯示圖像的功能函數(shù):voidoledShowBmp(u8x,u8y,u8bmpW,u8bmpH,u8*bmpData){//oled每行8列,也是oled屏的一行相當(dāng)于8行像素
intn=0;
for(intr=0;r<bmpH/8;r++)
{
oledSetPosition(x,r+y);//設(shè)置屏顯的始坐標(biāo)
for(intc=0;c<bmpW;c++)
{
oledSendData(bmpData[n++]);//每次發(fā)一列的8個(gè)像素?cái)?shù)據(jù)
}
}}OLED屏驅(qū)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第30課《系統(tǒng)安全需升級》測試題2025-2026學(xué)年人教版八年級信息科技全一冊
- 《GB-T 24438.3-2012自然災(zāi)害災(zāi)情統(tǒng)計(jì) 第3部分:分層隨機(jī)抽樣統(tǒng)計(jì)方法》專題研究報(bào)告
- 《GBT 21595-2008 危險(xiǎn)品便攜式罐體撞擊試驗(yàn)方法》專題研究報(bào)告
- 《GBT 14993-2008轉(zhuǎn)動部件用高溫合金熱軋棒材》專題研究報(bào)告
- 《GB 4706.85-2008家用和類似用途電器的安全 紫外線和紅外線輻射皮膚器具的特殊要求》專題研究報(bào)告
- 道路危險(xiǎn)運(yùn)輸安全培訓(xùn)課件
- 道路交通安全培訓(xùn)素材課件
- 道路交通培訓(xùn)課件
- 2025-2026年蘇教版八年級語文上冊期末題庫試題附答案
- 迪奧項(xiàng)鏈介紹
- 器官移植術(shù)后排斥反應(yīng)的風(fēng)險(xiǎn)分層管理
- 2026年湛江日報(bào)社公開招聘事業(yè)編制工作人員備考題庫及完整答案詳解
- 2025-2026學(xué)年人教版數(shù)學(xué)三年級上學(xué)期期末仿真模擬試卷一(含答案)
- 2025年涼山教師業(yè)務(wù)素質(zhì)測試題及答案
- 2026年昭通市威信縣公安局第一季度輔警招聘(14人)筆試模擬試題及答案解析
- 氫能技術(shù)研發(fā)協(xié)議
- 2025交管12123學(xué)法減分整套試題帶答案解析(全國適用)
- 經(jīng)皮內(nèi)鏡下胃造瘺術(shù)護(hù)理配合
- 2025年國企管理人員能力測評試卷及答案
- 電動車裝配作業(yè)指導(dǎo)書1
- 財(cái)務(wù)部2025年總結(jié)及2026年工作計(jì)劃
評論
0/150
提交評論