文档库 最新最全的文档下载
当前位置:文档库 › 新编单片机原理与应用课后答案汇总

新编单片机原理与应用课后答案汇总

新编单片机原理与应用课后答案汇总
新编单片机原理与应用课后答案汇总

习题一参考答案

1-1 假设某CPU 含有16根地址线,8根数据线,那么该CPU 的最大寻址能力为多少KB?

答:CPU 的最大寻址能力为:K 642226

10

16

=?=

1-2 在计算机里,一般具有哪三类总线?请说出各自的特征(包括传输的信息类型、单向传输还是双向传输)。 答:1、数据总线,双向,输入输出数据信息; 2、地址总线,单向,输出地址信息; 3、控制总线,具体到某一根控制线为单向,输入或者输出控制信息;

1-3 MCS-51系列单片机时钟周期、机器周期与指令周期这三者关系如何?CISC 指令系统CPU 所有指令周期是否均相同?

答:时钟周期即为振荡周期,由外接晶振频率或外部输入的时钟频率决定,机器周期由12个时钟周期(或6个)构成,指令周期由1~4个机器周期构成;指令周期因具体指令不同而不同;

1-4 计算机字长的含义是什么?MCS-51单片机的字长是多少?

答:计算机字长是指CPU 一次能够处理的信息位长度;MCS-51单片机的字长是8位。

1-5 ALU 单元的作用是什么?一般能完成哪些运算操作?

答:ALU 单元的作用是进行算术逻辑运算;算术运算主要是加、减、乘、除,逻辑运算主要是与、或、非、异或等。

1-6 CPU 内部结构包含了哪几部分?单片机(MCU)芯片与通用微机CPU 有什么异同? 答:CPU 主要包括算术逻辑单元ALU 、控制单元CU 和内部寄存器;单片机(MCU)芯片是在通用CPU 的基础上增加存储器、定时器/计数器、通信接口以及各种接口电路等构成。

1-7 在单片机系统中常使用哪些存储器?

答:包括程序存储器ROM 和数据存储器RAM 。

1-8 指令由哪几部分组成? 答:一般由操作码和操作数组成,部分指令只有操作码而无操作数。 1-9、什么是汇编语言指令?为什么说汇编语言指令比机器语言指令更容易理解和记忆?通过什么方式可将汇编语言程序转化为机器语言程序? 答:【1】用助记符表示的指令

【2】因为在汇编语言指令中每条操作码、操作数都是用特定符号表示;而机器语言中的操作码和操作数均用二进制表示,没有明显特征 【3】可通过专门的软件或手工查表方式

1-10、汇编语言程序和汇编程序这两个术语的含义是否相同?

答:两者含义不同;1.汇编语言程序指由汇编语言指令构成的程序;

2.汇编程序指将完成汇编语言指令转换为机器语言指令的程序

1-11、什么是寻址方式?对于双操作数指令来说,为什么不需要指定操作结果存放位置?答:【1】确定指令中操作数所在存储单元地址的方式

【2】在现代计算机系统中,对于双操作数指令,一般将指令执行后的结果放在第一个操作数(即目标操作数),这样可以减少指令码的长度

1-12、指出下列指令中每一操作数的寻址方式?

答:【1】目标操作数为寄存器寻址,源操作数为立即数寻址

【2】目标操作数为直接寻址,源操作数为寄存器寻址

【3】目标操作数为直接寻址,源操作数为直接寻址

【4】目标操作数为直接寻址,源操作数为寄存器间接寻址

【5】寄存器寻址

注:在单片机中,问到指令的寻址方式,既要答目标操作数的寻址方式,也要答源操作数的寻址方式,这与微机不同,请切记!

1-13、单片机的主要用途是什么?新一代8位单片机芯片具有哪些主要技术特征?列举目前应用较为广泛的8位、32位单片机品种。

答:【1】数值计算,能实时监测系统的输入量,控制系统的输出量,从而实现自动控制功能,主要面向工业控制等

【2】可参考23页

【3】可参考21~22页

习题二参考答案

2-1 80C54、80C32、87C54、89C54 CPU有什么不同?在由80C32芯片组成的应用系统中引脚是如何连接的?为什么要这样连接?

答:略

