max7219.c

来自「TS12864液晶驱动」· C语言 代码 · 共 86 行

C
86
字号
#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 + =
减小字号Ctrl + -
显示快捷键?