单片机89C51特殊功能寄存器
AT89C51单片机说明

PSEN 此为"Program Store Enable"的缩写。访问外部程序存储器选通信号,低电平有效。在访
(60KB)
0FFFFH
1000H
外部 程序 存储器
0FFFH
EA=0 (4KB)
0000H
0FFFFH
外 部 数 据 存 储 器
(64KB)
0000H
图 2-2 只读程序存储器
图 2-3 外部数据存储器
直接地址
2FH 7F 7E 7D 7C 7B 7A 79 78 2EH 77 76 75 74 73 72 71 70 2DH 6F 6E 6D 6C 6B 6A 69 68 2CH 67 66 65 64 63 62 61 60 2BH 5F 5E 5D 5C 5B 5A 59 58 2AH 57 56 55 54 53 52 51 50 29H 4F 4E 4D 4C 4B 4A 49 48 28H 47 46 45 44 43 42 41 40 位寻址区 27H 3F 3E 3D 3B 3C 3A 39 38 26H 37 36 35 34 33 32 31 30 25H 2F 2E 2D 2B 2C 2A 29 28 24H 27 26 25 24 23 22 21 20 23H 1F 1E 1D 1C 1B 1A 19 18 22H 17 16 15 14 13 12 11 10 21H 0F 0E 0D 0C 0B 0A 09 08 20H 07 06 05 04 03 02 01 00 1FH
单片机课后习题答案

