max7219驱动4个数码管连接图-皇冠最新app版本

×
嵌入式 > 技术百科 > 详情

max7219驱动4个数码管连接图

发布时间:2024-10-16 发布时间:
|

max7219是maxim公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片max7219可驱动8个7段(包括小数点共8段)数字led、led条线图形显示器、或64个分立的led发光二级管。该芯片具有10mhz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有led的段电流。它的操作很简单,mcu只需通过模拟spi三线接口就可以将相关的指令写入max7219的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。此外它还支持多片7219串联方式,这样mcu就可以通过3根线(即串行数据线、串行时钟线和芯片选通线)控制更多的数码管显示。


2、max7219功能介绍


1.多种译码方式和译码位


2.支持多片7219串联


3.支持亮度调节


4.支持扫描范围


引脚功能:


din:串行数据输入端


dout:串行数据输出端,用于级连扩展


load:装载数据输入


clk:串行时钟输入


dig0~dig7:8位led位选线,从共阴极led中吸入电流


sega~seggdp7段驱动和小数点驱动


iset:通过一个10k电阻和vcc相连,设置段电流


max7219驱动8个数码管源程序:


#define addr_digit1 0x02


#define addr_digit2 0x03


#define addr_digit3 0x04


#define addr_digit4 0x05


#define addr_digit5 0x06


#define addr_digit6 0x07


#define addr_digit7 0x08


#define addr_decode_mode 0x09 //译码模式寄存器地址


#define addr_intensity 0x0a //亮度控制寄存器地址(max7221)


#define addr_scan_limit 0x0b //扫描控制寄存器地址


#define addr_shutdowm 0x0c //掉电模式寄存器地址


#define addr_display_test 0x0f //显示检测寄存器地址


sbit max7219_din=p1^5;


sbit max7219_load=p1^6;


sbit max7219_clk=p1^7;


uchar code max7219_7led_code[18]={0x7e,0x30,0x6d,0x79, //0-1-2-3


0x33,0x5b,0x5f,0x70, //4-5-6-7


0x7f,0x7b,0x01,0x4e, //8-9-“-”-e


0x37,0x0e,0x67,0x00}; //h-l-p-空白


void wr_max7219(uchar addr,uchar dat)


{


uchar i;


max7219_load=0;


max7219_clk=0;


for(i=0;i《8;i )


{


max7219_din = (bit)(addr&0x80);


addr=addr《《1;


max7219_clk=1;


max7219_clk=0;


}


for(i=0;i《8;i )


{


max7219_din=(bit)(dat&0x80);


dat=dat《《1;


max7219_clk=1;


max7219_clk=0;


}


max7219_load=1;


max7219_load=0;


}


main()


{


uchar j;


for(j=200;j》0;j--);


wr_max7219(addr_shutdowm,0x01);


wr_max7219(addr_scan_limit,0x07);


wr_max7219(addr_intensity,0x0f);


wr_max7219(addr_decode_mode,0x00);


wr_max7219(addr_digit0,max7219_7led_code[1]);


wr_max7219(addr_digit1,max7219_7led_code[2]);


wr_max7219(addr_digit2,max7219_7led_code[3]);


wr_max7219(addr_digit3,max7219_7led_code[4]);


wr_max7219(addr_digit4,max7219_7led_code[5]);


wr_max7219(addr_digit5,max7219_7led_code[6]);


wr_max7219(addr_digit6,max7219_7led_code[7]);


wr_max7219(addr_digit7,max7219_7led_code[8]);


p0=0x00;


// wr_max7219(addr_display_test,0x01); //测试


while(1);


}

 


『本文转载自网络,皇冠最新app版本的版权归原作者所有,如有侵权请联系删除』

网站地图