单片机串行口接收和发送数据的过程简述
单片机串口通信的发送与接收

单片机串口通信的发送与接收51单片机的串口,是个全双工的串口,发送数据的同时,还可以接收数据。
当串行发送完毕后,将在标志位TI 置1,同样,当收到了数据后,也会在RI 置1。
无论RI 或TI 出现了1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。
在中断程序中,要区分出来究竟是发送引起的中断,还是接收引起的中断,然后分别进行处理。
看到过一些书籍和文章,在串口收、发数据的处理方法上,很多人都有不妥之处。
接收数据时,基本上都是使用“中断方式”,这是正确合理的。
即:每当收到一个新数据,就在中断函数中,把RI 清零,并用一个变量,通知主函数,收到了新数据。
发送数据时,很多的程序都是使用的“查询方式”,就是执行while(TI ==0); 这样的语句来等待发送完毕。
这时,处理不好的话,就可能带来问题。
看了一些网友编写的程序,发现有如下几条容易出错:1.有人在发送数据之前,先关闭了串口中断!等待发送完毕后,再打开串口中断。
这样,在发送数据的等待期间内,如果收到了数据,将不能进入中断函数,也就不会保存的这个新收到的数据。
这种处理方法,就会遗漏收到的数据。
2.有人在发送数据之前,并没有关闭串口中断,当TI = 1 时,是可以进入中断程序的。
但是,却在中断函数中,将TI 清零!这样,在主函数中的while(TI ==0);,将永远等不到发送结束的标志。
3.还有人在中断程序中,并没有区分中断的来源,反而让发送引起的中断,执行了接收中断的程序。
对此,做而论道发表自己常用的方法:接收数据时,使用“中断方式”,清除RI 后,用一个变量通知主函数,收到新数据。
发送数据时,也用“中断方式”,清除TI 后,用另一个变量通知主函数,数据发送完毕。
这样一来,收、发两者基本一致,编写程序也很规范、易懂。
更重要的是,主函数中,不用在那儿死等发送完毕,可以有更多的时间查看其它的标志。
实例:求一个PC与单片机串口通信的程序,要求如下:1、如果在电脑上发送以$开始的字符串,则将整个字符串原样返回(字符串长度不是固定的)。
单片机原理及接口技术课后答案第七章

第七章1、什么是串行异步通信,它有哪些作用?答:在异步串行通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式参考书。
通信采用帧格式,无需同步字符。
存在空闲位也是异步通信的特征之一。
2、89C51单片机的串行口由哪些功能部件组成?各有什么作用?答:89C51单片机的串行接口由发送缓冲期SBUF,接收缓冲期SBUF、输入移位寄存器、串行接口控制器SCON、定时器T1构成的波特率发生器等部件组成。
由发送缓冲期SBUF发送数据,接收缓冲期SBUF接收数据。
串行接口通信的工作方式选择、接收和发送控制及状态等均由串行接口控制寄存器SCON控制和指示。
定时器T1产生串行通信所需的波特率。
3、简述串行口接收和发送数据的过程。
答:串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读和写的。
当向SBUF发“写”命令时(执行“MOV SBUF,A”),即向缓冲期SBUF装载并开始TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。
在满足串行接口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位REN (SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1。
当发读SBUF命令时(执行“MOV A, SBUF”),便由接收缓冲期SBUF 取出信息通过89C51内部总线送CPU。
4、89C51串行口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定?答:89C51串行口有4种工作方式:方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。
有2种帧格式:10位,11位方式0:方式0的波特率≌fosc/12(波特率固定为振荡频率1/12)方式2:方式2波特率≌2SMOD/64×fosc方式1和方式3:方式1和方式3波特率≌2SMOD/32×(T1溢出速率)如果T1采用模式2则:5、若异步通信接口按方式3传送,已知其每分钟传送3600个字符,其波特率是多少?答:已知每分钟传送3600个字符,方式3每个字符11位,则:波特率=(11b/字符)×(3600字符/60s)=660b/s6、89C51中SCON的SM2,TB8,RB8有何作用?答:89c51SCON的SM2是多机通信控制位,主要用于方式2和方式3.若置SM2=1,则允许多机通信。
单片机简答题(共2题,每题5分,共10分,建议从最后5题中选择)

简答题部分1、什么叫堆栈?答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。
实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。
2、进位和溢出?答:两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。
3、什么是单片机的机器周期、状态周期、振荡周期和指令周期?它们之间是什么关系?答:某条指令的执行周期由若干个机器周期(简称M周期)构成,一个机器周期包含6个状态周期(又称时钟周期,简称S周期),而一个状态周期又包含两个振荡周期(P1和P2,简称P周期)。
也就是说,指令执行周期有长有短,但一个机器周期恒等于6个状态周期或12个振荡周期,即1M=6S=12P。
4、存储器中有几个保留特殊功能的单元用做入口地址?分别作什么作用?答:MCS-51系列单片机的存储器中有6个保留特殊功能单元,其中0000H为复位入口、0003H 为外部中断0入口、000BH为T0溢出中断入口、0013H为外部中断1入口、001BH为T1溢出中断入口、0023H为串行接口中断入口。
5、MCS-51单片机的P0~P3四个I/O端口在结构上有何异同?使用时应注意的事项?答:MCS-51单片机的四个端口在结构上相同之处:P0~P3都是准双向I/O口,作输入时,必须先向相应端口的锁存器写入“1”。
不同之处;P0口的输出级与P1~P3口不相同,它无内部上拉电阻,不能提供拉电流输出,而P1~P3则带内部上拉电阻,可以提供拉电流输出。
当P0口作通用I/O口输出使用时,需外接上拉电阻才可输出高电平;但作地址/数据总线时,不需要外接上拉电阻。
P1~P3口I/O输出时,均无需外接上拉电阻。
6、MCS-51的时钟周期、机器周期、指令周期的如何分配的?当振荡频率为8MHz时,一个单片机时钟周期为多少微秒?答:MCS-51的时钟周期是最小的定时单位,也称为振荡周期或节拍。
51单片机基础知识试题题库(答案)

第二章习题参考答案一、填空题:2、MCS-51的堆栈是软件填写堆栈指针临时在片内RAM数据存储器内开辟的区域。
INC DEC 都不影响 PSW堆宅操作只有一条寻址方式直接寻址方式17、使用8031芯片时,需将ROM 存7、单片机8031的ALE引脚是()。
A、输出高电平B、输出矩形脉冲,频率为fosc的1/6C、输出低电平D、输出矩形脉冲,频率为fosc的1/211、单片机上电复位后,堆栈区的最大允许范围是()个单元。
A、64B、 120C、128D、25612、单片机上电复位后,堆栈区的最大允许范围是内部RAM的()。
A、00H—FFHB、00H—07HC、07H—7FHD、08H—7FH13、对于8031单片机,其内部RAM()。
A、只能位寻址B、只能字节寻址C、既可位寻址又可字节寻址D、少部分能位寻址18、单片机8051的XTAL1和XTAL2引脚是()引脚。
A、外接定时器B、外接串行口C、外接中断D、外接晶振23、MCS—51的专用寄存器SFR中的堆栈指针SP是一个特殊的存贮区,用来(),它是按后进先出的原则存取数据的。
A、存放运算中间结果B、存放标志位C、暂存数据和地址D、存放待调试的程序三、判断题6、PC可以看成使程序存储器的地址指针。
(√)7、判断以下有关PC和DPTR的结论是否正确?A、DPTR是可以访问的,而PC不能访问。
(√)B、它们都是16位的存储器。
(√)C、它们都有自动加“1”的功能。
(×)PC有自动加“1”的功能,而DPTR的加“1”则需通过指令INC DPTR来完成。
D、DPTR可以分为两个8位的寄存器使用,但PC不能。
(√)8、程序计数器PC不能为用户编程时直接使用,因为它没有地址。
(√)13、8051的累加器ACC是一个8位的寄存器,简称为A,用来存一个操作数或中间结果。
(√)14、8051的程序状态字寄存器PSW是一个8位的专用寄存器,用于存程序运行中的各种状态信息。
单片机原理及应用习题 (带答案)

《单片机原理及应用》习题一、填空1、MCS-51单片机访问外部存储器时,利用 ALE 信号锁存来自 P0 口的低8位地址信号。
2、MCS-51系统中,当PSEN 信号有效时,表示从P0口稳定地读入了 低8位地址 。
3、通常单片机上电复位时PC=0000H ,SP= 07H ;而工作寄存器则缺省采用第 00 组,这组寄存器的地址范围是从 00H~07H 开始。
4、MCS-51单片机的存储器从物理结构上可划分 4 个空间,从逻辑上分别可划分 3 个空间。
5、MCS-51单片机8031中有 2 个16位的定时/计数器,可以被设定的工作方式有 4 种。
6、MCS-51有 5 中断源,有 2 中断优先级,优先级由软件填写特殊功能寄存器 加以选择。
7、当/EA 接地时,MCS-51单片机将从_ 外部程序的存储器_____的地址0000H 开始执行程序。
8、中断请求信号有 电平 触发和 边沿 触发两种触发方式。
9、用串行口扩展并行口时,串行接口的工作方式应选为 0 。
10. MCS -51复位后·CPU 从 0000 H 单元开始执行程序。
·SP 的内容为 07 H , 第一个压入堆栈的数据将位于 片内 RAM 的 08 H 单元。
·SBUF 的内容为 不定 。
·ADDC A , #54H 指令执行后 , PSW 寄存器的内容将等于 01 H 。
11. 8051AH·片内设置有4KB 的ROM , 当EA 端保持高电平时 , PC (程序计数器)值超过 OFF H时 , 将自动转向执行外部程序存储器的程序。
·可做通用I/O 的至少有_P1_口的8条I/O 线。
_P0_口作地址/数据总线, 传送地址码的_低_8位 , _P2 口作地址总线 , 传送地址码的高__8位。
12.存储器组织·8051片内RAM 有 128 个字节 , 片外RAM 寻址范围为 64K 个字节。
单片机串行口工作方式

单片机串行口工作方式
单片机串行口工作方式
单片机串行口是一种常用的通信接口,用于与其他设备进行数据传输。
串行口的工作方式通常分为同步方式和异步方式,其中异步方式更为
常见。
异步方式下,串行口通过发送和接收两个线路进行数据传输。
在发送
数据时,串行口首先发送一个起始位,然后按照约定的数据位数发送
具体数据,最后发送一个停止位。
在接收数据时,串行口通过检测起
始位和停止位确定接收的数据,并将其存储在接收缓冲区中。
在单片机中,串行口的时钟频率通常是由一个预分频器和一个计数器
共同决定的。
预分频器用于将主时钟分频,计数器则用于控制数据的
传输速率。
在实际应用中,串行口常常被用于与外部设备进行通信。
例如,与传
感器通信时,传感器将采集到的数据通过串行口发送到单片机,单片
机则对这些数据进行处理和分析。
总之,单片机串行口是一种极为常用的通信接口,其工作方式既包括
同步方式又包括异步方式。
在实际应用中,我们需要根据具体需求选择合适的串行口工作方式,并根据具体需求进行配置。
单片机习题答案

单片机习题答案第1章习题参考答案1-1什么是单片机?它与一般微型计算机在结构上何区别?微型计算机的基本结构由CPU(运算器、控制器)、存储器、输入设备和输出设备五大部分组成,各部分通过外部总线连接而成为一体。
单片机的结构是在一块芯片上集成了中央处理器(CPU)、存储器、定时器/计数器、中断控制、各种输入/输出接口(如并行I/O口、串行I/O口和A/D转换器)等,它们通过单片机内部部总线连接而成为一体。
1-2MCS-51系列单片机内部资源配置如何?试举例说明8051与51兼容的单片机的异同。
答:MCS-51系列单片机内部资源配置型号8031/80C318051/80C51程序存储器片内RAM定时/计数器并行I/O口串行口中断源/中断优先级无128B128B128B256B256B2某162某162某163某163某164某84某84某84某84某8111115/25/25/26/26/24KBROM无8751/87C514KBEPROM8032/80C328052/80C524KBROM8051与51兼容的单片机的异同厂商型号程序存储片内定时/并行串行中断源/优先级5/26/2直接驱动LED输出,片上模拟比较器256B3某163219/2SPI,WDT,2个数据指针其它特点器RAM计数器I/O口口IntelATMEL8051/80C514KBROM128BAT89C20512KBFlahROMAT89S5312KBFlah ROMAnalogADuC812DeviceW77E5832KB256B+3某1636212/2扩展了4位I/O 口,双数据指针,WDT。
19/2WDT,SPI,8通道12位ADC,2通道12位DAC,片上DMA控制器。
.飞利浦80C552无256B3某1648115/4CMOS型10位ADC,捕捉/比较单元,PWM83/87C5528KBEEPROM83/89CE55832KBEEPROM256B+3某16401024B115/4256B3某1648115/4CMOS型10位ADC,捕捉/比较单元,PWM8通道10位ADC,捕捉/比较单元,PWM,双数据指针,IC总线,PLL (32kHz)。
51单片机基础知识试题题库(考试用含答案)

51单片机基础知识试题题库(考试用含答案)ﻭ第二章习题参考答案一、填空题:2、MCS-51的堆栈是软件填写堆栈指针临时在片内R AM 数据存储器内开辟的区域。
INC DEC 都不影响PSW 堆宅操作只有一条寻址方式直接寻址方式3、当使用8751且EA=1〃程序存储器地址小于1000H时〃访问的是片内ROM。
7、PSW中RS1 RS0=10时〃R2的地址为12H。
8、PSW中RS1 RS0=11时〃R2的地址为1AH。
14、内部RAM中〃位地址为30H的位〃该位所在字节的字节地址为。
17、使用8031芯片时〃需将/EA引脚接低电平〃因为其片内无ROM存22、但单片机的型号为8031/8032时〃其芯片引线EA一定要接di 电平。
7、单片机8031的ALE引脚是。
A、输出高电平B、输出矩形脉冲〃频率为fosc的1/6C、输出低电平D、输出矩形脉冲〃频率为fosc的1/2 111、单片机上电复位后〃堆栈区的最大允许范围是个单元。
A、64B、120C、128 D、256 12、单片机上电复位后〃堆栈区的最大允许范围是内部RAM的。
A、00H—FFH B、00H—07H C、07H—7FHD、08H—7FH13、对于8031单片机〃其内部RAM。
A、只能位寻址B、只能字节寻址C、既可位寻址又可字节寻址D、少部分能位寻址18、单片机8051的XTAL1和XTAL2引脚是引脚。
A、外接定时器B、外接串行口C、外接中断D、外接晶振23、MCS—51的专用寄存器SFR中的堆栈指针SP是一个特殊的存贮区〃用来〃它是按后进先出的原则存取数据的。
A、存放运算中间结果B、存放标志位C、暂存数据和地址D、存放待调试的程序三、判断题6、PC可以看成使程序存储器的地址指针。
7、判断以下有关PC和DPTR的结论是否正确?A、DPTR是可以访问的〃而PC不能访问。
B、它们都是16位的存储器。
C、它们都有自动加“1”的功能。
PC 有自动加“1”的功能〃而DPTR的加2 “1”则需通过指令INC DPTR 来完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机串行口接收和发送数据的过程简述
串行口接收和发送数据的过程简述
答:在发送过程中,当执行一条将数据写入发送缓冲器SBUF(99H)的指令时,串行口把SBUF中8位数据以fosc/l2的波特率从RXD(P3.0)端输出,发送完毕置中断标志TI=1。
写SBUF指令在S6P1处产生一个正脉冲,在下一个机器周期的S6P2处,数据的最低位输出到RXD(P3.0)脚上;再在下一个机器周期的S3、S4和S5输出移位时钟为低电平时,在S6及下一个机器周期的Sl和S2为高电平,就这样将8位数据由低位至高位一位一位顺序通过RXD线输出。
并在TXD脚上输出fosc/12的移位时钟。
在写SBUF有效后的第10个机器周期的SlPl将发送中断标志TI置位。
接收时,用软件置REN=1(同时,RI=0),即开始接收。
当使SCON中的REN=1(RI=0)时,产生一个正的脉冲,在下一个机器周期的S3P1~S5P2,从TXD(P3.1)脚上输出低电平的移位时钟,在此机器周期的S5P2对P3.0脚采样.并在本机器周期的S6P2通过串行口内的输入移位寄存器将采样值移位接收。
在同一个机器周期的S6P1到下一个机器周期的S2P2,输出移位时钟为高电平。
于是,将数据字节从低位至高位接收下来并装入SBUF。
在启动接收过程(即写SCON,清RI位),将SCON中的RI清0之后的第l0个机器周期的SlPl将RI置位。
这一帧数据接收完毕,可进行下一帧接收。