《单片机系统设计基础》练习题答案 - 王雷

更新时间:2024-01-26 06:08:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

注:标红题要重点掌握。题后加(略)的不要求。

练习题一

1. 选择

(1) 单片机片内集成了基本功能单元( ③ )

①微处理器 ②运算器 ③中央处理单元

(2) 工业自动化设备采用工控机实现自动控制,工控机属于( ① ) ①通用计算机 ②嵌入式计算机 ③微处理器 (3) 单片机的英文缩写为( ② ) ①SCM ②MCU ③PCL

2. 叙述单片机的含义

答:利用大规模集成技术,将计算机的各个基本功能单元集成在一块硅片上,这块芯片就具有一台计算机的属性,因而被称为单片微型计算机,简称单片机。

3. 叙述计算机发展的两大分支及其特点。 答:计算机形成了通用计算机系统和嵌入式计算机系统两大分支。通用计算机系统以高速数值计算为已任,不必兼顾控制功能,其数据总线宽度不断更新,通用操作系统不断完善,以突出发展海量、高速数值计算能力。以单片机为代表的嵌入式系统,以面向对象控制为已任,不断增加控制功能,提高可靠性,降低成本,减小体积,改善开发环境。

4. 叙述半导体工艺MOS、HMOS、CMOS和HCMOS的特点,说明新型单片机广泛采用HCMOS工艺的目的。提示:从速度、密度和功耗三个方面比较。

答:HMOS工艺(高速MOS),即高密度短沟道MOS工艺,虽然有较高的集成度和速度,但其功耗较大。HCMOS工艺,即互补金属氧化物的HMOS工艺,是CMOS和HMOS的结合,除了具有HMOS的高速高密度之外,还具有CMOS的低功耗的特点。

5. 试述单片机应用系统低功耗设计的主要内容。 答:

(1)对于那些采用电池供电的单片机应用系统,降低功耗尤为必要。降低功耗的重要手段是采用CMOS技术。新型单片机广泛采用了HCMOS工艺,大大降低了功耗。

(2)降低单片机的工作电源电压也可降低功耗。

(3)选用低功耗的外围芯片及设备,也是降低功耗的措施之一。过去单片机的外围扩展多采用74TTL芯片,其功耗较大。为了降低功耗,应选用CMOS(HCMOS)工艺外围芯片。

6. MCS-51、80C51、80C51系列这三个概念有何区别? 答:

(1)MCS-51指Intel公司推出的利用HMOS或HCMOS工艺制造的一个单片机系列,它又分成51和52两个子系列,其中51子系列是基本型,而52子系列属于增强型。每个子系列包含三种单片机。一般MCS-51常指51子系列。

(2)80C51一般指MCS-51系列中采用HCMOS工艺的单片机。

(3)80C51系列包括Intel公司采用HCMOS工艺的MCS-51系列,也包括其它公司以80C51作为内核与MCS-51完全兼容的单片机。

7. 单片机与经典电子技术在实施控制方法上有何不同? 答:从前必须由模拟或数字等经典电子线路实现的控制功能,现在可以使用单片机通过软件方法实现。这种以软件取代传统电子电路并能提高系统性能的控制技术,称为微控制技术。

8. 填空 单片机应用系统设计的主要内容包括:外围扩展电路的硬件结构设计、低功耗设计、应用软件设计、抗干扰技术设计。

练习题二

1. 填空 80C51单片机内部基本组成包括CPU、存储器、中断系统、定时器/计数器、串行口和并行口。

2. 填空 分述80C51下列引脚的功能:

① RST的功能是在RST引脚上施加两个机器周期以上的高电平,将单片机复位。 ② PSEN的功能是片外程序存储器读选通信号,低电平有效。

③ EA/Vpp的功能是EA是片内外程序存储器选择信号,当EA为低电平,单片机只能从0000H单元开始执行片外程序存储器程序,当EA为高电平,单片机只能从0000H单元开始执行片内程序存储器程序,当执行片内程序的地址超过0FFFH,便自动转向片外程序存储器中的程序继续执行。Vpp为本引脚的第二功能,在对EPROM型单片机片内EPROM固化编程时,用于施加较高的编程电压。

④ ALE/PROG的功能是ALE端总是不间断地连续输出一个正脉冲信号,其频率固定为晶振频率的1/6,ALE引脚输出的脉冲信号可作为地址锁存信号。PROG为本引脚的第二功能,在对EPROM型单片机片内EPROM固化编程时,作为编程脉冲输入端。

3. 当使用80C31时,EA引脚如何处理? 答:将EA引脚接地。

4. 在80C51扩展系统中,片外ROM和片外RAM共同处于同一个地址空间,为什么不会发生总线冲突?

答:因为它们的读选通信号线不同。

5. 片内RAM低128个单元划分为哪三个部分?各部分主要功能是什么?

答:片内RAM低128个单元共划分为通用工作寄存器区、可位寻址区、以及用户RAM区等三部分。

地址为00H~1FH的32 个单元是4组通用工作寄存器区,每个区含8个8位寄存器,为R0~R7,用户可以通过指令改变PSW中的RS1、RS0这二位来切换工作寄存器;地址为20H~2FH的16个单元可进行共128位的位寻址,也可以进行字节寻址;地址为30H~7FH的单元为用户RAM区,只能进行字节寻址。

6. 位地址7CH与字节地址7CH有何区别?位地址7CH具体在片内RAM中什么位置? 答:位地址7CH是片内RAM可位寻址区20H~2FH这128个位中某一位的地址编号,而字节地址7CH是片内RAM低128个单元中某一个单元的地址。位地址7CH位于字节2FH的b4位。

7. 判断并填空 根据下列SFR的地址,判断是否可位寻址? ① 81H ( 否 ),其符号名称是 SP ; ② 83H ( 否 ),其符号名称是 DPH ; ③ 80H ( 是 ),其符号名称是 P0 ; ④ 98H ( 是 ),其符号名称是 SCON ; ⑤ 89H ( 否 ),其符号名称是 TMOD ;

8. 填空 为体现“面向控制”功能,80C51除了设置布尔处理器外,另一个硬件结构是 SFR 。

9. 程序状态字PSW作用是什么?常用的状态标志位有哪几位?

答:PSW主要用作程序运行状态标志。常用的状态标志位有CY、AC、OV、P。

10. 填空 若PSW的内容为18H,通用工作寄存器R0的地址是 18H ;R1的地址是19H ;R5的地址是 1DH ;R7的地址是 1FH 。

11. 程序计数器PC和数据指针DPTR有哪些异同?

答:PC与DPTR的相同点是都是16位的;不同点是PC只能用来寻址程序存储空间,而DPTR常用来寻址片外数据存储空间,又可分为DPH、DPL两个8位的SFR。

12. 填空 ① 当CPU从片外ROM中读取指令或常数表格时,PSEN信号电平为 低 ;在读取片内ROM指令或常数表格时,PSEN信号电平为 高 ;在访问片外RAM时,PSEN信号电平为 高 。 ② 在访问片外RAM时,RD或WR信号电平为 低 ,但PSEN信号电平为 高 。 ③ 在 访问片外RAM 情况下,ALE将丢失一个脉冲,ALE信号的作用是 片外地址锁存器的锁存信号 和 外围芯片的定时脉冲 。

13. 计算 当振荡频率为8MHz时,试计算:

① 时钟周期为 0.125μs ; ② 机器周期为 1.5μs ; ③ 执行一条最长的指令周期为 6μs ; ④ ALE的周期为 0.75μs 。

14. 比较8051与80C51外部时钟方式的不同,为什么?

答:对于8051单片机,外部时钟工作方式时将片外振荡器信号接到XTAL2引脚,XTAL1引脚接地;对于80C51单片机,外部时钟工作方式时的片外振荡器信号接到XTAL1引脚,而XTAL2引脚悬空。

上述两种接法不同的原因,是因为8051的内部时钟电路由XTAL2上的信号驱动;80C51的内部时钟电路由XTAL1上的信号驱动。

15. 复位的作用是什么?有几种复位方法?

答:复位是单片机的初始化操作。其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。

有两种复位方法,一种是上电复位、一种是利用复位按钮复位。

16. SBUF、SP和P0~P3等特殊功能寄存器的复位值有什么特点? 答:SBUF复位值不定,SP复位值为07H,P0~P3复位值为FFH。

17. 80C51有几种低功耗方式?如何实现? 答:

80C51有两种低功耗方式:空闲方式和掉电方式。

用指令使PCON中IDL位置1,系统便可进入空闲方式。空闲方式的退出有两种方法,即中断方式和硬件复位方式。

