⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max7219drv.c

📁 max7219.rar 是基于单片机的max7219的LED动态显示串行接口装置的C语言驱动.
💻 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 + -