当前位置:网站首页>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);
}
边栏推荐
- Several common methods of SQL optimization
- 使用这个,你发的消息就无法被监控了
- View APK signature
- Typescript类的使用
- High quality subroutine 3 - a good name
- 金仓数据库 KingbaseES V8.3至V8.6迁移最佳实践(3. KingbaseES移植能力支撑体系)
- 顶级“黑客”能厉害到什么地步?无信号也能上网,专家:高端操作!
- Read the recent trends of okaleido tiger and tap the value and potential behind it
- High quality subroutine 2 - high cohesion
- CV目标检测模型小抄(2)
猜你喜欢
![Trivy [2] tool vulnerability scanning](/img/7a/c1012c75b23076f5a9b09e5756adba.png)
Trivy [2] tool vulnerability scanning

CV目标检测模型小抄(2)

二舅火了,全网刷屏,他凭什么能治好我的精神内耗?

行泊ADAS摄像头前装搭载同比增长54.15%,TOP10供应商领跑

Wechat applet development ③

程序员成长第三十篇:识别真伪需求的神器

Few people can really play in the "aftermarket" of the whole house intelligent fire collection

Form label

Shenkaihong: on the river of Zhilian of all things, there is a bright moon of open source

「行泊一体」放量,福瑞泰克高性能域控制器领跑新赛道
随机推荐
Sdwebimage source code combs 5 author motivation, modifies directory, and changes inheritance relationship
What if win11 quick copy and paste cannot be used? Win11 shortcut copy and paste cannot be used
Subscript in swift
With the "integration of driving and parking", freytek's high-performance domain controller leads the new track
Performance optimized APK slimming
Rouyi cloud platform - how to realize the launch and login functions of the project and how to create new modules
Few people can really play in the "aftermarket" of the whole house intelligent fire collection
Text is hidden beyond and ellipsis is displayed
Byte 8 years' experience of female test Director - for girls who want to change careers or are about to enter the testing industry
Go 中的并发 Concurrency
如何在VR全景中嵌入AI数字人功能?打造云端体验感
如何开一家盈利的健身房?我用1年回本的经验告诉你,别谈恋爱
这款全网热评的无线路由器,到底有什么特别?
Arduino框架下STM32F103C系列单片机引脚映射关系
这个胶水有多强呢?
High quality subroutine 3 - a good name
Huawei wireless device configuration uses WDS technology to deploy WLAN services
CV语义分割模型小抄(2)
Price for volume has encountered "six consecutive declines" in sales. Can Volvo, which is no longer safe, turn around?
使用这个,你发的消息就无法被监控了