好文档 - 专业文书写作范文服务资料分享网站

第06章 单片机串行通信系统 习题解答

天下 分享 时间: 加入收藏 我要投稿 点赞

第6章 单片机串行通信系统 习题解答

一、填空题

1.在串行通信中,把每秒中传送的二进制数的位数叫 波特率 。

2.当SCON中的M0M1=10时,表示串口工作于方式 2 ,波特率为 fosc/32或fosc/64 。 3.SCON中的REN=1表示 允许接收 。 4.PCON 中的SMOD=1表示 波特率翻倍 。

5.SCON中的TI=1表示 串行口发送中断请求 。

6.MCS-51单片机串行通信时,先发送 低 位,后发送 高 位。 7.MCS-51单片机方式2串行通信时,一帧信息位数为 11 位。

8.设T1工作于定时方式2,作波特率发生器,时钟频率为,SMOD=0,波特率为时,T1的初值为 FAH 。

9.MCS-51单片机串行通信时,通常用指令 MOV SBUF,A 启动串行发送。 10.MCS-51单片机串行方式0通信时,数据从 引脚发送/接收。 二、简答题

1.串行口设有几个控制寄存器它们的作用是什么

答:串行口设有2个控制寄存器,串行控制寄存器SCON和电源控制寄存器PCON。其中PCON中只有的SMOD与串行口的波特率有关。在SCON中各位的作用见下表: SCON 位名称 位地址 功能 2.MCS-51单片机串行口有几种工作方式各自的特点是什么 答:有4种工作方式。各自的特点为:

D7 SM0 9FH D6 SM1 9EH D5 SM2 9DH D4 REN 9CH D3 TB8 9BH D2 RB8 9AH D1 TI 99H D0 RI 98H 工作方式 选择 多机通信控接收 发送 第接收 第发送 中接收 中制 允许 9位 9位 断 断

SM0 0 0 1 1

3.MCS-51单片机串行口各种工作方式的波特率如何设置,怎样计算定时器的初值 答:串行口各种工作方式的波特率设置:

工作方式O:波特率固定不变,它与系统的振荡频率fosc的大小有关,其值为fosc/12。 工作方式1和方式3:波特率是可变的,波特率=(2SMOD/32)×定时器T1的溢出率 工作方式2:波特率有两种固定值。

当SM0D=1时,波特率=(2SM0D/64)×fosc=fosc/32 当SM0D=0时,波特率=(2SM0D/64)×fosc=fosc/64 计算定时器的初值计算:

SM1 0 1 0 1 方式 方式0 方式1 方式2 方式3 功能 移位寄存器方式 8位异步通信方式 9位异步通信方式 9位异步通信方式 波特率

fosc/12 可变 fosc/32或fosc/64 可变

2SMOD?fOSC2SMOD?fOSCN?256??256?32?12?B384?B4.若fosc = 6MHz,波特率为2400波特,设SMOD =1,则定时/计数器T1的计数初值为多少并进行初始化编程。 答:根据公式

N=256-2SMOD×fosc /(2400×32×12)= ≈243 =F3H TXDA: MOV TMOD,#20H

;置T1定时器工作方式2

;置T1计数初值.

MOV TL1,#0F3H MOV TH1,#0F3H

MOV PCON,#80H ;置SMOD =1

5.用8051串行口外接CD4094扩展8位并行输出口,驱动8个LED发光二极管。画出硬件电路图,编写程序,使LED发光二极管从左到右依次闪亮。 答:电路图如下

LED发光二极管从左到右循环点亮的C51参考程序: #include<> 7f1”Proteus下,仿真实现节内容。

答:全自动洗衣机串行方式时间显示Proteus仿真 为节省单片机并口资源,全自动洗衣机时间显示可用串口实现。一次洗衣时间一般不会超过99分钟,用2位LED数码管显示时间即可。电路如图6-9所示。

VCCU29RSRG88C1C1/->R133pX1C233p1470R23&1DR2P00VCC4470RR3P01CRYSTAL5470RFREQ=12MHzU16R4P02470R19R5P03P00XTAL1P0.0/AD03910470RP0.1/AD138R6P04P01P0218P0.2/AD23711470RXTAL2P0.3/AD33612R7P05P03P04P0.4/AD435470RP0.5/AD534P06P05P069P0.6/AD63313RSTP0.7/AD732DS0R011kAT89C5174164P2.0/A82122VCCP2.2/A10P2.1/A923U32930PSENP2.3/A11249RSRG8C331ALEEAP2.4/A1225P2.5/A13268C1/->33pP2.6/A1427P2.7/A152811P3.0/RXD101123R8470RP1.0&1DP10P10P11R0223P1.1P3.2/INT0P3.1/TXD124R9P12470R4P1.2470R5P1.3P3.3/INT113P14P136P1.4P3.4/T014155R10470RP14CP15CP16V7P1.5P3.6/WRP3.5/T116P3.7/RD176R11P12470R8P1.6P1.7R12P1410470RDS1R13P1411470RP1512R14470RP161374164 图6-9中用AT89C51单片机串行口扩展2个并行口,接2位数码管组成显示电路。串行口工作于方式0,与外接的图6-9 2片移位寄存器全自动洗衣机串行方式时间显示电路74LS164连接。74LS164 是一个8位串入并出的移位寄存器,功能是接收AT89C51单片机串行通信口输出的串行数据并转换成并行数据输出,从而驱动LED数码管显示。74LS164的1、2脚为数据输入端,接单片机串行口的RXD端(脚),74LS164的第8脚为时钟脉冲输入端(CLK),接单片机串行口的TXD端(脚),第9脚R为清零端,低电平清零,正常工作时接高电平。两只LED数码管采用共阴极静态显示方式。

下列程序实现串行两位LED数码管时间显示,显示范围为00—99分钟。使用串行口进行信息传送,程序编写相当简单,用户只需将需要显示的数据直接送串口发送缓冲器,等待串行中断即可。

汇编语言参考程序:

ORG 0000H ;在0000H单元存放转移指令

LJMP NAIN ;转移到主程序

ORG 000BH ;定时器T0的中断入口地址 LJMP INTERRUPT ;转移到中断子程序

ORG 0200H ;主程序从0200H开始 MAIN: MOV TMOD,#01H ;使用定时器T0,工作方式1

MOV TH0, #3CH ;置初T0值50ms MOV TL0, #0B0HH

MOV R0,#0 ;用于存1秒的计数次数 SETB EA ;开中断总允许 SETB ET0 ;允许T0中断 SETB TR0 ;启动计时

LOOP: LCALL Display ;循环调用显示子程序

SJMP LOOP

TAB: DB 3FH,06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH ;0~9的共阴极段码 DISPLAY: ;显示子程序(显示分钟)

MOV DPTR, #TAB ;将表首地址赋给DPTR

MOV A, 30H ;将30H中存放的分计数赋给累加器A MOV B, #0AH ;将10赋给累加器B

DIV AB ;分计数除以10得十位数放在A中,个位数放在B中 MOVX A, @A+DPTR ;查表得十位数的`显示段码 MOV SBUF, A ;发送十位数

L1: JBC TI, L2 ;判是否发送完,未发完循环等待,若发完则转L2

SJMP L1

L2: MOV A, B ;将个位数赋给累加器A

MOVX A, @ A+DPTR ;查表得个`位数的显示段码 MOV SBUF, A ;发送个位数

L3: JBC TI, L4 ;判是否发送完,未发完循环等待,若发完则转L4

SJMP L3

L4: RET ;子程序返回 INTERRUPT: ;中断服务子程序

INC R0 ;每中断一次(50ms)加1

CJNE R0, #20, L5 ;判是否中断20次,若不是则转L5中断返回,若是则顺序执行 CLR R0 ;到1秒钟,清R0

第06章 单片机串行通信系统 习题解答

第6章单片机串行通信系统习题解答一、填空题1.在串行通信中,把每秒中传送的二进制数的位数叫波特率。2.当SCON中的M0M1=10时,表示串口工作于方式2,波特率为fosc/32或fosc/64。3.SCON中的REN=1表示允许接收。4.PCON中的SMOD=1表示
推荐度:
点击下载文档文档为doc格式
6qyon6dtf52mdyx423a46cyp27lz4y01bpr
领取福利

微信扫码领取福利

微信扫码分享