74HC573,DS1302这些芯片的作用是什么?我初学者,望大家多多指教
有谁能给小弟指点下74HC573在做八段数码管显示的时候有什么作用?DS1302在做时钟的时候有什么作用?
单片机内不是有自带的定时器么?
我用的是AT89S52 拜托大家说说好不? 你最好还是多google一下吧。。。
74HC573在做数码管时是锁存+驱动用的
1302是时钟芯片,可以直接从内部读取年月日时间,其功耗极低,用个法拉电容就能走上一年半载的
单片机你去做个万年历比较麻烦,而且精度还不好做,1302就容易了。。。 额~谢谢楼上的
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吧? 程序是您写的.看程序573和蔼302都没有用到嘛
如果程序不是您写的,好好读懂就知道拉.
另1302, 573的运用的网上一大把, 搜搜然后实验下有问题多思考哦. 恩,程序是我写的。我就是想知道这样没有用573也能驱动数码管,那573的用处是什么呢? mark 要让一根棍子立住有什么办法呢?一是你一直扶着它,二是找一个或做一个座,把棍子插在座上。573就是这座。 我也是初学者。573能够锁存数据和驱动数码管。你的程序没有用到锁存功能。你可以看看原理图看573的11脚连哪个IO口。高电平开启,再给个低电平就锁住了。驱动数码管的话,那么不用加四个三极管驱动他了。 恩,很有帮助 有我需要的东西 谢谢了 回复【7楼】snakevip
-----------------------------------------------------------------------
比喻贴切~~说得好~!顶下 573只是驱动数码管的方法之一 用译码器也行的 回复【楼主位】xbpkid
-----------------------------------------------------------------------
主要是用在扩展I/O口的,
点击此处下载 ourdev_665959WYHLEC.PDF(文件大小:53K) (原文件名:74HC573.PDF) 你的程序是以扫描的形式显示数据的,可以直接用UNL2000系列的高压大电流达林顿晶体管阵列来进行显示,不需要用573。达林顿晶体管阵列作用就相当于一组三极管。而573是带锁存的,也就是说你把数据比如hour输入相应数码管的573后,将573的11脚设为低电平,数据会被锁存。这时你就可以不用不断地扫描来显示数字了,只要在更新数字的时候将11脚设为高电平,重新写入新的数据。573的中文PDF附在后面了,你可以看一下。BY THE WAY,我啥时候才能过审核啊。。。74HC573中文pdfourdev_665971F2CCD2.pdf(文件大小:139K) (原文件名:74HC573中文.pdf) 74hc154,159都可以的 573是锁存器啊。。。 573锁存是实现数码管动态扫描显示的。看看郭天祥的十天学会单片机就懂了。 573:
1、驱动,单片机IO无法直接驱动数码管,如果单独接,则需要三极管,而573可以实现单片机逻辑输入,而输出时给数码管提供足够的电流
2、节省IO,6位数码管,不用锁存器需要8+6=14个IO,而用锁存器就只需要8+2个,并且这8个口在不需要操作数码管时,还可与其他IC进行通讯,只需把573的控制端拉高即可。
1302:
如果单纯用51的定时器做时钟,会占用过多资源,走时不准,功耗也很大,初学做个试验玩玩还是可以的。如果用1302,该芯片可以提供稳定精确地走时,单片机只需在第一次上电时进行必要的时间设定,以后需要时间的时候只需从1302读取数据即可。1302自带长短月、闰年补偿等功能,51要想实现会灰常麻烦~掉电后只需微弱的电流即可保持精确走时~ 学习了
页:
[1]