×
嵌入式 > 技术百科 > 详情

STM8S MAX7219点阵模块驱动芯片程序

发布时间:2022-03-18 发布时间:
|

以下为.h文件:


#ifndef __MAX7219_H

#define __MAX7219_H

#include "stm8s_gpio.h"

#include "stm8s.h"

#include

#include

#include "tim1.h"

 

#define uchar unsigned char

#define uint  unsigned int

#define count 8

 

 

void Init_MAX7219(void);

void MAX7219_Init(void);

void Write_Max7219_byte(uchar Data);    

void Write_Max7219(u8 address1,u8 dat1,u8 address2,u8 dat2);

 

#define High 1

#define Low 0

#define Din(High_Low) if(High_Low == 0)GPIO_WriteLow(GPIOC, GPIO_PIN_4);

else GPIO_WriteHigh(GPIOC, GPIO_PIN_4);

#define Cs(High_Low) if(High_Low == 0)GPIO_WriteLow(GPIOC, GPIO_PIN_3);

else GPIO_WriteHigh(GPIOC, GPIO_PIN_3);

#define Clk(High_Low) if(High_Low == 0)GPIO_WriteLow(GPIOC, GPIO_PIN_2);

else GPIO_WriteHigh(GPIOC, GPIO_PIN_2);

 

#endif

 


以下为.c文件:


#include "main.h"

 

void Init_MAX7219(void)

{

GPIO_Init(GPIOC, GPIO_PIN_4, GPIO_MODE_OUT_PP_HIGH_FAST);//PC4高速推挽输出高电平控制DIN

GPIO_Init(GPIOC, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_FAST);//PC3高速推挽输出高电平控制CS

GPIO_Init(GPIOC, GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_FAST);//PC2高速推挽输出高电平控制CLK

 

}

 

//--------------------------------------------

//功能:向MAX7219(U3)写入字节

//入口参数:DATA 

//出口参数:无

//说明:

void Write_Max7219_byte(uchar Data)         

{

    uchar i;    

Cs(0);

   for(i=8;i>=1;i--)

{  

Clk(0);

if(Data&0x80)

{

Din(1);

}

else

{

Din(0);

}

Data=Data<<1;

Clk(1);

delay_us(10);

Clk(0);

}                                 

}

 

//-------------------------------------------

//功能:向MAX7219写入数据

//入口参数:address、dat

//出口参数:无

//说明:

void Write_Max7219(u8 address1,u8 dat1,u8 address2,u8 dat2)

 

     Cs(0);

     Write_Max7219_byte(address1);           //写入地址,即数码管编号

     Write_Max7219_byte(dat1);              //写入数据,即数码管显示数字 

     Write_Max7219_byte(address2);           //写入地址,即数码管编号

     Write_Max7219_byte(dat2);      //写入数据,即数码管显示数字 

 

     nop();

     Cs(1);                         

}

 

 

void MAX7219_Init(void)

{

/*

  Write_Max7219(0x09, 0x00,0x09, 0x00);       //译码方式:BCD码

  Write_Max7219(0x0a, 0x03,0x0a, 0x03);       //亮度 

Write_Max7219(0x0b, 0x07,0x0b, 0x07);       //扫描界限;8个数码管显示

  Write_Max7219(0x0c, 0x01,0x0c, 0x01);       //掉电模式:0,普通模式:1

  Write_Max7219(0x0f, 0x00,0x0f, 0x00);       //显示测试:1;测试结束,正常显示:0

*/

u8  i;

Cs(0);

for(i=0;i

{

 Write_Max7219_byte(0x09); //译码方式:BCD码       

 Write_Max7219_byte(0x00);    

}

Cs(1);

nop();

Cs(0);

for(i=0;i

{

 Write_Max7219_byte(0x0a); //亮度    

 Write_Max7219_byte(0x03);    

}

Cs(1);

nop();

Cs(0);

for(i=0;i

{

 Write_Max7219_byte(0x0b); // //扫描界限;8个数码管显示  

 Write_Max7219_byte(0x07);    

}

Cs(1);

nop();

Cs(0);

for(i=0;i

{

 Write_Max7219_byte(0x0c); //   //掉电模式:0,普通模式:1

 Write_Max7219_byte(0x01);    

}

Cs(1);

nop();

Cs(0);

for(i=0;i

{

 Write_Max7219_byte(0x0f); //显示测试:1;测试结束,正常显示:0

 Write_Max7219_byte(0x00);    

}

Cs(1);

nop();

}

 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Semtech的LoRa技术携手Chipsafer将牧场连接至云端