执行一条PCON寄存器的PD位置1的指令(是运行程序中的最后一条指令),单片机便可进入掉电方式。退出掉电方式的唯一方法是硬件复位。

18. 判断 对PCON中的PCON.0位,若要置1或清0,采取的操作为:

① 可采用位可寻址的位操作指令( ); ② 可采用字节操作的方法( √ );

③ 可采用位寻址的位操作或字节操作( )。

19. 80C51单片机的工作方式分为几种?EA/Vpp和ALE/PROG引脚在程序执行方式和编程方式时作用有何不同?(第二问略掉,答案可参见第2题填空。)

答:80C51具有四种工作方式:程序执行方式、复位方式、低功耗方式和编程方式。

20. 单片机外围扩展电路硬件结构设计的主要内容包括哪些?(略)

练习题三

1. 问答题

(1) 80C51指令系统有哪几种寻址方式?访问特殊功能寄存器采用什么寻址方式?

答:80C51指令系统中字节操作中的寻址方式有:寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、立即寻址方式、相对寻址方式;位操作中的寻址方式有:位直接地址寻址方式、位寄存器寻址方式。

(2) 指令系统中的间接寻址范围是多少?答:64K。

(3) 变址寻址主要用于什么场合?其寻址范围是多少?答:查表,64K。 (4) 相对寻址方式有什么特点?其寻址范围是多少? 答:相对寻址方式是指根据指令机器码中现的相对偏移量,从而计算出程序的转移目的地址。转移目的地址可向前,或向后,rel的取值范围为-128~+127。 (5) CPU读程序存储器ROM、CPU读写片外RAM,以及片内RAM之间的信号传送的指令

在操作助记符,寻址方式有什么不同?

答:CPU读程序存储器ROM的指令操作助记符是MOVC,寻址方式为间接寻址;CPU读写片外RAM的指令操作助记符是MOVX,寻址方式为间接寻址;片内RAM之间信号传送的指令操作助记符是MOV,寻址方式为直接寻址。 (6) “DA A”指令的作用是什么?怎样使用?

答:用于对BCD码十进制加法运算结果的修正。跟在ADD指令后即可。 (7) 压栈指令和出栈指令的作用是什么?SP如何变化?

答:压栈指令:将direct中的数据压入堆栈,SP变化方式如下所示:

PUSH direct;(SP )←( (SP)+1 ) ,(SP )←(direct )。

出栈指令:将堆栈中的数据弹入direct中,SP变化方式如下所示: POP direct;(direct )←( (SP) ) ,(SP )←( (SP)-1 )。 (8) 立即数为什么不能作目的操作数?

答:因为一个立即数只存在于指令代码中,不能用它来定位一个存储单元。

2. 判断下列指令是否正确。 (1) MOV R0,@R1 错 (2) MOV #25H,A 错 (3) MOV A,#25H 对 (4) MOV A,@R2 错 (5) MOV @R1,A 对 (6) MOVX A,1234H 错 (7) MOVX R0,@DPTR 错 (8) MOVX @DPTR,A 对 (9) PUSH DPTR 错 (10) PUSH DPH 对 (11) PUSH DPL 对 (12) PUSH R7 错 (13) PUSH 07H 对 (14) POP A 错 (15) POP ACC 对

(16) 通过加法实现2×A运算,判断下列指令的正误

● ADD A,A 错 ● ADD A,ACC 对

(17) 在程序存储器0010H处分别存放下列指令,判断其正误 ● AJMP 001AH 对

● AJMP 0800H 错 ● AJMP 07FFH 对 ● AJMP 0980H 错

3. 计算题

(1) 已知如下一段程序: 2100H MOVC A,@A+PC ;单字节 2101H RET ;单字节 2102H NOP ;单字节 DB ??

试确定变址寄存器A的取值范围;计算所能读出的字节数的地址区间;利用该程序能否读出2200H单元的字节常数。

答:A的取值范围为:2-255;所能读出的字节数的地址区间为:2103H-2200H;利用该程序能读出2200H单元的字节常数。 (2) 在程序存储器2000H处存有“SJMP LOOP”指令,试求指令的机器码。(略) ● 当LOOP EQU 2060H时;

● 当LOOP EQU 1FA2H时。

