第二章51单片机基本结构_第1页
第二章51单片机基本结构_第2页
第二章51单片机基本结构_第3页
第二章51单片机基本结构_第4页
第二章51单片机基本结构_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 MCS-51单片机的硬件结构 本章主要内容:2.1 51单片机组成、原理简介2.2 存储器的组织和分配,程序存储器和数据 存储器2.3 特殊功能寄存器2.4 I/O端口的功能和三总线逻辑的实现。单片机概述单片机概述 单片机的内部组成要素 1. CPU -完成全部的数据计算和任务操作; 2. 存储器 - 存储程序代码和运行中的数据变量值(存储器包括程序存储器和数据存储器) 3. 输入/输出接口(Input & Output I/O) - 负责单片机和外部世界的通信和数据传输,是单片机与外部联系的唯一通道; 4. 片上外设资源(On chip peripherals) -根据芯片的

2、应用领域要求而集成在芯片上的独立硬件模块单元,通过“寄存器”接口和CPU通信并接受CPU控制。外设资源的多少和性能常常是选型单片机的重要参考依据; 学习单片机,暂不讨论软件编程问题,仅考虑单片机硬件知识,需要重点了解的包括以下几方面: 1. CPU的性能 主要指CPU的字长、工作主频、指令周期的长短等; 一般说字长越长,主频越高,CPU的运算性能越强,速度也越快; 2. 存储器的大小和读写速度 单片机的存储器包括程序存储器(ROM)和数据存储器(RAM)两大类。CPU对两种存储器的管理方式、存储器读写速度也是影响单片机综合性能的重要方面。 例如 Iphone手机的照相效果好绝不仅仅是镜头像素高

3、的原因,更多的还是内核CPU和存储器的读写速度快决定的。 3. I/O接口的内部结构、能力、管脚功能的复用方式等。 4. 中断系统的结构、工作处理方式。中断是一种CPU的工作机制,理解了一种单片机的中断,很容易掌握其他单片机的中断使用。 4. 片上外设资源的功能、使用说明。因为“特殊功能寄存器SFR(Special Function Register)是CPU操纵这些外设资源的唯一接口,因此除了要掌握每种外设的功能原理外,对于初学者和很多的应用工程师,大部分的时间都花在了对具体的寄存器的熟悉使用上。这方面唯一的方法就是看资料手册PDF,反复实验尝试,总结经验技巧。 8位位CPU - CPU字长

4、字长 片内片内128B RAM -数据存储器容量数据存储器容量 片内片内4KB ROM/EPROM(8031无)无) -程序容量,可以外扩程序容量,可以外扩 特殊功能寄存器区特殊功能寄存器区 SFR -外设操作接口外设操作接口 2个优先级的个优先级的5个中断源结构个中断源结构 4个个8位并行口:位并行口:P0、P1、P2、P3 -I/O接口电路接口电路2.1 51单片机组成、原理简介单片机组成、原理简介 2个个16位定时器位定时器/计数器计数器T/C -片内外设片内外设 1个个全双工串行口全双工串行口UART -片内外设片内外设 特殊的位操作能力特殊的位操作能力 -布尔处理机布尔处理机(10)

5、 64KB外部外部RAM地址空间地址空间(11) 64KB外部外部ROM地址空间地址空间(12) 片内时钟电路及振荡器片内时钟电路及振荡器(13) 硬件指令集系统硬件指令集系统 (复杂指令集复杂指令集111条条)16条地址线条地址线外部扩展能力外部扩展能力I/O接口接口P0P1P2P3 CPU:中央处理器中央处理器(8位机)位机)中断系统中断系统定时定时/计数计数器单元器单元T0/T1/T2串行通信串行通信口口特特殊殊功功能能寄寄存存器器SFR程序存储器程序存储器ROM4KB/8KB数据存储器:数据存储器:RAM:128B/256B时钟和复位时钟和复位电路电路CLKRESETVCCGNDRAM

6、 P0口口串行口串行口 定时器定时器 计数器计数器特殊特殊功能功能寄存器寄存器(SFR)中断中断系统系统微处理器微处理器ALU控制逻辑控制逻辑 P2口口 P1口口 P3口口ROM/EPROMCPU内部内部 总线总线VccVssXTAL1XTAL2PSEN EAALERESETP2.0P2.7P0.0P0.788P1.0P1.78P3.0P 3.788051/8751面向用户的结构面向用户的结构MCU内部结构内部结构图图1-1 MCS-51功能功能 框图框图逻辑结构框图逻辑结构框图40引脚,双列直插式结构引脚,双列直插式结构RST/VPDP3.1P3.2P3.3P3.4P3.5P3.6P3.7P

7、3.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0RXD TXD INT0 INT1 T0 WR RDT1 XTAL2XTAL1VssVccEA/VPPALE/PROGPSEN80318051875140393837363534333231302928272625242322211234567891011121314151617181920MCS-51单片机的引脚划分单片机的引脚划分用户外特性用户外特性一、一、51单片机的管脚功能单片机的管脚功能1

