单片机c语言中断程序

来源:百度知道 编辑:UC知道 时间:2024/05/06 19:25:23
我用单片机做小车,用C语言编程,想用中断但是不知道怎么用,比如小车跑的好好的,来了个信号他就可以中止现在的程序执行另一个程序,但是又不能用查询的方式一直查是否有这个信号来,所以要用到中断,谁知道指点一下我啊,最好是有程序实例,谢谢~~

#include <reg51.h>
void init(void)//声明中断初始化
{ EA=1;//中断总开关
EX0=1;//开中断0开关。中断1为,EX1=1;
IT1=1;//采用边沿触发,下降沿有效。IT1=0为低电平触发中断。
}
main()
{ init();调用中断初始化函数
==
===主程序;
}
void in_0(void)interrupt 0//中断服务函数
{ ==
==要服务的程序
}

关于C的中断使用一般是,定义函数的时候在后面加上interrupt n 其中 n 对应中断源的编号,其值从 0 开始,以 80C51 单片机为例,编号从 0~4,分别对应外中断 0. 定时器0 中断.外部中断 1 .定时器1 中断.和串行口中断 .
void XXXX(void)interrupt n//中断服务函数
{
要写的中断服务程序.
}

ClR EX0
JNB P3.1,READ1
SETB EX0
RETI
CLR A
MOV DPH,A
JB P3.1,HARD11
INC DPTR
NOP
NOP
AJMP HARD1
MOV A,DPH
JZ READOUTT0