找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

數(shù)碼管計數(shù)求助 兩塊573驅動兩位共陰數(shù)碼管

查看數(shù): 4621 | 評論數(shù): 6 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2017-8-13 05:50

正文摘要:

兩塊573驅動兩位共陰數(shù)碼管,按鍵計數(shù)00——99,電路圖如下

回復

ID:186936 發(fā)表于 2017-9-26 20:19
#include<reg52.h>
sbit selectWei=P2^7;
sbit selectDuan=P2^6;
unsigned char code selectPin[]={0x0e,0x0d,0x0b,0x07};
unsigned char code displayNum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int a;
unsigned int number;
void outPutNumber(unsigned int);
void delay();
void main()
{
        number=0;
        while(1)
        {
                outPutNumber(number);
                number++;
        }
}

void outPutNumber(unsigned int z)
{
        if(z>9999)  //取千位數(shù)
        {
                selectDuan=1;                //先發(fā)送段字符
                P1=displayNum[z%100000/10000];
                selectDuan=0;
                selectWei=1;                //再開通位選 可消除重影
                P0=selectPin[0];
                selectWei=0;
                delay();
        }

        if(z>999)  //取千位數(shù)
        {
                selectDuan=1;
                P1=displayNum[z%10000/1000];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[1];
                selectWei=0;
                delay();
        }

        if(z>99)  //取百位數(shù)
        {
                selectDuan=1;
                P1=displayNum[z%1000/100];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[2];
                selectWei=0;
                delay();
        }

        if(z>9)  //取十位數(shù)
        {
                selectDuan=1;
                P1=displayNum[z%100/10];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[3];
                selectWei=0;
                delay();
        }
/*
        if(z>0)  //取個位數(shù)
        {        
                selectDuan=1;
                P1=displayNum[z%10];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[3];
                selectWei=0;
                delay();
        }*/
}

void delay()
{
        int i,j;
        for(i=0;i<10;i++)
                for(j=0;j<110;j++);
}
ID:225822 發(fā)表于 2017-9-10 20:02
給你程序自己修改吧,只是這個程序里是自動加1計數(shù)。兩個573用來片選和段選分別鎖存。

#include<reg52.h>
sbit selectWei=P2^7;
sbit selectDuan=P2^6;
unsigned char code selectPin[]={0x0e,0x0d,0x0b,0x07};
unsigned char code displayNum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int a;
unsigned int number;
void outPutNumber(unsigned int);
void delay();
void main()
{
        number=0;
        while(1)
        {
                outPutNumber(number);
                number++;
        }
}

void outPutNumber(unsigned int z)
{
        if(z>9999)  //取千位數(shù)
        {
                selectDuan=1;                //先發(fā)送段字符
                P1=displayNum[z%100000/10000];
                selectDuan=0;
                selectWei=1;                //再開通位選 可消除重影
                P0=selectPin[0];
                selectWei=0;
                delay();
        }

        if(z>999)  //取千位數(shù)
        {
                selectDuan=1;
                P1=displayNum[z%10000/1000];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[1];
                selectWei=0;
                delay();
        }

        if(z>99)  //取百位數(shù)
        {
                selectDuan=1;
                P1=displayNum[z%1000/100];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[2];
                selectWei=0;
                delay();
        }

        if(z>9)  //取十位數(shù)
        {
                selectDuan=1;
                P1=displayNum[z%100/10];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[3];
                selectWei=0;
                delay();
        }
/*
        if(z>0)  //取個位數(shù)
        {       
                selectDuan=1;
                P1=displayNum[z%10];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[3];
                selectWei=0;
                delay();
        }*/
}

void delay()
{
        int i,j;
        for(i=0;i<10;i++)
                for(j=0;j<110;j++);
}

ID:162665 發(fā)表于 2017-9-9 20:20
首先你要知道鎖存器是怎么工作的,然后會數(shù)碼管靜態(tài),動態(tài)顯示。鎖存器的原理如圖,代碼自己寫吧C:\Users\Administrator\Desktop
ID:111634 發(fā)表于 2017-9-9 17:01
本帖最后由 zl2168 于 2017-9-9 17:09 編輯

統(tǒng)計T0引腳上10分鐘內的脈沖數(shù)
實例71 統(tǒng)計T0引腳上10分鐘內脈沖數(shù).rar (52.96 KB, 下載次數(shù): 4)

Proteus仿真一下,確認有效。以上摘自張志良編著《單片機實驗實訓100例》 ISBN 978-7-5124-1603-1,北航社出版. 書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。


ID:82765 發(fā)表于 2017-9-8 17:07
提示: 作者被禁止或刪除 內容自動屏蔽
ID:230901 發(fā)表于 2017-9-8 16:47
這是要程序。。。

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

Powered by 單片機教程網

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