(3) 在程序存储器2500H处存有“CJNE A,#25H,LOOP”指令,试求指令的机器码。(略) ● 当LOOP EQU 2550H时;

● 当LOOP EQU 24B2H时。

(4) 已知如下一段程序,试求“SJMP LOOP”的机器码。(略) ORG 1000H SJMP LOOP ? ?

RET

LOOP EQU 0FA0H (5) 已知调用指令如下所示: ORG 1000H MOV SP,#50H LCALL 5431H NOP NOP

RET

试写出执行“LCALL 5431H”后,(51H)=?(52H)=?(PC)=? 答:(51H)=06H,(52H)=10H,(PC)=5431H。

(6) 已知绝对转移指令如下所示,试求“AJMP TRAN”的机器码。(略) ORG 97FEH AJMP TRAN ? ?

TRAN

RET EQU

9A00H

4. 指令分析与编程

(1)已知(A)=7AH,(R0)=30H,(30H)=A5H,(PSW)=80H,请填写每条指令的执行结果(各指令互不影响)。

① XCH A,R0; (A)=30H ② XCH A,30H; (A)= A5H ③ XCH A,@R0; (A)= A5H ④ XCHD A,@R0; (A)=75H ⑤ SWAP A; (A)=A7H ⑥ ADD A,R0; (A)=AAH ⑦ ADD A,30H; (A)=1FH ⑧ ADD A,#30H; (A)= AAH ⑨ ADDC A,30H; (A)= 20H ⑩ SUBB A,30H; (A)=D4H ⑾ SUBB A,#30H; (A)=49H

(2)已知(A)=83H,(R0)=17H,(17H)=34H,试写出执行下列程序段后A的内容。

ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 结果:(A)=CBH

(3)已知两个十进制数分别在内部RAM 40H和50H单元开始存放(低位在前),其字节长度存放在内RAM 30H单元。编写程序实现两个十进制数求和,并把求和结果存放在40H开始的单元中。 答: ORG 0000H MOV R0, #40H MOV R1, #50H MOV A, #40H ADD A,30H MOV R2,A LCALL SJZA MOV A, R2 MOV R0,A JC OVER1 MOV @R0,#00H SJMP OVER2 OVER1: MOV @R0,#01H SJMP OVER2 SJZA: CLR C

SJZB: MOV A,@R0 ADDC A,@R1

DA A MOV @R0,A INC R0 INC R1 DJNZ 30H,SJZB RET OVER2: NOP END

(4)在外RAM中把8000H单元开始的30H字节数据传送到8100H开始的单元中去,用编程实现。 答案一:

ORG 0000H MOV R2,#00H

MOV R3,#80H MOV R4,#00H MOV R5,#81H MOV R7,#30H LOOP:MOV DPL,R2 MOV DPH,R3 MOVX A,@DPTR INC DPTR MOV R2,DPL MOV R3,DPH MOV DPL,R4 MOV DPH,R5 MOVX @DPTR,A INC DPTR MOV R4,DPL MOV R5,DPH DJNZ R7,LOOP END 答案二: ORG 0000H MOV DPTR,#8000H MOV P2,#81H MOV R0,#00H MOV R7,30H LOOP:MOVX A,@DPTR MOVX @R0,A INC DPTR INC R0 DJNZ R7,LOOP

END (5)若片外RAM的容量不超过256个字节,试编写程序将片外RAM 50H中的内容传送到片内RAM 30H单元中。 答: ORG 0000H MOV DPTR, #0050H MOVX A, @DPTR MOV 30H, A END 或: ORG 0000H MOV R0, #50H MOVX A, @R0 MOV 30H, A END

(6)用两种方法将程序存储器20F0H单元中的常数读入累加器中,如下所示。

方法1: 2010H MOV A,# NNH MOVC A,@A+PC 试写出NNH的具体值。

答:由于“MOV A,# NNH”是2字节指令,“MOVC A,@A+PC”是1字节指令,因此PC中的值是2013H,20F0H-2013H=00DDH,NNH的具体值是DDH。

方法2: MOV DPTR,# MMMMH MOV A,# NNH MOVC A,@A+DPTR

试写出NNH、MMMMH的具体值。 答:MMMMH=20F0H,NNH=00H

练习题四

1. 问答题

(1)什么是接口?接口的基本功能是什么?

