查看: 1561|回复: 0
打印 上一主题 下一主题

038、MAX7221数码管动态显示

[复制链接]
跳转到指定楼层
沙发
发表于 2015-4-20 16:29:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

/
#include <reg52.h>
#include <intrins.h>
sbit Max7221CS  = P3^1;
sbit Max7221DIN = P3^0;
sbit Max7221CLK = P3^2;

unsigned char DisplayBuffer[8]={0,1,2,3,4,5,6,7};//显示数值
/********************************************************************
                           7221应用函数开始
*********************************************************************/
void WriteMax7221(unsigned char Address,unsigned char Data)
{
        unsigned char i;
        Max7221CS = 0;
        for (i=0;i<8;i++)
        {
                Max7221CLK = 0;
                Max7221DIN = (Address&(0x80>>i)) ? 1:0;
                _nop_();
                _nop_();
                Max7221CLK = 1;
                _nop_();
                _nop_();
        }
        for (i=0;i<8;i++)
        {
                Max7221CLK = 0;
                Max7221DIN = (Data&(0x80>>i)) ? 1:0;
                _nop_();
                _nop_();
                Max7221CLK = 1;
                _nop_();
                _nop_();
        }
        Max7221CS = 1;       
}

void InitialMax7221(void)
{
        WriteMax7221(0x0A,0x07);        //亮度地址0AH,0x00~0x0F,0x0F最亮
        WriteMax7221(0x0B,0x07);        //扫描LED个数地址0BH,0x00~0x07,最多扫描8个数码管
        WriteMax7221(0x0C,0x01);        //工作模式地址0x0C. 0x00:ShutDown;0x01:Normal
        WriteMax7221(0x09,0xFF);        //编码模式地址0x09. 0x00~0xFF:哪一位为1,哪一位就支持编码
}

void Max7221Display(unsigned char *buffer)
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                WriteMax7221(i+1,*(buffer+i));
        }
}
/********************************************************************
                           7221应用函数结束
*********************************************************************/
/********************************************************************
                             主函数
*********************************************************************/
main()
{
        InitialMax7221();
        Max7221Display(&DisplayBuffer[0]);
        while(1);       
}



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入中科因仑

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表