51单片机程序运行异常

51单片机程序运行异常,第1张

void pause0() interrupt 0

{

TR0=0; //你在外部中断0中把定时器0禁止了,退出外部中断后,没有开启。

}

/

你可以这样写,第一次进入外部中断关闭定时器0,

第二次进入外部中断就打开定时器0,然后循环,如下!

/

#include<reg52h>

#include<intrinsh>

#define uchar unsigned char

#define uint unsigned int

uchar aa,num;

bit temp=0; //用于存储进入外部中断的标志,第一次进入后取反为1

void main()

{

while(1)

{

TMOD=0x01;

EA=1;

EX0=1;

ET0=1;

IT0=1; //这时改为下降沿触发中断

TR0=1;

aa=0xfe;

P1=aa;

while(1)

{

if(num==20)

{

num=0;

aa=_crol_(aa,1);

P1=aa;

}

}

}

}

void timer0() interrupt 1

{

TH0=0x3C;

TL0=0xB0;

num++;

}

void pause0() interrupt 0

{

temp = ~temp;

if(temp)TR0=0;

else TR0=1;

}

case 0 : ADDR0=0; ADDR1=0; ADDR2=0;P0=number[a[0]]; break;

case 1 : ADDR0=1; ADDR1=0; ADDR2=0;P0=number[a[1]]; break;

case 2 : ADDR0=0; ADDR1=1; ADDR2=0;P0=number[a[2]]; break;

case 3 : ADDR0=1; ADDR1=1; ADDR2=0;P0=number[a[3]]; break;

你每次切LED的时候,先切了地址线,没有动数据,导致上一个LED的数据,会在下一个地址上出现,瞬间闪烁,点亮不该亮的段位

建议先将P0=0,小延时,然后输出新地址线,然后输出新的LED数据

程序如下:

#include <reg52h>

sbit led1 = P2^0;

sbit led2 = P2^1;

sbit led3 = P2^2;

sbit led4 = P2^3;

sbit led5 = P2^4;

sbit led6 = P2^5;

sbit led7 = P2^6;

sbit led8 = P2^7;

void main()

{

  int i,j;

 //点亮第一个灯

  led1 = 1;

  led2 = 0;

  led3 = 0;

  led4 = 0;

  led5 = 0;

  led6 = 0;

  led7 = 0;

  led8 = 0;

  //延时1秒

for(i = 0;i < 110; ++i)

{

 for(j = 0; j < 1000; ++j)

 {

   ;//什么也不做

 }

}

  //点亮第二个灯

  led1 = 0;

  led2 = 1;

  led3 = 0;

  led4 = 0;

  led5 = 0;

  led6 = 0;

  led7 = 0;

  led8 = 0; 

  //点亮剩余的灯

  //省略……

  while(1);

}

扩展资料:

流水灯几点说明:

void:因为该延时函数不需要返回值,所以写为void

delay1s:该函数的函数名,命名需要符合C语言的标识符命名规则。

(): 不需要传入参数,所以括号中为空

至此我们可以把流水灯程序写为以下形式:

sbit P10=p^0 少了分号,而且定义端口最右边的p要大写 TH0=(655535-1000)/256;TL0=(65535-1000)%256;这里的是延时,这里只用看1000就知道延时1ms,如果里面的1000换成10000就是延时10ms

以上就是关于51单片机程序运行异常全部的内容,包括:51单片机程序运行异常、51单片机计数器程序怎么不稳定 求解答 下面是我的程序。(其中key.h已经设定好了各个使能端 没错)、51单片机流水灯程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9783673.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存