Arduino与Proteus仿真实例-MAX6955驱动8位14段数码管仿真
MAX6955驱动8位14段数码管仿真
MAX6955 是一款紧凑型显示驱动器,通过兼容 I2C 的 2 线串行接口将微处理器连接到 7 段、14 段和 16 段 LED 显示器。 MAX6955 可驱动多达 16 位 7 段、8 位 14 段、8 位 16 段或 128 个分立 LED,同时工作电源电压低至 2.7V。该驱动程序包括五个 I/O 扩展器或通用 I/O (GPIO) 线,其中部分或全部可配置为按键开关读取器。钥匙开关阅读器自动扫描和去抖动多达 32 个开关的矩阵。
MAX6955片上包括完整的 14 段和 16 段 ASCII 104 字符字体、用于 7 段显示器的十六进制字体、多路扫描电路、阳极和阴极驱动器以及存储每个数字的静态 RAM。显示数字的最大段电流使用单个外部电阻器设置。数字强度可以使用 16 级内部数字亮度控制进行独立调整。 MAX6955 包括低功耗关断模式、允许用户显示 1 至 16 位数字的扫描限制寄存器、段闪烁(如果需要,可在多个驱动器之间同步)以及强制所有 LED 点亮的测试模式。 LED 驱动器受压摆率限制以降低EMI。
在前面的文章中,对MAX595做了详细的介绍,请参考:
1、仿真电路原理图

2、仿真代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| #include <Arduino.h>
#include <Wire.h> #include "MAX6955.h"
#define SCL A5 #define SDA A4
MAX6955 maxdisp(0);
void setup() { maxdisp.init(); // ↓ 0xFF = digits 0-7 are 14-segment digits // 0x00 = digits 0-7 are 16- or 7-segment digits // 设置14段LED驱动 maxdisp.writeReg(MAX6955_REG_DigitType, 0b11111111);
maxdisp.setGlobalIntensity(15);
//maxdisp.clear(); //maxdisp.write(PLANE\_0, "01234567");
} char\* dispbuf[8] = {0}; void loop() { maxdisp.clear(); maxdisp.write(PLANE_0,"00000008"); delay(500); maxdisp.clear(); maxdisp.write(PLANE_0,"11111111"); delay(500); maxdisp.clear(); maxdisp.write(PLANE_0,"22222222"); delay(500); maxdisp.write(PLANE_0,"33333333"); delay(500); maxdisp.clear(); maxdisp.write(PLANE_0,"44444444"); delay(500); maxdisp.clear(); maxdisp.write(PLANE_0,"55555555"); delay(500); maxdisp.write(PLANE_0,"66666666"); delay(500); maxdisp.clear(); maxdisp.write(PLANE_0,"77777777"); delay(500); maxdisp.clear(); maxdisp.write(PLANE_0,"88888888"); delay(500); maxdisp.clear(); maxdisp.write(PLANE_0,"99999999"); delay(500); }
|
3、仿真结果

文章来源: https://iotsmart.blog.csdn.net/article/details/121200846
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!