找回密码
 立即注册
查看: 2807|回复: 25

SPI-TFT(240x240)彩屏@屠龙刀-32G12K128 驱动 | TFT取代OLED12864

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-6-29 21:04:29 | 显示全部楼层 |阅读模式
屠龙刀-32G12K128 驱动 SPI-TFT彩屏/240x240
此前用屠龙刀-32G12K128实验板过驱动1.8寸128x160彩屏,
而今实验驱动 TFT(240x240) 1.3寸 彩屏, 两者有所不同,
前者屏幕尺寸稍大、I/O接口为八针分辨率低,

驱动芯片为ST7735,在屠龙刀三实验板上要外接背光控制线 !
后者屏幕尺寸小,I/O接口为七针,分辨率高, 驱动芯片为ST7789

在屠龙刀三实验板上直接插入,无须另外改接线。
彩屏具有240x240的分辨率,

对于使用STCAI单片机做项目而言,更具有实用意义
若作为屠龙刀三的标配,其显示效果和展示信息量,

应该远胜于使用单色OLED12864显示屏了。
且看实验演示......



主程序如下:
//===========================================================
// OLED 1.3" 彩色显示屏 240*240 实验程序
// 驱动: ST7789
// 基于: 32G12K128芯片实验板编程 屠龙刀三核心实验板
// 整理:编程: 浦晓明(浦江一水) For 国芯论坛 2024-06-28 PXM
//===========================================================
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "STC32G.h"
#include "LCD_7789.H"
#include "PIC.H"


//unsigned char k;
//char S[20];


void Delay1ms(void)        //@22.1184MHz, 还有很强的拓展空间,如 33.1776MHz
{ unsigned char data i, j;
  _nop_();_nop_();
  i = 22;        j = 128;
  do
  { while (--j);
  } while (--i);
}
void Delayms(unsigned int count)
{ unsigned int i;
  for(i=0;i<count;i++)      
  Delay1ms();            
}
//主程序入口
void main(void)
{ unsigned char i;
  unsigned int wait=0;
  //IO端口初始化
  WTST  = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  //EAXFR = 1; //扩展寄存器(XFR)访问使能
  CKCON = 0; //提高访问XRAM速度
  //IO端口初始化//全部为双向口
  P0M1 = 0x00;   P0M0 = 0x04;   //设置为准双向口
  P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
  LCD_Init();
  while(1)
  { //循环演示
    LCD_CLS(1);                        //蓝色清屏
    for(i=0;i<16;i++)LCD_Box(i*15,180,15,50,7,7,i);  //显示彩色条(色号0..15)
    LCD_Point(5,5,15);              //画点测试
    LCD_Line(5,5,175,175,12);   //两点一线
    LCD_Box0(25,25,40,40,15);              //画空心方框
    LCD_Box0(30,30,30,30,15);              //画空心方框
    LCD_Box0(35,35,20,20,15);              //画空心方框
    LCD_Box0(40,40,10,10,15);              //画空心方框
    LCD_Box(20,95,200,28,15,0,4);                 //画矩形方框(可指定边框色和填充色)
    LCD_A08(120,15,"A08_012345",15,1,10);  //显示6*8字符串
    LCD_A12(120,30,"A12_012345",15,1,10);  //显示8*12字符串
    LCD_A16(120,45,"A16_012345",15,1,10);  //显示8*16字符串
    LCD_A24(120,64,"A24_0123",15,1,8);       //显示12*24字符串
    LCD_H16(65,102,"单片机STC32G",14,4);   //16点阵中西文混合显示字符串
    LCD_H24(44,135,"单片机STC32G",11,0);   //24点阵中西文混合显示字符串
    Delayms(2000);   //延时2秒
    LCD_CLS(0);       //黑色清屏
    LCD_Box(0,0,239,24,1,1,1);                //等效于局部清屏
    LCD_A16( 8,3,"LCD_ST7789_240*240_DEMO.",10,1,24);  //显示标题字符串
    for(i=0;i<16;i++)LCD_Box(i*15,219,15,20,7,7,i);            //显示彩色条(色号0..15)
    LCD_BMP( 38, 45,64,64,P_SET);          //彩色图标显示
    LCD_BMP(140, 40,64,64,P_ZER);
    LCD_BMP( 38,135,64,64,P_XSW);
    LCD_BMP(140,135,64,64,P_SYS);
    Delayms(2000);   //延时2秒
    LCD_CLS(0);       //黑色清屏
    for(i=0;i<16;i++)LCD_Line(0,i*15,i*15,239,10);  //画两点一线

    for(i=0;i<16;i++)LCD_Line(i*15,0,239,i*15,10);  //绿色斜线
    LCD_LineH(0,239,239,10);     //画水平线
    LCD_LineV(239,0,239,10);     //画垂直线
    Delayms(2000);   //延时2秒
    for(i=0;i<60;i++)LCD_Box0(120-2*i,120-2*i,4*i,4*i,10);   //绿色方框
    for(i=0;i<60;i++)LCD_Box0(120-2*i,120-2*i,4*i,4*i,9);    //蓝色方框
    for(i=0;i<60;i++)LCD_Box0(120-2*i,120-2*i,4*i,4*i,14);   //黄色方框
    for(i=0;i<60;i++)LCD_Box0(120-2*i,120-2*i,4*i,4*i,12);   //红色方框
    LCD_H24(86,110,"STC32G", 0,80);    //24点阵显示西文字符串(背景透明)黑色阴影。
    LCD_H24(84,108,"STC32G",15,80);   //24点阵显示西文字符串(背景透明)黄色字体。
    Delayms(2000);   //延时2秒
  }
}



