本帖最后由 taotie 于 2021-1-27 17:28 編輯
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
注意:這個屏是2.5——3.3v的單片機與彩屏均使用3.3v電源.仿真僅玩玩而已不能據(jù)此造實物 
單片機源程序如下:
- '
- ' *************************************************
- ' * 2.8英寸65K全彩色LCD測試程序*
- '橫向320x縱向240點[ILI 9341]SPI*
- ' * O-Family 2019. 5.23 *
- ' *************************************************
- '
- '$regfile = "m88pdef.dat" '設定使用的AVR。(ATmega88P)
- $regfile = "m328pdef.dat" '設定使用的AVR。(ATmega328P)
- $crystal = 8000000 '設定AVR時鐘。
- $hwstack = 64 '設置硬件堆棧的容量。
- $swstack = 10 '設置軟件堆棧的容量。
- $framesize = 24 '設置框架區(qū)域的容量。
- '
- ' * G-LCD初期設定 *
- '
- Const Portrait = 1 'LCD的畫面設置方向(旋轉90度)。(0:橫向放置[X=320,Y=240],1:縱向放置[X=240,Y=320])
- Const Rotate_180 = 0 'LCD的畫面設置方向(180度旋轉)。(0:連接器為上側,1:連接器為下側)
- Dim Offset256 As Byte 'LCD地址的偏移標志。(0:0-255 , 1:256-319)
- $lib "glcd-ILI9341_2R8_240x320.lib" '嵌入ILI 9341的2.8英寸240x320版本的庫。
- '指定LCD的連接端口。 Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK]
- Config Graphlcd = Color , Cs1 = Portd.3 , Rst = Portd.4 , A0 = Portd.5 , Si = Portd.6 , Sclk = Portd.7 '選擇[Cs1]和[Rst]。
- Initlcd 'ILI9341初期化。
- Cls 'G-LCD全畫面清屏。
- '
- ' * 定義顏色名稱 * [RRRG_GGBB] = [R2,R1,R0,G2_G1,G0,B1,B0]
- '
- Const Black = &B0000_0000
- Const Red = &B1110_0000
- Const Green = &B0001_1100
- Const Blue = &B0000_0011
- Const Magenta = &B1110_0011
- Const Yellow = &B1111_1100
- Const Cyan = &B0001_1111
- Const White = &B1111_1111
- '
- Const Orange = &B1111_0100
- Const Brightgreen = &B0011_1110
- Const Brightblue = &B0001_1111
- Const Darkred = &B1100_0000
- Const Darkgreen = &B0001_0100
- Const Darkblue = &B0000_0010
- '
- ' ****************
- ' * 繪圖測試 *
- ' ****************
- '
- Dim Temp1 As Byte
- Setfont Color8x8
- #if Portrait = 0 '橫放[X=320,Y=240]
- '
- Offset256 = 0 'LCD地址的偏移值。(0: 0-255)
- Box(0 , 0) -(255 , 239) , White '顯示區(qū)域邊框。
- Lcdat 12 , 90 , "Offset256 = 0" , Cyan , Black
- For Temp1 = 0 To 232 Step 8 '顯示地址值。
- Lcdat Temp1 , 5 , "(" ; Temp1 ; ",5)" , Green , Black
- Next Temp1
- '
- Offset256 = 1 'LCD地址的偏移值。(1: 256-319)
- Box(256 , 0 ) -(319 , 239 ) , Red '顯示區(qū)域邊框。
- Lcdat 48 , 260 , "Offset" , Cyan , Black
- Lcdat 56 , 260 , "256 = 1" , Cyan , Black
- Lcdat 0 , 260 , "(0,260)" , Green , Black '顯示地址值。
- Lcdat 8 , 260 , "(8,260)" , Green , Black
- Lcdat 16 , 256 , "(16,256)" , Green , Black
- Lcdat 24 , 256 , "(24,256)" , Green , Black
- '
- Offset256 = 0 'LCD地址的偏移值。(0: 0-255)
- Lcdat 41 , 90 , "Red" , Red , Black '測試文字顏色。
- Lcdat 49 , 90 , "Green" , Green , Black
- Lcdat 57 , 90 , "Blue" , Blue , Black
- Lcdat 65 , 90 , "Magenta" , Magenta , Black
- Lcdat 73 , 90 , "Yellow" , Yellow , Black
- Lcdat 81 , 90 , "Cyan" , Cyan , Black
- Lcdat 89 , 90 , "Orange" , Orange , Black
- Lcdat 97 , 90 , "White" , White , Black
- Lcdat 107 , 90 , "Black" , Black , White
- '
- Lcdat 117 , 90 , "Darkred" , Darkred , Black
- Lcdat 125 , 90 , "Darkgreen" , Darkgreen , Black
- Lcdat 133 , 90 , "Darkblue" , Darkblue , Black
- Lcdat 141 , 90 , "Brightgreen" , Brightgreen , Black
- '
- Boxfill(200 , 190) -(240 , 230) , Red 'BOX命令測試。
- Boxfill(215 , 205) -(225 , 215) , Green
- Box(206 , 196) -(234 , 224) , Cyan
- '
- Circle(220 , 152) , 18 , Magenta 'CIRCLE命令測試。
- Circle(220 , 152) , 10 , Yellow
- Line(194 , 152) -(246 , 152) , White
- Pset 220 , 152 , Black
- '
- For Temp1 = 1 To 91 Step 5 'LINE命令測試。
- Line(176 , 91) -(255 , Temp1) , Blue
- Next Temp1
- '
- Offset256 = 1 'LCD地址的偏移值。(1: 256-319)
- Boxfill(266 , 190) -(306 , 230) , Red 'BOX命令測試。
- Boxfill(281 , 205) -(291 , 215) , Green
- Box(272 , 196) -(300 , 224) , Cyan
- '
- Circle(286 , 152) , 18 , Magenta 'CIRCLE命令測試。
- Circle(286 , 152) , 10 , Yellow
- Line(260 , 152) -(312 , 152) , White
- Pset 286 , 152 , Black
- '
- ' Wait 3
- ' Cls '[Showpic]命令測試。
- ' Offset256 = 1 'LCD地址的偏移值。(1: 256-319)
- ' Box(256 , 0 ) -(319 , 239 ) , Green '顯示區(qū)域邊框。
- ' Offset256 = 0 'LCD地址的偏移值。(0: 0-255)
- ' Showpic 0 , 0 , 5011_255_240
- '
- '
- #else '縱向放置[X=240,Y=320]
- '
- Offset256 = 0 'LCD地址的偏移值。(0: 0-255)
- Box(0 , 0) -(239 , 255) , White '顯示區(qū)域邊框。
- Lcdat 4 , 90 , "Offset256 = 0" , Cyan , Black
- For Temp1 = 0 To 255 Step 8 '顯示地址值。
- Lcdat Temp1 , 5 , "(" ; Temp1 ; ",5)" , Green , Black
- Next Temp1
- '
- Offset256 = 1 'LCD地址的偏移值。(1: 256-319)
- Box(0 , 256) -(239 , 319) , Red '顯示區(qū)域邊框。
- Lcdat 4 , 90 , "Offset256 = 1" , Cyan , Black
- Lcdat 256 , 13 , "(256,13)" , Green , Black '顯示地址值。
- Lcdat 264 , 13 , "(264,13)" , Green , Black
- Lcdat 272 , 13 , "(272,13)" , Green , Black
- Lcdat 280 , 13 , "(280,13)" , Green , Black
- Lcdat 288 , 13 , "(288,13)" , Green , Black
- Lcdat 296 , 13 , "(296,13)" , Green , Black
- Lcdat 304 , 13 , "(304,13)" , Green , Black
- Lcdat 312 , 13 , "(312,13)" , Green , Black
- '
- Offset256 = 0 'LCD地址的偏移值。(0: 0-255)
- Lcdat 25 , 90 , "Red" , Red , Black '測試文字顏色。
- Lcdat 33 , 90 , "Green" , Green , Black
- Lcdat 41 , 90 , "Blue" , Blue , Black
- Lcdat 49 , 90 , "Magenta" , Magenta , Black
- Lcdat 57 , 90 , "Yellow" , Yellow , Black
- Lcdat 65 , 90 , "Cyan" , Cyan , Black
- Lcdat 73 , 90 , "Orange" , Orange , Black
- Lcdat 83 , 90 , "White" , White , Black
- Lcdat 91 , 90 , "Black" , Black , White
- '
- Lcdat 101 , 90 , "Darkred" , Darkred , Black
- Lcdat 109 , 90 , "Darkgreen" , Darkgreen , Black
- Lcdat 117 , 90 , "Darkblue" , Darkblue , Black
- Lcdat 125 , 90 , "Brightgreen" , Brightgreen , Black
- '
- Boxfill(190 , 170) -(230 , 210) , Red 'BOX命令測試。
- Boxfill(205 , 185) -(215 , 195) , Green
- Box(196 , 176) -(224 , 204) , Cyan
- '
- Circle(138 , 192) , 18 , Magenta 'CIRCLE命令測試。
- Circle(138 , 192) , 10 , Yellow
- Line(112 , 192) -(164 , 192) , White
- Pset 138 , 192 , Black
- '
- For Temp1 = 1 To 91 Step 5 'LINE命令測試。
- Line(160 , 91) -(239 , Temp1) , Blue
- Next Temp1
- '
- Offset256 = 1 'LCD地址的偏移值。(1: 256-319)
- Boxfill(190 , 270) -(230 , 310) , Red 'BOX命令測試。
- Boxfill(205 , 285) -(215 , 295) , Green
- Box(196 , 276) -(224 , 304) , Cyan
- '
- Circle(138 , 292) , 18 , Magenta 'CIRCLE命令測試。
- Circle(138 , 292) , 10 , Yellow
- Line(112 , 292) -(164 , 292) , White
- Pset 138 , 292 , Black
- '
- #endif
- '
- End
- '--------------------------------------------------------------------------------------------------
- '
- ' * 字體數(shù)據(jù) *
- '
- $include "color8x8.font"
- '
- ' * BGC圖像數(shù)據(jù) *
- '
- '5011_255_240:
- '$bgf "5011_255_240.BGC"
復制代碼
全部資料51hei下載地址:
2.8英寸65K全彩色LCD.zip
(1.25 MB, 下載次數(shù): 29)
2021-1-27 14:05 上傳
點擊文件名下載附件
|