ATmega16控制MAX7219驱动数码管

发布者:幸福如意最新更新时间:2018-05-29 来源: eefocus关键字:ATmega16  MAX7219  驱动数码管 手机看文章 扫描二维码
随时随地手机看文章

ATmega16控制MAX7219驱动数码管,提供源码,原理图,焊接实物图等。链接见文末。 
这里写图片描述

这里写图片描述

原理图

这里写图片描述

源码

MAX7219.H

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

* 文  件  名 : MAX7219.H 

* 描      述 : MAX7219驱动包程序 

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

#ifndef _MAX7219_H_

#define _MAX7219_H_


#include

#include


//功能寄存器宏定义

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

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

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

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

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

//外部可调用函数定义

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

void MAX719_Init(void);


#endif



MAX7219.C


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

* 文  件  名 : MAX7219.c 

* 描      述 : MAX7219驱动包程序 

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


#include "max7219.h"


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

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

** 功能描述: SPI初始化

** 输   入: 无

** 全局变量: 无

** 调用模块: 无

** 说    明:

** 注    意:

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

void SPI_Init(void) 

{

    DDRB=0xB0;   //选通7219

    SPCR=0x51;   //spi设置

}

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

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

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

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

** 全局变量: 无

** 调用模块: 无

** 说    明:

** 注    意:

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

void MAX7219_WriteByte(unsigned char date)

