51单片机的中断系统
单片机-第五章 单片机中断系统

(1)CPU正在执行一个同级或高优先级的中断服务程序; (2)正在执行的指令尚未执行完; (3)正在执行中断返回指令RETI或者对寄存器IE、IP进 行读/写的指令。 CPU在执行完上述指令之后,要再执行一条指令,才 能响应中断请求。
二、中断响应过程 从中断请求发生直到被响应,准备去执行中断服务程 序,此过程即中断响应过程。中断响应过程一般包括如下几 个阶段: 1、中断采样并置位 中断采样过程:CPU在每个机器周期S5P2期间顺序对 中断源采样、置中断标志。 2、查询标志 在中断采样后的下一个周期的S6按优先级顺序查 询中断标志。
第5章 MCS-51单片机中断系统
5.1.1中断的概念
单片机系统中,CPU和外部设备之间不断进行信息的传 输。通常CPU和外设之间的信息传送方式有以下几种: 程序控制方式 中断方式 直接存储器存取(DMA)方式
1、 程序控制方式 可以分为以下两种方式。 (1)无条件传送方式 外设始终处于就绪状态,CPU不必查询外设的状 态,直接进行信息传输,称为无条件传送方式。 此种信息传送方式只适用于简单的外设。如开 关和数码段显示器等。
三、中断响应的时间
一般来说,中断的响应时间最短为3个机器周期,最长 为8个机器周期。 一般中断请求标志位查询占1个机器周期。而机器周期 又恰好是指令的最后一个机器周期。执行此指令后,CPU 将响应中断,产生硬件长调用指令。 长调用LCALL指令需要2个机器周期。这样,中断响应 时间为3个机器周期。
是不可寻址的
在同级的几个中断源中同时发生请求时, 内部对同级的各中断源的优先级别有一个规 定的查询顺序: 自然优先级
外部中断请求 INT0 最高 定时/计数器 T0 外部中断请求 INT1 定时/计数器 T1 串行口 UART 最低 定时/计数器 T2
51单片机的中断优先级及中断嵌套

51 单片机的中断优先级及中断嵌套
说最基本的,老的51 单片机(80C51 系列)有5 个中断源,2 个优先级,
可以实现二级中断服务嵌套。
现在很多扩展的51 单片机已经有4 个优先级(或更多)和更多的中断源了。
在说到中断之前,我先来定义一下优先级,明白了什幺是优先级,后面的阐述就容易明白了。
实际上很多人都是混淆了优先级的含义,所以才觉得糊里糊涂。
中断的优先级有两个:查询优先级和执行优先级。
什幺是查询优级呢?我们从datasheet 或书上看到的默认(IP 寄存器不做设
置,上电复位后为00H)的优先级:
外部中断0 > 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断
或int0,timer0,int1,timer1,serial port 或INT0、T0、INT1、T1、UART
或PX0>PT0>PX1>PT1>PS>......
其实都是查询优级。
首先查询优先级是不可以更改和设置的。
这是一个中断优先权排队的问题。
是指多个中断源同时产生中断信号时,中断仲裁器选择对哪个中断源优先处理的顺序。
而这与是否发生中断服务程序的嵌套毫不。
MCS51的中断系统有几个中断源

.MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少?答:MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。
3.MCS51系列单片机的内部资源有哪些?说出8031、8051和8751的区别。
答:MCS51系列单片机上有1个8位CPU、128B的RAM、21个SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资源。
8031、8051和8751的区别是8031内无ROM;8051内有4KB的掩膜ROM;8751内有4KB的EPROM。
五、作图题(10分)用6264(8K*8)构成16K的数据存储系统。
要求采用线选法产生片选信号,并计算6264的地址范围答:WR接6264的WERD接6264的OEAB0---AB12接6264的A0---A12DB0—DB7接6264的D0—D7AB15、AB14分别接Y0和Y1地址:0000H---1FFFH;2000H---3FFFH六、设计题(1题13分;2题12分,共25分)1.某单片机控制系统有8个发光二极管。
试画出89C51与外设的连接图并编程使它们由左向右轮流点亮。
2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。
试画出8051与外设的连接图并编程实现上述要求1.某单片机控制系统有8个发光二极管。
试画出89C51与外设的连接图并编程使它们由右向左轮流点亮。
答:图 (5分) 构思 (3分)MOV A,#80H (1分)UP:MOV P1,A (1分)RR A (2分)SJMP UP (1分2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。
51单片机中断实施的步骤