相关屏幕驱动 LCD_7789.C/H 文件在工程文件包中,供有兴趣的爱好者参考:
05-TestLCD7789(STC32G屠龙刀三).rar (124.3 KB, 下载次数: 286)





1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:518
  • 最近打卡:2025-05-01 05:52:49
已绑定手机

46

主题

1694

回帖

2540

积分

金牌会员

积分
2540
发表于 2024-6-30 16:09:40 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-6-30 20:54:28 | 显示全部楼层
感谢神农鼎管理员的鲜花鼓励和指导。
昨发新贴今改观了,估计是神管深夜亲自操刀编辑斧正,足见对STC新手爱好者习作的首肯和支持,让人感动,辛苦了。
本实验的编程,是比较粗浅和简单的,意在抛砖引玉。
尚有提升打磨空间:
1,提高主频,效果必然更好些。(本人屠龙刀三实验板,一直处于仿真芯片状态,固定在了22.1184,本实验忽略了调整);
2,本实验是采用模拟IO驱动,意为方便移植,其实可再探索使用硬件SPI方式,以获得更快速度;
3,还可再探索加入DMA方式,因分辨率高,显示缓存变大,更应考虑DMA方式,以提高效率。
总之,还有待努力学习,充分利用和发挥STC单片机的功能特点。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-7-5 20:43:45 | 显示全部楼层

流逝哥 爱上了楼主的程序,放到 STC8051U 上拍了个视频

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-7-5 20:48:43 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:212
  • 最近打卡:2025-05-01 23:05:55

1

主题

35

回帖

951

积分

高级会员

积分
951
发表于 2024-7-9 12:51:27 | 显示全部楼层
记号收藏学习!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-04-29 23:06:32

1

主题

28

回帖

163

积分

注册会员

积分
163
发表于 2024-7-10 09:04:42 | 显示全部楼层
学习了{:5_273:}
99Lightyear
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:321
  • 最近打卡:2025-05-01 21:04:13
已绑定手机

21

主题

487

回帖

1027

积分

金牌会员

积分
1027
发表于 2024-7-11 17:00:35 | 显示全部楼层
点赞学习,感谢分享经验
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:321
  • 最近打卡:2025-05-01 21:04:13
已绑定手机

21

主题

487

回帖

1027

积分

金牌会员

积分
1027
发表于 2024-7-23 10:32:48 | 显示全部楼层
点赞,下载实验,感谢分享
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:210
  • 最近打卡:2025-04-12 18:36:29

1

主题

47

回帖

98

积分

注册会员

积分
98
发表于 2024-8-6 08:31:08 | 显示全部楼层
开始学习
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 01:44 , Processed in 0.317955 second(s), 115 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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