MAX7219基本驱动程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MAX7219基本驱动程序

2015.07.26

Q群:沈阳理工大学电子爱好者

Note:

仅仅是基本驱动程序,那你可以根据自己的需要去修改

本程序验证单片机型号:STC15W系列单片机

编译软件:Keil3

编程语言:C

程序组成文件:STC15W.H MAX7219.H MAX7219.C

STC15W.H:把宏晶STC官网烧录软件的15系列头文件更名为STC15W

MAX7219.H:

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

文件名称:MAX7219.H

功能:MAX7219的驱动四位数码管的函数

修改时间:2015.06.28

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

#ifndef_MAX7219_H_

#define_MAX7219_H_

#include"STC15W.H"

#include"intrins.h"

//这里的有关单片机的头文件用户可以改成自己的名字

#define MAX7219_DIN P10//数据输入,CLK上升沿时数据读入

#define MAX7219_CLK P11//时钟信号输入端

#define MAX7219_LOAD P12//锁定最近的16位数据为有效数据并载入

//用户可以根据自己的需求改变引脚

//一条指令的传输:LOAD低-数据-CLK上升沿-数据-CLK上升沿。。。LOAD上升沿数据载入

#define LOW0

#define HIGH1

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

static void MAX7219_WOnebyte(unsigned char x,unsigned char y); //向MAX7219的X地址写入参数Y

void MAX7219_Init(unsigned char seg_limit);

//MAX7219功能初始化

void MAX7219_WData(unsigned long seg_data);

//向MAX7219写入需要显示的数据

#endif

MAX7219.H:

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

文件名称:MAX7219.C

功能:MAX7219的驱动四位数码管的函数

修改时间:2015.06.28

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

#include"MAX7219.H"

unsigned char max7219_segnum=0;

//这个参数用来表示当前数码管一共显示几位(1~8)

enum MAX7219_ADD

{

MAX7219_ADD_Nop=0x50,

MAX7219_ADD_Digit0,

MAX7219_ADD_Digit1,

MAX7219_ADD_Digit2,

MAX7219_ADD_Digit3,

MAX7219_ADD_Digit4,

MAX7219_ADD_Digit5,

MAX7219_ADD_Digit6,

MAX7219_ADD_Digit7,

MAX7219_ADD_Mode,

MAX7219_ADD_Intensity,

MAX7219_ADD_ScanLimit,

MAX7219_ADD_ShutDown,

MAX7219_ADD_Nouse1,

MAX7219_ADD_Nouse2,

MAX7219_ADD_DisplayTest,

};

//这个枚举类型MAX7219_ADD表示MAX7219的寄存器地址/***************************************************

函数名称:MAX7219_WOnebyte

功能:向MAX7219的X地址写入参数Y

输入:X:地址

Y:数据

输出:无

作用范围:局部MAX7219.C

***************************************************/ static void MAX7219_WOnebyte(unsigned char x,unsigned char y) {

unsigned char i,z=0;

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

{

z=(x<

if(z&0x80)MAX7219_DIN=HIGH;

else MAX7219_DIN=LOW;

_nop_();_nop_();

MAX7219_CLK=HIGH;

_nop_();_nop_();

MAX7219_CLK=LOW;

}

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

{

z=(y<

if(z&0x80)MAX7219_DIN=HIGH;

else MAX7219_DIN=LOW;

_nop_();_nop_();

MAX7219_CLK=HIGH;

_nop_();_nop_();

MAX7219_CLK=LOW;

相关文档
最新文档