久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1826|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STC8H硬件SPI驅(qū)動(dòng)Nokia5110 LCD(PCD8544)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
Nokia5110 LCD

原文地址: https://www.cnblogs.com/milton/p/16339805.html

有片很早以前買(mǎi)的Nokia5110 LCD一直在紙箱里吃灰. 可能是買(mǎi)其它配件時(shí)送的? 沒(méi)有合適的用途一直扔在那里, 偶爾見(jiàn)到總會(huì)想什么時(shí)候有空給它點(diǎn)一下.

外觀長(zhǎng)這樣. 其實(shí)市面上這種模塊有幾個(gè)不同的版本, 另一種版本是上下有兩排排針, 方便不同的PCB布局, 功能是一樣的.


單色LCD, 84x48像素, 帶4顆藍(lán)色LED燈珠作為背光. 顯示芯片是Philips PCD8544.

因?yàn)槭荖okia5110手機(jī)的顯示屏, 所以一般都叫它Nokia5110 LCD. 在2014年大屏手機(jī)還沒(méi)流行的年代, 這是個(gè)相當(dāng)不錯(cuò)的顯示輸出設(shè)備, 相對(duì)于1602和2004LCD, 體積小分辨率高, 便宜量又足.

現(xiàn)在遍地12864的LCD/OLED, 還有分辨率更高的彩色LCD可以選擇, 這個(gè)模塊也就沒(méi)什么人用了.

PCD8544

菲利普生產(chǎn)的單片低功耗CMOS LCD驅(qū)動(dòng)控制器芯片, 用于驅(qū)動(dòng)84x48像素的LCD
接口是SPI
顯示內(nèi)存 = 6 banks x 84 segments x 8 bits = 4032 bits = 504字節(jié)
Each bank contains 84 columns/segments (from 0 to 83)
Each column can store 8 bits of data (from 0 to 7)

Pin腳



RST 復(fù)位
CE 片選, CS
DC 數(shù)據(jù)/指令選擇, D/C
DIN SPI數(shù)據(jù), MOSI
CLK SPI時(shí)鐘線
VCC 電源, 這個(gè)模塊兼容3.3V和5V, 如果沒(méi)有標(biāo)識(shí)建議使用3.3V
BL 背光
GND 接地

指令說(shuō)明

PCD8544 的指令很少, 比 ST7567還少. 顯示機(jī)制和 ST7567 基本上是一樣的.

寫(xiě)數(shù)據(jù)和寫(xiě)命令
使用D/C pin控制, 高電平表示寫(xiě)入數(shù)據(jù), 低電平表示寫(xiě)命令

功能設(shè)置
Function set: 0x20, 疊加下面的參數(shù)

Power down control: 0x04 關(guān)機(jī)模式
Entry mode: 0x02 尋址方式, 設(shè)置后變成垂直尋址, 先下再右; 正常模式是先右再下, 一般使用正常模式
Extended instruction set: 開(kāi)啟擴(kuò)展指令. 開(kāi)啟后可以修改溫度參數(shù), 電壓基準(zhǔn)偏移, 顯示電壓, 后面兩個(gè)用于調(diào)節(jié)LCD的對(duì)比度
顯示控制
Display control: 0x08, 疊加下面的參數(shù)

Display blank 顯示空白: 0x00
Normal mode 正常顯示: 0x04
All display segment on 顯示全部: 0x01
Inverse video mode 反顯模式: 0x05

坐標(biāo)定位

PCD8544的顯示結(jié)構(gòu)


只能定位到字節(jié), 定位后寫(xiě)入數(shù)據(jù), 會(huì)按設(shè)置好的尋址方式往下寫(xiě)

設(shè)置x坐標(biāo): 0x80 疊加 [0x00, 0x84) 之間的值
設(shè)置y坐標(biāo): 0x40 疊加 [0x00, 0x06) 之間的值

擴(kuò)展指令

下面的命令必須在開(kāi)啟擴(kuò)展指令后執(zhí)行才有效

Temperature control 溫度因子, 0x04 疊加取值 [0x00, 0x03]
Bias system 電壓基準(zhǔn)控制, 0x10 疊加取值 [0x00, 0x07]
Set Vop 顯示電壓控制, 0x80 疊加取值 [0x00, 0x7F]
這三個(gè)指令需要說(shuō)明一下, 設(shè)置不當(dāng)可能會(huì)顯示全黑或者完全無(wú)顯示

溫度因子可以不設(shè)置, 使用默認(rèn)
電壓基準(zhǔn)設(shè)置得越大, 最后的實(shí)際顯示電壓越高, LCD顯示部分就越黑, 如果屏幕無(wú)顯示, 可以先調(diào)成0x07試試
顯示電壓高低和設(shè)置的值成正比, 值越高實(shí)際顯示電壓越高, LCD顯示部分就越黑
使用 STC8H 進(jìn)行測(cè)試
以下使用 STC8H3K32 和 FwLib_STC8 進(jìn)行測(cè)試

接線

上電前一定要檢查一下VCC和GND是否正確, 電壓是否正確

