当前位置:网站首页>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);
}
边栏推荐
- Applet, JS, transfer object jump transfer parameter problem
- All aspect visual monitoring of istio microservice governance grid (microservice architecture display, resource monitoring, traffic monitoring, link monitoring)
- Trivy [2] tool vulnerability scanning
- 以价换量却遭遇销量“六连跌”,不再安全的沃尔沃还能翻身吗?
- Byte 8 years' experience of female test Director - for girls who want to change careers or are about to enter the testing industry
- 被忽视的智能电视小程序领域
- 使用这个,你发的消息就无法被监控了
- WebView whitelist
- There are four ways for Nacos to configure hot updates and multiple ways to read project configuration files, @value, @refreshscope, @nacosconfigurationproperties
- Solve the exception that all control files are damaged
猜你喜欢

Sdwebimage source code combs 5 author motivation, modifies directory, and changes inheritance relationship

可视化全链路日志追踪

Rouyi cloud platform - how to realize the launch and login functions of the project and how to create new modules

1314_串口技术_RS232通信基础的信息

Development of small programs ①

Arduino框架下STM32F103C系列单片机引脚映射关系

Rhce第二天

Read the recent trends of okaleido tiger and tap the value and potential behind it

The Gerrit local code is associated to the remote warehouse

Hands on Teaching of servlet use (1)
随机推荐
Cnpm installation steps
KingbaseES客户端编程接口指南-ODBC(4. 创建数据源)
Runloop principle (I)
可视化全链路日志追踪
Kotlin function nesting
View APK signature
Hands on Teaching of servlet use (1)
行泊一体迎爆发期,抢量产还是修技术护城河?
Elements in the middle (one article is enough)
互动滑轨屏在展厅中应用的制作步骤
GCD summary
Array array object
Wechat applet development ④
Applet Download Preview PDF, document cannot open solution
Win11找不到DNS地址怎么办?Win11找不到DNS无法访问网页解决方法
wget什么意思
mongodb索引添加、查看、导出、删除
Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)
Typescript class method this pointer binding
General paging - background