微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请帮忙解答一个问题

请帮忙解答一个问题

时间:10-02 整理:3721RD 点击:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uint z;
void init()
{
TMOD=0x11;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
}
void delayms(uint z)
{
uchar x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void T0_timer() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
  P0=0xc0;
  dula=1;
  dula=0;
  P0=0xff;
  wela=1;
  P0=0x01;
  wela=0;
delayms(456);//为什么456灯亮 到了457灯就不亮了呢  

}
void T1_timer() interrupt 3
{
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
  P1=0x00;

}
void main()
{
init();
while(1);
}
问题如上 在延时那里为什么456的时候 数码管和灯都会亮 到了457灯就不会亮了呢只有数码管亮

不知道你这个灯数码管是怎么接,中断时面加个延时,全在中断里面,又没个优先级设置,估计是中为嵌套的原因,信息太少,只能猜

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top