找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6562|回復: 1
打印 上一主題 下一主題
收起左側

數(shù)碼管_動態(tài)掃描

[復制鏈接]
跳轉到指定樓層
樓主
ID:1 發(fā)表于 2010-1-2 18:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/************************************************
跳線設置:雙排針除PSEN外全部插上
顯示效果:  在開發(fā)板的四位八段共陰數(shù)碼管上顯示0-7
相關知識點:1.數(shù)碼管的驅動顯示方式
            2.利用2個74HC573芯片將P0口分時復用輸出
注意:在做本實驗之前先要弄懂74hc573的原理
************************************************/
#include"AT89x52.h"
#include"intrins.h"
#include"51hei.h"
        
#define uint unsigned int
#define uchar unsigned char

sbit DUAN=P2^6;     //74HC573的LE端  U1  LED數(shù)碼管的段選端
sbit WEI=P2^7;      //74HC573的LE端  U2  LED數(shù)碼管的位選端
uchar Temp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //共陰顯示字庫

void delay(uint z)              //1ms延時
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

main()
{
        uchar i,y;
        uchar temp=0xfe;      //化為2進制為11111110,供動態(tài)掃描移位用
        guandz();             //關掉8*8點陣的顯示

        WEI=0;
        DUAN=0;

        while(1)
        {
                for(i=0;i<8;i++)
                {  
           //----動態(tài)掃描分3個步驟,以后板子上用動態(tài)顯示的地方都可以套用此程序-----------------
                   //-----步驟一:送位碼---------------------------------------------------
            P0=temp;     //位選送p0,其實在任一個時刻八個數(shù)碼管中只有一個是亮的,因為temp始終只有一個位為0.  
                         //但是我們看到的是連續(xù)的,我們的眼睛欺騙了自己,原因是由于交替的速度非常快,視覺暫留
                        WEI=1;       //讓第2個74hc573處于直通狀態(tài),這樣就把P0口上的位碼到數(shù)碼管了.
                        WEI=0;       //鎖存,保持第2個74hc573輸出的位碼不變,即不受P0輸入的影響.
                    
             //-----步驟二:送段碼-------------------------------------------------
            P0=Temp[ i];  //段碼送入P0口
                        DUAN=1;      //讓第一個74hc573處于直通狀態(tài),這時剛送P0口的段碼將被送到數(shù)碼管上了,因為之前輸入了位碼,所以現(xiàn)在某一個數(shù)碼管將會被點亮   
                        DUAN=0;      //鎖存,讓段碼維持在第一個74hc573的輸出上不變,不受P0輸入的影響.
        delay(1);            //把數(shù)碼管點亮1毫秒, 如果改為delay(60); 你將看到動態(tài)掃描的慢鏡頭,讓你徹底的理解動態(tài)掃描
        temp=_crol_(temp,1); //移位,讓下一個數(shù)碼管亮

             //-----步驟三:消隱---------------------------------------------------
                    P0=0x00;    //00送p0口
                        DUAN=1;     //把p0口上的00H送到負責段選的74hc573上,其實就是滅掉所有數(shù)碼管的顯示                 
                        DUAN=0;     //鎖存,維持第一個74hc573的輸出不變
          delay(2); //熄滅的時間長短,可調(diào)整亮度
                }
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:20672 發(fā)表于 2010-1-2 22:23 | 只看該作者

好東西 ,我頂

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表