外部中断里面的函数可以是子函数吗? 谢谢
时间:10-02
整理:3721RD
点击:
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit WEI=P2^7; //数码管位控制脚
sbit DUAN=P2^6; //数码管段控制脚
void apple();
main(){ WEI=0; //位锁存置0电平,防止LED亮的时候数码管亮 DUAN=0; //段锁存置0电平,防止LED亮的时候数码管亮 EA=1; //全局中断开 EX0=1; //外部中断0开 EX1=1; //外部中断1开 IT0=1; //边沿触发 IT1=1; while(1) { }
}void ISR_Key(void) interrupt 0 using 1{ void apple);}
void apple() { unsigned char num=50; unsigned int j; while(num>30) { j++; if(j==50) //检测当前数值显示了一小段时间后, { j=0; num--; } TempData[0]=dofly_DuanMa[num/10];//分解显示信息, //如要显示68,则68/10=6 68%10=8 TempData[1]=dofly_DuanMa[num%10]; Display(); } DataPort=0; //清空数据,防止有交替重影 DUAN=1; //段锁存 DUAN=0; }
sbit WEI=P2^7; //数码管位控制脚
sbit DUAN=P2^6; //数码管段控制脚
void apple();
main(){ WEI=0; //位锁存置0电平,防止LED亮的时候数码管亮 DUAN=0; //段锁存置0电平,防止LED亮的时候数码管亮 EA=1; //全局中断开 EX0=1; //外部中断0开 EX1=1; //外部中断1开 IT0=1; //边沿触发 IT1=1; while(1) { }
}void ISR_Key(void) interrupt 0 using 1{ void apple);}
void apple() { unsigned char num=50; unsigned int j; while(num>30) { j++; if(j==50) //检测当前数值显示了一小段时间后, { j=0; num--; } TempData[0]=dofly_DuanMa[num/10];//分解显示信息, //如要显示68,则68/10=6 68%10=8 TempData[1]=dofly_DuanMa[num%10]; Display(); } DataPort=0; //清空数据,防止有交替重影 DUAN=1; //段锁存 DUAN=0; }
路过学习的。
可以是子函数,只是处理时间不能太长,应尽快返回!
可以的,没问题,不过感觉你的子函数调用有问题哦