標題: 數(shù)碼管計數(shù)求助 兩塊573驅動兩位共陰數(shù)碼管 [打印本頁]

作者: 驅蚊燈    時間: 2017-8-13 05:50
標題: 數(shù)碼管計數(shù)求助 兩塊573驅動兩位共陰數(shù)碼管
兩塊573驅動兩位共陰數(shù)碼管,按鍵計數(shù)00——99,電路圖如下

無標題.png (30.6 KB, 下載次數(shù): 103)

無標題.png

作者: 想飛的豬1    時間: 2017-9-8 16:47
這是要程序。。。
作者: cjjcjj1    時間: 2017-9-8 17:07
提示: 作者被禁止或刪除 內容自動屏蔽
作者: zl2168    時間: 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文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。



作者: 常常常    時間: 2017-9-9 20:20
首先你要知道鎖存器是怎么工作的,然后會數(shù)碼管靜態(tài),動態(tài)顯示。鎖存器的原理如圖,代碼自己寫吧C:\Users\Administrator\Desktop
作者: xfenghany    時間: 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++);
}


作者: wxc19960311    時間: 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++);
}




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