【51单片机学习过程记录】12中断 之外部中断的应用2

来源:互联网 发布:知乎社会网络分析 编辑:程序博客网 时间:2024/04/30 04:59

声明:【51单片机学习过程记录】全是我自己学习、实践所记录的过程,我只是菜鸟,所有论点和观点仅代表我个人,不能确定是这个技术的真理。我的目的是学习和有可能成为可以向别人分享的经验,因此有错误我会虚心接受,并认真改正。

直接上代码:

#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int
sbit int0=P3^2;
sbit duan=P2^6;
sbit wei=P2^7;
uchar j;
uchar code numbers[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f};


void delay(uint x)
{
uint i,y;
for(i=x;i--;i>0)
for(y=210;y--;y>0);
}


void display(uchar z)
{
P0=0xfe;
wei=1;
wei=0;
P0=numbers[z];
duan=1;
duan=0;
delay(1);
}


void main()
{
j=1;
int0=1;
EA=1;
EX0=1;
IT0=1;//下降沿触发
while(1)
{
display(j);
}
}


void exinterrupt0() interrupt 0
{
j++;
if(j==10)j=0;

}


记录小结:

和上一文不同的是,此处使用外部中断0,但是上文触发方式是   电平触发 ,此文是下降沿触发。因为下降沿是硬件检测,所以,中断函数中我只是处理j的变化,然后在主函数中显示出来。


下降沿触发和电平触发,感觉没太大差别,下降沿更多是体现多了一个下降过程,也许需要的话,也在下降过程中也可以嵌套多一个操作。


ps:仅代表我个人看法,有错的地方不当的地方定虚心受教。

0 0