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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7113|回復: 7
打印 上一主題 下一主題
收起左側

逆向思維10分鐘教會你學會ILI9325液晶驅動

  [復制鏈接]
跳轉到指定樓層
樓主
ID:300884 發表于 2018-4-2 17:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 ds444 于 2018-4-2 17:25 編輯

只要你有點基礎-知道什么叫地址,什么叫指針,會玩流水燈,菜鳥可以在我這里學會,老司機可以在我這里瞬間學會,不用去看麻煩的手冊


一般產品手冊上教的是你怎么用單片機操作他們生產的模塊
我的逆向思維法是告訴你他們的模塊是怎么接受和識別你所發出的指令
好處有兩個: 一是瞬間學會  二是了解機理后,語句上更靈活精簡

好了,開始說正題。首先要了解下幾個引腳的功能和兩大寄存器和把數據線接對。把IO口置為推挽方式

一.指令寄存器(從GRAM跳轉到這里的方法是RS=0)
RESET 這個是復位,不需要我解釋了吧
CS  :片選它的作用是除了字面上的意思外,還有個和SPI總線的NSS腳一樣的作用:重新定義數據頭,如果通訊

中出現數據錯位的話這個腳就起到作用了
RS  :數據 or  地址(低電平就把你賦到數據口上的值當做地址來操作地址指針。 高電平時寫的數據被放進相

應寄存器里)
RD  :讀(下降沿生效)
WR  :寫(上升沿生效)
DB0-DB17  :數據腳

二。GRAM--是個矩陣,每個點對應屏幕上的一個點(從指令寄存器跳轉到這里的方法是將指令寄存器的地址寫

0X0022(這里是指令寄存器的出口))

1.底層協議和基本函數(后面我具體講)

2.操作寄存器 來實現初始化 其代碼比較復雜上網或者找朋友要份代碼抄一下,想深入研究的朋友可以找份中文

的寄存器說明看下。只要屏來做顯示用的朋友沒有必要看了

3。劃定具體顯示區域,默認是地址每寫一位會自動加1超過分界回自動循環(一般是 X為 0-239 ,Y為 0-319。

當然也可以定義更小的區域) 這個在寄存器0X0050,0X0051,0X0052,0X0053里操作。

4.把GRAM指針移動到指定位置,類似1602液晶光標的作用,它不會顯示出來。指令是行坐標是操作 0x0020寄存

器 列坐標是操作 0x0021寄存器

5。會了上面這些接著就簡單了 初始化--劃顯示區域--移動GRAM坐標到想要的起始位置--寫0X0022把指針移動到

GRAM--對數據端口賦值,WR每個上升沿9325會把該值寫進GRAM并顯示出來(保證RS為高)

6.至于還有個8位總線,硬件是接DB10-DB17。軟件操作和16位總線是一樣的,就是一個 16位指令分兩次來寫而

已。不管是數據還是地址都先寫高8位就行

7.基本協議也就是時序,其實有了上面的解釋很容易自己寫出時序了。我簡單講下吧。先CS=0; RS = 0; P1 =0;

(命令地址高8位都是0) 然后給個上升沿WR = 0;WR = 1; 指令寄存器的地址操作就完成了。光寫地址是完全沒用

的,后面肯定要跟個數據(0X0022是出口它特殊)寫數據的時序和上面一樣,就是要保證WR上升沿的時候RS為高

電平。

8.知道了這些不必傻乎乎的每寫一個指令或者數據就去操作一次CS,也不必每刷一幀屏都去操作一次起始坐標。

因為它會循環的。顯示區域設定在寄存器0050-0053里面,你不去修改它是不會變的,不用反復劃定他。

9.讀數據,讀和寫基本一樣。就是RD下降沿生效和WR上升沿生效的區別,友情提醒一下,讀數據要等待數據穩定

,速度比寫慢一點,具體請看手冊。

本帖旨在拋磚引玉,希望更多高手能把更多模塊的使用方法用這種方式寫出來。充分理解IC的工作方式 一是學的

快  二是可以自己靈活運用
希望高手不要吝嗇!我在等OV7670的驅動,如果沒有人寫的話,我會再近期寫上來。(等我筆記本修好了)

