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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教關(guān)于51單片機驅(qū)動RGB接口屏

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1010435 發(fā)表于 2024-4-3 23:53 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
一直想用51單片機驅(qū)動RGB接口的屏,自己啃英文時序?qū)懙模瑔纹瑱C用STC8H8K64U,屏幕是480*272分辨率的RGB接口屏,網(wǎng)上說用DE模式驅(qū)動比較簡單,麻煩看下我這個程序時序哪有問題,不考慮刷屏速度,就單純顯示個紅色。現(xiàn)在是什么都不顯示,純白,就背光亮,給背光直接接的24V,單片機用的3.3V








單片機源程序如下:
  1. #include <STC8H.H>
  2. #include "IO_int.H"

  3. #define rrr  P2                //R0~7 在P2口
  4. #define ggg  P0                //G0~7 在P0口
  5. #define bbb  P7                //B0~7 在P7口

  6. #define        wide        480                //有效行
  7. #define        high        272                //有效列
  8. #define        hbp                41+2        //行前沿
  9. #define        hfp                2                //行后沿
  10. #define        vbp                8+2                //列前沿
  11. #define        vfp                2                //列后沿

  12. sbit dclk        =        P1^4;
  13. sbit disp        =        P1^5;                //屏幕開關(guān) 高電平有效
  14. sbit hsync        =        P1^6;
  15. sbit vsync        =        P1^7;
  16. sbit de                =        P1^3;                //高電平有效

  17. //DE模式驅(qū)動  頻率設(shè)置48MHz


  18. void main()
  19. {
  20.         unsigned int i,j;        
  21.         
  22.         IO_int();        //初始化所有IO端口

  23.         P0DR = 0;    P0SR = 0x00;         //設(shè)置針腳轉(zhuǎn)換速度 快速
  24.         P2DR = 0;    P2SR = 0x00;         //設(shè)置針腳轉(zhuǎn)換速度 快速
  25.         P7DR = 0;    P7SR = 0x00;         //設(shè)置針腳轉(zhuǎn)換速度 快速
  26.         P1DR = 0;    P1SR = 0x07;        //設(shè)置針腳轉(zhuǎn)換速度 快速

  27.         disp=0;        //關(guān)顯示

  28.         hsync=1;
  29.         vsync=1;

  30.         disp=1;        //開顯示

  31.         de=0;

  32.     while (1)
  33.     {
  34. //上部不顯示區(qū)域
  35.         for(j=0;j<vbp;j++)
  36.         {
  37.                 for(i=0;i<hbp;i++)
  38.                 {
  39.                         de=0;
  40.                         rrr=0;
  41.                         ggg=0;
  42.                         bbb=0;
  43.                         dclk=0;
  44.                         dclk=1;
  45.                 }

  46.                 for(i=0;i<wide;i++)
  47.                 {
  48.                         de=0;
  49.                         rrr=0;
  50.                         ggg=0;
  51.                         bbb=0;
  52.                         dclk=0;
  53.                         dclk=1;
  54.                 }
  55.                 for(i=0;i<hfp;i++)
  56.                 {
  57.                         de=0;
  58.                         rrr=0;
  59.                         ggg=0;
  60.                         bbb=0;
  61.                         dclk=0;
  62.                         dclk=1;
  63.                 }
  64.         }        
  65. //中間272可顯示區(qū)域
  66.         for(j=0;j<high;j++)
  67.         {
  68.                 for(i=0;i<hbp;i++)
  69.                 {
  70.                         de=0;
  71.                         rrr=0;
  72.                         ggg=0;
  73.                         bbb=0;
  74.                         dclk=0;
  75.                         dclk=1;
  76.                 }

  77.                 for(i=0;i<wide;i++)
  78.                 {
  79.                         de=1;
  80.                         rrr=0xff;
  81.                         ggg=0;
  82.                         bbb=0;
  83.                         dclk=0;
  84.                         dclk=1;
  85.                 }
  86.                 for(i=0;i<hfp;i++)
  87.                 {
  88.                         de=0;
  89.                         rrr=0;
  90.                         ggg=0;
  91.                         bbb=0;
  92.                         dclk=0;
  93.                         dclk=1;
  94.                 }
  95.         }
  96. //下部不顯示區(qū)域        
  97.         for(j=0;j<vfp;j++)
  98.         {
  99.                 for(i=0;i<hbp;i++)
  100.                 {
  101.                         de=0;
  102.                         rrr=0;
  103.                         ggg=0;
  104.                         bbb=0;
  105.                         dclk=0;
  106.                         dclk=1;
  107.                 }

  108.                 for(i=0;i<wide;i++)
  109.                 {
  110.                         de=0;
  111.                         rrr=0;
  112.                         ggg=0;
  113.                         bbb=0;
  114.                         dclk=0;
  115.                         dclk=1;
  116.                 }
  117.                 for(i=0;i<hfp;i++)
  118.                 {
  119.                         de=0;
  120.                         rrr=0;
  121.                         ggg=0;
  122.                         bbb=0;
  123.                         dclk=0;
  124.                         dclk=1;
  125.                 }
  126.         }               
  127.                
  128.     }
  129. }

