Arduino UNO驱动合宙1.8‘TFT SPI屏幕示例演示(含资料包)
Arduino UNO驱动合宙1.8"TFT SPI屏幕示例演示
- 效果展示
驱动参考资料包
- 来源于:http://www.lcdwiki.com/zh/1.8inch_Arduino_SPI_Module_ST7735S_SKU:MAR1801
- 资料包中2种驱动方式:模拟SPI和硬件SPI驱动方式
1.8inch Arduino SPI Module ST7735S
都是一样的驱动芯片,直接利用该资料中的代码轻松点亮合宙1.8"tff屏幕
http://www.lcdwiki.com/res/Program/Arduino_SPI/1.8inch/Arduino_SPI_ST7735S_MAR1801_V1.0/1.8inch_Arduino_SPI_Module_ST7735S_MAR1801_V1.0.zip
接线说明
/ CS DC RST SDA CLK VCC GND
//Arduino Mega2560&Uno A5 A3 A4 A2 A1 3.3V GND
驱动显示演示代码
模拟SPI驱动
Demo
不需要包含库直接编译。
#define CS A5
#define RS A3
#define RESET A4
#define SDA A2
#define SCK A1
//LED 不用接
#define LED A0 //if you don't need to control the LED pin,you should set it to -1 and set it to 3.3Vvoid Lcd_Writ_Bus(unsigned char d)
{uint8_t val = 0x80;while(val){if(d&val){digitalWrite(SDA,HIGH);}else{digitalWrite(SDA,LOW);}digitalWrite(SCK,LOW);digitalWrite(SCK,HIGH);val >>= 1;}
}void Lcd_Write_Com(unsigned char VH)
{ *(portOutputRegister(digitalPinToPort(RS))) &= ~digitalPinToBitMask(RS);//LCD_RS=0;Lcd_Writ_Bus(VH);
}void Lcd_Write_Data(unsigned char VH)
{*(portOutputRegister(digitalPinToPort(RS)))|= digitalPinToBitMask(RS);//LCD_RS=1;Lcd_Writ_Bus(VH);
}void Lcd_Write_Com_Data(unsigned char com,unsigned char dat)
{Lcd_Write_Com(com);Lcd_Write_Data(dat);
}void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{Lcd_Write_Com(0x2a);Lcd_Write_Data(x1>>8);Lcd_Write_Data(x1);Lcd_Write_Data(x2>>8);Lcd_Write_Data(x2);Lcd_Write_Com(0x2b);Lcd_Write_Data(y1>>8);Lcd_Write_Data(y1);Lcd_Write_Data(y2>>8);Lcd_Write_Data(y2);Lcd_Write_Com(0x2c);
}void Lcd_Init(void)
{digitalWrite(RESET,HIGH);delay(5); digitalWrite(RESET,LOW);delay(15);digitalWrite(RESET,HIGH);delay(15);digitalWrite(CS,LOW); //CSLcd_Write_Com(0x11);delay(120);Lcd_Write_Com(0xB1); Lcd_Write_Data(0x05); Lcd_Write_Data(0x3C); Lcd_Write_Data(0x3C); Lcd_Write_Com(0xB2); Lcd_Write_Data(0x05); Lcd_Write_Data(0X3C); Lcd_Write_Data(0X3C); Lcd_Write_Com(0xB3); Lcd_Write_Data(0x05); Lcd_Write_Data(0x3C); Lcd_Write_Data(0x3C); Lcd_Write_Data(0x05);Lcd_Write_Data(0x3C);Lcd_Write_Data(0x3C);Lcd_Write_Com(0xB4); Lcd_Write_Data(0x03);Lcd_Write_Com(0xC0); Lcd_Write_Data(0x28); Lcd_Write_Data(0x08);Lcd_Write_Data(0x04); Lcd_Write_Com(0xC1); Lcd_Write_Data(0xC0);Lcd_Write_Com(0xC2); Lcd_Write_Data(0x0D); Lcd_Write_Data(0X00); Lcd_Write_Com(0xC3); Lcd_Write_Data(0x8D); Lcd_Write_Data(0x2A); Lcd_Write_Com(0xC4); Lcd_Write_Data(0x8D); Lcd_Write_Data(0xEE); Lcd_Write_Com(0xC5); Lcd_Write_Data(0x1A); Lcd_Write_Com(0x17); Lcd_Write_Data(0x05); Lcd_Write_Com(0x36); Lcd_Write_Data(0xD8); Lcd_Write_Com(0xE0);Lcd_Write_Data(0x03); Lcd_Write_Data(0x22); Lcd_Write_Data(0x07); Lcd_Write_Data(0x0A); Lcd_Write_Data(0x2E); Lcd_Write_Data(0x30); Lcd_Write_Data(0x25); Lcd_Write_Data(0x2A); Lcd_Write_Data(0x28); Lcd_Write_Data(0x26); Lcd_Write_Data(0x2E); Lcd_Write_Data(0x3A); Lcd_Write_Data(0x00); Lcd_Write_Data(0x01); Lcd_Write_Data(0x03);Lcd_Write_Data(0x13); Lcd_Write_Com(0xE1);Lcd_Write_Data(0x04); Lcd_Write_Data(0x16); Lcd_Write_Data(0x06); Lcd_Write_Data(0x0D); Lcd_Write_Data(0x2D); Lcd_Write_Data(0x26); Lcd_Write_Data(0x23); Lcd_Write_Data(0x27); Lcd_Write_Data(0x27); Lcd_Write_Data(0x25); Lcd_Write_Data(0x2D); Lcd_Write_Data(0x3B); Lcd_Write_Data(0x00); Lcd_Write_Data(0x01); Lcd_Write_Data(0x04);Lcd_Write_Data(0x13); Lcd_Write_Com(0x3A); Lcd_Write_Data(0x05); Lcd_Write_Com(0x29); digitalWrite(CS,HIGH);
}void H_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c)
{ unsigned int i,j;digitalWrite(CS,LOW);Lcd_Write_Com(0x02c); //write_memory_start//digitalWrite(RS,HIGH);l=l+x;Address_set(x,y,l,y);j=l*2;for(i=1;i<=j;i++){Lcd_Write_Data(c>>8);Lcd_Write_Data(c);}digitalWrite(CS,HIGH);
}void V_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c)
{ unsigned int i,j;digitalWrite(CS,LOW);Lcd_Write_Com(0x02c); //write_memory_start//digitalWrite(RS,HIGH);l=l+y;Address_set(x,y,x,l);j=l*2;for(i=1;i<=j;i++){ Lcd_Write_Data(c>>8);Lcd_Write_Data(c);}digitalWrite(CS,HIGH);
}void Rect(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c)
{H_line(x , y , w, c);H_line(x , y+h, w, c);V_line(x , y , h, c);V_line(x+w, y , h, c);
}void Rectf(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c)
{unsigned int i;for(i=0;i<h;i++){H_line(x , y , w, c);H_line(x , y+i, w, c);}
}int RGB(int r,int g,int b)
{return r << 16 | g << 8 | b;
}void LCD_Clear(unsigned int j)
{ unsigned int i,m;digitalWrite(CS,LOW);Address_set(0,0,127,159);for(i=0;i<128;i++)for(m=0;m<160;m++){Lcd_Write_Data(j>>8);Lcd_Write_Data(j);}digitalWrite(CS,HIGH);
}void setup()
{pinMode(A0,OUTPUT);pinMode(A3,OUTPUT);pinMode(A4,OUTPUT);pinMode(A5,OUTPUT);pinMode(A1,OUTPUT);pinMode(A2,OUTPUT);digitalWrite(A0, HIGH);digitalWrite(A3, HIGH);digitalWrite(A4, HIGH);digitalWrite(A5, HIGH);digitalWrite(A1, HIGH);digitalWrite(A2, HIGH);Lcd_Init();}void loop()
{ LCD_Clear(0xf800);LCD_Clear(0x07E0);LCD_Clear(0x001F);LCD_Clear(0x0); for(int i=0;i<300;i++){Rect(random(127),random(159),random(127),random(159),random(65535)); // rectangle at x, y, with, hight, color}// LCD_Clear(0xf800);
}
Arduino UNO驱动合宙1.8‘TFT SPI屏幕示例演示(含资料包)相关推荐
- STC单片机驱动1.8‘TFT SPI屏幕示例模板(含资料包)
STC单片机驱动1.8'TFT SPI屏幕示例模板(含资料包) 驱动演示 STC单片机采用的是: STC12C5A60S2,采用的自制开发板:<[开源]STC12C5A60S2开发板> 1 ...
- Arduino UNO驱动ADS1115模数转换模块
Arduino UNO驱动ADS1115模数转换模块 简介 ADS1115模块原理图 Arduino UNO与ADS1115接线图 Arduino UNO测试代码 总结 原文链接:https://ww ...
- Arduino UNO驱动TM1637四位时钟数码管显示时间
Arduino UNO驱动TM1637四位时钟数码管显示时间 一.TM1637简介 二.引脚定义 三.Arduino UNO与数码管模块接线 四.测试代码 五.实验结果 一.TM1637简介 TM16 ...
- Arduino UNO驱动MCP9808高精度数字温度传感器
Arduino UNO驱动MCP9808高精度数字温度传感器 MCP9808简介 引脚定义 Arduino UNO与MCP9808模块接线 程序与实验结果 MCP9808简介 MCP9808 数字温度 ...
- Arduino uno 驱动安装问题解决(win10)
Arduino uno 驱动安装问题解决(win10) 今天安装uno的驱动怎么也安装不上,从网上找了各种帖子,终于解决了问题 首先说一下遇到的问题: 1.插入uno板在arduino中无法设置端口, ...
- Arduino Uno驱动四位数码管
Arduino Uno驱动四位数码管 我用的是 四位共阳极数码管 型号是5461BS-1数码管 接线方法 UNO引脚 数据码 3 1 4 2 5 3 6 4 7 A 8 B 9 C 10 D 11 E ...
- Arduino IDE搭建合宙ESP32C3开发环境(最简单) 附跑马灯代码
Arduino IDE搭建合宙ESP32C3开发环境(最简单) 附跑马灯代码 一.安装Arduino IDE 二.搭建合宙简约版ESP32C3开发环境 1.产品示例&管脚定义&原理图 ...
- Arduino UNO驱动土壤湿度传感器检测
Arduino UNO驱动土壤湿度传感器检测 简介 运行要求 Arduino UNO与传感器接线 程序展示 实践效果 总结 简介 本次使用到是这个新款土壤湿度传感器! 这款电容式土壤湿度传感器区别于市 ...
- Arduino UNO驱动 AT24C256 EEPROM存储器模块
Arduino UNO驱动 AT24C256 EEPROM存储器模块 AT24C256模块简介 模块引脚定义 Arduino UNO与模块接线 测试代码 实验结果 AT24C256模块简介 AT24C ...
最新文章
- Java HasCode equals == 的区别
- 世界在音乐中得到了完整的再现和表达。
- android-ndk-r15c libncurses.so.5
- shell脚本——调试(-n / -x /-c)
- Go加密解密之DES
- 应用Java程序片段动态生成表格
- 【JVM调优工具篇】jvisualvm工具导出dump文件教程
- keepalived(2)——配置文件
- 今年最有档次的9个词!(不看后悔)
- java后台手动分页
- Asp.Net 控件生命周期
- 本题要求实现一个求整数的逆序数的简单函数。_回溯算法:求组合总和(二)...
- 银行不放款可以换银行贷款吗?
- python深度复制_Python直接赋值、浅拷贝和深度拷贝解析
- U-BOOT 编译过程
- Chrome 76.0.3809.100(正式版本) (64 位) 版本 77.0.3865.90不显示网址中的www怎么解决...
- matlab按图像边缘抠图_不会抠图?保姆级抠图教程!手把手教你抠图(二)
- UDP中sendto()和recvfrom()两个函数的使用
- JConsole可视化工具介绍
- 程序员薪酬待遇大调查:学哪种语言的最赚钱?
热门文章
- 随手记——老夫死活记不住定理
- 出租车不需要司机了?带你体验无人驾驶出租车!|『智能产品家』第三期
- 滴滴老年版来了,推出一键打车小程序,电话叫车服务
- Acer Linux改win7,宏基台式机win10如何改win7系统_宏基台式机预装win10怎么换win7
- 【Android】【Gradle】解决Manifest merger failed问题
- linux系统安装hba驱动,RedHat Linux下的HBA驱动安装
- 问题分析报告--读取ORC文件报seek错误
- 快速上手matlab(二)
- 史蒂芬·金《肖申克的救赎》读后感
- 奶茶妹妹章泽天加入微软Bing团队