答:CPU执行程序具有快速的特点,而一些外围设备,如键盘、显示器等处理数据却呈现慢速的特性。为了使CPU和外围设备在信息传输和处理速度上匹配,在两者之间需要一种装置作媒介,这种媒介称为输入/输出(I/O)接口,简称接口。

接口的基本功能有:输入/输出数据,扩展外部存儲器、D/A和A/D转换器、可编程I/O芯片等,作为三总线(AB, DB, CB)使用,作为串行通信线和外部中断输入线等。 (2)P1口、P0口、P2口和P3口具有什么特点? 答:

P1口的特点:

P1口为单功能口:通用I/O口。 P1口由于有内部上拉电阻,引脚没有高阻抗状态,即引脚状态非0即1,称为准双向口。作输出口时,通过上拉电阻R可以向外输出高电平,不需要再在片外接上拉电阻。

P1口读引脚时,必须先向输出锁存器写1。 P1口能驱动4个TTL负载。

CPU不占用P1口,完全由用户支配。

P0口的特点:

P0口为双功能口:通用I/O口和地址/数据复用线。一般情况下,如果P0已作地址/数据复用口,就不能再作通用I/O口使用。

当P0口作地址/数据复用口时,是一个真正的双向口。外接ROM和RAM时,不需要片外接上拉电阻。

当P0口作通用I/O口时,需要在片外接上拉电阻,此时是一个准双向口。为保证引脚的正确读入,应首先向锁存器写1.

P0口能驱动8个TTL负载。

P2口的特点:

P2口是双功能口:通用I/O口功能和高8位地址口。

作为地址输出线时,与P0口输出的低8位地址一起构成16位地址线,可以寻址64KB的地址空间。

当P2口作为高8位地址输出口时,由于地址不是来自输出锁存器,因此输出锁存器的内容保持不变。

作通用I/O时,是准双向口。作输入时,应先向锁存器写1。 P2口能驱动4个TTL负载。

P3口的特点:

P3口内部有上拉电阻,不存在高阻抗输入状态,为准双向口。

P3口作为第一功能通用输入,或作为第二功能的输出/输入,均需将相应位的锁存器置1。实际应用中,由于上电复位后P3口锁存器自动置 1,就可以进入功能操作。

在某位不作为第二功能使用时,可作为第一功能I/O口使用。

引脚的输入有两个缓冲器,第一功能的输入通过BUF2获取,第二功能的输入通过BUF3获取。

(3)P0口作通用I/O口时,应注意什么问题?

答:当P0口作通用I/O口时,需要在片外接上拉电阻。 (4)并行I/O口在什么情况下为准双向口?为什么? 答:如果一个并行I/O口作为通用I/O口使用时为准双向口,因为此时I/O口的输出只有高、低两状态,没有高阻态,且读入数据时需先对I/O口置1。 (5)单片机对口进行读操作时,何时读锁存器?何时读引脚? 答:如果单片机对口进行的读操作是“读-修改-写”则为读锁存器,其它读操作为读引脚。 (6)试比较: MOV A,P1;MOV P1,A;ANL P1,A指令操作过程有何不同? 答:MOV A,P1为读引脚操作;MOV P1,A为写端口操作,ANL P1,A为读锁存器操作。

(7)80C51中断向量地址是怎样分配的? 答:

中断源 外部中断0(INT0) 定时器0(T0)中断 外部中断1(INT1) 定时器1(T1)中断 串行口中断 发送中断 接收中断 向量地址 0003H 000BH 0013H 001BH 0023H (8)80C51共有几个中断源?它们对中断请求是如何控制的?

答:中断源是向CPU发出中断请求的来源,80C51共有6个中断源:2个外部中断源、2个定时器/计数器溢出中断以及2个串行中断。

中断源申请中断时,要将相应的中断请求标志置位。CPU查询到这些有效标志位,便响应中断。单片机转入中断服务程序时,这些中断请求标志有的是由片内硬件自动清除,有的是由用户软件清除。中断控制主要包括中断请求触发方式的选择,中断是否允许以及中断优先级的确定等。

(9)TCON中,哪些位用来表示中断标志、中断信号方式和启动定时器?

答:TCON中的中断标志位有:TF1、TF0、IE1、IE0;中断信号方式位有:IT1、IT0;启动定时器位有:TR1、TR0。

(10)SCON寄存器反映中断状态标志的是哪些位? 答:SCON寄存器反映中断状态标志的是:TI、RI。

(11)什么是中断优先级?中断优先级处理的原则是什么?

答:80C51单片机具有高、低两个中断优先级。各中断源的优先级由IP寄存器有关位设定。设定为1时为高优先级;设定为0时为低优先级。中断优先级是为中断嵌套服务的。

80C51单片机中断优先级的控制原则是:

①低优先级中断请求不能打断高优先级的中断服务,但高优先级的中断请求可以打断低优先级的中断服务。

②如果一个中断请求已被响应,则同级的中断响应将被禁止,即同级的中断不能相互打断。

③如果同级的多个中断请求同时出现,则由单片机内部硬件直接查询,按自然响应顺序确定执行哪一个中断。

(12)对于外部中断方式,怎样进行有关控制器的初始化?

答:IT0(或IT1)=1时,INT0 (或INT1)信号为脉冲触发方式,脉冲负跳变有效;IT0(或IT1)=0时,INT0 (或INT1)信号为电平触发方式,低电平有效。

(13)80C51在什么条件下可以响应中断?

答:首先中断允许控制寄存器IE的相应位必须置1,然后按中断优先级寄存器IP相应位设定的优先级进行响应。

中断查询在每个机器周期都要重复执行,但如果遇到下列条件之一时,虽然中断标志位为1,也不能立即产生中断。

① CPU正在处理同级或高一级的中断。

② 查询周期不处于执行当前指令的最后一个机器周期。

③ 当前正在执行返回指令(RET和RETI)或访问IE和IP指令。在执行完这些指令之后,

还应再继续执行一条指令,方可响应中断。

(14)中断响应标志位是怎样清除的? 答:IE0和IE1、TF0和TF1当完成中断响应,并转向中断服务程序时,由片内硬件自动清0。TI和RI必须由软件清0

(15)定时器/计数器有哪些功能?最高计数频率是多少?最长计时时间是多少?

答:定时器/计数器具有定时和对输入脉冲进行计数的功能。最高计数频率为晶振频率的24分之1。最长计时时间是:216×机器周期。

(16)TCON、SCON和TMOD寄存器的寻址方式有何不同?

答:TCON、SCON既可字节寻址,也可位寻址。TMOD只能进行字节寻址。 (17)若(TMOD)=6AH,定时器0和定时器1分别工作在什么方式? 答:定时器0工作于计数器方式,定时器1工作于定时器方式2。

(18)若fosc=8MHz,外部中断采用负脉冲触发方式,那么中断请求信号的低电平至少应持续多少时间?

答:中断请求信号的低电平至少应持续1.5us。

(19)设fosc=12MHz,80C51定时器的工作方式0、方式1和方式2的最大定时时间间隔分别是多少?

答:工作方式0的最大定时时间间隔是213us,工作方式1的最大定时时间间隔是216us,工作方式2的最大定时时间间隔是28us。

(20)80C51定时器工作方式3中的T0和T1有何不同?

答:在工作方式3,T0被分解成两个独立的8位定时器/计数器TL0和TH0;而T1在工作方式3时完全禁止工作。

(21)并行通信和串行通信在识别信息方式上有何区别?

答:并行通信就是数据的所有位同时传送,串行通信就是数据位按顺序传送。 (22)串行同步通信和异步通信的主要区别是什么? 答:串行同步通信的基本特点是要求发送与接收时钟严格保持同步,传送的数据位宽不存在误差累积。异步通信的基本特点是发送与接收时钟是相互独立的,不能保证完全相同,最多也不过是要求具有相同的标称频率值。

(23)串行异步通信的帧格式是怎样规定的? 答:异步串行通信的字符格式如图4.27所示。

起D0D1D2D3D4D5D6D7始停止位位“1”停止位“0”起始位奇偶位位时间有效数据位帧图4.27 异步串行通信的字符格式

图中各位的功能及有关含义如下:

起始位 发送器通过发送起始位(使数据线处于0状态,又称space 状态)而开始字符的传送。在发送器空闲时,数据线应保持在1状态(又称mark状态)。

有效数据位 起始位之后就开始传送数据位,低位在前,高位在后。串行异步通信的编码形式,可以是5,6,7或8位。

奇偶校验位 用于传送字符的差错校验,其方式为奇校验、偶校验或无校验。 停止位 停止位在最后,标志传送的结束,它对应于1状态。停止位可以是1,1.5或2位。

