前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >适合在单片机上练手的小型图形库

适合在单片机上练手的小型图形库

作者头像
李肖遥
发布2023-12-13 10:27:29
1310
发布2023-12-13 10:27:29
举报
代码语言:javascript
复制
    关注、星标公众号,直达精彩内容
代码语言:javascript
复制

这个小型图形库提供点、线和字符绘图命令,用于 ATtiny85 上的 I2C 128x64 OLED 显示器。


它通过避免显示缓冲器来支持RAM有限的处理器,并且可以与基于SH1106驱动芯片的I2C OLED显示器配合使用。
   

我用 Banggood [3] 提供的 Geekcreit 1.3 英寸 I2C OLED 显示器测试了这个库:

由于 I2C 只需要两条 I/O 线,因此图形显示可在 ATtiny85 上留出三行空闲线路供您自己的应用程序使用:

请注意,此库仅适用于具有四个引脚的 I2C 显示器。它不适用于SPI显示器或基于SSD1306或SSD1309驱动程序芯片的显示器,因为这些都不支持读回显示器内存。 显示器分为 8 个 8 像素高带(称为页面),一个字节对应于 8 个像素的垂直列,位的排序如下图所示:

这是一个基于ST7735和ST7789驱动芯片的小型彩色TFT显示器系列的图形库。

此库允许您使用可选比例因子绘制点、绘制线条、绘制填充矩形和打印文本。项目中包括了一个演示直方图绘图程序,该程序可以调整自身以适应支持的每个显示器。 与大多数其他TFT显示库不同,该库不需要内存缓冲区,允许它在任何处理器上运行,直到ATtiny85。 这些显示器是SPI的,需要四个引脚来驱动显示器,在ATtiny85上留出一个引脚以连接到另一个器件,例如温度传感器。如果需要更多引脚,请选择更大的芯片,例如ATtiny84; 测试源码: const int Now = 1547; // To set the time; eg 15:47 unsigned long StartMins = (unsigned long)((Now/100)*60 + (Now%100)); void loop () { unsigned int SampleNo = StartMins/15; // Plot temperature graph int x1 = 16, y1 = 11; int yscale = 2; // Points per degree MoveTo(26, 56); PlotText(PSTR("Temperature ~C")); // Horizontal axis MoveTo(x1, y1); DrawTo(x1+96, y1); for (int i=0; i<=24; i=i+4) { int mark = x1+i*4; MoveTo(mark, y1); DrawTo(mark, y1-2); int tens = i/10; if (tens != 0) { PlotChar(tens+'0', mark-6, y1-12); PlotChar(i%10+'0', mark, y1-12); } else PlotChar(i%10+'0', mark-3, y1-12); } // Vertical axis MoveTo(x1, y1); DrawTo(x1, y1+50); for (int i=5; i<=25; i=i+5) { int mark = y1+i*yscale-10; MoveTo(x1, mark); DrawTo(x1-2, mark); int tens = i/10; if (tens != 0) PlotChar(tens+'0', x1-15, mark-3); PlotChar(i%10+'0', x1-9, mark-3); } for (;;) { // Now start plotting the temperature every 15 mins while ((unsigned long) ((StartMins + millis()/60000)/15)%96 == SampleNo); // Time to take a new reading SampleNo = (SampleNo+1)%96; int Temperature = (analogRead(A2)*25)/233; // In half degrees PlotPoint(SampleNo+x1, Temperature-10+y1); } } 项目源码都可以在以下两个链接中找到,这里就不过多介绍了,感兴趣的可以直接看看。 Tiny Graphics Library: http://www.technoblogy.com/show?23OS Tiny TFT Graphics Library: http://www.technoblogy.com/show?L6I 版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。 ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术让梦想更伟大 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档