@Tinbur物联网


利用Arduino实现数码管显示功能

1.实现功能的代码

1.1数码管显示滚动自定义字符串

#include <SevenSegmentTM1637.h>SevenSegmentTM1637  display(5,4);void setup(){display.begin();
}void loop(){display.setBacklight(50);display.print("123456");}

1.2数码管显示自定义的时间

#include <SevenSegmentExtended.h>
#include <SevenSegmentTM1637.h>SevenSegmentExtended  display(5,4);void setup(){display.begin();display.setBacklight(20);
}void loop(){display.printTime(12,30,HIGH);}

1.3数码管显示秒表

#include <EEPROM.h>
#include <SevenSegmentTM1637.h>
#include <avr/pgmspace.h>
#include <TimerOne.h>SevenSegmentTM1637  display(5,4);int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};
unsigned char ClockPoint = 1;
unsigned char Update;
unsigned char microsecond_10 = 0;
unsigned char second;
unsigned char _microsecond_10 = 0;
unsigned char _second;
unsigned int eepromaddr;
boolean Flag_ReadTime;#define ON 1
#define OFF 0void TimeUpdate2(void)
{
if(ClockPoint)tm1637.point(POINT_ON);
else tm1637.point(POINT_OFF);
TimeDisp[2] = _microsecond_10 / 10;
TimeDisp[3] = _microsecond_10 % 10;
TimeDisp[0] = _second / 10;
TimeDisp[1]= _second % 10;
Update = OFF;
}void TimingISR2()
{
microsecond_10 ++;
Update = ON;
if(microsecond_10 == 100)
{
second ++;
if(second == 60)
{
second = 0;
}
microsecond_10 = 0;
}
ClockPoint =(~ClockPoint) & 0x01;
if(Flag_ReadTime == 0){_microsecond_10 = microsecond_10;
_second = second;  }
}void readTime(){
Flag_ReadTime = 1;
if(eepromaddr == 0)
{
Serial.println("The time had been read");
_microsecond_10 = 0;_second = 0;
}
else{
_second = EEPROM.read(-- eepromaddr);
_microsecond_10 = EEPROM.read(-- eepromaddr);
Serial.println("List the time");
}
Update = ON;
}
void saveTime()
{EEPROM.write(eepromaddr ++,microsecond_10);
EEPROM.write(eepromaddr ++,second);
}void stopwatchPause()
{
TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12));
}void stopwatchReset()
{stopwatchPause();
Flag_ReadTime = 0;
_microsecond_10 = 0;
_second = 0;
microsecond_10 = 0;
second = 0;
Update = ON;
}void stopwatchStart()
{Flag_ReadTime = 0;
TCCR1B |=Timer1.clockSelectBits;
}void setup(){display.begin();display.setBacklight(20);tm1637.set();tm1637.init();
Timer1.initialize(10000);Timer1.attachInterrupt(TimingISR2);}void loop(){stopwatchStart();if(Update == ON){TimeUpdate2();tm1637.display(TimeDisp);}
}

2.以下使用可视化编程的截图

2.1数码管滚动字符串

2.2数码管显示自定义时间

2.3数码管显示秒表的功能

3.实现的效果

3.1实现滚动字符视频

数码管实现滚动字符串

3.2 实现自定义的时间

3.3实现秒表的视频

实现数码管秒表

