当前位置:网站首页>Arduino UNO驱动合宙1.8‘TFT SPI屏幕示例演示(含资料包)
Arduino UNO驱动合宙1.8‘TFT SPI屏幕示例演示(含资料包)
2022-07-28 21:39:00 【perseverance52】
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.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);
}
边栏推荐
- 【C语言】三子棋小游戏实现
- RouYi-Cloud平台 ---项目的启动、登录功能是怎么实现的、怎么样创建新模块
- Introduction to original code, inverse code and complement code
- Typescript类方法this指针绑定
- Thesis reading (1) - zfnet of classification
- Subscript in swift
- Target detection notes fast r-cnn
- Sdwebimage source code combs 5 author motivation, modifies directory, and changes inheritance relationship
- A new paradigm of distributed deep learning programming: Global tensor
- Cnpm installation steps
猜你喜欢

【雷达】基于核聚类实现雷达信号在线分选附matlab代码

华为无线设备配置利用WDS技术部署WLAN业务

【MySQL系列】 MySQL表的增删改查(进阶)

There are four ways for Nacos to configure hot updates and multiple ways to read project configuration files, @value, @refreshscope, @nacosconfigurationproperties

WebView optimization

Introduction to address book export without code development platform

Retrofit Usage Summary

It's settled! All products of Nezha s will be launched on July 31

NVM use... Exit status garbled

Sqlilabs-3 (entry notes)
随机推荐
【数据库】
General principles of software quality
GCD summary
Research on cookies in WebView
mgr.exe病毒导致启动程序启动失败
安全狗入选《云安全全景图2.0》多个细项
Win11找不到DNS地址怎么办?Win11找不到DNS无法访问网页解决方法
The Gerrit local code is associated to the remote warehouse
(important) first knowledge of C language -- function
Target detection notes -yolo
A new MPLS note from quigo, which must be read when taking the IE exam ---- quigo of Shangwen network
recursion and iteration
Typescript防止基类被实例化
WebApplicationType#deduceFromClasspath
Sqlilabs-2 (breakthrough record)
cnpm安装步骤
This year, MediaTek 5g chip shipments are expected to reach 50million sets!
芯华章宣布完成超2亿A轮融资,全面布局EDA2.0研发
Symbol symbol type
The applet vant webapp component is missing, and the referenced component reports an error