资源描述
单片机复习资料------陈通杭
一、填空题:
1、89C51内部有 16 字节可位寻址的字节单元,共有 128 个可位寻址位,位地址范围是从 00H ~ 7FH。
2、若MSC-51单片机的fosc=6MHz,则其执行一条除法指令的时间为 8µs 。
注:机器周期Tcy=12/fosc=12/6×106=2µs;乘、除法指令占用4个机器周期,固T=2×4µs=8µs。
3、复位操作后,89C51程序执行的起始地址是 0000H 。 注:见附6 即PC复位后的值
4、单片机的定时/计数器作为计数方式时,外部事件的最高计数频率为晶振频率的 1/24 。
5、 用位寻址方式禁止外部中断1的中断使能: CLR EX1 ;允许T0的计数溢出中断使能: SETB ET0 ;
设置外部中断1中断为高优先级中断:SETB PX1 ;清除串行口输出中断标志: CLR ES 。见附表
6、MCS51单片机指令寻址方式有:寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、基址寄存器加变址寄存器寻址、位寻址、相对寻址 7种。访问片外RAM时,采用寄存器间接寻址方式,访问ROM时,采用的是寄存器寻址方式。
7、MCS-51单片机的程序计数器PC是一个 16 位的计数器,寻址范围达到 64KB 。
8、计算机中按功能把总线分为 数据总线(DB) 、 控制总线(CB)和 地址总线(AB) 。
9、89C51用于区分内外部程序存储器的引脚是,使用片内存储器应将其置为 高 电平。
10、单片机内部数据传送指令 MOV 用于单片机内部RAM单元及寄存器之间,单片机与外部数据传送指令 MOVX 用于单片机内部与外部RAM或I/O接口之间, MOVC 指令用于单片机内部与外部ROM之间的查表。
11、编程序时,一般在中断服务子程序和调用子程序中需用保护和恢复现场,保护现场用 PUSH 指令, 恢复现场用 POP 指令。
12、堆栈指针SP始终指示堆栈的 栈顶 地址,当有压入或弹出堆栈操作时,SP的内容将随之改变。程序计数器PC的内容将始终指示下一条要执行指令地址,所以只要改变PC的内容将改变程序的运行路径。
13、51单片机位寻址区的单元地址是从20H单元到27H单元,若某位地址是09H,它所在单元地址是21H。
14、在MCS-51系列单片机中8031型号的单片机需要扩展外部程序存储器,且管脚必须接 低电平 。
15、单片机定时器的工作方式由 TMOD 寄存器决定,定时器的启动溢出由 TCON 寄存器控制。
16、中断服务程序的返回指令是 RETI ,子程序的返回指令是 RET 。
17、将89C51片外程序存储器内的数据传送给A,可以采用的指令是 MOV A,@DPTR 。
18、变址寻址是以 数据指针DPTR 或 程序计数器PC 作为基址寄存器,以 累加器A作为变址寄存器,并以两者的内容相加形式的 16 位地址操作数地址,以达到访问数据表格的目的。
19、设(R0)=20H,累加器A的内容为36H,内部RAM的20单元内容为75H, 注:XCHD为半字节
执行指令:XCHD A,@R0 执行结果为:(20H)= 76H ,(A)= 75H 。 交换指令
20、通过堆栈操作实现子程序调用,首先要把 PC 的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到 PC 。
21、访问SFR,只能使用 直接 寻址方式。
22、把累加器的中间4位清“0”的指令为 ANL A,#0C3H 。
23、若(IP)=00010100B,则优先级最高者为,最低者为 T1 。 注:见附11
24、在串行口通信中,收发双方对波特率的设定应该是 相等 的。
25、11条地址线可选 2KB 个存储单元,16KB存储单元需要 14 条地址线。
二、判断题:
1、89C51复位操作后,(SP)=00H。 ( × ) 注:见附6
2、89C51 P3.1口的第二功能是作为串行口的数据输入端口。 ( × ) 注:见附1
3、指令CLR 09H,划线部分的寻址方式是位寻址。 ( √ )
4、定时/计数器T0可以用作设计波特率发生器。 ( × ) 注:T1可以
5、定时/计数器T0在方式3时,TH0必须用作定时器功能。 ( √ ) 注:课本P108
6、程序计数器PC中装的内容是当前正在执行指令的地址。 ( × )
7、DPTR是可以访问的,而PC不能访问。 ( √ )
注:PC没有地址,不可位寻址,也不能访问。
8、在89C51单片机中,一个机器周期等于1µs。 ( × )
9、定时器0、定时器1、外部中断0、外部中断1、串行口中断的优先级顺序是可实现的。( √ )
注:如果前面两项调换下顺序,定时器1、定时器0······就不可能实现,见附5。
10、89C51共有21个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的。( × )
注:只有字节地址的末位是0H或8H的才可进行位寻址。
三、选择题:
1、89C51复位操作后,(P0)= D 。 注:见附6
A、00H B、0FH C、F0H D、FFH
2、若要扩展10KB的ROM,则至少需要 C 根地址信号线。
A、12 B、13 C、14 D、15
3、安排2764芯片内第一个单元的地址是1000H,则该芯片的最末单元的地址是 D 。
A、1FFFH B、17FFH C、27FFH D、2FFFH
注:EPROM的典型芯片是27系列产品,2764(8KB×8)、27128(16KB×8)、27256(32KB×8)
27512(64KB×8)。型号名称“27”后面的数字表示其位存储容量。如果换算成字节容量,只需将该数字除以8即可。例如,“2764”中的“27”后面的数字为“64”,64÷8=8KB。
4、在执行中断返回指令时,从堆栈弹出的断点地址被送给 D 。
A、A B、CY C、PC D、DPTR
5、89C51单片机的外部数据总线功能由 A 实现。 注:P0口地址/数据分时复用
A、P0口 B、P1口 C、P2口 D、P3口
6、下列 B 执行后,不会影响进位位。
A、ADD A,#30H B、INC 30H C、SUBB A,#30H D、MUL AB
注:INC不影响PSW中的任何标志位;DEC只影响P标志位。
7、执行指令MOVX A , @DPTR时,、引脚的电平 C 。
A、高电平 高电平 B、低电平 高电平
C、高电平 低电平 D、低电平 低电平
8、89C51单片机中,用于设置串行口工作方式的寄存器为 C 。 注:见附7、8、12
A、TOMD B、TCON C、SCON D、PCON(电源控制)
9、89C51单片机中,外部中断1的中断标志为 B 。 注:见附7
A、IE0 B、IE1 C、TF0 D、TF1
10、下列 C 指令采用的是相对寻址方式。
A、DEC 30H B、CPL 30H C、SJMP 30H D、CLR A
11、8031单片机内部集成有 A 容量的程序存储器。
A、0KB B、2KB C、4KB D、8KB
12、89C51 P3.0口的第二功能是 A 。 注:见附1
A、串行口的数据输入端口 B、串行口的数据输出端口
C、外部中断0输入端口 D、外部中断1输入端口
13、89C51单片机中,定时/计数器1的计数溢出中断标志为 D 。 注:见附7
A、IE0 B、IE1 C、TF0 D、TF1
14、MCS-51单片机的外部中断0的中断入口地址为 A 。 注:见附4,这5个中断入口地址须记住
A、0003H B、000BH C、0013H D、001BH
15、下列指令中属于位寻址方式的是 B 。
A、MOV A,30H B、MOV C,30H C、MOV 20H,30H D、MOV A,#30H
16、MCS-51单片机在访问外部数据存储器时,其地址指针可采用 A 。注:DPTR为数据指针
A、DPTR B、PC C、PSW D、SP
17、若RS0=0,RS1=1,要想把寄存器R0的内容压入堆栈,可以使用 A 指令。注:见附3
A、PUSH 10H B、PUSH @R0 C、PUSH R0 D、PUSH 08H
18、89C51有四个工作寄存器区,由PSW状态字中的RS1、RS0两位的状态来决定,单片机复位后,若执行 SETB RS1 指令,此时只能使用 C 区的工作寄存器。 注:见附3
A、0区 B、1区 C、2区 D、3区
19、MCS-51单片机的定时/计数器工作方式1是 B 。 注:见附11
A、8位计数器结构 B、16位计数器结构 C、13位计数器结构 D、2个8位计数器结构
20、在CPU内部,反映程序运行状态或反映运算结果一些特征的寄存器是 C 。
A、ACC B、PC C、PSW(8位) D、SP
21、读片外部数据存储器时,不起作用的信号是 C 。
A、 B、 C、 D、ALE
注:引脚为片外程序存储器的读选通信号;在访问外部RAM时,信号无效。
22、MSC-51单片机的堆栈区是设置在 C 中。
A、片内ROM区 B、片外ROM区 C、片内RAM区 D、片内RAM区
23、下列数据自定义的数表中, B 是错误的。
A、DW “AA” B、DW “A” C、DW “OABC” D、DW OABCH
注:B项要用字节定义命令,应改为DB “A”
24、单片机的P0、P1口作输入用途之前必须 A 。
A、在相应端口先置1 B、在相应端口先置0 C、外接高电平 D、外接上拉电阻
注:4个8位可编程并行I/O口(P0、P1、P2、P3)作为通用的I/O口使用时,只有P0口需外接上拉电阻,其它并行口内部本身具有上拉电阻,固外部不需再接上拉电阻。
25、在进行BCD码运算时,紧跟加法运算指令后面的指令必须是 B 指令。
A、ADD B、DA A C、ADDC D由实际程序确定 注:DA为十进制调整指令
26、在MSC-51单片机中,需要外加电路实现中断撤除的是 D 。
A、定时中断 B、外部串行中断 C、脉冲方式的外部中断 D、电平方式的外部中断
注:外部串行中断只能使用软件撤销,定时中断和脉冲方式的外部中断均为自动撤销。
27、调用子程序、中断响应过程及转移指令的共同特点是 B 。
A、都能返回 B、都通过改变PC实现转移 C、都将返回地址压入堆栈 D、都必须保护现场
28、89C51单片机中,用于设置串行口工作方式的寄存器为 C 。
A、TOMD B、TCON C、SCON D、PCON
29、通过串行口发送或接收数据时,在程序中应使用 C 。
A、MOVC B、MOVX C、MOV D、XCHD
30、串行口工作方式1的波特率是 D 。 注:见附9,只有方式0是固定的,为fosc/12
A、固定的,为fosc/32 B、固定的,为fosc/16
C、固定的,为fosc/64 D、可变的,通过定时器/计数器T1的溢出率设定
31、区分89C51单片机片外程序存储器和片外数据存储器的最可靠方法是 D 。
A、看其位于地址范围的低端还是高端 B、看其离89C51芯片的远近
C、看其芯片的型号是ROM还是RAM D、看其是与信号连接还是与信号连接
四、程序阅读:
1、MOV 20H ,#0A3H 2、 MOV SP,#49H
MOV A ,#0B6H MOV 30H,#3FH
MOV R0 ,#20H MOV 31H,#48H
MOV R2 ,#7EH CLR A
ORL A ,R2 PUSH Acc
ANL A ,@R0 PUSH 31H
SWAP A POP Acc
CPL A POP 30H
XRL A,#0F5H SJMP $
ORL 20H,A 执行后,(A)= 48H ; (30H)= 00H ;
SJMP $ (31H)= 48H ;(SP)= 50H 。
执行后, (A)= 20H ;(20H)= A3H 。
3、设(R0)=7FH,内部RAM的(7EH)=00H,(7FH)=40H,执行下列程序:
DEC @R0
DEC R0
DEC @R0 执行结果为:(R0)= 7EH ,(7EH)= 0FFH,(7FH)= 3FH 。
4、假定A=38H,(R0)=17H,(17H)=34H,执行以下指令:
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A 执行结果:(A)= DBH 。
5、下列程序:
MOV R2,#8
TOGGLF: CPL P1·7
DJNZ R2,TOGGLF
执行结果:将改变P1·7的值 8 次,(R2)= 0 。
五、程序补充:
1、将片内部30H~60H单元中的内容传送到以2100为起始地址的存储区。注:此题可能考整道编程。
MOV R0,#30H 或 MOV R0,#30H
MOV DPTR,#2100H MOV R1,#00H
MOV R7,#31H MOV R7,#31H
L1: CLR A
MOV A,@R0 L1:
MOVX @DPTR,A MOV A,@R0
INC R0 MOVX @R1,A
INC DPTR INC R0
DJNZ R7,L1 INC R1
DJNZ R7,L1
2、查表法,求y=x!(x=0~7),x存放在30H中,y存放在40H、41H。
MOV A , 30H
CLR R7
MOV R7 , A
MOV DPTR,,#TAB
MOVC A ,@A+DPTR
MOV 40H , A
MOV A , R7
INC A
MOVC A ,@A+DPTR
MOV 41H ,A
SJMP $
TAB:DW 1,1,2,6,24
DW 120,720,5040
六、简答题:
1、说明89C51单片机的引脚的作用,该引脚接高电平和低电平时各有何种功能?
答:当脚为高电平时,单片机读片内程序存储器(4KB Flash),但在PC值超过0FFFH(即超出4KB地址范围)时,将自动转向读外部程序存储器内的程序。当脚为低电平时,对程序存储器的读操作只限定在外部程序存储器,地址为0000H~FFFFH,片内的4KB Flash程序存储器不起作用。
2、如果采用的晶振频率为3MHZ,定时器/计数器工作方式0、1、2下,其最大定时时间各为多少?
答:因为机器周期Tcy=12/fosc=12/3×106=4µs 注:见附12
所以定时器/计数器工作方式0下,其最大定时时间为TMAX=213×Tcy=213×4×10-6=32.768ms
定时器/计数器工作方式1下,其最大定时时间为TMAX=216×Tcy=216×4×10-6=262.144ms
定时器/计数器工作方式0下,其最大定时时间为TMAX=28×Tcy=28×4×10-6=1.024ms
3、当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭?
答:由T1(P3.5)口控制定时器T1的启动和关闭。
七、编程题:
1、编写程序,将外部数据存储器中的4000H~40FFH单元全部清“0”。
ORG 0000H
MAIN: MOV A,#0 ;0给A
MOV R0,#0FFH ;设置循环次数
MOV DPTR,#4000H ;设置数据指针的初值
LOOP: MOVX @DPTR,A ;当前单元清“0”
INC DPTR ;指向下一个单元
DJNZ R0,LOOP ;是否结束
END
2、设单片机晶振频率fosc=12MHz,使用定时器T1以工作方式1产生周期为400µs的等宽方波,并在P1.0输出,用中断方式实现编程。 注:各标志位的设置见附7、12,此题可参考课本P103例6-1
(1)计算初值 机器周期=12/12MHz=1µs=1×10-6s
设需要装入T1的初值为X,则有(216-X)×1×10-6=400µs/2=2×10-4s→X=65336 16进制为FF38H
(2)程序设计
MOV TMOD,#10H;设置T1为方式1 或 MOV TMOD,#10H
LOOP:MOV TH1, #0FFH;T1置初值 MOV TH1 ,#0FFH
MOV TL1, #38H; MOV TL1 ,#38H
SETB TR1;接通T1 MOV IE ,#88H
LOOP1: JNB TF1,LOOP1 SETB TR1
CLR TR1 MOV TH1 ,#0FFH
CPL P1.0 MOV TL1 ,#38H
SJMP LOOP CLP P1.0
RETI
七、应用题:
常用的存储器地址空间分配方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法)。
①线选法
例 1、某一系统,需要外扩8KB的EPROM(2片2732),4KB的RAM(2片6116),这些芯片与MCS-51单片机地址分配有关的地址线连线,电路如下图:
2732:4KB程序存储器,有12根地址线A0~A11,分别与单片机的P0口及P2.0~P2.3口相连。2732(1)的片选端接A15(P2.7),2732(2)的片选端接A14(P2.6)。
当要选中某个芯片时,单片机P2口对应的片选信号引脚应为低电平,其它引脚一定要为高电平。
6116:2KB数据存储器,需要11根地址线作为单元的选择,而剩下的P2口线(P2.4~P2.7)作为片选线。
两片程序存储器的地址范围:
2732(1)的地址范围:7000H~7FFFH;
2732(2)的地址范围: B000H~BFFFH;
6116(1)的地址范围:E800H~EFFFH;
6116(2)的地址范围:D800H~DFFFH。
②译码法
例1 、要扩8片8KB的RAM 6264,如何通过74LS138把64KB空间分配给各个芯片?
例2 、 用74LS138把64K空间全部划分为每块4KB,如何划分?
例3 、请写出图8-18中4片程序存储器27128各自所占的地址空间。
答:图中采用了译码法。
4片地址分别为0000H~3FFFH、4000H~7FFFH、8000H~BFFFH、C0000H~FFFFH。
附1
40只引脚双列直插封装(DIP)。
1)ALE/(30脚):
ALE为地址锁存允许,可驱动8个LS型
TTL负载。
2)(29脚):外部程序存储器的读选通
信号。可驱动8个LS型TTL负载。
3)为内外程序存储器选择控制端。
=1,访问片内程序存储器
=0,单片机则只访问外部程序存储器
P3口的第二功能定义
端口引脚 第二功能
P3.0 RXD(串行输入口)--输入
P3.1 TXD(串行输出口)--输出
P3.2 (外部中断0)--输入
P3.3 (外部中断1)--输入
P3.4 T0(定时器0外部计数输入)
P3.5 T1(定时器1外部计数输入)
P3.6 (外部数据存储器写选通)--输出
P3.7 (外部数据存储器读选通)--输出
附 2
(1)Cy(PSW.7)进位标志位
(2)Ac(PSW.6) 辅助进位标志位,用于BCD码的十
进制调整运算。
(3)F0(PSW.5)用户使用的状态标志位。
(4)OV(PSW.2)溢出标志位
如果位6有进位,而位7没有进位,或者位7有进位,而位6没有,则溢出标志
OV置“1”,否则OV清“0”。
溢出标志位OV的状态,只有在带符号数加法运算时才有意义。当两个带符号数相加时,OV=1,表示加法运算超出了累加器A所能表示的带符号数的有效范围。
(5)PSW.1位: 保留位,未用
(6)P(PSW.0)奇偶标志位
P=1,A中“1”的个数为奇数
P=0,A中“1”的个数为偶数
(7)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。
附 3
RS1 RS0 所选的4组寄存器
0 0 0区(内部RAM地址00H~07H)
0 1 1区(内部RAM地址08H~0FH)
1 0 2区(内部RAM地址10H~17H)
1 1 3区(内部RAM地址18H~1FH)
附4 附5
5种中断源的中断入口地址 中断源 中断级别
外中断0 0003H 外部中断0 最高
定时器T0 000BH T0溢出中断
外中断1 0013H 外部中断1
定时器T1 001BH T1溢出中断
串行口 0023H 串行口中断 最低
附6
附7
TCON:定时器/计数器的控制寄存器,字节地址为88H
1)IT0—选择外部中断请求0为跳沿触发方式还是电平触发方式:
IT0=0,为电平触发方式。IT0=1,为跳沿触发方式。可由软件置“1”或清“0”。
2)IE0—外部中断请求0的中断请求标志位。
IE0=0,无中断请求。IE0=1,外部中断0有中断请求。
3)IT1—外部中断请求1为跳沿触发方式还是电平触发方式,意义与IT0类似。
4)IE1—外部中断请求1的中断请求标志位,意义与IE0类似。
5)TF0—T0溢出中断请求标志位。
6)TF1—T1的溢出中断请求标志位,功能和TF0类似。
7) TR1、TR0——计数运行控制位
1:启动定时器/计数器工作 0:停止定时器/计数器工作
附8
SCON为串行口控制寄存器,字节地址为98H
(
1)SM0、SM1——串行口4种工作方式的选择位
SM0 SM1 方式 功 能 说 明
0 0 0 同步移位寄存器方式(用于扩展I/O口)
0 1 1 8位异步收发,波特率可变(由定时器控制)
1 0 2 9位异步收发,波特率为fosc/64或fosc/32
1 1 3 9位异步收发,波特率可变(由定时器控制)
(2)TI—发送中断请求标志位。
(3)RI—接收中断请求标志位。
附9
定时器T1产生波特率的计算
(1)方式0波特率=时钟频率fosc×1/12,不受SMOD位的值的影响。若fosc=12MHz,波特率为fosc/12即1Mb/s。
(2)方式2波特率=(2SMOD/64)×fosc
若fosc=12MHz: SMOD=0 波特率=187.5kb/s; SMOD=1 波特率=375kb/s
(3)方式1或方式3时,波特率为:
波特率=(2SMOD/32)×定时器T1的溢出率
定时器T1的溢出率=计数速率/(256-X)=
附10
中断允许寄存器IE,字节地址为A8H
(1)EA:中断允许总控制位 (4)EX1:外部中断1中断允许位
0:CPU屏蔽所有的中断请求(CPU关中断); 0:禁止外部中断1中断;
1:CPU开放所有中断(CPU开中断)。 1:允许外部中断1中断。
(2)ET1:定时器/计数器T1的溢出中断允许位 (5)ES:串行口中断允许位
0:禁止T1溢出中断; 0:禁止串行口中断;
1:允许T1溢出中断。 1:允许串行口中断。
(3)ET0:定时器/计数器T0的溢出中断允许位 (6)EX0:外部中断0中断允许位。
0:禁止T0溢出中断; 0:禁止外部中断0中断;
1:允许T0溢出中断。 1:允许外部中断0中断。
附11
中断优先级寄存器IP,其字节地址为B8H
1)PS——串行口中断优先级控制位 4)PT0——定时器T0中断优先级控制位
1:高优先级中断; 1:高优先级中断;
0:低优先级中断。 0:低优先级中断。
2)PT1——定时器T1中断优先级控制位 5)PX0——外部中断0中断优先级控制位
1:高优先级中断; 1:高优先级中断;
0:低优先级中断。 0:低优先级中断。
3)PX1——外部中断1中断优先级控制位
1:高优先级中断;
0:低优先级中断。
附12
工作方式控制寄存器TMOD
(1)M1、M0——工作方式选择位
M1 M0 工 作 方 式
0 0 方式0,13位定时器/计数器。
0 1 方式1,16位定时器/计数器。
1 0 方式2,8位常数自动重新装载
1 1 方式3,仅适用于T0,T0分成两个8位计数器,T1停止计数。
(2) ——计数器模式和定时器模式选择位
0:定时器模式。 1:计数器模式。
特别提醒:
希望大家如果遇到资料里有不懂的题不要拿去问老师,最好先问其他同学或问我,如果真的都不清楚,最好把题目单独拎出来去问老师,不要一整套资料拿去问,不然老师看到我们都有这些资料肯定会改题,到时就不能保证会考到原题了,这样我的辛苦就白费了,对这门课程不怎么懂的同学也会比较麻烦,里面肯定会有原题,把这些都弄明白了相信都能过,特别是附表的那些必须记住,还有做实验的时候最好也别带过去,小心驶得万年船!谢谢合作!
这一页打印时记得删了!
15
展开阅读全文