一、填空(30分,每空1分)
1. 如果(A)=45H,(R1)=20H,(20H)=12H,执行XCHD A, @ R1;结果(A)= 42H ,(20H)= 15H
2. ATS51的异步通信口为 全双工 (单工/半双工/全双工),若传送速率为每秒120帧,每帧10位,则波特率为1200 bit/s
3. ATS51内部数据存储器的位地址空间的字节地址范围是 20H-2FH ,对应的位地址范围是 00H-FFH。
4. 单片机也可称为 微控制器 或 嵌入式控制器
5. 当MCS-51执行MOVX A,@R1指令时,伴随着 RD 控制信号有效。
6. 当单片机的PSW=01H时,这时当前的工作寄存器区是 0 区,R4所对应的存储单元地址为 04 H
7. ATS51的 P0 口为高8位地址总线口。
8. 设计一个以ATC51单片机为核心的系统,如果不外扩程序存储器,使其内部4KB闪烁程序存储器有效,则其 EA* 引脚应该接 +5V
9. 在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行 256 次。
10. 欲使P1口的低4位输出0,高4位不变,应执行一条 ANL P1, #0F0H 命令。
11. 单片机外部三大总线分别为 数据总线 、 地址总线 和控制总线。
12. 数据指针DPTR有 16 位,程序计数器PC有 16 位
13. 74LS138是具有3个输入的译码器芯片,用其输出作片选信号,最多可在 8 块芯片中选中其中任一块。
14. MCS-51指令系统中,ADD与ADDC指令的区别是 进位位Cy是否参与加法运算
15. 特殊功能寄存器中,单元地址低位为 0或8 的特殊功能寄存器,可以位寻址。
16. 开机复位后,CPU使用的是寄存器第0组,地址范围是 00H-07H
17. 若某存储器芯片地址线为12根,那么它的存储容量为 4kB
18. 关于定时器,若振荡频率为12MHz,在方式0下最大定时时间为 8.192ms
19. ATS51复位后,PC与SP的值为分别为 0000H 和 07H
20. LJMP跳转空间最大可达到 K
21. 执行如下三条指令后,30H单元的内容是 #0EH
M O V R 1,#30H
M O V 40H,#0 E H
M O V ﹫R 1,40H
二、判断题(10分,每题1分)
1 当EA脚接高电平时,对ROM的读操作只访问片外程序存储器。(X )
2 必须有中断源发出中断请求,并且CPU开中断,CPU才可能响应中断。(X )
3 8155是一种8位单片机。(X )
4 51单片机只能做控制用,不能完成算术运算。(X )
5 单片机内部RAM和外部RAM是统一编址的,它们的访问指令相同。(X )
6 指令AJMP的跳转范围是2KB。(√ )
7 扩展I/O口占用片外数据存储器的地址资源。(√ )
8 8051单片机,程序存储器数和数据存储器扩展的最大范围都是一样的。(√ )
9 单片机系统扩展时使用的锁存器,是用于锁存低8位地址(√ )
10 在A/D变换时,转换频率越高越好。(X )
三、简答题(18分)
1、采用6MHz的晶振,定时5ms,用定时器方式1时的初值应为多少?(请给出计算过程)(5分)
答: (1) (216-X)×2us=5ms 65536 – 2500 = 63036
从而X=63036………………………..4分
(2) 536=F63CH………………………1分
2、MCS-51单片机片内256B的数据存储器可分为几个区?分别作什么用?(8分)
答:
(1)通用工作寄存器区,00H – 1FH,共4组,R0-R7,在程序中直接使用
(2)可位寻址区,20H-2FH,可进行位操作,也可字节寻址
(3)用户RAM区,30H-7FH,只可字节寻址,用于数据缓冲及堆栈区
(4)特殊功能寄存器区,80H-FFH,21个特殊功能寄存器离散地分布在该区内,用于实现各种控制功能
3、指出以下程序段每一条指令执行后累加器A内的值,已知(R0)=30H。(5分)
MOV A,#0AAH ;(A)= 0AAH
CPL A ;(A)= 55H
RL A ;(A)= 0AAH
CLR C ;(A)= 0AAH
ADDC A,R0 ;(A)= 0DAH
四、下图是四片2K×8位存储器芯片的连线图。(1)确定四片存储器芯片地址范围,要求写出必要的推导过程。(2)编程将片内RAM 30H~4FH单元中的32个字节数据传送到片外RAM 左数第一块芯片的最低端32个字节单元(按地址由低至高存放)。(本题15分)
答:(1) 设从左至右RAM芯片号为#1,#2,#3,#4
| 芯片 | A15A14 | A13A12A11 | A10A9A8A7A6A5A4A3A2A1A0 | 地址范围 | |
| #1 | 1 0 | 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 | 低8000H | (1分) |
| 1 0 | 0 0 0 | 1 1 1 1 1 1 1 1 1 1 1 | 高87FFH | (1分) | |
| #2 | 1 0 | 0 0 1 | 0 0 0 0 0 0 0 0 0 0 0 | 低8800H | (1分) |
| 1 0 | 0 0 1 | 1 1 1 1 1 1 1 1 1 1 1 | 高8FFFH | (1分) | |
| #3 | 1 0 | 0 1 0 | 0 0 0 0 0 0 0 0 0 0 0 | 低9000H | (1分) |
| 1 0 | 0 1 0 | 1 1 1 1 1 1 1 1 1 1 1 | 高97FFH | (1分) | |
| #4 | 1 0 | 0 1 1 | 0 0 0 0 0 0 0 0 0 0 0 | 低9800H | (1分) |
| 1 0 | 0 1 1 | 1 1 1 1 1 1 1 1 1 1 1 | 高9FFFH | (1分) |
MOV DPTR, #8000H ;
MOV R0, #20H ;
MOV R1, #30H ;
LOOP: MOV A, @R1 ;
MOVX @DPTR,A ;
INC DPTR ;
INC R1 ;
DJNZ R0, LOOP ;
HERE: RET ;或AJMP HERE
五、简述行列式键盘线反转法识别按键的工作原理。(本题6分)
答:
第1步:让行线编程为输入线,列线编程为输出线,使输出线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。(3分)
第2步:再把行线编程为输出线,列线编程为输入线,使输出线输出为全低电平,则列线中电平由高变低的所在列为按键所在列。(3分)
综合上述两步,可确定按键所在行和列。
六、图为8段共阴数码管,请写出如下数值的段码。(本题5分)
答:
0 3FH (0.5分) 1 30H(06H) (0.5分) 2 6DH (0.5分)
3 79H (0.5分) 4 72 H (0.5分) 5 5BH (0.5分)
P 67H (0.5分) 7 31 H (0.5分) 8 7FH (0.5分)
C 0FH (0.5分)
七、回答下列问题并写出简要分析过程。(本题16分)
左下图是DAC0832的应用电路,DA转换时数字量FFH与00H分别对应于模拟量+5V与0V。右下图给出了DAC0832的逻辑结构。(1)将图中空缺的电路补充完整;(2)编写程序,产生图中所示锯齿波。设有一个延时3.905ms的子程序DELAY可以直接调用。
答:
(1)共6根线,每根线1分。连线如图,如果WR2*与WR*或XFER*相连也给分。ILE直接接+5V也正确。
(2) ORG 1000H
MOV R0, #0FEH ;(3分) 或:MOV DPTR, #FFFEH
MOV A, #00H ;(1分)
LOOP: MOVX @R0, A ;(1分) 或:MOVX @DPTR, A
INC A ;(1分)
LCALL DELAY ;(3分)
SIMP LOOP ;(1分)
程序应整体思路正确,若有其他错误,视情况减分下载本文