打印

大侠止步,新手求教

[复制链接]
2035|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
atianjun|  楼主 | 2010-4-5 22:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新人求教,忘路过的大虾指点一二。
电气图上是这样连接的P2口分别(74hc245n用于LED)连接led和数码管的断选,P1口用74hc138连接数码管的位选。
   我想问下74HC254N是否是一个摆设,要或不要都行。
   还有我改写了一段程序(led1200MS闪一次,数码管1S),程序中数码管是不是占用了LED的时间。
帮忙看下  谢谢了啦
#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int
uchar num,num0,num1,shi,ge;
void delayms(uint);
sbit led1=P2^0;    //位定义
void display(uchar,uchar);
uchar code table[]={0x3f,0x06,0x5b,0x4f,  //定义数码管数组
      0x66,0x6d,0x7d,0x07,
      0x7f,0x6f,0x77,0x7c,
      0x39,0x5e,0x79,0x71};
void main()
{
TMOD=0x11;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
EA=1;
ET0=1;
ET1=1;
TR1=1;
TR1=1;
while(1)
{
  display(shi,ge);
}
}
void display(uchar shi,uchar ge)   //数码管显示子函数
{
P1=0x00;
P2=table[shi];
delayms(5);
P1=0x01;
P2=table[ge];
delayms(5);
}
void delayms(uint xms)     //延时
{
uint i,j;
for(i=xms;i>0;i--)
  for(j=110;j>0;j--);
}
void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num0++;
if(num0==4)
{
  num0=0;
  led1=~led1;
}
}
void T1_time() interrupt 3    //定时器1中断
{
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
num1++;
if(num1==20)     //延时1s
{
  num1=0;
  num++;
  if(num==60)    //记数60
   num=0;
   shi=num/10;    //分开显示
   ge=num%10;
}
}

相关帖子

沙发
NE5532| | 2010-4-5 22:10 | 只看该作者
你从驱动电流的角度找找答案呢。

使用特权

评论回复
板凳
atianjun|  楼主 | 2010-4-5 22:13 | 只看该作者
你从驱动电流的角度找找答案呢。
NE5532 发表于 2010-4-5 22:10

好的  谢谢
   但程序部分还需答案

使用特权

评论回复
地板
atianjun|  楼主 | 2010-4-5 22:22 | 只看该作者
都怪我没看芯片的资料 汗:L

使用特权

评论回复
5
NE5532| | 2010-4-6 20:29 | 只看该作者
没问题了哇?自己发现问题,就是进步哈!

使用特权

评论回复
6
atianjun|  楼主 | 2010-4-7 12:39 | 只看该作者
程序部分我也弄明白了,共用LED和数码管共用了P2口。谢谢各位啦

使用特权

评论回复
7
bobchen1122| | 2010-4-8 21:07 | 只看该作者
自学成才

使用特权

评论回复
8
fangyan2010| | 2010-4-13 21:00 | 只看该作者
反应速度还挺快的,鼓励鼓励!:victory:

使用特权

评论回复
9
zsuqing| | 2010-4-14 19:26 | 只看该作者
两个定时器 时长相同 同时中断 相互干扰
ET0=1;
ET1=1;
TR1=1;
TR1=1;错误
TR0=1;

使用特权

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

本版积分规则

13

主题

78

帖子

1

粉丝