C51单片机程序。利用外部中断INT0,INT1,当INT0产生中断时,使LED8亮8灭闪烁4次;

当INT1产生中断时,使LED右向左流水显示,一次亮2个,循环4次。
谢谢。

#include<reg52.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char

sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit LED8=P0^7;

void Delay(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<1141;j++)
}

void main()
{
EX0=1;//开中断0
IT0=1;//下降沿触发
EX1=1;//开中断1
IT1=1;//下降沿触发
EA=1;//开总中断

LED1=1;
LED2=1;
LED3=1;
LED4=1;
LED5=1;
LED6=1;
LED7=1;
LED8=1;//LED初始状态为全灭
}

void INT0() interrupt 0
{
uint i;
for(i=0;i<4;i++)
{
LED8=0;
Delay(500);
LED8=1;
}
}

void INT1() interrupt 1
{
uint i;
for(i=0;i<4;i++)
{
LED1=0;
LED2=0;
Delay(500);
LED1=1;
LED2=1;
LED3=0;
LED4=0;
Delay(500);
LED3=1;
LED4=1;
LED5=0;
LED6=0;
Delay(500);
LED5=1;
LED6=1;
LED7=0;
LED8=0;
Delay(500);
LED7=0;
LED8=0;
}
}

备注:1、led对应引脚可以修改,程序中默认单片机引脚低电平点亮led,如果是高电平点亮
led,反过来设置引脚电平就可以了;
2、延时时间可以按自己需要修改;
3、#include<reg52.h>这一句中的52根据实际需要修改,是51系列则改为51,52则改为
52,一定不能错,否则会出错。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-09
你可以再主函数里面写一个条件语句,在这个条件语句里写LED8亮8灭闪烁4次。然后在外部中断中写入达成这个条件的表达式追问

能不能帮我写的详细点?谢谢

追答

你不会写中断吗????
我现在还得去做实验,等我中午有空的时候再给你写吧!!

用外部中断INT1实现对P1口8个LED状态取反
EX0=1;\/\/打开INT0的中断允许。\/\/设置INT1 IT1=1;\/\/设置外部中断1为跳变沿触发方式 EX1=1;\/\/打开外部中断0中断允许 EA=1;\/\/打开总中断 void main(){ IntConfiguration(); \/\/外部中断初始化 P1=0xff; \/\/设定P1口的初始状态 while(1){ } \/\/在此等待进入外部中断 } void zhong...

51单片机2个外中断的应用,这个怎么设计?
MCS-51的中断优先级控制比较简单,只设置了高、低两个级别的有限级,各中断源的优先级别由优先寄存器(IP)进行控制。·PX0——外中断0(INT0)优先级控制位。·PT0——定时中断0(T0)优先级控制位。·PX1——外中断1(INT1)优先级控制位。·PT1——定时中断1(T1)优先级控制位。·PS ——串行中断...

Keil C 中的关于中断程序退出状态问题
一般较通用的按键处理流程是:当INT0#检测到跳变沿中断时,置一个标志,关闭EX0中断使能;主循环中凭借此标志延时20~100ms去抖(说白了就是避过按键电平不稳定的这段时间),然后重新采集P2.6状态,仍旧是低电平才判定为有效按键变化。对于连接线较长或者易受干扰的场合,按键处理应增加至少一阶的数...

单片机开发板怎么用?
3. 独立键盘模块:4个小按键组成,可以做外中断INT0、INT1 ,外定时器T0、T1 实验。 4. 矩阵键盘模块:16个小按键组成可以做外中断INT0、INT1 ,外定时器T0、T1 实验。 5. 数码管模块:由6个一位一体数码管组成,可以显示0,1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f等简单信息,构成信息交流的人机界面。

AVR按键中断控制LED灯亮灭
10——下降沿产生中断 11——上升沿产生中断 \/ MCUCR|=(1<<ISC11)|(1<<ISC10)|(1<<ISC01)|(0<<ISC00);GICR|=(1<<INT0)|(1<<INT1); \/\/0表示INT0(或INT1)不中断,1表示INT0(或INT1)中断 } SIGNAL(SIG_INTERRUPT0) \/\/外部中断0 { while(!(PIND&(1<<PIND2)));while(PIND...

设计一个智力竞赛抢答器可同时供8人参加比赛,他们的编号分别是0...
SETB ET1 SETB EX0 SETB EX1; 允许四个中断,T0\/T1\/INT0\/INT1 CLR OK CLR RING SETB TR1 SETB TR0; 一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1\/TL1就可以了查询程序:START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY; 未开始抢答时候显示FFF JB P3.0,NEXT ACALL DELA...

实现P0口驱动8个发光二极管流水灯点亮,设置三个按键 c51单片机 急...
int a=1000;while(a!=0){ a--;} } \/*---*\/ \/\/按键连接到p2.0、p2.1、p2.2、P2.3,均为开漏输出 unsigned char key_in(void){ XBR0 =0X00;P2=0xff;if(key1==0){ key1=1;delay();\/\/延时 if(key1==0){ while(key1==0);XBR0 =0X02;return(0x32);\/\/返回字符"1...

c51单片机c语言交通灯的程序
int n;uchar data b;\/\/定时器中断次数 sbit k1=P1^6;\/\/定义5组开关 sbit k2=P1^7;sbit k3=P2^7;sbit k4=P3^0;sbit k5=P3^1;sbit Yellow_nb=P2^5; \/\/南北黄灯标志 sbit Yellow_dx=P2^2; \/\/东西黄灯标志 sbit Green_nb=P2^4;sbit Green_dx=P2^1;sbit Buzz=P3...

1.基于DSP定时器的LED控制系统设计 要求:(1)给定电源12V,设计供电电
首先为定时器0设置定时初值,并开启定时器使其计数。当定时器计数器寄存器递减到零时,定时器会产生一个中断TINT并将其传送给PIE外设中断模块,当PIE中的中断时能位PIEIER被时能后,PIE会将这个中断传送给CPU,如果CPU的中断使能位和INTM被使能,则CPU会相应定时器0中断,转而执行定时器0的中断服务子程序。2.LED显示...

...到9,每位数字显示时间为一秒,定时功能用单片机中断显示
void int1() interrupt 1 \/\/定时器中断 { TH0=(65536-1000)\/256; TL0=(65536-1000)%256; n++;t++;if(t>500){t=0;led=~led;}\/\/LED闪烁 if(n>1000){n=0;s++;}\/\/如果达到一秒,秒加一 if(s>59){s=0;m++;}\/\/如果达到一分,分加一 if(m>59){m=0;h++;}\/\/如果达到一...

相似回答