找回密码
 立即注册
查看: 1126|回复: 10

AI8051U最简最小系统,实验彩色触摸屏;ILI9341,SPI

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

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-11-25 18:07:44 | 显示全部楼层 |阅读模式
Ai8051U最简最小系统实验板,实验触摸屏; ILI9341, SPI

一块洞洞板,一片AI8051U芯片,一只按钮(P32),一只电源开关(On/Off), 一根USB通讯线。
一块2.4寸ILI9341(320*240)SPI接口彩色触摸屏,一字排列14针接口。(RMB 20)
微信图片_20241125172244.jpg    

微信图片_20241125172316.jpg

实验初成,随手试画了一下,若做触摸菜单,基本没有问题, 还有待打磨优化提高。

望爱好AI8051U单片机同学、尚未得到实验箱的新手坛友,莫等闲,动动手,一定会做得更好。

主程序:(供参考)

/*-------------------------------------------------------------------------*/
/* 基于: AI8051U_自制最小系统实验板 ---------------------------*/
/* 实验: 2.4寸(320*240)触摸屏(14针一字排列接口)LCD9431_SPI_Touxh.C 显示屏   */
/* 实现: 触摸屏+实验画图板                                                */
/* 编程: 浦晓明(浦江一水) 2024.11.25                                  */                                   
//==液晶屏数据/控制线接线====================//
//本模块为SPI接口类型 (+5V供电)
//液晶屏模块        AI8051U   说明
//1. VCC             VCC     电源
//2. GND             GND     接地
//3. CS               P26     屏片选      0:选中 1:未选
//4. RST             P27     屏复位      0:运行 1:复位
//5. DC              P45     屏数据指令切换0:数据 1:指令
//6. SDI             P46     屏数据输入  MCU发送
//7. SCK             P07     屏时钟      MCU上升沿写入/下降沿读取  
//8. LED             P06     屏背光控制  0:灭 1:亮
//9. SDO            P05     屏数据输出  MCU接收
//10.T_CLK        P04     触摸板时钟  
//11.T_CS          P03     触摸板片选
//12.T_DI          P02     触摸板数据输入  MCU发送
//13.T_DO         P01     触摸板数据输出  MCU接收
//14.T_IRQ        P00     触摸板状态/请求 MCU接收/查询 0:无触摸 1:有触摸(点压下)
//==================================================//

#include "AI8051U_SYS.H"
#include "LCD9341_SPI.h"  //2.4彩屏ILI9431(320*240)驱动
#include "PTouch.H"          //2.4彩屏四线电阻触摸屏驱动

//全局变量说明
unsigned int  X,Y;    //触摸点坐标
unsigned char k;     //返回键值
unsigned char disp; //显示标志
unsigned char PenC; //笔色
char S[80];           //字符串显示缓存

//函数说明
unsigned char RDKEY(void);//读取触摸屏键值
void BigPoint(u16 X,u16 Y,u8 Color);

//主函数入口
void main()
{ u8 i;
  P_SW2 = 0x80;         //使能访问XFR,没有冲突不用关闭
  CKCON = 0x00;         //外部数据总线速度最快
  WTST  = 0x00;         //程序等待参数,0最快

  P0M0 = 0x00; P0M1 = 0x00;     //初始化端口:全准双向
  P1M0 = 0x00; P1M1 = 0x00;
  P2M0 = 0x00; P2M1 = 0x00;
  P3M0 = 0x00; P3M1 = 0x00;
  P4M0 = 0x00; P4M1 = 0x00;
  P5M0 = 0x00; P5M1 = 0x00;
   
  P3M0 &= ~0x03; P3M1 |= 0x03;  //确保P30/P31准确设置
  
  LCD_Init();
  disp=1;
  while (1)
  { if(disp)
    { disp=0;
      LCD_CLS(15);
      LCD_Box(0, 0,239,20,0,0,0);
      LCD_Str16(8,2,"X=--- Y=---",10,0); //显示字符串
      LCD_Str16(180,2,"AI8051U",12,0);   //显示字符串
      for(i=0;i<8;i++)LCD_Box(30*i,280,30,20,15,15,i);
      for(i=0;i<8;i++)LCD_Box(30*i,300,30,20,15,15,(u8)(i+8));
      LCD_Str16(213,302,"CLS",0,15);      
    }
    k=0; k=RDKEY(); //读取按键或触摸点键值...
    if(k!=0)
    { if(k>15)
      { sprintf(S,"X=%03d",X); LCD_Str16( 8,2,S,10,0);  //显示触摸点坐标X
        sprintf(S,"Y=%03d",Y); LCD_Str16(56,2,S,10,0);  //显示触摸点坐标Y
        BigPoint(X,Y,PenC);
      }
    }
    //delay_ms(10);  //延时50ms
  }               //无限循环         
} //主函数main()结束