8、、按功能分类、按功能分类I/O口线口线 P0 、 P1 、 P2 、 P3 共共32条条电电 源源 Vcc、 Vss 共共2条条时时 钟钟 XTAL1、 XTAL2 共共2条条控制口线控制口线 PSEN、ALE、EA/VPP、RESET 共共4条条数据数据/地址地址复用口复用口I/O口口双功能口双功能口2、管脚的功能、管脚的功能(1)电源与时钟)电源与时钟Vcc:接接+5V电源端电源端 Vss:接地端接地端XTAL1:片内振荡电路输入端片内振荡电路输入端XTAL2:片内振荡电路输出端片内振荡电路输出端内时钟方式:内时钟方式:在在XTAL1、XTAL2上外接定时上外接定时元件,使其形成自激振荡器

9、。元件,使其形成自激振荡器。时钟电路:时钟电路:内时钟方式内时钟方式外时钟方式外时钟方式 定时元件采用由石英晶体和电容组成并联谐振定时元件采用由石英晶体和电容组成并联谐振电路。晶体和电容尽可能靠近单片机芯片。电路。晶体和电容尽可能靠近单片机芯片。单单片片机机XTAL1XTAL21918C1C2电容通常电容通常选择为选择为30PF左右左右振荡频率振荡频率1.2MHz12MHz晶晶振振内时钟方式电路图内时钟方式电路图每一种单片机芯片都必须要有时钟电路,提供给每一种单片机芯片都必须要有时钟电路,提供给CPU必要的时间基准,必要的时间基准,CPU正是在时钟电路提供正是在时钟电路提供的脉冲信号下一步一步

10、的执行程序,就如同人类的脉冲信号下一步一步的执行程序,就如同人类世界离不开时间和钟表一样。时钟电路对每种单世界离不开时间和钟表一样。时钟电路对每种单片机基本大同小异,电路接法和参数相对固定的,片机基本大同小异,电路接法和参数相对固定的,关心的只是关心的只是CPU的时钟频率是多少,相应的的时钟频率是多少,相应的CPU的指令执行速度有多快。的指令执行速度有多快。时钟电路提供的稳定脉冲信号的周期称为时钟电路提供的稳定脉冲信号的周期称为时钟周时钟周期,期,它是表示它是表示CPU执行指令快慢的时间基准单位。执行指令快慢的时间基准单位。单片机每一条硬件指令执行的时间长短各不相同,单片机每一条硬件指令执行的

11、时间长短各不相同,但一定是时钟周期的整数倍。一般将某条指令执但一定是时钟周期的整数倍。一般将某条指令执行所需的时间称为行所需的时间称为指令周期指令周期。因此,一但时钟电。因此,一但时钟电路确定了,时钟周期就是确定值,而指令周期可路确定了,时钟周期就是确定值,而指令周期可变,是由执行的指令来确定的。变,是由执行的指令来确定的。单片机的硬件接口单片机的硬件接口 (I/O)单片机的硬件接口大致可以分为三类:单片机的硬件接口大致可以分为三类:第第1类是电源接口,用类是电源接口,用VCC,VSS或者或者VCC,GND表示。表示。市面常用的单片机主要分为市面常用的单片机主要分为5V供电的和供电的和3V供电

12、的两供电的两种。种。5V系列兼容性好,但功耗大,已逐步退出市场,系列兼容性好,但功耗大,已逐步退出市场,取而代之的是大量高性能新型取而代之的是大量高性能新型3V系列单片机的推广系列单片机的推广应用。应用。 MCS-51单片机是单片机是5V供电的。供电的。第第2类是输入类是输入/输出接口输出接口(I/O口,有时称为通用口,有时称为通用IO(GPIO),受管脚数目限制,绝大多数单片机片内,受管脚数目限制,绝大多数单片机片内外设的功能都需要在外设的功能都需要在GPIO上复用实现。上复用实现。第第3类是少量的特殊功能管脚,比如复位类是少量的特殊功能管脚,比如复位RESET,时,时钟输入引脚钟输入引脚(

13、XT1,XT2), 编程仿真口编程仿真口(TMS,TDI,TDO,TCK)等。这些管脚需要记住其功)等。这些管脚需要记住其功能和使用要求即可。不需要问太多为什么。能和使用要求即可。不需要问太多为什么。复位信号:复位信号:高电平复位高电平复位CPU,低电平,低电平CPU工作工作EA/VPPALEPSEN名称名称功功 能能片外片外取指取指信号信号(片外(片外程序存储器读程序存储器读)输出端)输出端低电平有效。通过低电平有效。通过P0口读回指令或常数。口读回指令或常数。控制的是片外程序存储器控制的是片外程序存储器RESET 控制信号控制信号地址锁存信号地址锁存信号。ALE低电平时,低电平时, P0口

