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

📄 shumaguan.c

📁 51单片机与MAX 7219连接
💻 C
字号:
#include<reg51.h>
#include<absacc.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit  DIN=P1^0;			//串行数据输入
sbit  CLK=P1^1;			 //串行时钟
sbit  LOAD=P1^2;		 //显示数据锁存控制
#define NoOp   0x00		  //空操作寄存器
#define  Digit0  0x01	   //数码管1寄存器
	
#define  DecodeMode  0x09	   //译码模式寄存器
#define  Intensity   0x0a	  //亮度寄存器
#define  ScanLimit   0x0b	   //扫描位数寄存器
#define  ShutDown    0x0c		//低功耗模式寄存器
#define  DisplayTest 0x0f		//显示测试寄存器

#define  ShutDownMode  0x00		   //低功耗方式
#define  NormalOperation  0x01	   //正常操作方式

#define  ScanDigit   0x00		   //扫描位数设置,显示8位数码管
#define  DecodeDigit 0xff		   //译码设置8位均为BCD码
#define  IntensityGrade 0x01		//亮度级别设置

#define  TestMode  0x01			   //显示测试模式
#define  TestEnd 0x00			   //显示测试结束,恢复正常工作模式

uchar  DisBuffer[8]={0,0,0,0,0,0,0,0};	 //显示缓存区

void delay(uint  t)
{
   uint i;
   while(t--)
   {
   	for(i=0;i<125;i++)
	{}
   
   }

}

//向MAX7219写入字节(8位)
void  SendChar  (uchar ch)
{
   uchar i,temp;
   _nop_();
   for (i=0;i<8;i++)
   {
   	 temp=ch & 0x80;
	 ch=ch<<1;
	 if(temp)
	 {
	  DIN=1;
	  CLK=0;
	  CLK=1;
	 }
   	else
	{
	 DIN=0;
	 CLK=0;
	 CLK=1;
	}
   
   }

}

//向MAX7219写入字节
void WriteWord  (uchar addr,uchar  num)
{
 LOAD=0;
 _nop_();
 SendChar(addr);
 _nop_();
 SendChar(num);
 _nop_();
  LOAD=1;	   //锁存进相应的寄存器
}

 //	MAX7219初始化
 void  InitDisplay (void)
 {
  WriteWord(ScanLimit,ScanDigit);		//设置扫描界限
  WriteWord(DecodeMode,DecodeDigit);	  //设置译码模式
  WriteWord(Intensity,IntensityGrade);	  //设置亮度
  WriteWord(ShutDown,NormalOperation);	 //设置正常工作模式
 
 }


void main (void)
{
  InitDisplay();		//初始化MAX7219
  WriteWord(DisplayTest,TestMode);		 //开始显示测试,点亮所有LED
  delay(3000);							 //延时约3秒
  WriteWord (DisplayTest,TestEnd);		   //退出显示测试模式


  while(1)
  {
   uchar i;

//8个数码管以相同时间间隔2S同时变化显示0~9的数字
    for(i=0;i<=9;i++)
	{
	 delay(2000);				//间隔约两秒
	 InitDisplay();
	 
	   DisBuffer[0]=i;

	  WriteWord(Digit0,DisBuffer[0]);
	  
	
	} 
  
  }

}

⌨️ 快捷键说明

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