单片机中断的应用

发布者:EternalWhisper最新更新时间:2016-12-16 来源: eefocus关键字:单片机  中断 手机看文章 扫描二维码
随时随地手机看文章

51单片机:

       P3.2 引脚为INT0 中断

       P3.3引脚为INT1 中断

按钮 P3.2    P3.3

按钮低电平触发:

    while(PB0==0);

    delay();


#include         

#define    SEG    P0             //    定义七节显示器接至Port 0

sbit    LED = P2^0;      // 定义LED灯接至P2.0

sbit    com = P1^0 ;     // 数码管 com 口

sbit    OC  = P1^1;      // 定义573锁存器使能口,我是用的573驱动7段数码管

 

void delay10ms(int x);    //    声明延迟函数 10ms * x; 


sbit    PB0=P3^2;      //按钮0

sbit    PB1=P3^3;      //按钮1

 

unsigned char code TAB[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67 };    // 共阴极

 

main()                     

{  

    OC = 0;          //锁存置0 ,点亮数码管

    com = 0;         //点亮SEG    

    EA =1;             //总中断

     EX0 = 1;         //外部中断 INT0

     EX1 = 1;         //外部中断 INT1     

    TR0 = 1;         //    运行INT 0中断

      TR1 = 1;         // 运行INT1 中断

    //TCON = 0x05;     //    设置信号触发方式为负边沿触发

    while(1) 

    {    

        int i; 

        for(i=0;i<10;i++)    //    显示0-9(上数)

        {    SEG=TAB[i];     

            delay10ms(40);    //    延迟 0.4s



        }

    }                 

}                     

void my_int0(void) interrupt 0   // INT 0

{     int i;

     while(PB0==0);

     delay10ms(25);     

       for (i=9;i>=0;i--)        //    for循环显示9-0(下数)

       {     

        SEG=TAB[i];                //    显示数字至七节显示器 

        delay10ms(40);            //    延迟 0.4s

       }    

                  

}                     

void my_int1(void) interrupt 2          //INT 1

{        int i;

        while(PB1==0);

        delay10ms(25);

         for(i=0;i<10;i++)

         {

         LED = 0;     

         delay10ms(25);

         LED = 1;

         delay10ms(25);

        }

}


/* 延迟函数,延迟约x*1ms */

void delay10ms(int x)            //    延迟函数开始 

