【C51单片机】中断系统之单一外中断应用

简介: 【C51单片机】中断系统之单一外中断应用

为了直接使用C51语言编写申断服务程序,C51讲言中定义了中断函数


由于C51编译器在编译时对声明为中断服务程序的函数自动添加了相应的现场保护、阻断其他中断、返回时自动恢复现场等处理的程序段,因而在编写中断函数时可不必考虑这些问题,减小了用户编写中断函数的烦琐程度。


一般形式


中断服务函数的一般形式为:

函数类型函数名( 形式参数表)interrupt n using n


关键字interrupt 后面的n是中断号,对于AT89S52单片机,n的取值为0-5,编译器从8xn+3处产生中断向量。


单一外中断

下面介绍单一外中断的应用


【例】 在单片机的P1口上接有8只LED。 在外部中断0输人引脚(P3.2)接有一只按钮开关K1。要求将外部中断O设置为电平触发。程序启动时,PI口上的8只LED全亮。每按一次按钮开关 K1,使引脚接地,产生一个低电平触发的外中断请求,在中断函数中,让低4位的LED与高4位的LED交替闪烁5次。然后从中断返回,控制8只LED再次全亮。原理电路及仿真结果如下。0.png

下面我们就一步一步的完成我们的代码。

头文件

实现头文件必不可少。

#include <reg51. h>
#define uchar unsigned char

延时函数

加入延时函数,主要是可以观察的变化。

void Delay( unsigned int i)    //延时函数Delay( ),i 为形式参数、
                                //不能赋初值
{
    unsigned int j;for(;i> 0;i--)
    for(j=0;j<333;j++)            //晶振为12 MHz,j 的选择与晶振频
                                    //率有关
        {
            1;
        }                            //空函数
}

中断函数

接下来就加入我们的中断函数。可以相比之下,中断函数的区别。

void int0( ) interupt 0 using 0        //外中断0的中断函数
{
    uchar m;
    EX0=0;                            //禁止外部中断0中断
    for(m=0;m<5;m++)                //交替闪烁5次
    {
         P1 =0xOf;                    //低4位LED灭,高4位//LED亮
          Delay(400) ;                //延时
            P1= 0xf0;                //高4位LED灭,低4位//LED亮
            Delay( 400);                //延时
            EX0= 1 ;                    //中断返回前,允许外部//中断0中断
    }
}

主函数

void main( )        //主函数
{
    EA=1:        //总中断允许
    EX0=1:        //允许外部中断0中断
    IT0=l;        //选择外部中断0为跳//沿触发方式
    while(1)        //循环
    {
       P1=0;        //PI口的8只LED全亮
    }
}

本例包含两部分,一部分是主程序段,完成了中断系统的初始化,并把8只LED全部点亮。另一部分是中断函数,控制8只LED分两组交替闪烁5次,然后从中断返回。

相关文章
|
2月前
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
103 5
|
2月前
|
传感器 编解码 人机交互
基于51单片机的温室大棚环境检测系统
基于51单片机的温室大棚环境检测系统
74 0
|
7月前
|
传感器 数据采集 监控
LabVIEW单片机的废气再循环EGR检测系统
LabVIEW单片机的废气再循环EGR检测系统
58 0
|
5月前
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
|
6月前
|
数据安全/隐私保护
单片机课程设计——基于C51电子密码锁(源代码)
单片机课程设计——基于C51电子密码锁(源代码)
|
7月前
|
存储 移动开发
80C51单片机----数据传送类指令
80C51单片机----数据传送类指令
245 2
|
7月前
|
存储
MCS-51单片机的中断源
MCS-51单片机的中断源
342 1
|
7月前
|
存储 移动开发 程序员
80C51单片机的七种寻址方式
80C51单片机的七种寻址方式
162 1
|
7月前
|
传感器
基于51单片机的车辆倒车雷达报警系统
该文描述了一个基于51单片机的超声波倒车雷达系统设计,要求包括:2cm至4m的测量范围,3mm精度,集成DS18B20温度传感器以校准声速,使用LCD1602显示距离和温度,具备按键设置预警距离及蜂鸣器报警功能。系统由AT89C51单片机、HC-SR04超声波模块、DS18B20温度模块、报警电路和LCD显示电路组成。文中还展示了Proteus仿真电路图和部分仿真结果分析,包括LCD显示示例和预警距离设置操作。
|
7月前
|
芯片
AT89S52单片机的最小应用系统
AT89S52单片机的最小应用系统
134 0

相关实验场景

更多