void ILI9325_init(void)
{
   ILI9325_Reset();                RD=1;  CS=1;

        W_com_data(0x00e7,0x0010);      
        W_com_data(0x0000,0x0001);                          //start internal osc
        W_com_data(0x0001,0x0100);     
        W_com_data(0x0002,0x0700);                                 //power on sequence         

            
        W_com_data(0x0003,(1<<12)|(1<<5)|(1<<4) );         //65K
        W_com_data(0x0004,0x0000);                                   
        W_com_data(0x0008,0x0207);                  
        W_com_data(0x0009,0x0000);         
        W_com_data(0x000a,0x0000);                                 //display setting         
        W_com_data(0x000c,0x0001);                                //display setting         
        W_com_data(0x000d,0x0000);                                 //0f3c         
        W_com_data(0x000f,0x0000);
        W_com_data(0x0010,0x0000);   
        W_com_data(0x0011,0x0007);
        W_com_data(0x0012,0x0000);                                                            

   
        W_com_data(0x0013,0x0000);                 
        ms(200);
        W_com_data(0x0010,0x1590);   
        W_com_data(0x0011,0x0227);
        ms(50);
        W_com_data(0x0012,0x009c);                 
        ms(50);
        W_com_data(0x0013,0x1900);   
        W_com_data(0x0029,0x0023);
        W_com_data(0x002b,0x000e);
        ms(50);
        W_com_data(0x0020,0x0000);                                                            
        W_com_data(0x0021,0x0000);                 
      
        ms(50);
        W_com_data(0x0030,0x0007);
        W_com_data(0x0031,0x0707);   
        W_com_data(0x0032,0x0006);
        W_com_data(0x0035,0x0704);
        W_com_data(0x0036,0x1f04);
        W_com_data(0x0037,0x0004);
        W_com_data(0x0038,0x0000);        
        W_com_data(0x0039,0x0706);     
        W_com_data(0x003c,0x0701);
        W_com_data(0x003d,0x000f);
        ms(50);
        W_com_data(0x0050,0x0000);        
        W_com_data(0x0051,0x00ef);   
        W_com_data(0x0052,0x0000);     
        W_com_data(0x0053,0x013f);
        W_com_data(0x0060,0xa700);        
        W_com_data(0x0061,0x0001);
        W_com_data(0x006a,0x0000);
        W_com_data(0x0080,0x0000);
        W_com_data(0x0081,0x0000);
        W_com_data(0x0082,0x0000);
        W_com_data(0x0083,0x0000);
        W_com_data(0x0084,0x0000);
        W_com_data(0x0085,0x0000);
      
        W_com_data(0x0090,0x0010);     
        W_com_data(0x0092,0x0000);  
        W_com_data(0x0093,0x0003);
        W_com_data(0x0095,0x0110);
        W_com_data(0x0097,0x0000);        

        W_com_data(0x0098,0x0000);  

        W_com_data(0x0007,0x0133);
   
        W_com_data(0x0020,0x0000);                                                            
        W_com_data(0x0021,0x0000);
               
}


最后補充個花絮:這是我從某論壇轉載的。但是雖然是轉載,不過原帖也是我本人寫的

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:300884 發表于 2018-4-2 17:23 | 只看該作者
補充一下,這個是我從某論壇轉過來的。但是雖然是轉載,原帖也我我本人寫的
回復

使用道具 舉報

板凳
ID:309970 發表于 2018-4-25 12:15 | 只看該作者
贊你一個
回復

使用道具 舉報

地板
ID:387520 發表于 2018-8-18 14:52 | 只看該作者
贊你一個
回復

使用道具 舉報

5#
ID:389251 發表于 2018-8-23 13:52 | 只看該作者
學習一下漲姿勢了
回復

使用道具 舉報

6#
ID:501195 發表于 2019-3-30 19:43 | 只看該作者
這個能用嗎
回復

使用道具 舉報

7#
ID:430197 發表于 2019-4-2 12:14 | 只看該作者
贊一個,雖然有點亂
回復

使用道具 舉報

8#
ID:427723 發表于 2020-5-22 10:15 | 只看該作者
謝謝分享!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日本在线观看 | 特级黄一级播放 | 国产久| 国内av在线 | 黄色国产 | 欧美性一级 | 99久久婷婷国产综合精品电影 | 青草青草久热精品视频在线观看 | 久久国产精品久久 | 亚洲精品电影网在线观看 | 天堂影院av | 欧美福利久久 | 网站黄色在线免费观看 | 日日操夜夜操天天操 | 9999精品视频 | 精品影院| 精品一区二区三区免费视频 | 国产色99精品9i | 香蕉国产在线视频 | 成人在线视频网 | 香蕉视频久久久 | 成人国产精品免费观看视频 | 国产乱性 | 午夜影院官网 | 黄频视频 | 天天综合网天天综合 | 日韩午夜激情 | 亚洲网站在线观看 | 色橹橹欧美在线观看视频高清 | 久久久久久国产 | av在线电影网 | 日韩一区二区久久 | 久久成人人人人精品欧 | a级在线免费观看 | 欧美精品一区二区三区在线播放 | 久久一区 | 国产精品18hdxxxⅹ在线 | 成人啊啊啊 | 影音av | 一级美国黄色片 | 欧美不卡视频一区发布 |