10、AT89C51单片机有多少特殊功能寄存器?
21
11.什么叫堆栈?堆栈指示器SP的作用是什么?单片机初始化后SP中内容是什
么?在程序设计时,为什么要对SP重新赋值?
堆栈就是设置在片内RAM中的一段存储区域,它遵循先入后出的原则。
SP就是一个用来指示栈顶位置的8位寄存器,它指示出堆栈顶部在内部RAM块中的位
置。SP初始化07H,使得堆栈事实上由08H单元开始。
考虑到08H~1FH分属于工作寄存器区1~3,若程序设计要用到这些区,则最好把SP值改到通用RAM区,即2FH或更大值。但是,如果堆栈指针初始化时设置在这个区域,就要留出足够的字节单元作为堆栈区,以防止在数据存储时,破坏了堆栈的内容。
12、数据指针DPTR和程序计数器PC都是16位寄存器,它们有什么不同之处?
①数据指针DPTR 数据指针DPTR是一个16位的寄存器,由2个8位特殊功能寄存器DPH和DPL拼装而成。DPH作DPTR的高8位,DPL作DPTR的低8位。因此,DPTR既可作为一个16位寄存器来使用,也可以作为二个独立的8位寄存器DPH和DPL使用。DPTR用作地址指针用来存放片内、片外ROM和片外RAM的地址,可寻址范围为64K地址空间寻址。
②程序计数器PC 程序计数器PC是一个16位加1计数器,用来存放将要执行的指令地址,编码范围为0000H~FFFFH共64K。
13、8031单片机在应用中,P2和P0口能否直接作为输入输出口连接开关、指
示灯之类的外围设备?为什么?
不能,8031单片机芯片内无程序存储器, P0口需用作数据总线和低8位地址总线来扩
展外部程序存储器。
14、AT89系列单片机的复位方式有几种?复位后单片机的状态如何?
有两种复位方式:手动按钮复位和上电复位
在SFR中,除了端口锁存器、堆栈指针SP和串行口的SBUF外,其余寄存器全部清零,端口琐存器的复位值为0FFH,堆栈指针值为07H,SBUF内为不定值。内部RAM的状态不受复位影响,在系统启动时,RAM的内容是不定的。
15、AT89系列单片机有哪几种省电方式?
有两种省电方式:空闲方式和掉电方式
1、简述下列基本概念:指令、指令系统、程序、汇编语言指令
指令:指示计算机执行某种操作的命令。指令系统:指一台计算机所具有的全部指令的集合。程序:各种指令的有序组合。汇编语言指令:用助记符形式书写的指令,汇编语言指令由操作码和操作数两部分组成。
2、MCS-51单片机有那几种寻址方式?这几种寻址方式是如何寻址
16
有七种寻址方式:① 立即寻址 ② 直接寻址 ③ 寄存器寻址④ 寄存器间接寻址 ⑤ 变址寻址 ⑥ 相对寻址 ⑦ 位寻址
3、DA A指令有什么作用?怎样使用?
DA A ;这条指令是进行BCD码运算时,跟在ADD或ADDC指令之后,将相加后存放在累加器中的结果进行修正。
修正的条件和方法为:
若(A0~3)>9或(AC)=1,则(A0~3)+06H→(A0~3);
若(A4~7)>9或(CY)=1,则(A4~7)+06H→(A4~7)。
若以上二条同时发生,或高4位虽等于9 ,但低4位修正后有进位,则应加66H修正。
4、已知A=C9H,B=8DH,CY=1。执行指令“ADDC A,B”结果如何?执行指令“SUBB
A,B”结果又如果?
A=56H, B=8DH, CY=0; A=3CH, B=8DH, CY=1.
5、若需访问特殊功能寄存器和片外数据存储器,就采用那些寻址方式? 寄存器间接寻址.
6、在片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48)H=90H,
试分析下段程序中各条指令的作用,说出按顺序执行完指令后的结果:
MOV A,40H ;把40单元的内容送往累加器A MOV R1,A ;把累加器A的内容送往R1 MOV P1,#0F0H ;把立即数F0送往P1口
MOV @R1,30H ;把30单元的内容送往以R1的内容为地址的单元 MOV DPTR,#1234H ;把立即数1234送往DPTR MOV 40H,38H ;把38单元的内容送往40单元 MOV R1,30H ;把30单元的内容送往R1 MOV 90H,R1 ;把R1的内容送往90单元 MOV 48H,#30H ;把立即数30送往48单元
MOV A,@R1 ;把以R1的内容作为地址送往累加器A MOV P2,P1 ;把P1口的内容送往P2口
7、试说明下段程序中每条指令的作用,当指令执行完后,R0中的内容是什么?
MOV R0, #0AFH XCH A, R0 SWAP A
XCH A, R0 (R0)=0FAH
8、把累加器A中的低4位送到外部RAM的2000H单元中,试编程序。
ANL A,#OFH MOV DPTR,#2000H MOVX @DPTR,A
9、利用乘法指令编写15H×33H的程序,将乘积的高8 位存入31H单元,低8
位存入30H单元
MOV A,#15H MOV B,#33H MUL A,B MOV 31H,B MOV 30H,A
10、编程将片内35H~55H单元中的内容送入到以3000H为首的存储区中。
M: MOV R0,#35H MOV R1,#21H MOV DPTR,#3000H
LOOP:MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R1,LOOP RET
11、设5AH单元中有一变量X,请编写计算下述函数式的程序,结果存入5B单元。
17
?X2?1?2Y=?X?8?41?X?1010?X?15 X?15
UAR DATA 5AH FUNC DATA 5BH
STATR:MOV A,VAR CJNE A,#0AH,L1
L4:LCALL SQU ADD A,#08H LJMP COM
L1:INC L2 LCALL SQUARE CLR C SUBB A,#01H LJMP COM L2:CJNE A,#0FH,L3 LJMP L4 L3:JNC L5 LJMP L4 L5:MOV A,#41H
COM:MOV FUNC,A RET
SQU:MOV A,VAR MOV B,A MUL AB RET
12、从20H单元开始有一无符号数据块,其长度在20H单元中,求出数据块中
最小值,并存入21H单元。
MIN: MOV R0,#21H MOV R2,#20H MOV A,R2 MOV R1,A DEC R2 MOV A,@R1
LP0: MOV R3,A INC R1 CLR C SUBB A,@R1 JC LP1 MOV A,@R1 LP1: MOV A,R3 LP2: DJNZ R2,LP0 MOV @R0,A RET 1、什么是中断、中断源和中断优先级?
中断是指中央处理器CPU正在处理某件事情的时候,外部发生了某一事件,请求CPU迅速去处理,CPU暂时停止当前的工作,转入处理所发生的事件,处理完以后,再回到原来被停止的地方,继续原来的工作。这样的过程称为中断。
中断源是指产生中断的请求源。 一般计算机系统允许有多个中断源,当几个中断源同时向CPU请求中断,要求服务的时候,就存在CPU优先响应哪一个中断源请求的问题,一般计算机根据中断源(所发生的实时事件)的轻重缓急排队,优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别。
2、中断响应时间是否为确定不变的?为什么?
答:不是确定不变的。
INT0和INT1电平在每一个机器周期的S5P2被采样并锁存到IE0、IEl中,这个新置入
的IE0、IEl状态等到下一个机器周期才被查询电路查询到。如果中断被激活,并且满足响应条件,CPU接着执行一条硬件子程序调用指令以转到相应的服务程序入口,该调用指令本身需两个机器周期。这样,在产生外部中断请求到开始执行中断服务程序的第一条指令之间,最少需要三个完整的机器周期。
如果中断请求被前面列出的三个条件之一所阻止,则需要更长的响应时间。这样,在一个单一中断的系统里,外部中断响应时间总是在3~8个机器周期之间。
3、中断响应后,是怎样保护断点和保护现场的?
响应中断时,先置位相应的优先级状态触发器(该触发器指出CPU开始处理的中断优先级别),然后执行一条硬件子程序调用,使控制转移到相应的入口,清0中断请求源申请标
18
志(TI和RI除外)。接着把程序计数器的内容压入堆栈(但不保护PSW),将被响应的中断服务程序的入口地址送程序计数器PC。
4、AT89C51有几个中断源?有几级中断优先级?各中断标志是如何产生的?又是如何清除的?响应中断时,各中断源中断入口地址是多少?
AT89C51单片机有5个中断源,具有2级中断优先级。 中断源 外部中断0
入口地址
0003H 定时器T0 000BH
001BH
外部中断1 0013H 定时器Tl
串行口中断 0023H
5、单片机片内定时器与计数器的主要区别是什么?
定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数,由于脉冲周期也固定,由计数值可以计算出计数时间,有定时的功能;
计数器是对外部输入的非固定频率的脉冲计数,由于脉冲周期无规律,就无法计算时间,只能计数脉冲个数。
6、设晶振频率fosc=12MHz,AT89C51定时器0的方式0、方式1、方式2的最大定时时间分别为多少?
方式0 13位定时器最大定时间隔=2×1μS=8.192ms 方式1 16位定时器最大定时间隔=216×1μS=65.536ms 方式2 8位定时器最大定时间隔=28×1μS=256μS
13
7、设晶振频率=6MHz,利用定时器0的方式1在P1.0产生一串50Hz的方波。定时器溢出时采用中断方式处理。
解:T=1/F=1/50=0.02=20ms (2-N)×2us=10000 2-N=5000
N=216-5000=60536 N=EC78H ORG 0000H LJMP START ORG 000BH AJMP DS90 ORG 0030H START: MOV SP,#60H MOV TMOD,#01H MOV TH0,#0EC, MOV TL0,#78H SETB ET0 SETB EA SETB TR0 SJMP $ DS90: CPL P1.0 RETI
16
16
8、并行数据通信与串行数据通信各有什么特点?分别适用于什么场合?
基本的通信方式有两种:a.并行方式,数据的各位同时传送;b.串行方式,数据一位一位顺序传送,
并行通信通过并行输入/输出接口进行,数据有多少位就要有同样数量的传送线。并行通信的优点是处理速度快,缺点是传输线多。因此并行传输适用于近距离传输、处理速度快的场合。
串行通信借助于串行输入/输出接口实现,只要一条传输线。故串行通信节省传送线,特别是当位数多和长距离传送时,这个优点就更为突出。
9、串行异步通信的数据帧格式是怎样的:这种通信方式的主要优缺点是什么?
异步通信 这种方式在传送数据时,用一个起始位表示一个字符的开始,用一个停止位表示字符的结束,如图所示。由起始位到停止位的所有位构成一个字符的全部信息,称为一帧。每一帧包括以下几部分:
(1)起始位 它标志传送数据的开始,一般为低电平,占一位。
(2)数据位 要传送的字符,一般是7位(ASCII码),由低位到高位传送。
(3)奇偶校验位 为了校验串行传送的正确性,一般都设有奇偶校验位,占一位。 (4)停止位
异步通信的特点是传送数据以帧为单位,每帧都有一定的格式。都是以起始位开始,以
19
停止位结束,每帧的长度预先选定。当线路不发送数据时处于停止位电平。
1、8031单片机为核心,对其扩展16KB的程序存储器,画出硬件电路并给出存储器的地址分配表。
电路图:
P2.5~P2.0 8031 ALE EA P0 Q0~Q7 G 373 E D0~D7 A7~A0 A13~A8 CS 27128 D7~D0 OE PSEN
8031引脚:P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 2.1 P2.0 P0.7…… P0.0 地址线: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
27128:0 0 0 0 0 0 0 0 0…0
0 0 1 1 1 1 1 1 1…1地址为:0000H~3FFFH
2、采用统一编址的方法对8031单片机进行存储器扩展。要求用一片2764、一2864和一片6264,扩展后存储器的地址应连续,试给出电路图及地址分配表。
电路图:
E3 P2.7 C Y0 P2.6 B B8 Y1 +5V P2.5 A Y2 E2 E1 P2.4~P2.0 8031 ALE Q0 ~ Q7 A7~A0 A12~A8 CS 624 D7~D0 WR RD A7~A0 A12~A8 CS 2864 D7~D0 OE A7~A0 A12~A8 CS 2764 D7~D0 OE G 373 E D0 ~ D7
P0 WR EA RD PSEN 8031引脚:P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7……P0.0
地址线:A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 2764:0 0 0 0 0 0 0 0 0...0
20