|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有高手帮我看看中断定时的 左右循环灯 一次后乱跳
能帮忙详细解释下吗?
#include<reg52.h> //52单片机头文件
#include <intrins.h> //包含有左右循环移位子函数的库
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
//sbit P1_0=P1^0;
uchar tt,a,x,y;
void main() //主函数
{
TMOD=0x01;//设置定时器0为工作方式1
EA=1;//开总中断
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
x=0;
y=7;
a=0xfe;
while(1)//等待中断产生
{
if(y>=7,x<=7)
{
if(tt==1) //每进入10次中断即为500ms,执行一次显示变化。
{
tt=0;
P1=a;
a=_crol_(a,1);
x++;
y++;
}
}
else
if(y>=7)
if(tt==1) //每进入10次中断即为500ms,执行一次显示变化。
{
tt=0;
P1=a;
a=_cror_(a,1);
y--;
//x--;
//x=0;
}
if(x>=7,y<7)
{
x=0;
y=7;
}
}
}
void exter0() interrupt 1 // 定时器0中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
|
|