找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3204|回復: 1
收起左側

2.8英寸65K全彩色LCD測試程序_bascom avr單片機版 Proteus仿真

[復制鏈接]
ID:342822 發(fā)表于 2021-1-27 14:05 | 顯示全部樓層 |閱讀模式
本帖最后由 taotie 于 2021-1-27 17:28 編輯

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

注意:這個屏是2.5——3.3v的單片機與彩屏均使用3.3v電源.仿真僅玩玩而已不能據(jù)此造實物
3699ph.gif

單片機源程序如下:

  1.    '
  2.    '  *************************************************
  3.    '  *  2.8英寸65K全彩色LCD測試程序*

  4. '橫向320x縱向240點[ILI 9341]SPI*

  5. ' * O-Family 2019. 5.23       *
  6.    '  *************************************************
  7.    '

  8. '$regfile = "m88pdef.dat"                                    '設定使用的AVR。(ATmega88P)
  9. $regfile = "m328pdef.dat"                                   '設定使用的AVR。(ATmega328P)
  10. $crystal = 8000000                                          '設定AVR時鐘。

  11. $hwstack = 64                                               '設置硬件堆棧的容量。
  12. $swstack = 10                                               '設置軟件堆棧的容量。
  13. $framesize = 24                                             '設置框架區(qū)域的容量。

  14.    '
  15.    '  * G-LCD初期設定 *
  16.    '
  17.    Const Portrait = 1                                       'LCD的畫面設置方向(旋轉90度)。(0:橫向放置[X=320,Y=240],1:縱向放置[X=240,Y=320])
  18.    Const Rotate_180 = 0                                     'LCD的畫面設置方向(180度旋轉)。(0:連接器為上側,1:連接器為下側)
  19.    Dim Offset256 As Byte                                    'LCD地址的偏移標志。(0:0-255 , 1:256-319)
  20. $lib "glcd-ILI9341_2R8_240x320.lib"                         '嵌入ILI 9341的2.8英寸240x320版本的庫。
  21.    '指定LCD的連接端口。 Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK]
  22.    Config Graphlcd = Color , Cs1 = Portd.3 , Rst = Portd.4 , A0 = Portd.5 , Si = Portd.6 , Sclk = Portd.7       '選擇[Cs1]和[Rst]。
  23.    Initlcd                                                  'ILI9341初期化。
  24.    Cls                                                      'G-LCD全畫面清屏。

  25.    '
  26.    '  * 定義顏色名稱 *  [RRRG_GGBB] = [R2,R1,R0,G2_G1,G0,B1,B0]
  27.    '
  28.    Const Black = &B0000_0000
  29.    Const Red = &B1110_0000
  30.    Const Green = &B0001_1100
  31.    Const Blue = &B0000_0011
  32.    Const Magenta = &B1110_0011
  33.    Const Yellow = &B1111_1100
  34.    Const Cyan = &B0001_1111
  35.    Const White = &B1111_1111
  36.    '
  37.    Const Orange = &B1111_0100
  38.    Const Brightgreen = &B0011_1110
  39.    Const Brightblue = &B0001_1111
  40.    Const Darkred = &B1100_0000
  41.    Const Darkgreen = &B0001_0100
  42.    Const Darkblue = &B0000_0010

  43.    '
  44.    '  ****************
  45.    '  * 繪圖測試 *
  46.    '  ****************
  47.    '
  48.    Dim Temp1 As Byte
  49.    Setfont Color8x8

  50. #if Portrait = 0                                            '橫放[X=320,Y=240]
  51.    '
  52.    Offset256 = 0                                            'LCD地址的偏移值。(0: 0-255)
  53.    Box(0 , 0) -(255 , 239) , White                          '顯示區(qū)域邊框。
  54.    Lcdat 12 , 90 , "Offset256 = 0" , Cyan , Black
  55.    For Temp1 = 0 To 232 Step 8                              '顯示地址值。
  56.       Lcdat Temp1 , 5 , "(" ; Temp1 ; ",5)" , Green , Black
  57.    Next Temp1
  58.    '
  59.    Offset256 = 1                                            'LCD地址的偏移值。(1: 256-319)
  60.    Box(256 , 0 ) -(319 , 239 ) , Red                        '顯示區(qū)域邊框。
  61.    Lcdat 48 , 260 , "Offset" , Cyan , Black
  62.    Lcdat 56 , 260 , "256 = 1" , Cyan , Black
  63.    Lcdat 0 , 260 , "(0,260)" , Green , Black                '顯示地址值。
  64.    Lcdat 8 , 260 , "(8,260)" , Green , Black
  65.    Lcdat 16 , 256 , "(16,256)" , Green , Black
  66.    Lcdat 24 , 256 , "(24,256)" , Green , Black

  67.    '
  68.    Offset256 = 0                                            'LCD地址的偏移值。(0: 0-255)
  69.    Lcdat 41 , 90 , "Red" , Red , Black                      '測試文字顏色。
  70.    Lcdat 49 , 90 , "Green" , Green , Black
  71.    Lcdat 57 , 90 , "Blue" , Blue , Black
  72.    Lcdat 65 , 90 , "Magenta" , Magenta , Black
  73.    Lcdat 73 , 90 , "Yellow" , Yellow , Black
  74.    Lcdat 81 , 90 , "Cyan" , Cyan , Black
  75.    Lcdat 89 , 90 , "Orange" , Orange , Black
  76.    Lcdat 97 , 90 , "White" , White , Black
  77.    Lcdat 107 , 90 , "Black" , Black , White
  78.    '
  79.    Lcdat 117 , 90 , "Darkred" , Darkred , Black
  80.    Lcdat 125 , 90 , "Darkgreen" , Darkgreen , Black
  81.    Lcdat 133 , 90 , "Darkblue" , Darkblue , Black
  82.    Lcdat 141 , 90 , "Brightgreen" , Brightgreen , Black
  83.    '
  84.    Boxfill(200 , 190) -(240 , 230) , Red                    'BOX命令測試。
  85.    Boxfill(215 , 205) -(225 , 215) , Green
  86.    Box(206 , 196) -(234 , 224) , Cyan
  87.    '
  88.    Circle(220 , 152) , 18 , Magenta                         'CIRCLE命令測試。
  89.    Circle(220 , 152) , 10 , Yellow
  90.    Line(194 , 152) -(246 , 152) , White
  91.    Pset 220 , 152 , Black
  92.    '
  93.    For Temp1 = 1 To 91 Step 5                               'LINE命令測試。
  94.       Line(176 , 91) -(255 , Temp1) , Blue
  95.    Next Temp1
  96.    '
  97.    Offset256 = 1                                            'LCD地址的偏移值。(1: 256-319)
  98.    Boxfill(266 , 190) -(306 , 230) , Red                    'BOX命令測試。
  99.    Boxfill(281 , 205) -(291 , 215) , Green
  100.    Box(272 , 196) -(300 , 224) , Cyan
  101.    '
  102.    Circle(286 , 152) , 18 , Magenta                         'CIRCLE命令測試。
  103.    Circle(286 , 152) , 10 , Yellow
  104.    Line(260 , 152) -(312 , 152) , White
  105.    Pset 286 , 152 , Black
  106.    '
  107. '   Wait 3
  108. '   Cls                                                      '[Showpic]命令測試。
  109. '   Offset256 = 1                                            'LCD地址的偏移值。(1: 256-319)
  110. '   Box(256 , 0 ) -(319 , 239 ) , Green                      '顯示區(qū)域邊框。
  111. '   Offset256 = 0                                            'LCD地址的偏移值。(0: 0-255)
  112. '   Showpic 0 , 0 , 5011_255_240
  113.    '
  114.    '
  115. #else                                                       '縱向放置[X=240,Y=320]
  116.    '
  117.    Offset256 = 0                                            'LCD地址的偏移值。(0: 0-255)
  118.    Box(0 , 0) -(239 , 255) , White                          '顯示區(qū)域邊框。
  119.    Lcdat 4 , 90 , "Offset256 = 0" , Cyan , Black
  120.    For Temp1 = 0 To 255 Step 8                              '顯示地址值。
  121.       Lcdat Temp1 , 5 , "(" ; Temp1 ; ",5)" , Green , Black
  122.    Next Temp1
  123.    '
  124.    Offset256 = 1                                            'LCD地址的偏移值。(1: 256-319)
  125.    Box(0 , 256) -(239 , 319) , Red                          '顯示區(qū)域邊框。
  126.    Lcdat 4 , 90 , "Offset256 = 1" , Cyan , Black
  127.    Lcdat 256 , 13 , "(256,13)" , Green , Black              '顯示地址值。
  128.    Lcdat 264 , 13 , "(264,13)" , Green , Black
  129.    Lcdat 272 , 13 , "(272,13)" , Green , Black
  130.    Lcdat 280 , 13 , "(280,13)" , Green , Black
  131.    Lcdat 288 , 13 , "(288,13)" , Green , Black
  132.    Lcdat 296 , 13 , "(296,13)" , Green , Black
  133.    Lcdat 304 , 13 , "(304,13)" , Green , Black
  134.    Lcdat 312 , 13 , "(312,13)" , Green , Black
  135.    '
  136.    Offset256 = 0                                            'LCD地址的偏移值。(0: 0-255)
  137.    Lcdat 25 , 90 , "Red" , Red , Black                      '測試文字顏色。
  138.    Lcdat 33 , 90 , "Green" , Green , Black
  139.    Lcdat 41 , 90 , "Blue" , Blue , Black
  140.    Lcdat 49 , 90 , "Magenta" , Magenta , Black
  141.    Lcdat 57 , 90 , "Yellow" , Yellow , Black
  142.    Lcdat 65 , 90 , "Cyan" , Cyan , Black
  143.    Lcdat 73 , 90 , "Orange" , Orange , Black
  144.    Lcdat 83 , 90 , "White" , White , Black
  145.    Lcdat 91 , 90 , "Black" , Black , White
  146.    '
  147.    Lcdat 101 , 90 , "Darkred" , Darkred , Black
  148.    Lcdat 109 , 90 , "Darkgreen" , Darkgreen , Black
  149.    Lcdat 117 , 90 , "Darkblue" , Darkblue , Black
  150.    Lcdat 125 , 90 , "Brightgreen" , Brightgreen , Black
  151.    '
  152.    Boxfill(190 , 170) -(230 , 210) , Red                    'BOX命令測試。
  153.    Boxfill(205 , 185) -(215 , 195) , Green
  154.    Box(196 , 176) -(224 , 204) , Cyan
  155.    '
  156.    Circle(138 , 192) , 18 , Magenta                         'CIRCLE命令測試。
  157.    Circle(138 , 192) , 10 , Yellow
  158.    Line(112 , 192) -(164 , 192) , White
  159.    Pset 138 , 192 , Black
  160.    '
  161.    For Temp1 = 1 To 91 Step 5                               'LINE命令測試。
  162.       Line(160 , 91) -(239 , Temp1) , Blue
  163.    Next Temp1
  164.    '
  165.    Offset256 = 1                                            'LCD地址的偏移值。(1: 256-319)
  166.    Boxfill(190 , 270) -(230 , 310) , Red                    'BOX命令測試。
  167.    Boxfill(205 , 285) -(215 , 295) , Green
  168.    Box(196 , 276) -(224 , 304) , Cyan
  169.    '
  170.    Circle(138 , 292) , 18 , Magenta                         'CIRCLE命令測試。
  171.    Circle(138 , 292) , 10 , Yellow
  172.    Line(112 , 292) -(164 , 292) , White
  173.    Pset 138 , 292 , Black
  174.    '
  175. #endif
  176.    '
  177.    End

  178. '--------------------------------------------------------------------------------------------------

  179.    '
  180.    '  * 字體數(shù)據(jù) *
  181.    '
  182. $include "color8x8.font"
  183.    '
  184.    '  * BGC圖像數(shù)據(jù) *
  185.    '
  186. '5011_255_240:
  187. '$bgf "5011_255_240.BGC"
復制代碼

全部資料51hei下載地址:
2.8英寸65K全彩色LCD.zip (1.25 MB, 下載次數(shù): 29)

評分

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

查看全部評分

回復

使用道具 舉報

ID:342822 發(fā)表于 2021-1-29 08:49 | 顯示全部樓層
呵呵~~~手機版用了自動翻譯嗎?顏色指令都變成中文了。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表