MAX7219多片级联驱动点阵单片机程序编写经历

发布者:CrystalClear最新更新时间:2020-12-23 来源: 51hei关键字:MAX7219  单片机 手机看文章 扫描二维码
随时随地手机看文章

main.c

#include

#include "intrins.h"

#include "Max7219.h"


uchar code laji[][8]={

{0x18,0x24,0x42,0x42,0x7E,0x42,0x42,0x42},//A

{0x7C,0x42,0x42,0x7C,0x42,0x42,0x42,0x7C},//B

{0x3C,0x42,0x40,0x40,0x40,0x40,0x42,0x7C},//C

{0x7C,0x42,0x42,0x42,0x42,0x42,0x42,0x7C},//D

};

/*n毫秒的延时程序*/

/*void Delay_xms(uint x)

{

  uint i,j;

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

}*/

void main()

{

  uchar i,j;

  //Delay_xms(50);

  MAX7219Init();  

  while(1)

  {

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

    {

      for(i=0;i      {

        Max7219WR(j+1,laji[i][j]);

            }

      CS=1; _nop_(); CS=0;

                        //Delay_xms(100);

    }  

  }

}



Max7219.h

#ifndef _Max7219_H_

#define _Max7219_H_


#define uchar unsigned char

#define uint  unsigned int

#define number  4 //点阵级联个数

#define lum     5 //亮度级别,0-F,共16级


//定义Max7219端口

sbit CLK = P2^2;  //时钟 Max7219_pin

sbit CS  = P2^1;  //锁存

sbit DIN = P2^0;  //数据


//向MAX7219 写入地址和数据

void Max7219WR(uchar addr,uchar dat)

{

  uchar n=8;

        CLK=0;

        CS=0;   //CS=0有效,CS=1锁存

        /*发送数据 高位先发*/

        while(n--)

        {

          DIN = addr & 0x80;

                CLK=1;

                addr <<= 1;

                CLK=0;

        }

        n=8;

        /*发送数据 高位先发*/

        while(n--)

        {

          DIN = dat & 0x80;

                CLK=1;

                dat <<= 1;

                CLK=0;

        }

}

void MAX7219Init()

{

  uchar i,j;

        for(i=0;i<5;i++)  //

        {

          for(j=number;j>0;j--)

                switch(i)

                {

                  case 0:Max7219WR(0x09, 0x00); break; //译码方式:BCD码 不译码

                        case 1:Max7219WR(0x0A, lum);  break; //亮度 0-15 共16级

                        case 2:Max7219WR(0x0B, 0x07); break; //扫描界限;8位显示

                        case 3:Max7219WR(0x0C, 0x01); break; //掉电模式:0,普通模式:1

                        case 4:Max7219WR(0x0F, 0x00); break; //显示测试:1;测试结束,正常显示:0

                }

                CS=1; _nop_(); CS=0; //每写入四次给一个锁存脉冲

        }

}

#endif


关键字:MAX7219  单片机 引用地址:MAX7219多片级联驱动点阵单片机程序编写经历

上一篇:单片机电子密码锁程序设计(汇编语言)显示*号
下一篇:51单片机超声波测距报警系统

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved