欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 分享一個(gè)我常用的HC595驅(qū)動(dòng)數(shù)碼的可調(diào)用程序 [打印本頁(yè)]

作者: liaoxin401    時(shí)間: 2025-11-19 15:59
標(biāo)題: 分享一個(gè)我常用的HC595驅(qū)動(dòng)數(shù)碼的可調(diào)用程序
u8 const tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x00,0x00,0x00,0x00,0x00,0x40};  //碼表,每個(gè)板的碼表不一樣,大家可以根據(jù)需要修改
/************************595信號(hào)************************/
#define SHIFT_RCK               PA4    //鎖存 有時(shí)如果用STC的可能不能用define來(lái)定義,需要sbit來(lái)定義
#define SHIFT_DATA             PA0                //數(shù)據(jù)
#define SHIFT_LCHCLK    PA1                //時(shí)鐘
#define SHIFT_OE                PB0                //輸出使能  

/*********************************************************************
* 函數(shù)名稱:        Out595
* 功能描述:        其實(shí)這個(gè)是輸出鎖存信號(hào),這樣可以實(shí)現(xiàn)多個(gè)595串起來(lái),具體最多多少我沒(méi)試過(guò),最多我試過(guò)7個(gè)的
* 輸入?yún)?shù):       
* 輸出參數(shù):        無(wú)
* 返 回 值:        無(wú)

**********************************************************************/
void Out595(void)
{
  SHIFT_RCK = 0;
  //asm("nop");
  //asm("nop");
  SHIFT_RCK = 1;
}
/*********************************************************************
* 函數(shù)名稱:        SendByte
* 功能描述:        串行輸入,發(fā)送一個(gè)字節(jié)數(shù)據(jù)
* 輸入?yún)?shù):       
* 輸出參數(shù):        無(wú)
* 返 回 值:        無(wú)

**********************************************************************/
void SendByte(u16 byte)
{   
        u16 num,c;
        if(TriFlag == 0)
                num = tabTri[byte];   //因?yàn)槲乙?種不同的狀態(tài),所以這里做一個(gè)識(shí)別
        else
                num = tab[byte];
        //SHIFT_LCHCLK = 0;
        for(c=0;c<8;c++)
        {
                SHIFT_LCHCLK = 0;
                SHIFT_DATA=((num&0x80)>>7);  //分離最高位,移動(dòng)到最低位
                num = num<<1;
                SHIFT_LCHCLK = 1;
        }
        //SHIFT_LCHCLK = 1;
}
/*****************下面這段就是具體送數(shù)據(jù)的了,因?yàn)槲抑挥?個(gè)8,所以只送了2次***************/
void  DisplayRGY(u16 word,u8 Type)
{  
        u16 m,l;      //百位,十位,個(gè)位
    Type = 0;
        if (word>9)  //兩位數(shù)
        {
                m = (word%100)/10;
                l = word%10;
        }
        else             //一位數(shù)
        {
                m = 0x0a;
                l = word%10;
        }
        if(TriFlag == 0)
        {
                if(Type == 0)
                {                       
                        SendByte(h);      //紅十位                       
                        SendByte(l);   //黃個(gè)位
                }
        }
        else
        {
                if(Type == 0)
                {                       
                        SendByte(m);      //紅十位                       
                        SendByte(l);   //黃個(gè)位
                }
        }
       
        Out595();      //這里送的就是鎖存的信號(hào)
}
作者: shenqiwei    時(shí)間: 2025-11-29 03:05
謝謝分享




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1