{    

        int i,j;           

          for (i=0;i

        for (j=0;j<1200;j++);    //    计数1200次,延迟10ms   1200*8us

}     



 


关键字:单片机  中断 引用地址:单片机中断的应用

上一篇:KeilC51常用功能模块使用说明
下一篇:定时器的应用---中断方式---让8个LED灯,左右各4个来回亮

推荐阅读最新更新时间:2024-03-16 15:25

二进制半导体公布车规级RISC-V MCU伏羲2360
日前,在第二届滴水湖RISC-V论坛上,武汉二进制半导体有限公司副总经理蔡敏介绍了公司自3月成立的接近一年时间内的成绩,以及其车规级MCU的发展路线。 二进制半导体由中国信科和东风汽车联合创立,以RISC-V为契机,进入汽车芯片市场,包括车规MCU,以太网交换以及Phy等芯片。 蔡敏表示,目前汽车芯片市场存在五个困难,分别为标准体系不健全、技术研发能力不足、车规工艺缺乏积累、关键产品缺乏应用以及生态建设严重不足。而二进制公司这种成立方式,则有效的打通了各环节的壁垒。 伏羲2360是二进制首款车规级MCU,目标应用为汽车发动机、变速箱、三电控制、ADAS、整车控制等领域。该芯片采用32bit RISC-V 多核异构CPU
[汽车电子]
浅谈AT89S51中断程序设计
  中断系统的运行必须与子程序配合才能正确使用。设计中断服务子程序需要首先明确以下几个问题。   中断服务子程序设计的任务   中断服务子程序设计的基本任务有下列4条:   (1)设置中断允许控制寄存器IE,允许相应的中断请求源中断。   (2)设置中断优先级寄存器IP,确定并分配所使用的中断源的优先级。   (3)若是外部中断源,还要设置中断请求的触发方式IT1或IT0,以决定采用电平触发方式还是跳沿触发方式。   (4)编写中断服务子程序,处理中断请求。   前3条一般放在主程序的初始化程序段中。   举例如下:例1、假设允许外部中断0中断,并设定它为高优先级中断,其他中断源为低优先级中断,采用跳沿触发方式。在主程序中
[单片机]
浅谈AT89S51<font color='red'>中断</font>程序设计
51单片机学习笔记【二】——按键实验
一.独立按键实验 1.电路原理图 2.说明:使用排线连接JP10的和JP12,JP8连接JP5。本实验通过八个独立按键控制八个LED小灯。按键时会抖动,所以要消抖。 3.消抖检测 先给按键对应的I/O口置1; 判断I/O口是否为1; 若是1,则说明按键按下,若是0,则按键没有按下; 4.源代码如下: /*********************************************** File Name: 独立按键实验 Author: pengshp Mail: pengshp3@outlook.com Date: 2015年 7 月 16 日 *******************
[单片机]
51<font color='red'>单片机</font>学习笔记【二】——按键实验
基于PIC18F1320微控制器的信号采集系统
摘要:便携式信号采集在机器健康诊断系统中有较高的应用价值。机器健康诊断的信号特点是包括低频信号。本文研究是为了实现简易而且低成本的低频便携式信号采集。以Microchip公司单片机PIC18F1320为核心设计信号采集电路,实现了信号的采集和保存。系统采用串行电可擦除芯片24LC32A保存数据,经过有线通信,信号数据由串行口通过MAX232芯片输送到微型计算机接收和保存,最后绘制出信号波形。微型计算机程序采用Visual Basic编程。研究成功采样频率为3 kHz的复杂信号,证明该方案符合设计要求。 关键词:信号采集;PIC18F1320;数据通信;微型计算机;微芯;Visual Basic 信号采集设备广泛使用于机器健康诊
[工业控制]
基于PIC18F1320<font color='red'>微控制器</font>的信号采集系统
STM32之外部中断中断控制器
在外部中断和中断控制器中,我们首先阐述嵌套向量中断控制器(NVIC),他和处理器核的接口紧紧相连。可以实现低延时的中断处理和处理晚到的中断。主要具有以下几个特点: 1.60个可屏蔽中断通道; 2.16个可编程的优先等级; 3.低延时的异常和中断处理; 4.电源管理控制; 5.系统控制寄存器的实现。 其中每一个STM32系列芯片都会有一个产品向量表,博友们可以在相关 产品说明书中查看具体的中断问题。 接下来介绍中断优先级 在M3中有两个优先级的概念-抢占优先级和响应优先级。每一个中断源都必须指定这两种优先级。这里的中断抢占其实和89C51差不多,高中断优先级可以抢占正在进行中断处理的低中断优先级,也就是我们所说的中断嵌套。学习过51
[单片机]
STM32单片机对正交编码器的驱动
STM32正交编码器驱动,引入(突变)带进位的位置环和速度环 #include “stm32f10x.h” #include “stm32f10x_encoder.h” #include “sys.h” #include “usart.h” #include “led.h” #define COUNTER_RESET(u16)0 #define ICx_FILTER(u8) 0 // 6《-》 670nsec #define TIMx_PRE_EMPTION_PRIORITY 1 #define TIMx_SUB_PRIORITY 0 //#define MAX_COUNT ENCODER_TIM_PERIOD/2 volat
[单片机]
51单片机利用IAP技术对EEPROM的实现方法解析
STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先来介绍下ISP与IAP的区别和特点。 ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了ISP技术。 IAP:In Application Programable 是指在应用编程,就是片子提供一系列的机制(硬件/软件上的)当片子在运行程序的时候
[单片机]
微控制器的FSMC到底是咋回事?(下)
摘要:上一篇文章我们具体讲解了FSMC的原理配置,这一章主要是关于使用FSMC的SRAM初始化流程,以及使用STM32CubeMX对FSMC进行配置。 一、SRAM初始化流程 通过上面的讲解,通过对 FSMC 相关的寄存器的描述,大家对 FSMC 的原理有了一个初步的认识,如果还不熟悉的朋友,请一定要搜索网络资料理解FSMC的原理。只有理解了原理,使用库函数才可以得心应手。那么在库函数中是怎么实现FSMC的配置的呢?FSMC_BCRx,FSMC_BTRx 寄存器在库函数是通过什么函数来配置的呢?下面我们来讲解一下 FSMC 相关的库函数: 1.1 使能FSMC时钟 要使用FSMC,当然首先得开启其时钟。然后需要把
[单片机]
<font color='red'>微控制器</font>的FSMC到底是咋回事?(下)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved