专栏中心

EEPW首页 > 专栏 > 中断和定时器实验--c语言实现中断嵌套【转载】

中断和定时器实验--c语言实现中断嵌套【转载】

发布人:0750long 时间:2009-07-11 来源:工程师 发布文章
中断和定时器实验--c语言实现中断嵌套【转载】

 

题目:通过外部中断0,触发一个延时过程,假定延时时间为1秒,延时期间可以点亮一个LED或让蜂鸣器发出声音。已知单片机晶振频率为6 .00MHz

问题:上面的方法可以完成一个“重复触发问题”,即定时时间没有到的时候又来一个触发信号,应该怎么办?

解:对于“重复触发问题”,单片及不响应外部中断。

硬件电路:

                       


--------------------------------------------------------------------------------

实验程序:

//程序说明,外部中断服务程序的工作是:禁止外中断,启动定时器0,允许定时//器0中断,led1(p1.0口)取反。

//定时器中断服务程序的工作是:重载TH0和TL0的初值,延迟3s后,关闭定//时器0,禁止定时器0中断,允许外部中断,led进入灭状态。

//主函数设置定时器0的工作模式,外中断的触发模式(本实验使用的是脉冲触//发),允许总中断和外中断。

//yzxled.h

#include <reg51.h>

sbit LED1=P1^0;

#define ON 1

#define OFF 0

#define RELOADTH0 0x3c

#define RELOADTL0 0x0b0

typedef unsigned char uchar;

uchar time="0",delaytime=10;

//yzxled.c

#include "yzxled.h"

void inter1(void) interrupt 0 using 1 {

        EX0=0;                     //

        LED1=! LED1;

        ET0=1;          //允许定时0中断 

       TR0=1;          //启动定时0

       }

void time0(void) interrupt 1 using 2 {

       time++;                                                   //记数

       TH0=RELOADTH0;

       TL0=RELOADTL0;

       if(time==delaytime)

            {           TR0=0;                 //关闭定时器0

                         ET0=0;                //禁止定时器0中断

                         time="0";                

                         EX0=1;                //允许外部中断0

                         LED1=OFF;        //led灯灭

             }            

       }

void main() {

       LED1=OFF;

              TMOD="0x01";

              IT0=1; //脉冲触发

              EA="1";

              EX0=1;                       //允许外中断0

              while(1);

              }

 

  实验结果:程序运行后,led灯进入灭状态。当有外部脉冲进入p3.2口时,led灯进入亮状态。在led灯亮的期间,再次给p3.2口送入一脉冲,led灯依旧亮,说明程序没有响应外中断,因为如果响应外中断0服务程序,led 应该进入灭状态。定时结束后,led灯进入灭状态,程序等待下次外中断。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

接口与隔离演示

视频 2012-06-18

量子电池颠覆传统物理定律

过程控制演示

视频 2012-06-18

ADI在线研讨会:差分驱动ADC的最新发展:第一部分

视频 2012-06-18

DC_DC Solution

资源下载 2007-02-13

无刷电机控制详解(第三篇):换相

凭借先进封装与3DFabric 集成,赋能下一代AI计算

英伟达旗下NVentures参投医疗AI初创公司 Aidoc,融资 1.5 亿美元

联电22纳米领军动能续旺 组队Intel拼美国制造

日月光:先进封测需求超预期

EDA/PCB 2026-04-30

应用方案 | AI Agent大时代,南芯助力AI PC CPU/GPU提高效能

智能计算 2026-04-30

Bluetechnix演示即插即用摄像机系统

氢气传感器助力检测电池爆炸隐患

ADI在线研讨会:您不知道的关于DAC的五件事

视频 2012-06-18

MUSA获得SGLang主线支持!5月10日北京,AI Meetup等你来

大联大世平集团携手NXP举办线上研讨会,揭秘主动式悬架控制板及S32K3选型

更多 培训课堂
更多 焦点
更多 视频

技术专区