51单片机中断实施的步骤介绍中断是指在程序运行的过程中,当发生特定条件的时候,中断会打断程序的正常执行,转而执行中断服务程序。
51单片机中断实施的步骤可以帮助开发者合理地利用中断的功能,提高程序的灵活性和效率。
本文将详细介绍51单片机中断实施的步骤。
步骤一:设置中断向量表中断向量表是存放中断服务程序入口地址的一组地址。
首先,需要用特定的指令将中断服务程序的入口地址存入中断向量表的相应位置。
51单片机具有8个中断源,对应的中断向量表从0x0003~0x001B,每个中断源有两个地址,分别为中断入口地址和重定向入口地址。
步骤二:开放中断在51单片机中,中断允许位和中断优先级相互影响,因此在开放中断之前,需要设置好相关的中断优先级和中断允许位。
设置中断优先级的方法有两种,一种是通过设置中断允许位的方式,另一种是通过设置寄存器中的优先级位的方式。
步骤三:编写中断服务程序中断服务程序是在中断发生时执行的一段特定的代码。
在编写中断服务程序时,需要注意以下几点: - 中断服务程序必须使用org指令指定入口地址,保证程序正确执行; - 中断服务程序中不应该包含太长的延时和大量的计算; - 中断服务程序中可以操作的寄存器有限,需要仔细查看相关的资料。
步骤四:设置中断允许位为了使中断能够正常工作,需要在中断实施前设置相关的中断允许位。
在51单片机中,P33为总中断允许位,P34为定时器0中断允许位,P3^5为定时器1中断允许位,以此类推。
设置中断允许位的代码如下:EA=1; // 总中断允许位ET0=1; // 定时器0中断允许位ET1=1; // 定时器1中断允许位...步骤五:配置中断源在实施中断之前,需要配置好中断源。
在51单片机中,中断源可以是外部中断、定时器中断、串口中断等等。
配置中断源的代码如下:IT0=1; // 外部中断0下降沿触发IT1=0; // 外部中断1低电平触发...步骤六:启动中断通过设置中断允许位和配置中断源后,即可启动中断。
51单片机结构功能

51单片机结构功能51单片机是指基于Intel的8051微处理器为核心的单片机,其结构功能丰富,被广泛应用于各种嵌入式系统。
一、结构51单片机采用冯·诺依曼结构,具有指令存储器和数据存储器,其中程序存储器(ROM)用于存储程序和表格数据,而数据存储器(RAM)用于存储可变数据。
51单片机还具有特殊功能寄存器(SFR),这些寄存器专门用于控制和设置单片机的各种功能。
二、功能1、运算功能:51单片机具有8位运算器,可以进行算术、逻辑和位运算。
2、控制功能:51单片机具有丰富的控制指令,可以实现如条件转移、跳转、中断等功能,还可以进行定时器和计数器的控制。
3、通信功能:51单片机可以通过串行口实现串行通信,也可以通过并行口实现并行通信。
4、存储功能:51单片机内部具有少量的RAM和ROM存储器,同时还可以外接扩展存储器。
5、定时/计数功能:51单片机内部具有定时器和计数器,可以实现定时和计数的功能。
6、中断功能:51单片机具有多个中断源,可以实现多级中断控制。
7、输入/输出功能:51单片机具有多个输入/输出端口,可以实现多种输入/输出控制。
51单片机以其结构紧凑、功能丰富、易于使用等特点,被广泛应用于工业控制、智能家居、消费电子等领域。
C51单片机寄存器功能湖山网络广播系统设计方案一、概述随着科技的发展和数字化的普及,网络广播系统在各种场所扮演着越来越重要的角色。
湖山网络广播系统设计方案旨在满足湖山地区对高质量、高效的网络广播系统的需求。
该方案旨在构建一个稳定、可靠、易用的网络广播系统,以满足湖山地区在公共广播、紧急通知、日常资讯等方面的需求。
二、系统需求分析1、稳定性:系统应具备高度的稳定性,能够保证长时间的连续运行,避免因设备故障或网络问题导致的广播中断。
2、可靠性:系统应具备可靠的备份机制,确保在主设备出现问题时,备份设备能够迅速接管,保证广播的连续性。
3、易用性:系统应具备良好的用户界面,操作简单易懂,方便管理员进行配置和管理。
51单片机中断程序例子

