1、 89C51内部包含哪些主要逻辑功能部件?
运算器
(1) 8位算术逻辑运算单元ALU (Arithmetic Logic Unit) (2) 8位累加器ACC(Accumulator) (3) 8位寄存器B (Register B )
(4) 程序状态字寄存器PSW (Program Status Word)
(5) 两个8位暂存寄存器TMP1和TMP2 (Temporay Register) 控制器
(1) 程序计数器PC (Program Counter)
PC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。
程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。
(2) 指令寄存器IR (Instruction Register)
指令寄存器的作用就是用来存放即将执行的指令代码。 (3) 指令译码器ID (Instruction Decode)
用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。 (4) 内部复位电路 (5) 内部振荡电路 存储器
(1)程序存储器(EPROM) (2)数据存储器(RAM) I/O端口
4个并行I/O端口P0、P1、P2、P3
2、简述89C51片内RAM的空间分配。
片内RAM共有256 Byte (00H~FFH),可分为高128 Byte (80H~FFH)和低128 Byte(00H~7FH)。
高128 Byte (80H~FFH)称为特殊功能寄存器区SFR (Special Function Register)其中定义了21个特殊功能寄存器,未定义的单元不允许用户使用。
低128 Byte(00H~7FH)具体分配如下:
00H~07H 工作寄存器0区(R0~R7)
08H~0FH 工作寄存器1区(R0~R7) 10H~17H 工作寄存器2区(R0~R7) 18H~1FH 工作寄存器3区(R0~R7) 20H~2FH 位寻址区(位地址00H~7FH) 30H~7FH 用户区
3、简述程序状态字寄存器PSW中每一位的含义。
Cy : Carry Flag 进位位。CPU在做无符号数运算时,结果超出了0~255时,Cy=1;否则Cy=0。
Ac : Auxiliary Carry 辅助进位位。CPU在做算术运算时,当第三位向第四位有进位(或有借位)时,Ac=1,否则Ac=0。 F0 : Flag zero 用户自定义位。
RS1、RS0:确定工作寄存器区的两个位,具体情况如下表: RS1 0 0 1 1 RS0 0 1 0 1 工作寄存器区 0 区 1 区 2 区 3 区
Ov : Overflow Flag 溢出位。CPU在做有符号数运算时,结果超出了-128~+127时,Ov=1;否则Ov=0。
P : Parity Flag奇偶校验位。复位后奇偶校验位P始终跟踪累加器A中1的个数,1的个数为奇数则P=1,1的个数为偶数,P=0。
4、说明P3口的第二功能。
P3.0 RXD (串行口输入端,即接收端。serial input port) P3.1 TXD (串行口输出端,即发送端。serial output port)
P3.2 INT0 (外部中断0申请输入端,低电平有效。external interrupt 0) P3.3 INT1 (外部中断1申请输入端,低电平有效。external interrupt 1) P3.4 T0 (定时器T0外部脉冲输入端。timer 0 external input) P3.5 T1 (定时器T1外部脉冲输入端。timer 1 external input)
P3.6 WR (允许写片外数据存储器。external data memory write strobe) P3.7 RD (允许读片外数据存储器。external data memory read strobe)
因篇幅问题不能全部显示,请点此查看更多更全内容