標(biāo)題:
求助 51單片機(jī)外部中斷下的LED控制器
[打印本頁]
作者:
jiror
時(shí)間:
2018-4-29 14:43
標(biāo)題:
求助 51單片機(jī)外部中斷下的LED控制器
獨(dú)立按鍵啟動(dòng)外部中斷,按下K1后小燈全亮,再次按下K1小燈恢復(fù)原狀態(tài)。外部中斷服務(wù)函數(shù)內(nèi)不知道該怎么寫
<div>#include "reg52.h"</div><div>#include<intrins.h> //左右移函數(shù)頭文件
#define GPIO_LED P0 //將P0口另外取名為GPIO_LED </div><div>
typedef unsigned int u16;
typedef unsigned char u8;</div><div>
</div><div>void type1();
void type2();
void type3();
void type4();
void allbright();
sbit k1=P3^2; //暫停全亮
sbit k2=P3^2; //自動(dòng)與手動(dòng)切換功能
sbit k3=P0^2; //type1
sbit k4=P0^1; //type2
sbit k5=P0^0; //type3
sbit k6=P0^3; //type4</div><div>void Delay1ms(unsigned int c) //延時(shí)函數(shù)
{
unsigned char a,b;
for (; c>0; c--)
{
for(b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}
}
void Int0Init() //外部中斷0和1初始化設(shè)置
{
IT0=1;
EX0=1;
IT1=1;
EX1=1;
EA=1;
}</div><div>/*初始效果:四種模式輪流播放*/
/*按下K1:暫停全亮,再按一次復(fù)位*/
/*按下K2:進(jìn)入自選模式,按下K3456選擇相應(yīng)模式,再按K2復(fù)位*/
void main()
{
while(1)
{
Int0Init();
type1();
type2();
type3();
type4();
}
}</div><div>void allbright() //暫停全亮
{
P0=0xff;
Delay1ms(1000);
}
void type1() //間隔亮滅
{
P0=0xaa;
Delay1ms(1000);
P0=0x55;
Delay1ms(1000);
}
void type2() //半亮半滅
{
P0=0xf0;
Delay1ms(1000);
P0=0x0f;
Delay1ms(1000);
}</div><div>void type3() //流水效果1
{
unsigned char n;
GPIO_LED=0xfe;//1111_1110->1111_1101
for(n=0;n<7;n++) //左移7次,這樣子就會(huì)到達(dá)最左邊
{
GPIO_LED=_crol_(GPIO_LED,1); //將GPIO_LED左移一位
Delay1ms(100); //延時(shí)
}
for(n=0;n<7;n++) //右移7次,這樣子就會(huì)到達(dá)最右邊
{
GPIO_LED=_cror_(GPIO_LED,1); //將GPIO_LED右移一位
Delay1ms(100); //延時(shí)
}
}</div><div>void type4() //流水效果2
{
unsigned char n;
GPIO_LED=0x01;//0000_0001->0000_0010
for(n=0;n<7;n++) //左移7次,這樣子就會(huì)到達(dá)最左邊
{
GPIO_LED=_crol_(GPIO_LED,1); //將GPIO_LED左移一位
Delay1ms(100); //延時(shí)
}
for(n=0;n<7;n++) //右移7次,這樣子就會(huì)到達(dá)最右邊
{
GPIO_LED=_cror_(GPIO_LED,1); //將GPIO_LED右移一位
Delay1ms(100); //延時(shí)
}
}</div><div>
</div><div>void Int0() interrupt 0 //外部中斷0 K1按下自動(dòng)進(jìn)入該服務(wù)函數(shù)
{
???
}</div><div>
</div>
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1