我是想要实现按下P3.3按钮后,4个灯按1-3-4-2顺序依次点亮,如此循环。再次按下p3.3按钮后,灯全灭,
****现在遇到的问题是:程序仿真结果为只有D1灯亮,没有D3-4-2不亮
程序如下
#include<reg52.h> //51单片机头文件
#define uchar unsigned char //把 unsigned char 宏定义为 uchar
uchar i=0;
uchar dianhuo[4]={0xEF,0xBF,0x7F,0xDF}; //气缸点火顺序 1,3,4,2
bit flag=0;
void main () //主函数
{
TMOD=0x06; //设置为T0计数方式2
TH0=0xff;
TL0=0xF6; //给定初值,满十个脉冲
EA=1; //总中断开关闭合
EX1=1; //TNT0开关闭合
IT1=1; //脉冲触发
ET0=1; //T0开关闭合
TR0=1; //启动T0
while(1){ //一直循环
if (flag==1) {P2=dianhuo[i];}
else { P2=0xff; i=0;} //给1缸点火
}
}
void xunhuan1 () interrupt 1 //中断函数,实现点火循环
{static unsigned char j=0;
TH0=0xff;
TL0=0xF6;
i++;
if (j==10) {i++; j=0; } //循环函数,i+1
if(i>3) i=0;
}
void qidong1() interrupt 2 //中断函数,给1缸点火,
{
flag=!flag;
}