第6章 串行口的C51编程 《单片机的C语言程序设计及应用》(电工版第4版)章节过关卷

2025-07-29
| 2份
| 12页
| 72人阅读
| 0人下载

内容正文:

《单片机的C语言程序设计及应用》(电工版第4版) 第6章 串行口的C51编程 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共20小题,每题2分,共40分) 1.51单片机的串行口的工作方式有 ( ) A.2种 B.3种 C.4种 D.5种 2.决定串行口方式1的波特率的定时器是 ( ) A.T0 B.T1 C.T2 D.固定不变 3.串行口控制寄存器是 ( ) A.SBUF B.SCON C.PCON D.TMOD 4.串行口方式0的波特率是 ( ) A.可变 B.固定为晶振频率的1/12 C.由T1决定 D.由T0决定 5.串行口发送数据的寄存器是 ( ) A.SCON B.SBUF C.PCON D.TMOD 6.串行口接收中断标志位是 ( ) A.TI B.RI C.TF0 D.TF1 7.串行口发送中断标志位是 ( ) A.TI B.RI C.TF0 D.TF1 8.串行口方式1的数据帧格式是 ( ) A.8位数据,无校验位 B.8位数据,1位停止位,无校验位 C.10位数据(1起始位+8数据位+1停止位) D.11位数据(1起始位+8数据位+1校验位+1停止位) 9.以下能决定串行口方式3的波特率的是 ( ) A.固定不变 B.由T1决定 C.由T0决定 D.由外部时钟决定 10.串行口方式3与方式1的主要区别是 ( ) A.波特率不同 B.数据帧格式不同 C.校验位不同 D.中断方式不同 二、判断题(本题共10小题,每题2分,共20分) 1.51单片机的串行口是全双工的。( ) 2.串行口发送数据时,应先写SBUF再等待TI置1。( ) 3.串行口方式0的通信速率比方式1更快。( ) 4.串行口方式1的波特率误差较大时可能导致通信失败。( ) 5.串行口方式2的波特率由定时器T1决定。( ) 6.串行口方式3的波特率与方式1的波特率计算方式相同。( ) 7.串行口方式0通常用于扩展并行I/O接口。( ) 8.PCON寄存器的SMOD位可以加倍串行口方式1的波特率。( ) 9.串行口方式1的T1定时器必须工作在方式2。( ) 10.串行口接收中断标志RI置1后,必须用软件清零。( ) 三、填空题(本题共10小题,每空2分,共20分) 1.串行口中断优先级可以通过 寄存器设置。 2.串行口方式3的第9位数据可用于______通信。 3.串行口方式0通常用于扩展______接口。 4.串行口方式1的T1定时器通常工作在方式______。 5.串行口方式1的波特率计算公式中,SMOD位在______寄存器中。 6.串行口方式1的T1初值计算公式为:TH1=256-(晶振频率/(12×32×______))。 7.串行口方式2的数据帧包含______位数据(含校验位)。 8.串行口方式1的典型晶振频率是______MHz。 9.串行口方式1的T1初值为0xFD时,波特率约为______bps(SMOD=0)。 10.串行口方式3的波特率计算方式与方式______相同。 四、简答题。(每题5分,共10分) 1.简述51单片机串行口通信的基本工作原理。 2.说明51单片机串行口四种工作方式的特点及典型应用场景 五、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共30分) 1.设计一个采用串行口方式1数据发送程序。请填空。 #include<reg51.h> void main() ( SCON=【1】; PCON=0x80; TMOD=【2】; TL1=0xF4; TH1=【3】; TR1=1; SBUF=0x70; while(TI) { TI=0;} SBUF=0x71; while(TI) { TI=0;} 2.如图将51单片机的TXD接RXD,实现单片机串行口数据自发自收,并将接收的数据通过P1口输出到发光二极管显示。系统时钟频率为11.0592MHz,自发自收的波特率为2400bps。编写程序,要求:单片机串行口工作在方式1,从TXD发送数据0x0F,从RXD将该数据读回,并送P1口通过8个发光二极管显示。请填空。 #include<reg51.h> #define uchar unsigned char #define uint unsigned int void main() ( uchar i=0x0F; uint j=0; TMOD=【1】; TL1=TH1=0XF4; PCON=【2】; SCON=【3】; TR1=1; 【4】 { TI=0; SBUF=i; 【5】; TI=0; RI=0; while(RI==0); 【6】; P1=i; 【7】; for(j=0;j<12500;j++);}} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 《单片机的C语言程序设计及应用》(电工版第4版) 第6章 串行口的C51编程 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共10小题,每题2分,共20分) 1.51单片机的串行口的工作方式有 () A.2种 B.3种 C.4种 D.5种 【答案】C 2.决定串行口方式1的波特率的定时器是 () A.T0 B.T1 C.T2 D.固定不变 【答案】B 3.串行口控制寄存器是 () A.SBUF B.SCON C.PCON D.TMOD 【答案】B 4.串行口方式0的波特率是 () A.可变 B.固定为晶振频率的1/12 C.由T1决定 D.由T0决定 【答案】B 5.串行口发送数据的寄存器是 () A.SCON B.SBUF C.PCON D.TMOD 【答案】B 6.串行口接收中断标志位是 () A.TI B.RI C.TF0 D.TF1 【答案】B 7.串行口发送中断标志位是 () A.TI B.RI C.TF0 D.TF1 【答案】A 8.串行口方式1的数据帧格式是 () A.8位数据,无校验位 B.8位数据,1位停止位,无校验位 C.10位数据(1起始位+8数据位+1停止位) D.11位数据(1起始位+8数据位+1校验位+1停止位) 【答案】C 9.以下能决定串行口方式3的波特率的是 () A.固定不变 B.由T1决定 C.由T0决定 D.由外部时钟决定 【答案】B 10.串行口方式3与方式1的主要区别是 () A.波特率不同 B.数据帧格式不同 C.校验位不同 D.中断方式不同 【答案】B 二、判断题(本题共10小题,每题2分,共20分) 1.51单片机的串行口是全双工的。( ) 【答案】正确 2.串行口发送数据时,应先写SBUF再等待TI置1。( ) 【答案】正确 3.串行口方式0的通信速率比方式1更快。( ) 【答案】错误 4.串行口方式1的波特率误差较大时可能导致通信失败。( ) 【答案】正确 5.串行口方式2的波特率由定时器T1决定。( ) 【答案】错误 6.串行口方式3的波特率与方式1的波特率计算方式相同。( ) 【答案】正确 7.串行口方式0通常用于扩展并行I/O接口。( ) 【答案】正确 8.PCON寄存器的SMOD位可以加倍串行口方式1的波特率。( ) 【答案】正确 9.串行口方式1的T1定时器必须工作在方式2。( ) 【答案】正确 10.串行口接收中断标志RI置1后,必须用软件清零。( ) 【答案】正确 三、填空题(本题共10小题,每空2分,共20分) 1.串行口中断优先级可以通过 寄存器设置。 【答案】IP 2.串行口方式3的第9位数据可用于______通信。 【答案】多机 3.串行口方式0通常用于扩展______接口。 【答案】并行I/O 4.串行口方式1的T1定时器通常工作在方式______。 【答案】2 5.串行口方式1的波特率计算公式中,SMOD位在______寄存器中。 【答案】PCON 6.串行口方式1的T1初值计算公式为:TH1=256-(晶振频率/(12×32×______))。 【答案】波特率 7.串行口方式2的数据帧包含______位数据(含校验位)。 【答案】11 8.串行口方式1的典型晶振频率是______MHz。 【答案】11.0592 9.串行口方式1的T1初值为0xFD时,波特率约为______bps(SMOD=0)。 【答案】9600 10.串行口方式3的波特率计算方式与方式______相同。 【答案】1 四、简答题。(本题共2小题,每题5分,共10分) 1.简述51单片机串行口通信的基本工作原理。 【答案】 51单片机串行口通信通过TXD(发送)和RXD(接收)两根数据线实现全双工通信。发送时,数据从SBUF寄存器逐位输出;接收时,数据逐位存入SBUF。波特率由定时器1产生,通过设置SCON寄存器选择工作方式(方式1/2/3),完成异步串行通信。 【解析】 见答案 2.说明51单片机串行口四种工作方式的特点及典型应用场景 【答案】 方式0:同步移位寄存器方式。 特点:固定波特率,8位数据。 应用:扩展I/O口或驱动LED显示屏。 方式1:8位UART可变波特率。 特点:10位帧(1起始+8数据+1停止)。 应用:标准点对点通信(如连接PC)。 方式2:9位UART固定波特率。 特点:11位帧(含可编程第9位)。 应用:多机通信的地址识别。 方式3:9位UART可变波特率。 特点:同方式2但波特率可调。 应用:高速多机通信系统。 【解析】 见答案 五、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共30分) 1.设计一个采用串行口方式1数据发送程序。请填空。 #include<reg51.h> void main() ( SCON=【1】; PCON=0x80; TMOD=【2】; TL1=0xF4; TH1=【3】; TR1=1; SBUF=0x70; while(TI) { TI=0;} SBUF=0x71; while(TI) { TI=0;} 【答案】 【1】0x40 【2】0x20 【3】0xF4 【解析】 【1】SCON=0x40:选择方式1(SM0=0,SM1=1)禁止接收(REN=0)。 【2】TMOD=0x20:定时器1设为模式2(8位自动重装) 【3】TH1=0xF4:波特率计算:2400bps 2.如图将51单片机的TXD接RXD,实现单片机串行口数据自发自收,并将接收的数据通过P1口输出到发光二极管显示。系统时钟频率为11.0592MHz,自发自收的波特率为2400bps。编写程序,要求:单片机串行口工作在方式1,从TXD发送数据0x0F,从RXD将该数据读回,并送P1口通过8个发光二极管显示。请填空。 #include<reg51.h> #define uchar unsigned char #define uint unsigned int void main() ( uchar i=0x0F; uint j=0; TMOD=【1】; TL1=TH1=0XF4; PCON=【2】; SCON=【3】; TR1=1; 【4】 { TI=0; SBUF=i; 【5】; TI=0; RI=0; while(RI==0); 【6】; P1=i; 【7】; for(j=0;j<12500;j++);}} 【答案】 【1】0X20 【2】0X00 【3】0X50 【4】while(1) 【5】while(TI==0) 【6】i=SBUF 【7】i=~i 【解析】 【1】填0x20,设置定时器1为模式2(8位自动重载)。 【2】填0x00,PCON寄存器SMOD=0,波特率不加倍。 【3】填0x50,设置串口为模式1(10位异步收发),并允许接收(REN=1)。 【4】填while(1),构成无限循环。 【5】填while(TI==0);,等待发送完成。 【6】填i=SBUF;,读取接收到的数据,初始值i应为0x0F。 【7】是一个简单的延时循环,保持当前显示一段时间在循环中,LED3=0 点亮 LED(低电平有效),LED3=1熄灭LED,配合延时函数实现闪烁效果。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

第6章 串行口的C51编程 《单片机的C语言程序设计及应用》(电工版第4版)章节过关卷
1
第6章 串行口的C51编程 《单片机的C语言程序设计及应用》(电工版第4版)章节过关卷
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。