MAX7219共阴极LED驱动器程序.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

MAX7219共阴极LED驱动器程序

DOUT:串行数据输出端,用于芯片的级联

ISET:硬件亮度调整端,在该引脚与VCC之间跨接一个电阻,LED的亮度即可通过该电阻来调节,流过LED的段驱动平均电流为流过此电阻电流的100倍,此电阻值范围为:10~80K之间。

内部寄存器说明

译码方式选择寄存器地址:09H

赋值:FFH表示使用MAX7219内部的BCD译码器

00H表示不使用MAX7219内部的BCD译码器

亮度调节寄存器地址:0AH

赋值:00H~0FH可改变MAX7219所驱动的LED的亮度,其变化范围在1/32~31/32之间

扫描位数设定寄存器地址:0BH

赋值:00H所有位不显示

01H~07H依次对应于1~8位及前面位全部显示(即需显示的位应为“1”

待机模式开关寄存器地址:0CH

赋值:00HLED全灭

01HLED正常显示

显示器测试寄存器地址:0FH

赋值:00HLED为正常显示状态

01HLED测试状态,即LED全亮

8位LED显示数据寄存器地址:01H~08H

对这些寄存器赋值(即需显示的内容),就会在对应的1~8位LED数码管上显示出来

使用注意事项

由于电源中杂波或附近的电磁等干扰信号,使MAX7219在上电后不显示或乱显示;为了消除这种现象

应在MAX7219的VCC端与地之间接一只104pf的瓷片电容,在LOAD端于地之间接一只10K的电阻。最号还在电源与MAX7219的VCC端之间串一只去高频的电感。

而在电源方面,最好使用变压器供电,而不要用开关电源供电。

加在DIN引脚上的串行数据必须在LOAD脚为低电平时,以每2字节一次,在SCK脚信号的每个上升沿移入1位数据,且高位在前低位在后,然后在LOAD信号的上升沿MAX7219所存数据。

LED数码管引脚图如下:

显示段码表如下:

D7

D6

D5

D4

D3

D2

D1

D0

十六进制值

显示内容

dp

a

b

c

d

e

f

g

0

1

1

1

1

1

1

0

0x7e

0

0

0

1

1

0

0

0

0

0x30

1

0

1

1

0

1

1

0

1

0x6d

2

0

1

0

0

1

1

1

1

0x4f

E

0

1

0

0

0

1

1

1

0x47

F

需要显示的段应为“1”,不显示的则为“0”

原理图如下:

C源程序如下:

#includereg51.h

sbitCLK=P1^7;//MAX7219时钟信号线

sbitLD=P1^6;//数据加载线

sbitDIN=P1^5;//数据输入线

unsignedcharcodedisp_table[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,

0x77,0x1f,0x4e,0x3d,0x01,0x00};//非译码方式时的共阴数码管显示编码,0~9,E,o,r,d,-,息灭

voidw_max7219(unsignedcharaddr,unsignedcharwdata);//向MAX7219写数据函数声明

voidinit_max7219();//MAX7219初始化函数声明

voidtimer_ms(unsignedchartim);//毫秒级延时函数声明

/******************************************************************************************

函数名称:main

函数说明:主函数

入口参数:

出口参数:

其它:

******************************************************************************************/

main()

{

init_max7219();//MAX7219初始化函数

w_max7219(0x01,disp_table[1]);//向MAX7219第一位寄存器写显示数据1

w_max7219(0x02,disp_table[2]);//向MAX7219第二位寄存器写显示数据2

w_max7219(0x03,disp_table[3]);//向MAX7219第三位寄存器写显示数据3

w_max7219(0x04,disp_table[4]);//向MAX7219第四位寄存器写显示数据4

w_max7219(0x05,disp_table[5]);//向MAX7219第五位寄存器写显示数据5

w_max72

文档评论(0)

175****4659 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档