TM1616 显示代码

void TIME1616_SHOW(void)
{
    
        uchar j;


        
#if 1

        STB = 1;
        L_CLK = 1;
        DIN = 1;

         TM1616write(0x00);           //显示模式设置
         STB=1;    
          TM1616write(0x44);           //地址增加模式  数据命令设置
          STB=1; 
        // for(j=0;j<4;j++)
          {
              TM1616write(0xC0);                        //设置显示地址1
            TM1616write(ledbuff[0]);                 //传输显示数据1
            STB=1;                                                //显示数据1发送完毕STB置1
            TM1616write(0xC2);                        //设置显示地址1
            TM1616write(ledbuff[1]);                 //传输显示数据1
            STB=1;                                                //显示数据1发送完毕STB置1
            TM1616write(0xC4);                        //设置显示地址1
            TM1616write(ledbuff[2]);                 //传输显示数据1
            STB=1;                                                //显示数据1发送完毕STB置1
            TM1616write(0xC6);                        //设置显示地址2
            TM1616write(ledbuff[3]);                 //传输显示数据1
            STB=1;      
          }

         TM1616write(0x8F);                                //控制命令设置,设置显示开、显示最亮
         STB=1;    
        LCD_Delay(10);
        LCD_Delay(10);
    
    //#else
        STB1 = 1;
        L_CLK = 1;
        DIN = 1;

         TM1616write1(0x00);           //显示模式设置
         STB1=1;    
          TM1616write1(0x44);           //地址增加模式  数据命令设置
          STB1=1; 
        // for(j=0;j<4;j++)
          {
              TM1616write1(0xC0);                        //设置显示地址1
            TM1616write1(led1buff[0]);                 //传输显示数据1
            STB1=1;                                                //显示数据1发送完毕STB置1
            TM1616write1(0xC2);                        //设置显示地址1
            TM1616write1(led1buff[1]);                 //传输显示数据1
            STB1=1;                                                //显示数据1发送完毕STB置1
            TM1616write1(0xC4);                        //设置显示地址1
            TM1616write1(led1buff[2]);                 //传输显示数据1
            STB1=1;                                                //显示数据1发送完毕STB置1
            TM1616write1(0xC6);                        //设置显示地址2
            TM1616write1(led1buff[3]);                 //传输显示数据1
            STB1=1;      
          }

         TM1616write1(0x8F);                                //控制命令设置,设置显示开、显示最亮
         STB1=1;  
        #if 1    
         LCD_Delay(10);
         LCD_Delay(10);
         STB2 = 1;
         L_CLK = 1;
         DIN = 1;

         TM1616write2(0x00);           //显示模式设置
         STB2=1;    
          TM1616write2(0x44);           //地址增加模式  数据命令设置
          STB2=1; 
        // for(j=0;j<4;j++)
          {
              TM1616write2(0xC0);                        //设置显示地址1
            TM1616write2(led2buff[0]);                 //传输显示数据1
            STB2=1;                                                //显示数据1发送完毕STB置1
            TM1616write2(0xC2);                        //设置显示地址1
            TM1616write2(led2buff[1]);                 //传输显示数据1
            STB2=1;                                                //显示数据1发送完毕STB置1
            TM1616write2(0xC4);                        //设置显示地址1
            TM1616write2(led2buff[2]);                 //传输显示数据1
            STB2=1;                                                //显示数据1发送完毕STB置1
            TM1616write2(0xC6);                        //设置显示地址2
            TM1616write2(led2buff[3]);                 //传输显示数据1
            STB2=1;      
          }
    
         TM1616write2(0x8F);                                //控制命令设置,设置显示开、显示最亮
         STB2=1;  
         #endif
    #endif

         
}
 

 

void TM1616write(uchar wr_date)
{
       uchar i;


       
       STB=0;
          LCD_Delay(2);
   
        for(i=0;i<8;i++)
        {
            L_CLK=0;
            LCD_Delay(2);
            if(wr_date&0x01!=0)
            {
                    DIN=1;
            }
            else
            {
                    DIN=0;
            }
            LCD_Delay(2);
            L_CLK=1;
             LCD_Delay(2);
            wr_date=wr_date>>1;
        }
}
 

 

 

#define STB                       GET_BITFIELD(&PC_ODR).bit7
#define STB1                      GET_BITFIELD(&PG_ODR).bit0
#define STB2                      GET_BITFIELD(&PG_ODR).bit1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值