欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

MAX7219段码液晶驱动程序

程序员文章站 2022-08-13 09:35:42
MAX7219MAX7219.h段码控制芯片驱动头文件。#ifndef __MAX7219_H#define __MAX7219_H#include "reg52.h"#include "delay.h"#include "intrins.h"//---重定义关键词---//#ifndef u8#define u8 unsigned char#endif#ifndef u16 #define u16 unsigned int#endif#ifndef uchar#defi...

MAX7219

MAX7219.h

段码控制芯片驱动头文件。

#ifndef __MAX7219_H #define __MAX7219_H #include "reg52.h" #include "delay.h" #include "intrins.h" //---重定义关键词---// #ifndef u8 #define u8 unsigned char #endif #ifndef u16  #define u16 unsigned int #endif #ifndef uchar #define uchar unsigned char #endif #ifndef uint  #define uint unsigned int #endif //此位定义是定义MAX7219引脚 sbit MAX7219_DIN = P2^0; sbit MAX7219_LOAD = P2^2; sbit MAX7219_CLK = P2^1; void MAX7219_Init(void); //初始化MAX7219 void MAX7219_Clear(void); //清数码管显示 void MAX7219_Test(void); //数码管测试函数 #endif 

MAX7219.c

段码控制芯片驱动源文件。

#include "MAX7219.H" #define DECODE_MODE  0x09 //译码控制寄存器 #define INTENSITY    0x0A //亮度控制寄存器 #define SCAN_LIMIT   0x0B //扫描界限寄存器 #define SHUT_DOWN    0x0C //关断模式寄存器 #define DISPLAY_TEST 0x0F //测试控制寄存器 /*******************************************************************************
* 函 数 名         : Send_Data
* 输    入         : addr:寄存器地址
							dat:数据
							
* 输    出         :	空
* 函数功能		    : 发送数据
* 详细描述			 :	向某个寄存器发送数据
*******************************************************************************/ void Send_Data(uchar addr,uchar dat) { u8 i; MAX7219_LOAD = 0; for(i = 0;i < 8;i ++) { MAX7219_CLK = 0; MAX7219_DIN = (bit)(addr & 0x80); addr <<= 1; MAX7219_CLK = 1; } for(i = 0;i < 8;i ++) { MAX7219_CLK = 0; MAX7219_DIN = (bit)(dat & 0x80); dat <<= 1; MAX7219_CLK = 1; } MAX7219_LOAD=1; } /*******************************************************************************
* 函 数 名         : MAX7219_Init
* 输    入         : 空
* 输    出         :	空
* 函数功能		    : 初始化MAX7219
* 详细描述			 :	空
*******************************************************************************/ void MAX7219_Init(void) { Send_Data(SHUT_DOWN,0x01); //开启正常工作模式  Send_Data(DISPLAY_TEST,0x00); //选择工作模式  Send_Data(DECODE_MODE,0xff); //选用全译码模式  Send_Data(SCAN_LIMIT,0x07); //8只LED全用  Send_Data(INTENSITY,0x04); //设置初始亮度  } /*******************************************************************************
* 函 数 名         : MAX7219_Clear
* 输    入         : 空
* 输    出         :	空
* 函数功能		    : 清数码管显示
* 详细描述			 :	空
*******************************************************************************/ void MAX7219_Clear(void) { u8 i; for(i = 8;i > 0;i --) Send_Data(i,0x00); } /*******************************************************************************
* 函 数 名         : MAX7219_Test
* 输    入         : 空
* 输    出         :	空
* 函数功能		    : 数码管测试函数,调用一次改函数,数码管显示12345678
* 详细描述			 :	空
*******************************************************************************/ void MAX7219_Test(void) { MAX7219_Init(); MAX7219_Clear(); Send_Data(0x01,1); Send_Data(0x02,2); Send_Data(0x03,3); Send_Data(0x04,4); Send_Data(0x05,5); Send_Data(0x06,6); Send_Data(0x07,7); Send_Data(0x08,8); } 

外部链接

码云下载:https://gitee.com/LWTDZ/Core8051.git
店铺地址:https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-22129052348.16.6b222269wKu2dH&id=615384296160