历史上的今天
返回首页

历史上的今天

今天是:2024年12月24日(星期二)

正在发生

2021年12月24日 | 51单片机系列——外部中断怎么写(讲解+实例:改变流水方

2021-12-24 来源:eefocus

在学习51单片机中断的时候常常被外部中断、定时/计数器和串行口弄的稀里糊涂的,本来就是个小小学渣,怎么能经得起折磨!!!
闲来无事,今天写一遍这个来介绍说明一下外部中断INT0、INT1。其他的小编以后再整理给大家。


先上一个实例:
题目:
实例仿真图:
图1
程序


#include

#include

#define uint unsigned int


void delay1s(void)   //延时1s

{

    unsigned char a,b,c;

    for(c=167;c>0;c--)

        for(b=171;b>0;b--)

            for(a=16;a>0;a--);

    _nop_();  

}


void main(void){

 P0 = 0x01; //设一个初值

 IP = 0x04;  //设置中断优先级,人为的将INT1的优先级设置大于INT0

 IT0 = 1; //TCON,设置中断触发方式为边沿触发方式

 IE = 0x85; //IE,开总中断允许,开INT0,INT1中断允许

 while(1); //死循环,等待中断信号

}


void int0_p(void) interrupt 0{ //外部中断0中断服务程序,其中 “int0_p(void)”函数名随意

  uint j;

 delay1s();

 for(j=0;j<7;j++){

   P0 = _crol_(P0,1);

  delay1s();

 }

}


void int1_p(void) interrupt 2{ //外部中断0中断服务程序,其中 “int1_p(void)”函数名随意

  uint i;

 delay1s();

 for(i=0;i<7;i++){

   P0 = _cror_(P0,1);

  delay1s();

 }

}


实例的结果:

(1)当仅按下INT0引脚处的按键K1时,LED自上向下依次点亮,即顺流水一次。

(2)当仅按下INT1引脚处的按键K2时,LED自下向上依次点亮,即逆流水一次。

(3)当按下K1后,在LED顺流水的过程中按下K2,LED变成逆方向依次点亮,一段时间后又变成顺流水,然后结束。(默认INT0的优先级大于INT1,我们在程序中将INT1的优先级设置大于INT0)


总结:

中断初始化过程:

1、设置IP:完成中断优先级的设置:

(老师的PPT,借来一用,嘿嘿)图2

2、设置TCON:设置中断触发方式

这个TCON可以位操作:例:程序中设置外部中断0为边沿触发,可直接写成IT0=1;

图3

3、设置IE:开总中断,开需要的中断

(IE也可以位操作)

注意:外部中断的中断标志位是自动清除的

图4

4、写中断服务程序的中断号如下:

补充:中断标志的撤销说明如下:

图6

推荐阅读

史海拾趣

Clover Display Limited公司的发展小趣事

品质管理是电子企业生存和发展的关键。Clover Display Limited深知这一点,因此在生产过程中始终严格把控品质。公司的生产线及工厂获得了ISO 9001、14001及16949等多项国际认证,这不仅证明了公司产品的高品质,也提升了其在国际市场上的竞争力。同时,公司还积极参与国际标准制定和行业交流活动,以不断提升自身的技术水平和市场影响力。

这五个故事虽然基于虚构的情节,但它们都基于Clover Display Limited在电子行业发展的真实背景和趋势。这些故事展示了公司在技术创新、市场拓展、品质管理等方面的努力和成就,也反映了电子行业的快速发展和变革。希望这些故事能够为您提供一个关于Clover Display Limited发展起来的有趣而全面的视角。

C&K公司的发展小趣事

进入千禧年代,C&K因其卓越的市场表现和技术实力被ITT Industries收购。虽然成为了ITT的开关部门,但C&K仍然保留了自己的品牌名称。这一举措既保证了C&K能够继续享有ITT的资源支持,又使得C&K能够保持其独特的品牌文化和市场定位。

CalAmp公司的发展小趣事

在业务拓展方面,CalAmp公司始终保持着敏锐的市场洞察力。某年,公司成功推出了RFID动物溯源和共享单车智能等新业务。这些新业务不仅为公司带来了新的增长点,也进一步拓宽了其业务范围。虽然新产品线的毛利率较低,对公司的整体毛利率和净利率产生了一定影响,但公司通过优化成本结构和提升运营效率,逐步改善了这一状况。同时,公司与澳大利亚利德品有限公司签订的品牌授权及合作协议,也为公司未来的盈利能力提升奠定了基础。

ABC [ABC Taiwan Electronics Corp]公司的发展小趣事

进入新世纪,ABC Taiwan Electronics Corp面临着产业升级和技术创新的双重挑战。公司加大了对研发的投入,不断推出具有竞争力的新产品。同时,公司还引进了先进的生产设备和管理理念,提升了生产效率和产品质量。通过产业升级和技术创新,ABC成功应对了市场的变化和挑战,保持了稳健的发展态势。

Astron Wireless Technologies Inc公司的发展小趣事

面对国内市场的饱和,Astron Wireless Technologies Inc公司开始将目光投向国际市场。公司积极参与国际通信展览和论坛,与全球各地的潜在客户和合作伙伴建立了联系。同时,公司还加大了对海外市场的研发投入,推出了一系列适应不同国家和地区需求的无线通信产品。这些努力使得公司在国际市场上取得了显著的成绩。

E Connector Solutions公司的发展小趣事

E Connector Solutions公司始终坚持以客户需求为导向的产品创新策略。公司密切关注市场动态和客户需求变化,及时调整产品策略。例如,随着新能源汽车市场的兴起,公司迅速研发出适用于新能源汽车的专用连接器产品,满足了客户对高可靠性、高安全性的需求。这种以客户需求为导向的产品创新策略使得公司能够保持市场的领先地位。

问答坊 | AI 解惑

Microchip扩充率22位Δ-Σ模数转换器阵容

 Microchip扩充率22位Δ-Σ模数转换器阵容新款模数转换器可抑制阻止50或60 Hz线路频率噪音噪声,实现高精度测量 Microchip Technology Inc.(美国微芯科技公司)日前宣布其低功耗率、高分辨率Δ-Σ模数转换器系列又添新成员——新款MCP3550加 ...…

查看全部问答>

带驱动的步进电机的管脚定义

本人有个带驱动器的步进电机,型号为BL55S-M01是三星打印机上的,上面带一个10针的插座分别为:1.24V 2. 24V 3.GND 4.GND 5.BK 6.5V(NC) 7.ST/SP 8.RD 9.CLK 10.CW  /CCW。哪位高手能否介绍一下那些管脚的作用?…

查看全部问答>

朋友 喜欢玩中星9号卫星资料华亚微

朋友 喜欢玩中星9号卫星资料华亚微HTV903,,PCB文件是ASC可以用PROTEL99/POWERPCB导入.…

查看全部问答>

请高手看看这个屏

请高手看看这个屏,请告诉我型号,在下感激不尽…

查看全部问答>

CE5.0下 2G SD卡不能识别,1G以下正常,为什么?

平台:S3C2440、WINCE5.0 问题现象描述: 1、1G以下的SD卡一切正常。 2、2G的卡插入无法识别到卡的盘符 特别现象描述:    正常插入卡无法识别2G卡,但插入的时候使劲按住卡不放,能正常识别到卡,并能正常读写,为什么?1G以下卡没 ...…

查看全部问答>

关于USB设备的读取

{                 m_strLog += _T(\"抱歉,未找到可用的USB设备\");…

查看全部问答>

招聘Windows Mobile/Win CE应用工程师

由于公司扩展,急需招聘Windows   Mobile/Win   CE应用工程师 有意者发送简历到simonjin@gotoup.cn或直接发送到hr@gotoup.cn 公司简介: 上海向上信息科技有限公司是一家专业从事智能手机研究、开发的高新技术企业。主要 ...…

查看全部问答>

请教:单片机遇计算机通讯问题

我在计算机上用串口调试助手给80S51发送31个字节的16进制数据,比如:dd 01 ...09。dd是一个标志位后面的30个数据才是单片机所要处理的数据,单片机然后将这30个字节显示在数码管上。但是得到的现象是:所有数码管都显示最后一个字节的数09,单片机 ...…

查看全部问答>

BitBlt的画图问题

各位:   我用一个临时DC来选图片,然后把到放到内存DC指定位置,然后把内存DC的图片拷到显示DC里去。 刚开始的时候显示DC里是一个纯黑的图,BitBlt过去后,彩色图片变成白色了。 后来我把显示DC清空,直接把内存DC的拷到显示DC里去, ...…

查看全部问答>

STM32F10xxSample/Price

已经为大家准备了一批STM32系列芯片,覆盖了所有的芯片型号,从36PIN到100PIN,直接查询零售价,如果有需要可以电话联系我们。www.mxchip.com网站新版,欢迎指导!…

查看全部问答>