#include "tftlcd.h"
#include "font.h"
#include "uart.h"
#include "stdlib.h"
//LCD的画笔颜色和背景色
u16 FRONT_COLOR=WHITE; //画笔颜色
u16 BACK_COLOR=BLACK; //背景色
_tftlcd_data tftlcd_data;
void Delay(unsigned int dly)
{
unsigned int i,j;
for(i=0;i<dly;i++)
for(j=0;j<255;j++);
}
//写寄存器函数
//cmd:寄存器值
void LCD_WriteCmd(u16 cmd)
{
#ifdef TFT20_HX8309
unsigned char cmdH, cmdL;
cmdH = cmd >> 8;
cmdL = cmd & 0x00FF;
TFT_WR = 1; //初始化WR
TFT_CS = 0; //打开片选
TFT_RD = 1; //选择写
TFT_RS = 0; //选择命令
TFT_DATAPORTH = cmdH; //放置命令数据
TFT_DATAPORTL = cmdL; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_CS = 1; //关闭片选
#endif
#ifdef TFT22_R61503B
unsigned char cmdH, cmdL;
cmdH = cmd >> 8;
cmdL = cmd & 0x00FF;
TFT_WR = 1; //初始化WR
TFT_CS = 0; //打开片选
TFT_RD = 1; //选择写
TFT_RS = 0; //选择命令
TFT_DATAPORTH = cmdH; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_DATAPORTH = cmdL;
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_CS = 1; //关闭片选
#endif
#ifdef TFT22_ILI9225B
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=0;
TFT_DATAPORTH=cmd>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTH=cmd&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT24_ST7781R
TFT_CS=0;
TFT_RS=0;
TFT_DATAPORTH=cmd>>8;
TFT_DATAPORTL=cmd;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT26_R61509V
TFT_CS=0;
TFT_RS=0;
TFT_DATAPORTH=cmd>>8;
TFT_DATAPORTL=cmd;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT26_ILI9325D
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=0;
TFT_DATAPORTL=cmd>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTL=cmd&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT24_ST7789S
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=0;
TFT_DATAPORTH=cmd;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT24_SSD1297
TFT_CS=0;
TFT_RS=0;
TFT_DATAPORTH=cmd>>8;
TFT_DATAPORTL=cmd;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ILI9225
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=0;
TFT_DATAPORTH=cmd>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTH=cmd&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ILI9341
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=0;
TFT_DATAPORTH=cmd;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ST7775R
TFT_CS=0;
TFT_RS=0;
TFT_DATAPORTH=cmd>>8;
TFT_DATAPORTL=cmd;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ST7775RV
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=0;
TFT_DATAPORTL=cmd>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTL=cmd&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ILI9225C
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=0;
TFT_DATAPORTL=cmd>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTL=cmd&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_R61503U
TFT_CS=0;
TFT_RS=0;
TFT_DATAPORTH=cmd>>8;
TFT_DATAPORTL=cmd;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_HX8340B
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=0;
TFT_DATAPORTH=cmd;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT24_HX8357A
TFT_CS=0;
TFT_RS=0;
TFT_DATAPORTH=cmd>>8;
TFT_DATAPORTL=cmd;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
}
//写数据
//dat:要写入的值
void LCD_WriteData(u16 dat)
{
#ifdef TFT20_HX8309
unsigned char datH, datL;
datH = dat >> 8;
datL = dat & 0x00FF;
TFT_WR = 1; //初始化WR
TFT_CS = 0; //打开片选
TFT_RD = 1; //选择写
TFT_RS = 1; //选择发送数据
TFT_DATAPORTH = datH; //放置命令数据
TFT_DATAPORTL = datL; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_CS = 1; //关闭片选
#endif
#ifdef TFT22_R61503B
unsigned char datH, datL;
datH = dat >> 8;
datL = dat & 0xFF;
TFT_WR = 1; //初始化WR
TFT_CS = 0; //打开片选
TFT_RD = 1; //选择写
TFT_RS = 1; //选择发送数据
TFT_DATAPORTH = datH; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_DATAPORTH = datL;
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_CS = 1; //关闭片选
#endif
#ifdef TFT22_ILI9225B
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=1;
TFT_DATAPORTH=dat>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTH=dat&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT24_ST7781R
TFT_CS=0;
TFT_RS=1;
TFT_DATAPORTH=dat>>8;
TFT_DATAPORTL=dat;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT26_R61509V
TFT_CS=0;
TFT_RS=1;
TFT_DATAPORTH=dat>>8;
TFT_DATAPORTL=dat;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT26_ILI9325D
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=1;
TFT_DATAPORTL=dat>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTL=dat&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT24_ST7789S
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=1;
TFT_DATAPORTH=dat;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT24_SSD1297
TFT_CS=0;
TFT_RS=1;
TFT_DATAPORTH=dat>>8;
TFT_DATAPORTL=dat;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ILI9225
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=1;
TFT_DATAPORTH=dat>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTH=dat&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ILI9341
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=1;
TFT_DATAPORTH=dat;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ST7775R
TFT_CS=0;
TFT_RS=1;
TFT_DATAPORTH=dat>>8;
TFT_DATAPORTL=dat;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ST7775RV
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=1;
TFT_DATAPORTL=dat>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTL=dat&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_ILI9225C
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=1;
TFT_DATAPORTL=dat>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTL=dat&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_R61503U
TFT_CS=0;
TFT_RS=1;
TFT_DATAPORTH=dat>>8;
TFT_DATAPORTL=dat;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT20_HX8340B
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=1;
TFT_DATAPORTH=dat;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT24_HX8357A
TFT_CS=0;
TFT_RS=1;
TFT_DATAPORTH=dat>>8;
TFT_DATAPORTL=dat;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
}
void LCD_WriteData_Color(u16 color)
{
#ifdef TFT20_HX8309
unsigned char datH, datL;
datH = color >> 8;
datL = color & 0x00FF;
TFT_WR = 1; //初始化WR
TFT_CS = 0; //打开片选
TFT_RD = 1; //选择写
TFT_RS = 1; //选择发送数据
TFT_DATAPORTH = datH; //放置命令数据
TFT_DATAPORTL = datL; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_CS = 1; //关闭片选
#endif
#ifdef TFT22_R61503B
unsigned char datH, datL;
datH = color >> 8;
datL = color & 0xFF;
TFT_WR = 1; //初始化WR
TFT_CS = 0; //打开片选
TFT_RD = 1; //选择写
TFT_RS = 1; //选择发送数据
TFT_DATAPORTH = datH; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_DATAPORTH = datL;
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_CS = 1; //关闭片选
#endif
#ifdef TFT22_ILI9225B
TFT_WR=1;
TFT_CS=0;
TFT_RD=1;
TFT_RS=1;
TFT_DATAPORTH=color>>8;
TFT_WR=0;
TFT_WR=1;
TFT_DATAPORTH=color&0x00ff;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT24_ST7781R
TFT_CS=0;
TFT_RS=1;
TFT_DATAPORTH=color>>8;
TFT_DATAPORTL=color;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
#endif
#ifdef TFT26_R61509V
TFT
TFTLCD触摸屏实验--Button按钮控制LED.zip
118 浏览量
2024-01-16
14:23:43
上传
评论
收藏 145KB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/5df9b221414040c4abd67c3067b9d746_m0_64562382.jpg!1)
STM32单片机定制
- 粉丝: 1w+
- 资源: 455
最新资源
- linux shell 脚本示例 升级用
- web开发课程设计/毕设-在线商城系统一个完整的在线商城网站,包括用户注册、商品展示、购物车、支付和订单管理
- 数据库课程设计/毕设-在线商城数据库系统支持在线购物的数据库系统
- Python 包管理器、程序打包工具、pip 镜像源设置工具、模块安装包下载器
- R语言数据分析-分析学生考试成绩计算每个学生的平均成绩,并将结果存储在新的列
- latex专业的排版系统生成高质量的科技和数学文档基于TeX排版系统增加了许多易用的功能和宏包
- Tomcat部署及优化
- github使用Git进行版本控制提供远程仓库存储代码支持多人协作
- matlab信号处理与分析控制系统设计PID控制器设计
- python宠物医院管理系统功能-添加新医生添加新主人预约就诊
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)