1、EA :内外程序存储器选择控制端。
输入高电平,CPU访问内部程序存储器(4K)。PC值超过0FFFH时,将自动执行片外程序存储器的程序。 输入低电平,CPU仅访问片外程序存储器。
注意:对于8031来说此脚必须接地。 因为8031没有程序存储器
2、时钟周期(振荡周期) 时钟周期是计算机中最基本的、最小的时间单位。它定义为时钟脉冲频率的倒数。CPU完成这每一个基本操作所需的时间定义为机器周期。 指令周期定义:执行一条指令所需的时间。 MCS-51的指令周期一般只有1—2个机器周期,只有乘、 除两条指令占4个机器周期。当用12MHz晶体作主振频率时,执行一条指令的时间,也就是一个指令周期为1us、2us及4us。
3、单片机作为微型机的一个主要分支,在结构上的最大特点就是把CPU、存储器、定时器和多种输入输出接口电路集成在一块超大规模集成电路芯片上。 4、【例5.4】用定时器T1的方式2对外部计数,要求每计满100个数,将P1.0引脚信号求反. 解:P3.5引脚输入外部信号,每发生1次负跳变计数器加1,每输入100个脉冲,计数器溢出中断,将P1.0引脚求反. ORG 0000H
LJMP MAIN ORG 001BH CPL P1.0 RETI ORG 0100H
MAIN: MOV TMOD,#60H MOV TL1,#9CH MOV TH1,#9CH SETB TR1 SETB ET1 SETB EA HERE: AJMP HERE 5、例7:程序名 :MAX
功能 :查找内部RAM中无符号数据块的最大值
入口参数:R1指向数据块的首地址,数据块长度存放在工作寄存器R2中 出口参数:最大值存放在累加器A中 占用资源:R1,R2,A,PSW MAX: PUSH PSW CLR A ;清A作为初始最大值 LP: CLR C ;清进位位 SUBB A,@R1 ;最大值减去数据块中的数 JNC NEXT ;小于最大值,继续 MOV A,@R1 ;大于最大值,则用此值作为最大值 SJMP NEXT1 NEXT: ADD A,@R1 ;恢复原最大值 NEXT1: INC R1 ;修改地址指针 DJNZ R2,LP POP PSW RET
一、填空题(37分)
1、8031单片机芯片共有 40 个引脚,MCS-51系列单片机为8 位单片机。
2、MCS-51单片机有( 5 )个中断源,( 2 )级优先级中断。
3、8051内部数据存储器的地址范围是00H-7FH,位地址空间的字节地址范围是20H-2FH,对应的位地址范围是00H-7FH,外部数据存储器的最大可扩展容量是64K字节。
4、单片机也可称为微控制器 或 嵌入式控制器。
5.当MCS-51执行MOVC A,@A+PC指令时,伴随着 PSEN*控制信号有效。
6、当单片机复位时PSW= 00 H,这时当前的工作寄存器区是
0区,R4所对应的存储单元地址为 04 H。
7、MCS-51系列单片机指令系统的寻址方式有 寄存器 、直接寻址、
寄存器间接、立即、 基址加变址 、 位寻址 。(相对寻址也可以)
8、串行口方式3发送的第9位数据要事先写入( SCON )寄存器的( TB8 )位。 9、串行口的方式0的波特率为 ( FOSC/12 )。
10、已知fosc=12MHz, T0作为定时器使用时,其定时时间间隔为( 1us )。 二、判断以下指令的正误:(5分) (1)MOV 28H,@R4; (2)INC DPTR; (3)DEC DPTR ;
( × ) ( √ ) ( × )
(4)CLR R0 ; ( × )
(5)MOV T0,#3CF0H; ( × )
1.MCS-51单片机可执行指令:MOV 35H,@R3。( × ) 2.8031与8751的区别在于内部是否有程序存储器。( √ ) 3.当向堆栈压入一个字节的数据后, SP中的内容减1。( × ) 4.程序计数器PC中装的内容是当前正在执行指令的地址。( × ) 5.某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址。( √ ) 6.MCS-51单片机中的PC是不可寻址的。( √ ) 7.当MCS-51执行MOVX @DPTR,A指令时,伴随着WR信号有效。( × ) 8.MCS-51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电
平的持续时间不小于1个机器周期。( × ) 9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被WR还是被PSEN信号连接。( √ )
10.各中断源发出的中断请求信号,都会标记在MCS-51的TCON寄存器中。( × )
本题得分
二、简答题(13分)
1、 采用6MHz的晶振,定时2ms,用定时器方式1时的初值应为多少?(请给出计算过程)(6分)
答: (1) Ts=2us (216-X)×2us=2ms 从而X=64536 ……………… …..4分 (2) 64536=FC18H………………………2分
2、MCS-51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么?(4分)
答:
因为访问外扩的程序存储器和数据存储器执行的指令不同,所发出的控制信号也就不同。(2分) 读外部数据存储器时,RD*信号有效。写外部数据存储器时,WR*信号有
效。而读外部程序存储器时,PSEN*信号有效。由于发出的控制信号不同,且只能有一种信号有效,因此,即使MCS-51外扩的程序存储器和数据存储器有相同的地址空间,也不会发生数据冲突。(2分) 3.说明MCS-51的外部引脚EA*的作用?(3分)
答:
EA*是内外程序存储器选择控制信号。(1分) 当EA*=0时,只选择外部程序存储器。(1分) 当EA*=1时,当PC指针≤0FFFH时,只访问片内程序存储器;当PC指针>0FFFH时,则访问外部程序存储器(1分) 1、 如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,
(32H)=3CH,则执行下列指令后: POP POP POP
DPH; DPL; SP;
则:(DPH)= ___3CH___;(DPL)=_____5FH_____;(SP)=_____50H_____;(6分)
2、采用6MHz的晶振,定时1ms,用定时器方式0时的初值应为多少?(请给出计算过程)(6分)
解:∵采用6MHZ晶振
∴机器周期为2us (213-X)×2×10-6=1×10-3
∴X=7692(D)=1E0CH=1 1110 0000 1100(B), 化成方式0要求格式为 1111 0000 1100 B 即0F00CH
综上可知:TLX=0CH, THX=0F0H
3、分析下列程序的功能(5分)
PUSH ACC
PUSH B
POP ACC POP B
解:该程序的功能是通过累加器ACC与寄存器B数据交换。
1. 如果(DPTR)=5678H,(SP)=42H,(3FH)=12H ,(40H)=34H,(41H)=50H,(42H)=80H,
则执行下列指令后:
POP DPH POP DPL RET
则:(PCH) =__34H__;(PCL)=___12H____ ;(DPH)=__80H__;(DPL)=___50H__;(4分)
2.MCS-51采用6MHz的晶振,定时2ms,如用定时器方式1时的初值(16进制数)应为多少?(写出计算过程)(6分)
12 6机器周期6×10=2×10-6s=2uS
又方式1为16进制定时器.故
(216—X)×2×10-6=2×10-3=>216-X=1000 =>X=65536-1000=64536 即初值=FC18H
本题得分
三、编写程序,将外部数据存储器中的5000H—50FFH单元
全部清零(10分)。
答: ORG ****H (1分)
MOV DPTR #5000H
MOV R0,#00H
CLR A (3分)
LOOP : MOVX @DPTR,A
INC DPTR (3分) DJNZ R0,LOOP (2分)
HERE: SJMP HERE (RET ,SJMP $ 等)(1分)