简述外部中断源系统的设计方法及(单片机)

核心提示虽然不知道你的u2是什么集成电路,但根据你的电路图也能猜到其功能看着就是一个利用单片机外部中断来检测按键的电路在按键被按下的时候,同时触发外部中断,无论是哪个按键被按下,都会触发外部中断所以根据这个特性,就可以写出相应的程序了思路是:编写一

虽然不知道你的u2是什么集成电路,但根据你的电路图也能猜到其功能

看着就是一个利用单片机外部中断来检测按键的电路

在按键被按下的时候,同时触发外部中断,无论是哪个按键被按下,都会触发外部中断

所以根据这个特性,就可以写出相应的程序了

思路是:编写一个外部中断的函数,在函数内检测哪个按键被按下即可

如果没有按键被按下,则不执行

void

main(void)//主函数

{

ea=1;

ex0=1;//开总中断和外部中断

0

while(1)

{

if(int0==0&&p1==0xf1){

p2=0x00;

}//如果中断进来且按键1被按下

}

}

这属于查询方式,int0

是外部中断的关键字

也可以用中断方式写,只有中断进来的时候才检测按键状态

void

int()

interrupt

0

//外部中断

0

{

if(p1==0xf1){

p2=0x00;

}//如果按键1被按下

}

#include<reg52.h>

#include<intrins.h>

sbit CLK=P1^1;

sbit DATA=P1^0;

sbit ConTROL=P1^2;

unsigned char count;

void IniTimer()

{

TMOD=0x01;

TH0=0X3C;

TL0=0xB0;

EA=1;

ET0=1;

TR0=1;

}

void Timer0(void)interrupt 1 using 1

{

TH0=0x3C;

TL0=0xB0;

if(count<20)

{

count++;

}

else

{

count=0;

ConTROL=!CONTROL;

}

}

void WriteData(unsigned int Isdata)

{

unsigned char i;

for(i=0;i<8;i++)

{

CLK=1;

Isdata=Isdata<<1;

DATA=CY;

CLK=0;

}

CLK=1;

}

void InitData()

{

count=0;

WriteData(0x00);

}

int main(void)

{

InitData();

InitTimer();

while(1);

return 0;

}

 
友情链接
鄂ICP备19019357号-22