14、出现口出现数据数据信息;信息; ALE高电平时,高电平时, P0口出现口出现地址地址信息。信息。程序存储器选择信号程序存储器选择信号 EA=0 时,选外部时,选外部ROM;1,地址小于,地址小于4k时,选内部时,选内部ROM地址大于地址大于4k时,选外部时,选外部ROMP0口是口是数据数据/地址地址复用口复用口用用下降沿下降沿 锁存锁存P0口的口的低低8位地址位地址到到外部锁存器外部锁存器MCS-51单片机的一些特殊功能管脚单片机的一些特殊功能管脚寄存器寄存器 内内 容容寄存器寄存器 内内 容容 51 51单片机复位后内部寄存器状态单片机复位后内部寄存器状态PC 0000HACC 00HB 0

15、0HPSW 00HSP 07HDPTR 0000HP0P3 0FFHIP 00000BIE 000000BTMOD 00HTCON 00HTH0 00HTL0 00HTH1 00HTL1 00HSCON 00HSBUF 不定不定PCON 0 000B803180518751VSSVCCRST409200.47FR151kR2 51k+5V复位电路复位电路手动手动复位复位KR上电上电自动复位自动复位KR高电平要保持高电平要保持10ms以上以上+5VRESET高电平有效高电平有效关于单片机复位的说明关于单片机复位的说明 单片机的复位过程是一个必须的过程,要完成内部单元的初始化和硬件电流自检,然后才

16、能开始正常工作。单片机板正常上电一瞬间就开始了“上电复位”。除此以外各种的手动按键复位,欠电压复位,看门狗溢出复位等都大量应用,目的只有一个,让单片机恢复到一个确定的初始状态。 复位电路最简单的实现方法就是一个电阻R和一个电容C的串联,可以实现低电平或者高电平复位。对于可靠性和稳定性要求高的场合,则往往需要专门的多功能复位芯片了。 单片机的时钟和时序单片机的时钟和时序 时钟频率:一般就是单片机外接晶体振荡器的频率,其倒数就是时钟周期。 机器周期:等于12个(时钟周期 / 振荡周期),是执行指令的基准时间单位。 指令周期:执行任一条指令所需时间,51单片机111条指令执行时间分别有1,2,4个机

17、器周期三种。 要点总结: 本节内容基本是芯片手册上直接翻译过来的。都是些比较固定的内容。大多需要记忆。对于时钟周期的理解需要掌握的是晶振频率的倒数是时钟周期,每12个时钟周期是一个机器周期,标准51单片机执行一条指令最短的时间是一个机器周期。改进型的51单片机机器周期等于6个时钟周期,例如STC51。2.2 2.2 单片机存储器的组织和分配单片机存储器的组织和分配 存储器用于存放程序和数据,计算机内部一个基本存储单元是一个字节(8位二进制数)。微型计算机的存储器组织方式有两种:普林斯顿结构和哈佛结构普林斯顿结构和哈佛结构。RAMROM0000H0000HFFFFHFFFFH哈佛结构哈佛结构RO

18、MRAM0000HFFFFH普林斯顿结构普林斯顿结构 例如:采用普林斯顿结构的单片机有STM32 (ARM), MSP430; 采用哈佛结构的有MCS-51,ATMEL的AVR Mega, Microchip的PIC,dsPIC系列。 哈佛结构的特点是ROM和RAM分开独立编址(二者地址编号是可以相同范围的),对两者的访问采用不同的指令和硬件管脚;普林斯顿结构的特点是ROM和RAM安排在统一连续的地址空间中,采用相同的访问指令和硬件逻辑,靠的是地址区间的区分。二者各有所长,一般单片机上哈佛结构应用较多。 关于存储器的组织管理方法可能比较抽象。简单形象点记忆就是: 哈佛结构把程序存储器和数据存储

19、器各自单独分开,每个部分有一套单独的管理操作结构,具体体现在指令的不同、硬件逻辑电路的不同上。 而普林斯顿结构则是把二者一起分配一块大的连续空间上,操作方式和硬件电路都一样,区别方法是根据地址编号范围的不同来进行区分。普遍说哈佛结构单片机上手学习比较容易,普林斯顿结构的学习略微抽象困难一点。STM32F103的普林斯顿存储器组织结构的普林斯顿存储器组织结构dsPIC30F3012哈佛存哈佛存储器组织结构储器组织结构程序程序ROM空间空间数据数据RAM空间空间从物理上分,从物理上分,MCS-51分为分为4个存储空间个存储空间片内片内程序存储器程序存储器 ROM片内片内数据存储器数据存储器 RAM

