微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > max7219的显示程序

max7219的显示程序

时间:11-18 来源:互联网 点击:
#include

#include
#define uchar unsigned char
sbit DIN=P2^0;
sbit CLK=P2^1;
sbit LOAD=P2^2;
uchar a,b,c,d,e,f,g,h;
////////*******************************************///////////////
void send(uchar add,uchar dat); //发送16字节子函数
void intcom();
void delay(void);
void time(void);
///********************************/////////////////

void send(uchar add,uchar dat) //发送16字节子函数
{
uchar ADS, i;
uchar j;
LOAD=0; i=0; //使能信号低电平有效
while(i<16)
{
if(i<8){ADS=add;}
else {ADS=dat;}
for(j=8;j>=1;j--)
{
DIN=ADS&0x80;
ADS=ADS<1;
CLK=1;
CLK=0;
}
i=i+8;
}
LOAD=1;
}
//***************************以下为初使化函数**********************************/////
void intcom()
{
send(0x0c,0x01); ////初始化MAX7219
send(0x0b,0x07); //扫描LED的个数
send(0x0a,0x09); //控制亮度也可以硬件来控制D3~D0
send(0x09,0xff); //对每一个位进行选择1:BCD码,0:直接显示
}

//////************延时函数**********************///////////////
void delay(void)
{uchar i,j;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
;
}
///////////////////////***********************************************/////////
void time(void)
{

send(0x01,a); //在八个数码管上显示1-8,带小数点显示
send(0x02,b); //例如:0x82,8为小数点,2为显示的数
send(0x03,c);
send(0x04,d);
send(0x05,e);
send(0x06,f);
send(0x07,g);
send(0x08,h);

}
/***************以下为主函数*********************///////////////
void main()
{intcom();//初使化
for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
for(d=0;d<10;d++)
for(e=0;e<10;e++)
for(f=0;f<10;f++)
for(g=0;g<10;g++)
for(h=0;h<10;h++)
{time();
delay();
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top