| 
 | 
 
#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=0 2_6=1 2_7=1;send(0x01,0x01);send(0x02,0x02);} 
   if(P2_1==0) {P2_5=1 2_6=0 2_7=1;send(0x01,0x04);send(0x02,0x07);} 
   if(P2_2==0) {P2_5=1 2_6=1 2_7=0;send(0x01,0x08);send(0x02,0x05);} 
 
 
 
   } 
 
} 
 
 
 |   
 
 
 
 |