📄 max7219.c
字号:
#include"max7219.h"
/************************************************************************************
code of funtions
************************************************************************************/
void Write_Max7219_byte(unsigned char temp)
{
unsigned char i;
for (i=0;i<8;i++)
{
CLK=LOW;
DIN=(bit)(temp&MSB);
temp<<=1;
CLK=HIGH;
}
}
void Write_Max7219(unsigned char address,unsigned char dat)
{
LOAD=LOW;
Write_Max7219_byte(address);
Write_Max7219_byte(dat);
LOAD=HIGH;
}
void Init_Max7219(void)
{
Write_Max7219(SHUTDOWN, 0x01);//Normal Operation
Write_Max7219(DISPLAY_TEST, 0x00);//Normal Operation
Write_Max7219(DECODE_MODE, 0xff);//Code B decode for digits 7-0
Write_Max7219(SCAN_LIMIT, 0x07);//Display digits 7-0
Write_Max7219(INTENSITY, 0x02);//Duty Cycle 9/32
}
void Show_Max7219(unsigned int left,unsigned int right) reentrant
{
unsigned char i,digit_l,digit_r;
for(i=8;i>4;i--)
{
digit_l=left%10;
Write_Max7219(i-4,digit_l);
left/=10;
digit_r=right%10;
Write_Max7219(i,digit_r);
right/=10;
}
}
void Byte_Max7219(unsigned char byte_data)
{
unsigned char i,digit;
for(i=8;i>0;i--)
{
digit=byte_data%10;
Write_Max7219(i,digit);
byte_data/=10;
}
}
void Regprint_Max7219(unsigned char byte_data)
{
unsigned char i,reg_bit,test_bit=0x01;
for(i=8;i>0;i--)
{
reg_bit=byte_data&test_bit;
Write_Max7219(i,reg_bit);
byte_data=byte_data>>1;
}
}
void Interger_Max7219(unsigned long int interger) reentrant
{
unsigned char i,digit;
for(i=8;i>0;i--)
{
digit=interger%10;
Write_Max7219(i,digit);
interger/=10;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -