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

📄 max7221.h

📁 基于单片机的BH1415控制做的调频发射机控制系统源程序
💻 H
字号:
//max7219 C语言驱动程序
//#include<REG51.h>  //主程序里已经包括
extern unsigned char read_char[7];//在主程序中定义的数据数组
extern unsigned char setda[7];    //在主程序中定义的数据数组
/***********************************************************************/
//common part 
#define  HIGH     1
#define  LOW      0
#define  TRUE      1
#define  FALSE      0
#define  ZERO      0 
#define  MSB       0x80
#define  LSB       0x01
//max7219 寄存器地址
#define  DECODE_MODE   0x09 
#define  INTENSITY     0x0A 
#define  SCAN_LIMIT    0x0B 
#define  SHUT_DOWN     0x0C 
#define  DISPLAY_TEST  0x0F 

/***********************************************************************/
//7219有管脚定义
sbit DIN=P0^2;  //rising edge  pin 1
sbit SCLK=P0^1;  //maximum 10MHz  pin 13
sbit LOAD=P0^0; //rising edge  pin 12

/***********************************************************************/
//所用到函数说明
void Write_Max7219_byte(unsigned char temp);
void Write_Max7219(unsigned char address,unsigned char dat);
void Init_Max7219(void);
void display(uchar *p);
/***********************************************************************/
//显示总函数
void display(uchar *p)
{
    Init_Max7219();
    Write_Max7219(1,p[0]);
    Write_Max7219(2,p[1]); //这两位显示秒
	Write_Max7219(3,p[2]|0x80);  //在这个位显示其它小数点
    Write_Max7219(4,p[3]); //这两位显示分
	 //Write_Max7219(5,0);
	 //Write_Max7219(6,6);
	 //Write_Max7219(7,5);
	 //Write_Max7219(8,0x85); //这样可以显示出小数点
	 //编码模式DECODE_MODE可以设置哪个位用编码模式,为1的位进行编码,
    //为0的位可以进行自行段选,如上一行则是显示为'A',对应的段码如下
    //---------------------------------------
    //dot   a   b	  c   d	 e 	f	 g
  	 //D7    D6	 D5  D4  D3  D2	D1  D0
	 //---------------------------------------
}
/***********************************************************************/
//写一个字节的命令
void Write_Max7219_byte(unsigned char temp)
{
 unsigned char i;
 for (i=0;i<8;i++)     
  { 
   SCLK=LOW;
     DIN=(bit)(temp&MSB);      
     temp<<=1;  
     SCLK=HIGH;
   }
}
/***********************************************************************/
//写一个字节地址命令,一个字节的数据命令
void Write_Max7219(unsigned char address,unsigned char dat)
{ 
  LOAD=LOW;
   Write_Max7219_byte(address); 
   Write_Max7219_byte(dat);
  LOAD=HIGH;                 
}
/***********************************************************************/
//总初始化程序
void Init_Max7219(void)      
{ 
 Write_Max7219(SHUT_DOWN, 1);       //Normal Operation XXXXXXX1 Shutdown Mode   XXXXXXXX0
 Write_Max7219(DISPLAY_TEST, 0x00); //Normal Operation XXXXXXX0 Display Test Mode XXXXXXXX1
 Write_Max7219(DECODE_MODE, 0xff);  //Decode Mode Select D7~D0 1 B decode 0 No decode 
 Write_Max7219(SCAN_LIMIT, 0x03);   //SCAN LIMIT 0~7 0xX0~0xX7  显示的位数
 Write_Max7219(INTENSITY, 0x01);    //Set Intensity   0xX0~0xXf
}

⌨️ 快捷键说明

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