IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 【C51单片机】中断系统之单一外中断应用 -> 正文阅读

[嵌入式]【C51单片机】中断系统之单一外中断应用

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

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

一般形式

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

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


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

单一外中断

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

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

?

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

头文件

实现头文件必不可少。

#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次,然后从中断返回。
?

今天单片机关于中断系统之单一外中断就介绍到这里。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:31:28  更:2022-10-22 21:32:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 16:33:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码