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

📄 max7219.h

📁 ADC0804+DAC0832+MAX7219仿真演示
💻 H
字号:
#ifndef __MAX7219_H__
#define __MAX7219_H__ 

//移植时要修改的地方
/****************************************************************/
//级联的7219总个数
#define MAX7219NUM 1

//引脚连接 
sbit DIN = P1^0	;
sbit CLK = P1^2	;
sbit LOAD= P1^1	;
/***************************************************************/

typedef unsigned char uchar;
typedef unsigned int uint; 

//延时约1m秒,晶振是11.592
void delay_ms(uint n)
{
     uchar j;
     while(n--)
     for(j=0;j<120;j++);
}

//向7219发送一char型数据
void SendChar(uchar CharData)
{	 
    uchar ii;    for (ii = 0;ii<8;ii++){//8个时钟		
 	CLK = 0;	 
	if(((CharData<<ii)&0x80)==0x80)
	  DIN = 1;
	else   
	  DIN = 0;
	CLK = 1;       
    }     
}

//向7219中发送多个串数据 
void SendAddrDataMulti(uchar Addr,uchar Data,uchar Num)
{ 
    LOAD = 0;
	do
	{
	   SendChar(Addr);
	   SendChar(Data);
	}while(--Num); 
 	LOAD = 1;   
}

//向7219发送一十六位的数据
void SendAddrDataSingle(uchar Addr,uchar Data)
{
	SendChar(Addr);
	SendChar(Data);    
}

 
//初始化所有的器件
void InitAllComponents(void)
{     SendAddrDataMulti(0xf9,0xff,MAX7219NUM); //set decode mode ,Code B Decode for digits 0~7  
   SendAddrDataMulti(0xfa,0x0f,MAX7219NUM); //set intensity to the max  
   SendAddrDataMulti(0xfb,0xf7,MAX7219NUM); //set scan limit register format for display 0~7 
   SendAddrDataMulti(0xfc,0x01,MAX7219NUM); //set the 7219 to Normal Operation .1--normal operation,0-hutdown 
   SendAddrDataMulti(0xff,0x00,MAX7219NUM); //set to display; 1-test mode,0-normal mode	 
}

disp7219(unsigned long dat)
{
	unsigned char i;
	unsigned char led[8];

	led[7]=dat%10;
	led[6]=dat/10%10;
	led[5]=dat/100%10;
	led[4]=dat/1000%10;
	led[3]=dat/10000%10;
	led[2]=dat/100000%10;
	led[1]=dat/1000000%10;
	led[0]=dat/10000000%10;

	for(i=0;i<8;i++) 
	{
	 	LOAD = 0;
  		SendAddrDataSingle(i+1, led[i]);
  		LOAD = 1;
	} 
}

#endif

⌨️ 快捷键说明

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