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

📄 m7219.lst

📁 MAX7219,8位数字LED显示模块的C51程序
💻 LST
字号:
C51 COMPILER V6.12  M7219                                                                  12/05/2008 11:40:39 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE M7219
OBJECT MODULE PLACED IN .\M7219.OBJ
COMPILER INVOKED BY: C:\Keil_51\C51\BIN\C51.EXE .\M7219.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /* *********************************************************************
   2                数字钟 
   3               串行8位显示Max7219模块。
   4               晶振 11.0592MHz,    
   5               2008年10月
   6          *************************************************************************/
   7          #include <reg51.h>
   8          #include <absacc.h>
   9          #include <intrins.h>
  10          #define uchar unsigned char
  11          #define uint unsigned int
  12          #define _NOP()  _nop_();_nop_()
  13           
  14          
  15          sbit LOAD=P3^4;  // P1^0
  16          sbit DIN=P1^4;   // P1^1
  17          sbit CLK=P1^5;   // P1^2
  18          
  19          ///////////////////////////////////////////////////////////////////////////////
  20          /* 发送一字节到MAX7219,高位在前 */
  21          void send(uchar c)
  22          { uchar bit_cnt;
  23   1        CLK=0;
  24   1        _NOP(); 
  25   1        for(bit_cnt=0;bit_cnt<8;bit_cnt++)
  26   1           { if((c<<bit_cnt)&0x80)DIN=1;
  27   2           	else DIN=0;
  28   2           	_NOP();
  29   2           	CLK=1;
  30   2           	_NOP();
  31   2           	_NOP(); 
  32   2           	CLK=0;
  33   2           	_NOP();
  34   2           	_NOP();
  35   2       	}
  36   1        
  37   1      }
  38          /*向显示器某位送命令或数字*/
  39          void input(uchar addr,uchar dat)
  40          {
  41   1        send(addr);/*传送寄存器地址字节(位选)*/
  42   1        send(dat);/*传送寄存器数据字节*/
  43   1        LOAD=1;
  44   1        _NOP();
  45   1        _NOP();
  46   1        LOAD=0;	
  47   1      }
  48           /*初始化显示器*/
  49          void dip_int(void)
  50          { uchar i;
  51   1        CLK=0;
  52   1        LOAD=0;
  53   1        input(0x0c,0x00);/*关闭显示*/
  54   1        input(0x09,0xff);/*全译码模式*/
  55   1        input(0x0b,0x07);/*显示 8*LED */
C51 COMPILER V6.12  M7219                                                                  12/05/2008 11:40:39 PAGE 2   

  56   1        input(0x0a,0x02);/*亮度占空比31/32 */
  57   1        input(0x0f,0x00);/*显示测试寄存器为正常显示方式 */
  58   1        input(0x0c,0x01);/*开显示 */
  59   1        for(i=8;i>0;i--)input(i,0);
  60   1        	
  61   1      }
  62          /*关闭显示*/
  63          void cls(void)
  64          { uchar i;
  65   1      	CLK=0;
  66   1      	LOAD=0;
  67   1      	for(i=1;i<9;i++)input(i,0x0f);/*每个字符‘黑’*/
  68   1          LOAD=1;
  69   1          CLK=1;
  70   1      }
  71          /*显示字符串(8 位)*/
  72          void str(uchar *s)
  73          {  uchar i;
  74   1      	input(0x0c,0x01);
  75   1      	for(i=8;i>0;i--)
  76   1      	   input(i,s[i-1]);
  77   1      } 
  78          /*软件延时*/
  79          void msec( uint x)
  80             { uchar j;
  81   1           while(x--)
  82   1             {  for(j=0;j<250;j++)
  83   2             	  {    
  84   3         	       }/*一次延时0.5毫秒。*/
  85   2             }
  86   1         }
  87          ////////////////////////////////////////////////////////////////////////////////
  88          /* 主程序 */
  89          void main(void)
  90          {
  91   1         uchar sz[11]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x00};
  92   1         dip_int(); 
  93   1         msec(500);
  94   1         cls();
  95   1         msec(500); 
  96   1         str(sz);
  97   1         sz[5]=sz[5]&0x3f;/*小数点不显示 */ 
  98   1         msec(350);
  99   1         str(sz);
 100   1         sz[5]=sz[5]|0x80;/*小数点显示 */ 
 101   1         msec(350);
 102   1         str(sz);
 103   1         for(;;);
 104   1      }
 105          ///////////////////////////////////////////////////////////////////////////////


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    266    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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