復(fù)制代碼

還是我壓根就沒有看懂這個時序圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:73992 發(fā)表于 2024-4-5 00:12 | 只看該作者
我看你沒有程序控制時間,
        for(i=0;i<hbp;i++)
                {
                        de=0;
                        rrr=0;
                        ggg=0;
                        bbb=0;
                        dclk=0;
                        dclk=1;
                }
我復(fù)制的這部分,一個循環(huán)時間應(yīng)該等于一個dclk高低電平寬度。程序中dclk剛等于0 就等于1; 導(dǎo)致程序高電平時間 與低電平不一致。調(diào)整這個時序,用示波器 或者邏輯分析儀可以增加調(diào)試效率。
回復(fù)

使用道具 舉報

板凳
ID:1101997 發(fā)表于 2024-4-5 14:26 | 只看該作者
51干這活有些困難,需要專門的驅(qū)動來做這是,畢竟引腳時間還是緩存都是嚴重不足的。
回復(fù)

使用道具 舉報

地板
ID:1101997 發(fā)表于 2024-4-5 14:28 | 只看該作者
一頁緩存需要480*272=130.560K (word),8H8K也就是8K字節(jié),差距甚遠,換片子吧
回復(fù)

使用道具 舉報

5#
ID:517951 發(fā)表于 2024-4-5 15:28 | 只看該作者
51單片機驅(qū)動RGB接口的4.3寸TFT, r,g,b就需要3x8=24個IO口, pclk引腳需要9Mhz的信號,不適合.
可以用SSD1963來轉(zhuǎn)換MCU16bit到RGB接口, 不僅可以驅(qū)動4.3寸480x272,也可以驅(qū)動800x480的RGB接口.
也可以用STM32H743來驅(qū)動, 此芯片自帶RGB接口, 不用轉(zhuǎn)換IC了.
回復(fù)

使用道具 舉報

6#
ID:1010435 發(fā)表于 2024-4-5 16:23 | 只看該作者
nearsea 發(fā)表于 2024-4-5 14:26
51干這活有些困難,需要專門的驅(qū)動來做這是,畢竟引腳時間還是緩存都是嚴重不足的。

我就是不太清楚引腳時間是怎么算的,看手冊,io的反轉(zhuǎn)最慢也12m,最快25m,而屏看手冊需要9m就夠了啊
回復(fù)

使用道具 舉報

7#
ID:1010435 發(fā)表于 2024-4-5 16:26 | 只看該作者
lyonkon 發(fā)表于 2024-4-5 00:12
我看你沒有程序控制時間,
        for(i=0;i

你的意思是dclk 0和dclk=1的時間必須一致嗎?能不能給個簡單的時間控制函數(shù)
回復(fù)

使用道具 舉報

8#
ID:1010435 發(fā)表于 2024-4-5 16:29 | 只看該作者
rayin 發(fā)表于 2024-4-5 15:28
51單片機驅(qū)動RGB接口的4.3寸TFT, r,g,b就需要3x8=24個IO口, pclk引腳需要9Mhz的信號,不適合.
可以用SSD19 ...

你好 我就是這個9m信號和mcu頻率算不來,是不是說,不管cpu在干嘛,pclk的高低反轉(zhuǎn)必須在5~12m之間才行?
回復(fù)

使用道具 舉報

9#
ID:73992 發(fā)表于 2024-4-5 23:16 | 只看該作者
mtt661 發(fā)表于 2024-4-5 16:26
你的意思是dclk 0和dclk=1的時間必須一致嗎?能不能給個簡單的時間控制函數(shù)

如果你有設(shè)備可以測量上述時鐘輸出,如果頻率夠就可以使用。如果頻率不夠試試嵌入?yún)R編。看看你的方案是否可行。
     不然    dclk可以用pwm輸出;如果頻率夠
  while(1)
   {
      DE電平拉低    時間=tvbp — H BACK PORECH ,
     for   (下面循環(huán)270次)
           {
                    nop  ;=H BACK PORECH     ;相當(dāng)于延時
                    DE=1
                    rgb     引腳抖動 / 取值480次;  可增減
                    DE=0
                    nop   ; =H FRONT PORECH        ;相當(dāng)于延時
             }
            DE電平拉低    時間=tvfp — H FRONT PORECH,
        }
