max7219c语言,51单片机+MAX7219数码管显示C程序

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

*程序名称:  MAX7219 C语言控制程序

*程序功能: 3线串行控制8位共阴数码管

*3线定义:DIN 串行数据输入

*                 LOAD  数据锁存

*                 CLK   时钟输入

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

#include #include sbit pinDIN=P0^0;                        //串行数据输入端

sbit pinLOAD=P0^1;                        //数据锁存端

sbit pinCLK=P0^2;                        //时钟输入端

#define uchar unsigned char

uchar code LEDcode[]=

{0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00     /*0,1,2,3,4,5,6,7,8,9,全灭*/

/* 0x77,0x1f,0x4e,0x3d,0x4f,0x47,0x67,0x3e,0xff, */  };    /*A,B,C,D,E,F,P,U,全亮*/

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

*         向MAX7219写入字节(8位)函数                      *

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

void sendbyte (uchar dat)

{

uchar i,temp;

_nop_();

for (i=0;i<8;i++)

{

temp=dat&0x80;

dat=dat<<1;

if(temp)

pinDIN=1;

else

pinDIN=0;

pinCLK=0;

_nop_();

pinCLK=1;

}

}

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

*        向MAX7219写入地址和控制字(16位)                  *

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

void sendword (uchar addr,uchar dat)

{

pinLOAD=0;

_nop_();

sendbyte (addr);

_nop_();

sendbyte (dat);

_nop_();

pinLOAD=1; //第16个上升沿之后,第17个上升沿之前必须把pinCLK置高,否则数据丢失

}

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

*                MAX7219初始化                                          *

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

void init7219 (void)

{

sendword (0x0c,0x01);     /*  设置电源工作模式      */

sendword (0x0a,0x09);     /*   设置亮度  19/32      */

sendword (0x0b,0x03);     /*  设置扫描界限          */

sendword (0x09,0x00);     /*   设置译码模式         */

sendword (0x0f,0x00);     /*显示测试 00为正常工作状态*/

}

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

*                MAX7219清除显示                                  *

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

void clear7219(void)

{

uchar i;

for(i=8;i>0;i--)

{

sendword(i,0x00);

}

}

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

*                MAX7219主函数                                          *

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

/*void main(void)

{

init7219 ();

//clear7219();

while(1)

{

clear7219();

sendword(0x01,LEDcode[11]);

sendword(0x02,LEDcode[12]|0x80);

sendword(0x03,LEDcode[13]);

sendword(0x04,LEDcode[4]);

sendword(0x05,LEDcode[5]);

sendword(0x06,LEDcode[6]);

sendword(0x07,LEDcode[7]);

sendword(0x08,LEDcode[8]);

}

}*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值