标题: 关于MAX7219驱动数码管循环移位显示的设计思路 [打印本页]

作者: a1483672601    时间: 2019-1-6 19:29
标题: 关于MAX7219驱动数码管循环移位显示的设计思路
使用MAX7219 和51单片机驱动8位LED数码管,目前手上有的程序只能让数码管显示数字1到8,请问怎么样改程序才能让数字实现循环移位显示呢?
作者: a1483672601    时间: 2019-1-6 19:29
#include <reg52.h>
#include <stdio.h>
#define uchar unsigned char

sbit DIN=P3^1;
sbit CLK=P3^3;
sbit LOAD=P3^2;
void send(uchar add,uchar dat)
{
                 uchar ADS,i,j;
                 CLK=0;
              LOAD=0;
              DIN=0;
                 i=4;
                 while(i<16)
                 {
                   if(i<8)
                              {
                                            ADS=add;
                            }
                else
                              {
                                          ADS=dat;
                            }
                for(j=8;j>=1;j--)
                              {

                                          if((ADS&0x80)==0)
                                          {              DIN=0 ;}
                                          else
                                          {              DIN=1;}
                                              ADS=ADS<<1;
                           
                            CLK=1;
                            CLK=0;            
                            }
                i=i+8;
   }
   LOAD=1;
}

void main(void)
{
   send(0x0c,0x01);//正常状态
   send(0x0b,0x07);//设置扫描范围DIG0-7
              send(0x0a,0x05);//设置亮度11/32
   send(0x09,0xff);//采用译码方式

   while(1)
   {
   send(0x01,0x81);
   send(0x02,0x82);
   send(0x03,0x83);
   send(0x04,0x84);
   send(0x05,0x85);
   send(0x06,0x86);
   send(0x07,0x87);
   send(0x08,0x88);

   }
}

这是显示数字1到8的程序
作者: yzwzfyz    时间: 2019-1-7 08:07
原因是你未了解LED扫描显示的真谛。再研究一下显示原理。这个问题很好解决。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1