专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
74HC573,DS1302这些芯片的作用是什么?我初学者,望大家多多指教
2020-02-03 10:13
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
5963
20
20
有谁能给小弟指点下74HC573在做八段数码管显示的时候有什么作用?
DS1302在做时钟的时候有什么作用?
单片机内不是有自带的定时器么?
我用的是AT89S52
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
20条回答
xbpkid
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吧?
加载中...
查看其它20个回答
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
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吧?
一周热门 更多>