如何用外部中断INT0实现计数功能

如何用外部中断INT0实现计数功能,第1张

分数给的太少了。我只能给你提供一个思路,然后你自已写程序:

int0和int1分别对应单片机两个不同的引脚,你要先在单片机复位时在特殊功能寄存器中来配置这两个引脚的功能,int0和int1的中断都分别有两个功能,一个是计数器工作方式,一个是外部中断工作方式。

你的这个要求是不能用int0和int1两个引脚的计数器功能的,你只能用外部中断功能。

然后定义好int0和int1分别在中断时的跳转地址,在程序进入中断之后,分别在不同的中断程序中对一个寄存器表示的计数器进行加1或者减1 *** 作。

一定记得在处理中断的时候,要把中断使能的寄存器标置位关掉,以避免中断重复执行和错误。

#include "reg52.h"

sbit key=P3^2

void main()

{

IT0=1//外部中断0连沿触发方式

EX0=1//使能外部中断0

EA=1//开部中断

while(1)

}

void int0() interrupt 0

{

int tab[]={0xff,0x7f,0xbf,0x3f,0xdf,0x5f,0x9f,0x1f,0xef,0x6f,0xaf,0x2f,0xcf,0x4f,0x8f,0x0f}

int count=15

long int i

while(1)

{

if(key==0)

for(i=0i<10000i++)

if(key==0)

{ count--

if(count==0)

count=15

P3= tab[count]

while(key==0)

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11917594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存