這是我的大概思路,
回復(fù)

使用道具 舉報

10#
ID:883242 發(fā)表于 2024-4-6 14:10 | 只看該作者
DCLK周期最多只能有200ns,用51單片機根本做不到,就別癡心妄想了。
回復(fù)

使用道具 舉報

11#
ID:1010435 發(fā)表于 2024-4-7 11:19 | 只看該作者
Hephaestus 發(fā)表于 2024-4-6 14:10
DCLK周期最多只能有200ns,用51單片機根本做不到,就別癡心妄想了。

你好 ,按照手冊的說法 這個IO的翻轉(zhuǎn)速度可以達到12MHz,也就是83.3333ns,速度是可以達到的啊,不知道我這個算法對不對
回復(fù)

使用道具 舉報

12#
ID:1010435 發(fā)表于 2024-4-7 11:22 | 只看該作者
nearsea 發(fā)表于 2024-4-5 14:28
一頁緩存需要480*272=130.560K (word),8H8K也就是8K字節(jié),差距甚遠,換片子吧

這個我也知道 所以我就想只顯示一個顏色,主要是學(xué)習(xí)下這個時序。
回復(fù)

使用道具 舉報

13#
ID:517951 發(fā)表于 2024-4-7 11:53 | 只看該作者
mtt661 發(fā)表于 2024-4-7 11:22
這個我也知道 所以我就想只顯示一個顏色,主要是學(xué)習(xí)下這個時序。

如果只是顯示紅色, 可以吧顯示屏的R0-7全部接高, B0-7,G0-7接GND. 就關(guān)注V,Hsync, Den, CLK的時序就行. 這個需要有示波器.  最好還是用SSD1963來直接驅(qū)動,不要用單片機直接點, 沒有意義. 如果是想搞清楚時序, 建議用FPGA來做, 這個真不是單片機干的活.
回復(fù)

使用道具 舉報

14#
ID:883242 發(fā)表于 2024-4-7 13:48 | 只看該作者
mtt661 發(fā)表于 2024-4-7 11:19
你好 ,按照手冊的說法 這個IO的翻轉(zhuǎn)速度可以達到12MHz,也就是83.3333ns,速度是可以達到的啊,不知道我 ...

如果只是DCLK翻轉(zhuǎn)當(dāng)然夠用,但是你看時序圖,DCLK翻轉(zhuǎn)前你要把RGB都設(shè)置成正常值,這是51單片機無論如何都做不到的。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人自拍 | 国产成人精品免费视频大全最热 | 国产成人精品免费视频 | 成人区一区二区三区 | 精品乱码一区二区 | 久久久久久久久久久一区二区 | 欧美日韩精品一区二区三区视频 | 国产黄色在线观看 | 日韩另类视频 | 在线免费观看视频黄 | 国产精品久久久久久久久 | 中文字幕亚洲视频 | 亚洲精品成人av久久 | 久久国产成人午夜av影院武则天 | 欧美成人a| 国产一区二区在线免费视频 | 国产精品久久久久久久久久免费看 | 9999在线视频 | 国产精品视频在线观看 | 亚洲系列第一页 | 成人影音| 日韩精品一区二区三区中文在线 | 精品免费在线 | 欧美日一区二区 | 日韩久久在线 | 精品日韩在线 | 国产美女一区二区 | 国产精品99久久久久久久久久久久 | 天天操天天摸天天干 | 日韩a v在线免费观看 | 亚洲精久久久 | 国产日韩精品一区二区三区 | 久久久久网站 | 国产欧美一区二区三区在线看 | 亚洲成人播放器 | 日韩精品一区二区三区第95 | 成人天堂 | 日韩视频在线免费观看 | 国产成人精品久久二区二区91 | 综合一区 | 日韩不卡在线 |