max7219的显示程序
#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();
}
}
max7219显示程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)