单片机基础-南华大学期末考试题库及答案
课堂习题及作业:
填空及简答
1.十进制29的二进制表示为 。
2.单片微型机主要有
3.计算机中最常用的字符信息编码是
4.二进制数11011.0011转化为十进制数是 。
5.何谓单片机?单片机与一般微型计算机相比,具有哪些特点?
6.单片机主要应用在哪些领域?
7.单片机经历了哪几个发展阶段?
8.什么是二进制?为什么在数字系统、计算机系统中采用二进制?
9.将下列各数按权展开为多项式:
(1) 110110B (2) 5678.32D (3)1FB7H
10.把下列十进制数转化为二进制、十六进制:
(1) 135 (2) 548.75 (3)254.25
11.什么叫BCD码和ASCII码?
12 .MCS-51的堆栈是临时在_ 器内开辟的区域。
13 .MCS-51片内 14 .PSW=18H15. 80C51含 掩膜ROM。
16
17 .P1TTL低电平负载。
18 .一个机器周期等于2分频后产生的时钟信号的周期定义为时钟周期。
19. MSC-51单片机内部有哪些主要的逻辑部件?
20 .MSC-51单片机程序存储器和数据存储器各有什么功用?其内部RAM区功能结构如何分配?
21 .在内部RAM中,4组工作寄存器使用时如何选用?位寻址区域的字节地址范围是多少?
22 .程序状态字PSW的作用是什么?常用标志有哪些位?作用是什么?
23 .简述定时器的四种工作模式的特点,如何选择和设定?
24 .MCS-51的中断允许触发器内容为83H,CPU将响应的中断请求是那些?
25 .PC是什么寄存器?是否属于特殊功能寄存器?它有什么作用?
26 .DPTR是什么寄存器?它由哪些特殊功能寄存器组成?它的主要作用是什么? 27 .什么是中断?其主要功能是什么?
28 .什么是中断优先级?中断优先处理的原则是什么?
29 .试编写一段对中断系统初始化的程序,使之允许INT0、INT1,T0,串行口中断,且使T0中断为高优先级中断。
程序题
1.将片内RAM 30H单元与40H单元中的内容互换。
方法1(直接地址传送法):
MOV 31H,30H
MOV 30H,40H
MOV 40H,31H
方法2(间接地址传送法):
MOV R0,#40H
MOV R1,#30H
MOV A,@R0
MOV B,@R1
MOV @R1,A
MOV @R0,B
方法3(字节交换传送法):
MOV A,30H
XCH A,40H
MOV 30H,A
方法4(堆栈传送法):
PUSH
PUSH 30H 40H
POP 30H
POP 40H
2.内部数存30H开始的数传送给40H,遇到0则停止
MOV R0,#30H
MOV R1,#40H
LOOP:MOV A,@R0
JZ LOOP1
MOV @R1,A
INC R0
INC R1
SJMP LOOP
LOOP1:RET
3.外部数存50H开始的数传送给内部数存40H,遇到0则停止
MOV R0,#50H
MOV R1,#40H
LOOP:MOVX A,@R0
JZ LOOP1
MOV @R1,A
INC R0
INC R1
SJMP LOOP
LOOP1:RET
4.把外部数据存储器2040H单元中的数据传送到外部数据存储器2560H单元中去。 MOV DPTR,#2040H
MOVX A,@DPTR ;先将2040H单元的内容传送到累加器A中
MOV DPTR,#2560H
MOVX @DPTR,A ;再将累加器A中的内容传送到2560H单元中
5.程存2000H起存放0-9的平方,用两种查表指令查得9的平方。
1.用MOVC A, @A+DPTR。
MOV DPTR, #2000H
MOV A, #09H
MOVC A, @A+DPTR
2.用MOVC A, @A+PC,设查表指令地址为1FF0H
MOV A, #09H
ADD A,#0FH
MOVC A, @A+PC
6.试把存放在R1R2和R3R4中的两个16位数相加,结果存于R5R6中。
MOV
ADD
MOV
MOV
MOV
A,R2 ;取第一个数的低8位 A,R4 ;两数的低8位相加 R6,A ;保存和的低8位 A,R1 ;取第一个数的高8位 R5,A ;把相加的高8位存入R5寄存器中 ADDC A,R3 ;两数的高8位相加,并把低8位相加时的进位位加进来
7.多字节无符号数加法:用循环的方法把40H-43H里的数分别与50H-53H里的数相加,结果送回40H-44H。
CLR C
MOV R0,#40H ;指向加数最低位
MOV R1,#5OH ;指向另一加数最低位
MOV R2,#04H ;字节数作计数初值
LOOP1:MOV A,@R0 ;取被加数
ADDC A,@R1 ;两数相加,带进位
MOV @R0,A
INC R0 ;修改地址
INC R1
DJNZ R2,LOOPl ;未加完转LOOP1
JNC LOOP2 ;无进位转LOOP2
MOV @R0,#01H
LOOP2:RET
8.设计一个延时10秒的子程序
DEL: MOV R5,100
DEL0:MOV R6,200
DEL1:MOV R7,248
DEL2:DJNZ R7 DEL2
DJNZ R6 DEL1
DJNZ R5 DEL0
RET
中断实现定时1秒
ORG 0000H
LJMP START ;无条件长转移
ORG 000BH ;定时器0中断向量为000BH
LJMP INTTO ;
ORG 0030H ;
START:MOV TMOD,#02H ;定时器0,定时,工作方式2
SETB EA ;中断总允许
SETB ET0 ;允许定时器中断
MOV TH0,#06H ;计数初值
MOV TL0,#06H ;
SETB TR0 ;启动定时
MAIN:MOV R0,#100 ;
MOV R1,#20 ;
SJMP $ ;原地踏步
INTTO:DJNZ R1 ,LOOP1 ;寄存器减1不为0转移
MOV R1,#20 ; DJNZ R0,LOOP1 ; MOV R0,#100 ; CPL P1.0 ;指定位取反 LOOP1:RETI ;中断服务子程序返回
END
查询实现定时1秒
ORG 0000H
;LJMP MAIN
;ORG 0030H
;MAIN:MOV SP,#60H
MOV TMOD,#02H
MOV TL0,#06H
MOV TH0,#06H
MOV R0,#100
MOV R1,#20
SETB TR0
WAIT:JNB TF0,$
CLR TF0 DJNZ R1,WAIT MOV R1,#20 DJNZ R0,WAIT
MOV R0,#100
CPL P1.0
AJMP WAIT
END
自测题及参考答案:
一。填空题
1.MCS—51单片机的P0—P4口均是I/O口,其中的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的 和 ,在P0—P4口中, 为真正的双向口, 为准双向口。
2.MCS—5l单片机的堆栈区只可设置在,堆栈寄存器5P是位寄存器。
3.MCS—51单片机外部中断请求信号有电平方式和方式下,当采集到INT0、INT1的有效信号为 时,激活外部中断。
4.定时器/计数器的工作方式3是指的将8位计数器。而另一个定时器/计数器此时通常只可作为 使用。
5.MCS—96单片机的最大寻址空间是,该空间的地址范围为,系统上电及复位的程序入口地址为 ,芯片配置字节CCB的地址为 。
二、简答题(15分,每小题5分)
1.51系列单片机具有几个中断源,分别是如何定义的?其中哪些中断源可以被定义为高优先级中断,如何定义?
2.各中断源对应的中断服务程序的入口地址是否能任意设定?
3.如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置?请举例加以说明。
三、参数计算题(16分)
已知一单片机系统的外接晶体振荡器的振荡频率为11.059MHz,请计算该单片机系统的拍节P、状态S、机器周期所对应的时间是多少?指令周期中的单字节双周期指令的执行时间是多少?
四、改错题(共5分,每小题1分)
以给出的指令操作码为依据,请判断MCS—5l单片机的下列各条指令的书写格式是否有错误,如有请说明错误原因。
1.MUL R0R1
2.MOV A,@R7
3.MOV A,#3000H
4.MOVC @A+DPTR,A
5.LJMP #1000H
五、寻址方式(5分,每问1分)
说明MCS—51单片机的下列各条指令中源操作数的寻址方式(可直接在每条指令后面书写)
1.ANL A,20H
2.ADDC A,#20H
3.JZ rel
4.CLR C
5.RRA
六、使用简单指令序列完成以下操作(12分)
1.请将片外RAM20H—25H单元清零
2.请将ROM3000H单元内容送R7
七、编程题(18分)
已知一MCS—51单片机系统的片内RAM 20H单元存放了一个8位无符号数7AH,片外扩展RAM的8000H存放了一个8位无符号数86H,试编程完成以上两个单元中的无符号数相加,并将和值送往片外RAM的01H、00H单元中,同时将所编写程序运行完成后的数据和状态添入下表中给出的PSW的有关位以及
八、判读电路题(14分)
下图为MCS—51单片机系统中混合扩展多片存储器2764、6264芯片部分连线电路图。
试分析电路并回答下列问题:
1.请简单叙述2764芯片的功能、容量,在电路中起什么作用?
2.请简单叙述6264芯片的功能、容量,在电路中起什么作用?
3.请分析各片2764、6264所占用的单片机数据存储空间的地址范围是多少?
答案及评分标准
一、填空题(15分,每空1分)
1.并行 数据总线 地址总线 P0 P1—P3
2.片内数据存储区(器)
3.脉冲方式 低电平
4.定时器/计数器0 串行口的波特率发生器
5.64K 0000H—FFFFH 2080H 2018H
二、简答题(15分,每小题5分)
1.具有5个中断源,分别是外部中断INT0和外部中断INT1、定时器溢出中断0和定时器溢出中断1以及串行中断。通过对中断优先级寄存器IP的设置,每个中断源都可以被定义为高优先级中断。(6分)
2.各中断源的入口地址已经在中断地址区中被定义了,不能任意设定。(3分)
3.如果要将中断服务程序放置在程序存储区的任意区域,在程序中要通过在中断地址区的对应地址上设置跳转指令才可实现对中断服务程序的执行。
例如:外部中断O的中断服务程序INTOP放置在程序存储区的任意区域,此时,通过以下方式,可实现对中断服务程序的执行:(4分)
ORGO003H (2分)
JMP INTOP
列举其他中断跳转的例子也可,但叙述的中断源要与中断地址相对应才可得分,如外中断0对应0003H地址。
三、参数计算题(16分)
P=1/f=(1/11.059×106)=0.09×10-6s
=90ns
S=2P=2×90ns=180ns
机器周期=12P=12×90ns=1.08μs
双指令周期=2×机器周期=2.16μs
判题标准:每问4分,结果错,分值全扣;结果正确,量纲错或不写量纲,每问扣1分。
四、改错题:(共5分,每小题1分)
以给出的指令操作码为依据,请判断MCS—51单片机的下列各条指令的书写格式是否有错误,如有请说明错误原因。
1.MUL RoRl 乘法指令应使用A、B寄存器操作
2.MOV A,@R7 间接寄存器使用R7有误,间址寄存器只能使用R0、R1
3.MOV A, #3000H 8位累加器A不能接受16位数据
4.MOVC @A+DPTR,A MOVC指令为对程序存储区操作指令,累加器的内容不可通过变址方式送入程序存储器,两操作数写反了。
5.UMP #1000H 长转移指令中的操作数为16位转移地址,不能用立即数的形式来表达。
五、寻址方式(5分,每问1分)
说明MCS—51单片机的下列各条指令中源操作数的寻址方式(可直接在每条指令后面书写)
1.ANL A,20H 直接寻址
2.ADDC A, #20H 立即寻址
3.JZ rel 相对寻址
4.CLR C 位寻址
5.RRA 寄存器寻址
六、使用简单指令序列完成以下操作(12分,每小题6分)
1.请将片外RAM 20H—25H单元清零
MoV R0,#20H
MOV R7,#06H
CLR A
LOOP:MOVX @R0,A
INC R0
DJNZ R7,LOOP
2.请将ROM 3000H单元内容送R7
MOV DPTR, #3000H
CLR A
MOVC A,@A+DPTR
MOV R7,A
MOVX A,@DPTR ;取加数之一
ADD A,20H ;两数相加
MOV R0,#00H ;和值的低位送片外00H单元
MOVx @R0,A
INC R0
CLR A ;计算和值的高位
ADDC A,#00H
MOVx @R0,A ;高位送片外01H单元
RET
编程要考虑将进位位的值作为结果的一部分取出来。采用其他编程方式也可以,但结果是不会改变的,和值=100H
八、判读电路题(14分)
1.请简单叙述2764芯片的功能、容量,在电路中起什么作用?(3分)
2764为EPROM型存储器,其容量为8K,在电路中通常是作为程序存储器使用。
2.请简单叙述6264芯片的功能、容量,在电路中起什么作用?(3分) 6264为随机存储器,其容量为8K,在电路中通常是作为数据存储器使用。
3.请分析各片2764、6264所占用的单片机数据存储空间的地址范围是多少? U3:0000H—1FFFH (8分,各2分)
U4:2000H—3FFFFH
U5:Co00H—DFFFH
U6:E000H—FFFFH