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

📄 m7219.c

📁 MAX7219,8位数字LED显示模块的C51程序
💻 C
字号:
/* *********************************************************************
      数字钟 
     串行8位显示Max7219模块。
     晶振 11.0592MHz,    
     2008年10月
*************************************************************************/
#include <reg51.h>
#include <absacc.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define _NOP()  _nop_();_nop_()
 

sbit LOAD=P3^4;  // P1^0
sbit DIN=P1^4;   // P1^1
sbit CLK=P1^5;   // P1^2

///////////////////////////////////////////////////////////////////////////////
/* 发送一字节到MAX7219,高位在前 */
void send(uchar c)
{ uchar bit_cnt;
  CLK=0;
  _NOP(); 
  for(bit_cnt=0;bit_cnt<8;bit_cnt++)
     { if((c<<bit_cnt)&0x80)DIN=1;
     	else DIN=0;
     	_NOP();
     	CLK=1;
     	_NOP();
     	_NOP(); 
     	CLK=0;
     	_NOP();
     	_NOP();
 	}
  
}
/*向显示器某位送命令或数字*/
void input(uchar addr,uchar dat)
{
  send(addr);/*传送寄存器地址字节(位选)*/
  send(dat);/*传送寄存器数据字节*/
  LOAD=1;
  _NOP();
  _NOP();
  LOAD=0;	
}
 /*初始化显示器*/
void dip_int(void)
{ uchar i;
  CLK=0;
  LOAD=0;
  input(0x0c,0x00);/*关闭显示*/
  input(0x09,0xff);/*全译码模式*/
  input(0x0b,0x07);/*显示 8*LED */
  input(0x0a,0x02);/*亮度占空比31/32 */
  input(0x0f,0x00);/*显示测试寄存器为正常显示方式 */
  input(0x0c,0x01);/*开显示 */
  for(i=8;i>0;i--)input(i,0);
  	
}
/*关闭显示*/
void cls(void)
{ uchar i;
	CLK=0;
	LOAD=0;
	for(i=1;i<9;i++)input(i,0x0f);/*每个字符‘黑’*/
    LOAD=1;
    CLK=1;
}
/*显示字符串(8 位)*/
void str(uchar *s)
{  uchar i;
	input(0x0c,0x01);
	for(i=8;i>0;i--)
	   input(i,s[i-1]);
} 
/*软件延时*/
void msec( uint x)
   { uchar j;
     while(x--)
       {  for(j=0;j<250;j++)
       	  {    
   	       }/*一次延时0.5毫秒。*/
       }
   }
////////////////////////////////////////////////////////////////////////////////
/* 主程序 */
void main(void)
{
   uchar sz[11]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x00};
   dip_int(); 
   msec(500);
   cls();
   msec(500); 
   str(sz);
   sz[5]=sz[5]&0x3f;/*小数点不显示 */ 
   msec(350);
   str(sz);
   sz[5]=sz[5]|0x80;/*小数点显示 */ 
   msec(350);
   str(sz);
   for(;;);
}
///////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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