基于at89s52单片机的万年历设计内容摘要:

0 1 71 0E 注 : 由于用 MAX7219 驱动译码,所以,本文选用共阴极数码管,只显示 09,如果要用 7 段数码显示器显示多位数字,就用 MAX7219 来驱动,下一节MAX7219 的驱动。 详情请参考上一节。 驱动芯片的简介 MAX7219 是 MAXMI 公司生产的一种串行接口方式 7 段共阴极 LED显示驱动器。 其片内包含有一个 BCD 码到 B 码的译码器、多路复用扫描电路、字段和南通纺织职业技术学院 基于 AT89S52 单片机的万年历设计 12 字位驱动器,以及存储每个数字的 8X8RAM。 每位数字都可以被寻址和更新,允许对每一位数字选择 B 码译码或不译码。 采用三线串行方式与单片机接口。 电路十分简单,只需要一个 10KΩ 左右的外接电阻来设置所有 LED 的段电流。 MAX7219 的引脚排列如图 所示。 图 MAX7219 的引脚排 列 ( 1)引脚功能简介 DIN:串行数据输入。 在 CLK 时钟的上升沿,串行数据被移入内部移位寄存器。 移入时最高位( MSB)在前。 DIG07: 8 根字位驱动引脚,它从 LED 显示器吸入电流。 GND:接地,两根 GND 引脚必须相连。 LOAD:装载数据输入。 在 LOAD 的上升沿,串行输入数据的最后 16 位被锁存。 CLK:时钟输入。 它是串行数据输入时所需的移位脉冲。 最高时钟频率为10MHz,在 CLK 地上升沿串行数据被移入内部移位寄存器,在 CLK 的下降沿数据从 DOUT 移出。 SEGASEGG,DP:七段和小数点驱动输 出,它提供 LED 显示器源电流。 ISET:通过一个 10KΩ 电阻 Rset 接到 V+以设置峰值段电流。 V+: +5V 电源电压。 DOUT:串行数据输出。 输入到 DIN 的数据经过 个时钟周期后,在 DOUT端有效。 (2) MAX7219 的传输方式 : 采用串行数据传输方式,由 16 位数据包发送到 DIN 引脚的串行数据在每个CLK 的上升沿被移入的内部 16 位移位寄存器,然后在 LOAD 的上升沿将数据所存到数字或控制寄存器中。 LOAD 信号必须在第 16 个时钟上升沿同时或之后,南通纺织职业技术学院 基于 AT89S52 单片机的万年历设计 13 但在下一个时钟上升沿之前变高;否则将会丢失数据。 DIN 端的数据通过移位寄存器传送,并在 个时钟周期之后出现在 DOUT 端。 DOUT 端的数据在 CLK的下降沿输出。 串行数据以 16 位为一帧,其中, D11D8 为内部寄存器地址,D7D0 为寄存器数据,格式如表 22 所 示。 表 22 MAX7219 的串行数据格式 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 X X X X 地址 MSN 数据 LSB (3) MAX7219 的内部寄存器 : MAX7219 具有 14 个可寻址 的内部数字和控制寄存器。 8 个数字寄存器由一个片内 8X8 双端口 SRAM 实现,它们可以直接寻址;因此,可以对单个数字进行更新;并且只要 V+超过 2V,数据就可以保留下去。 控制寄存器有 5 个,分别为译码方式、显示亮度、扫描界限(扫描数位的个数)、停机和显示测试。 另外还有一个空操作寄存器( NOOP),在不改变显示或影响任一控制寄存器的条件下器件级联时,它允许数据从 DIN 传到 DOUT。 表 所列为 MAX7219 的内部寄存器及其地址。 表 23 MAX7219 的内部寄存器及其地址 寄存器 地址 D15D12 D11 D10 D9 D8 十六进制代码 NO – OP X 0 0 0 0 X0H 数字 0 X 0 0 0 1 X1H 数字 1 X 0 0 1 0 X2H 数字 2 X 0 0 1 1 X3H 数字 3 X 0 1 0 0 X4H 数字 4 X 0 1 0 1 X5H 数字 5 X 0 1 1 0 X6H 数字 6 X 0 1 1 1 X7H 数字 7 X 1 0 0 0 X8H 译码方式 X 1 0 0 1 X9H 亮度 X 1 0 1 0 XAH 扫描界限 X 1 0 1 1 XBH 停机 X 1 1 0 0 XCH 南通纺织职业技术学院 基于 AT89S52 单片机的万年历设计 14 显示测试 X 1 1 1 1 XFH 下面以表格形式对 MAX7219 内部寄存器中不同数据所表示的含义进行说明。 表 24 为译码方式寄存器中数据的含义。 从表中可 见,寄存器中的每一位与一个数字位相对应,逻辑高电平选择 B 译码,而逻辑低电平则选择旁路译码器。 表 24 译码方式寄存器(地址 = X9H) 含义 D7 D6 D5 D4 D3 D2 D1 D0 十六进制代码 7 – 0 位均不译码 0 0 0 0 0 0 0 0 00H 0 位译成 B 码, 7 – 1 均不译码 0 0 0 0 0 0 0 1 01H 3 – 0 译成 B 码, 7 – 4 均不译 0 0 0 0 1 1 1 1 0FH 7 – 0 位译成 B 码 1 1 1 1 1 1 1 1 FFH MAX7219 可用 V+和 ISET 之间所接外部电阻 Rset 来控制显示亮度。 来自段驱动器的峰值电流通常为进入 ISET 电流的 100 倍。 Rset 既可以为固定电阻,也可以为可变电阻,以提供来自面板的亮度调节,其最小值为。 段电流的数字控制由内部脉宽调制 DAC 控制。 该 DAC 通过亮度寄存器向低 4 位加载,将平均峰值电流按 16 级比例设计,从 Rset设置峰值电流的 31/32 的最大值到 1/32的最小值,如表 25 所列,最大亮度出现在占空比为 31/32 时。 表 25 亮度寄存器(地址 = XAH) 占空比(亮度) D7 D6 D5 D4 D3 D2 D1 D0 十六进制代码 1/32(最小亮度) X X X X 0 0 0 0 X0H 3/32 X X X X 0 0 0 1 X1H 5/32 X X X X 0 0 1 0 X2H 29/32 X X X X 1 1 1 0 XEH 31/32(最大亮度) X X X X 1 1 1 1 XFH 扫描界限寄存器用于设置所显示的数字位,可以为 18。 通常以扫描频率为1300Hz、 8 位数字、多路方式显示。 因为所扫描数字的多少会影响显示亮度,所以要注意调整。 如果扫描界限寄存器被设置为 3 个数字或更少,各数值驱动器将消耗过量的功率。 因此, Rset 电阻的值必须按所显示数字的位数多少适当调整,以限制各个数字驱动器的功耗。 表 26 为扫描界限寄存器中数据的含义。 表 26 扫描界限寄存器(地址 =XBH) 显示数字位 D7 D6 D5 D4 D3 D2 D1 D0 十六进制代码 南通纺织职业技术学院 基于 AT89S52 单片机的万年历设计 15 只显示第 0 位 X X X X X 0 0 0 X0H 显示第 0 位 第 1 位数字 X X X X 0 0 0 1 X1H 显示第 0 位 第 2 位数字 X X X X 0 0 1 0 X2H 显示第 0 位 第 6 位数字 X X X X X 0 1 1 X6H 显示第 0 位 第 7 位数字 X X X X X 1 1 1 X7H 当 MAX7219 处于停机方式时,扫描振荡器停止工作,所有的段电流源被拉到地,而所有的位驱动器被拉到 V+,此时 LED 将不显示。 在数字和控制寄存器中的数据保持不变。 停机方式可用于节省功耗或使 LED 处于闪烁。 MAX7219退出停机方式的时间不到 250uS,在停机方式下显示驱动器还可以进行编程。 停机方式可以被显示测试功能取消。 表 27 为停机寄存器中数据的含义。 表 27 停机寄存器(地址 = XCH) 工作方式 D7 D6 D5 D4 D3 D2 D1 D0 十六进制代码 停机 X X X X X X X 0 X0H 正常 X X X X X X X 1 X1H 显示测试寄存器有两种工作方式:正常和显示测试。 在显示测试方式下 8位数字被扫描,占空比为 31/32。 通常不考虑(但不改变)所有控制寄存器和数据寄存器(包括停机寄存器)内的控制器来接通所有的 LED 显示器。 表 28 为显示测试寄存器中数据的含义。 表 28 显示测试寄存器(地址 = XFH) 工作方式 D7 D6 D5 D4 D3 D2 D1 D0 十六进制代码 停机 X X X X X X X 0 X0H 显示设置 X X X X X X X 1 X1H 数字 07 寄存器受译码器寄存器的控制:译码或不译码。 数据将寄存器可将 BCD 码译成 B 码( 0 、 E、 L、 P),如表 29 所列。 如果不译码,则数字寄存器中数据的 D6D0 为 =位分别对应 7 段 LED 显示器的 AG 段, D7 位对应LED 的小数点 DP。 某一位数据为 1,则点亮与该位对应的 LED 段;数据为 0,则熄灭该段。 表 29 数字 07 寄存器(地址 = X1H – X8H) 7 段 寄存器数据 点亮段 南通纺织职业技术学院 基于 AT89S52 单片机的万年历设计 16 字形 D7 D6D4 D3 D2 D1 D0 DP A B C D E F G 0 X 0 0 0 0 1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。