位时间 又称位宽度,指一个格式位的时间宽度。格式位包括有效数据位、起始位、校验位和停止位。一个格式位的宽度就是发送时钟的周期。

帧(frame) 从起始位开始到停止位结束的全部内容称之为一帧。异步通信是一帧 一帧进行的,传送可以是连续的,也可以是断续的。按帧传送时数据位较少,因此对位宽的误差积累要求相对较低。

(24)80C51串行工作方式共有几种?说明TI、RI和SMOD位的意义? 答:80C51串行工作方式共有4种。

串行控制寄存器SCON中TI为发送中断标志位,RI为接收中断标志位。电源控制寄存器PCON中的SMOD位是串行口波特率的倍增位,当SMOD=1时,串行口的波特率加倍。 (25)80C51串行口方式0怎样启动发送和接收?波特率怎样规定的?帧格式怎样规定的? 答:80C51串行口方式0执行任何一条写SBUF指令就开始发送,用软件使REN=1和RI=0,就会启动接收过程。

其波特率固定为fosc/12。 帧格式如下: ------- D0 D1 D2 D3 D4 D5 D6 D7 ------- (26)80C51串行口方式1的帧格式怎样规定的?发送和接收如何启动?接收到的数据和停止位存于什么寄存器?波特率是怎样规定的? 答:80C51串行口方式1的帧格式如下:

起 停 D0 D1 D2 D3 D4 D5 D6 D7 始 止 执行任何一条写SBUF指令就启动发送,用软件使接收允许标志位REN=1和RI=0,就启动了接收过程。

接收到的8位数据位进入SBUF,停止位进入RB8。

数据传送的波特率取决于定时器1的溢出率:波特率=2SMOD32(T1的溢出率)。

(27)80C51串行口方式2的帧格式是怎样规定的?接收到的数据存于什么寄存器?方式2的波特率是怎样规定的?

答:80C51串行口方式2的帧格式如下:

起始 停止 D8 D0 D1 D2 D3 D4 D5 D6 D7 位 位 接收到的第9位数据(TB8)就进入RB8,前8位数据则进入SBUF。 方式2的波特率是:波特率=2SMOD64fOSC

(28)80C51串行口方式2和方式3的主要区别是什么?

答:80C51串行口方式2和方式3的不同仅在于它们的波特率产生方式不同。方式2的波特率固定为fosc/32和fosc/64;方式3的波特率则由定时器1的溢出率决定,用程序设定,是

可以改变的。

(29)80C51实行串行口多机通信的过程是什么?

答:串行口工作在方式2或方式3下,接收到的数据受SM2位控制。当SM2=1,只有接收到的第9位数据RB8=1时,才将接收到的数据装入SBUF,并置位RI,发出中断请求;若RB8=0时,接收到的数据被舍弃,RI仍为0,不发出中断申请。当SM2=0时,无论接收到的第9位数据是0还是1,都要把接收到的数据送入SBUF,并置位RI,发出中断申请。

多机通信时,主机的TB8=1,表示发送的是地址;TB8=0,表示发送的是数据。通信开始时,主机首先发送地址,各从机的SM2=1,主机的TB8=1。各从机收到的RB8=1,便各自发出中断申请,并在中断服务程序中判断主机发送的地址是否与从机地址相符合。若地址相符,则说明主机要与其通信,以后该机的SM2=0,准备接收主机发来的数据;若地址不符,则仍然保持SM2=1。由于主机发送数据时TB8=0,因此没被选中的从机不会接收主机发出的数据。

(30)串行同步通信每次传送一批数据,异步通信按帧传送,为什么? 答:同步通信的基本特点是要求发送与接收时钟严格保持同步,传送的数据位宽不存在误差累积。同步通信是一次传送一批数据。每批数据的开始约定1~2个同步字符码(SYNC),用以表示传输数据流的开始,保证发送与接收的起始同步。 异步通信的基本特点是发送与接收时钟是相互独立的,不能保证完全相同,最多也不过是要求具有相同的标称频率值。异步通信以帧为单位传送,每次传送的位信息量少,致使发送完最后一位字符时,发送与接收数据位宽的累积误差不会超过允许的范围。

2. 填空题