利用Arduino实现数码管显示功能相关推荐

  1. LabVIEW控制Arduino驱动数码管(基础篇—11)

    目录 1.实验目的 2.实验环境 3.程序设计 4.实验演示 1.实验目的 利用LIAT中的数码管显示函数库,通过LabVIEW软件控制Arduino Uno控制板,将特定的数据显示在单个数码管上,实 ...

  2. 利用Arduino IDE对ATMEGA8等单片机编程

    简 介: 根据 Programming ATmega8 Using Arduino IDE - Arduino Project Hub 所描述的方法,测试了在Arduino IDE中增加对于ATmeg ...

  3. 利用Arduino Nano 对于另外的Arduino控制板下载Bootloader

    简 介: 测试了利用Nano板对于基于MEGA328的Arduino的Bootloader下载,在此基础之上,利用了FT232TL的USB-TTL UART模块对测试MEGA328下载执行程序. 关键 ...

  4. 利用Arduino对路由器进行调试,居然这么简单!

    本文讲的是利用Arduino对路由器进行调试,居然这么简单!, 在生产嵌入式系统,如路由器或网络摄像头时,制造商就已预留了一些调试端口.不过对于一般的用户来说,这些预留的调试端口显然是用不到的,因为它 ...

  5. Arduino:数码管显示原理详解和Proteus仿真实验

    Arduino:数码管显示原理详解和Proteus仿真实验 Proteus仿真 数码管介绍 数码管是半导体发光元件,其基本单元是发光二极管.根据段数,数码管分为七段管和八段管. 八段管比七段管还多一个 ...

  6. 单片机实验——改进型交通信号灯设计,交通信号系统是保障交通安全高效的重要设施,为了利于司机更好的判断,很多交通信号灯系统在原来的系统基础上设置了倒计时显示器。本实验利用7段数码管作倒计时显示器

    实验内容及要求 交通信号系统是保障交通安全高效的重要设施,为了利于司机更好的判断,很多交通信号灯系统在原来的系统基础上设置了倒计时显示器.本实验利用7段数码管作倒计时显示器,设计一个改进型的交通信号灯 ...

  7. 如何利用Arduino和TFT LCD操控NeoPixel LED灯条

    原文地址:https://circuitdigest.com/microcontroller-projects/neopixel-rgb-led-strip-with-arduino 如何利用Ardu ...

  8. 利用Arduino uno控制24BYJ-48电机正反转停止( 不使用步进库实现方法三)

    利用Arduino uno控制24BYJ-48电机正反转停止( 不使用步进库实现方法三) 24BYJ48步进电机 本文不涉及指定圈数的转动,旨在控制步进正反转以及停止的控制.(知道其原理,实现指定圈数 ...

  9. 利用Arduino uno控制24BYJ-48电机正反转停止( 不使用步进库实现方法二)

    利用Arduino uno控制24BYJ-48电机正反转停止( 不使用步进库实现方法二) 继续写第二种方法,主要是受到之前写流水灯的程序原理启发. 24BYJ48步进电机 本文不涉及指定圈数的转动,旨 ...

最新文章

  1. 架构设计之分布式文件系统
  2. 核密度估计python_核密度估计Kernel Density Estimation(KDE)
  3. python数据库编程dbf_python读写dbf文件
  4. pomelo 分布式聊天入门客户端demo(c#)
  5. hp服务器raid制作,HP服务器建立RAID的两种方法
  6. 微软推出免费在线系统诊断工具--不用手动下载
  7. 5、mysql中的库操作
  8. MATLAB之图像与音频信号处理
  9. 凭什么说这门编程语言是下一代 Java?
  10. Jersey Restful WebService 接收 JSON 数组 对象
  11. 2022-渗透测试-口令破解-几款暴力破解和字典生成的工具
  12. 因子分析python代码_用Python实现因子分析
  13. disc性格测试cs适合职业_DISC性格测试,高C型的人适合从事什么工作?
  14. 服务器上的VGA切换原理,什么是VGA接口 原理及特点是什么
  15. PowerShell 开启无线热点
  16. 我的世界手机java版下载_我的世界java版下载手机版-我的世界java版手机版v1.16 - 手机迷...
  17. python计算三角形面积_【Scratch算法编程】计算三角形面积
  18. 管理员技术(二): 访问练习用虚拟机、 命令行基础技巧 、 挂载并访问光盘设备、ls列表及文档创建、复制删除移动...
  19. CAD命令栏窗口跑到屏幕外面怎么找回来
  20. 【运筹优化】结合天际线启发式的蚁群算法求解二维矩形装箱问题 + Java代码实现

热门文章

  1. java 编程动感相册_抖音3D立体动态相册实现代码下载
  2. 【面试】向主考官提出的10个漂亮的问题
  3. matlab多元回归程序,多元回归程序MATLAB程序.doc
  4. 完整制作网吧系统全过程(四)
  5. 数通网络高工的金手指(附详细书单)
  6. Macbook OS X EI Capitan 10.11.5 WiFi不稳定
  7. windows10命令行窗口cmd路径切换
  8. jsp页面跳转的几种方式
  9. 时间格式yyyy-MM-dd‘T‘HH:mm:ss.SSSXXX与yyyy-MM-dd HH:mm:ss之间相互转换的工具类
  10. 访问者模式(Visitor Pattern)