<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AVR中斷運用報警2路指示

AVR中斷運用報警2路指示

作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò ) 收藏
#include
#include
#define uchar unsigned char
#define uint unsigned int
__flash uchar seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //段碼
0x7f,0x6f};
__flash uchar tab[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位選碼
uchar flag1=0; //初始化報警標志1為0
uchar flag2=0; //初始化報警標志2為0
void delay(uint k) //延時(shí)k ms子程序
{
uint i,j;
for(i=0;ifor(j=0;j<1140;j++);
}
void show(uint d) //顯示數碼管數值程序
{
uchar buf[8];
uchar i=0;
do
{
buf[i]=d%10;
d=d/10;
i++;
}
while(d);
while(i)
{
PORTA=seg[buf[i-1]];
PORTC=tab[i-1];
delay(100);
PORTA=0xff;
PORTC=0xff;
i--;
}
}

void port_init() //端口初始化設置
{
PORTA=0xff;
DDRA=0xff;
PORTC=0xff;
DDRC=0xff;
PORTD=0xff;
DDRD=0xff;
PORTB=0xff;
DDRB=0xff;
}

void init() //中斷寄存器設置
{
MCUCR=0x4a; //設置INT0 和 INT1 為下降沿觸發(fā) 開(kāi)啟睡眠模式
GICR=0xc0; //設置INT0 和 INT1 使能
SREG=0x80; //總中斷開(kāi)關(guān)使能
}

void main()
{
port_init();
init();
while(1)
{
if(flag1==1) //INT0時(shí) 數碼管顯示1
{
show(1);
delay(1000);
}
__sleep(); //調用休眠模式
if(flag2==1) //INT0時(shí) 數碼管顯示2
{
show(2);
delay(1000);
}
if(flag1&flag2) //當INT0 和INT1都按下去過(guò)后,表示2路都報警了 發(fā)光管取反報警顯示
{
PORTB=0xff;
delay(100);
PORTB=0x00;
delay(100);
}
}
}

#pragma vector = 0x04
__interrupt void int0()
{
flag1=1;
}

#pragma vector = 0x08
__interrupt void int1()
{
flag2=1;
}

注: 調用休眠模式時(shí) 表示程序到此停止,只有用外部中斷才能喚醒,繼續下面程序。
數碼管顯示函數采用工程算法。


關(guān)鍵詞: AVR中斷運用2路指

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>