(1) 根据功耗和抗干扰性能,74HC系列芯片要 好于 74LS系列芯片。 (2) 对于P0口,执行“MOV”类指令,可实现 通用I/O口 功能;执行“MOVX”类指令,

可实现 地址/数据总线 功能。

(3) 80C51单片机响应中断时,程序断点地址保护由片内硬件自动完成;现场保护与恢

复由用户软件完成;关中断与开中断由用户软件完成;中断返回由RETI指令完成。

(4) 80C51定时器的定时方式计数脉冲来自内部脉冲信号;计数方式的计数脉冲来自单

片机外部。

(5) 中断优先级是为中断嵌套服务的,其控制原则是:低优先级中断请求不能打断高优

先级的中断服务,但高优先级的中断请求可以打断低优先级的中断服务,从而实现中断嵌套;如果一个中断请求已被响应,则同级的中断响应将被禁止,即同级的中断不能相互打断;如果同级的多个中断请求同时出现,则由单片机内部硬件直接查询,按自然响应顺序确定执行哪一个中断。

(6) 80C51的SCON寄存器中的SM0、SM1用于 串行口工作方式选择 ;SM2主要

用于 多机通信控制 ;在方式1时,SM2一般设置为 0 ;在方式0时,SM2必须 设置为0 。

(7) 80C51串行通信工作方式1,指令 写SBUF 启动发送;标志 TI=1 结束发送。 (8) 80C51串行通信用的波特率设置成固定方式为

2SMOD(T1的溢出率)。 322SMODfOSC64;设置成可变方式为

3. 判断题×√

(1)只要EA=0,所有中断全禁止;( √ )EA=1,所有中断全开放。( × )

(2)指令RETI只完成中断返回原程序功能。( × ) (3)只有外部中断才存在中断采样问题。( √ )

(4) 80C51在执行完指令“RETI”后可立即响应中断。( × ) (5) TCON和TMOD均可用于字节和位操作。( × ) (6) 定时器方式1时,最小定时计数初值为FFFFH。( √ ) (7) 80C51串行通信传送数据是低位在前,高位在后。( √ ) (8) 波特率也可由T0溢出率实现。( × )

(9) SBUF寄存器在物理结构上是独立的,逻辑空间上是同一的。( √ ) (10) 80C51串行通信工作方式0,发送方和接收方可同时为单片机。( × ) (11) REN用软件设置,也可由硬件自动设置。( × )

(12) RI置1由内部硬件自动完成,清0则必须由软件实现。( √ )

4.编程序

(1) 设fosc=6MHZ,利用定时器0的方式1在P1.6口产生一串50Hz的方波,定时器的溢出采用中断方式处理,试编制实现程序。 答:50Hz方波的半个周期为10-2s,因此有:

(216-X)×2×10-6=10-2

求得:X=60536=EC78H

ORG 0000H AJMP START

ORG 000BH AJMP T0INT ORG 0030H START: MOV SP, #60H MOV TH0, #0ECH MOV TL0, #78H MOV TMOD, #01H SETB TR0

SETB ET0

SETB EA MAIN: AJMP MAIN T0INT: CPL P1.6 MOV TH0, #0ECH MOV TL0, #78H RETI END

(2) 设单片机晶振频率fosc=6MHZ,使用定时器1以方式0产生周期为500μs的等宽正方波脉冲,并由P1.0口输出,以查询方式完成,试编制程序。 答:(213-X)×2×10-6=250×10-6

求得:X=8067=1F83H=0001 1111 1000 0011B TL1的初值为03H,TH1的初值为FAH。

ORG 0000H

MOV TMOD,#00H

SETB TR1

LOOP: MOV TH1, #0FAH MOV TL1, #03H LOOP1: JNB TF1, LOOP1 CLR TF1 CPL P1.0 SJMP LOOP END

(3) 用定时器0以工作方式1计数,每计500次累加一次,并将累加值存于以外RAM 5000H为起始地址的4字节单元中,试编制程序实现。(略)

(4) 以80C51串行口按工作方式1进行串行数据通信。假定波特率为1200波特,以中断方式传送数据,试编写全双工通信程序。(略)

(5) 以80C51串行口按工作方式3进行串行数据通信。假定波特率为1200波特,第9位数据作寄偶校验位,以中断方式传送数据,试编写通信程序。(略)

本文来源:https://www.bwwdw.com/article/bfzw.html

Top