为什么单片机中断程序执行时主程序还在慢慢运行?初学~~~
#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitnumsel=P2^7;sbitli...
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit numsel=P2^7;
sbit light=P2^6;
sbit D1=P2^5;//将P2.5与发光二极管D1相连
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-9;A-F;编码表code
void delay(uint);//声明延时函数
void main()
{
uint num;
P0=0x00; //选通了8个数码管
EA=1;//打开中断总开关
EX0=1;//打开外部中断0,P3.2选通
IT0=0;//选择电平触发方式
while(1)
{
for(num=0;num<16;num++)
{
D1=1;//发光二极管灭,复位
numsel=1; //选通锁存器
P1=table[num]; //数码管显示数字
light=0; //对应的是数码管中a-g的亮灭
numsel=0; //关闭保持锁存器
delay(10); //延时0.5秒钟
}
}
}
//延时子函数
void delay(uint z)
{
uint i,j;
for(i=0;i<z;i++)
for(j=0;j<12000;j++);
}
//中断亮灯子函数
void bright() interrupt 0
{
D1=0;
} 展开
#define uint unsigned int
#define uchar unsigned char
sbit numsel=P2^7;
sbit light=P2^6;
sbit D1=P2^5;//将P2.5与发光二极管D1相连
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-9;A-F;编码表code
void delay(uint);//声明延时函数
void main()
{
uint num;
P0=0x00; //选通了8个数码管
EA=1;//打开中断总开关
EX0=1;//打开外部中断0,P3.2选通
IT0=0;//选择电平触发方式
while(1)
{
for(num=0;num<16;num++)
{
D1=1;//发光二极管灭,复位
numsel=1; //选通锁存器
P1=table[num]; //数码管显示数字
light=0; //对应的是数码管中a-g的亮灭
numsel=0; //关闭保持锁存器
delay(10); //延时0.5秒钟
}
}
}
//延时子函数
void delay(uint z)
{
uint i,j;
for(i=0;i<z;i++)
for(j=0;j<12000;j++);
}
//中断亮灯子函数
void bright() interrupt 0
{
D1=0;
} 展开
6个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询