
正文
c语言中断函数与主函数 c语言调用中断函数程序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
怎样在C语言中使用中断函数
首先你要写中断函数
然后在主程序中像调用子函数一样调用就可以了
举个例子吧
#define uchar unsigned char
#define uchar unsigned char
sbit D1=P1^0;
uchar aa;
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
while(1)
{
if(aa==20)
{
D1=~D1;
aa=0;
}
}
}
void T0time()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
相关问答
Q1: keil中单片机用c语言编程,中断函数在主函数后面,需要声明嘛?可不可以直接把中断函数放在主函数后
对于C51单片机,其内部总共有五级中断源
分别为外部中断0、定时器0、外部中断1、定时器1及串行中断。
C51单片机的中断使用时,主要是通过中断来决定的。
如你定义一个中断服务函数:
void KEY(void) intterrupt 0
{
}
当外部中断0申请中断时
会自动根据interrupt后面的0,找到上面定义的这个中断服务函数。
对于其他四个中断源,其对应的中断号分别为1、2 、3、4
Q2: 单片机中断函数C语言的问题?
void Timer1() interrupt 3
{ TH1=xx; TL1=xx; //建议还是取定时值为1msc语言中断函数与主函数,或者是 0.5ms ;
cnt++;
if (s50)
{
if(cnt500) { cnt=0; beep=~beep;}
}
else if (s=50 s100)
{
if(cnt1000) { cnt=0; beep=~beep;}
}
.........
}
如果定时中断为20msc语言中断函数与主函数,对应的频率计数50Hz,这个频率已经很低c语言中断函数与主函数了,那么再通过cnt计数500次,输出信号频率就远远超出音频范围,c语言中断函数与主函数你根本就听不到声音c语言中断函数与主函数;
另外,蜂鸣器的proteus仿真可能不太准确,可以通过仿真示波器看波形及频率就好了;
Q3: c语言如何在子函数里控制跳出主函数的循环
子函数只能给主函数一个返回值 或者操作主函数的一个参数(通过指针)
然后主函数通过判断这个返回值或者参数决定是否退出
int fun(int a)
{
if (a0)
return 1;
else
return 0;
}
main()
{
int a;
while (scanf("%d",a))
{
if (fun(a)==0)
{
break;
}
}
}
Q4: 在用c语言写单片机程序时 应该把什么写在中断什么写在主函数什么写在while里
这个问题很泛哦
把上电后只做一次的任务写到主函数里, 比如基本的初始化
把需要不断循环做的任务放到while(1)里,比如轮询,IO状态查询
把不知道什么时间会发生(比如外部中断,按键中断等)以及需要保证准时发生的任务(比如定时器时间到)放到中断里
关于c语言中断函数与主函数和c语言调用中断函数程序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





