找回密码
 立即注册

QQ登录

只需一步,快速开始

本帖最后由 lxf 于 2020-8-17 13:35 编辑

第23课 OLED显示屏的使用


目标

1、OLED显示屏第三方库的使用
2、do-while语句的运用
3、OLED显示屏的使用

实验材料

Arduino UNO开发板
12864液晶显示屏
配套USB数据线
配套杜邦线若干
Arduino IDE软件

微信图片_20200702120859.png

内容

OLED显示屏显示字符“ABC”

接线图

微信图片_20200702121344.png

接线方式

Arduino UNO       <------>   12864液晶显示屏
       5V                  <------>              VCC
    GND                 <------>              GND
      10                   <------>               SCL
       9                    <------>               SDA
     13                    <------>               RES
     11                    <------>               DC
     12                    <------>               CS

需要使用到OLED显示屏的第三方库文件
提取码:vg48

下载后安装库文件

文件下载后无需解压,点击Arduino IDE菜单栏项目—加载库—添加.ZIP库...

微信图片_20200702130657.png

选择“U8glib.zip”文件

微信图片_20200702130543.png

程序实现代码

  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #include "U8glib.h"   //OLED显示屏库文件
  4. U8GLIB_SSD1306_128X64 u8g(10, 9, 12, 11);  //OLED显示屏引脚设置SCL=10,SDA=9,CS=12,DC=11
  5. void draw(void) {
  6.   u8g.setFont(u8g_font_osb18);  //设置要显示字符的字体
  7.   u8g.drawStr(0, 20, "ABC");  //显示字符ABC,起点X为0,起点Y为20
  8.   u8g.setColorIndex(1);  //显示对象为不透明
  9. }
  10. void setup(void) {
  11. }
  12. void loop(void) {
  13.   u8g.firstPage();  
  14.   do {
  15.     draw();
  16.   } while( u8g.nextPage() );
  17. }
复制代码

OLED显示屏显示结果

微信图片_20200702130312.png

do…while

do-while循环与while循环使用相同方式工作,不同的是表达式条件是在循环的末尾测试的,所以do-while循环总是至少会运行一次。

结构

do{
语句块
} while(表达式);
do-while循环与while循环的不同在于:它会先执行循环体,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次循环体。其执行过程可用下图表示

图片6.png
(do-while循环语句流程图)

do-while语句示例

用do-while计算1加到100的值,并且通过串口监视器显示结果。

程序实现代码

  1. void setup() {
  2.    Serial.begin(9600);  // 初始化串口通讯,波特率为9600
  3. }
  4. void loop() {
  5.     int i=1, sum=0;
  6.     do{  
  7.         sum+=i;  
  8.         i++;
  9.     }while(i<=100);   //判断i是否小于等于100
  10.     Serial.print ("sum = ");  //通过串口监视器输出
  11.     Serial.println (sum);     //do-while循环结束后的sum值
  12.     delay (5000); // 延迟5秒钟   
  13. }
复制代码

注意

while(i<=100);最后的分号;,这个必须要有。

打开串口监视器查看运行结果

微信图片_20200702130434.png
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册