当前位置:网站首页>Arduino uno driver universe 1.8 'TFT SPI screen example demonstration (including data package)
Arduino uno driver universe 1.8 'TFT SPI screen example demonstration (including data package)
2022-07-28 23:34:00 【perseverance52】
Arduino UNO Driving convergence 1.8"TFT SPI Screen sample demo
- Effect display


Drive reference package
- originate :http://www.lcdwiki.com/zh/1.8inch_Arduino_SPI_Module_ST7735S_SKU:MAR1801
- In the package 2 Two driving modes : simulation SPI And hardware SPI Driving mode
1.8inch Arduino SPI Module ST7735SThey are all the same driver chips , Directly use the code in this material to easily light up the universe 1.8"tff The screen
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

Wiring instructions
/ CS DC RST SDA CLK VCC GND
//Arduino Mega2560&Uno A5 A3 A4 A2 A1 3.3V GND
Drive display demo code
simulation SPI drive
DemoYou don't need to include libraries to compile directly .
#define CS A5
#define RS A3
#define RESET A4
#define SDA A2
#define SCK A1
//LED Don't connect
#define LED A0 //if you don't need to control the LED pin,you should set it to -1 and set it to 3.3V
void 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); //CS
Lcd_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);
}
边栏推荐
- Routeros limited DNS hijacking and check
- KingbaseES客户端编程接口指南-ODBC(4. 创建数据源)
- Why did "you" become a test / development programmer? The value of your existence
- 如何将一个mongodb中集合的索引 添加到另一个mongodb中集合中
- 一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力
- 22牛客多校day1 J - Serval and Essay 启发式合并
- MyCms 自媒体商城 v3.6 发布,兼容微擎应用开发(Laravel框架)
- The functions and differences of display, visibility and overflow
- The Gerrit local code is associated to the remote warehouse
- Kotlin JVM annotation
猜你喜欢

Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)

集火全屋智能“后装市场”,真正玩得转的没几个

Programmer growth Chapter 30: artifact of identifying true and false needs

Form label
![Trivy [3] custom scanning strategy](/img/a8/49daba73e5ac4c5dbb6e4d007e056b.png)
Trivy [3] custom scanning strategy

WebView optimization
Object object

互动滑轨屏在展厅中应用的制作步骤

顶级“黑客”能厉害到什么地步?无信号也能上网,专家:高端操作!

Achieve high throughput through Wi Fi 7 - insight into the next generation of Wi Fi physical layer
随机推荐
网络流量监控工具iftop
6 个超级良心的开源教程!
mgr.exe病毒导致启动程序启动失败
How to open a profitable gym? I tell you from one year's experience that don't fall in love
使用这个,你发的消息就无法被监控了
以价换量却遭遇销量“六连跌”,不再安全的沃尔沃还能翻身吗?
Binary search tree
如何在VR全景中嵌入AI数字人功能?打造云端体验感
酒店预订系统数据库房间库存设计思路
WebView whitelist
WebView optimization
Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
行泊一体迎爆发期,抢量产还是修技术护城河?
通过Wi-Fi 7实现极高吞吐量——洞察下一代Wi-Fi物理层
深开鸿:万物智联的大江上,升起一轮开源鸿蒙月
Research on cookies in WebView
The development mode of digital retail dominated by traffic is only the beginning
【数据挖掘工程师-笔试】2022年大华股份
Shenkaihong: on the river of Zhilian of all things, there is a bright moon of open source
Use of typescript class