74HC573,DS1302这些芯片的作用是什么?我初学者,望大家多多指教

2020-02-03 10:13发布

有谁能给小弟指点下74HC573在做八段数码管显示的时候有什么作用?
DS1302在做时钟的时候有什么作用?
单片机内不是有自带的定时器么?
我用的是AT89S52
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
xbpkid
1楼-- · 2020-02-03 13:49
 精彩回答 2  元偷偷看……
xinzhi1986
2楼-- · 2020-02-03 18:48
你最好还是多google一下吧。。。
74HC573在做数码管时是锁存+驱动用的
1302是时钟芯片,可以直接从内部读取年月日时间,其功耗极低,用个法拉电容就能走上一年半载的
单片机你去做个万年历比较麻烦,而且精度还不好做,1302就容易了。。。
xbpkid
3楼-- · 2020-02-03 22:55
额~谢谢楼上的
1302可以从内部直接读取时间是指电脑内部么?
另外74HC573还不是很明白,你看我做的一个八段数码管动态显示的一个实验程序:


#include <reg52.h>
#include <intrins.h>

unsigned char hour1, hour2,hour=0;
unsigned char min1, min2,minite=0;
unsigned char sec1, sec2,second=0;
int count = 0;

unsigned char tab[10] =
{
            0x3F,/*0*/
        0x06,/*1*/
        0x5B,/*2*/
        0x4F,/*3*/
        0x66,/*4*/
        0x6D,/*5*/
        0x7D,/*6*/
        0x07,/*7*/
        0x7F,/*8*/
        0x6F,/*9*/
};

void delay(int ms)
{
        int i;

        for (i=0 ; i<ms; i++)
                        ;
}

void time(void) interrupt 1 using 1
{
        TH0=(65536-10000)/256;
        TL0=(65536-10000)%256;

        count++;
       
        if (count == 100)
        {
                count = 0;
                second++;
        }

        sec1 = tab[second/10];
        sec2 = tab[second%10];

        if (second == 60)
        {
                second = 0;
                minite++;
        }

        min1 = tab[minite/10];
        min2 = tab[minite%10];

        if (minite == 60)
        {
                minite = 0;
                hour++;
        }
       
        hour1 = tab[hour/10];
        hour2 = tab[hour%10];
}


void time1(void) interrupt 0 using 2
{
        TR0 = !TR0;
}

void main()
{
        TMOD = 0x01;
        TH0=(65536-25000)/256;
        TL0=(65536-25000)%256;
        IP = 0x80;
        EX0=1;//外部中断0设置
        IT0=1;
        EA = 1;
        ET0 = 1;
        TR0 = 1;

        hour1 = tab[1];
        hour2 = tab[2];
        min1 = tab[0];
        min2 = tab[0];
        sec1 = tab[0];
        sec2 = tab[0];

        while (1)
        {
                P2 = 0;
                P0 = hour1;
                delay(10);
                P2 = 1;
                P0 = hour2;
                delay(10);
                P2 = 2;
                P0 = 0x40;
                delay(10);
                P2 = 3;
                P0 = min1;
                delay(10);
                P2 = 4;
                P0 = min2;
                delay(10);
                P2 = 5;
                P0 = 0x40;
                delay(10);
                P2 = 6;
                P0 = sec1;
                delay(10);
                P2 = 7;
                P0 = sec2;
                delay(10);               
        }
}
       
这里不是直接用P2 = 0、1、2、3、4、5、6、7就控制了那个数码管亮么?
貌似没有用到74HC573吧?
yanxinboy
4楼-- · 2020-02-04 03:07
程序是您写的.看程序573和蔼302都没有用到嘛

如果程序不是您写的,好好读懂就知道拉.

另1302, 573的运用的网上一大把, 搜搜然后实验下有问题多思考哦.
xbpkid
5楼-- · 2020-02-04 03:58
恩,程序是我写的。我就是想知道这样没有用573也能驱动数码管,那573的用处是什么呢?
ak100
6楼-- · 2020-02-04 07:56
 精彩回答 2  元偷偷看……

一周热门 更多>