单片机原理及应用中断实验

1.实验目的
(1)熟悉 51 单片机中断初始化编程方法。
(2)掌握 51 单片机外部中断源的设计使用。
(3)中断处理应用程序的设计与调试技巧。
2.实验内容
通过对 P3、2、P3、3 引脚的电平控制,实现外部中断处理,从而控制输出口
P1 的输出效果变化。
/用外中断 0 的中断方式进行数据采集与处理
#include //包含 51 单片机寄存器定义的头文件
sbit S=P3^2; //将 S 位定义为 P3、2,
/*******************************************
函数功能:主函数
******************************************/
void main(void)
{
EA=1; //开放总中断
EX0=1; //允许使用外中断
IT0=1; //选择负跳变来触发外中断
P1=0xff;
while(1)
; //无限循环, 防止程序跑飞
}
/**************************************************************
函数功能:外中断 T0 的中断服务程序
**************************************************************/
void int0(void) interrupt 0 using 0 //外中断 0 的中断编号为 0
{
P1=~P1; //每产生一次中断请求,P1 取反一次。
}
//用外中断 0 的中断方式进行数据采集与处理
#include //包含 51 单片机寄存器定义的头文件
#define uchar unsigned char
void Delay(unsigned int i)
{
uchar j;
for(;i>0;i--)
for(j=0;j<125;j++)
{;}
}
//sbit S=P3^2; //将 S 位定义为 P3、2,
/*******************************************
函数功能:主函数
******************************************/
void main(void)
{
uchar display[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned int a;
while(1){
EA=1; //开放总中断
EX0=1; //允许使用外中断
EX1=1;
IT0=1; //选择负跳变来触发外中断
IT1=1;
IP=0;
for(a=0;a<9;a++){
Delay(500);
P1=display[a];
}
}
}
/**************************************************************
函数功能:外中断 T0 的中断服务程序
**************************************************************/
void int0_isr(void) interrupt 0 using 1 //外中断 0 的中断编号为 1
{
uchar n;
for(n=0;n<10;n++){
p1=0x0f;
Delay(500);
P1=0xf0;
Delay(500);
}
}
void int1_isr (void) interrupt 2 using 2{
uchar n;
for(n=0;n<10;n++){
p1=0xff;
Delay(500);
P1=0;
Delay(500);
}
}

你可能感兴趣的:(单片机,嵌入式硬件)