音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

幫忙看看__74HC595級聯(lián)動態(tài)顯示的C程序

作者:江蘇野馬 欄目:單片機
幫忙看看__74HC595級聯(lián)動態(tài)顯示的C程序
/*該程序為兩片74HC595級聯(lián)實現(xiàn)8位7段LED動態(tài)顯示的驅動測試程序
  在8個7段LED上顯示"01234567"*/

#include<reg51.h>
#define uCHAR unsigned CHAR
uCHAR bdata OutByte;        /*定義待輸出字節(jié)變量*/
sbit Bit_Out=OutByte^7;        /*定義輸出字節(jié)的最高位,即輸出位*/
sbit    Bout=P2^0;            /*位輸出引腳*/
sbit    Sclk=P2^1;            /*位同步脈沖輸出*/
sbit   SLclk=P2^2;            /*鎖存脈沖輸出*/
uCHAR code Segment[]={
    0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,        /*共陰7段LED段碼表*/
    0x7c,0x39,0x5e,0x79,0x71,0x76,0x73,0x3e,0x00};


void OneLed_Out(uCHAR i,uCHAR Location)  /*輸出點亮一個7段LED顯示器*/
{
    uCHAR j;

    OutByte=Location;            /*先輸出位碼*/
    for(j=1;j<=8;j++)
    {
        Bout=Bit_Out;
        Sclk=0;Sclk=1;Sclk=0;    /*位同步脈沖輸出*/
        OutByte=OutByte<<1;
    }

    OutByte=Segment[i];        /*再輸出段碼*/
    for(j=1;j<=8;j++)
    {
        Bout=Bit_Out;
        Sclk=0;Sclk=1;Sclk=0;    /*位同步脈沖輸出*/
        OutByte=OutByte<<1;
    }

    SLclk=0;SLclk=1;SLclk=0;    /*一個鎖存脈沖輸出*/
}

void main()
{
    uCHAR i=0;
    uCHAR Location=1;                /*定義位碼*/

    while(1)
    {
        OneLed_Out(i,Location);
        i=i+1;
        Location=Location<<1;

        if(i==8)                /*8次一輪*/
        {
            i=0;
            Location=1;
        }
    }
}




2樓: >>參與討論
江蘇野馬
搞的我有點暈
同樣電路,匯編弄弄很順手就實現(xiàn)了
可這個C,我實在想不出問題出在哪兒
請高手指點一二

3樓: >>參與討論
computer00
也許是 Sclk=0;Sclk=1;Sclk=0; 太快了?加幾個nop進去,
讓它在那忽悠一陣````````

4樓: >>參與討論
likee
看不出有什么問題,樓主也沒有說有什么問題,圈圈也沒有說...
怎么圖中沒有復位呢?

5樓: >>參與討論
江蘇野馬
電路是在PROTEUS軟件下仿真調試的,所以復位可以略
謝謝樓上幾位
查出問題了

因為是共陰極顯示器
位碼要取反后再按逐位輸出
少了一個“~”按位取反

6樓: >>參與討論
cf100
好好的一個C,寫得比匯編還難看
void OneLed_Out(uchar i,uchar Location)  /*輸出點亮一個7段LED顯示器*/
{
    uchar j,k;

    OutByte=Location;            /*先輸出位碼*/
for(k=0;k<2;k++)
  {
    for(j=1;j<=8;j++)
    {
        SLclk=0;
        Sclk=0;    
        Bout=Bit_Out;
        Sclk=1;         /*位同步脈沖輸出*/
        OutByte=OutByte<<1;
        SLclk=1;
    }

    OutByte=Segment[i];        /*再輸出段碼*/
  }
   
}



參與討論
昵稱:
討論內容:
 
 
相關帖子
51外部擴充RAM的問題。
飛利浦半導體單片機產品研討會 [南京,全程免費還有禮品]
難道就沒有合適的不用外部晶振的時鐘芯片嗎?
pcb的怎么打印到pdf中
求助單片機開題報告
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號