C51_C語言編程控制流水燈
硬件電路 p0 接 led 8 個(gè),P33 接按鍵使用中斷2
開機(jī)燈按1~8逐位閃爍,并循環(huán)
按鍵后改為 兩燈亮 的流水燈
下面寫了個(gè)程序
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar ucTemp,ucTimes,ucShift=0;
void DelayMS(uint x)
{
uchar t;
while(x--)
for(t=120;t>0;t--);
}
void main()
{
ucTemp=0x0FE;
IT1=1;
EX1=1;
EA=1;
while(!ucShift)
{
for (ucTimes=0;ucTimes<7;ucTimes++)
{
P0=ucTemp;
DelayMS(250);
P0=0x0FF;
DelayMS(250);
}
ucTemp=_cror_(ucTemp,1);
}
//BESHIFT:
while (ucShift)
{
P0=ucTemp;
DelayMS(500);
ucTemp=_cror_(ucTemp,1);
}
// goto BESHIFT;
}
void P33_INT1() interrupt 2
{
ucTemp=0x0FD;
ucShift=1;
//可否在此程序內(nèi)加入如下語句(事實(shí)上試過會(huì)報(bào)錯(cuò))使得循環(huán)結(jié)束
//goto BESHIFT;
//return break;
//return goto BESHIFT;
}
問題是有什么辦法可以在調(diào)用中斷函數(shù)之后使得第一個(gè)while循環(huán)提前結(jié)束,
當(dāng)然可以在里面加多個(gè)IF,但這樣就不好玩了。