2-2 8XC5X ,如89C52单片机内部含有哪几类存储器?各自的容量分别是多少? 答:包括程序存储器8K 和数据存储器256B 。

2-3 8XC5X 系列CPU 共有多少根I/O 引脚?在什么情况下,不能将P0口作为通常意义上的输入/输出引脚使用?

答:共有I/O 引脚32根;在P0作为地址数据总线端口使用时就不能作为普通I/O 口使用。

2-4 简述P1口的内部结构。为什么将P1口引脚作为输入引脚使用前,一定要向P1口锁存器相应位写入“1”?

答:主要由两个三态门、一个D 型锁存器、一个MOS 管和一个上拉电阻构成;P1作为输入引脚使用时一定要先写入“1”,其目的是使内部MOS 管处于截止状态,避免MOS 管对输入信号构成影响。

2-5 根据8XC5X 系列CPU P1~P3口结构,如果用引脚驱动NPN 三极管,则最大集电极电流ICMAX 为多少?(假设β取100)。

答:假设内部上拉电阻的阻值为ΩK 20,三极管发射结正向导通电压为V 7.0,则:

基极电流:mA K V

I B 215.0207.05=Ω

-=

集电极电流:mA mA I I B C 5.21215.0*100===β

2-6 地址/数据分时复用的含义是什么?8XC5X P0口与存储器,如62256相连时,两者之间需要接什么功能的芯片,才能锁存低8位地址信息?试画出8XC5X 与SRAM 62256芯片(作数据存储器使用)之间的连接图。

答:地址/数据分时复用是指总线既可作为数据线,也可作为地址线,但是具体到某一时刻只能作为数据线或者地址线;与62256相连时,在存储芯片和单片机芯片之间必须加锁存芯片,如74LS373等,用来锁存低8位地址信息;

连接电路图(见课本,略)

2-7 8XC5X 单片机CPU 复位后,使用了哪一工作寄存器区?其中R1对应的物理存储单元地址是什么?

答:8XC5X 单片机CPU 复位后,使用了工作寄存器区0;此时R1对应的物理存储单元的地址为01H 。

2-8 如果希望工作寄存器组中R0对应的物理存储单元为10H ,请写出系统复位后,实现这一要求的指令。

答: SETB CS1 CLR CS0

2-9 说出访问下列寄存器或存储空间可以使用的寻址方式,并举例: (1) 8XC5X 系列内部RAM 前128字节。 答:直接和寄存器间接寻址。 (2) 8XC52/54/58系列内部RAM 后128字节。

答:寄存器间接寻址 (3) 特殊功能寄存器。 答:直接寻址。

(4) 外部数据存储器。 答:寄存器间接寻址

2-10 8XC5X CPU 的机器周期与时钟周期是什么关系?如果晶振频率为12 MHz ,则一个机器周期是多少微秒?

答:1)、12个时钟周期构成1个机器周期。 2)、1uS

2-11 8XC5XX2 CPU 的机器周期与时钟周期是什么关系?为什么说当CKCON 寄存器为01H 时,时钟频率为6 MHz 的8XC5XX2系统运行速度与时钟频率为12 MHz 的8XC5X 系统的运行速度相同?

答:可以选择“机器周期/12时钟”或“机器周期/6时钟”。当CKCON 寄存器为01H 时,时钟频率为6 MHz 的的8XC5XX2机器周期为:uS MHz

166

=。而时钟频率为12

MHz 的8XC5X 系统的机器周期为:

uS MHz

11212

=。

2-12 在晶振输出端X2引脚应观察到什么样的波形?当晶振频率较低时,如何使X2引脚输出为理想状态下的波形?

答:方波。

2-13 分析MCS-51写外部数据存储器写时序,说明为什么可使用74LS573或74LS373芯片扩展MCS-51的输入口,而不能扩展输出口。请画出使用两片74LS373芯片扩展MCS-51的输入口、使用两片74LS237扩展输出口的电路图(假设系统中无需扩展外部存储器)。

答:使用边沿触发器作为输出锁存器时可以可靠的锁存输出数据。

2-14 8XC5X CPU 复位后内部RAM 各单元的内容是否改变?程序计数器PC 的值是什么?

答:否。此时PC=0000H.

2-15 MCS-51单片机通过什么指令读/写外部数据存储器?通过什么引脚选通外部数据存储器?

