历史上的今天
返回首页

历史上的今天

今天是:2025年05月29日(星期四)

正在发生

2018年05月29日 | 89C52控制MAX7219驱动数码管

2018-05-29 来源:eefocus

89C52控制MAX7219驱动数码管,提供源码,原理图,焊接实物图等。链接见文末。

驱动效果展示
这里写图片描述

原理图

这里写图片描述

源码

max7219.h

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

* 文  件  名 : MAX7219.H 

* 描      述 : MAX7219驱动包程序 

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

#ifndef _MAX7219_H_

#define _MAX7219_H_


#include

#include


//管脚定义

sbit MAX7219_CS   = P2^6;

sbit MAX7219_MOSI = P2^5;

sbit MAX7219_CLK  = P2^7;


//功能寄存器宏定义

#define DECODEMODE   0X09     //译码控制寄存器地址

#define INTENSITY    0X0A     //亮度控制寄存器地址

#define SCANLIMIT    0X0B     //扫描界限寄存器地址

#define SHUTDOWN     0X0C     //关断模式寄存器地址

#define DISPTEST     0X0F     //测试控制寄存器地址

//函数定义

void MAX7219_WriteByte(unsigned char temp);

void MAX7219_Write(unsigned char addr, unsigned char dat);

void MAX719_Init(void);


#endif


MAX7219.c


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

* 文  件  名 : MAX7219.c 

* 描      述 : MAX7219驱动包程序 


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


#include "max7219.h"


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

** 函数名称: void MAX7219_WriteByte(unsigned char date)

** 功能描述: 向MAX7219写一个字节

** 输   入: unsigned char date 字节内容

** 全局变量: 无

** 调用模块: 无

** 说    明:

** 注    意:

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

void MAX7219_WriteByte(unsigned char date)

{

    unsigned char i,temp;

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

    {   

        MAX7219_CLK = 0;

        temp = date & 0X80;

        date = date<<1;

        if(temp == 0X80)

            MAX7219_MOSI = 1;

        else

            MAX7219_MOSI = 0;

        MAX7219_CLK = 1;    //时钟上升沿把数据送入寄存器锁定   

    }

}

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

** 函数名称: void MAX7219_Write(unsigned char addr, unsigned char dat)

** 功能描述: 向MAX7219写指令

** 输   入: unsigned char addr  地址 

             unsigned char dat   数据

** 全局变量: 无

** 调用模块: 无

** 说    明:

** 注    意:

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

void MAX7219_Write(unsigned char addr, unsigned char dat)

{

     MAX7219_CS = 0;   //寄存器打开,等待数据的送入

     _nop_();

     MAX7219_WriteByte(addr);  //选择寄存器地址

     _nop_();

     MAX7219_WriteByte(dat);   //选择让芯片执行什么命令

     _nop_();

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

}


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

** 函数名称: void MAX7219_Init(void)  

** 功能描述: MAX7219初始化

** 输   入: 无

** 全局变量: 无

** 调用模块: 无

** 说    明:

** 注    意:

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

void MAX7219_Init(void)      

    MAX7219_Write(SHUTDOWN, 0x01);   //关断模式寄存器;关断状态,最低位D0=0;正常状态,最低位D0=1

    MAX7219_Write(DISPTEST, 0x00);   //显示测试寄存器;测试状态,最低位D0=1,各位显示全亮;正常工作状态,最低位D0=1

    MAX7219_Write(DECODEMODE, 0xff); //译码控制寄存器;0XFF,全译码

    MAX7219_Write(SCANLIMIT, 0x07);  //扫描界限寄存器;设置显示的LED的个数(1~8),如设置为0xX4时,LED 0~5显示

    MAX7219_Write(INTENSITY, 0x08);  //亮度控制寄存器;共有16级可选择,用于设置LED的显示亮度,0X00-0X0F

}


推荐阅读

史海拾趣

智浦欣(Chipstar)公司的发展小趣事

为了进一步提升公司的技术实力和品牌影响力,智浦欣公司积极寻求与国际知名企业的合作机会。经过多次沟通和洽谈,公司成功与一家国际知名半导体企业达成了战略合作协议。双方将在技术研发、产品推广和市场开拓等方面展开深度合作。通过这一合作,智浦欣公司不仅获得了宝贵的技术支持和市场资源,还进一步提升了其品牌形象和市场份额。

EPC公司的发展小趣事

某EPC公司始终将品质放在首位,建立了完善的质量管理体系和严格的质量控制标准。公司注重从源头上控制产品质量,通过严格筛选原材料、加强生产过程监控和检测等措施,确保产品的稳定性和可靠性。同时,公司积极响应客户需求和反馈,不断改进产品和服务质量,赢得了客户的广泛赞誉和信赖。凭借卓越的品质和口碑效应,公司逐渐在电子行业中树立了良好的品牌形象。

GarrettCom公司的发展小趣事

转折:2006年,GarrettCom迎来了一个重要的转折点——收购变电站网络产品领导者DYMEC公司。这一收购不仅增强了GarrettCom在变电站自动化领域的实力,还为其带来了更多的技术资源和市场份额。

