51单片机点阵模块的使用方法

显示忆

#include<reg52.h>

#define uint unsigned int

#define uchar unsigned char      

sbit CLK = P2^5;//点阵模块的CLK

sbit CS  = P1^1;//点阵模块的CS

sbit DIN = P1^0;//点阵模块的DIN

uchar code yi[8]={0x5E,0x62,0xE4,0x48,0x48,0x50,0x51,0x5E};//忆

void xieyiwei(uchar x)

{

       uchar m;

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

       {

              CLK=0;

              DIN=x&0x80;

              x=x<<1;

              CLK=1;

       }

}

void xieshuju(uchar dizhi,uchar shuju)

{

       CS=0;

       xieyiwei(dizhi);

       xieyiwei(shuju);

       CS=1;    

}

void chushihua() //向MAX7219中写入初始化值

{

       xieshuju(0x09, 0x00);       //译码方式:BCD码

      xieshuju(0x0a, 0x03);       //亮度

      xieshuju(0x0b, 0x07);       //扫描界限;8个数码管显示

      xieshuju(0x0c, 0x01);       //掉电模式:0,普通模式:1

      xieshuju(0x0f, 0x00);       //显示

}

void main()

{

       uchar i;

    chushihua();

    while(1)

    {

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

              {

                 xieshuju(i+1,yi[i]);

              }

    }       

}

滚屏显示忆

#include <reg52.h> //忆字滚屏效果

#include <intrins.h>

#define uchar unsigned char

#define uint  unsigned int

//定义Max7219端口

sbit Max7219_pinCLK = P2^5;//CLK

sbit Max7219_pinCS  = P1^1;//CS

sbit Max7219_pinDIN = P1^0;//DIN

uchar code yi[8]=

{0x5E,0x62,0xE4,0x48,0x48,0x50,0x51,0x5E};//忆

uchar code hui[8]={0xFE,0x82,0xBA,0xAA,0xBA,0x82,0xFE,0x82};//回

void Delay_xms(uint x)

{

 uint i,j;

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

  for(j=0;j<112;j++);

}

//--------------------------------------------

//功能:向MAX7219(U3)写入字节

//入口参数:DATA

//出口参数:无

//说明:

void Write_Max7219_byte(uchar DATA)        

{

           uchar i;   

              Max7219_pinCS=0;            

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

          {          

            Max7219_pinCLK=0;

            Max7219_pinDIN=DATA&0x80;

            DATA=DATA<<1;

            Max7219_pinCLK=1;

           }                                

}

//-------------------------------------------

//功能:向MAX7219写入数据

//入口参数:address、dat

//出口参数:无

//说明:

void Write_Max7219(uchar address,uchar dat)

{

     Max7219_pinCS=0;

        Write_Max7219_byte(address);           //写入地址,即数码管编号

     Write_Max7219_byte(dat);               //写入数据,即数码管显示数字

        Max7219_pinCS=1;                       

}

void Init_MAX7219(void)

{

 Write_Max7219(0x09, 0x00);       //译码方式:BCD码

 Write_Max7219(0x0a, 0x03);       //亮度

 Write_Max7219(0x0b, 0x07);       //扫描界限;8个数码管显示

 Write_Max7219(0x0c, 0x01);       //掉电模式:0,普通模式:1

 Write_Max7219(0x0f, 0x00);       //显示测试:1;测试结束,正常显示:0

}

void main(void)

{

      uchar i=0;

       uchar j;

      Delay_xms(50);

      Init_MAX7219();

       while(1)

       { 

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

              {

                     for(j=1;j<9;j++)

                     {

                            Write_Max7219(j,_cror_(yi[j-1],i));

                     }

                     Delay_xms(100);

              }

      

       }

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值