答:使用MOVX 读写外部数据存储器。通过RD 或者WR .

2-16 画出由一片80C32 CPU 、一片27128 EPROM 和一片6264 SRAM 组成的单片机应用系统,要求给出有关信号的连接以及各自存储空间的地址范围。

答:略

2-17 在图2-7所示的电路中,假设驱动引脚为,则执行了如下程序段后,累加器Acc 的内容为什么?这又说明了什么?

SETB

JB ,NEXT1 MOV A ,#0AAH SJMP EXIT NEXT1:

MOV A,#55H

EXIT:

NOP

答:Acc的内容为AAH。因为JB , NEXT1是根据的电平进行判断转移,如果引脚的电平为高则转移。因为三极管导通时引脚被钳位到低电平。

习题三参考答案

3-1 MCS-51内部RAM低128字节支持哪些寻址方式?请写出用不同寻址方式将内部RAM 30H单元信息传送到累加器A的指令或程序片段;内部RAM高128字节支持哪些寻址方式?请写出将内部RAM 80H单元内容传送到累加器A的指令或程序片段。

答:略:

3-2 简述“RET”与“RETI”指令的区别。

答:1)RET是子程序返回指令,RETI是中断服务程序返回指令;

2)RETI在返回时会清除有关中断标志位,而RET不具有此功能。

3-3 指出下列指令中每一操作数的寻址方式。

(1) MOV 40H,A

(2) MOV A,@R0

(3) MOVX @DPTR,A

(4) MOVC A,@A+DPTR

(5) ADD A,#23H

(6) PUSH Acc

(7) MOV P1,32H

(8) MOV C,

(9) INC P0

(10)DEC R2

(11) SJMP EXIT

答:略

3-4 执行“CJNE A,#60,NEXT”指令后,寄存器A中的内容是否被改变?请验证。

答:否。

3-5 写出实现下列要求的指令或程序片段,并在仿真机上验证。

(1) 将内部RAM 20H单元内容与累加器A相加,结果存放在20H单元中。

答:ADD A, 20H

MOV 20H, A

(2) 将内部RAM 80H单元内容与内部RAM 31H单元内容相加,结果存放到内部RAM 的31H单元中。

答:

MOV R0, #80H

MOV A, @R0

ADD A, 31H

MOV 31H, A

(3) 将内部RAM 20H单元内容传送到外部RAM 20H单元中。

答:MOV A, 20H

MOV DPTR, #0020H

MOVX @DPTR, A

(4) 将程序状态字寄存器PSW内容传送到外部RAM的0D0H单元中。

答:MOV A, PSW

MOV DPTR, #00D0H

MOVX @DPTR, A

(5) 将内部RAM 08H~7FH单元,共120字节传送到以8000H为首地址的外部RAM 中。

答:MOV DPTR, #8000H

MOV R0, #08H

MOV R2, #120

LOOP: MOV A, @R0

MOVX @DPTR, A

INC R0

INC DPTR

DJNZ R2, LOOP

END

(6) 将外部RAM 8000H~0803FH单元,共64字节传送到以40H为首地址的内部RAM 中。

答:MOV DPTR, #8000H

MOV R0, #40H

MOV R2, #64

LOOP: MOVX A, @DPTR

MOV @R0, A

INC DPTR

INC R0

DJNZ R2, LOOP

END

(7) 将外部RAM 8000H~0807FH单元,共128字节传送到以0000H为首地址的外部RAM中。

答:AURX1 EQU 0A2H ;注意要自己定义

MOV DPTR, #8000H

INC AUXR1

MOV DPTR, #0000H

INC AUXR1

MOV R0, #128

LOOP: MOVX A, @DPTR

INC DPTR

INC AUXR1

MOVX @DPTR, A

INC DPTR

INC AUXR1

DJNZ R0, LOOP

END

(8) 将存放在内部RAM 的40H、41H和外部RAM的8000H、8001H的16位二进制数相加,结果存放在内部RAM 的40H和41H单元中(假设低位字节存放在低地址中)。

答:MOV DPTR, #8000H

MOVX A, @DPTR ;注意使用MOVX指令,下同

ADD A, 40H

MOV 40H, A

INC DPTR

MOVX A, @DPTR

