#include <TM1637Display.h> //引入数码管库

#define CLK 2 //CLK引脚连接到Arduino的2号引脚 #define DIO 3 //DIO引脚连接到Arduino的3号引脚 TM1637Display display(CLK, DIO); //定义数码管对象

volatile int count = 0; //计时器变量 int digit1 = 0; //第一个数码管显示的数位 int digit2 = 0; //第二个数码管显示的数位

void setup() { pinMode(9, OUTPUT); //数码管引脚1 pinMode(8, OUTPUT); //数码管引脚2 pinMode(7, OUTPUT); //数码管引脚3 pinMode(6, OUTPUT); //数码管引脚4 pinMode(5, OUTPUT); //数码管引脚5 pinMode(4, OUTPUT); //数码管引脚6 pinMode(12, OUTPUT); //数码管引脚7 pinMode(11, OUTPUT); //数码管引脚8

TCCR2A = 0x02; //设置定时器2为CTC模式 TCCR2B = 0x05; //设置预分频为1024 OCR2A = 156; //设置计数值,对应1秒

TIMSK2 |= (1 << OCIE2A); //开启定时器2的比较匹配中断

display.setBrightness(0x0f); //设置数码管亮度,范围为0-0x0f }

void loop() { display.showNumberDec(digit1 * 10 + digit2, false); //显示数码管的数值 }

ISR(TIMER2_COMPA_vect) { //定时器2的比较匹配中断函数 count++; //计时器加1 if (count == 60) { //计时器达到60时,重新开始计时 count = 0; } digit1 = count / 10; //计算第一个数码管显示的数位 digit2 = count % 10; //计算第二个数码管显示的数位

请写一下下列实验代码定时器与数码管显示目的:掌握ARDUINO下的定时器使用方法数码管的驱动与显示方法内容:①利用定时器2产生精确的1秒并进行计时实现0-59的循环显示;连接2个数码管需要10个端口自己选择与分配如果不够可以考虑进行IO口扩展。

原文地址: https://www.cveoy.top/t/topic/eDdM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录