⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max7219.h

📁 mcs51系列单片机常用芯片使用头文件(包含MAX7219,DS18B20,DS1302,AT93C46,IC电话卡
💻 H
字号:
/*******************************************************************************
*  标题:  7219头文件                                                           *
*  日期:  2007-3-25                                                            *
*  版本:  1.0                                                                  *
*  作者:  无名                                                                 *
*  邮箱:  djrljf@163.com                                                       *
*  QQ  : 403499014                                                            *
********************************************************************************
********************************************************************************
* 【版权】 Copyright(C)无名        All Rights Reserved                         *
* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
*******************************************************************************/
#ifndef	_max7219_H 				      // 防止max7219.h被重复引用

#define	_max7219_H

#include "at89x52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
//==============================================================
//默认设置,使用时根据实际布线修改DIN CLK LOAD

sbit DIN=P2^4;                                 //串行数据输入
sbit CLK=P2^5;                                 //串行时钟
sbit LOAD=P2^3;                                //显示数据锁存控制
//==============================================================
#define DecodeMode 0x09                        //译码模式寄存器
#define Intensity 0x0a                         //亮度寄存器
#define ScanLimit 0x0b                         //数码管扫描位数寄存器
#define ShotDown 0x0c                          //低功耗模式寄存器
#define DisplayTest 0x0f                       //显示测试寄存器

#define ShotdownMode 0x00                      //低功耗模式
#define NormalOperation 0x01                   //正常操作方式

#define ScanDigit 0x07                         //扫描位数设置
#define DecodeDigit 0xff                       //译码设置
#define IntensityGrade 0x0a                    //亮度级别设置

#define TestMode 0x01                          //显示测试模式
#define TestEnd 0x00                           //显示测试结束,恢复正常工作
uchar DisDuffer[8]={0};                        //显示缓存区

//==============================================================
//发送单个字节
//==============================================================
 void SendChar(uchar ch)                 
     {
     uchar i,temp;
     _nop_();                                  //空指令
	 for(i=0;i<8;i++)
	    {
		temp=ch&0x80;                          //从高位开始发送
		ch=(ch<<1);
		if(temp)
		   {DIN=1;CLK=0;CLK=1;}                //发送0
		else
		   {DIN=0;CLK=0;CLK=1;}                //发送1
		}
     }
//==============================================================
//外部接口为:选择数码管显示位+显示数据的bcd码
//写一个完整命令(先发送指令寄存器,后发送数据)
//==============================================================
extern void WriteWord(uchar addr,uchar num)    
     {
	 LOAD=0;
	 _nop_();
	 SendChar(addr);
	 _nop_();
	 SendChar(num);
	 LOAD=1;
    }

//==============================================================
//初始化子程序
//==============================================================
extern void InitDisplay()                      
    {
	uchar i;
	WriteWord(ScanLimit,ScanDigit);            //设置扫描界限
	WriteWord(DecodeMode,DecodeDigit);         //设置译码模式
	WriteWord(Intensity,IntensityGrade);       //设置亮度
	WriteWord(ShotDown,NormalOperation);       //设置为正常工作模式
	for(i=0;i<8;i++)
	   {WriteWord((i+1),0x0f);                 //把所有数码管清空显示

	   }
	}


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -