单片机原理及应用第2版课后答案第6章习题答案
- 格式:doc
- 大小:77.00 KB
- 文档页数:7
第6章 AT89S51的定时/计数器参考答案1.答:(A )对;(B )错;(C )错;(D )错; 2.答:因为机器周期: 所以定时器/计数器工作方式0下,其最大定时时间为同样可以求得方式1下的最大定时时间为262.144ms ;方式2下的最大定时时间为1024ms 。
3.答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
定时时间与时钟频率和定时初值有关。
4.答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
5.答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。
除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。
参考程序如下:ORG 0000H LJMP MAIN ORG000BHLJMP IT0PMAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2 MOV TL0,#156;计数100个脉冲的初值赋值MOV TH0,#156 SETB GATE ;打开计数门 SETB TR0 ;启动T0,开始计数 SETB ET0 ;允许T0中断 SETB EA ;CPU 开中断CLRF0;设置下一轮为定时方式的标志位WAIT: AJMP WAIT IT0P: CLREA ;CPU 关中断)(410312126s f T OSCcy μ=⨯==)(192.81042261313ms T T C MAX =⨯⨯=⨯=-JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,#00H ;定时器/计数器T0为定时方式0MOV TH0,#0FEH ;定时1ms初值赋值MOV TL0,#0CHSETB EARETICOUNT: MOV TMOD,#06HMOV TL0,#156SETB EARETI6. 答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。
单片机原理及应用第2版课后答案第6章习题答案1.异步通信和同步通信的主要区别是什么?MCS-51串行口有没有同步通信功能?答案:异步通信因为每帧数据都有起始位和停止位,所以传送数据的速率受到限制。
但异步通信不需要传送同步脉冲,字符帧的长度不受限制,对硬件要求较低,因而在数据传送量不很大。
同步通信一次可以连续传送几个数据,每个数据不需起始位和停止位,数据之间不留间隙,因而数据传输速率高于异步通信。
但同步通信要求用准确的时钟来实现发送端与接收端之间的严格同步。
MCS-51串行口有同步通信功能。
2.解释下列概念:(1)并行通信、串行通信。
(2)波特率。
(3)单工、半双工、全双工。
(4)奇偶校验。
答案:(1)并行通信:数据的各位同时进行传送。
其特点是传送速度快、效率高,数据有多少位,就需要有多少根传输线。
当数据位数较多和传送距离较远时,就会导致通信线路成本提高,因此它适合于短距离传输。
串行通信:数据一位一位地按顺序进行传送。
其特点是只需一对传输线就可实现通信,当传输的数据较多、距离较远时,它可以显著减少传输线,降低通信成本,但是串行传送的速度慢。
(2)波特率:每秒钟传送的二进制数码的位数称为波特率(也称比特数),单位是bp(bitperecond),即位/秒。
(3)单工:只允许数据向一个方向传送,即一方只能发送,另一方只能接收。
半双工:允许数据双向传送,但由于只有一根传输线,在同一时刻只能一方发送,另一方接收。
全双工:允许数据同时双向传送,由于有两根传输线,在A站将数据发送到B站的同时,也允许B站将数据发送到A站。
(4)奇偶校验:为保证通信质量,需要对传送的数据进行校验。
对于异步通信,常用的校验方法是奇偶校验法。
采用奇偶校验法,发送时在每个字符(或字节)之后附加一位校验位,这个校验位可以是“0”或“1”,以便使校验位和所发送的字符(或字节)中“1”的个数为奇数——称为奇校验,或为偶数——称为偶校验。
接收时,检查所接收的字符(或字节)连同奇偶校验位中“1”的个数是否符合规定。
单片机原理与应用课后答案(第二版)2-1. 8051单片机芯片内部包含哪些主要逻辑功能部件?答:一个8位微处理器(CPU);片内数据存储器RAM;片内程序存储器ROM;四个8位并行I/O口P0~P3;两个定时器/计数器;五个中断源的中断控制系统;一个UART(通用异步接收发送器)的串行I/O口;片内振荡器和时钟产生电路。
2-2、8051存储器分哪几个地址空间?如何区别不同空间寻址?答:⑴片内、外统一编址的64KB程序存储器;⑵片内256B数据存储器;⑶片外64KB数据存储器。
硬件:引脚接高电平时CPU从片内0000H单元开始取指令,接低电平时CPU直接访问片外EPROM。
EA软件:MOV指令访问片内数据存储器,MOVX 指令访问片外数据存储器,MOVC指令用于读取程序存储器中的常数。
2-3. 简述8051片内RAM的空间分配。
答:低128B位数据存储器区分为:工作寄存器区(00H~1FH);位寻址区(20H~2FH);一般数据存储区(30H~7FH)高128B数据存储器区离散地分布着21个特殊功能寄存器2-4. 简述直接位寻址区的空间分配,片内RAM中包含哪些可位寻址单元?答:MCS-51单片机片内RAM中有两个区域可进行位寻址:(1)片内RAM低128字节的位寻址区,地址为20H~2FH的16个字节单元共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作,128位的位地址定义为00H~7FH。
(2)片内RAM高128字节的存储器区,有21个特殊功能寄存器。
其中字节地址正好能被8整除的字节单元中的每一位都可以按位寻址、操作。
14 2-5.8051的P0~P3口有何不同,用作通用I/O口输入数据时应注意什么?答:P0~P3口功能不完全相同。
(1)访问外扩展存储器时,P2口送出16位地址的高8位地址,P0口先送出16位地址的低8位地址,再做数据的输入/输出通道。
《单片机原理及应用》习题答案第一章计算机基础知识1-1 微型计算机主要由哪几部分组成?各部分有何功能?答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB 来连接。
CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。
存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。
按其功能可分为RAM和ROM。
输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。
总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。
1-3 什么叫单片机?其主要由哪几部分组成?答:单片机(Single Chip Microcomputer)是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。
1-4 在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用?答:单片机片内ROM的配置状态可分四种:(1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产;(2)片内EPROM型单片机(如8751),适合于研制产品样机;(3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;(4)EEPROM(或Flash ROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。
1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制)1-6 写出下列各数的BCD参与:59:01011001,1996:0001100110010110,4859.2:0100100001011001.0010 389.41:001110001001.01000001第二章MCS-51单片机的硬件结构2-1 8052单片机片内包含哪些主要逻辑功能部件?答: 8052单片机片内包括:①8位中央处理器CPU一个②片内振荡器及时钟电路③256B数据存储器RAM。
22-3 51单片机的EA, AL,PSEN信号个自动功能是什么?EA:为片外程序存储器选用端,该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。
ALE:地址索存有效信号输出在访问片外程序存储器期间,ALE以每机器周期两次进行信号输出,其下降沿用于控制锁存P0输出的低8位地址;在不访问片外程序存储器期间,ALE端仍以上述频率(振荡频率f osc的1/6)出现,可作为对外输出的时钟脉冲或用于定时目的.端,PSEN:片外程序存储器读选通信号输出端,低电平有效。
2-4 51系列单片机有哪些信号需要芯片引脚的第二功能方式提供?●p1.0 :定时计数器2的计数脉冲输入端T2 P1.1 :定时计数器2的外部控制端T2EXP3.0 :PxD 串行口输入端P3.1 :TxD串行口输出端P3.2 :INT0 外部中断0请求输入端,低电平有效P3.3 :INT1 外部中断1请求输入端,低电平有效P3.4 :T0 定时/计数器0技术脉冲输入端P3.5 :T1 定时/计数器1技术脉冲输入端P3.6 :WR 外部数据存数器写选通信信号输出端,低电平有效P3.7 :RD 外部数据存数器读选通信信号输出端,低电平有效2-551系列单片机的程序状态字PSW中存放什么信息?其中的OV标志位在什么情况下被置位?置位是表示什么意思?●PSW是一个8位标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。
●1)做加法时,最高位,次高位之一有进位则OV被置位2)做减法时,最高位,次高位之一借位则OV被置位3)执行乘法指令MUL AB,积大于255,OV=14)执行处罚指令DIV AB,如果B中所放除数为0 ,OV=1●0V=1,置位反映运算结果超出了累加器的数值范围2-9片内RAM低128单元划分为哪几个区域?应用中怎么样合理有效的使用?●工作寄存器区,位寻址区,数据缓冲区①工作寄存器区用于临时寄存8位信息,分成4组,每组有8个寄存器,每次只用1组,其他各组不工作②位寻址区(20H~2FH),这16个单元的每一位都赋予了一个位地址,位地址范围为00H~7FH,位寻址区的每一位都可能当作软件触发器,由程序直接进行位处理。
作业答案0-1绪论1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM 和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。
2.什么叫单片机?其主要特点有哪些?解:将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。
单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。
第1章MCS-51单片机的结构与原理15. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?解:MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。
每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。
通常把4个端口称为P0~P3。
在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。
在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
MCS-51系列单片机数据总线为8位,地址总线为16位,对外可寻址空间为64KB。
25. 开机复位后,CPU使用的是哪组工作寄存器(R0-R n)?它们的地址是什么?CPU如何确定和改变当前工作寄存器组(R0-R n)?解:开机复位后,CPU使用的是第0组工作寄存器。
它们的地址是00H-07H。
CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。
27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。
第6章MCS-51的定时器/计数器1.如果晶振的频率为3MHz,定时器/计数器工作在方式0、1、2下,其最大的定时时间各为多少?2.定时器/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?3.定时器/计数器作计数器模式使用时,对外界计数频率有何限制?4.定时器/计数器的工作方式2有什么特点?适用于什么应用场合?5.一个定时器的定时时间有限,如何实现两个定时器的串行定时,来实现较长时间的定时?6.定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为6MHz,求允许测量的最大脉冲宽度是多少?7.判断下列说法是否正确?(1)特殊功能寄存器SCON,与定时器/计数器的控制无关。
(2)特殊功能寄存器TCON,与定时器/计数器的控制无关。
(3)特殊功能寄存器IE,与定时器/计数器的控制无关。
(4)特殊功能寄存器TMOD,与定时器/计数器的控制无关。
8.设定1ms的定时,可以在P1.0引脚上产生周期为2ms的方波输出,设晶体振荡器的频率为6MHz,分别写出在方式0和方式1时,赋给T0的常数。
9.设MCS-51单片机的晶振频率为12MHz,请编程使P1.O端输出频率为20kHz的方波。
10.要求采用定时中断的方式,实现下图所示流水灯的双向循环(D1—D8—D1)流动功能。
其中流水灯的闪烁速率为每秒1次。
11.设单片机的fosc = 12MHz,使P1.O和P1.1分别输出周期为1ms和lOms的方波,请用定时器TO方式2编程实现。
附录2:作业及答案1.如果晶振的频率为3MHz,定时器/计数器工作在方式0、1、2下,其最大的定时时间各为多少?(12/3×8192=32.768ms;12/3*65636=262.144ms; 12/3*256=1.024ms)2.定时器/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?(定时的计数脉冲来自于单片机内部,即每个机器周期产生一个计数脉冲,也就是每个机器周期计数器加1。
第6章习题答案1.异步通信和同步通信的主要区别是什么?MCS-51串行口有没有同步通信功能?答案:异步通信因为每帧数据都有起始位和停止位,所以传送数据的速率受到限制。
但异步通信不需要传送同步脉冲,字符帧的长度不受限制,对硬件要求较低,因而在数据传送量不很大。
同步通信一次可以连续传送几个数据,每个数据不需起始位和停止位,数据之间不留间隙,因而数据传输速率高于异步通信。
但同步通信要求用准确的时钟来实现发送端与接收端之间的严格同步。
MCS-51串行口有同步通信功能。
2.解释下列概念:(1) 并行通信、串行通信。
(2) 波特率。
(3) 单工、半双工、全双工。
(4) 奇偶校验。
答案:(1)并行通信:数据的各位同时进行传送。
其特点是传送速度快、效率高,数据有多少位,就需要有多少根传输线。
当数据位数较多和传送距离较远时,就会导致通信线路成本提高, 因此它适合于短距离传输。
串行通信:数据一位一位地按顺序进行传送。
其特点是只需一对传输线就可实现通信,当传输的数据较多、距离较远时,它可以显著减少传输线,降低通信成本,但是串行传送的速度慢。
(2)波特率:每秒钟传送的二进制数码的位数称为波特率(也称比特数),单位是bps(bit per second),即位/秒。
(3)单工:只允许数据向一个方向传送,即一方只能发送,另一方只能接收。
半双工:允许数据双向传送,但由于只有一根传输线,在同一时刻只能一方发送,另一方接收。
全双工:允许数据同时双向传送,由于有两根传输线,在A站将数据发送到B站的同时,也允许B站将数据发送到A站。
(4)奇偶校验:为保证通信质量,需要对传送的数据进行校验。
对于异步通信,常用的校验方法是奇偶校验法。
采用奇偶校验法,发送时在每个字符(或字节)之后附加一位校验位,这个校验位可以是“0”或“1”,以便使校验位和所发送的字符(或字节)中“1”的个数为奇数——称为奇校验,或为偶数——称为偶校验。
接收时,检查所接收的字符(或字节)连同奇偶校验位中“1”的个数是否符合规定。
若不符合,就证明传送数据受到干扰发生了变化,CPU可进行相应处理。
3.MCS-51串行口控制寄存器SCON中SM2、TB8、RB8有何作用?主要在哪几种方式下使用?答案:SM2:多机通信控制位,主要在方式1、2、3下使用;TB8:存放发送数据的第9位,主要在方式2、3下使用;RB8:存放接收数据的第9位或停止位,主要在方式1、2、3下使用。
4.试分析比较MCS-51串行口在四种工作方式下发送和接收数据的基本条件和波特率的产生方法。
答案:发送数据的基本条件:方式0、1、2、3:CPU 执行一条将数据写入发送缓冲器SBUF 的指令; 接收数据的基本条件:方式0:用软件使REN=1(同时RI=0);方式1:用软件使REN=1,一帧数据接收完毕后,必须同时满足以下两个条件:①RI=0;②SM2=0或接收到的停止位为1,这次接收才真正有效,将8位数据送入SBUF ,停止位送RB8,置位RI 。
否则,这次接收到的数据将因不能装入SBUF 而丢失。
方式2、3:软件使REN=1,同时满足以下两个条件:① RI=0;② SM2=0或接收到的第9位数据为1(SM2=1),则这次接收有效,8位数据装入SBUF ,第9位数据装入RB8,并由硬件置位RI 。
否则,接收的这一帧数据将丢失。
波特率的产生方法:在方式0下,串行口的波特率是固定的,即波特率=f osc /12;在方式1、3下,串行口波特率由定时器T1的溢出率和SMOD 值同时决定。
相应公式为:波特率=2SMOD×T1溢出率/32;在方式2下,串行口的波特率可由PCON 中的SMOD 位控制:若使SMOD=0,则所选波特率为f osc /64;若使SMOD=1,则波特率为f osc /32。
即5.为何T1用作串行口波特率发生器时常用模式2?若f osc =6MHz ,试求出T1在模式2下可能产生的波特率的变化围。
答案:定时器T1作为波特率发生器可工作于模式0、模式1和模式2。
其中模式2在T1溢出后可自动装入时间常数,避免了重装参数,因而在实际应用中除非波特率很低,一般都采用模式2。
若f osc =6MHz ,T1在模式2下可能产生的波特率的变化围为:61.04 bps ~ 15625 bps 。
6.简述多机通信原理。
答案:当主机选中与其通信的从机后,只有该从机能够与主机通信,其他从机不能与主机进行数据交换, 而只能准备接收主机发来的地址帧。
上述要通过SCON 寄存器中的SM2和TB8来实现的。
当主机发送地址帧时使TB8=1,发送数据帧时使TB8=0,TB8是发送的一帧数据的第9位,从机接收后将第9位数据作为RB8,这样就知道主机发来的这一帧数据是地址还是数据。
另外,当一台从机的SM2=0时,可以接收地址帧或数据帧,而当SM2=1时只能接收地址帧,这就能实现主机与所选从机之间的单独通信。
7.试用8051串行口扩展I/O 口,控制16个发光二极管自右向左以一定速度轮流发光,画出电路并编写程序。
答案:电路如下:2SMOD64×f osc 波特率=程序如下:ORG 0000HAJMP MAINORG 0023HAJMP SBS ; 转向串行口中断服务程序ORG 2000HMAIN: MOV SCON, #00H ; 串行口设置为方式0MOV A, #01H ; 最右边一位发光二极管先亮CLR P1.0 ; 关闭并行输出,熄灭显示CLR P1.1MOV SBUF,A ; 开始串行输出LOOP: SJMP LOOP ; 等待中断SBS: INC R0CJNE R0, #11H, DSPMOV R0, #01HDSP : CJNE R0, #08H, DSPRSETB P1.1 ; 启动高8位并行输出DSPR: SETB P1.0 ; 启动低8位并行输出ACALL DELY ; 显示延迟1sCLR TI ; 清发送中断标志RL A ; 准备点亮下一位CLR P1.0 ; 关闭并行输出,熄灭显示CLR P1.1MOV SBUF, A ; 串行输出ZDFH: RETIDELY: MOV R2, #05H ; 延时1s子程序(f osc=6MHz)DELY0: MOV R3, #0C8HDELY1: MOV R4, #0F8HNOPDELY2: DJNZ R4, DELY2DJNZ R3, DELY1DJNZ R2, DELY0RETEND8.试设计一个8051单片机的双机通信系统,串行口工作在方式1,波特率为2400bps,编程将甲机片RAM中40H~4FH的数据块通过串行口传送到乙机片RAM的40H~4FH单元中。
答案:双方约定的通信协议如下:甲机先发送请求乙机接收信号“0AAH”,乙机收到该信号后,若为准备好状态,一个则发送数据“0BBH”作为应答信号,表示同意接收。
当甲机发送完16个字节后,再向乙机发送一个累加校验和。
校验和是针对数据块进行的,即在数据发送时,发送方对块中的数据简单求和,产生一个单字节校验字符(校验和),附加到数据块结尾。
在数据接收时,接收方每接收一个数据也计算一次校验和;接收完数据块后,再接收甲机发送的校验和,并将接收到的校验和与乙机求出的校验和进行比较,向甲机发送一个状态字,表示正确(00H)或出错(0FFH),出错则要求甲机重发。
甲机收到收到乙机发送的接收正确应答信号(00H)后,即结束发送,否则,就重发一次数据。
甲机采用查询方式进行数据发送,乙机采用中断方式进行数据接收。
双方约定传输波特率为2400bps,两机主频均为11.059MHz,双机串行口都工作于方式1,查表6-2可知SMOD=0,定时器T1采用工作模式2,初值为F4H。
甲机发送子程序:ORG 2000HSEND: MOV TMOD, #20H ; 定时器1设为模式2MOV TL1, #0F4HMOV TH1, #0F4H ; 置定时器初值SETB TR1 ; 启动T1MOV SCON, #50H ; 设串行口为方式2MOV PCON, #00H ; SMOD=0TLLS: MOV SBUF, #0AAH ; 发送请求接收信号WFS1: JBC TI, RYD1 ; 等待发送SJMP WFS1RYD1: JBC RI, RYD2 ; 等待乙机回答SJMP RYD1RYD2: MOV A, SBUF ; 接收应答信号XRL A, #0BBHJNZ TLLS ; 乙机未准备好,继续联络SDD1: MOV R0, #40H ; 首地址40H→R0MOV R1, #10H ; 数据个数→R1MOV R2, #00H ; 清校验和寄存器SDD2: MOV SBUF, R0 ; 发送一个数据MOV A, R2ADD A, R0 ; 求校验和MOV R2, A ; 保存校验和INC R0WFS2: JBC TI, SDD3 ; 等待发送SJMP WFS2SDD3: DJNZ R1, SDD2 ; 数据块是否发送完MOV SBUF, R2 ; 发送校验和WFS3: JBC TI, RYD3SJMP WFS3RYD3: JBC RI, RYD4 ; 等待乙机回答SJMP RYD3RYD4: MOV A, SBUFJNZ SDD1 ; 回答出错则重发RET乙机接收子程序:ORG 2000HRECV: MOV TMOD, #20H ; 定时器1设为模式2MOV TL1, #0F4HMOV TH1, #0F4H ; 置定时器初值SETB TR1 ; 启动T1MOV SCON, #50H ; 设串行口为方式2MOV PCON, #00H ; SMOD=0MOV R0, #40H ; 首地址40H→R0MOV R1, #10H ; 数据个数→R1MOV 50H, #00H ; 清校验和寄存器SETB 7FHSETB 7EH ; 标志位初始置1SETB ES ; 允许接收中断SETB EA ; 开中断LOOP: SJMP LOOP ; 等待中断中断服务子程序:CLR EACLR RI ; 清中断7FH, RCMD ; 是请求接收信号吗7EH, DATA ; 是数据块吗MOV A, SBUF ; 接收校验和CJNE A, 50H, ERR ; 判断发送是否正确MOV A, #00HMOV SBUF, A ; 正确,发00HWFS1: JNB TI, WFS1 ; 等待发送CLR TISJMP RETNERR: MOV A, #0FFHMOV SBUF, A ; 出错,发0FFHWFS2: JNB TI, WFS2 ; 等待发送CLR TISJMP AGANRCMD: MOV A, SBUF ; 接收甲机请求信号XRL A, #0AAHJZ TYDXSJMP RETNTYDX: MOV SBUF, #0BBH ; 发送应答信号0BBHWFS3: JNB TI, WFS3 ; 等待发送CLR TICLR 7FHSJMP RETNDATA: MOV A, SBUF ; 接收数据MOV R0, AINC DPTRADD A, 50H ; 求校验和MOV 50H, A ; 保存校验和DJNZ R1, RETNCLR 7EH ; 数据接收完后清数据标志位SJMP RETNAGAN: SETB 7FHSETB 7EH ; 恢复标志位MOV DPTR, #2000H ; 首地址2000H→DPTRMOV R1, #10 ; 数据个数→R1MOV 50H, #00H ; 清校验和寄存器RETN: SETB EA ; 开中断RETI9.8051以方式2进行串行通信,假定波特率为1200bps,第9位作奇偶校验位,以中断方式发送。