20、片外片外程序存储器程序存储器 ROM片外片外数据存储器数据存储器 RAM(I/O)从逻辑上分,从逻辑上分,MCS-51分为分为3个逻辑空间个逻辑空间 片片内内、外统一编址外统一编址的的程序存储器程序存储器地址空间地址空间 256B或或384B片内片内数据存储器数据存储器地址空间(地址空间(51/52) 64KB片外片外数据存储器或数据存储器或I/O地址空间地址空间片内固有片内固有需要扩展需要扩展需要扩展需要扩展PC从功能上分,从功能上分,MCS-51分为分为5个地址空间个地址空间 程序存储器程序存储器 ROM 片内数据存储器片内数据存储器 RAM 特殊功能寄存器区特殊功能寄存器区 SFR 位寻

21、址区位寻址区 外部扩展的数据存储器外部扩展的数据存储器 RAM(I/O)区)区先来熟悉先来熟悉51单片机的程序存储器单片机的程序存储器 早期标准型号的51单片机受制造能力的限制,内部程序存储器都很小甚至没有,需要通过接口外扩专用的程序EPROM芯片才能工作,故而说明书都比较复杂。现在记忆学习这些内容变得没什么意义。现今的单片机包括国产改进版的STC51单片机内部的ROM和RAM早已做的足够大,完全可以满足任务需要。 程序存储器用于存储程序代码和较大量的常量数据,此外每种单片机ROM里都有特定的空间用于中断管理。后面有专门章节讲述中断,本节需要先记忆基本知识。 程序存储器的特殊部分 -中断向量表

22、 单片机上电后,PC=0000H指向程序存储器第一个单元地址,然后从0000H开始逐条递增的取指令送给CPU开始执行。 程序存储区一开始部分的几个地址单元被用作为中断服务程序的入口地址,分别如下: 0000H 上电复位后主程序入口地址上电复位后主程序入口地址 0003H 外部中断外部中断0(INT0) 000BH 定时定时/计数器计数器0中断中断 0013H 外部中断外部中断1(INT1) 001BH 定时定时/计数器计数器1中断中断 0023H 串行口串行口(UART)中断)中断(002BH) 定时定时/计数器计数器2中断中断 以上中断程序入以上中断程序入口地址有特殊用口地址有特殊用途,因此

23、一般汇途,因此一般汇编程序设计时主编程序设计时主程序地址分配要程序地址分配要避开中断向量地避开中断向量地址区。址区。 说的再清楚点! 程序代码是按照人工写作顺序逐条的存入MCU的程序存储器里的(存的可是二进制编码存的可是二进制编码) MCU执行程序是通过一个专门的“机械手”(准确名称是程序计数器PC)按顺序逐条去找到这些指令,并由专门机构传递给CPU去执行的。因此“机械手PC”里存储的是下一时刻需要被取出的指令代码的地址编号。那么如果你想要改变程序代码执行的顺序,该怎么办?再来看看再来看看51单片机的数据存储器单片机的数据存储器 单片机的数据存储器用于存储任务数据变量值。受到制造工艺和成本的限

