找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2454|回复: 1
打印 上一主题 下一主题
收起左侧

2.8英寸65K全彩色LCD测试程序_bascom avr单片机版 Proteus仿真

[复制链接]
跳转到指定楼层
楼主
本帖最后由 taotie 于 2021-1-27 17:28 编辑

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


注意:这个屏是2.5——3.3v的单片机与彩屏均使用3.3v电源.仿真仅玩玩而已不能据此造实物


单片机源程序如下:

  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                                             '设置框架区域的容量。

  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                          '显示区域边框。
  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                        '显示区域边框。
  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                      '显示区域边框。
  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                          '显示区域边框。
  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                          '显示区域边框。
  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.    '  * 字体数据 *
  181.    '
  182. $include "color8x8.font"
  183.    '
  184.    '  * BGC图像数据 *
  185.    '
  186. '5011_255_240:
  187. '$bgf "5011_255_240.BGC"
复制代码

全部资料51hei下载地址:
2.8英寸65K全彩色LCD.zip (1.25 MB, 下载次数: 28)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:342822 发表于 2021-1-29 08:49 | 只看该作者
呵呵~~~手机版用了自动翻译吗?颜色指令都变成中文了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表