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