久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

74HC573_74HC373鎖存顯示

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2011年01月18日   【字體:

①透明模式測(cè)試(~OE=0,LE=1)

    這種模式下,相當(dāng)于一個(gè)數(shù)據(jù)緩沖器,Q延遲D輸出相同的電平,通過(guò)單個(gè)數(shù)碼顯示0~F能夠得到驗(yàn)證。


②鎖存讀寄存器(~OE=0,LE=0)


    將LE拉低,輸入端的變化對(duì)輸出端沒(méi)有影響,這時(shí)在第一種模式的基礎(chǔ)上,寄存器中的數(shù)據(jù)被鎖存。


③鎖存輸出無(wú)效(~OE=1,LE=0)


    此模式下,不工作,沒(méi)有輸出,不工作。


/*

    驗(yàn)證程序出錯(cuò),特別注意使用P0口驅(qū)動(dòng)某一模塊的時(shí)候要加上拉電阻,盡量不要使用P0口。如果把P0全部替換為P2程序也是不正確的,因?yàn)槎x的按鍵也是P2,這時(shí)會(huì)一直執(zhí)行while(!key1);在程序執(zhí)行完第一次0~9的顯示后,P2^0和P2^2都被清零,且一直保持,這樣就會(huì)停留顯示9,因此根據(jù)電路的焊接情況將P2全部替換為P3,執(zhí)行程序能夠達(dá)到預(yù)想的功能。

*/

#include<reg52.h>

unsigned int tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

 

sbit OE=P1^0;                                  

 

sbit LE=P1^1;

 

sbit key1=P2^0;

sbit key2=P2^2;

 

void delayms(unsigned int cnt)

{

    unsigned int x,y;

    for(x=cnt;x>0;x--)

        for(y=110;y>0;y--);

}

main()

{

    unsigned int n;  

    OE=0;

    LE=1;   

    while(1)

    { 

        for(n=0;n<10;n++)

        {

            P0=tab[n];

            delayms(1000);

        }

        if(!key1)  //鎖存讀寄存器模式

        {

            delayms(10);

            while(!key1); //防止長(zhǎng)按不放;

            if(key1)

            {

                delayms(10);

                if(key1)

                {

                    OE=0;

                    LE=0;

                }

            }

        }

        if(!key2) //鎖存輸出無(wú)效

        {

            delayms(10);

            while(!key2); 

            if(key2)

            {

                delayms(10);

                if(key2)

                {

                    OE=1;

                    LE=1;

                }

            }

        }

    }

}

/*

    OE直接接地,不需要任何操作,OE置高電平?jīng)]有意義。修改程序后確實(shí)能夠?qū)崿F(xiàn)循環(huán)顯示0~f,但是按鍵失靈,也就是無(wú)法操縱LE清零。按鍵按下后P1^1沒(méi)有清零。也許是老毛病,在有較長(zhǎng)時(shí)間延時(shí)函數(shù)出現(xiàn)的地方,不能在主函數(shù)中出現(xiàn)按鍵檢測(cè),這樣是檢測(cè)不到信號(hào)的,以前出現(xiàn)過(guò)這種情況,因?yàn)榘存I信號(hào)和延時(shí)函數(shù)時(shí)間之比相差上百倍,只有在那幾百分之一秒的適當(dāng)時(shí)間按下按鍵才能被檢測(cè),這種幾率是很小的,所以按鍵會(huì)失效。

*/

#include<reg52.h>

 


unsigned int tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

 

sbit LE=P1^1;

sbit key1=P2^0;

sbit key2=P2^2;

 

void delayms(unsigned int cnt)

{

    unsigned int x,y;

    for(x=cnt;x>0;x--)

        for(y=110;y>0;y--);

}

 

main()

{

    unsigned int n,OE; 

    OE=0;

    LE=1;

    while(1)

    {

        for(n=0;n<10;n++)

        {

            P3=tab[n];

            delayms(1000);

        }

        if(!key1)

        {

            delayms(10);

            while(!key1);

            if(key1)

            {

                delayms(10);

                if(key1)

                    LE=0;

            }

        }

        if(!key2)

        {

            delayms(10);

            while(!key2);

            if(key2)

            {

                delayms(10);

                if(key2)

                    LE=1;

            }

        }

    }

}

/*

    修改按鍵程序,采用中斷或者定時(shí)掃描。因?yàn)榻泳原因,P3口已被使用,所以采用定時(shí)掃描進(jìn)行按鍵檢測(cè)。但是我的AVR Fighter和Progisp突然間都不能使用了,出現(xiàn)avr fighter沒(méi)有發(fā)現(xiàn)USB設(shè)備,查找硬件和驅(qū)動(dòng)程序都沒(méi)有問(wèn)題,可能是電腦出現(xiàn)了什么問(wèn)題,在系統(tǒng)還原之前換了一臺(tái)電腦,avr fighter還是不能用,但是Progisp能夠燒錄。此程序在按下key1的時(shí)候能夠進(jìn)行鎖定,但是key2失效,按下Key2的時(shí)候也能出現(xiàn)鎖定,總是出現(xiàn)混亂。

 

    萬(wàn)用表檢測(cè)P1^0口的電平,在key1被按下的時(shí)候確實(shí)被清零,在key2按鍵被按下的時(shí)候置一。但是P1^0口接LE,在按鍵key2被按下的時(shí)候應(yīng)該能夠重新跳進(jìn)主程序,繼續(xù)循環(huán)顯示,但是沒(méi)有變化。

*/

 