{

    SPDR = date;                    /* 启动数据传输 */

    while (!(SPSR & (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)

{

     PORTB = 0X00;

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

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

     PORTB = 0X10;

}


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

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

** 功能描述: MAX7219初始化

** 输   入: 无

** 全局变量: 无

** 调用模块: 无

** 说    明:

** 注    意:

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

void MAX7219_Init(void)      

    SPI_Init();                      //SPI功能初始化

    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

}


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

上一篇: ICCAVR编译报错 !E (197): area 'bss' not large enough
下一篇:AVR单片机(ATMEGA16)DA0832芯片D/A转换

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

单片机交通灯PCB板图与仿真源码(MAX7219+数码管显示)
单片机交通灯源程序如下: #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int #define DIG0 0x01 // 定义数码管1 #define DIG1 0x02 // 定义数码管2 #define DIG2 0x03 // 定义数码管3 #define DIG3 0x04 // 定义数码管4 void delay(uint i); void T0_init(); void MAX7219(uchar addr,uch
[单片机]
单片机交通灯PCB板图与仿真源码(MAX7219+<font color='red'>数码管</font>显示)
CEPARK AVR单片机 之HC595驱动数码管显示
这里我用的CEPARK 的M64 AVR开发板,这一课的重点是学会如何使用74HC595来驱动数码管。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。数据在SHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7 ),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能 OE时(为低电平),存储寄存器的数据输出到总线。 引脚说明: QA--QH: 八位并行输出端,可以直接控制数码管的8个段。 QH': 级联输出端。我将它接下
[单片机]
实战之8051驱动8位数码管
8051驱动共阴极 过年有点时间,整理电脑,翻到一个之前的小作品,应一位刚入门的朋友的要求做的,控制8位数码管,依次显示0~9。发出来给大家瞧瞧,高手请略过。 由于当时手上没有开发板,就用Proteus来做电路仿真了。 工作环境: Keil uVision5 Proteus 8 Professional 数码管 首先了解下数码管的相关知识 数码管的基本单元是发光二极管,按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP),这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位、8位等数码管。
[单片机]
8051单片机实战分析(以STC89C52RC为例) | 06 - 动态数码管驱动
1 动态扫描 那什么是动态扫描呢? 举个例子:有 2 个数码管,我们要显示“12”这个数字,可以先让高位的位选三极管导通,然后控制段选让其显示“1”,延时一定时间后再让低位的位选三极管导通,然后控制段选让其显示“2”。把这个流程以一定的速度循环运行就可以让数码管显示出“12”,由于交替速度非常快,人眼识别到的就是“12”这两位数字同时亮了。 在多个数码管显示数字的时候,我们可以轮流点亮数码管(一个时刻内只有一个数码管是亮的),利用人眼的视觉暂留现象(也叫余辉效应),就可以做到看起来是所有数码管都同时亮了,这就是动态显示,也叫做动态扫描。 那么一个数码管需要点亮多长时间呢?也就是说要多长时间完成一次全部数码管的扫描呢(很
[单片机]
8051单片机实战分析(以STC89C52RC为例) | 06 - 动态<font color='red'>数码管</font><font color='red'>驱动</font>
一种新思路的太阳能自动跟踪系统设计
  1.引言   伴随日益严重的能源危机,可再生资源的开发和利用成为人们研究的重点对象。太阳能以其普遍、长久、安全等优点脱颖而出。目前太阳能已被不同程度地用在了多个领域,如电池领域,但普遍存在利用率不高的问题,很多场合下,电池板要么被安装成固定角度,要么只能按照固定角度偏转,没有充分使太阳光垂直照射到电池板上,降低了太阳能的利用率。   为提高利用率,本文设计了一种基于Atmega16单片机的太阳能电池板光源跟踪控制系统,能够实时跟踪太阳并使太阳光充分垂直照射电池板,从而提高了太阳能的利用率。   2.系统设计原理   设计采用光强比较法来跟踪太阳光源。整机装置包括:太阳能电池板、电源管理电路、光电管、单片机、电机驱动电路
[单片机]
一种新思路的太阳能自动跟踪系统设计
51单片机教程:数码管动态显示(0~99999999)74hc138驱动
数码管动态显示0~99999999 一、共阴极8位数码管原理 首先了解一些必要知识 1、多位数码管是扫描显示,也就是同一时刻只有一个数码管显示 2、视觉暂留效果:第一个数码管显示完,第二个数码管接着显示,接着后面数码管一次显示,当显示(扫描)足够快的时候,人眼是看不到闪烁的,就认为多个数码管是同时显示的 3、多位数码管只能同时显示多个一样的数字,要显示不同数字需要扫描显示 比如说要显示12345678,你看起来8个数码管是同时亮的,其实同一时刻只有一个数码管是亮的 我们把时间放慢,看看数码管都发生了什么变化: 1、第1毫秒 2、第二毫秒 3、第三毫秒 4、第四毫秒 5、第五毫秒 6、第六毫秒
[单片机]
51单片机教程:<font color='red'>数码管</font>动态显示(0~99999999)74hc138<font color='red'>驱动</font>
atmega16单片机设计电子考试系统
功能用途:采用两个单片机系统实现四则运算考试及判卷功能,具体内容包括: ⑴两个单片机系统分别作为服务器和答题终端。服务器负责验证考生个人信息,发送试题到终端,定时收卷及判分功能。答题终端负责输入考生个人信息,答题,修改答案及传送答案到服务器。 ⑵服务器验证考生个人信息,若信息不正确则向终端发出提示信息。信息验证正确后将试题发送到答题终端,同时开始计时。无论答题是否完成,考试时间到则强制收题。也可在考试时间尚有剩余时接收答题终端发送过来的答案。收题后进行判分工作并给出最终得分及答题情况统计信息。对回答错误的题目则给出原题及正确答案。 ⑶答题终端在收到试题后向考生显示试题内容(可逐道显示)并接受考生输入的答案。试题显示应具备翻页
[单片机]
<font color='red'>atmega16</font>单片机设计电子考试系统
51单片机【三】静态与动态驱动数码管
数码管结构及分类 数码管是发光器件之一,内部由七个条形发光二极管(a,b,c,d,e,f,g)和一个小圆点发光二极管(dp)构成,51单片机开发板上为八段数码管,如下图所示,根据各段的组合不同,显示的字符也就不同。 按八个数码管的公共端接线不同,数码管又可分类为共阴极数码管和共阳极数码管两种。共阴极数码管的公共端接地,而共阳极数码管的公共端接电源,接线如下图所示(左为共阴极,右为共阳极)。当连接的单片机接口为高电平时共阴极数码管亮;反之,连接的接口为低电平时则共阳极数码管亮。 void DigDisplay(void) { unsigned char i = 0; // 首先确定位码,选中最左侧数码管,注意查3
[单片机]
51单片机【三】静态与动态<font color='red'>驱动</font><font color='red'>数码管</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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