24、制,多数单片机片内RAM都不太大,仅够一般应用需求,不够用时一般都需要外扩专门的RAM芯片。 51单片机的片内数据存储器RAM,尽管内容比较多,繁琐,看似不理解,但是也必须熟记,因为这是以后学习指令和编程的必须基础。 说白了就是不懂的就先背下来。内部内部RAMSFR特殊功能特殊功能寄存器寄存器7FH00HFFH80HMCS-51内部内部RAM配置配置51单片机内部数据存储器配置图单片机内部数据存储器配置图256B1、内部、内部RAM区(区(MCS-51)MCS-51内部内部RAM只有只有128B内部内部RAM区区分为三部分分为三部分地址:地址:00H7FH内部内部RAM7FH00HSFR特殊功

25、能特殊功能寄存器寄存器FFH80H7FH00H位寻址区位寻址区2FH20H工作工作寄存器区寄存器区1FH00H7FH30H数据数据缓冲区缓冲区8080个字节个字节为真正的为真正的 RAM1616个字节分为个字节分为128128个个RAM位位3232个字节分为个字节分为四个工作寄存器区四个工作寄存器区每个区每个区8 8个工作寄存器个工作寄存器0FH08H17H10H2FH20H7FH30H0 0区(区(8 8字节)字节)1 1区(区(8 8字节)字节)2 2区(区(8 8字节)字节)3 3区(区(8 8字节)字节)位寻址区位寻址区数据缓冲区数据缓冲区8080个字节个字节RAM只能按字节寻址只能按

26、字节寻址1616个字节分为个字节分为128128个个RAM位位可可按位按位亦可按字节寻址亦可按字节寻址四四个个工工作作寄寄存存器器区区内部内部RAM区功能配置图区功能配置图R7R0R7R0R7R0R7R000H1FH07H00H1FH18H布尔处理器布尔处理器每个区,每个区,8 8个个工作寄存器工作寄存器R0 R7亦可作普通亦可作普通RAM使用使用 通用寄存器组通用寄存器组 32个个RAM单元单元 共共4个区,每个区个区,每个区8个通用工作寄存器个通用工作寄存器 R0R7“区区”的选择由程序状态字的选择由程序状态字PSW中的中的RS1和和RS0确定确定 工作寄存器区工作寄存器区地地 址址RS1

27、 RS0 2 区区10H 17H1 0 3 区区18H 1FH1 1 0 区区00H 0 007H 1 区区08H 0 10FH 看完前面几张图,有几个问题要说明一下: RAM是CPU可以随意读写修改的地方,CPU要经常使用的工作寄存器和特殊功能寄存器也是放在片内RAM里的。 工作寄存器(工作寄存器(Working Registers) 形象点说就是CPU的贴身侍卫,CPU要快速运算的数据大多要通过工作寄存器来存放和传递,故而工作寄存器尽管地址不一定固定,但都有确定的名称编号。台式计算机需要快速操作的数据量很大,仅仅寄存器就不够用了,因此还专门设置了容量较大的高速缓存(Cache),说白了就是

28、离CPU最近读写也是最快的专用数据存储器。 特殊功能寄存器(特殊功能寄存器(SFR) 特殊功能寄存器占用着片内特殊功能寄存器占用着片内RAMRAM区间,但是不能当区间,但是不能当作普通用户作普通用户RAMRAM存放数据变量。他们是操作片内外存放数据变量。他们是操作片内外设资源的唯一接口,修改设资源的唯一接口,修改SFRSFR的值就意味着外设执的值就意味着外设执行不同的功能。行不同的功能。 特殊功能寄存器比较多,又都需要掌握其功能和特殊功能寄存器比较多,又都需要掌握其功能和使用方法,故需要通过反复编程仿真试验,才能使用方法,故需要通过反复编程仿真试验,才能熟练掌握其应用。熟练掌握其应用。 位寻址

29、区位寻址区 (16个个RAM单元单元 VS 12个个SFR) 字节地址:字节地址:20H 2FH 16个个 RAM 字节共字节共128个个 RAM 位位 位地址:位地址:00H 7FH 12个个SFR中的中的93位位具有位寻址功能具有位寻址功能位寻址区位寻址区128个个RAM位位93个个SFR位位 布尔处理机布尔处理机数据存储器数据存储器的主要组成部分的主要组成部分布尔处理机布尔处理机共共221位位直接地址直接地址能被能被8 8所整除的所整除的构成构成其中其中3 3位位无定义无定义所谓的位寻址区是所谓的位寻址区是51系列单片机特有的部分。用系列单片机特有的部分。用来存储一些仅用一位二进制码可以

30、表示的状态变来存储一些仅用一位二进制码可以表示的状态变量。某些量。某些SFR特殊功能寄存器也是可以按位逐一特殊功能寄存器也是可以按位逐一访问的,那些位则是外设单元的特定功能开关了,访问的,那些位则是外设单元的特定功能开关了,例如例如TR0,TR1, EX0,EX1等。等。由于单片机的由于单片机的CPU访问片上的一切资源都必须通访问片上的一切资源都必须通过地址编号进行查找(学名叫做过地址编号进行查找(学名叫做“寻址寻址”),因此),因此所有可以通过所有可以通过位位方式访问的变量单元也必须方式访问的变量单元也必须给分配确定的地址编号。很自然的这些位变量区给分配确定的地址编号。很自然的这些位变量区的

31、地址编号也是的地址编号也是00H7FH,以及,以及SFR区的区的80HFFH。当然。当然CPU对它们的读写方式是特殊的,对它们的读写方式是特殊的,体现在必须使用位操作指令才能操作到这些区域。体现在必须使用位操作指令才能操作到这些区域。否则大多数指令都是只能读写字节存储单元的。否则大多数指令都是只能读写字节存储单元的。(3) 用户用户RAM区(数据缓冲区)区(数据缓冲区)共共80个单元个单元字节地址:字节地址:30H 7FH8051单片机复位时,堆栈指针单片机复位时,堆栈指针SP指向指向 07H 单元单元片内片内RAM的部分单元可用作堆栈的部分单元可用作堆栈51的栈区不是固定的,为避开工作寄存器

32、区、位的栈区不是固定的,为避开工作寄存器区、位寻址区,用户堆栈一般设置在寻址区,用户堆栈一般设置在 30H 7FH 之间之间真正的真正的RAM单元单元SP 指针指针是是可编程可编程的寄存器的寄存器寄存器、特殊功能寄存器寄存器、特殊功能寄存器寄存器(寄存器(Register):寄存器是一些特定的存储单元,:寄存器是一些特定的存储单元,可能在可能在CPU内部,更多的是分布在单片机内存内部,更多的是分布在单片机内存RAM空间中,其用途是特定的,大致可以分为通用寄存空间中,其用途是特定的,大致可以分为通用寄存器和特殊功能寄存器两类器和特殊功能寄存器两类通用寄存器:通用寄存器:R0,R1R7,主要用于,

33、主要用于CPU临时存储中间变量临时存储中间变量CPU内部的专用寄存器:内部的专用寄存器:PC(程序计数器)(程序计数器)特殊功能寄存器:特殊功能寄存器:SFRA,B,PSW,DPTR,TMOD,TCON,SBUF,IE,IP这些单元是这些单元是CPU和片内外设的和片内外设的通信接口部分,通过设定通信接口部分,通过设定SFR的值可以操作单片机的内部资的值可以操作单片机的内部资源源掌握了某种单片机的寄存器,也就掌握了这种单片机!掌握了某种单片机的寄存器,也就掌握了这种单片机! 程序计数器程序计数器PC$16位专用寄存器位专用寄存器 ,寻址范围,寻址范围64KB$ 通电时自动复位,运行时可手动复位,

34、复位通电时自动复位,运行时可手动复位,复位 后,后,PC的内容自动清零的内容自动清零$PC保存的是下一条将要被执行的指令的地址。保存的是下一条将要被执行的指令的地址。将将PC内容经地址总线送到程序存储器,从该地址单元取回内容经地址总线送到程序存储器,从该地址单元取回指令,译码并执行;同时,指令,译码并执行;同时,PC自动加自动加1PC 0000H 系统的启动地址系统的启动地址PC在在CPU内,不在内,不在RAM区中区中2.3 特殊功能寄存器PC 管理程序执行顺序的过程:管理程序执行顺序的过程: 74H08H24H04H02H22H00H78H74HPC0000HPCMOV A,#08H ADD

35、 A,#04HLJMP,2200HMOV R0,#74H0004H0003H0002H0001H0000H2200H2201H0005H0006H0007H存储器存储器 指令寄存器指令寄存器 74HPC0001H 08HPC0002H 24HPC0003H 04HPC0004H 02HPC 22HPC 00HPC0005H0006H0007HPC2200H 78HPC2201H 74HPC2202H2202HMOV A,#08HADD A,#04HLJMP 2200HMOV R0,#74H下一条下一条指令指令 累加器累加器A 地址:地址:0E0H最常用的一个专用寄存器最常用的一个专用寄存器大部

36、分单操作数指令的操作数取自大部分单操作数指令的操作数取自A很多双操作数指令的一个操作数取自很多双操作数指令的一个操作数取自A算术运算和逻辑运算的结果放在算术运算和逻辑运算的结果放在A或或AB对中对中指令系统采用指令系统采用A 作为累加器的作为累加器的标识符标识符例:例:INC A;执行;执行A中的内容加中的内容加1操作操作ADD A,#data;执行;执行A (A) + #data 操作操作位寻址功能位寻址功能 寄存器寄存器B 地址:地址:0F0H 8位寄存器位寄存器与累加器与累加器 A 配合使用,一般用于乘除法运算配合使用,一般用于乘除法运算寄存器寄存器 B 存放第二操作数、存放第二操作数、

37、乘积的高乘积的高8位位字节字节除法的除法的余数余数部分部分例:例:MUL A B;执行执行 (A)(B) B ADIV A B;执行执行 (A)/(B) 商商 A 余余 B 次累加器次累加器作作 一一 RAM单元用单元用 B余余 B 程序状态字程序状态字PSW 地址:地址:0D0H 8位寄存器,存放程序的状态信息位寄存器,存放程序的状态信息CY D7 D6 D5 D4 D3 D2 D1 D0ACF0RS1RS0OV P格式如下:格式如下:进进/借位标志借位标志CY(PSW.7)加法加法运算时,如果运算时,如果D7有有进位进位,则,则CY=1,否则否则CY=0减法减法运算时,如果运算时,如果D7

38、有有借位借位,则,则CY=1,否则否则CY=0布尔运算中被定义为布尔运算中被定义为位累加器位累加器PSWD7 D0CY辅助进位标志辅助进位标志AC(PSW.6) 8位加法位加法运算时,如果运算时,如果低半字节低半字节的的D3向向D4有进位,则有进位,则 AC=1,否则否则AC=08位减法位减法运算时,如果运算时,如果低半字节低半字节的的D3向向D4有借位,则有借位,则AC=1,否则否则AC=0标志标志F0(PSW.5)由用户定义由用户定义可用软件来使它置可用软件来使它置“1”、或清、或清“0”可由软件测试可由软件测试F0来控制程序流向来控制程序流向D7D4 D3D0AC工作寄存器区选择位工作寄

39、存器区选择位RS1 、RS0(PSW.4、 PSW .3)通过软件来改变通过软件来改变RS1 、RS0的组合,以确定当前的组合,以确定当前工作寄存器区。工作寄存器区。工作寄存器区工作寄存器区地地 址址RS1 RS0 2 区区10H 17H1 0 3 区区18H 1FH1 1 0 区区00H 0 007H 1 区区08H 0 10FHPSW.4 PSW.3用布尔操作来改变用布尔操作来改变OV= C6 C7 +溢出标志溢出标志OV(PSW.2)作为作为有符号数有符号数加、减法时由硬件置位或清除,以指加、减法时由硬件置位或清除,以指示运算结果是否溢出示运算结果是否溢出执行加执行加/减法指令时减法指令

40、时,用,用Ci 表示表示i位向位向i+1有进有进/借位借位a) 第第6位位向向第第7位有进位有进/借位,而第借位,而第7位位不向不向CY进进/借位时借位时b) 第第6位位不向不向第第7位进位进/借位,而第借位,而第7位位向向CY有有进进/借位时借位时 OV=1, 否则否则 OV=0若若OV=1,意味着加,意味着加/减法的结果已超出了一个字节减法的结果已超出了一个字节 有符号补码数有符号补码数 所所表示的范围(表示的范围(-128 +127)a) OV= 1 0b) OV= 0 1D7D6D5D4 D3D2D1D0例例: 0 1 0 1 0 1 1 0 (+86)(正正) 0 0 1 1 0 0

41、 1 0 (+50) (正正)00010001此时此时C6 =1、 C7 =0 则则D7D6D5D4 D3D2D1D0 1 0 0 1 0 1 1 0 (-106)(负负)110111001( +136) (正正)(-197) (负负)OV= C6 C7 =1 + +此时此时C6 =0、 C7 =1 则则OV= C6 C7 =1 + +符符号号位位1 1 0 1 0 0 1 0 1 (-91) (负负) Cy奇偶标志奇偶标志P(PSW.0) 每个指令周期都由硬件置位或清零,以表示累加器每个指令周期都由硬件置位或清零,以表示累加器A中值为中值为“1”的位数的的位数的奇偶性奇偶性 该标志可用于串行

42、数据通讯,验证数据传输的可靠性该标志可用于串行数据通讯,验证数据传输的可靠性P =1 A中中1的个数为奇数的个数为奇数0 A中中1的个数为偶数的个数为偶数PSW是表示是表示CPU当前运行状态的寄存器当前运行状态的寄存器D7D6D5D4 D3D2D1D0 0 1 1 1 1 1 1 1 (7FH) 0 1 0 0 0 1 1 1 (47H)01100011(C6H)MOV A, #7FHADD A, #47H#7FHACY=0AC=1执行第一条指令后执行第一条指令后P=1,执行第二条指令后,执行第二条指令后P=0此时此时C6 =1、 C7 =0 则则OV= C6 C7 =1 + +有有无无 堆栈

43、指针堆栈指针 SP8位寄存器,存放位寄存器,存放栈顶地址栈顶地址保护保护CPU现场和现场和断点地址断点地址作用:作用:工作方式:工作方式:“先进后出先进后出”或或“后进先出后进先出”数据压入堆栈时,数据压入堆栈时,SP自动加自动加1数据弹出堆栈时,数据弹出堆栈时,SP自动减自动减1 SP始终指向始终指向栈顶地址栈顶地址中断时中断时转子时转子时栈区栈区“向上生成向上生成”按按“先进后出先进后出”工作原则,由工作原则,由SP组织的组织的内部内部 RAM区域,被称为堆栈。区域,被称为堆栈。主程序主程序SPSP例:堆栈操作例:堆栈操作建立堆栈建立堆栈压入操作压入操作弹出操作弹出操作 60H61H62H

44、63H64HA的内容的内容B的内容的内容SPMOV SP, #60HPUSH APUSH BPOP direct SPdirect栈栈 底底堆栈(堆栈(STACK)是计算机技术中重要的一类数据结)是计算机技术中重要的一类数据结构,用途非常广泛。对堆栈区的访问是按构,用途非常广泛。对堆栈区的访问是按“后进先后进先出出”原则的,对应的操作指针式原则的,对应的操作指针式SP,支持的操作是,支持的操作是入栈入栈(PUSH)和出栈和出栈(POP),要牢记入栈和出栈的操,要牢记入栈和出栈的操作顺序。作顺序。堆栈到底有什么用?堆栈到底有什么用?堆栈是对于计算机内存非常安全可靠的访问方式,堆栈是对于计算机内存

45、非常安全可靠的访问方式,严谨的操作规则可以保证数据不会出错丢失等。单严谨的操作规则可以保证数据不会出错丢失等。单片机中的断点地址等都是保存在当前堆栈中的。计片机中的断点地址等都是保存在当前堆栈中的。计算机算机C程序中的大部分变量和函数也是保存在堆栈程序中的大部分变量和函数也是保存在堆栈中读取和调用的。进一步感兴趣的同学可以阅读中读取和调用的。进一步感兴趣的同学可以阅读数据结构数据结构教程。教程。 数据指针数据指针 DPTR16位寄存器,高字节用位寄存器,高字节用DPH表示,低字节用表示,低字节用DPL表示表示对外部对外部 RAM 或或 I/O 口寻址,范围口寻址,范围64KB例:例: MOVX

46、 A,DPTRMOVX DPTR, A;将外部将外部RAM中地址为中地址为DPTR的单元内容的单元内容读读到到A中中;将将A中的内容中的内容写写到外部到外部RAM中地址为中地址为DPTR的单元的单元MOVC A, A+ DPTR;采用基址采用基址+变址的方法变址的方法读程序存储器内读程序存储器内的表格常数的表格常数;DPTR为基址寄存器,为基址寄存器, A为变址寄存器为变址寄存器(DPTR)AP3.7 RDP3.6 WR(A)DPTR(A)+(DPTR)APSEN数据指针数据指针DPTR,跟,跟C语言中的变量指针差不多,语言中的变量指针差不多,用来提供被访问单元的用来提供被访问单元的16位目标

47、地址,到底访问位目标地址,到底访问的是程序存储器还是数据存储器则取决于执行的的是程序存储器还是数据存储器则取决于执行的指令是指令是MOVC还是还是MOVX。MOVC 执行的是对程序存储器的访问;执行的是对程序存储器的访问;MOVX则是执行对单片机片外扩展的数据存储则是执行对单片机片外扩展的数据存储器器RAM的访问。的访问。要注意要注意DPTR是不能用来给出片内是不能用来给出片内RAM的地址!的地址!以下的特殊功能寄存器可以先大致了解下其定义以下的特殊功能寄存器可以先大致了解下其定义和功能,在以后的编程实践中通过大量动手编程和功能,在以后的编程实践中通过大量动手编程掌握其应用方法。掌握其应用方法

48、。 I/O 端口端口P0 P3 地址地址:80H 90H 0A0H 0B0H专用寄存器专用寄存器P0 P3分别是端口分别是端口P0 P3的锁存器的锁存器 串行数据缓冲器串行数据缓冲器 SBUF 地址地址:99H存放欲发送的数据存放欲发送的数据存放已接收的数据存放已接收的数据一个地址一个地址: 99H 定时定时/计数器计数器 T0 T1 MCS-51系列有系列有2个个16位位定时定时/计数器计数器T0 、T1MCS-52系列增加了系列增加了1个个16位位定时定时/计数器计数器T2SBUF两个缓冲器两个缓冲器共用共用“写写”发送缓冲器发送缓冲器“读读”接受缓冲器接受缓冲器MOV SBUF,AMOV

49、 A ,SBUF 其他控制寄存器其他控制寄存器IP0B8H 中断优先控制寄存器中断优先控制寄存器IE0A8H 中断允许控制寄存器中断允许控制寄存器TMOD89H 定时定时/计数器方式控制寄存器计数器方式控制寄存器TCON88H 定时定时/计数器控制寄存器计数器控制寄存器SCON99H 串行口控制寄存器串行口控制寄存器PCON97H 电源及波特率选择控制电源及波特率选择控制地址地址名称名称作作 用用对寄存器和特殊功能寄存器部分的总结:对寄存器和特殊功能寄存器部分的总结:不同的单片机不同的单片机CPU,内部的寄存器都是各不相同的,内部的寄存器都是各不相同的,掌握了各种寄存器的使用,也就会用这种单片

50、机了。掌握了各种寄存器的使用,也就会用这种单片机了。学习寄存器这部分知识,不能靠死记硬背,要靠在学习寄存器这部分知识,不能靠死记硬背,要靠在编程实践中反复使用尝试,才能真正熟练使用寄存编程实践中反复使用尝试,才能真正熟练使用寄存器,也就会用了单片机。器,也就会用了单片机。单片机在设计时给其内部的每个单元都会分配一个数单片机在设计时给其内部的每个单元都会分配一个数字编号,这个编号就是这个单元的字编号,这个编号就是这个单元的“地址地址”。因此,。因此,地址和单元是一一对应的。为了方便人对寄存器的记地址和单元是一一对应的。为了方便人对寄存器的记忆和使用,寄存器单元都会给出一个名字,这个名字忆和使用,

51、寄存器单元都会给出一个名字,这个名字其实就是它的地址。二者是等同的。后面将会提到:其实就是它的地址。二者是等同的。后面将会提到:读写特殊功能寄存器的名字,其实就是读写它所对应读写特殊功能寄存器的名字,其实就是读写它所对应的地址单元,也就叫做的地址单元,也就叫做“直接寻址方式直接寻址方式”2.4 I/O端口的功能和三总线逻辑的实现 51系列单片机共有P0,P1,P2,P3四个八位I/O端口,理解时需着重从功能和使用方法上掌握。 A) P0,P1,P2,P3四个8位口均可作为通用I/O口使用,相当于32个开关量输入/输出接口,可用于输出开关信号和读入外部开关状态,其中 P0口用作通用I/O时是漏极

