查看: 1211|回复: 0
打印 上一主题 下一主题

串行输入输出共阴极显示驱动器MAX7219应用

[复制链接]
跳转到指定楼层
沙发
发表于 2015-4-15 12:39:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
#include <stdio.h>
#define uchar unsigned char
/************************************************************************
                              I/O定义
*************************************************************************/
sbit DIN=P3^1;//数据输入端          
sbit LOAD=P3^2;//地址锁存端
sbit CLK=P3^3; //时钟输入端
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
/************************************************************************
                              数据输入
*************************************************************************/
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,0x01);

   send(0x02,0x02);

   send(0x03,0x03);

   send(0x04,0x84);

   send(0x05,0x05);

   send(0x06,0x06);

   send(0x07,0x07);

   send(0x08,0x08);
          */
         
   if(P2_0==0) {P2_5=02_6=12_7=1;send(0x01,0x01);send(0x02,0x02);}
   if(P2_1==0) {P2_5=12_6=02_7=1;send(0x01,0x04);send(0x02,0x07);}
   if(P2_2==0) {P2_5=12_6=12_7=0;send(0x01,0x08);send(0x02,0x05);}



   }

}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表