📄 lightenled.c
字号:
//名称:MAX7219串口驱动显示
//函数:sendData_7219(unsigned int,unsigned int);
//硬件端口:IOB0-BIN IOB1-LOAD(低电平有效) IOB2-CLK
//*********** 定义各个引脚**********************************
// IOB4 ----------- SCK
// IOB1 ----------- CS/LOAD
// IOB0 ----------- DIN
#include "SPCE061V004.H"
#define CLK_HEX 0x0080
#define CS_HEX 0x0040
#define DIN_HEX 0x0020
//**************** 宏函数 **********************************
#define PullUp_CLK() *P_IOB_Data|=CLK_HEX
#define PullDown_CLK() *P_IOB_Data&=~CLK_HEX
#define PullUp_DIN() *P_IOB_Data|=DIN_HEX
#define PullDown_DIN() *P_IOB_Data&=~DIN_HEX
#define PullUp_CS() *P_IOB_Data|=CS_HEX
#define PullDown_CS() *P_IOB_Data&=~CS_HEX
//**************** 函数预定义 ******************************
void initialLED();
void sendData_7219(unsigned int,unsigned int);
void sendCode_7219(unsigned int);
//**********************************************************
//*********************************************************
//初始化LED的工作方式
//*********************************************************
void initialLED()
{
sendData_7219(0x0c,0x01); // 使其7219工作正常模式
sendData_7219(0x0b,0x07); // 配置scan limit模式,使其8个管子都工作
sendData_7219(0x0a,0x07); // 设置亮度为 1/2 亮
sendData_7219(0x09,0xff); // 使8个管子都用编码方式
}
//*********************************************************
// 送数据给7219的函数
// order 是命令字
// data 是数据
//*********************************************************
void sendData_7219(unsigned int order,unsigned int data)
{
unsigned int rtemp=0,dtemp;
dtemp=data;
dtemp&=0x00ff;
rtemp=order;
rtemp<<=4;
rtemp<<=4;
rtemp|=dtemp;
sendCode_7219(rtemp);
}
void sendCode_7219(unsigned int data)
{
unsigned int i;
PullDown_CS();
for(i=0;i<16;i++)
{
PullDown_CLK();
if(data&0x8000)
PullUp_DIN();
else
PullDown_DIN();
PullUp_CLK();
data<<=1;
}
PullUp_CS();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -