单片机8051寄存器
- 格式:docx
- 大小:19.89 KB
- 文档页数:6
51单片机寄存器功能一览表fe51单片机的CPU中,有21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SF存储空间中,地址空间为80H-FFH,在这片SF空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有OM,用来存放程序,有AM,用来存放中间结果,此外还有定时/计数器,串行I/O 口,中断系统,以及一个内部的时钟电路。
在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SF)。
这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):MCS-51单片机的特殊功能寄存器符号地址功能介绍BF0HB寄存器ACCE0H累加器PSWD0H程序状态字TH2*CDH定时器/计数器2(高8位)TL2*CCH定时器/计数器2(低8位)CAP2H*CBH外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位CAP2L*CAH外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位T2CON*C8HT2定时器/计数器控制寄存器IPB8H中断优先级控制寄存器P3B0HP3口锁存器IEA8H中断允许控制寄存器P2A0HP2口锁存器SBUF99H串行口锁存器SCON98H串行口控制寄存器P190HP1口锁存器TH18DH定时器/计数器1(高8位)TH08CH定时器/计数器1(低8位)TL18BH定时器/计数器0(高8位)TL08AH定时器/计数器0(低8位)TMOD89HT0、T1定时器/计数器方式控制寄存器TCON88HT0、T1定时器/计数器控制寄存器DPH83H数据地址指针(高8位)DPL82H数据地址指针(低8位)SP81H堆栈指针P080HP0口锁存器PCON87H电源控制寄存器分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
第⼆章80C51的结构和原理习题及答案第⼆章80C51的结构和原理习题及答案1、80C514单⽚机在功能上、⼯艺上、程序存储器的配置上有哪些种类?答:80C51单⽚机在功能上有两种⼤类:(1)、基本型;(2)、增强型;80C51单⽚机在⽣产⼯艺上有两种:(1)、HMOS⼯艺(即⾼密度短沟道MOS ⼯艺);(2)、CHMOS⼯艺(即互补⾦属氧化物的HMOS⼯艺);80C51单⽚机在程序存储器的配置上有三种形式:(1)、掩膜ROM;(2)、EPROM;(3)、ROMLess(⽆⽚内程序存储器)。
2、80C51单⽚机存储器的组织采⽤何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?在使⽤上有何特点?答:80C51单⽚机存储器的组织采⽤哈佛结构:存储器在物理上设计成程序存储器和数据存储器两个独⽴的空间。
基本型单⽚机⽚内程序存储器容量为4KB,地址范围是0000H~0FFFH。
增强型单⽚机⽚内程序存储器容量为8KB,地址范围是0000H~0FFFH。
基本型单⽚机⽚内数据存储器均为128字节,地址范围是00H~7FH,⽤于存放运算的中间结果、暂存数据和数据缓冲。
这128字节的低32个单元⽤作⼯作寄存器,在20H~2FH共16个单元是位寻址区,然后是80个单元的他通⽤数据缓冲区。
增强型单⽚机⽚内数据存储器为256字节,地址范围是00H~FFH。
低128字节的配置情况与基本型单⽚机相同,⾼128字节为⼀般RAM,仅能采⽤寄存器间接寻址⽅式访问(⽽与该地址范围重叠的SFR空间采⽤直接寻址⽅式访问)。
3、80C51单⽚机的P0~P3⼝在结构上有何不同?在使⽤上有何特点?答:80C51单⽚机各⼝均由接⼝锁存器、输出驱动器和输⼊缓冲器组成,但是结构存在差异:P0、P1⼝有转换开关MUX,P2、P3⼝没有;P1~P3⼝都有上来电阻,但是P0没有。
4个I/O⼝的使⽤特点:(1)、P0:P0⼝是⼀个多功能的8位⼝,可按字节访问也可以按位访问。
第一章前言20世纪末在计算机技术逐渐发展的情况写,电子技术得到了飞速的发展,现代电子产品已经渗透到了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品的性能进一步提高,产品更新换代的节奏也越来越快。
电子技术发展的根基是微电子技术的进步,它表现在大规模集成电路加工技术,即半导体工艺技术的发展上,表征半导体工艺水平的线宽已经达到60nm以下,并还在不断缩小;在硅片单位面积上集成了更多的晶体管,集成电路设计在不断地向超大规模,极低功耗和超高速的方向发展;专用集成电路ASIC (Application Specific Integrated Circuit)的设计成本不断降低,在功能上,现代的集成电路已能够实现单片电子系统SOC(System on a chip)的功能。
另外集成电路(IC)技术在微电子领域中占有重要的地位。
且伴随着IC技术的发展,电子设计自动(Electronic Design Automation,EDA)已经逐渐成为重要的设计手段,其广泛应用于模拟与数字电路系统等许多领域。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
实验一:扩展存储器读写实验一.实验要求编制简单程序,对实验板上提供的外部存贮器(62256)进行读写操作。
二.实验目的1.学习片外存储器扩展方法。
2.学习数据存储器不同的读写方法。
三.实验电路及连线?将接至L1。
CS256连GND孔。
四.实验说明1.单片机系统中,对片外存贮器的读写操作是最基本的操作。
用户藉此来熟悉MCS51单片机编程的基本规则、基本指令的使用和使用本仿真实验系统调试程序的方法。
用户编程可以参考示例程序和流程框图。
本示例程序中对片外存贮器中一固定地址单元进行读写操作,并比较读写结果是否一致。
不一致则说明读写操作不可靠或该存储器单元不可靠,程序转入出错处理代码段(本示例程序通过熄灭一个发光二极管来表示出错)。
读写数据的选用,本例采用的是55(0101,0101)与AA(1010,1010)。
一般采用这两个数据的读写操作就可查出数据总线的短路、断路等,在实际调试用户电路时非常有效。
用户调试该程序时,可以灵活使用单步、断点和变量观察等方法,来观察程序执行的流程和各中间变量的值。
2.在I状态下执行MEM1程序,对实验机数据进行读写,若L1灯亮说明RAM读写正常。
3.也可进入LCA51的调试工具菜单中的对话窗口,用监控命令方式读写RAM,在I状态执行SX0000↓ 55,SPACE,屏幕上应显示55,再键入AA,SPACE,屏幕上也应显示AA,以上过程执行效果与编程执行效果完全相同。
注:SX是实验机对外部数据空间读写命令。
4.本例中,62256片选接地时,存储器空间为0000~7FFFH。
五.实验程序框图实验示例程序流程框图如下:六.实验源程序:ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV DPTR,#0000H ;置外部RAM读写地址MOV A,#55H ;测试的数据一MOV B,AMOVX @DPTR,A ;写外部RAMMOVX A,@DPTR ;读外部RAMXRL A,B ;比较读回的数据JNZ ERRORMOV A,#0AAH ;测试的数据二MOV B,AMOVX @DPTR,AMOVX A,@DPTRXRL A,BJZ PASS ;测试通过ERROR: SETB ;测试失败,点亮LED SJMP $PASS: CPL ;LED状态(亮/灭)转换MOV R1,#00H ;延时DELAY: MOV R2,#00HDJNZ R2,$DJNZ R1,DELAYLJMP START ;循环测试END实验二 P1口输入、输出实验一.实验要求口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
51单片机的专用寄存器21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。
在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。
这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):MCS-51单片机的特殊功能寄存器带“*”的在51系列是没有的。
分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。
自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。
该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。
它的各位功能请看下表:下面我们逐一介绍各位的用途CY:进位标志。
8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。
1附 录本书的附录多达四十多页,这些都是8051单片机学习之余,你要经常参考与查阅的主题,这些资料经过我们仔细地筛选与编排,内容绝对是宝贵的,我们希望本附录成为你写程序时最佳的参考依据之一。
附录A ASCII 表2如何利用本表格如果我们收到了30H 这个十六进制码时,代表何种意义呢?请先查列3,再查行0,两条线交插刚好是0(数字0),这表示我们收到的是一个数字。
如下表所示。
许多可与电脑连接的仪器设备由于只传输数据,所以送回的值都介于30H ~39H 间,查ASCII 表的结果,刚好就是数字0~9。
另外,如果我们送一个45H 给PC 时,PC 的屏幕上就会显示出E 的字样。
3附录B 8051相关IC 引脚图456附录C 8051指令集总整理影响标志位的指令整理注SFR字节地址208或位地址209~215(即PSW或PSW中的位)的操作也会影响标志位设置。
指令集与寻址模式78 8051 指令集汇总注[2B]=2 Byte, [3B]=3Byte, [2C]=2Cycle, [4C]=4 Cycle, Blank=1 byte/1 cycle。
9续表注 [2B]=2 Byte, [3B]=3Byte, [2C]=2Cycle, [4C]=4 Cycle, Blank=1 byte/1 cycle 。
8051指令集——单字节指令整理110 注[2B]=2 Byte, [3B]=3Byte, [2C]=2Cycle, [4C]=4 Cycle, Blank=1 byte/1 cycle。
8051指令集——单字节指令整理28051指令集——双字节指令整理18051指令集——双字节指令整理28051指令集——3字节指令整理18051指令集——3字节指令整理2附录D 8051指令整理(按功能划分)助记符说明字节指令周期注All mnemonics copyrighted @Intel Corp., 1980.附录E 8051指令整理(按十六进制排列)21222324252627附录F 8051 SFR表与RESET后的初始值F7H9FH97H8FH87H28附录G SFR特殊功能寄存器整理表PSW各位定义(D0H)D7 D6 D5 D4 D3 D2 D1 D0CY(PSW.7):运算进制标志位AC(PSW.6):辅助运算标志位29F0(PSW.5):用户自行定义用标志位RS1(PSW.4):R0~R7寄存器组选用位RS0(PSW.3):R0~R7寄存器组选用位0V(PSW.2):运算溢位标志位-(PSW.1):Intel保留待未来开发用P(PSW.0):ACC内容同位标志位注:(1)RS1和RS0共可组成4个寄存器组(BANK),以切换数据存储器内的R0~R7值。
P3为两用端口: ┏━━━┯━━━┯━━━━━━━━━━━━━┓ ┃P3.0 │RXD │串行口通讯输入 ┃ ┃P3.1 │TXD │串行口通讯输出 ┃ ┃P3.2 │INT0 │外部中断0 ┃ ┃P3.3 │INT1 │外部中断1 ┃ ┃P3.4 │T0 │定时器/计数器0 ┃ ┃P3.5 │T1 │定时器/计数器1 ┃ ┃P3.6 │WR │外部随机存取器的写入信号 ┃ ┃P3.7 │RD │外部随机存取器的读取信号 ┃ ┗━━━┷━━━┷━━━━━━━━━━━━━┛ ------------------------------------------------------------------------- 8051程序设计只读存储器特殊地址 ┏━━━━━━━┯━━━━━━━┯━━━━━━━┓ ┃名称 │中断源 │向量位置 ┃ ┠───────┼───────┼───────┨ ┃系统重置 │RESET │00H ┃ ┃外部中断0 │INT0 │03H ┃ ┃定时器0中断 │TIMER0 │0BH ┃ ┃外部中断1 │INT1 │13H ┃ ┃定时器1中断 │TIMER1 │1BH ┃ ┃串行口中断 │UART │23H ┃ ┗━━━━━━━┷━━━━━━━┷━━━━━━━┛ ------------------------------------------------------------------------- 8051特殊功能寄存器 ┏━━━┯━━━━━━━━━━━┯━━━━━━━┓ ┃名称 │用途 │地址 ┃ ┠───┼───────────┼───────┨ ┃*ACC │累加器B │E0H ┃ ┃*B │寄存器B │F0H ┃ ┃*PSW │程序状态字 │D0H ┃ ┃SP │堆栈指计 │81H ┃ ┃DPTR │数据指计(DPH,DPL) │83H,82H ┃ ┃P0 │I/O端口0 │80H ┃ ┃P1 │I/O端口1 │90H ┃ ┃P2 │I/O端口2 │A0H ┃ ┃P3 │I/O端口3 │B0H ┃ ┃*IP │中断优先顺序控制 │B8H ┃ ┃*IE │中断使能控制 │A8H ┃ ┃TMOD │计时器模式控制 │89H ┃ ┃*TCON │计时器控制 │88H ┃ ┃TH0 │计时器0高字节寄存器 │8CH ┃ ┃TL0 │计时器0低字节寄存器 │8AH ┃ ┃TH1 │计时器1高字节寄存器 │8DH ┃ ┃TL1 │计时器1低字节寄存器 │8BH ┃ ┃*SCON │串行端口控制 │98H ┃ ┃SBUF │串行端口数据缓冲器 │99H ┃ ┃PCON │电源控制 │87H ┃ ┗━━━┷━━━━━━━━━━━┷━━━━━━━┛ *:表示位可寻址 程序状态寄存器PSW (D0H) ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━━━━━┓ ┃PSW │CY │AC │F0 │RS1 │RS0 │OV │USR │P ┃ ┃D0H │D7H │D6H │D5H │D4H │D3H │D2H │D1H │D0H ┃ ┠───┼───┼───┼───┼───┼───┼───┼───┼───────┨ ┃地址 │D7 │D6 │D5 │D4 │D3 │D2 │D1 │D0 ┃ ┠───┼───┴───┴───┴───┴───┴───┴───┴───────┨ ┃CY │进位标志位 A最高位A7:0,无进位或借位;1,有进位或借位 ┃ ┃AC │辅助进位标志位 A低4位A3向高4位A4:0,无进位或借位;1,有进位或借位 ┃ ┃F0 │通用标志位 通用标志位,可任意设定 ┃ ┃RS1 │寄存器组选择位高位 ┃ ┃RS0 │寄存器组选择位低位 00,0组;01,1组;10,2组;11,3组 ┃ ┃OV │溢出标志位 0,无溢出;1,有溢出 ┃ ┃USR │用户定义标志位 用户定义标志位,可任意设定 ┃ ┃P │奇偶标志位 0,A中1的个数为偶数;1,A中1的个数为奇数 ┃ ┗━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
中断优先级寄存器IP (B8H) ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┃IP │ / │/ │/ │PS │PT1 │PX1 │PT0 │PX0 ┃ ┃B8H │/ │/ │/ │BCH │BBH │BAH │B9H │B8H ┃ ┠───┼───┼───┼───┼───┼───┼───┼───┼───┨ ┃地址 │D7 │D6 │D5 │D4 │D3 │D2 │D1 │D0 ┃ ┠───┼───┴───┴───┴───┴───┴───┴───┴───┨ ┃IP │中断优先级寄存器 ┃ ┃/ │保留 ┃ ┃PS │串行通信中断优先级 0,低优先级;1,高优先级 ┃ ┃PT1 │T1中断优先级 0,低优先级;1,高优先级 ┃ ┃PX1 │/INT1优先级 0,低优先级;1,高优先级 ┃ ┗━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
------------------------------------------------------------------------- 8051内部控制寄存器只有6个: ┏━━━┯━━━━━━━┯━━━━━━━━━━━┓ ┃1. │IE,IP │寄存器用于中断控制 ┃ ┃2. │TMOD,TCON │寄存器计时/计数器用 ┃ ┃3. │SCON │寄存器串行口传输控制 ┃ ┃4. │PCON │寄存器省电模式操作 ┃ ┗━━━┷━━━━━━━┷━━━━━━━━━━━┛ ------------------------------------------------------------------------- IE中断允许控制寄存器(可位寻址) ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┃B7 │B6 │B5 │B4 │B3 │B2 │B1 │B0 ┃ ┠───┼───┼───┼───┼───┼───┼───┼───┨ ┃EA │ - │ET2 │ES │ET1 │EX1 │ET0 │EX0 ┃ ┗━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┛ EA(IE.7): 当EA=0时停止所有的中断位(禁止中断) 当EA=1时各个中断的产生由个别允许位来决定 IE.6: 保留位 ET2(IE.5): 允许计时器2的中断(8052使用) ES(IE.4): 允许串行口的中断 ET1(IE.3): 允许计时器1的中断 EX1(IE.2): 允许外部中断1的中断 ET0(IE.1): 允许计时器0的中断 EX0(IE.0): 允许外部中断0的中断 ------------------------------------------------------------------------- IP中断优先次序寄存器(可位寻址) ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┃B7 │B6 │B5 │B4 │B3 │B2 │B1 │B0 ┃ ┠───┼───┼───┼───┼───┼───┼───┼───┨ ┃- │ - │PT2 │PS │PT1 │PX1 │PT0 │PX0 ┃ ┗━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┛ PT2(IP.5): 设定计时器2的优先次序(8052使用) PS(IP.4): 设定串行口的优先次序 PT1(IP.3): 设定计时器1的优先次序 PX1(IP.2): 设定外部中断1的优先次序 PT0(IP.1): 设定计时器0的优先次序 PX0(IP.0): 设定外部中断0的优先次序 ------------------------------------------------------------------------- TMOD计时器模式控制寄存器(不可位寻址) ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┃B7 │B6 │B5 │B4 │B3 │B2 │B1 │B0 ┃ ┠───┼───┼───┼───┼───┼───┼───┼───┨ ┃GATE │C/T │M1 │M0 │GATE │C/T │M1 │M0 ┃ ┗━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┛ GATE: 计时器工作门控制, 当GATE=1时,INT0与INT1引脚为高电位,同时TCON中的TR0或TR1控制位1时,计时/计数器0或1才会工作。 若GATE=0,只要将TR0或TR1控的,控制位设为1,计时/计数器0或1即可工作。 C/T: 作计时/计数器功能的选择位, C/T=1为计数器,由外部引脚T0或T1输入计数脉冲。 C/T=0为计时器,由内部系统时钟提供计时工作脉冲。 M1: 模式选择位1 M0: 模式选择位0 ---------------------------------------------------------------- ┏━━━┯━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃M1 │M0 │工作模式 ┃ ┠───┼───┼───────────────────────────────┨ ┃0 │0 │13位计时/计数器 ┃ ┃0 │1 │16位计时/计数器 ┃ ┃1 │0 │8位自动载入计时/计数器 ┃ ┃1 │1 │计时器1停止工作,计时器0分为两个独立的8位计时器TH0与TL0 ┃ ┗━━━┷━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ------------------------------------------------------------------------- TCON计时器控制寄存器(可位寻址) ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┃B7 │B6 │B5 │B4 │B3 │B2 │B1 │B0 ┃ ┠───┼───┼───┼───┼───┼───┼───┼───┨ ┃TF1 │TR1 │TF0 │TR0 │IE1 │IT1 │IE0 │IT0 ┃ ┗━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┛ TF1(TCON.7): 计时器1溢出标志,当计时溢出时由硬件位设定为1,在执行相对的中断服务程序后则自动清0。 TR1(TCON.6): 计时器1起动控制位,可以由软件来设定或清除,当TR1=1时起动计