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屏幕示例演示(含资料包)相关推荐

  1. STC单片机驱动1.8‘TFT SPI屏幕示例模板(含资料包)

    STC单片机驱动1.8'TFT SPI屏幕示例模板(含资料包) 驱动演示 STC单片机采用的是: STC12C5A60S2,采用的自制开发板:<[开源]STC12C5A60S2开发板> 1 ...

  2. Arduino UNO驱动ADS1115模数转换模块

    Arduino UNO驱动ADS1115模数转换模块 简介 ADS1115模块原理图 Arduino UNO与ADS1115接线图 Arduino UNO测试代码 总结 原文链接:https://ww ...

  3. Arduino UNO驱动TM1637四位时钟数码管显示时间

    Arduino UNO驱动TM1637四位时钟数码管显示时间 一.TM1637简介 二.引脚定义 三.Arduino UNO与数码管模块接线 四.测试代码 五.实验结果 一.TM1637简介 TM16 ...

  4. Arduino UNO驱动MCP9808高精度数字温度传感器

    Arduino UNO驱动MCP9808高精度数字温度传感器 MCP9808简介 引脚定义 Arduino UNO与MCP9808模块接线 程序与实验结果 MCP9808简介 MCP9808 数字温度 ...

  5. Arduino uno 驱动安装问题解决(win10)

    Arduino uno 驱动安装问题解决(win10) 今天安装uno的驱动怎么也安装不上,从网上找了各种帖子,终于解决了问题 首先说一下遇到的问题: 1.插入uno板在arduino中无法设置端口, ...

  6. 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 ...

  7. Arduino IDE搭建合宙ESP32C3开发环境(最简单) 附跑马灯代码

    Arduino IDE搭建合宙ESP32C3开发环境(最简单) 附跑马灯代码 一.安装Arduino IDE 二.搭建合宙简约版ESP32C3开发环境 1.产品示例&管脚定义&原理图 ...

  8. Arduino UNO驱动土壤湿度传感器检测

    Arduino UNO驱动土壤湿度传感器检测 简介 运行要求 Arduino UNO与传感器接线 程序展示 实践效果 总结 简介 本次使用到是这个新款土壤湿度传感器! 这款电容式土壤湿度传感器区别于市 ...

  9. Arduino UNO驱动 AT24C256 EEPROM存储器模块

    Arduino UNO驱动 AT24C256 EEPROM存储器模块 AT24C256模块简介 模块引脚定义 Arduino UNO与模块接线 测试代码 实验结果 AT24C256模块简介 AT24C ...

最新文章

  1. Java HasCode equals == 的区别
  2. 世界在音乐中得到了完整的再现和表达。
  3. android-ndk-r15c libncurses.so.5
  4. shell脚本——调试(-n / -x /-c)
  5. Go加密解密之DES
  6. 应用Java程序片段动态生成表格
  7. 【JVM调优工具篇】jvisualvm工具导出dump文件教程
  8. keepalived(2)——配置文件
  9. 今年最有档次的9个词!(不看后悔)
  10. java后台手动分页
  11. Asp.Net 控件生命周期
  12. 本题要求实现一个求整数的逆序数的简单函数。_回溯算法:求组合总和(二)...
  13. 银行不放款可以换银行贷款吗?
  14. python深度复制_Python直接赋值、浅拷贝和深度拷贝解析
  15. U-BOOT 编译过程
  16. Chrome 76.0.3809.100(正式版本) (64 位) 版本 77.0.3865.90不显示网址中的www怎么解决...
  17. matlab按图像边缘抠图_不会抠图?保姆级抠图教程!手把手教你抠图(二)
  18. UDP中sendto()和recvfrom()两个函数的使用
  19. JConsole可视化工具介绍
  20. 程序员薪酬待遇大调查:学哪种语言的最赚钱?

热门文章

  1. 随手记——老夫死活记不住定理
  2. 出租车不需要司机了?带你体验无人驾驶出租车!|『智能产品家』第三期
  3. 滴滴老年版来了,推出一键打车小程序,电话叫车服务
  4. Acer Linux改win7,宏基台式机win10如何改win7系统_宏基台式机预装win10怎么换win7
  5. 【Android】【Gradle】解决Manifest merger failed问题
  6. linux系统安装hba驱动,RedHat Linux下的HBA驱动安装
  7. 问题分析报告--读取ORC文件报seek错误
  8. 快速上手matlab(二)
  9. 史蒂芬·金《肖申克的救赎》读后感
  10. 奶茶妹妹章泽天加入微软Bing团队