51单片机中断程序例子
1. 外部中断:当外部信号引脚检测到高电平时,单片机会触发外部中断服务程序。
可以利用外部中断实现按键扫描功能,当按键按下时,触发中断程序对按键进行处理。
2. 定时器中断:利用定时器中断可以实现精确的时间控制。
例如,我们可以设置定时器中断为1秒,当定时器溢出时,触发中断程序,实现1秒钟执行一次的任务。
3. 串口中断:当接收到串口数据时,单片机会触发串口中断服务程序,可以利用串口中断实现串口通信功能。
4. ADC中断:当模数转换器完成一次转换时,单片机会触发ADC中断服务程序,可以利用ADC中断实现模拟信号的采集和处理。
5. 看门狗中断:看门狗定时器溢出时,单片机会触发看门狗中断服务程序,可以利用看门狗中断实现系统复位或其他相关功能。
6. 外部中断优先级:当多个外部中断同时触发时,可以通过设置外部中断的优先级来确定触发的顺序和优先级。
7. 定时器中断优先级:当多个定时器中断同时触发时,可以通过设置定时器中断的优先级来确定触发的顺序和优先级。
8. 中断嵌套:单片机支持中断嵌套,即在一个中断服务程序中触发
另一个中断服务程序,可以通过中断嵌套实现复杂的任务处理。
9. 中断屏蔽:单片机支持对中断的屏蔽,即可以通过设置中断屏蔽标志位来屏蔽某些中断,使其暂时不被触发。
10. 中断标志位:单片机提供中断标志位,用于标识中断是否被触发。
在中断服务程序中,可以通过读取和清除中断标志位来判断中断是否发生。
以上是根据51单片机中断程序的例子进行的描述,这些例子涵盖了常见的中断类型和相关功能。
通过学习和理解这些例子,可以更好地掌握51单片机中断编程的原理和方法。
51单片机中断代码

51单片机中断代码51单片机中断代码是在使用51单片机时经常会遇到的一个概念,它可以帮助我们实现一些特定的功能。
本文将介绍51单片机中断代码的基本原理和用法。
一、简介51单片机是一种广泛使用的单片机型号,它具有低成本、易学易用等特点,因此在嵌入式系统开发中得到了广泛应用。
中断是51单片机中的一个重要功能,通过中断,我们可以在程序运行的过程中,根据外部事件的发生来立即打断当前的程序流程执行特定的代码。
二、中断的原理在详细介绍51单片机中断代码之前,我们首先需要了解中断的原理。
中断是由外部事件触发的,当外部事件发生时,中断请求会被送到单片机的中断控制器,然后中断控制器会暂停当前正在执行的程序,并执行特定的中断服务程序。
中断服务程序会在中断处理完成后,恢复之前被暂停的程序继续执行。
三、中断的使用在51单片机中,我们可以通过设置相关的中断向量和中断服务程序来实现中断的功能。
下面是一个简单的例子,展示了如何在51单片机中使用中断代码。
首先,我们需要引入头文件,头文件中包含了51单片机的寄存器定义和中断相关的宏定义。
```c#include <reg51.h>```接下来,我们需要定义中断服务程序。
中断服务程序是一个函数,具有特定的命名规则和参数。
下面是一个简单的中断服务程序的例子,该例子演示了当外部中断触发时,LED灯会闪烁。
```cvoid interrupt_INT0() interrupt 0{P1 = 0xFF; // 将P1口设置为高电平delay(500); // 延时500毫秒P1 = 0x00; // 将P1口设置为低电平delay(500); // 延时500毫秒}```在上面的中断服务程序中,`interrupt_INT0()`是中断的名称,`interrupt 0`表示该中断是外部中断0。
我们可以根据需求设置外部中断的触发条件和中断优先级。
最后,我们需要在主函数中启用中断,并设置相应的中断向量。
简述msc-51单片机中断处理过程的步骤