ADDC A, 41H

MOV 41H, A

END

(9) 如果0~9七段数码显示器对应的字模码3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH存放在1000H为首地址的程序存储器中,写出将数字4对应的字模码输出到外部RAM 3003H单元(即扩展I/O端口地址)的程序段。

答:MOV DPTR, #1000H

MOV A, #4

MOVC A, @A+DPTR ;注意使用MOVC指令

MOV DPTR, #3003H

MOVX @DPTR, A ;注意使用MOVX指令

ORG 1000H

DB 03FH,06H,5BH,4FH,55H,66H,6DH,6DH,07H,7FH,6FH

END

(10) 将内部RAM 01H~0FFH单元内容清零。

答:MOV R0, #01H

LOOP: MOV @R0, #0

INC R0

CJNE R0, #0FFH, LOOP

END

(11) 我国FSK来电显示采用单数据消息格式,其中第0字节为消息类型(固定为04,即单数据消息格式标志),随后的一个字节为消息体长度,消息体内的消息字包括了来电日期(月、日)与时间(时、分)(8个字节)及主叫号码,最后一个字节为校验信息(校验算法可概括为:从消息类型字节到主叫号码最后一个字节按256模式累加和,再求补码)。试写出相应的校验程序片段(假设来电信息从内部RAM 30H单元开始存放)。

答:

(12) 使内部RAM 20H单元的b7、b3位清零,b6、b2位置1,b4、b0位取反,其他位不变。

答:SETB ;如果给定的地址不在20H~2FH之间,则不能用位寻址

SETB

CLR

CLR

CPL

CPL

(13) 将IPH寄存器的b7、b5位清零,b2、b0位置1,其他位不变。

答:IPH EQU 0B7H

MOV A, IPH

ANL A, #01011111B

ORL A, #00000101B

MOV IPH, A

END

(14) 将内部RAM 30H单元乘4(假设30H单元内容不超过63)。

答:MOV 30H, #4

MOV A, 30H

RL A

RL A

MOV 30H, A

END

(15) 将存放在内部RAM 40H、41H和外部RAM 8000H、8001H的四位BCD码相加,结果存放在内部RAM 40H、41H、42H单元中(假设低位字节存放在低地址中,高位字节存放在高地址中)。

答:MOV DPTR, #8000H

MOVX A, @DPTR

CLR C

ADD A, 40H

DA A

MOV 40H, A

INC DPTR

MOVX A, @DPTR

ADDC A, 41H

DA A

MOV 41H, A

MOV 42H, C

END

(16) 将立即数32H传送到内部RAM 30H单元中。

答:MOV 30H, #32H

(17) 将立即数32H传送到内部RAM 88H单元中。

答:MOV R0, #88H

MOV @R0, 32H

END (18) 将位送位。 答: MOV C, MOV , C

END

(19) 用MCS-51位指令,实现0.11.12.13.1P P P P ++?的逻辑运算。

答: MOV C, ANL C, / MOV , C ;暂存 MOV C, ORL C, CPL C ORL C, END

3-6 假设4位BCD 码压缩存放在R3、R2中,试编写BCD 减1的程序段,并在仿真机上验证。 答: ;相当于WXYZ+10000-1=WXYZ+9999 CLR C; MOV A, R2 ADD A, #99 DA A MOV R2, A MOV A, R3 ADDC A, #99 DA A MOV R3, A END

3-7 利用双DPTR 功能,将存放在程序存储区内的数表(共计16字节,首地址为DA TATAB)传送到以4000H 为首地址的外部RAM 中。 答: AUXR1 EQU 0A2H MOV DPTR, #DATATAB INC AUXR1 MOV DPTR, #4000H MOV R7, #16 ;16 个字节 MOV A, #0 ;最开始的位置

LOOP: MOV R6, A ;暂存A 的值

MOVC A, @A+DPTR ;注意用MOVC ,同时职能用A 做变址寄存器 INC DPTR MOVX @DPTR, A ;注意使用MOVX 指令 MOV A, R6

INC DPTR

I INC A ;A的值增1,指向下一个字节

DJNZ R7, LOOP

DATATAB:

DB 01H,02H, 03H,04H, 01H,02H,03H,04H

END

3-8 将存放在R3、R2中的三位压缩BCD码转换为二进制形式。

答:三位BCD码<999

MAIN:

MOV A, R2

ANL A, #0F0H

SWAP A

MOV B, #10

MUL AB

MOV B, A (2) SETB RS1

CLR RS0

3-13 简述顺序程序结构与分时操作程序结构的异同,以及这两种程序设计的注意事项。

答:略

习题四参考答案

4-1 增强型MCS-51有几个中断优先级?试通过修改IP、IPH寄存器内容,使串行口的中断优先级最高,定时器T1的中断优先级最低。

答:(1)4 ;

(2)MOV IPH ,#00010000B, MOV IP ,#00010000B

4-2 MCS-51外中断有几种触发方式?一般情况下,采用哪种触发方式较好?

答:两种,边沿触发

4-3 CPU响应中断请求后,不能自动清除哪些中断请求标志?

答:串行发送结束中断标志TI;串行接收有效中断标志RI;定时\计数器T2溢出中断标志TF2;定时\计数器T2外触发标志EXF2;电平触发方式下的外部中断标志IE0和IE1

4-4 MCS-51 CPU在什么时候查询中断请求标志?满足什么条件才响应?

答:(1)每个机器周期S5P2相锁存引脚的电平状态,设置中断请求标志,并在下一周的S6状态按优先级的顺序查询没有被禁止的中断请求标志,如果满足中断响应条件,则在下一个机械周期的S1状态响应优先级别最高的中断请求,并执行相应的终端服务程序,否则继续执行当前的程序。

(2)a 此中断源的允许位为1;

b CPU已经开中断(即EA=1);

c 当前的中断请求比现在服务的中断优先级比高;

d 必须在当前的指令执行完才响应中断;

e 在RETI或读写IE或IP或IPH之后, 不会马上响应中断请求, 而至少执行

一条其它指令之后才会响应)。

4-5 子程序和中断服务程序有何异同?为什么子程序返回指令RET和中断返回指令RETI不能相互替代?为什么同优先级中断服务可以使用同一工作寄存器区?

答:(1)子程序由程序员调用,中断服务程序在满足条件的时候被调用;中断服务程序入口地址固定,子程序入口地址由用户决定;中断服务程序存在优先级的问题,子程序不存在优先级;(2)不能;(3)可以,因为同级的中断服务程序不能嵌套中断,必须等正在运行的中断服务程序返回后才能响应其它同级中断,此时资源已经释放。

4-7 如果某一中断服务程序中没有改写工作寄存器R0~R7指令,则进入中断服务程序后是否需要切换工作寄存器区?简要说明原因。

答:不需要,因为不存在共用工作寄存器资源而产生的矛盾的问题。

INT引脚出现100~200ms低电平信号时,在引脚输出低电平,但引脚存在4-8 如果0

尖脉冲干扰。请问应选择哪种触发方式?请写出中断服务程序。

INT的低电平持续时间长,考虑答:由于有尖峰脉冲干扰,宜采用电平触发,但由于0

INT变高后清除中断标志的指令,避免程序重复响应,程序如下:

增加在0

EXINT0:

PUSH ACC

PUSH PSW

CLR

JNB , $ //等待INT0变为高电平

CLR IE0 //清除外中断0标志

POP PSW

POP ACC

RETI

4-9 MCS-51子系列具有几个定时/计数器?简述定时/计数器T1的主要用途。

答:3个;T1作为定时器和串口波特率发生器;

4-10 如果系统的晶振频率为12MHz,分别指出定时/计数器方式1和方式2的最长定时时间。

答:定时/计数器方式1:65536uS;方式2:256uS。

4-11 如果系统的晶振频率为12MHz,试利用定时/计数器T0在引脚输出周期为100ms 的方波。

答:

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP TIMER0

ORG 0030H

MAIN:

MOV SP, #5FH

;

ANL TMOD, #0F0H

ORL TMOD, #01H //方式1

MOV TH, #(65536-5000)/256 //定时50ms

MOV TL, #(65536-5000) MOD 256

SETB ET0

SETB EA

SETB TR0

SJMP $

TIMER0:

MOV TH, #(65536-5000)/256 //定时50ms

MOV TL, #(65536-5000) MOD 256

CPL

RETI

