c语言中中断函数是如何定义的?

 作者:UPS电源    |      2024-04-14 23:40    |    标签: 如何 言中 函数 定义 开始 中断

  

c语言中中断函数是如何定义的?

  

c语言中中断函数是如何定义的?

  

c语言中中断函数是如何定义的?

  在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。

  中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题。

  (1)中断源:中断请求信号的来源。(8051有3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1(这两个低电平有效,上面的那个横杠不知道怎么加上去))

  (2)中断响应与返回:CPU采集到中断请求信号,怎样转向特定的中断服务子程序,并在执行完之后返回被中断程序继续执行。期间涉及到CPU响应中断的条件,现场保护,现场恢复。

  (3)优先级控制:中断优先级的控制就形成了中断嵌套(8051允许有两级的中断嵌套,优先权顺序为INT0,T0,INT1,T1,串行口),同一个优先级的中断,还存在优先权的高低。优先级是可以编程的,而优先权是固定的。

  80C51的原则是①同优先级,先响应高优先权②低优先级能被高优先级中断③正在进行的中断不能被同一级的中断请求或低优先级的中断请求中断。

  80C51的中断系统涉及到的中断控制有中断请求,中断允许,中断优先级控制

  (1)3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1

  (2)中断控制寄存器:定时和外中断控制寄存器TCON(包括T0、T1,INT0、INT1),串行控制寄存器SCON,中断允许寄存器IE,中断优先级寄存器IP

  具体的是什么,包括哪些标志位,在这里不讲了,所有书上面都会讲。

  在这里我们讲下注意的事项

  (1)CPU响应中断后,TF0(T0中断标志位)和TF1由硬件自动清0。

  (2)CPU响应中断后,在边沿触发方式下,IE0(外部中断INT0请求标志位)和IE1由硬件自动清零;在电平触发方式下,不能自动清楚IE0和IE1。所以在中断返回前必须撤出INT0和INT1引脚的低电平,否则就会出现一次中断被CPU多次响应。

  (3)串口中断中,CPU响应中断后,TI(串行口发送中断请求标志位)和RI(接收中断请求标志位)必须由软件清零。

  (4)单片机复位后,TCON,SCON给位清零。

  C51语言允许用户自己写中断服务子程序(中断函数)

  首先来了解程序的格式:

  void 函数名() interrupt m [using n]

  {}

  关键字 interrupt m [using n]