历史上的今天
返回首页

历史上的今天

今天是:2025年07月21日(星期一)

正在发生

2018年07月21日 | C51之外部中断

2018-07-21 来源:eefocus

/* 

名称:C51之外部中断实验 

说明:关于什么是中断这里就不说了。说说计算机中使用中断有什么好处吧。 

(1)、实时处理。在计算机控制系统中,环境、参数的突然变化,可能需要 

CPU立即做出相应或处理。 

(2)、异常处理。计算机系统运行过程中,经常会出现断电、程序出错等问 

题,这时就需要CPU对故障源进行处理。(从某种程度上说,第二点和第一点 

差不多)。 

(3)、提高效率。由于外设和CPU的速度不同,采用中断技术可以大大提高C 

PU的运行效率。


再来谈谈C51单片机的中断使用。对于C51来说,其中断的内容还是比较简单的,一般而言,C51单片机有5个中断源(2个外部中断、2个定时器中断和一个串口 

中断)。对中断的配置操作,主要通过控制三个寄存器就可以(中断允许寄存器IE)、定时器控制寄存器(TCON)和中断优先级寄存器(IP)。有关这三个寄存器挺简单,就不说了。


还有中断服务函数,在CPU接收到中断后,会执行相应中断的中断服务函数。而C51的中断服务函数也很简单,和普通的函数很像(函数名括号后面加上interrupt 和标志号)。据我估计,这个标志号就是类似于高级芯片中的中断向量表。中断服务函数存储的位置,应该都是固定的(方便系统查找)。


再来说说程序: 

本实验是外部中断实验。程序的主要部分执行数码管数字的循环显示(0-F),配置了两个外部中断,外部中断服务的功能是数码管重新开始显示。并且外部中断0可以抢占外部中断1。


*/


中断部分:


//中断初始化

void Interrupt_eint()

{



        EX0 = 1;        //开启外部中断0

        IT0 = 1;                //设置外部中断0触发模式:下降沿触发


        EX1 = 1;        //开启外部中断1

        IT1 = 1;            //设置外部中断1触发模式

//  

        EA = 1;             //开启总中断


        PX0 = 1;            //将外部中断的优先级提高

}


//外部0中断服务函数

void int0() interrupt 0

{

    uchar j = 0;


    for(j = 0;j<=3;++j)

    {

        DisplayNum(j);

        delay_ms(1000);

    }

}



//外部1中断服务函数

void int1() interrupt 2

{

     uchar j = 0;


    for(j = 0;j<=5;++j)

    {

        DisplayNum(j);              //数码管循环显示0-5

        delay_ms(1000);

    }

}


有关于数码管显示部分的代码就不说了,以前的博客中有的。


推荐阅读

史海拾趣

诚芯微(CXW)公司的发展小趣事

经过数年的技术积累和市场拓展,诚芯微在2013年注册了自主品牌CXW,标志着其品牌战略的正式启动。同年,公司推出了一系列具有竞争力的电源芯片产品,凭借其卓越的性能和稳定的品质,逐渐在市场中获得了认可。此外,诚芯微还加强了与上游晶圆制造、封装企业的合作,确保了产品的质量和良率。

Compensated Devices Inc公司的发展小趣事

随着全球环保意识的日益增强,电子行业对环保的要求也越来越高。CDI积极响应这一趋势,将环保理念贯穿于产品研发、生产和销售的全过程。公司推出了一系列绿色环保型电子元件,并采用了环保材料和生产工艺。这一举措不仅赢得了客户的认可,还为公司的可持续发展奠定了坚实基础。

FINDER公司的发展小趣事

Compensated Devices Inc(简称CDI)最初是一家小型电子元件制造商,专注于生产高精度电阻器。随着科技的飞速发展,传统电阻器已无法满足新兴市场的需求。CDI的创始人李先生敏锐地洞察到这一点,决定投入大量资源进行研发,推出了具有温度补偿和自动校准功能的新型电阻器。这一创新产品迅速获得了市场的认可,CDI也因此逐渐在电子行业中崭露头角。

Amphenol Nexus公司的发展小趣事

1998年,Amphenol Nexus Technologies经历了一次重要的领导层更迭。拜尔斯先生退休,弗雷德·法拉哈尼(Fred Farahani)收购了Nexus, Inc.的股份,并与弗拉纳根先生成为合伙人。在Fred的领导下,公司开始关注销售和开发方面的新机遇,产品基础也扩展到包括微型连接器系列。这一变革为公司带来了新的增长点,使其在激烈的市场竞争中保持了领先地位。

欧密格光电(Amicc)公司的发展小趣事

2008年,Amphenol公司看中了Nexus, Inc.在连接器领域的潜力,决定对其进行收购。收购完成后,Amphenol成立了提供全球销售支持的Amphenol Nexus Technologies,同时仍保持了对客户支持和开发的坚定承诺。这一举措使Amphenol Nexus Technologies得以借助Amphenol的全球性的资源和网络,进一步拓展其业务范围和市场影响力。

C-TON Industries公司的发展小趣事

随着公司规模的扩大,C-TON意识到单凭自己的力量难以在竞争激烈的电子行业中立足。于是,公司开始积极寻求与其他企业的战略合作。通过与一家知名的电子产品制造商建立合作伙伴关系,C-TON成功将其芯片技术应用于对方的产品中,进一步扩大了市场份额。这一合作不仅提升了C-TON的知名度,也为其带来了稳定的订单和收入来源。

问答坊 | AI 解惑

PIC单片机16F84的内部硬件资源(八)

PIC单片机16F84的内部硬件资源(八)…

查看全部问答>

浅析SIP商业交易收费模式(1)

在SOC 的设计趋势下,可重复使用的SIP 更是快速发展一颗复杂芯片的关键。运用SIP,可以加快IC 产品上市的速度,缩短IC 制程技术进步与设计技术进步之间的差距,使IC 设计公司将资源投入核心专长领域,进一步的进行设计上的专业分工。现在IP交易越来 ...…

查看全部问答>

双休,别忘灌水!

不罐水,这些祖国的花朵都会渴死的!…

查看全部问答>

LeCroyChina Marketing Events

LeCroyChina Marketing Events…

查看全部问答>

[求助]自己建的项目在IAREWARM里编译通不过

买了一块万利的EK-STM32F开发板,运行了几个DEMO程序.想自己些个完整的程序运行一下,可是已经摆弄IAR ARM好几天了,反复看了万利开发光盘里带的<IAR EWARM快速入门>(针对ARM7TDMI-S的)和周立功的<IAR使用指南>(是针对LM3X9XX ...…

查看全部问答>

如何使用uniquedeviceid进行加密(防拷贝)

                                 请问如何使用stm32f片内的unique device id进行加密(防拷贝)?…

查看全部问答>

为什么修改icf文件后,UCOSII就跑飞了?

默认是//// Define a region for the on-chip flash.//define region FLASH = mem:[from 0x00000000 to 0x0003ffff];当我把上述区域修改成 mem:[from 0x00001000 to 0x0003ffff]后,程序下载后即飞掉。这里面是什么原因造成的呢,需要修改os的 ...…

查看全部问答>

【项目外包】LPC3250系统板

LPC3250系统板 项目预算:¥ 2,000~5,000 开发周期: 7天 项目分类: 嵌入式 竞标要求: 项目标签: 六层PCB高速布板 BGA封装 ...…

查看全部问答>