简述msc-51单片机中断处理过程的步骤1.引言1.1 概述MSC-51单片机是一种广泛应用的微控制器,其中断处理过程是系统中一个重要的组成部分。
中断处理指的是当外部设备或内部程序发生特定的事件时,单片机会中断正在执行的任务,转而处理这个事件。
中断处理过程的步骤是指在中断事件发生后,单片机执行的一系列操作以响应并处理这个事件。
中断处理过程的步骤包括中断请求检测和中断优先级判断。
首先,单片机会不断地检测是否发生了中断请求,这可以通过外部设备引起的中断请求信号或内部程序的中断请求指令来实现。
一旦检测到中断请求,单片机会停止当前正在执行的任务,保存当前的程序状态和现场信息。
接下来,单片机会进行中断优先级判断,确定哪个中断事件具有更高的优先级。
这意味着,如果同时发生多个中断请求,单片机需要根据优先级确定要先处理哪个中断。
一般而言,不同的中断请求会有不同的优先级,高优先级的中断请求会中断低优先级的中断请求。
一旦确定了中断优先级,单片机会保存当前的执行现场,并跳转到相应的中断服务程序。
中断服务程序是为了处理特定中断事件而编写的程序代码,它会执行一系列的操作,完成中断事件的处理。
处理完成后,单片机会从中断服务程序返回到中断发生时的位置,并恢复之前保存的程序状态和现场信息。
总之,MSC-51单片机中断处理过程是一个相对复杂的过程,涉及到中断请求检测、中断优先级判断以及中断服务程序的执行。
这个过程可以有效地响应和处理外部设备或内部程序的中断请求,提高单片机系统的实时性和可靠性。
文章结构部分主要介绍了本文的整体架构和章节安排。
以下是文章1.2文章结构部分的内容:1.2 文章结构本文分为引言、正文和结论三个部分。
具体结构如下:引言部分首先概述了MSC-51单片机中断处理过程的重要性和背景,接着介绍了本文的目的和意义。
正文部分主要包含两个章节。
第一个章节是MSC-51单片机中断处理过程的概述,详细介绍了中断处理的基本概念和原理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机的中断系统8031单片机的中断系统简单实用,其基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的编程。
中断系统的结构:5个中断源的符号、名称及产生的条件如下。
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。
T1:定时器/计数器l中断,由T1计满回零引起。
TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。
整个中断系统的结构框图见下图一所示。
由图一可见,外部中断有下跳沿引起和低电平引起的选择;串行中断有发送(TI)相接收(R1)的区别;各个中断源打开与否,受中断自身的允许位和全局允许位的控制,并具有高优先级和低优先级的选择。
中断系统的控制寄存器:中断系统有两个控制寄存器IE和IP,它们分别用来设定各个中断源的打开/关闭和中断优先级。
此外,在TCON中另有4位用于选择引起外部中断的条件并作为标志位。
IE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H-AFH。
IE用来打开或关断各中断源的中断请求,基本格式如下图二所示:EA:全局中断允许位。
EA=0,关闭全部中断;EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。
×:无效位。
ES:串行I/O中断允许位。
ES=1,打开串行I/O中断;ES=0,关闭串行I /O中断。
ETl;定时器/计数器1中断允许位。
ETl=1,打开T1中断;ETl=O,关闭T1中断。
EXl:外部中断l中断允许位。
EXl=1,打开INT1;EXl=0,关闭INT1。
ET0:定时器/计数器0中断允许位。
ET0=1,打开T0中断;ET0=0,关闭TO中断。
EXO:外部中断0中断允许位。
Ex0=1,打开INT0;EX0=0,关闭INT0.IP在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H 一BFH,IP用来设定各个中断源属于两级中断中的哪一级,IP的基本格式如下图三所示:×:无效位。
PS:串行I/O中断优先级控制位。
PS=1,高优先级;PS=0,低优先级。
PTl:定时器/计数器1中断优先级控制位。
PTl=1,高优先级;PTl=0,低优先级。
Pxl:外部中断1中断优先级控制位。
Pxl=1,高优先级;PXl=O,低优先级。
PT0:定时器/计数器o中断优先级控制位。
PT0=1,高优先级;PTO=0,低优先级。
Px0:外部中断0中断优先级控制位。
Px0=1,高优先级;Px0=0,伤优先级。
在MCS-51单片机系列中,高级中断能够打断低级中断以形成中断嵌套;同级中断之间,或低级对高级中断则不能形成中断嵌套。
若几个同级中断同时向CPU请求中断响应,则CPU按如下顺序确定响应的先后顺序:INT0一T0---INT1一T1一RI/T1.若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,而且?当前正在执行的那条指令已被执行完1、当前末响应同级或高级中断2、不是在操作IE,IP中断控制寄存器或执行REH指令则单片机响应此中断。
在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8个机器周期。
中断得到响应后,自动清除中断请求标志(对串行I/O端口的中断标志,要用软件清除),将断点即程序计数器之值(PC)压入堆栈(以备恢复用);然后把相应的中断入口地址装入PC,使程序转入到相应的中断服务程序中去执行。
各个中断源在程序存储器中的中断入口地址如下:中断源入口地址INT0(外部中断0) 0003HTF0(TO中断) 000BHINT1(外部中断1) 0013HTFl(T1中断) 001BHRI/TI(串行口中断) 0023H由于各个中断入口地址相隔甚近,不便于存放各个较长的中断服务程序,故通常在中断入口地址开始的二三个单元中,安排一条转移类指令,以转入到安排在那儿的中断服务程序。
以T1中断为例,其过程下如图四所示。
由于5个中断源各有其中断请求标志0,TF0,IEl,TFl以及RI/TI,在中断源满足中断请求的条件下,各标志自动置1,以向CPU请求中断。
如果某一中断源提出中断请求后,CPU不能立即响应,只要该中断请求标志不被软件人为清除,中断请求的状态就将一直保持,直到CPU响应了中断为止,对串行口中断而言,这一过程与其它4个中断的不同之处在于;即使CPU响应了中断,其中断标志RI/TI也不会自动清零,必须在中断服务程序中设置清除RI/TI的指令后,才会再一次地提出中断请求。
CPU的现场保护和恢复必须由被响应的相应中断服务程序去完成,当执行RETI中断返回指令后,断点值自动从栈顶2字节弹出,并装入PC寄存器,使CPU继续执行被打断了的程序。
下面给出一个应用定时器中断的实例。
现要求编制一段程序,使P1.0端口线上输出周期为2ms的方波脉冲。
设单片机晶振频率 Fosc=6MHZ.1、方法:利用定时器T0作1ms定时,达到定时值后引起中断,在中断服务程序中,使P1.0的状态取一次反,并再次定时1ms。
2、定时初值:机器周期MC=12/fosc=2us。
所以定时lms所需的机器周期个数为500D,亦即0lF4H。
设T0为工作方式1(16位方式),则定时初值是(01F4H)求补=FEOCHSTART: MOV TMOD,#01H ;T0为定时器状态,工作方式1MOV TL0,#0CH ;T0的低位定时初值MOV TH0,#0FEH ;T0的高位定时初值MOV TCON,#10H ;打开T0SETB ET0 ;1ET0,即允许T0中断SETB EA ;1EA,即充许全局中断AJMP $ ;动态暂存000BH: AJMP IST0 ;转入T0中断服务程序入口地址IST0 IST0: MOV TL0,#0CH ;重置定时器初值MOV TH0,#0FEH ;重置定时器初值CPL P1.0 ;P1.0取反RET1 ;中断返回串行端口共有2个控制寄存器SCON和PCON,用以设置串行端口的工作方式、接收/发送的运行状态、接收/发送数据的特征、波特率的大小,以及作为运行的中断标志等。
?串行口控制寄存器SCONSCON的字节地址是98H,位地址(由低位到高位)分别是98H一9FH。
SCON的格式如图五所示。
SMo,SMl:串行口工作方式控制位。
00--方式0;01--方式1;10--方式2;11--方式3。
SM2:仅用于方式2和方式3的多机通讯控制位发送机SM2=1(要求程控设置)。
当为方式2或方式3时:接收机 SM2=1时,若RB8=1,可引起串行接收中断;若RB8=0,不引起串行接收中断。
SM2=0时,若RB8=1,可引起串行接收中断;若 RB8=0,亦可引起串行接收中断。
REN:串行接收允许位。
0--禁止接收;1--允许接收。
TB8:在方式2,3中,TB8是发送机要发送的第9位数据。
RB8:在方式2,3中,RB8是接收机接收到的第9位数据,该数据正好来自发送机的TB8。
TI:发送中断标志位。
发送前必须用软件清零,发送过程中TI保持零电平,发送完一帧数据后,由硬件自动置1。
如要再发送,必须用软件再清零。
RI: 接收中断标志位。
接收前,必须用软件清零,接收过程中RI保持零电平,接收完一帧数据后,由片内硬件自动置1。
如要再接收,必须用软件再清零。
PCON的字节地址为87H,无位地址,PCON的格式如图六所示。
需指出的是,对80C31单片机而言,PCON还有几位有效控制位。
SMOD:波特率加倍位。
在计算串行方式1,2,3的波特率时;0---不加倍;1---加倍。
8031单片机的串行I/O端口是一个中断源,有两个中断标志RI和TI,RI用于接收,TI用于发送。
串行端口无论在何种工作方式下,发送/接收前都必须对TI/RI清零。
当一帧数据发送/接收完后,TI/RI自动置1,如要再发送/接收,必须先用软件将其清除。
在串行中断被打开的条件下,对方式0和方式1来说,一帧数据发送/接收完后,除置位TI/RI外,还会引起串行中断请求,并执行串行中侧目务程序。
但对方式2和方式3的接收机而言,还要视SM2和RB8的状态,才可确定RI是否被置位以及串行中断的开放:SM2 RB8 接收机中断标志与中断状态0 1 激活RI,引起中断1 0 不激活RI,不引起中断1 1 激活RI,引起中断单片机正是利用方式2,3的这一特点,实现多机间的通信。
串行端口的常用应用方法见相关章节。
对方式0来说,波特率已固定成fosc/12,随着外部晶振的频率不同,波特率亦不相同。
常用的fosc有12MHz和6MHz,所以波特率相应为1000×103和500×103位/s。
在此方式下,数据将自动地按固定的波特率发送/接收,完全不用设置。
对方式2而言,波特率的计算式为2SMOD?fosc/64。
当SMOD=0时,波特率为fm/64;当SMOD=1时,波特率为fosc/32。
在此方式下,程控设置SMOD位的状态后,波特率就确定了,不需要再作其它设置。
对方式1和方式3来说,波特率的计算式为2SMOD/32×T1溢出率,根据SMOD状态位的不同,波特率有Tl/32溢出率和T1/16溢出率两种。
由于T1溢出率的设置是方便的,因而波特率的选择将十分灵活。
前已叙及,定时器Tl有4种工作方式,为了得到其溢出率,而又不必进入中断服务程序,往往使T1设置在工作方式2的运行状态,也就是8位自动加入时间常数的方式。
由于在这种方式下,T1的溢出率(次/秒)计算式可表达成:下面一段主程序和中断服务程序,是利用串行方式l从数据00H开始连续不断增大地串行发送一片数据的程序例。
设单片机晶振的频率为6MHZ,波特率为1200位/秒。
ORG 2000H ;1200位/秒的定时器初值 MOV TL1,#0F3HMOV TH1,#0F3H ;使SMOD=0 MOV PCON,#00H ;T1方式2 MOV TMOD,#20HSETB EACLR ET1 ;关闭T1中断 SETB ES ;开串行中断 SETB TR1 ;开T1定时 MOV SCON,#40H ;串行方式1 CLR AMOV SBUF,A ;串行发送 JNB T1,$ ;等待发送完 CLR T1, ;清标志 SJMP $ ORG 0023H ;串行中断入口地址 MOV SBUF,A ;连续发送 JNB T1,$INC ACLR T1RET1 ;中断返回。