4-12 试利用定时/计数器T2的时钟输出功能,在引脚上输出周期为10ms的方波。

TL2 EQU 0CCH

TH2 EQU 0CDH

RCAP2L EQU 0CAH

RCAP2H EQU 0CBH

T2MOD EQU 0C9H

T2CON EQU 0C8H

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

MOV SP, #60H

MOV TH2, #(35536/256)

MOV TL2, #(35536 MOD 256)

MOV RCAP2L, #(35536 MOD 256)

MOV RCAP2H, #(35536/256)

MOV T2MOD, #02H //设置为时钟输出

MOV T2CON, #04H //启动TR2

HERE:

SJMP HERE

END

4-13 试利用定时/计数器T2的时钟输出功能,在引脚上不断重复输出频率为450Hz,持续和停止时间均为4 s的方波信号。

答:T2工作在时钟输出模式,从输出450Hz方波;T1定时时间为2S(定时50ms,计数40次),控制T2MOD寄存器的T2OE位,程序如下:

TL2 EQU 0CCH

TH2 EQU 0CDH

RCAP2L EQU 0CAH

RCAP2H EQU 0CBH

T2MOD EQU 0C9H

T2CON EQU 0C8H

OVERTIMES DATA 40H

ORG 0000H

LJMP MAIN

ORG 001BH LJMP TIMER1 ORG 0030H MAIN: MOV SP, #60H MOV OVERTIMES, #40 //溢出计数40次 //设置T2 MOV TH2, #(58869/256) //输出频率450Hz MOV TL2, #(58869 MOD 256) MOV RCAP2L, #(58869 MOD 256) MOV RCAP2H, #(58869/256) MOV T2MOD, #02H //时钟输出 MOV T2CON, #04H //启动TR2 //设置T1 ANL TMOD, #0FH ORL TMOD, #10H //模式1 MOV TH1, #(65536-50000)/256 //定时50ms MOV TL1, #(65536-50000) MOD 256 SETB ET0 SETB EA SETB TR1 SJMP $ TIMER1: MOV TH1, #(65536-50000)/256 MOV TL1, #(65536-50000) MOD 256 DJNZ OVERTIMES, EXIT MOV OVERTIMES, #40 MOV A, T2MOD ADD A, #02H MOV T2MOD, A //切换T2OE EXIT: RETI

////////////////////////////////////////////////// END

4-14 在什么情况下增强型MCS-51CPU(如87C54、P89C52)存在三个外部中断?请说明,并指出各自中断输入端、可能的触发方式、中断标志及中断服务程序入口地址。这时定时器T2只能工作在什么方式?

答:除了外部中断0INT 和1INT 外, 脚可作为外部中断输入端,工作于边沿触发方式,中断标志为EXF2,中断服务程序入口地址为002BH 。T2可工作于时钟输出方式、串口波特率发生器方式。

4-15 试画出利用串行口方式0和两片74LS164“串入并出”芯片扩展16位输出口的硬件电路,并写出输出驱动程序。

答:略

4-16 当串行口工作在哪种方式时,串行输入、输出与定时/计数器T1、T2的溢出率无关?

答:方式0与方式2

4-17 试编写与PC机串行通信的程序(系统晶振频率为MHz,波特率为2400,8位数据,奇偶校验)。

答:请参考PPT中的有关实例程序

4-18 假设系统晶振频率为12MHz,试利用定时/计数器T2的定时中断功能,实现每25ms将内部RAM 80H~87H单元内容依次送P1口。

答:

ET2 BIT 0ADH

TR2 BIT 0CAH

TF2 BIT 0CFH

TL2 EQU 0CCH

TH2 EQU 0CDH

RCAP2L EQU 0CAH

RCAP2H EQU 0CBH

T2MOD EQU 0C9H

T2CON EQU 0C8H

//

ORG 0000H

LJMP MAIN

ORG 0023H

LJMP TIMER2

ORG 0030H

MAIN:

MOV SP, #5FH

;

MOV TH2, #(65536-25000)/256

MOV TL2, #(65536-25000) MOD 256

MOV RCAP2H, #(65536-25000)/256

MOV RCAP2L, #(65536-25000) MOD 256

SETB ET2

SETB EA

SETB TR2

SJMP $

TIMER2:

MOV R7, #08

LOOP:

