首先,你要用软件允许中断,
即C语言中EA = 1; 允许总中断ES = 1;
//允许串口中断汇编中可用
SETB EA ;允许总中断
SETB ES ;允许串口中断
当单片机接收到一帧数据后,RI会置1,向CPU申请中断,若之前有中断允许,则产生了中断,进入中断服务程序。
当然,单片机发送完一帧数据,TI也会置1,同样会产生中断!
一般我们在发送数据时要关中断,因为一般你不用在发送时不用处理数据;
接收数据时要开中断,以便你在中断服务程序中将接收到的数据进行存储并处理。
补充:其实,不管你有没有允许中断,上位机(此时即给单片机发送信息的机器)只要给单片机发送数据,单片机就会自动接收数据,并把它放在数据缓冲器SBUF中,如果你之前有允许串行口中断,RI就会置1,向单片机CPU申请中断,并进入中断服务程序,做完中断函数后就会自动返回断点。如果你没有允许中断,便不会产生串行中断。其实,别的中断都是某个I/O口电平变化产生。这只是外部中断产生条件,不过,你之前也需要用软件允许外部中断。
另外,常见的51系列单片机有5个中断源三种中断5:
1、外部中断0和1;
2、定时器/计数器溢出中断0和1;
3、串行口中断。
另外,STC51系列还有定时器/计数器T2中断,A/D转换中断,PWM中断,串行中断2等等。你还有什么不懂的可以自己多翻一翻书,学到后面去了你就明白了。
中断服务程序中,那条 RI=0;是不可少的,这是用软件清零RI,准备再次接受一帧数据产生中断,如果你没有这条语句,就会进入死循环,出不来了。
void serial() interrupt 4
{ P1=SBUF;
RI=0;
}
关键字:51单片机 串口 中断设置
引用地址:
51单片机的串口中断设置
推荐阅读最新更新时间:2024-03-16 13:34
51单片机最小系统介绍
前言 在学习51单片机的时候我们最先接触到的就是单片机最小系统,单片机最小系统又叫最小应用系统,顾名思义就是能够使单片机实现简单运行的最小元件的组合。 提示:以下将以51单片机最小系统为例进行介绍 一、51单片机最小系统模块构成 二、电源电路 一个系统的正常工作离不开电源,单片机常见的电源电压分为5V 和低功耗的3.3V。本文介绍的是STC89C51这款芯片,该芯片是在5V电压下正常工作。 1.电源引脚 VCC(VDD):第40脚,电源端,接+5V电源,用于给整个系统供电。 VSS(GND):第20脚,接地端,接GND端。 EA :第31引脚,EA为片外程序存储器选用端,该引脚低电平时,选用片外程序存储器,高电平或悬空时选
[单片机]
基于MCS51单片机的多路数据通信设计
1.引言 MCS51单片机标准构成只有一组全双工UART串行口,P3.0-RXD收、P3.1-TXD发,如果要完成多路串口收发,一般使用外部扩展芯片,例如:GM8123/25,完成一扩多路串口,但是,由于增加扩展芯片,造成硬件成本增加,PCB板面增大,抗干扰性下降等不良因素,因此能尽量使用现有串口,利用分时切换技术,完成串行口不同类型,不同端口的数据传送是优先选择。 2.硬件功能简述 本设计用于数据采集监控系统如图1所示。采用485串行口完成数据采集,和232串口输出打印功能,这样使得接口连线简单,可靠性高。 RS-485工作特征:发送端:逻辑“1″两线间的 电压 差为+2至6V表示;逻辑”0″以
[单片机]
基于51单片机的电子音乐盒的课程设计
1.设计目的和要求1.1 设计目的 (1) 通过设计,查阅相关资料,掌握如何利用单片机设计产品,同时了解与单片机有关的软件模拟器的使用及取字模块软件的使用方法。 (2) 通过本课程设计巩固并扩展单片机课程的基本概念、基本理论、分析方法和实现方法。结合Proteus和Keil软件等,学习单片机产品的设计方法,有效地将理论和实际紧密结合,培养创新思维和设计能力,增强软件编程实现能力和解决实际问题的能力。 (3) 学习Proteus软件,掌握Proteus中各种芯片的功能以及模拟。由于Proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养实践精
[单片机]
基于51单片机的多通道数据采集范围控制系统
1 引 言 在实际应用中,对被控对象的物理参数(温度、湿度、位移、电流、电压等)在一定的范围内进行控制,是单片机的典型应用之一。很多宏观要求精确控制的场合,其微观控制过程,仍可归结为是对某些参数变化范围的控制。如,传统的三相异步电机从启动到正常运行,其电流、电压和温度的变化;抽水塔水位的变化;机床刀具的行程变化及数字电表的自动量程变换等。这些控制过程最显著的特点是:被控物理量都是一个变化范围,而非某一个精确的“点”。有效控制物理量变化范围的方法很多,本文重点介绍利用C8051F000单片机片内8路高性能的12位ADC数据采集系统和可编程窗口检测器,实现对多路参数变化范围控制的硬件组成和软件设计方法。 2 C8051Fxxx系列
[单片机]
中值滤波示例51单片机汇编语言子程序
;;入口:第1、2、3次采集数据位次存于R1、R2、R3, ;;出口:比较所得中值数据存于R0, Filter_C: PUSH PSW MOV A, R1 CLR C SUBB A, R2 ;;R1与R2作相减 JNC LP1 ;;若R1≧R2,不交换 MOV A, R1 ;;若R1 R2, 交换 XCH A, R2 MOV R1, A LP1: MOV A, R3 CLR C SUBB A, R1 JNC LP3 MOV A,
[单片机]
手把手教学51单片机第三课 | 复位电路、数码管静态显示
1.复位电路 1个机器周期=12个震荡周期(晶振) 51单片机复位要求:高电平 =2个机器周期 时间常数τ 复位电路要求是RST引脚高电平有效大于2个机器周期,相当于24个震荡周期,假设震荡频率是12Mhz。τ=根号RC,其中R是10KΩ,C是10uf,实际值是τ=0.12s,理论上要大于等于12us(晶振频率分之一),这样就一定成立了。 以下是复位电路图 ---------------------------------------------------------------------------------------分割线-------------------------------------------
[单片机]
51单片机之晶振与定时器
Part1 晶振 晶振,也就是晶体振荡器,主要作用是产生稳定的振动频率用于单片机时钟电路。 一、晶振的工作原理 压电效应: 如图所示,晶体振荡器主要由引线构成的电极和晶体片构成。 当我们在晶体两电极外加电压后,晶体会发生形变,反过来,如果外力使得晶体变形,两极上又会产生电压。 因此当我们在晶体两端施加一个交变电压时,随着电压正负的改变,晶体交替形变,进而以一定的频率发生谐振–单频振荡(振荡频率固定不变)。 二、晶体单频振荡产生时钟脉冲 我们知道,脉冲信号是一个按一定电压幅度、一定时间间隔连续发出的信号。 而我们的晶体振荡器,既有电压幅度–晶体两端施加的电压,又有时间间隔–振荡频率 f 的倒数作为周期。因此我
[单片机]
利用51单片机实现简单射频无线识别装置系统
1 引言 射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据。射频识别工作无须人工干预,非接触,阅读速度快,无磨损,不受环境影响,寿命长,便于使用。目前,射频识别技术在国外发展非常迅速,射频识别产品种类繁多,已广泛用于工业自动化、商业自动化、交通运输控制管理等众多领域,如汽车、火车等交通监控;高速公路自动收费系统;停车场管理系统;物品管理;仓储管理;车辆防盗等。由于我国射频识别技术起步较晚,除用于中国铁路的车号自动识别系统外,仅限于射频公交卡的应用。 在此,给出一种实现简单射频识别系统的方式。阅读器和应答器均包含在单片机控制系统中,利用2ASK调制与解调电路以及匹配网络电路,使整个系统的可识别有
[单片机]