历史上的今天
返回首页

历史上的今天

今天是:2025年04月20日(星期日)

正在发生

2021年04月20日 | 51单片机产生串口中断的方式

2021-04-20 来源:eefocus

首先,你要用软件允许中断,


即C语言中EA = 1; 允许总中断ES = 1;


//允许串口中断汇编中可用


SETB EA ;允许总中断


SETB ES ;允许串口中断


当单片机接收到一帧数据后,RI会置1,向CPU申请中断,若之前有中断允许,则产生了中断,进入中断服务程序。


当然,单片机发送完一帧数据,TI也会置1,同样会产生中断!


一般我们在发送数据时要关中断,因为一般你不用在发送时不用处理数据;接收数据时要开中断,以便你在中断服务程序中将接收到的数据进行存储并处理。


补充:其实,不管你有没有允许中断,上位机(此时即给单片机发送信息的机器)只要给单片机发送数据,单片机就会自动接收数据,并把它放在数据缓冲器SBUF中,如果你之前有允许串行口中断,RI就会置1,向单片机CPU申请中断,并进入中断服务程序,做完中断函数后就会自动返回断点。如果你没有允许中断,便不会产生串行中断。其实,别的中断都是某个I/O口电平变化产生。这只是外部中断产生条件,不过,你之前也需要用软件允许外部中断。


另外,常见的51系列单片机有5个中断源三种中断:


1、外部中断0和1;


2、定时器/计数器溢出中断0和1;


3、串行口中断。


另外,STC51系列还有定时器/计数器T2中断,A/D转换中断,PWM中断,串行中断等等。


中断服务程序中,那条 RI=0;是不可少的,这是用软件清零RI,准备再次接受一帧数据产生中断,如果你没有这条语句,就会进入死循环,出不来了。


void serial() interrupt 4


{ P1=SBUF;


RI=0;


}


推荐阅读

史海拾趣

广东爱晟电子(exsense)公司的发展小趣事

2020年新冠疫情期间,爱晟电子积极响应政府号召,全力支持抗疫工作。公司不仅向抗疫一线捐赠了防疫物资,还组织员工参与志愿服务。同时,公司还利用自身的技术优势,研发出适用于医疗设备的NTC热敏电阻,为抗击疫情提供了有力支持。这些行动彰显了爱晟电子的社会责任感和担当精神。

Eastman Kodak Company公司的发展小趣事

经过破产保护和重组的洗礼后,伊士曼柯达公司更加注重创新和可持续发展。公司加强了与新兴科技公司的合作,积极探索新的业务模式和市场机会。同时,柯达还致力于研发更加环保、高效的影像产品和技术,以满足客户对高品质影像的需求。未来,伊士曼柯达公司将继续秉承创新、品质、服务的理念,不断推动影像行业的发展和进步。

AdaptivEnergy公司的发展小趣事

进入21世纪后,随着数码技术的迅速崛起,传统摄影市场遭受了巨大的冲击。面对这一挑战,伊士曼柯达公司开始尝试向数码领域转型。然而,由于公司在数码技术方面的积累相对较少,转型过程并不顺利。尽管如此,柯达仍然坚持创新,不断推出新的数码产品,以应对市场的变化。同时,公司还加强了与数码技术公司的合作,共同研发新产品,以提高市场竞争力。

Daco Semiconductor Co Ltd公司的发展小趣事

Daco Semiconductor在成立之初就专注于半导体技术的研发与创新。公司由一群对半导体行业充满热情的工程师创立,他们致力于开发更高效、更稳定的半导体产品。一次偶然的实验中,Daco的研发团队发现了一种新型的材料组合,这种材料组合能够显著提高半导体的性能和稳定性。这一技术突破成为了Daco的核心竞争力,也为其在竞争激烈的半导体市场中打开了新的局面。

EG & G Inc公司的发展小趣事

EG & G Inc公司成立于20世纪早期,最初专注于电子设备的研发和生产。公司凭借其技术优势和创新能力,在电子行业中逐渐崭露头角。在成立初期,EG & G Inc就与多家知名企业和研究机构建立了合作关系,共同推动电子技术的发展和应用。这些合作关系不仅为公司带来了技术上的支持,也为其在市场上的扩张奠定了基础。

Denyo Europa Gmbh公司的发展小趣事

Denyo Europa Gmbh公司一直将产品质量视为企业的生命线。公司建立了严格的质量管理体系,从原材料采购到生产流程,再到产品检测,每一个环节都严格把关。公司还定期对员工进行质量意识培训,确保每一个员工都能深刻理解质量对于企业发展的重要性。这种对质量的执着追求,使公司的产品在市场上赢得了良好的口碑。

问答坊 | AI 解惑

matlab珍藏实例大分享

分享几个大学期间的matlab实例分享,大家有兴趣学matlab的可以拿来参考,较多的用到GUI界面设计~~~ MATLAB界面制作总结1. 7以上版本的matlab,控件pushbutton背景颜色修改以后并没有什么明显效果,只是按钮的边缘显示为所设置的背景颜色。  ...…

查看全部问答>

请教CE如何读取nandflash容量

    最近遇到一个问题,不知道如何读取系统所在nandflash的容量。目前我们系统ms不知道自己flash有多大,不停的copy文件进去就会把nk.bin所在的区域冲掉,然后系统就挂掉了。不知道有么有大哥遇到过?…

查看全部问答>

现在从网络接收H.264视频流,然后在WinCE上边解码边播放,请给个思路呀!

现在从网络接收H.264视频流,然后在WinCE上边解码边播放,请给个思路呀!…

查看全部问答>

送分了进者有份啊

现有项目 个人 团队皆可合作 最好在广州或者深圳 有意邮件yqb_box@163.com 或者QQ:437395559 在PDA上做应用软件开发 PDA支持读卡器 条码扫描 CDMA GSM 网络 GPS 打印机等 应用相对简单 在PDA上能录入数据 检索服务器上的相关信息 驱动设备 设备 ...…

查看全部问答>

抗干扰复位电路

此图是单片机抗干扰电路 请问它都抗了哪些方面的干扰,原理是什么…

查看全部问答>

有人要热敏打印机驱动不,可以联系xgx_a1@163.com

有人要热敏打印机驱动不,可以联系xgx_a1@163.com…

查看全部问答>

现在对430的时钟有点迷糊,希望高人指点?

ACLK,MCLK,SMCLK三个什么意思理解,可是有什么具体的关系,求指点?…

查看全部问答>

c1602在usb仿真器调试下不亮

我用的是f149的板子,在上面驱动1602,程序都对,就是使用usb仿真器时lcd不亮,用那种usb线直接供电的时候它倒是亮,不知道什么原因。求大侠指教啊…

查看全部问答>

刚画了个简单的51仿PLC电路,各位大大们帮看一下哈!

我是新手,刚画了个简单的51仿PLC电路,想做个板子试试,但不知有没有什么问题,所以请大家帮指点一下。…

查看全部问答>