//扫描触摸屏返回键值
unsigned char RDKEY(void)
{ k=0;   //当前页面按键和触摸点返回值(因页面不同而不同)
  if(PTouchOK()){ X=240-TP.x; Y=TP.y; }   //坐标转换(由屏方向不同而不同)
  else          { X=0;        Y=0;    }
  if((Y>20)&&(Y<280)){ k=18; return k;}   //画笔有效区域
  if((X>  0)&&(X< 30)&&(Y>280)&&(Y<300)){ k=16; PenC=0; return k;}
  if((X> 30)&&(X< 60)&&(Y>280)&&(Y<300)){ k=1;  PenC=1; return k;}
  if((X> 60)&&(X< 90)&&(Y>280)&&(Y<300)){ k=2;  PenC=2; return k;}
  if((X> 90)&&(X<120)&&(Y>280)&&(Y<300)){ k=3;  PenC=3; return k;}   
  if((X>120)&&(X<150)&&(Y>280)&&(Y<300)){ k=4;  PenC=4; return k;}   
  if((X>150)&&(X<180)&&(Y>280)&&(Y<300)){ k=5;  PenC=5; return k;}
  if((X>180)&&(X<210)&&(Y>280)&&(Y<300)){ k=6;  PenC=6; return k;}
  if((X>210)&&(X<240)&&(Y>280)&&(Y<300)){ k=7;  PenC=7; return k;}
  if((X>  0)&&(X< 30)&&(Y>300)&&(Y<320)){ k=8;  PenC=8; return k;}
  if((X> 30)&&(X< 60)&&(Y>300)&&(Y<320)){ k=9;  PenC=9; return k;}
  if((X> 60)&&(X< 90)&&(Y>300)&&(Y<320)){ k=10; PenC=10;return k;}
  if((X> 90)&&(X<120)&&(Y>300)&&(Y<320)){ k=11; PenC=11;return k;}
  if((X>120)&&(X<150)&&(Y>300)&&(Y<320)){ k=12; PenC=12;return k;}
  if((X>150)&&(X<180)&&(Y>300)&&(Y<320)){ k=13; PenC=13;return k;}
  if((X>180)&&(X<210)&&(Y>300)&&(Y<320)){ k=14; PenC=14;return k;}
  if((X>210)&&(X<240)&&(Y>300)&&(Y<320)){ k=15; PenC=0; disp=1; return k;}
  return k;
}  
//画一大点
void BigPoint(u16 X,u16 Y,u8 Color)
{
  LCD_Point(X,  Y,Color);
  LCD_Point(X-1,Y,Color);
  LCD_Point(X+1,Y,Color);
  LCD_Point(X-1,Y-1,Color);
  LCD_Point(X,  Y-1,Color);
  LCD_Point(X+1,Y-1,Color);
  LCD_Point(X-1,Y+1,Color);
  LCD_Point(X,  Y+1,Color);
  LCD_Point(X+1,Y+1,Color);
}
//===== END ================




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

使用道具 举报 送花

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

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-11-26 07:28:22 | 显示全部楼层
感谢 autopccopy 版主的鲜花鼓励。
感谢 神农鼎 管理员的鲜花鼓励。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-28 13:52:24
已绑定手机

0

主题

1

回帖

8

积分

新手上路

积分
8
发表于 2024-11-28 13:55:39 | 显示全部楼层
一块2.4寸ILI9341(320*240)SPI接口彩色触摸屏,一字排列14针接口。(RMB 20)
老师,来个链接,我也练练手

点评

山岩数码之家电子DIY (复制链接文字有点长,试试看 。) https://item.taobao.com/item.htm?_u=s29q9rf0b22&id=848549942481&pisk=f_G-yXbZTnxknK7AH990xWT7c7LDnX3ru0u1tkqldmnxvVQoEJq3dWnZXJ1HU72L9mZmZu0uNywIx  详情 回复 发表于 2024-11-28 16:01
回复 支持 反对

使用道具 举报 送花

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

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-11-28 16:01:45 | 显示全部楼层
rvox*** 发表于 2024-11-28 13:55
一块2.4寸ILI9341(320*240)SPI接口彩色触摸屏,一字排列14针接口。(RMB 20)
老师,来个链接,我也练练手 ...

山岩数码之家电子DIY
(复制链接文字有点长,试试看 。)
https://item.taobao.com/item.htm ... .0.0.16412e8duN2YZR
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-04-24 09:38:49

0

主题

7

回帖

62

积分

注册会员

积分
62
发表于 2024-11-29 11:36:21 | 显示全部楼层
厉害哟
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:165
  • 最近打卡:2025-04-30 08:22:37

14

主题

87

回帖

732

积分

高级会员

积分
732
发表于 2024-12-3 15:50:23 | 显示全部楼层
回复

使用道具 举报 送花

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

7

主题

281

回帖

1051

积分

金牌会员

积分
1051
发表于 2024-12-12 09:23:00 | 显示全部楼层
厉害学习了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:122
  • 最近打卡:2025-05-01 08:43:07
已绑定手机

2

主题

106

回帖

262

积分

中级会员

积分
262
发表于 2024-12-14 20:02:36 | 显示全部楼层

stc 太强大了

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:220
  • 最近打卡:2025-05-01 18:20:12

79

主题

631

回帖

1132

积分

金牌会员

积分
1132
发表于 2025-1-11 13:43:36 | 显示全部楼层
我在你的洞洞板上看到了铁丝。这和我之前的操作有点像,我密密麻麻搞了一堆铁丝。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:97
  • 最近打卡:2025-04-30 11:27:44
已绑定手机

2

主题

7

回帖

364

积分

中级会员

积分
364
发表于 2025-1-21 20:48:39 | 显示全部楼层
厉害
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 21:59 , Processed in 0.131521 second(s), 126 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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