max7221.c

来自「凌阳单片机控制ad9850来产生正弦波信号1KHz-10MHz的源代码」· C语言 代码 · 共 74 行

C
74
字号
//从最高位开始写入;串行SPI接口;

#include "bit.h"
#include "MAX7221.h"



Uint InitSPI7221()
{
	PA_Dir->bit.bit1=1;
	PA_Attrib->bit.bit1=1;
	LSDA=0;
	PA_Dir->bit.bit3=1;
	PA_Attrib->bit.bit3=1;
	LSEN=1;
	PA_Dir->bit.bit5=1;
	PA_Attrib->bit.bit5=1;
	LSCK=0;
}

Uint SendData7221(Uint Addr,Uint Data)
{
	Uint i;
	Data=Addr+Data;
	LSEN=0;
	LSDA=0;
	LSCK=0;
	for(i=0;i<4;i++)
	{
		LSCK=1;
		__asm("nop");
		LSCK=0;
	}
	
	for(i=0;i<12;i++)
	{
		LSCK=0;
		LSDA=(Data>>(11-i))&1;
		LSCK=1;
	}
	LSEN=1;
	LSCK=0;
}


int MAX7221(int string[8])
{
//	Uint i;
	InitSPI7221();
	SendData7221(Shutdown,1);
	SendData7221(Display,0);
	SendData7221(Decode,0xff);
	SendData7221(Brightness,0x8);
	SendData7221(Digitals,0x7);
	SendData7221(Digital0,string[7]);
	SendData7221(Digital1,string[6]);
	SendData7221(Digital2,string[5]);
	SendData7221(Digital3,string[4]);
	SendData7221(Digital4,string[3]);
	SendData7221(Digital5,string[2]);
	SendData7221(Digital6,string[1]);
	SendData7221(Digital7,string[0]);
	
/*	while(1)
	{
		for(i=0;i<15;i++)
		{
			Delay(100);
			SendData7221(Brightness,i);
		}

	}*/
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?