#include<reg51.h>

unsigned int tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

 

sbit LE=P1^0;

sbit key1=P2^0;

sbit key2=P2^2;

 

void delayms(unsigned int cnt)

{

    unsigned int x,y;

    for(x=cnt;x>0;x--)

        for(y=110;y>0;y--);

} 

 

main()

{

    unsigned int n; 

    LE=1;

 

 

    TMOD|=0x01;

    EA=1;

    TR0=1;

    ET0=1;

    TH0=(65536-1000)/256;

    TL0=(65536-1000)%256;

 

    while(1)

    {

        for(n=0;n<10;n++)

        {

            P3=tab[n];

            delayms(1000);

        }

 

    }

}

 

void timer0(void) interrupt 1 using 0

{

    TH0=(65536-1000)/256;//1MS檢測(cè)一次

    TL0=(65536-1000)%256;

    if(!key1)

    {

        delayms(10);

        while(!key1);

        if(key1)

        {

            delayms(10);

            if(key1)

                LE=0;

        }

    }

    if(!key2)

    {

        delayms(10);

        while(!key2);

        if(key2)

        {

            delayms(10);

            if(key2)

                LE=1;

        }

    }

}


/*

    使用調(diào)試模式,寄存器組發(fā)生沖突,去掉using x后,能夠跳至主程序。一般情況下在定期器和中斷中不要使用using,自動(dòng)進(jìn)行分配和優(yōu)化比較好!所謂下降沿觸發(fā),指的是進(jìn)入鎖存模式的時(shí)候!

*/

 

 

 

/*

    373的使用同573基本功能一樣,跳變沿觸發(fā)鎖存!注意實(shí)際中的引腳是交*排列的。下面使用proteus進(jìn)行模擬演示!上次上課使用using的時(shí)候要特別留意,一般不使用,自動(dòng)重載的含義(10模式2),第三種模式(11模式3)一般用于同步計(jì)數(shù)。

*/

#include<reg51.h>

unsigned int tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

 

sbit LE=P2^0;

sbit key1=P2^1;

sbit key2=P2^2;

 

void delayms(unsigned int cnt)

{

    unsigned int x,y;

    for(x=cnt;x>0;x--)

        for(y=110;y>0;y--);

}

 

main()

{

    unsigned int n;

    LE=1;

 

    TMOD|=0x01;

    EA=1;

    TR0=1;

    ET0=1;

    TH0=(65536-10000)/256;

    TL0=(65536-10000)%256;

 

    while(1)

    {

        for(n=0;n<10;n++)

        {

            P1=tab[n];

            P3=0x0;

            delayms(1000);

            P3=0xff;

            delayms(1000); 

        }

    }

}

 

void timer0(void) interrupt 1 using 2

{

    TH0=(65536-20000)/256;//20MS檢測(cè)一次

    TL0=(65536-20000)%256;

    if(!key1)

    {

        delayms(5);

        while(!key1);

        if(key1)

        {

            delayms(5);

            if(key1)

                LE=0;

        }

    }

    if(!key2)

    {

        delayms(5);

        while(!key2);

        if(key2)

        {

            delayms(5);

            if(key2)

                LE=1;

        }

    }

}
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 男女视频在线观看免费 | 精品一区二区三区在线观看国产 | 91九色在线观看 | 性色av网站| 天天色影视综合 | av黄色在线播放 | 欧美天堂 | av资源中文在线天堂 | 在线观看视频亚洲 | www.天天操 | 午夜男人天堂 | 97精品久久 | 成人午夜在线观看 | 国产一区二区三区视频 | 久久久久欧美 | 亚洲欧美在线观看 | 国产中文字幕亚洲 | 在线色网| 黄篇网址 | 青娱乐一区二区 | 鸡毛片 | 中文字幕一区二区三区日韩精品 | 高清欧美性猛交xxxx黑人猛交 | 羞羞色网站 | a欧美 | av在线伊人 | 亚洲欧洲日韩精品 中文字幕 | 精品欧美一区二区精品久久 | 国产精品视频在 | 羞羞的视频免费看 | 久久尤物免费一区二区三区 | 国产99久久精品一区二区300 | 成人在线一区二区 | 一区二区视频在线 | 日韩成人在线播放 | 精品产国自在拍 | 色眯眯视频在线观看 | 亚洲一区二区电影网 | 蜜桃视频在线观看免费视频网站www | 野狼在线社区2017入口 | 亚洲精品一区二区网址 |