📄 max7219drv.c
字号:
/*
*********************************************************************************************************
* 7219功能函数文件
*
*********************************************************************************************************
*/
////////////////////////////////////////////////////////////////////////////////////////////////////////
//公司名称:
//模 块 名:max7219drv.c max7219asm.asm
//创 建 者:牛毅
//修 改 者:
//功能描述:提供对max7219芯片的操作驱动程序
//其他说明:
//版 本:1.0
////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifdef HAVE_delay
//延时程序 注意:如果没有定义HAVE_delay,
//则原程序里必须有与delay(INT16U)同名的函数供调用,时间可能会变化
void delay(INT16U i)
{
INT16U a;
a=i;
while(--i)while(--a);
}
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////
//函 数 名:void Send_7219(INT8U bytSendH,INT8U bytSendL)
//功能描述:向7219发送一个字
//函数说明:具体初始化数值请查看DATASHEET
//调用函数:void Send_7219(INT8U bytSendH,INT8U bytSendL)
//全局变量:无
//输 入:INT8U bytSendH是控制字节,INT8U bytSendL是数据字节
//返 回:无
//设 计 者:牛毅
//修 改 者:
//版 本:
////////////////////////////////////////////////////////////////////////////////////////////////////////
void Send_7219(INT8U bytSendH,INT8U bytSendL)
{
register INT8U i,j;
LD_CS_7219=HIGH_V;
CLK_7219=HIGH_V;
CLK_7219=LOW_V;
LD_CS_7219=LOW_V;
for(i=0;i<2;i++)
{
bytSendH=(i==1)?bytSendL:bytSendH;
for(j=0;j<8;j++)
{
DIN_7219=(bytSendH&0x80)?HIGH_V:LOW_V;
_nop_();
_nop_();
CLK_7219=LOW_V;
_nop_();
_nop_();
CLK_7219=HIGH_V;
_nop_();
_nop_();
bytSendH<<=1;
}
}
LD_CS_7219=HIGH_V;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
//函 数 名:void Init_7219(void)
//功能描述:初始化max7219为需要的模式
//函数说明:具体初始化数值请查看DATASHEET
//调用函数:void Send_7219(INT8U bytSendH,INT8U bytSendL)
//全局变量:无
//输 入:INT8U bytSendH是控制字节,INT8U bytSendL是数据字节
//返 回:无
//设 计 者:牛毅
//修 改 者:
//版 本:
////////////////////////////////////////////////////////////////////////////////////////////////////////
void Init_7219(void)
{
Send_7219(0x0f,0x01); //测试模式
// delay(3);
Send_7219(0x0f,0x00); //正常模式
// delay(3);
Send_7219(0x0c,0x01); //正常模式
// delay(3);
Send_7219(0x09,0x0ff); //解码模式
// delay(3);
Send_7219(0x0a,0x05); //设置亮度
// delay(3);
Send_7219(0x0b,0x03); //只显示第n个
// delay(3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -