找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3715|回复: 6
打印 上一主题 下一主题
收起左侧

数码管计数求助 两块573驱动两位共阴数码管

[复制链接]
跳转到指定楼层
楼主
100黑币
两块573驱动两位共阴数码管,按键计数00——99,电路图如下

无标题.png (30.6 KB, 下载次数: 103)

无标题.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:230901 发表于 2017-9-8 16:47 | 只看该作者
这是要程序。。。
回复

使用道具 举报

板凳
ID:82765 发表于 2017-9-8 17:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

地板
ID:111634 发表于 2017-9-9 17:01 | 只看该作者
本帖最后由 zl2168 于 2017-9-9 17:09 编辑

统计T0引脚上10分钟内的脉冲数
实例71 统计T0引脚上10分钟内脉冲数.rar (52.96 KB, 下载次数: 4)

Proteus仿真一下,确认有效。以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版. 书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。


回复

使用道具 举报

5#
ID:162665 发表于 2017-9-9 20:20 | 只看该作者
首先你要知道锁存器是怎么工作的,然后会数码管静态,动态显示。锁存器的原理如图,代码自己写吧C:\Users\Administrator\Desktop
回复

使用道具 举报

6#
ID:225822 发表于 2017-9-10 20:02 | 只看该作者
给你程序自己修改吧,只是这个程序里是自动加1计数。两个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)  //取千位数
        {
                selectDuan=1;                //先发送段字符
                P1=displayNum[z%100000/10000];
                selectDuan=0;
                selectWei=1;                //再开通位选 可消除重影
                P0=selectPin[0];
                selectWei=0;
                delay();
        }

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

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

        if(z>9)  //取十位数
        {
                selectDuan=1;
                P1=displayNum[z%100/10];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[3];
                selectWei=0;
                delay();
        }
/*
        if(z>0)  //取个位数
        {       
                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++);
}

回复

使用道具 举报

7#
ID:186936 发表于 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)  //取千位数
        {
                selectDuan=1;                //先发送段字符
                P1=displayNum[z%100000/10000];
                selectDuan=0;
                selectWei=1;                //再开通位选 可消除重影
                P0=selectPin[0];
                selectWei=0;
                delay();
        }

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

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

        if(z>9)  //取十位数
        {
                selectDuan=1;
                P1=displayNum[z%100/10];
                selectDuan=0;
                selectWei=1;
                P0=selectPin[3];
                selectWei=0;
                delay();
        }
/*
        if(z>0)  //取个位数
        {        
                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++);
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表