谁哪里有成熟,稳定,高清,有码的TM1628的驱动程序发上来共同探讨研究呀?

2020-02-05 08:52发布

RT
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
john78
2020-02-05 13:43
要程序就直接说,讨论研究先放上你的,我只有TM1638的
void WR_TM1628_Byte(uchar TM_dat)
{
    uchar i;
    for(i=0;i<8;i++)
    {

            if(TM_dat&0x01) TM_DIO=1;
            else TM_DIO=0;
        TM_CLK=0;         //

        TM_dat>>=1;       //数据右移位
        TM_CLK=1;         //
    }
}



void Wr_TM_CMD(uchar TMcmd)
{
    TM_STB=0;   //片选,0有效

    WR_TM1628_Byte(TMcmd);

    TM_STB=1;   //片选,1无效
    TM_DIO=1;
}


uchar Read_TM_Byte()
{
    uchar i,k;
    k=0;
    for(i=0;i<8;i++)
    {
         TM_CLK=0;
         k=k>>1;
         _nop_();
                           _nop_();
                           _nop_();
         if(TM_DIO)
         {
                         k|=0x80;
         }//1000 0000  
          TM_CLK=1;
         _nop_();
        
    }
    return (k);
}

char Read_keynumber()//读TM1628的key值并入5个数组里面
{
       
                 TM_STB=0;    //片选,0有效
    WR_TM1628_Byte(0x42);//读键值命令0x42
    TM_DIO = 1;                                         //少了这句还不行
                _nop_();
                _nop_();
    key[0]=Read_TM_Byte();//读key值
    key[1]=Read_TM_Byte();//读key值
    key[2]=Read_TM_Byte();//读key值
    key[3]=Read_TM_Byte();//读key值
    TM_STB=1;   //片选,置高,无效
   

   return 1;
}


//数码管显示
void ledout()
{
        led_power = 1;
        ledstatus[0] = LedDot[led_val];

       
       
       
    Wr_TM_CMD(0x03);//显示模式
    Wr_TM_CMD(0x40);//地址自动加一
        TM_STB=0;   
        WR_TM1628_Byte(0xc0);//地址0开始
        WR_TM1628_Byte(ledstatus[0]);                //8
        WR_TM1628_Byte(ledstatus[1]);
        WR_TM1628_Byte(ledstatus[2]);                //LED
        WR_TM1628_Byte(ledstatus[3]);
        WR_TM1628_Byte(ledstatus[4]);


    TM_STB=1;        //片选,置高无效
    Wr_TM_CMD(0x8a);  //显示开

                       
}

一周热门 更多>