STC单片机PCA扩展外部中断程序

STC单片机PCA扩展外部中断程序,第1张

1、配置外部中断的触发模式:上沿、下沿、高电平、低电平;

2、中断允许位打开,中断总开关打开;

3、输入外部触发的引脚配置好(有的单片机需要把端口改为外设端口,而不是普通输入口);

4、检查中断向量是否正确。

这个主要是你的程序设计问题

在中断函数中,你并没有使用死循环之类的语句

所以,当你按下按键进入中断后,中断内的语句是可以执行的

但执行完 P1=0XFF;   d5=0;   之后,又会返回到主函数

在这两条语句的执行过程中,只有几微妙的时间,所以肉眼看上去好像没有进入中断一样

如果想达到你要的效果,可以在中断内加上一个循环,如下面的代码

void int0() interrupt 0

{

while(!INT0)//    INT0  是外部中断系统关键字,此句是等待按键松开

{

    P1=0XFF;

d5=0;

}

}

当你按下按键后,只会执行这两条语句,松开后回到主程序

也可改成这样

void int0() interrupt 0

{

while(1)//   始终执行这两句,直到系统复位

{

P1=0XFF;

d5=0;

}

}

若满意,记得采纳哦

外部中断,是需要用开关来触发的。

----

你的延时函数,写的有毛病。

编译,根本不过去。

改好后,程序就正常了,可以进入中断。

#include <reg52h>

#include <intrinsh> //启用 循环左移(_crol_),循环右移(_cror_)函数

#define uint unsigned int

#define uchar unsigned char

sbit d1=P1^0; //

char i,m,n,temp,k; //

uchar code table[] = {

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0x88,0x83,0xa7,0xa1,0x06,0x8e};

//定义共阳极数码管

void delay(int x) //延时函数

{

uchar i;

while(x--) for(i=0;i<110;i++);

}

void main() //主函数

{

EA=1;

EX0=1;

IT0=0;

while(1) {

for(i=0;i<16;i++) {

P0=table[i]; //数码管显示

delay(500);

}

}

}

void my_int0() interrupt 0 //中断函数

{

temp=0xfe; //定义temp 1111 1110 即 P10 低电平

P1=temp; //让第一个灯点亮

for(k=0;k<3;k++) { //循环3次

for(m=0;m<7;m++) { //左移7次

delay(500);

temp=_crol_(temp,1); //库函数里面的循环左移函数,将temp的值左移一位后重新赋给temp

P1=temp; //将左移一位后的temp值送P1口显示

}

for(n=0;n<7;n++) { //右移7次

delay(500);

temp=_cror_(temp,1); //库函数里面的循环右移函数,将temp的值左移一位后重新赋给temp

P1=temp;

}

}

delay(200);

d1=1; //P10 高电平

}

外部中断0设置为低电平触发,去掉while循环后一直按下按键实际代码为

delay();

P1=0xfe;

delay();

EX0=0;

P1=_crol_(P1,1);

delay();

EX0=1;

P1=0X00;

一直重复

之前的代码进入中断后会一直循环,并不会退出中断。正确做法中断应该改为:

void

tx0()

interrupt

0

using

0

{

unsigned

char

i;

delay();

P1=0xfe;

delay();

EX0=0;

while(1)

{

P1=_crol_(P1,1);

delay();

if(P3&0x04)

//判断是否松开中断0的按键

{

break;

}

}

EX0=1;

P1=0X00;

}

以上就是关于STC单片机PCA扩展外部中断程序全部的内容,包括:STC单片机PCA扩展外部中断程序、请教一个实验版stc80c52rc单片机外部中断0的问题、51单片机 ,,外部中断后,中断函数没有运行 #include <reg52.h> #include等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10175319.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存