找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1959|回复: 10
收起左侧

STC89C52RC单片机实现秒表实物的电路图检查

[复制链接]
ID:797796 发表于 2020-7-12 17:51 | 显示全部楼层 |阅读模式
60黑币
  大佬们好,我是一位新手,目前我需要实现: 采用两个按键和一位数码显示的单片机秒表设计的实物制作,其功能是:上电时显示提示符。按 A 键再按 B 键后,显示两键按下之间的时间 t(t <60s),单位为 ms。时间 t 用五位十进制整数显示,由一位数码管从最高位开始逐位显示一遍。要求:测量时间 t 采用对定时器中断的次数计数的方式实现。将定时器 T 设置为 1ms 中断的定时器,A 键按下后启动定时器 T 每隔 1ms 中断一次,在中断服务程序中对中断的次数进行计数,B 键按下后定时器 T 停止工作。规定数码管段各段LED的正向导通电流为1.8mA。    我想请问我按照我画的电路图进行焊接能满足要求吗?P0口的限流电阻和其他各个元件的参数选取得对吗?用万能板焊接有什么注意事项?谢谢大佬们





电路图.PNG
回复

使用道具 举报

ID:332444 发表于 2020-7-12 18:22 | 显示全部楼层
按仿真电路来论R1-10统统多余,按实际电路论,复位电路参数按手册要求。
回复

使用道具 举报

ID:797796 发表于 2020-7-12 18:56 | 显示全部楼层
xianfajushi 发表于 2020-7-12 18:22
按仿真电路来论R1-10统统多余,按实际电路论,复位电路参数按手册要求。

那在焊接的时候需要加上这些电阻吗,其他的元件参数仿真正常那焊接的时候也没问题吗?
回复

使用道具 举报

ID:642838 发表于 2020-7-12 21:10 | 显示全部楼层
R1,R2,RP1可以不需要。
回复

使用道具 举报

ID:332444 发表于 2020-7-13 06:31 | 显示全部楼层
按实际电路也一样不需要1-10电阻,数码管选用共阴,这样焊接电路元件少,花钱也少,电路显得精简得当。
回复

使用道具 举报

ID:96682 发表于 2020-7-13 08:15 来自手机 | 显示全部楼层
哈哈,紧盯单个数码管变换的时间数字眼睛会觉得很累
回复

使用道具 举报

ID:797796 发表于 2020-7-13 20:05 | 显示全部楼层
xianfajushi 发表于 2020-7-13 06:31
按实际电路也一样不需要1-10电阻,数码管选用共阴,这样焊接电路元件少,花钱也少,电路显得精简得当。

可是师傅要求加限流电阻R4-10而且数码管工作电流是1.8毫安,那计算得到限流电阻是1.6K,可是仿真的时候不亮了,要降低阻值才能亮,实物也是这样吗
回复

使用道具 举报

ID:642838 发表于 2020-7-13 20:14 | 显示全部楼层
Irvingzong 发表于 2020-7-13 20:05
可是师傅要求加限流电阻R4-10而且数码管工作电流是1.8毫安,那计算得到限流电阻是1.6K,可是仿真的时候不 ...

接共阴的话,1-10电阻可以不用,但是RP1是一定要的,而且Rp1上拉阻值要在680欧左右,否则亮度会非常低。
相比之下,还是用共阳数码管,这样可以省去RP1上拉电阻,R4---R10限流电阻还是接一个的好
回复

使用道具 举报

ID:797796 发表于 2020-7-13 20:20 | 显示全部楼层
odfggf 发表于 2020-7-13 20:14
接共阴的话,1-10电阻可以不用,但是RP1是一定要的,而且Rp1上拉阻值要在680欧左右,否则亮度会非常低。
...

噢噢,要求是共阳数码管,那可以接1.6K的限流电阻和10K上拉电阻吗
回复

使用道具 举报

ID:797796 发表于 2020-7-13 20:31 | 显示全部楼层
另外我这程序不知道哪里不对,显示的时间好像是乱的
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint m=0;
sbit A1=P3^4;
sbit A2=P3^5;
uint count,t;
uchar d,e,f;
uchar code table[]={0x14,0xde,0x38,0x1a,0xd2,0x13,0x11,0x9e,0x10,0x12};
uchar code cnt[]={10000,1000,100,10,1};
void delay(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=67;c>0;c--)
        for(b=124;b>0;b--)
            for(a=167;a>0;a--);
}

void start()
{
        TMOD=0x01; //T0 使用工作方式 1
        TH0=(65536-1000)/256; //1ms 定时
        TL0=(65536-1000)%256;
        EA=1;
        ET0=1;
        TR0=0;
}
void time0(void) interrupt 1 //T0 中断服务子程序
{
        TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;
        count++;
        if(count>=1)
        {count=0;
         t++;
         if(t>=60000)
         {t=0;}
        }
}


void display(uint t)  //显示子程序,从第一位开始逐位显示
{
         uint k=0,v;
         for(;k<5;k++)
         {
                 v=t/cnt[k]%10 ;
                 P0=table[v];
                delay();
            {for(f=23;f>0;f--)
                for(e=152;e>0;e--)
                    for(d=70;d>0;d--)
                                P0=0xFF;
                }
         }

}
void main(void)
{        start();
while(1)
{
        P0=0xb7;
        P3=0x30;
        if(P3!=0x30)
        {if(A1==0)                          //按键扫描
                {TR0=1;}
         if(A2==0)
                 {
                        TR0=0;
                        while(!A2);
                        while(P3==0x30)
                        {
                                display(t);
                        }
                }
       
        }               
}
}



回复

使用道具 举报

ID:801878 发表于 2020-7-28 10:03 | 显示全部楼层
用AD就可以了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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