51单片机外部中断实验
实验报告要求:
1)整理本实验涉及的程序,将它们按正确的格式详细书写在实验报告纸上。
1.无中断时发光让发光二极管从左到右依次点亮,有外部中断请求时,4位数码管从0000开始加1显示(加到9999后复位为0000),同时蜂鸣器报警。
#include<reg51.h>
#include<intrins.h>
int n1,n2;
sbit beep=P3^5;
char
table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay(int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<200;j++);
}
void main()
{
EA=1;
EX0=1;
IT0=0;
EX1=1;
IT1=1;
PX1=1;
while(1);
}
void int0() interrupt 0 {
beep=0;
P2=0xfe;
delay(200);
for(n1=8;n1>0;n1--) {
P2=_crol_(P2,1); delay(200); }
}
void int1() interrupt 2 {
P0=0x00;
for(n2=0;n2<16;n2++) {
P1=table[n2];
delay(200);
}
}
2.设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序)。
C语言程序
#include<reg51.h>
…… …… 余下全文