历史上的今天
返回首页

历史上的今天

今天是:2025年08月05日(星期二)

正在发生

2021年08月05日 | 8051外部中断0解析

2021-08-05 来源:eefocus

程序实现功能:


在实验板上左下方有一个黑色的独立按键(K3), 当我们按下它时, D1(LED灯)的状态就会取反.


思路分析:


我们令IT0 = 1, 即选择了"边沿触发", 所以每当独立按键按下时, 中断处理函数EX_INT0()就会执行. 


当进入中断处理函数执行时, 若P32引脚的电平为低电平, 则说明K3按键已按下; 若P32引脚的电平为高电平, 说明K3按键已抬起.


"低电平触发"和"边沿触发"的区别:


①"低电平触发"是指在电平处于低电平态的时间内触发.


②"边沿触发"是指在电平由高 -> 低或由低 -> 高的一瞬间触发.


独立按键电路原理图:

 

抖动的处理:


为什么我们要在中断处理函数开始执行时先加入1ms延时模块, 是因为按键在按下或抬起时电平不是一下子稳定到低或高状态的, 而是在经历一小段时间的电平抖动后才到达稳定态: 为了对P32引脚电平判断的准确性, 先加入1ms的延时模块, 当电平稳定之后 再行判断.

程序源代码:


#include

 

void delay()//获得1ms延时

{

TH0 = 0xFC;

TL0 = 0x18;//65536 - 1000 = 64536 = FC18H

TR0 = 1;//开启定时器0

while(TF0 == 0);//等待定时器0计数溢出

TF0 = 0;

TR0 = 0;//暂停定时器0

}

 

void EX_INT0() interrupt 0//外部中断0处理函数

{

delay();//1ms延时消抖

if(P32 == 0)

{

P20 = ~ P20;//D1电平翻转

}

}

 

int main()

{

TMOD = 0x01;//设置定时器0的工作模式

TR0 = 0;

TF0 = 0;

P20 = 0;//开发板上D1亮

 

EA = 1;//中断总开关打开

EX0 = 1;//外部中断0开关打开

IT0 = 1;//边沿触发

//IT0 = 0 -> 低电平触发中断,  IT0 = 1 -> 边沿触发中断

while(1)

{

;

}

return 0;

}


推荐阅读

史海拾趣

Dicon Fiberoptics Inc公司的发展小趣事

进入21世纪后,随着互联网的普及和信息技术的飞速发展,光纤通信技术迎来了新的发展机遇。DiCon凭借其在微机电系统(MEMS)、微光学设计等领域的技术积累,成功推出了一系列具有创新性的光纤通信产品。这些产品不仅提高了数据传输的速度和稳定性,还降低了成本,进一步扩大了公司在市场上的份额。

Digital Equipment Corp公司的发展小趣事

1998年,DEC被康柏公司以96亿美元的价格收购。这次收购标志着DEC成为康柏公司的一部分,开始了新的发展历程。在收购后,DEC的品牌和产品得到了保留和发展,同时康柏公司也为DEC带来了更多的资源和支持。通过业务整合和资源共享,DEC在康柏公司的领导下继续保持着其在计算机行业的领先地位。

Electro-Films Inc Semi-Films Div公司的发展小趣事

在20世纪80年代初,Electro-Films Inc. 的创始人意识到了电子行业中对高性能薄膜材料的需求日益增加。因此,公司决定成立一个专门负责薄膜材料研发的部门,即Semi-Films Division。这个部门在成立之初就面临着巨大的挑战,但团队凭借对技术的执着追求和不懈努力,成功开发出了具有优良电气性能和机械性能的薄膜产品,为公司赢得了首批客户。

Andersen Laboratories Inc公司的发展小趣事

随着LED背光液晶电视市场的快速发展,AnalogicTech敏锐地捕捉到了这一机遇。公司推出了直接式和边缘式LED背光驱动器系列,显著增强了LED背光液晶电视的能效和用户体验。这一创新举措不仅为AnalogicTech赢得了市场份额,也进一步巩固了其在电子行业中的领先地位。

DCX-CHOL Enterprises公司的发展小趣事

随着公司规模的扩大和市场竞争的加剧,DCX-CHOL Enterprises意识到品质管理的重要性。公司投入大量资源提升生产线自动化水平,引进先进的品质检测设备,并建立了严格的质量管理体系。这些措施有效地提高了产品的品质稳定性和可靠性,赢得了客户的信赖。同时,公司还注重员工培训和技能提升,培养了一支高素质、专业化的技术和管理团队。

Allianc公司的发展小趣事

为了进一步扩大市场份额和提升品牌影响力,Allianc公司开始实施国际化战略。公司积极开拓海外市场,与多家国际知名企业建立了合作关系。同时,公司还加强了对海外市场的调研和分析,针对不同地区的消费者需求推出了定制化产品。这些举措使得Allianc公司在国际市场上的份额不断攀升,品牌影响力也逐渐增强。

问答坊 | AI 解惑

温度控制系统

本帖最后由 paulhyde 于 2014-9-15 04:26 编辑 题目要求:设计一个具有温度传感器的温度检测及显示的系统。要求系统具有温度检测、显示、用户输入等功能。可采用DS18B20数字温度传感器或AD590等温度传感器作为检测端,以MCS51或其他微控制芯片作为M ...…

查看全部问答>

使用哪种开发工具好呢?

EVC里边怎么不会出现代码提示框呢?是不是没有VS方便啊。…

查看全部问答>

KEIL C与protues连接问题请高手帮帮忙【急】

各位老师好!    我在使用protues仿真时出现以下问题,无法解决,请你们帮帮忙看看是什么原因,谢谢! 在keil c 编译、连接完成后,就会出现一个提示框显示 Fail to connect command socket to port 127.0.0.1:8000 GLE=00002743 点 ...…

查看全部问答>

工控PLC资料+编程软件(免费)

  更多下载可上网址http://wqlcd.com/new/league.asp?keyno=34[52RD…

查看全部问答>

QuartusII不能产生POF文件解决办法

QuartusII编译以后不能产生POF文件往往是由于没有选择EPCS器件造成,下面就如何选择EPCS介绍以下步骤: 1 打开QuartusII2 打开“Assignments/Device”3 点击“Device anf Pin Option/Configuration” 4 选择“Use Configuration device”在下拉 ...…

查看全部问答>

DSP的并口仿真器SEED-XDSPP如何在CCS配置?

DSP的并口仿真器SEED-XDSPP如何在CCS配置?初学者求助大家了,希望打击帮助我!最好说的具体点。先谢谢了!…

查看全部问答>

fpga 中图像传输时序

请教一下各位,在fpga 中 从sdram 中读取图像数据时, 怎么能够做到把每一帧分别识别出来?另外,在考虑时序问题时是怎么计算的,比如 主时钟60Mhz ,大小640*480模式下。 还有就是如何根据这些计算出来的延迟周期 延迟为基准,产生不同宽度和周期的 ...…

查看全部问答>

新人试出物联网无线模块、无线数据传输模块或者裸RF收发芯片

本品为工程富余的全新短距离射频传输模块,可以用做简单的家电无线控制、简单的无线数据传输、 无线遥控器,或者串口1-》无线发送-》无线接收-》串口2 模式的无线串口数据传输。主要芯片:MSP430 8位单片机CC1020 射频芯片射频PA芯片粗略参数:无线 ...…

查看全部问答>