89C52控制MAX7219驱动数码管

发布者:SparklingStar最新更新时间:2018-05-29 来源: eefocus关键字:89C52控制  MAX7219  驱动数码管 手机看文章 扫描二维码
随时随地手机看文章

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

}


关键字:89C52控制  MAX7219  驱动数码管 引用地址:89C52控制MAX7219驱动数码管

上一篇:用51模拟I2C从机程序
下一篇:51中断优先级及中断嵌套

推荐阅读最新更新时间:2024-03-16 16:03

片机驱动LED数码管显示方式
针对多关节工业机械手的比例和开关控制,以PLC作为其控制器,通过无线数传模块进行数据传输,实现远程无线遥控操作。 手持操作器采用16位单片机,对检测到的按钮和摇杆操作进行数据编码后通过无线的方式发送至PLC,PLC对其解码后获得指令实现对机械手各关节运动的控制。该方案成本低,具有良好的通用性和可扩展性。 前言 可编程序逻辑控制器(ProgrammableLogicController,PLC)是一种适用性强的工业用控制器,广泛应用于各类工业生产线,移动机械设备的控制等环境较恶劣的工业场合。其工作性能稳定,可扩展性强,应用简便。根据不同的模块配置,可以进行逻辑及算数运算,对数字开关量、模拟量等进行控制和采集,同时具有丰富的总线
[电源管理]
avr单片机驱动max7219的程序
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int //定义输出io口 #define Y1_OUT DDRC|=BIT(5); #define Y1_H PORTC|=BIT(5); #define Y1_L PORTC&=~BIT(5); #define Y2_OUT DDRD|=BIT(6); #define Y2_H PORTD|=BIT(6); #define Y2_L PORTD&=~BIT(6); #define Y3_OUT DDRD|=BIT(7); #define Y3_H
[单片机]
573锁存器驱动8段数码管
#include reg51.h #define SEG P2 sbit P1_0 = P1^0; sbit P1_1 = P1^1; sbit P1_2 = P1^2; sbit P1_3 = P1^3; sbit P1_4 = P1^4; unsigned char code tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x3c,0x07,0x7f,0x37}; //共阴极 void delay(int x); void main() { while(1) //2015 { P1_0 =0; //573 低电平使能 SEG =tab ; /
[单片机]
573锁存器<font color='red'>驱动</font>8段<font color='red'>数码管</font>
51单片机教程(五):单片机动态扫描驱动数码管
简介:上一讲介绍了单片机外接键盘的原理,并给出了应用实例。本讲将介绍单片机动态驱动段式数码管。通过该讲,读者可以掌握段式数码管的工作原理和如何通过动态驱动的方法设计电路以及程序。 一、本文内容提要 上一讲介绍了单片机外接键盘的原理,并给出了应用实例。本讲将介绍单片机动态驱动段式数码管。通过该讲,读者可以掌握段式数码管的工作原理和如何通过动态驱动的方法设计电路以及程序。 二、原理简介 常用的段式数码管有七段式和八段式,八段比七段多了一个小数点,其他的基本相同。所谓的几段就是指数码管里有相应的几个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出不同的字形(见图1(a))。从各发光二极管的电极连接方式又可以分为共阳极和
[单片机]
51单片机教程(五):单片机动态扫描<font color='red'>驱动</font><font color='red'>数码管</font>
6位8段数码管动态驱动电路原理图及Keil C51驱动程序
/* 6位数码管演示程序: 显示数码从0---99循环,按 P3.2 按键,显示从 0 开始*/ #i nclude reg52.h int count1s; unsigned int count1m; unsigned char dis_bitcount=0; unsigned char display_o ; unsigned char display_q ; unsigned char code SEG ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; unsigned char dis_bitdriver=0; void del
[单片机]
AT89C51串并转换驱动数码管实验指导
  器件:74hc595.   引脚说明:   SDA:数据输入口。   SH_CP:数据输入控制端,在每个   SH_CP的上升沿, SDA口上的数据移入寄存器, 在 SH_CP的第 9个上升沿, 数据开始从 QS   移出。   ST_CP:数据置入锁存器控制端。   Q0~Q7:数据并行输出端。     数据从SDA 口送入 74HC595 , 在每个 SH_CP的上升沿, SDA口上的数据移入寄存器, 在 SH_CP的第   9个上升沿, 数据开始从 QS 移出。如果把第一个74HC595的QS和第二个74HC595 的 SDA 相接, 数据即移入第二个74HC595中,   照此一个一个接下去, 可接
[单片机]
AT89C51串并转换<font color='red'>驱动</font><font color='red'>数码管</font>实验指导
51单片机利用74HC595驱动数码管
基于51单片机利用八个数码管花样显示如下: xxx11xxx→xx2222xx→x333333x→44444444→x555555x→xx6666xx→x777777x→88888888 每个状态各一秒,显示反复循环,其中x表示对应的数码管熄灭 问题补充:是共阳极的数码管,利用595芯片驱动的。采用C语言。 =================================================== 最佳答案:程序设计完毕,采用PROTEUS仿真截图如下。 程序如下: //============================================= #include reg52.h #define u
[单片机]
51单片机利用74HC595<font color='red'>驱动</font><font color='red'>数码管</font>
表白神器 MAX7219点阵驱动程序
MAX7219驱动点阵的原理图如下: 单片机+MAX7219点阵源程序如下: #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int //定义Max7219端口 sbit Max7219_pinCLK = P2^2; sbit Max7219_pinCS = P2^1; sbit Max7219_pinDIN = P2^0; uchar code disp1 ={ {0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0 {0x10,0x18,0x14,0x10,0x
[单片机]
表白神器 <font color='red'>MAX7219</font>点阵<font color='red'>驱动</font>程序
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved