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

📄 1.c

📁 MAX7219的驱动程序
💻 C
字号:
#include <reg52.h>
#include<intrins.h>
#define SHUTDOWN 0x0c		  //是否关机
#define DECODE_MODE 0x09	  //编码模式
#define INTENSITY 0x0a		  //亮度变化
#define SCAN_LIMIT 0x0b		  //开启哪些位
#define DISPLAYTEST 0x0f	  //显示测试

sbit DIN=P3^4;
sbit LOAD=P3^5;
sbit CLK=P3^6;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
unsigned char code table[]={
        0x7e,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B,0x00
};
unsigned char code seg[]={
0x01,0x02,0x03,0x04,0x05,0x06,0x07
};
unsigned char numbers[8];
/*void WriteMAX7219_bit(bit dat)	 //写入一位
{
	CLK=0;
	DIN=dat;
	CLK=1;
} */
void WriteByte7219(unsigned char Dat)
{
unsigned char i;
ACC=Dat;
for(i=8;i>0;i--)
        {
         DIN=ACC7;
         CLK=1;
         _nop_();
         _nop_();
         CLK=0;
         ACC=ACC<<1;
        }
}
void WriteMAX7219_2bytes(unsigned char dat1,unsigned char dat2)		  //连续写入两个字节
{
	unsigned char temp;
	temp=0x80;
	CLK=0;
	DIN=0;
	LOAD=0;
/*	for(i=1;i<=8;i++)
	{
		if(temp&dat1)WriteMAX7219_bit(1);	
		else WriteMAX7219_bit(0);
		dat1<<=1;

	}
	for(i=1;i<=8;i++)
	{
		if(temp&dat2)WriteMAX7219_bit(1);	
		else WriteMAX7219_bit(0);
		dat2<<=1;
	}	 */
	WriteByte7219(dat1);
	WriteByte7219(dat2);
	LOAD=1;
	
}
void InitMax7219()						  //初始化
{
	
	WriteMAX7219_2bytes(DECODE_MODE,0xff);		  //设置所有数码管为B CODE编码模式
	WriteMAX7219_2bytes(INTENSITY,0x08);		  //设置亮度为最大
	WriteMAX7219_2bytes(SCAN_LIMIT,0x07);		  //设置7个数码管全开 
	WriteMAX7219_2bytes(DISPLAYTEST,0);
	WriteMAX7219_2bytes(SHUTDOWN,0x01);			  //设置为开机
}
void display()
{
	unsigned char i;
	for(i=0;i<8;i++)
	{
		WriteMAX7219_2bytes(seg[i],i);
	}
}
void delay()
{
	unsigned int n;
	n=30000;
	while(n--);
}
void main()
{  	
	
	bit a;
	a=1;
//	InitMax7219();display();
//	WriteMAX7219_2bytes(DISPLAYTEST,0xff);
	while(1){
	a=!a;
	P0=a;
	P1=a;
	P2=a;
	delay();}	;
}

⌨️ 快捷键说明

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