单⽚机课后习题答案单⽚机课后习题答案1.89C51单⽚机内包含哪些主要逻辑功能部件?答:80C51系列单⽚机在⽚内集成了以下主要逻辑功能部件:(l)CPU(中央处理器):8位(2)⽚内RAM:128B(3)特殊功能寄存器:21个(4)程序存储器:4KB (5)并⾏I/O⼝:8位,4个(6)串⾏接⼝:全双⼯,1个(7)定时器/计数器:16位,2个(8)⽚内时钟电路:1个2.89C51的EA端有何⽤途?答:/EA端接⾼电平时,CPU只访问⽚内flash Rom并执⾏内部程序,存储器。
/EA端接低电平时,CPU只访问外部ROM,并执⾏⽚外程序存储器中的指令。
/EA端保持⾼电平时,CPU执⾏内部存储器中的指令。
3.89C51的存储器分哪⼏个空间?如何区别不同空间的寻址?答:ROM(⽚内ROM和⽚外ROM统⼀编址)(使⽤MOVC)(数据传送指令)(16bits地址)(64KB)⽚外RAM(MOVX)(16bits地址)(64KB)⽚内RAM (MOV)(8bits地址)(256B)4.简述89C51⽚内RAM的空间分配。
答:⽚内RAM有256B,低128B是真正的RAM区,⾼128B是SFR(特殊功能寄存器)区。
5.简述布尔处理存储器的空间分配,⽚内RAM中包含哪些可位寻址单元。
答:⽚内RAM区从00H~FFH(256B)其中20H~2FH(字节地址)是位寻址区对应的位地址是00H~7FH6. 如何简捷地判断89C51正在⼯作?答:⽤⽰波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路⼯作是否正常?)ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频⽤⽰波器观察ALE是否有脉冲输出(判断8051芯⽚的好坏?)观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?)因为/PSEN接外部EPROM(ROM)的/OE端⼦OE=Output Enable(输出允许)7. 89C51如何确定和改变当前⼯作寄存器组?答:PSW(程序状态字)(Program Status Word)中的RS1和RS0 可以给出4中组合,⽤来从4组⼯作寄存器组中进⾏选择PSW属于SFR(Special Function Register)(特殊功能寄存器)9.读端⼝锁存器和“读引脚”有何不同?各使⽤哪种指令?答:读锁存器(ANLP0,A)就是相当于从存储器中拿数据,⽽读引脚是从外部拿数据(如MOV A,P1这条指令就是读引脚的,意思就是把端⼝p1输⼊数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常⽤这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。
区分89C51的RAM和特殊SFR(功能寄存器)

很多单片机初学者,分不清内部RAM和SFR(特殊功能寄存器),认为他们是一个东西,其实不是,他们是完全独立的两个物理空间.
虽然SFR和高的内部RAM地址相等(这仅仅是一种映射关系,地址编址是一样的,但是硬件不一样),但是寻址方式不一样,所以单片机能பைடு நூலகம்分得开。
如果你对计算机体系结构有了解的话,你就会知道在CPU内部也有微解码器,把每个CPU指令分解成一个个最原始最简单的跟硬件相关的微指令,而这都是译码器完成的(也是为什么会存在指令译码这么一个机器周期,关于具体的内容请参考相关内容),使用不同的指令会被解释成不用的微指令码,所以相当于多了一根线用来选择寄存器区和RAM区,在译码的时候它会在直接寻址的时候选通寄存器区,而在使用间接寻址的时候就会选通RAM。
所以用不同的指令是很容易区分出不同的物理地址的。
再从编程角度来说吧,由于寄存器对编程人员来说每个都是单独存在的,不会出现对地址的相对寻址,所以用直接寻址是可行的,而对RAM寻址的时候,如果是对数组的话那么会出现对地址加减的情况,用间接寻址完全能满足需求,即使是普通的寻址,除了占用寄存器,和多一个给寄存器赋值的指令,没什么其他的影响,可是和多了128个存储器比起来,这点开销还是比较值得的。(在高级语言的编程中,都是编译器完成的,基本感觉不出来他们的区别)
P89C51RC+_RD+中文使用指南

1
1. 前言
4.3 全双工增强型 UART 异步收发器 串行口................................................................... 18 4.4 7 源 4 优先级嵌套中断系统 ............................................................................................... 22 4.5 数据存储器 .......................................................................................................................... 22
2. 特色简介 ........................................................................................................................................ 2
3. 内部功能和芯片封装 .................................................................................................................... 2
2.1 89C51单片机的内部结构

4. 数据存储器 (1) 功能: 用于存放运算的中间结果、数据暂存和缓冲、 标志位等。
(2) 编址:
FFH 52子系列才有 FFH
SFR分布在 80H-FFH
其中11个可 位寻址
的RAM区
80H 7FH 80H
普通RAM区
89C51 128字节
30H 2FH 20H 1FH 00H
位寻址区 工作寄存器区
片内RAM前32个单元是工作寄存器区(00H—1FH)
FFH 52子系列才有 的RAM区 1FH 18H 17H 10H 0FH 08H 07H 06H 05H 04H 03H 02H 01H 00H
工作寄存器区3
工作寄存器区2
工作寄存器区1
R7 R6 R5 R4 R3 R2 R1 R0
80H 7FH
2
15
1
5
2/3
32
1
5/6
3. 程序存储器 (1) 功能: 用于存放编好的程序和表格常数。 (2) 编址:
0FFFFH
外部 ROM
1000H 0FFFH 内部 ROM 0000H (EA=1) 外部 ROM (EA=0) 0000H 0FFFH
片内ROM和片外ROM取指的速度相同
0000H 0003H 000BH 0013H 001BH 0023H 002BH
51系列单片机的存储器分为数据存储器和程序存储 器,其地址空间,存取指令和控制信号各有一套。
1. 物理结构
片内程序存储器
程序存储器ROM
89C51存储器
片外程序存储器 片内数据存储器 片外数据存储器
数据存储器ROM
2. 逻辑结构
FFH 特 殊 功 能 寄 存 器 80H 7FH 通用 RAM区 位寻址区 30H 2FH 20H 1FH 0FFFH 工作寄 存器区 0000H 0000H 1000H F0H E0H D0H B8H B0H A8H A0H 98H 90H 88H 80H 特 殊 FFFFH 功 能 寄 存 器 中 位 寻 址 F移位功能;位操作。
STC89C51单片机硬件结构资料

0023H —— 串口中断入口
( 002BH —— T2溢出中断入口 )
三、内部数据存储器
物理上分为两大区域:00H ~ 7FH即128B内RAM区
7FH
80H ~ FFH即SFR区。
用户RAM区
数据缓冲区、堆栈区、工作 单元
2FH / 30H
位寻址区 (位地址00H ~ 7FH )
1FH / 20H
M1 8D TF0 /
M0 8C TR0 /
+
GATE 8B IE1 GF1
C/T 8A IT1 GF0
M1 89 IE0 PD
M0 88 IT0 IDL
89H 88H 87H 83H 82H 81H
87 P0.7
86 P0.6
85 P0.5
84 P0.4
+
83 P0.3
82 P0.2
81 P0.1
0 0:
0 1: 1 0: 1 1:
0区 R0 ~ R7
1区 R0 ~ R7 2区 R0 ~ R7 3区 R0 ~ R7
数据 存储器
2、指针寄存器
(1)程序计数器PC
9F SM0
9E SM1
9D SM2
9C REN
9B TB8
9A RE8
99 TI
98 RI
98H 90H 8DH 8CH 8BH 8AH
97 P1.7
96 P1.6
95 P1.5
94 P1.4
93 P1.3
92 P1.2
91 P1.1
90 P1.0
GATE 8F TF1 SMOD
C/T 8E TR1 /
89C51 单片机 89C51 单片机 内部结构图 内部结构图
at89c51单片机各引角介绍[精华]
![at89c51单片机各引角介绍[精华]](https://img.taocdn.com/s3/m/df3246c685254b35eefdc8d376eeaeaad1f31602.png)
(1)AT89C51的主要特性○18位微处理器和控制器,中央处理器是整个单片机的核心部件,能同时处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
○2内含一个布尔运算器,可直接对数据的位进行操作和运算,特别适用于逻辑控制。
○3内含4KB可重擦写的可编程闪烁程序存贮器(EEPROM)。
○4内含128*8位的数据存贮器(RAM)。
○54个8位(32根)双向且可独立寻址的I/O(输入输出)接口0P~3P。
○62个16位的计数器/定时器。
○7片内振荡器和时钟电路。
○8全双工方式的串行接口(DART)。
○9两级中断优先权的6个中断源/5个中断矢量的中断逻辑。
○10指令集有111条指令,其中64条为单周期指令,支持6种寻址方式。
○11最高时钟振荡频率可达12MHz,大部分指令执行时间为1us,乘、除指令为4us。
○12与MCS-51兼容,寿命为1000次写/擦循环,数据保留时间为10年。
○13低功耗的闲置和掉电模式,可编程串行通道,三级程序存储器锁定。
(2)引脚及功能AT89C51单片机为40脚双列直插式封装结构。
其引脚排列顺序及引脚符号如图4.1所示:图4.1 AT89C51管脚图各引脚功能如下:○1电源及接地GND:电源接地端。
Vcc:供电电压即正常运行和编程校验时为+5V电源(士10%)。
○2时钟及复位信号XTAL1:是片内振荡器反相放大器的输入及内部时钟工作电路的输入。
当采用外部振荡器为时钟源时,此脚必须接地。
XTAL2:是片内振荡器反相放大器的输出端,也是内部时钟发生器的输入端。
使用外部振荡器时,可由此脚引入外部时钟信号。
RST:复位信号输入端,高电平有效。
若此输入端保持2个机器周期(24个时钟振荡周期)以上的高电平,即可以将89C51完成复位操作。
此外,RST引脚的第二功能是VPD,即备用电源的输入端。
当主电源Vcc发生故障,降低到低电平规定值时,单片机自动将+5v电源接入RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,以使复电后能继续正常运行。
89C51中断控制寄存器

89C51中断寄存器详情中断系统:AT89C51单片机的中断系统由中断源、与中断控制有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括5个中断请求源、4个与中断控制有关的寄存器(IE、IP、TCON、SCON)、两个中断优先级及顺序查询逻辑电路。
1.中断源:中断源是指能引起中断、发出中断请求的装置或事件。
AT89C51有5个中断源○1外中断0(INT0):中断请求信号从单片机的P3.2脚输入○2外中断1(INT1):中断请求信号从单片机的P3.3脚输入○3内定时器/计数器0(T0):溢出中断○4内定时器/计数器1(T1):溢出中断○5串行口中断:包括串行收中断RI和串行发中断TI2.中断入口地址及内部优先权寄存器3.IE结构及各位名称、地址⑴EA是CPU中断总允许位。
EA=1,CPU开放中断;EA=0,CPU屏蔽所有的中断请求。
⑵ES是串行中断允许控制位。
ES=1,允许串行口中断;ES=0,禁止串行口中断。
⑶ET1是定时器/计数器1中断允许控制位。
ET1=1时允许定时器/计数器1中断;反之禁止。
⑷EX1是外部中断INT1中断允许位。
EX1=1时,允许外部中断1中断;反之依然。
⑸ET0是定时计数器T0的溢出中断允许位。
ET1=1时允许定时器/计数器0中断;反之禁止。
⑹EX0是外部中断INT0允许位。
EX1=1时,允许外部中断0中断;反之禁止。
89C51系统复位后,IE中各位均被清0,即禁止所有中断。
4.TCON(定时器/计数器和外中断控制寄存器):TCON的字节地址为88H,是可位寻址的特殊功能寄存器,其地址有低到高依次是88H ~ 8FH。
TCON结构及位名称、位地址TF1:T1溢出中断请求标志。
当定时器/计数器T1溢出时,由硬件置“1”,请求中断。
TF0:T0溢出中断请求标志。
当定时器/计数器T0溢出时,由硬件置“1”,请求中断。
IE1:外中断1中断请求标志。
当INT1引脚(P3.3)上出现有效的外部中断信号时,由硬件置“1”,请求中断。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机89C51特殊功能寄存器
高手从菜鸟忽略作起之(三)单片机共有21个特殊功能寄存器,下面从其功能,位结构,地址,读写方法对其作详细介绍。
一,特殊功能寄存器总述。
二,特殊功能寄存器分类:
1.CPU控制类(6个):Acc,B,PSW,DPL,DPH,SP.
2.中断控制类(2个):IE,IP.
3.计数/定时类(6个):TMOD,TCON,TL0,TL1,TH0,TH1.
4.并口端口类(4个):P0,P1,P2,P3.
5.串口端口类(2个):SCON,SBUF.
6.电源管理类(1个):PCON.
三,特殊功能寄存器详述:
1.CPU控制类(6个):Acc,B,PSW,DPL,DPH,SP
1.1 Acc:累加器,可按位,字节访问。
1.2 B:辅助寄存器,用于进行乘除运算。
P:奇偶校验位:P=0:1的个数为奇数;P=1,1的个数为偶数。
---:保留位,没使用。
OV:Over flow,溢出标志,OV=0:没溢出;OV=1:溢出。
Rs0:Regedit select 0,寄存器选取0.
RS1:Regedit select 1,寄存器选取1。
F0:User Flag bit:用户自定义位。
Ac: Auxiliary Carry,辅助进位标志,由低4位运算时,是否有向高4位进位。
Cy:Carry,进位标志。
字节运算时,是否有进位。
1.4 DPTL:Data Pointer Register Low,数据指针寄存器低8位。
1.5 DPTH:Data Pointer Register High,数据指针寄存器高8位。
1.6 SP: Stock Pointer:栈指针寄存器。
2.中断控制类寄存器(2个):IE,IP
EX0: Enable Extra 0 ,INT0 中断允许位。
ET0: Enable Timer 0,C/T0 中断允许位。
EX1: Enable Extra 1 ,INT1 中断允许位。
ET1: Enable Timer 1,C/T1 中断允许位。
ES: Enable serial ,串行中断允许位。
ET2: Enable Timer 2,C/T2 中断允许位。
---: 保留。
EA: Enable All:全部中断允许位。
PX0: Priority Extra 0 , INT0 中断优先位。
PT0: Priority Timer 0 ,C/T0中断优先位。
PX1: Priority Extra 1, INT1 中断优先位。
PT1: Priority Timer 1, C/T1中断优先位。
PS: Priority Serial ,串行中断优先位。
PT2: Priority Timer 2, C/T2中断优先位。
---: 保留1
---: 保留2
3.计数/定时类(6个):TMOD,TCON,TL0,TL1,TH0,TH1
T0_M0: C/T0 M0 Bit , C/T0 模式设置M0位。
T0_M1: C/T0 M1 Bit , C/T0 模式设置M1位。
T0_C/T: C/T0 C or T select ,C/T0计数或计时选取位。
T0_Gate: C/T0 Fire Mode ,运行方式选取位。
T1_M0: C/T1 M0 Bit , C/T1 模式设置M0位。
T1_M1: C/T1 M1 Bit , C/T1 模式设置M1位。
T1_C/T: C/T1 C or T select , C/T1计数或计时选取位。
T1_Gate: C/T1 Fire Mode , 运行方式选取位。
IT0: Interrupt Timing 0 ,C/T0激活模式,0脉冲,1下降沿。
IE0: Interrupt Enable 0 ,C/T0使能。
IT1: Interrupt Timing 1 , C/T1激活模式,0脉冲,1下降沿。
IE1: Interrupt Enable 1 , C/T1使能。
TR0: Timer Run 0 ,C/T0 中断发生位。
TF0: Timer Over Flow 0 ,C/T0 中断溢出。
TR1: Timer Run 1 , C/T1 中断发生位。
TF1: Timer Over Flow 1 , C/T1 中断溢出。
3.3TL0:C/T0初值设置低8位
3.4TL1:C/T1初值设置低8位
3.5TH0:C/T0初值设置高8位
3.6TH1:C/T1初值设置高8位
4.并口端口类(4个):P0,P1,P2,P3
4.1P0: 作I/O时,需上拉电阻;作地址低8位。
4.2P1:普通I/O.
4.3P2:作I/O,作地址高8位。
4.4P3:作I/O,具有第2功能。
5.串口端口类(2个):SCON,SBUF
TI: Transform Interrupt,数据发送中断位。
RB8: Receive Bit 8,模式2、3时接收第8位。
TB8: Transform Bit 8,模式2、3时发送第8位。
REN: Run Enable,运行使能位。
SM2: Serial Mode 2,模式设定M2。
SM1: Serial Mode 1, 模式设定M2。
SM0: Serial Mode 0, 模式设定M2。
5.2SBUF:串口缓冲寄存器
接收和发送同用此缓存寄存器。
PD: power detach ,0=正常,1=掉电
GF0: general Flag 0,通用标志位0
GF1: general Flag 1,通用标志位1
P0F:其它用。
LVDF:其它用
SM0:晶振模式,0=正常,1=加倍
SM1: 晶振模式,0=正常,1=加倍。