原创 max7219驱动8个数码管代码及电路图

2008-9-10 17:53 9324 7 9 分类: MCU/ 嵌入式

点击看大图


#include "reg52.h"
#include "my_type.h"


#define Addr_No_Op    0x00   //不工作寄存器地址
#define Addr_Digit0   0x01
#define Addr_Digit1   0x02
#define Addr_Digit2   0x03
#define Addr_Digit3   0x04
#define Addr_Digit4   0x05
#define Addr_Digit5   0x06
#define Addr_Digit6   0x07
#define Addr_Digit7   0x08
#define Addr_Decode_Mode 0x09    //译码模式寄存器地址
#define Addr_Intensity    0x0a //亮度控制寄存器地址(max7221)
#define Addr_Scan_Limit   0x0b //扫描控制寄存器地址
#define Addr_Shutdowm     0x0c    //掉电模式寄存器地址
#define Addr_Display_Test  0x0f    //显示检测寄存器地址


sbit Max7219_Din=P1^5;
sbit Max7219_Load=P1^6;
sbit Max7219_Clk=P1^7;


uchar code max7219_7led_code[18]={0x7e,0x30,0x6d,0x79,  //0-1-2-3
          0x33,0x5b,0x5f,0x70,  //4-5-6-7
          0x7f,0x7b,0x01,0x4e,  //8-9-"-"-E
          0x37,0x0e,0x67,0x00};  //H-L-P-空白    



void wr_max7219(uchar addr,uchar dat)
{
 uchar i;
 Max7219_Load=0;
 Max7219_Clk=0;
 for(i=0;i<8;i++)
 {
  Max7219_Din = (bit)(addr&0x80);
  addr=addr<<1;
  Max7219_Clk=1;
  Max7219_Clk=0;
 }
 for(i=0;i<8;i++)
 { 
  Max7219_Din=(bit)(dat&0x80);
  dat=dat<<1;
  Max7219_Clk=1;
  Max7219_Clk=0;
 }  
 Max7219_Load=1;
 Max7219_Load=0;
}
main()
{
   uchar j;
 for(j=200;j>0;j--);
   
 wr_max7219(Addr_Shutdowm,0x01);
 wr_max7219(Addr_Scan_Limit,0x07);
 wr_max7219(Addr_Intensity,0x0f);
 wr_max7219(Addr_Decode_Mode,0x00);
 wr_max7219(Addr_Digit0,max7219_7led_code[1]);
 wr_max7219(Addr_Digit1,max7219_7led_code[2]);
 wr_max7219(Addr_Digit2,max7219_7led_code[3]);
 wr_max7219(Addr_Digit3,max7219_7led_code[4]);
 wr_max7219(Addr_Digit4,max7219_7led_code[5]);
 wr_max7219(Addr_Digit5,max7219_7led_code[6]);
 wr_max7219(Addr_Digit6,max7219_7led_code[7]);
    wr_max7219(Addr_Digit7,max7219_7led_code[8]);


    P0=0x00;
 //  wr_max7219(Addr_Display_Test,0x01);   //测试
   while(1);
}

文章评论2条评论)

登录后参与讨论

用户217759 2009-8-6 21:31

好好

用户217759 2009-8-6 21:31

相关推荐阅读
nneverli_217963090 2013-04-10 13:29
Intel Bus与Motorola Bus区别(Intel模式与Motorola模式的区别)
  Intel Bus与Motorola Bus区别(Intel模式与Motorola模式的区别)   在实际应用中用到的很多带并行总线的芯片的硬件连接、读写操作都分为INTERL BUS...
nneverli_217963090 2012-07-14 13:39
Replace Pioneer
www.mind-pioneer.com Replace Pioneer  ...
nneverli_217963090 2012-07-09 13:38
tny278图片
图片...
nneverli_217963090 2010-07-27 08:58
Keil 0xFD Bug
单片机到手(PS:编译软件,ISP下载软件提前两天都开始待命了),迫不及待地更新了程序,通过USB接口和复位键,ISP下载实在是太方便了。重启单片机-调整时间-OK,本应该显示“星期三”,却只显示了“...
nneverli_217963090 2010-05-24 16:53
咱又回来了。
由于工作原因,博客闲置了将近一年。重新启用。呵呵记录一下。  ...
nneverli_217963090 2009-11-13 16:32
INC指令的那点秘密!!!
不影响C标志位,哈哈,^_^,O(∩_∩)O...
我要评论
2
7
关闭 站长推荐上一条 /2 下一条