52、开路输出形式,需外接上拉电阻才能正常工作(即输出1和0)。 P1,P2,P3用作通用I/O时都是具有内部弱上拉的输出结构,无需外部上拉电阻。 P0,P1,P2,P3用作输入口时都需先向相应端口寄存器写1,才能读入外部开关状态。 当用于外部设备扩展连接时,P0,P1,P2,P3口各具不同功能,需分别理解,并按要求连接。 P0口是低8位地址/数据总线,根据ALE状态分时输出外部设备低8位地址和进行数据输入输出,用做此功能时P0口内部是推挽接口,不不需外部上拉电阻需外部上拉电阻,特别是用于外部扩展时,P0口不能再用于通用I/O输出功能。 P1口仍作为内部上拉的通用I/O口使用,因此很多人喜欢用P1口做外部开关量输入输出,很多新增强型51兼容单片机都利用P1口增加了如A/D,PWM,CCP,Timer等附加功能。B)用于外部设备扩展连接时)用于外部设备扩展连接时 P2口用作外部设备扩展连接时用于输出外设的高8位地址信息,此时一般不能再用于通用I/O输出,应避免意外的错误发生。 P3口各个位根据第二功能使用情况可分别独立工作。WR#,RD#信号用于外部扩展时的输入输出选通信号,INT0#,INT1#用于外部中断信号输入,T0,T1用于外部时钟脉冲计数输入端

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论