打印

74hc573控制数码管

[复制链接]
10647|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用51单片机的一个P0口和两个74hc573控制八个数码管的显示!!!!!请指导一下  谢谢!!!!!
沙发
jack821119| | 2010-10-11 10:39 | 只看该作者
为什么要用2个74hc573了?1个573都可以了

使用特权

评论回复
板凳
老鱼探戈| | 2010-10-11 13:03 | 只看该作者
用一个MAX7219就搞定了,只要三个IO口就可以了

使用特权

评论回复
地板
john_light| | 2010-10-11 13:05 | 只看该作者
max7219的价格可不低

使用特权

评论回复
5
chenke1988|  楼主 | 2010-10-11 17:17 | 只看该作者
我想实现一个573控制八位数码管的位选 另一个控制数码管的段选,八个数码管分别显示0~7,只用P0口,一个573好像不行吧!!

使用特权

评论回复
6
chenke1988|  楼主 | 2010-10-11 17:20 | 只看该作者
我是想节省IO口才用的573啊 用三个太多了 我只想用一个 3# 老鱼探戈

使用特权

评论回复
7
senzh01| | 2010-10-12 09:27 | 只看该作者
除了P0口外,片选还得用口线吧?!用595是最省口线的!不怕闪的话用164也可以!

使用特权

评论回复
8
code-03| | 2010-10-12 15:39 | 只看该作者
哈哈,推荐用595,、、

使用特权

评论回复
9
chenke1988|  楼主 | 2010-10-12 16:58 | 只看该作者
如果用573程序怎么写啊? 8# code-03

使用特权

评论回复
10
chenke1988|  楼主 | 2010-10-12 17:08 | 只看该作者
就用一个P0口啊不用其他口了 7# senzh01

使用特权

评论回复
11
2008付海龙| | 2010-10-12 22:22 | 只看该作者
还是非问题573比较经典。呵呵

使用特权

评论回复
12
qqq44488| | 2010-10-12 22:32 | 只看该作者
dula=1;
P0=table[shi];
dula=0;
P0=0xff;
wela=1;
P0=0x7d;
wela=0;
delayms(5);
dula=1;
P0=table[ge];
dula=0;
P0=0xff;
wela=1;
P0=0x7b;
wela=0;
delayms(5);


附件是个六位数码管  加俩就可以了

未命名.jpg (33.29 KB )

未命名.jpg

使用特权

评论回复
13
chenke1988|  楼主 | 2010-10-13 09:18 | 只看该作者
谢谢啦!!还想问一下这个程序的delayms(5);起的是什么作用????如果没有这句话,数码管好像不能正常显示啊!!
12# qqq44488

使用特权

评论回复
14
zhaoyu2005| | 2010-10-13 10:16 | 只看该作者
两片595驱动8位数码管合适,一片负责段,一片负责位,两片级联,3根口线搞定

使用特权

评论回复
15
yuanquan12345| | 2010-10-14 11:05 | 只看该作者
谢谢啦!!还想问一下这个程序的delayms(5);起的是什么作用????如果没有这句话,数码管好像不能正常显示啊!!
12# qqq44488
延时的作用。

使用特权

评论回复
16
qqq44488| | 2010-10-14 11:15 | 只看该作者
谢谢啦!!还想问一下这个程序的delayms(5);起的是什么作用????如果没有这句话,数码管好像不能正常显示啊!!
12# qqq44488
chenke1988 发表于 2010-10-13 09:18


延时时间  你还得写一个延时函数

使用特权

评论回复
17
zjswuyunbo| | 2010-10-14 11:22 | 只看该作者
8个数码管?
连573都可以不要

使用特权

评论回复
18
yuyi21ic| | 2010-10-14 11:59 | 只看该作者
网上一搜就一堆啊,LZ!

使用特权

评论回复
19
超越-梦想| | 2014-8-12 10:53 | 只看该作者
大神们求指教
我用74hc573驱动数码管做一个时钟显示时分秒
仿真后数码管从右往左依次显示0,最后停在最左边数码管上,常亮并且显示0
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit P3_1=P3^1;
sbit P3_0=P3^0;
void delays(uint);
uchar led_data[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar miao=0,fen=0,shi=0,num=0;
void main()
{
  TMOD=0x01;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  EA=1;
  ET0=1;
  TR0=1;
  while(1)
{
  P3_1=1;//位选
  P2=0x80;
  P3_1=0;

  P3_0=1;//显示
  P0=led_data[miao%10];
  delays(100);
  P3_0=0;

  P3_1=1;//位选
  P2=0x40;
  P3_1=0;

  P3_0=1;//显示
  P0=led_data[miao/10];
  delays(100);
  P3_0=0;

  P3_1=1;//位选
  P2=0x20;
  P3_1=0;

  P3_0=1;//显示
  P0=led_data[fen%10];
  delays(100);
  P3_0=0;

  P3_1=1;//位选
  P2=0x10;
  P3_1=0;

  P3_0=1;//显示
  P0=led_data[fen/10];
  delays(100);
  P3_0=0;

  P3_1=1;//位选
  P2=0x08;
  P3_1=0;

  P3_0=1;//显示
  P0=led_data[shi%10];
  delays(100);
  P3_0=0;

  P3_1=1;//位选
  P2=0x04;
  P3_1=0;

  P3_0=1;//显示
  P0=led_data[shi/10];
  delays(100);
  P3_0=0;
}
}
void T0_time()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
while(num==20)
{
  miao++;
  num=0;
  while(miao<=59)
  {
   fen++;miao=0;
  }
  while(fen<=59)
  {
   shi++;fen=0;
  }
  while(shi<=24)
  {
   shi=0;
  }
}
}
void delays(uint xms)
{
uint j,k;
for(k=xms;k>0;k--)
    for(j=110;j>0;j--);
}









使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

58

帖子

0

粉丝