MOV R0, #80H

MOV P1, @R0

DJNZ R7, LOOP

CLR T F2

RETI

END

4-19 试利用增强型MCS-51串行口自动地址识别功能构造“一主八从”多机通信系统。假设只需要“一对一”的通信方式,请写出串行口的初始化程序段(系统晶振频率为 MHz ,波特率为2400,使用定时器T1的溢出率作为通信波特率)。

答:根据题意,只需要“一对一”的通信方式,即每次主机发送过来的地址,只会唯一选择一个自己与其通信。设主机发送过来的地址为X ,从机屏蔽地址寄存器的内容为Y ,则从机地址也为X ,即X Y X =?,则:

11111111

=?⊕=?⊕Y X

X Y X X

从机编号 7机 6机 5机 4机 3机 2机 1机 0机 SADEN 01000000

00100000

00010000

00001000

00000100

00000010

00000001

SADDR

初始化编程只要各子机初始化SADEN 和SADDR 两个寄存,设定工作模式和波特率即可。

4-20 说明执行如下两条指令后累加器Acc 内容一般不同的原因。 MOV SBUF ,A MOV A ,SUBF

答:第一条指令将累加器A 的内容送发送缓冲器,第二条指令从接收缓冲器送累加器A

习题六参考答案

6-1 为什么不宜用外部RAM 写选通信号的后沿(即上升沿)锁存输出数据?列举常用的I/O 扩展芯片。

答:参见PPT 有关也的内容。

6-2 用8255 I/O 扩展芯片扩展87C52 CPU I/O 引脚时,如果系统中没有地址锁存器,8255地址线如何连接?请画出相应的连线图。

答:略

6-3 在图6-11(a)所示的电路中,如果CPU 是80C31,则复位期间和复位后LED 是否发光?为什么?

答:复位期间和复位后P1口均输出高电平,所以LED 不发光。

6-4 如果将MCS-51的P1口引脚按矩阵编码方式组织成M ×N 个检测点,那么在什么情况下检测点的数目最多?这时M 和N 分别是多少?

答:

2

)(M

MS M S M N

M S -=-+=

要使检测点数目最多,可以求上式的最值,即求式2

M MS -中M 一阶导数:

2/02S M M S =?=-

6-5 LED 发光二极管与普通整流二极管有什么不同?LED 发光二极管的工作电流和导通电压范围分别是多少?

答:(1)两者的制造材料不同,正向导通电压不同;(2)~

6-6 比较图6-11(b)和图6-11(c)电路的优缺点。如果LED 工作电流IF 为15 mA ,电源电压VCC 为 V ,则图中限流电阻R 如何选择(提示:主要考虑阻值和耗散功率)?

答:F

OL

F CC I V V V R --=

耗散功率:F OL F CC I V V V W ?--=)(

6-7 根据LED 数码管内部各LED 二极管连接方式的不同,可将LED 数码管分为几类? 答:共阴和共阳。

6-8 LED 数码显示器静态显示驱动方式和动态显示驱动方式各有什么优缺点?点阵式LED 显示器只能采用什么显示驱动方式?

答:参见PPT 相关页。

6-9 指出图6-15(b)所示显示驱动电路的笔段代码锁存器和位扫描码。如果PC7~PC4定义为输出,PC3~PC0定义为输入, 假设片选信号接图6-2译码输出端,请写出8255的初始化指令,并将显示缓冲区37H ~30H 内容依次送8个显示位显示出来。

答:略

6-10 在图6-38所示电路中,当光耦输出回路三极管的集电极电流为 mA 时,输入回路限流电阻R 的阻值是多少?假设电源电压VCC 为 V 。

F

OL

F CC I V V V R --=

6-11 写出图6-30(a)所示矩阵键盘电路的扫描程序(采用定时中断检测方式,每隔50 ms 检测有无按键输入,系统晶振频率为6 MHz)。

答:参考实验程序。

6-12 在8位LED 数码管动态显示电路中,如果每位显示时间为 ms ,则显示刷新频率为多少?如果每位显示时间为 ms ,刷新频率不低于25 Hz ,则最多能显示几位?

答:(1)Hz N t f N f t 508

0025.01

11=?=?=??=

(2)20002

.02511=?=?=

t f N

相关文档