影响:通过整合DYMEC的技术和产品,GarrettCom进一步巩固了其在变电站网络通信技术方面的领先地位。公司的产品和解决方案被广泛应用于全球各地的变电站项目中,为电力系统的稳定运行提供了坚实的通信保障。

AOS公司的发展小趣事

随着技术的不断发展和市场的扩大,AOS公司开始积极寻求全球扩张的机会。1998年,AOS在南京独资成立了中国总部,开始了其在中国的深耕之旅。通过多年的努力,AOS在中国建立了完善的产研基地和销售网络,其产品横跨家用和商用两大领域,赢得了广大消费者的信任和喜爱。如今,AOS已成为中国市场上备受推崇的热水设备品牌之一。

HTSEMI( Jin Yu Semiconductor )公司的发展小趣事

为了加速国际化进程,金宇半导体于2020年制定了详细的国际化战略。公司首先在欧洲设立了研发中心,以吸引更多国际顶尖人才加入。随后,金宇半导体又通过一系列并购整合动作,收购了多家在特定领域具有领先技术的海外企业。这些并购不仅增强了金宇半导体的技术实力和市场影响力,还为其在全球范围内的业务拓展提供了有力支持。通过国际化战略的实施,金宇半导体正逐步成为一家具有全球竞争力的半导体企业。

Equator Technologies公司的发展小趣事

随着智能手机市场的迅速崛起,Equator敏锐地捕捉到了这一市场机会。从XX年代后期开始,公司逐渐将业务重心转向手机图像处理领域。通过与手机厂商的合作,Equator成功地将其先进的视频处理技术应用于智能手机中,显著提升了手机的显示效果和用户体验。这一转型不仅为Equator带来了丰厚的回报,也进一步巩固了其在电子行业的地位。

问答坊 | AI 解惑

逆变电源中SPWM波死区的编写方法

本帖最后由 paulhyde 于 2014-9-15 03:30 编辑 大家知道,在逆变桥路中需要给每个半桥中的两个MOS管的G极加上同频反相的两个spwm波,但实际上需要加上一定量的死区,即防止其同时翻转,而是预留一段同时关断的时间,这样有效防止了竞争冒险的状态 ...…

查看全部问答>

2812中文手册(清华版).doc

TMS320C2000系列是美国TI公司推出的最佳测控应用的定点DSP芯片,其主流产品分为四个系列:C20x、C24x、C27x和C28x。C20x可用于通信设备、数字相机、嵌入式家电设备等;C24x主要用于数字马达控制、电机控制、工业自动化、电力转换系统等。近年来,TI ...…

查看全部问答>

这里有没搞掌微A4的人?那里可以下到SIRF Atlas 4 的数据手册什么的。

这里有没搞掌微A4的人?那里可以下到SIRF Atlas 4 的数据手册什么的。…

查看全部问答>

关于arm9的cache清空问题

arm手册中只有一句汇编MRC p15,0,Rd,c7,c7,0 我的程序是用C++写的,我用了_asm{MRC p15,0,Rd,c7,c7,0}后 便宜提示p15没定义,我想在我的应用程序里清空cache,具体怎么做啊…

查看全部问答>

ARM支持mmx加速吗

在CE6下为ARM11做了个东西,感觉速度不行,想做一下MMX加速,请问ARM支持MMX吗?…

查看全部问答>

关于Tcpmp的播放,谁能给点建议

最近在官方网站(http://www.hpcfactor.com/downloads/tcpmp/)下了个0.72版本的Tcpmp源码,吓了一大跳,好庞大的工程,我的开发板是arm的,WinCE5.0平台,公司灌的是5.0的SDK,CPU只支持armv4i,怎么编译都通过不了,阅遍国内外所有的相关的论坛,都 ...…

查看全部问答>

请求一个输出40v,10w直流稳压电源的设计方案!!万分感谢!急!!!

请求一个输出40v,10w直流稳压电源的设计方案!!万分感谢!急!!!…

查看全部问答>

如果输入正弦波,那么输出也是正弦波。?

现在MSP430F149开发板一套,利尔达USB仿真器一套,现在完成boss要求啊! 要求如下:完成AD转换部分,用msp430f149,进行调制,再用msp430f1611进行解调,如果输入正弦波,那就输出就是正弦波,输入是方波,那就输出也是方波。用iar开发软件, 求解 ...…

查看全部问答>

多核DSP新课程上线,好课程,火速学!

    EEWORLD大学堂上线了两门新的DSP课程:《多核DSP软件开发套件》、《多核DSP设计》     为了加速客户对Keystone DSP的开发使用,TI提供了相关的软件集成开发环境CCS,及硬件评估板EVM;并免费提供一套综合的多核软件开发包 ...…

查看全部问答>

TMS570ls20216套件怎么学啊,急求!!!!1

刚刚接触TMS570ls20216,拿到TMDX570LS20SMDK,看的一头雾水啊,感觉完全找不到入门的路啊,有哪位大神可怜可怜,指点一下入门捷径啊。。。。 PS:我有师哥说,让先用Halcogen生成代码,在一点点分析,问题是连软件我都有点搞不动!!…

查看全部问答>