P37   -> RES, RESET
P36   -> DC, A0
P35   -> CE, Chip Select
P32   -> SCK, SCL, CLK, Clock
P12   -> BL, Backlight
P34   -> MOSI, Din
GND   -> GND
3.3V  -> VCC

代碼

代碼可以從GitHub或者Gitee下載

GitHub: https://github.com/IOsetting/FwL ... d8544_nokia5110_lcd
Gitee: https://gitee.com/iosetting/fw-l ... d8544_nokia5110_lcd

初始化
  1. // 重置
  2. PCD8544_Reset();
  3. // 設(shè)置對(duì)比度, 如果顯示太淡或太深, 需要自行調(diào)整
  4. PCD8544_SetContrast(0x06, 0x20);
  5. // 設(shè)置為正常顯示模式
  6. PCD8544_SetDisplayNormal();
復(fù)制代碼

開(kāi)啟和關(guān)閉背光
  1. // 開(kāi)啟背光
  2. PCD8544_SetBackLightState(HAL_State_ON);
  3. // 關(guān)閉背光
  4. PCD8544_SetBackLightState(HAL_State_OFF);
復(fù)制代碼

清屏
  1. PCD8544_Fill(0);
  2. PCD8544_UpdateScreen();
復(fù)制代碼



反顯
開(kāi)啟反顯后, 需要再設(shè)置為正常顯示模式才能恢復(fù), 不能通過(guò)再次調(diào)用反顯恢復(fù)
  1. PCD8544_SetDisplayInverted();
復(fù)制代碼


畫(huà)線
  1. // 從(0,0)畫(huà)線到(83,0)
  2. PCD8544_DrawLine(0,   0,  83,  0, 1);
  3. PCD8544_DrawLine(0,   0,   0, 47, 1);
  4. PCD8544_DrawLine(83,  0,  83, 47, 1);
  5. PCD8544_DrawLine(0,  47,  83, 47, 1);
  6. PCD8544_UpdateScreen();
復(fù)制代碼


顯示文字
  1. // 移動(dòng)坐標(biāo)到(3,3)
  2. PCD8544_GotoXY(3, 3);
  3. // 使用5x7字體顯示英文
  4. PCD8544_Puts("LCD:PCD8544", Font_5x7, 1);
  5. PCD8544_UpdateScreen();
復(fù)制代碼


關(guān)機(jī)模式
  1. // 關(guān)機(jī)
  2. PCD8544_SetPowerDownMode(HAL_State_ON);
  3. // 開(kāi)機(jī)
  4. PCD8544_SetPowerDownMode(HAL_State_OFF);
復(fù)制代碼


參數(shù)說(shuō)明
這三個(gè)擴(kuò)展命令會(huì)影響顯示, 設(shè)置不當(dāng)會(huì)變成全白或全黑
  1. #define PCD8544_SETTEMP             0x04 // Extended instruction set - Set temperature coefficient
  2. #define PCD8544_SETBIAS             0x10 // Extended instruction set - Set bias system
  3. #define PCD8544_SETVOP              0x80 // Extended instruction set - Write Vop to register
復(fù)制代碼


其中
PCD8544_SETTEMP是溫度因子, 通常不需要設(shè)置
PCD8544_SETBIAS是偏壓級(jí)別, 通常設(shè)置為[3,7]之間的指, 對(duì)應(yīng)的寫(xiě)入就是[0x13, 0x17]
PCD8544_SETVOP是系統(tǒng)電壓, 會(huì)受上面的兩個(gè)參數(shù)影響
如果初始化后無(wú)顯示或顯示全黑的, 可以根據(jù)上面的范圍調(diào)整.

演示



視頻中可以看到不同基準(zhǔn)電壓下, 調(diào)節(jié)顯示電壓造成的對(duì)比度變化

https://www.bilibili.com/video/BV1eF411G7Y7


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产视频中文字幕 | 涩涩视频网站在线观看 | 黄网站免费入口 | 精品一区二区三区免费毛片 | www.888www看片 | 亚洲一区亚洲二区 | 欧美日韩在线免费 | 国产一伦一伦一伦 | 亚洲伦理自拍 | 欧美成人二区 | 成人av免费 | av在线免费网站 | 99re99| 亚洲精品4 | 国产伦精品一区二区三区照片91 | 久久久久久黄 | 成人在线影视 | 国产一区二区三区四区三区四 | 综合中文字幕 | 在线免费观看视频你懂的 | 黄色一级片视频 | 亚洲嫩草 | 中文字幕日韩一区 | 国产一二区视频 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 蜜桃视频在线观看免费视频网站www | 91在线精品视频 | 黄色片视频 | 精品一区二区三区免费视频 | 欧美一区二区三区 | 2018天天干天天操 | 国产欧美一区二区三区另类精品 | 久久69精品久久久久久久电影好 | 欧美一级三级在线观看 | 午夜三级网站 | 日韩欧美网 | 日韩一区二区三区在线 | 亚洲欧洲精品在线 | 国产小视频在线 | 国产激情91久久精品导航 | 日本中出视频 |