|
电子科技大学网络教育考卷(A卷)
(20 年至20 学年度第 学期)
考试时间 年 月 日(120分钟) 课程 单片机原理及应用 教师签名 沈宏科
大题号 一 二 三 四 五 六 七 八 九 十 合 计
得 分
一、论述题(每题5分,共15分)
1. 什么是单片机
答:将CPU、RAM、ROM、I/O口、定时/计数器以及串行口等集成在一块芯片上就构成了单片微型计算机,简称单片机。
2. 89C51单片机片内RAM的区间是如何划分的?各有什么主要功能?
答:工作寄存器区:00H-1FH 位寻址区:20H-2FH
堆栈区(用户可寻址区):30H-7FH 特殊功能寄存器区(SFR):80H-FFH
3. 89C51单片机的控制线有几根?每一根控制线的作用是什么?
答:有四根:
ALE/PROG:主要用于配合锁存器锁存低8位地址信息。 PSEN : 片外ROM的读选通控制输出
EA/VPP : 用于控制PC的指向。EA?0,PC指向片外ROM,EA?1,PC指向片内ROM。
RST/VPD : 复位控制信号线(高电平复位)
二、判断分析题,正确的在括号中画“√”,错误的在括号中画“×”(每题1分,共10分)
1. 89C51单片机的 端接地后,它的功能和89C51完全一样。( √ )
2. 89C51单片机执行PUSH A指令后,则堆栈指针SP的内容自动减1。( × )
3. 89C51单片机没有专门的输入/输出指令,都是用MOVC指令来操作外部I/O口的数据。( × )
4. 89C51单片机的程序存储器中只能存放程序,不能存放数据。( × )
5. 89C51单片机复位后,P1口输出高电平。( √ )
6. 为了使P1.1输出“1”状态而不影响P1口的其它位的状态,采用指令: SETB P1.1 。( √ )
7. 89C51单片机内部只包括CPU、存储器和I/O接口电路。( × )
8. 单片机在复位后,所有的中断请求都被开放。( × )
9. 89C51的TMOD是16位的寄存器。( × )
10. 位累加器C中的数据不能传送给累加器A。( √ )
三、填空(每空1分,共20分)
1.89C51单片机外部数据储存器的地址范围是( 0000H~FFFFH )。
2.89C51复位后,SP初始化为( 07H ),使得堆栈从( 08H )单元开始存放。
3.89C51单片机片内RAM中00H~1FH为(工作寄存器)单元,20H~2FH为(可位寻址)单元。
4.DPTR的主要功能是(作为片外数据存储器指针)。
5.P0口可用作(低8位地址)总线,还可用作(8位数据)总线。
6.作为普通输入输出口使用时,P0~P3口都是(准双向I/O)口,当由输出转为输入时,必须向口锁存器写(1)。
7.PSW中的工作寄存器指针是( RS1、RS),它们把R0~R7分成(4)组。
8.对选定的寄存器R0~R7,只有( R0 、 R1 )既能存放数据又能作为间址寄存器。
9.RET和RETI的区别在于(RETI能从硬件上恢复中断逻 )。
10.当定时/计数器T0工作于工作方式2时,其最大计数范围为( 00H~FFH )。
11.当TMOD中的GATE=1时,只有在 为(1)、 为(1 )时,才能启动相应的定时器工作。
12.中断是通过( 硬件 )来改变CPU运行的方向。
13.MOV A,30H表示(30H单元内容送A )。
14.MOV C,30H表示( 30H位送C )。
四、单项选择题(每题1分,共10分)
1.片外数据存储器的数据传送到累加器A中,应采用哪条指令?( D )
(A)MOV A,@R0 (B)MOV A,@R1 (C)MOVC A,@A+DPTR (D)MOVX A,@DPTR
2.SP指针的功能是( D ),修改SP指针,则堆栈地址发生变化。
(A)便于中断前保存数据 (B) 便于中断服务程序返回后恢复现场数据
(C) 便于子程序的调用和返回 (D)指出栈区的位置
3.DA A是十进制加法调整指令,但在两数相加时,加数和被加数都必须是( D )。
(A)正数 (B)无符号数 (C)负数 (D)BCD码形式的十进制数
4.下列程序段执行后,累加器A中的内容是( A )。
MOV A,55H
CLR C
RLC A
MOV R0,A
XRL A,R0
SJMP $
(A) 00H (B)55H (C) AAH (D)FFH
5.89C51单片机的位地址00H~7FH,指的是( B )单元中各位的位地址。
(A)片内RAM 00H~1FH (B) 片内RAM20H~2FH
(C)片内RAM 80H~FFH (D)片外RAM 0020H~002FH
6.程序状态字寄存器PSW的作用之一是( C )。
(A)指示出每条指令执行后,A中的内容是否为零 (B) 指示出指令INC A是否有进位
(C)指示出当前使用的工作寄存器组号 (D)指示程序转移的偏移量
7.89C51单片机的堆栈区应设在( B )之间.
(A)在片外RAM 00H~7FH (B) 在片内RAM 00H~7FH
(C)在片外RAM0000H~00FFH (D)在片内RAM 00H~FFH
8.89C51单片机片内I/O口有( B )根引线。
(A)24 (B)32 (C)16 (D)14
9.AJMP 指令的转移范围可以在( D )。
(A)0000~00FFH之间 (B)0000H~FFFFH之间
(C)000H~FFFHZ之间 (D)1000H~17FFH之间
10.89C51单片机有5个中断2个优先级,中断的管理和控制是由( C )来控制的。
(A)IE、PSW、PC、SP (B)PCON、SCON、SP、IE
(C)IE、IP、TCON、SCON (D)IE、SP、TCON、IP
五、分析题 (每题5分,共25分)
1. 试说明下段程序中每条指令的作用,当指令执行完后,R1中的内容是什么?
MOV R1,#0ABH
XCH A,R1
SWAP A
XCH A,R1
MOV R1,#0ABH ;(R1)=ABH
XCH A,R1 ;(A)=ABH
SWAP A ;(A)=BAH
XCH A,R1 ;(R1)=BAH
执行完后(R1)=BAH
2.下述程序执行后,SP=? A=? B=?
ORG 2000H
MOV SP,#40H
MOV A,#30H
LCALL 2500H
ADD A,#10H
MOV B,A
L1: SJMP L1
ORG 2500H
MOV DPTR,#2009H
PUSH DPL
PUSH DPH
RET
(A)=40H (B)=40H (SP)=42H
3. 指出下列指令哪些是错误的:
(1) INC @R1
(2) DEC @DPTR
(3) MOV A,@R2
(4) MOV 40H,@R1
(5)MOV 20H,30H
(6)ANL 60H,#0F0H
(2)错误 (3)错误 (6)错误
4、阅读下列程序,画出片内RAM单元的示意图,并说明程序的功能。
MOV R0,#40H
MOV A,@R0
INC R0
ADD A,@R0
INC R0
MOV @R0,A
CLR A
ADDC A,#0
INC R0
MOV @R0,A
MOV R0,#40H 把#40H 移动到存储器 R0
MOV A @R0 把 A 移动到地址@R0 RL A
INC R0
ADD A,@R0
INC R0
MOV @R0,A 寄存器间接寻址((R0))→A
CLR A
ADDC A,#0
INC R0
MOV @R0,A 把@R0 的内容移动到 A
5、片内RAM中addr1和addr2两个单元中存有两个无符号数。画出下列程序段的流程图,并简述该程序段的主要功能。
MOV A,addr1
CJNE A,addr2,BIGER
SJMP STORE
BIGER: JC STORE
MOV A,addr2
STORE: MOV 30H,A
六、设计题(20分)
89C51串行口按异步双工方式收发ASCII字符,最高位用来作奇偶检验位,采用奇检验方式,要求传送的波特率为2400b/s,设发送数据区的首地址为20H,接收数据区的首地址为40H, ,SMOD=0。定时器T1采用工作模式2,可以避免计数溢出后用软件重装定时初值的工作。
(1)串行口工作于哪种模式下?定时器的初值为多少?
(2)编写有关的通信程序。
附录:几个SFR的格式定义
TMOD(89H):高4位用于T1,低4位用于T0。
SCON(98H):
IE(A8H):
解:7位ASCII码加1位奇校验共8位数据,故可采用串行口方式1。
89C51单片机的奇偶校验位P是当累加器A中1的数目为奇数时,P=1。如果直接把P的值放入ASCII码的最高位,恰好成了偶校验,与要求不符。因此,要把P的值取反以后放入ASCII码最高位,才是要求的奇校验。
2、串行口方式1的发送和接收
双工通信要求收、发能同时进行。收、发操作主要是在串行接口进行,CPU只是把数据从接收缓冲器读出和把数据写入发送缓冲器。数据传送用中断方式进行,响应中断以后,通过检测是RI置位还是TI置位来决定CPU是进行发送操作还是接收操作。
发送和接收都通过调用子程序来完成,设发送数据区的首地址为20H,接收数据区的首地址为40H,fosc为6MHz,通过查波特率初值可知定时器的初装值为F3H。定时器T1采用工作模式2,可以避免计数溢出后用软件重装定时初值的工作。
2、串行口方式1的发送和接收
主程序
MOV TMOD ,#20H ;定时器1设为模式2
MOV TL1 , #0F3H ;定时器初值
MOV TH1 ,#0F3H ;8位重装值
SETB TR1 ;启动定时器1
MOV SCON ,#50H ;设置为方式1,
;REN=1
MOV R0 ,#20H ;发送数据区首址
MOV R1 ,#40H ;接收数据取首址
ACALL SOUT ;先输出一个字符
SETB ES
SETB EA
SJMP $ ;等待中断
2、串行口方式1的发送和接收
发送子程序
SOUT: CLR TI
MOV A , @R0 ;取发送数据到A
MOV C ,P;奇偶标识赋予C
CPL C;奇校验
MOV ACC.7, C
INC R0;修改发送数据指针
MOV SBUF ,A;发送ASCII码
RET;返回
2、串行口方式1的发送和接收
|
|