xbpkid 发表于 2010-1-22 15:35:26

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

有谁能给小弟指点下74HC573在做八段数码管显示的时候有什么作用?
DS1302在做时钟的时候有什么作用?
单片机内不是有自带的定时器么?
我用的是AT89S52

xbpkid 发表于 2010-1-22 17:10:48

拜托大家说说好不?

xinzhi1986 发表于 2010-1-24 00:02:11

你最好还是多google一下吧。。。
74HC573在做数码管时是锁存+驱动用的
1302是时钟芯片,可以直接从内部读取年月日时间,其功耗极低,用个法拉电容就能走上一年半载的
单片机你去做个万年历比较麻烦,而且精度还不好做,1302就容易了。。。

xbpkid 发表于 2010-1-24 10:34:16

额~谢谢楼上的
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 =
{
          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;
        sec2 = tab;

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

        min1 = tab;
        min2 = tab;

        if (minite == 60)
        {
                minite = 0;
                hour++;
        }
       
        hour1 = tab;
        hour2 = tab;
}


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;
        hour2 = tab;
        min1 = tab;
        min2 = tab;
        sec1 = tab;
        sec2 = tab;

        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 发表于 2010-1-25 10:25:31

程序是您写的.看程序573和蔼302都没有用到嘛

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

另1302, 573的运用的网上一大把, 搜搜然后实验下有问题多思考哦.

xbpkid 发表于 2010-1-25 11:10:29

恩,程序是我写的。我就是想知道这样没有用573也能驱动数码管,那573的用处是什么呢?

ak100 发表于 2010-4-10 17:30:22

mark

snakevip 发表于 2011-1-30 01:20:37

要让一根棍子立住有什么办法呢?一是你一直扶着它,二是找一个或做一个座,把棍子插在座上。573就是这座。

deadineyes 发表于 2011-1-31 00:02:08

我也是初学者。573能够锁存数据和驱动数码管。你的程序没有用到锁存功能。你可以看看原理图看573的11脚连哪个IO口。高电平开启,再给个低电平就锁住了。驱动数码管的话,那么不用加四个三极管驱动他了。

hongfengvv 发表于 2011-8-5 20:10:53

恩,很有帮助

123yfy 发表于 2011-8-9 11:10:02

有我需要的东西 谢谢了

jamesguo37 发表于 2011-8-9 12:11:20

回复【7楼】snakevip
-----------------------------------------------------------------------

比喻贴切~~说得好~!顶下

hzc171 发表于 2011-8-9 19:40:00

573只是驱动数码管的方法之一 用译码器也行的

libxlove 发表于 2011-8-9 20:45:02

回复【楼主位】xbpkid
-----------------------------------------------------------------------

主要是用在扩展I/O口的,

点击此处下载 ourdev_665959WYHLEC.PDF(文件大小:53K) (原文件名:74HC573.PDF)

goodjob1 发表于 2011-8-9 20:57:29

你的程序是以扫描的形式显示数据的,可以直接用UNL2000系列的高压大电流达林顿晶体管阵列来进行显示,不需要用573。达林顿晶体管阵列作用就相当于一组三极管。而573是带锁存的,也就是说你把数据比如hour输入相应数码管的573后,将573的11脚设为低电平,数据会被锁存。这时你就可以不用不断地扫描来显示数字了,只要在更新数字的时候将11脚设为高电平,重新写入新的数据。573的中文PDF附在后面了,你可以看一下。BY THE WAY,我啥时候才能过审核啊。。。74HC573中文pdfourdev_665971F2CCD2.pdf(文件大小:139K) (原文件名:74HC573中文.pdf)

dahuangabc 发表于 2011-8-9 21:18:07

74hc154,159都可以的

hongdan0714j 发表于 2011-8-9 21:53:44

573是锁存器啊。。。

Edward3121 发表于 2011-8-10 00:38:22

573锁存是实现数码管动态扫描显示的。看看郭天祥的十天学会单片机就懂了。

zgxcom123 发表于 2011-8-10 00:54:12

573:
1、驱动,单片机IO无法直接驱动数码管,如果单独接,则需要三极管,而573可以实现单片机逻辑输入,而输出时给数码管提供足够的电流
2、节省IO,6位数码管,不用锁存器需要8+6=14个IO,而用锁存器就只需要8+2个,并且这8个口在不需要操作数码管时,还可与其他IC进行通讯,只需把573的控制端拉高即可。

1302:
如果单纯用51的定时器做时钟,会占用过多资源,走时不准,功耗也很大,初学做个试验玩玩还是可以的。如果用1302,该芯片可以提供稳定精确地走时,单片机只需在第一次上电时进行必要的时间设定,以后需要时间的时候只需从1302读取数据即可。1302自带长短月、闰年补偿等功能,51要想实现会灰常麻烦~掉电后只需微弱的电流即可保持精确走时~

nthaxw 发表于 2012-10-8 14:07:59

学习了                  
页: [1]
查看完整版本: 74HC573,DS1302这些芯片的作用是什么?我初学者,望大家多多指教