AT89C51单片机学习课件.ppt
单片机原理与接口技术嵌入式微控制器的开发入门参考资料1 1,单片机原理及其接口技术单片机原理及其接口技术 -胡汉才胡汉才 清华大学出版社(清华大学出版社(3232元)元)2 2,MCS-51/96MCS-51/96系列单片机原理及应用系列单片机原理及应用 -孙涵芳孙涵芳 徐爱卿徐爱卿 北京航空航天大学出版社(北京航空航天大学出版社(3535元)元)3 3,MCS-51MCS-51系列单片机实用接口技术系列单片机实用接口技术 -李华李华北京航空航天大学出版社(北京航空航天大学出版社(4040元)元)4 4,电子世界电子世界 -中国电子学会主办(期刊中国电子学会主办(期刊 6.00 6.00元元/期)期)本课主要内容及课时安排本课主要内容及课时安排 总讲课课时总讲课课时2424学时学时n n第一章:第一章:MCS-51MCS-51系列单片机的基本硬件结构系列单片机的基本硬件结构 (8 8课时)课时)介绍介绍5151单片机内部硬件结构(数据寄存器、程序存储器、输入输出端单片机内部硬件结构(数据寄存器、程序存储器、输入输出端口、定时计数器、串行口及中断等)口、定时计数器、串行口及中断等)n n第二章:第二章:MCS-51MCS-51单片机的指令系统单片机的指令系统 (4 4课时)课时)5151单片机的单片机的111111条指令的分类、寻址方式、伪指令及使用中的注意事项条指令的分类、寻址方式、伪指令及使用中的注意事项n n第三章:第三章:MCS-51MCS-51单片机的系统扩展及应用单片机的系统扩展及应用 (1212课时)课时)程序与数据存储器的扩展、定时程序与数据存储器的扩展、定时/计数器的应用、串行口的应用及计数器的应用、串行口的应用及A/DA/D、D/AD/A转换器与单片机的接口和键盘扫描转换器与单片机的接口和键盘扫描/动态显示接口电路。动态显示接口电路。如何学习本门课程第一章是基础,只有熟知第一章是基础,只有熟知单片机的硬件结构单片机的硬件结构和特点才能正确的使用单片机和特点才能正确的使用单片机进行各种编程、应用和开发。进行各种编程、应用和开发。第二章的关键是要正确的理解和掌握指令的第二章的关键是要正确的理解和掌握指令的寻址方式寻址方式。MCS-51MCS-51单片机的单片机的111111条指令,要正确理解和运用。条指令,要正确理解和运用。第三章要求要运用许多基础知识,将各种外围电路与单片机之间实现接口,第三章要求要运用许多基础知识,将各种外围电路与单片机之间实现接口,因此要掌握外围电路的原理、特性和使用方法。这是进行系统设计的基础。因此要掌握外围电路的原理、特性和使用方法。这是进行系统设计的基础。参加实验前认真做好预习。实验中独立地进行参加实验前认真做好预习。实验中独立地进行编程、调试编程、调试。完整的掌握单。完整的掌握单片机的编程、调试过程是每一个从事单片机开发的工程师所必须跨出的第片机的编程、调试过程是每一个从事单片机开发的工程师所必须跨出的第一步。一步。好的参考书。无论是初学入门,还是将来开发,它都是很好的好的参考书。无论是初学入门,还是将来开发,它都是很好的“工具工具”和和“钥匙钥匙”。硬件基本概念:微型计算机微型计算机单片机单片机嵌入式微嵌入式微控制器控制器嵌入式计算机嵌入式计算机系统系统继续微型计算机:l l由由CPUCPU、存储器、定时、存储器、定时/计数器、并行输入计数器、并行输入/输输出接口电路、中断控制器等大规模出接口电路、中断控制器等大规模ICIC芯片安置芯片安置在一个电路板上,加上键盘、显示器等构成了在一个电路板上,加上键盘、显示器等构成了微型计算机的硬体部分。微型计算机的硬体部分。返回单片机将微型计算机系统所用的大多数将微型计算机系统所用的大多数ICIC芯片集成到一芯片集成到一个芯片中。可以认为,单片机就是将微型计算机个芯片中。可以认为,单片机就是将微型计算机的的CPUCPU、存储器、存储器、I/OI/O端口、中断控制器等全部端口、中断控制器等全部做在一个芯片中去。做在一个芯片中去。美国美国INTELINTEL公司生产的公司生产的MCS-51MCS-51单片机就是一种单片机就是一种典型的、典型的、按照微型计算机的框架,采用大规模按照微型计算机的框架,采用大规模ICIC工艺制造工艺制造的单片机,也是目前世界上使用量最大的单片机,也是目前世界上使用量最大的一种较典型的产品。的一种较典型的产品。返回嵌入式微控制器是单片机发展的一个高级形式,也是单片机发展的必然是单片机发展的一个高级形式,也是单片机发展的必然趋势。它的设计理念不再停留在模仿微型计算机的结构,趋势。它的设计理念不再停留在模仿微型计算机的结构,而是而是面向应用、加大功能、减少功耗、精简指令系统提面向应用、加大功能、减少功耗、精简指令系统提高运行速度高运行速度为出发点来设计单片机的框架。这种处理器为出发点来设计单片机的框架。这种处理器的最大特征是不仅包含了一般单片机的所有硬件电路,的最大特征是不仅包含了一般单片机的所有硬件电路,还集成了放大器、比较器、还集成了放大器、比较器、A/DA/D转换器和转换器和PWMPWM电路等等。电路等等。用它来设计一个智能化的产品,可以进一步简化外围电用它来设计一个智能化的产品,可以进一步简化外围电路,降低开发成本,甚至完成一般的单片机所不能完成路,降低开发成本,甚至完成一般的单片机所不能完成的任务。的任务。美国美国MicrochipMicrochip公司生产的公司生产的PICPIC单片机等产品就是这类产品单片机等产品就是这类产品的代表,实际上的代表,实际上PICPIC单片机也称为单片机也称为“嵌入式微控制器嵌入式微控制器”,如如PIC16F877PIC16F877等。等。返回嵌入式计算机系统人们在工业控制、家电产品、智能仪表、汽车电子等领域人们在工业控制、家电产品、智能仪表、汽车电子等领域进行智能化设计时,将嵌入到被控制对象(如:家电、汽进行智能化设计时,将嵌入到被控制对象(如:家电、汽车、机床等)中的、已经失去了原有的计算机车、机床等)中的、已经失去了原有的计算机形态形态及及功能功能的专用的专用计算机计算机称之为称之为“嵌入式计算机系统嵌入式计算机系统”。在这些被控制对象中,往往要求嵌入式计算机系统要有在这些被控制对象中,往往要求嵌入式计算机系统要有极极小的体积和极低的成本,要有极小的功耗和较高的可靠性小的体积和极低的成本,要有极小的功耗和较高的可靠性。而这些又恰恰是通用计算机无法作到的。因此以单片机为而这些又恰恰是通用计算机无法作到的。因此以单片机为代表的嵌入式计算机系统(也称嵌入式微控制器)极大的代表的嵌入式计算机系统(也称嵌入式微控制器)极大的满足了这种市场的需求。反过来,市场的需要也迫使单片满足了这种市场的需求。反过来,市场的需要也迫使单片机去不断完善、发展,使其分类越来越细,品种越来越多。机去不断完善、发展,使其分类越来越细,品种越来越多。微型计算机与单片机在硬件结构上的比较 微型计算机微型计算机 单片机单片机数据RAMCPU并行I/O程序ROM定时/计数器串型端口中断控制器扩展I/O端口系统总线(DB、AB、CB)微型计算机的组成框图(由多个IC芯片组装在一个主电路板上)MCS-51单片机所有单元都组装在一个IC芯片上返回第一章:MCS-51系列单片机的基本硬件结构1.11.1 MCS-51 MCS-51单片机的主要性能和特点单片机的主要性能和特点1.21.2 MCS-51 MCS-51单片机单片机内部方框图内部方框图1.3 1.3 MCS-51MCS-51单片机的引脚定义单片机的引脚定义1.41.4 MCS-51 MCS-51单片机的单片机的存储器存储器的配置的配置1.61.6 输入输出输入输出端口端口1.51.5 震荡震荡器、时钟电路和器、时钟电路和CPUCPU的时序的时序1.71.7 MCS-51MCS-51单片机的定时单片机的定时/计数器计数器1.8 MCS-51单片机的串行接口1.9 1.9 MCS-51MCS-51的中断系统的中断系统 1.1 MCS-51单片机的主要性能和特点内部程序存储器内部程序存储器内部程序存储器内部程序存储器ROM ROM(以以以以89C5189C51为例为例为例为例 ):4K4K的存储容量;的存储容量;内部数据存储器内部数据存储器内部数据存储器内部数据存储器RAMRAM:256B(256B(128B128B的的RAM+21BRAM+21B的的SFR)SFR);寄存器区:寄存器区:寄存器区:寄存器区:设有设有4 4个寄存器区,每一个区有个寄存器区,每一个区有R0-R7R0-R7八个工作寄存器;八个工作寄存器;8 8位并行输入输出端口:位并行输入输出端口:位并行输入输出端口:位并行输入输出端口:P0P0、P1P1、P2P2和和P3P3;定时定时定时定时/计数器:计数器:计数器:计数器:2 2个个1616位的定时位的定时/计数器;计数器;串型口:串型口:串型口:串型口:全双工的端口(全双工的端口(RXDRXD:接收端,:接收端,TXDTXD发送端)发送端);中断系统:中断系统:中断系统:中断系统:设有设有5 5个中断源;个中断源;系统扩展能力:系统扩展能力:系统扩展能力:系统扩展能力:可外接可外接64K64K的的 ROM ROM 和和64K64K的的 RAM RAM;堆栈:堆栈:堆栈:堆栈:设在设在RAMRAM单元中,可以浮动既通过堆栈指针单元中,可以浮动既通过堆栈指针SPSP来确定堆栈的位置来确定堆栈的位置布尔处理机:布尔处理机:布尔处理机:布尔处理机:配合布尔运算的指令进行各种逻辑运算;配合布尔运算的指令进行各种逻辑运算;指令系统:指令系统:指令系统:指令系统:111111条指令。按功能可分为数据传送、算术运算、逻辑运算、条指令。按功能可分为数据传送、算术运算、逻辑运算、控制转移和布尔操作控制转移和布尔操作5 5大类。大类。返回1.2:MCS-51单片机内部方框图 时钟电路4KROM程序存储器256BRAM数据存储器2X16位定时/计数器CPU处理器64KB总线扩展控制器可编程I/O端口P0-3可编程串行口MCS-51系列芯片及制造工艺型号型号 片内片内ROMROM片内片内RAMRAMI/OI/O口线口线备备 注注80318031无无128B+SFR128B+SFR8 844DIP 40DIP 40脚脚80518051掩膜掩膜4KB4KB128B+SFR128B+SFR8 844DIP 40DIP 40脚脚87518751EPROM 4KBEPROM 4KB128B+SFR128B+SFR8 844DIP 40DIP 40脚脚89C5189C51FLASH 4KBFLASH 4KB128B+SFR128B+SFR8 844DIP 40DIP 40脚脚89C205189C2051FLASH 2KBFLASH 2KB128B+SFR128B+SFR1515简化简化DIP 20DIP 20脚脚8XC5528XC5528K8K256B+SFR256B+SFR8 866增强多功能型增强多功能型返回1.3:MCS-51单片机的引脚定义MCS-51MCS-51单片机有两种封装形式:单片机有两种封装形式:a.40 a.40脚的双列直插脚的双列直插DIPDIP封装;封装;b.44 b.44脚的脚的PLCCPLCC。1 1,主电源引脚主电源引脚:Vcc(+5V-40Vcc(+5V-40脚脚)和和Vss(GND 20Vss(GND 20脚脚););2 2,外接晶体引脚:外接晶体引脚:XTAL1XTAL1(1919脚)、脚)、XTAL2XTAL2(1818脚)脚),只要在只要在这两脚之间接入一个晶体震荡器,单片机就可以以此晶体的频这两脚之间接入一个晶体震荡器,单片机就可以以此晶体的频率开始工作。常用的晶体频率有率开始工作。常用的晶体频率有0-24M0-24M,频率越高,单片机的频率越高,单片机的工作速度就越快,但单片机的功耗就要增加。工作速度就越快,但单片机的功耗就要增加。3 3,控制或与电源复用引脚:控制或与电源复用引脚:RST/VpdRST/Vpd、ALE/PROGALE/PROG、/PSEN/PSEN和和VddVdd RST/VpdRST/Vpd(9 9脚):脚):在系统上电震荡器开始工作时,在系统上电震荡器开始工作时,在内部在内部加在此引脚上有一个两个时钟周期的高电平使单片机复位。但加在此引脚上有一个两个时钟周期的高电平使单片机复位。但为了使系统复位可靠,建议外加为了使系统复位可靠,建议外加 一个上电复位电路,延长复一个上电复位电路,延长复位的时间。位的时间。当单片机掉点时,此引脚可以接入备用电源向单片当单片机掉点时,此引脚可以接入备用电源向单片机内部的机内部的RAMRAM供电,以防止供电,以防止RAMRAM中的数据丢失。中的数据丢失。引脚图在复位状态下:所有在复位状态下:所有SFRSFR的内容全变为的内容全变为“0”“0”,端口输出端口输出“1”“1”。RAMRAM内容不变。内容不变。MCS-51RSTVccMCS-51RSTVcc1K10tVT延长上电复位时间的电路和RST端上电电压曲线具有手动复位功能 的复位电路RC87 486 39 5102 1 VoVcc触发触发信号VoVc87 486 39 5102 1 VoRSTVccP1.0VccP1.0VoV备用使用555电路构成的掉电保护电路由555构成的单稳态电路、波形 单稳态单路构成的掉电保护电路、波形掉电保护原理及过程电源监控电路对电源电源监控电路对电源VCCVCC进行监控,当进行监控,当VCCVCC的电源开始下降的电源开始下降时向单片机的时向单片机的/INT0/INT0或或/INT1/INT1发一个中断申请信号。发一个中断申请信号。单片机收到中断信号单片机收到中断信号,立即进入中断程序。在电源消失前:立即进入中断程序。在电源消失前:1 1,迅速将一些重要的信息送,迅速将一些重要的信息送RAMRAM保存;保存;2 2,从,从P1.0P1.0引脚输出负脉冲引脚输出负脉冲,触发单稳进行电源切换。触发单稳进行电源切换。外部单稳电路进入但稳态后,由于外部单稳电路进入但稳态后,由于VCCVCC的消失,使电路无法的消失,使电路无法对单稳电容充电,所以单稳电路一直处于对单稳电容充电,所以单稳电路一直处于“休眠状态休眠状态”。当当VCCVCC电源恢复后电源恢复后,VCC,VCC对电容充电,经对电容充电,经后脱离单稳态。后脱离单稳态。电源监测电路/INT0 RSTMCS-51 P1.0Vo Vdd 555触发输入 Vcc备用电源 ALE/PROGALE/PROG(3030脚):脚):以一个不变的频率(系统时钟以一个不变的频率(系统时钟 fosc/6)fosc/6)周期性输出正脉。周期性输出正脉。当单片机使用外部存储器时,此信号可当单片机使用外部存储器时,此信号可作为低八位地址的锁存信。作为低八位地址的锁存信。对于对于EPROMEPROM型的单片机型的单片机,此脚此脚还是用于写程序时,输入编程脉冲。还是用于写程序时,输入编程脉冲。/PSEN/PSEN(2929脚):脚):外部程序程序存储器的选通信号。当单片机外部程序程序存储器的选通信号。当单片机使用外部程序存储器时,此脚在一个机器周期内产生两次负使用外部程序存储器时,此脚在一个机器周期内产生两次负脉冲。注意,访问外部数据存储器时,此信号无效。脉冲。注意,访问外部数据存储器时,此信号无效。/EA/Vdd/EA/Vdd(3131脚):脚):外部程序存储器的选择端控制端:当此外部程序存储器的选择端控制端:当此脚加入脚加入“1”“1”电平是,单片机使用内部的程序存储器;当电平是,单片机使用内部的程序存储器;当EAEA加入低电平时,系统只使用外部的程序存储器。加入低电平时,系统只使用外部的程序存储器。但要特别注意:如果但要特别注意:如果EA=1EA=1既使用单片机内部的程序存既使用单片机内部的程序存储器时,如果程序计数器储器时,如果程序计数器PCPC的值超过的值超过0FFFH0FFFH时,单片机将时,单片机将自动转向外部程序存储器自动转向外部程序存储器1000H1000H开始的单元。开始的单元。对于对于EPROMEPROM型的单片机,此脚还是用于写程序时,加入型的单片机,此脚还是用于写程序时,加入2121伏的编程电压。伏的编程电压。时序图引脚图4 4,并行输入输出端口引脚(并行输入输出端口引脚(P0-P3P0-P3)P0.0-P0.7 P0P0.0-P0.7 P0端口线端口线(39-32(39-32脚脚):输出能力最强的端口,输出能力最强的端口,可以带动可以带动8 8个个TTLTTL负载。驱动一个负载。驱动一个MOSMOS负载时,应接一个负载时,应接一个10K10K左右的上拉电阻。如果系统使用外接存储器时,该口还作为地左右的上拉电阻。如果系统使用外接存储器时,该口还作为地址(低八位)总线和数据总线,注意在这种情况下,址(低八位)总线和数据总线,注意在这种情况下,P0P0口就口就不能通用的不能通用的I/OI/O端口。端口。P1.0-P1.7 P1P1.0-P1.7 P1端口线端口线(1 8(1 8脚脚):负载能力为负载能力为4 4个个TTLTTL负载。负载。P2.0 P2.7 P2P2.0 P2.7 P2端口线端口线(21 28(21 28脚脚):通用通用I/OI/O端口。端口。除了做通用除了做通用I/OI/O端口外,当系统使用外接存储器时,该口还作端口外,当系统使用外接存储器时,该口还作为地址(高八位)总线,在这种情况下,为地址(高八位)总线,在这种情况下,P0P0口就不能通用的口就不能通用的I/OI/O端口。负载能力为端口。负载能力为4 4个个TTLTTL。引脚图l lP3.0 P3.7 P3P3.0 P3.7 P3端口线端口线 (10 1710 17脚):脚):P3 P3口除了做通用的口除了做通用的I/OI/O端口外,同时它还有第二功端口外,同时它还有第二功能),负载能力为能),负载能力为4 4个个TTLTTL。口线口线口线口线定义定义定义定义说明说明说明说明口线口线口线口线定义定义定义定义说明说明说明说明P3.0P3.0RXDRXD串行数据输入口串行数据输入口P3.4P3.4T0T0计数器外部输入信号计数器外部输入信号P3.1P3.1TXDTXD串行数据输出口串行数据输出口P3.5P3.5T1T1计数器外部输入信号计数器外部输入信号P3.2P3.2INT0INT0外部中断输入口外部中断输入口P3.6P3.6/WRWR外部数据存储器写信号外部数据存储器写信号P3.3P3.3INT1INT1外部中断输入口外部中断输入口P3.7P3.7/RD/RD外部数据存储器读信号外部数据存储器读信号P3口第二功能表引脚图 MCS-51MCS-51单片机外型图(单片机外型图(DIPDIP封装)封装)MCS-51 MCS-51单片机的逻辑符号图单片机的逻辑符号图VCCRSTXTAL1 P0口XTAL2/EA/PSENALE P1口P3口RXDTXD/INT0/INT1 P2口T0T1/WR/RDGND87C51EPROM型AT89C51ATMELFLASH型返回返回上一次1.4 MCS-51单片机的存储器的配置 MCS-51 MCS-51单片机单片机的存储器的配置特点的存储器的配置特点MCS-51MCS-51单片机片内、外单片机片内、外程序程序存储器的使用示意图存储器的使用示意图1.4.1 1.4.1 程序程序存储器存储器(片内与片外片内与片外)1.4.2 1.4.2 内部数据内部数据存储器存储器RAMRAMMCS-51 MCS-51 片内片内 、片外、片外 数据存储器数据存储器示意图示意图MCS-51MCS-51单片机片单片机片内存储器内存储器低低 128B 128B 字节功能分配图字节功能分配图片内片内 RAM RAM(20H-2FH20H-2FH)中的位寻址区)中的位寻址区结构图结构图特殊功能寄存器特殊功能寄存器 SFRSFR1.4.3 1.4.3 外部数据存储器外部数据存储器第一章第四节内容小结第一章第四节内容小结程序存储器六个特殊的程序存储器六个特殊的单元单元返回第1章主菜单1.4.0 MCS-51单片机的存储器的配置特点(89C51)在在MCS-51MCS-51单片机的内部集成了单片机的内部集成了4K4K的程序存储器和的程序存储器和256B256B的数据存储器,同时还可以使用片外的程序的数据存储器,同时还可以使用片外的程序存储器和数据存储器,其扩展能力都是存储器和数据存储器,其扩展能力都是64K64K。从物理结构的角度讲,从物理结构的角度讲,5151单片机的存储系统可以单片机的存储系统可以分为四个存储空间:既片内分为四个存储空间:既片内ROMROM,RAMRAM和片外和片外ROMROM、RAMRAM。从逻辑上讲(既用户编程的角度讲)从逻辑上讲(既用户编程的角度讲)5151单片机的单片机的存储系统又可分为三个存储空间。既片内存储系统又可分为三个存储空间。既片内RAMRAM,片外片外RAMRAM和片内、外的程序存储器和片内、外的程序存储器ROMROM。从物理结构上单片机系统的存储器结构图(四个部分)MCS-51单片机片内ROM4K片内RAM256B片外RAM64K片外ROM64K返回返回上一次1.4.1 程序存储器(片内与片外)1.1.程序存储器是用来存放编好的程序、常数和表程序存储器是用来存放编好的程序、常数和表格的。格的。2.2.在在MCS-51MCS-51单片机中,当引脚单片机中,当引脚EA=1EA=1时,系统使时,系统使用片内的用片内的4KROM4KROM来存储程序。来存储程序。EA=0EA=0时,系统时,系统使用片外的使用片外的ROMROM。3.3.无论是使用片内还是使用片外的无论是使用片内还是使用片外的ROMROM(既既 EA=1EA=1或或EA=0EA=0),),其起始地址都是从其起始地址都是从0000H0000H单元单元开始。开始。4.4.如果如果EA=1EA=1(使用片内的程序存储器时):(使用片内的程序存储器时):5.5.程序从程序从0000H0000H开始执行。开始执行。6.6.注意:在这种情况下,注意:在这种情况下,如果程序计数器如果程序计数器的指针的指针PCPC值超过值超过0FFFH0FFFH(4K4K)时,)时,单片机就要自单片机就要自动的转向片外的动的转向片外的ROMROM存储器(尽管存储器(尽管EA=1EA=1),且从),且从片外片外ROMROM的的1000H1000H单元开始执行程序。但单片机单元开始执行程序。但单片机是无法使用片外是无法使用片外ROMROM的的0000H-0FFFH0000H-0FFFH这这4K4K单元。单元。返回MCS-51单片机片内、外程序存储器的使用示意图 0FFFH0000H0FFFH0000HFFFFH1000HEA=1时,ROM的使用EA=0时ROM的使用片外程序存储器(最大64K)单片机内部程序存储器(4K)返回程序存储器六个特殊的单元在程序存储器中,在程序存储器中,有六个单元有六个单元是具有特定功能。是具有特定功能。编程者是不能随便使用的。编程者是不能随便使用的。0000H0000H单元:单元:上电时,程序计数器上电时,程序计数器PCPC所指向的单元所指向的单元0003H0003H单元:单元:外部中断外部中断/INT0/INT0的入口地址;的入口地址;000BH000BH单元单元:定时器定时器T0T0的溢出中断入口地址;的溢出中断入口地址;0013H0013H单元:单元:外部中断外部中断/INT1/INT1的入口地址;的入口地址;001BH001BH单元:单元:定时器定时器T1T1的溢出中断入口地址;的溢出中断入口地址;0023H0023H单元:单元:串行口接收、传送的中断入口地址。串行口接收、传送的中断入口地址。返回1.4.2 内部数据存储器RAM数据存储器无论在物理上还是逻辑上都分为两个地址空间,数据存储器无论在物理上还是逻辑上都分为两个地址空间,既一个内部和一个外部的数据存储空间。既一个内部和一个外部的数据存储空间。访问访问内部数据存储单元内部数据存储单元时,使用时,使用 MOV MOV 指令;指令;而访问而访问外部数据存储器外部数据存储器时,使用时,使用 MOVX MOVX 指令。指令。内部数据存储器从功能上又将内部数据存储器从功能上又将256B256B空间分为二个不同的空间分为二个不同的块:块:1,1,低低128B128B的的RAMRAM块;块;2,2,高高128B128B的的SFR(Special Function RegisterSFR(Special Function Register)块。)块。在低在低128B128B的的RAMRAM存储单元中又可划分为:存储单元中又可划分为:工作寄存器区工作寄存器区、可位寻址区可位寻址区、通用存储数据的便签区通用存储数据的便签区。高高128B128B的的专用寄存器区专用寄存器区中仅仅使用了中仅仅使用了2121寄存器(寄存器(5151系列)系列),其它单元未定义不能使用。,其它单元未定义不能使用。存储结构图MCS-51 片内、片外 数据存储器示意图 特殊功能寄存器SFR通用数据存储器80H7FH00HFFH片内数据存储器 片外数据存储器256B个字节 64KB个字节片外数据存储器64KB0000HFFFFH注意:1,访问片内RAM20H存储单元;MOV A,20H2,访问片外RAM存储单元;MOV R0,#20hMOVX A,R03,尽管片内与片外的RAM单元 的00H-FFH地址相重叠但由于指令的不同不会发生地址混乱。片内RAM低 128B 字节功能分配图 位寻址区3区2区1区0区便笺区08H07H00H7FH30H2FH20H1FH18H17H10H0FH四个工作寄存器区每个区中有R0-R7八个工作寄存器位寻址区16个单元20H-2FH,共有128 可寻址位个位。位地址:00H-7FH注意:位地址与字节地址的区别通用的RAM区地址:30H-7FH继续返回上一次片内 RAM(20H-2FH)中的位寻址区结构图7F7F7E7E7D7D7C7C7B7B7A7A79797878777776767575747473737272717170706F6F6E6E6D6D6C6C6B6B6A6A69696868676766666565646463636262616160605F5F5E5E5D5D5C5C5B5B5A5A59595858575756565555545453535252515150504F4F4E4E4D4D4C4C4B4B4A4A49494848474746464545444443434242414140403F3F3E3E3D3D3C3C3B3B3A3A39393838373726262525242423232222212120202F2F2E2E2D2D2C2C2B2B2A2A29292828272726262525242423232222212120201F1F1E1E1D1D1C1C1B1B1A1A19191818171716161515141413131212111110100F0F0E0E0D0D0C0C0B0B0A0A09090808070706060505040403030202010100002FH20H字节地址位寻址区内的地址是位寻址区内的地址是位地址。位地址。共有共有00-7FH00-7FH(共(共128128个位);个位);要区分字节地址和位地址这两个不同的地址概念:要区分字节地址和位地址这两个不同的地址概念:从物理的角度,每一个字节地址内包含了从物理的角度,每一个字节地址内包含了8 8个位,既:个位,既:D7D7,D6D6,D5D5,D4D4,D3D3,D2D2,D1D1,D0D0 在一般情况,我们提到的在一般情况,我们提到的RAMRAM地址都是字节地址。地址都是字节地址。从逻辑的角度讲,字节地址和位地址是靠不同类型的指令来区从逻辑的角度讲,字节地址和位地址是靠不同类型的指令来区分的。如:分的。如:MOV AMOV A,20h 20h ;将;将RAMRAM的的2020单元内容送累加器单元内容送累加器A A;MOV C MOV C,20h 20h ;将;将RAMRAM位寻址区中位寻址区中20H20H位送位送CYCY中。中。在这二个例子中,第一条指令为在这二个例子中,第一条指令为字节传送指令字节传送指令,所以,所以20H20H为为字节地址;第二个例子中的指令为字节地址;第二个例子中的指令为位操作指令位操作指令,所以,所以20H20H为为位地址。有关详细内容将在第二章中描述。位地址。有关详细内容将在第二章中描述。返回0区工作寄存器区结构图R7R7R6R6R5R5R4R4R3R3R2R2R1R1R0R0RAM地址07H06H05H04H03H02H01H00H返回上一次特殊功能寄存器SFR特殊功能寄存器特殊功能寄存器SFR SFR(Special Function RegisterSpecial Function Register)特殊用途寄存器的集合。用来设定单片机内部各个部特殊用途寄存器的集合。用来设定单片机内部各个部件的工作方式,存放相关部件的状态,定时器初值寄存器,件的工作方式,存放相关部件的状态,定时器初值寄存器,并行端口的锁存器等等。并行端口的锁存器等等。尽管特殊功能寄存器与尽管特殊功能寄存器与RAMRAM在同一个单元中,但不在同一个单元中,但不能作为普通的能作为普通的RAMRAM存储单元来使用。只有在编程中根据需存储单元来使用。只有在编程中根据需要,进行一些特定功能的设定,或者是从中查寻相关部件要,进行一些特定功能的设定,或者是从中查寻相关部件的状态时,才能进行读、写操作。如中断方式的设定、定的状态时,才能进行读、写操作。如中断方式的设定、定时器工作模式的设定,查询串行口发送或接收是否结束等时器工作模式的设定,查询串行口发送或接收是否结束等等。等。标识符标识符名名 称称地地 址址ACCACCB BPSWPSWSPSPDPTRDPTRP0P0P1P1P2P2P3P3IPIPIEIETMODTMODTCONTCON累加器累加器B B寄存器寄存器程序状态字程序状态字堆栈指针堆栈指针数据指针数据指针(包括包括DPH,DPL)DPH,DPL)口口0 0口口1 1口口2 2口口3 3中断优先级控制寄存器中断优先级控制寄存器中断允许控制寄存器中断允许控制寄存器定时定时/计数器方式控制寄存器计数器方式控制寄存器定时定时/计数器控制寄存器计数器控制寄存器0E0H0E0H0F0H0F0H0D0H0D0H81H81H83H,82H83H,82H80H80H90H90H0A0H0A0H0B0H0B0H0B8H0B8H0A8H0A8H89H89H88H88H特殊功能寄存器特殊功能寄存器 SFR(SFR(表一表一)SFR(表二)标识符标识符名名 称称地地 址址TH0TH0TL0TL0TH1TH1TL1TL1SCONSCONSBUFSBUFPCONPCON定时定时/计数器计数器0 0初值寄存器高初值寄存器高8 8位位定时定时/计数器计数器0 0初值寄存器低初值寄存器低8 8位位定时定时/计数器计数器1 1初值寄存器高初值寄存器高8 8位位定时定时/计数器计数器1 1初值寄存器低初值寄存器低8 8位位串行口控制寄存器串行口控制寄存器串行口数据缓冲器串行口数据缓冲器(接收接收,发送发送)电源控制寄存器电源控制寄存器8CH8CH8AH8AH8DH8DH8BH8BH98H98H99H99H97H97HSFR高128B低128B0FFH80H7FH00H特殊功能寄存器SFR在片内RAM中的位置注:表中黄色的单元为可按位寻址的字节特殊功能寄存器SFR说明程序计数器程序计数器PC:PC:用来存放下一条要执行的指令地址用来存放下一条要执行的指令地址,长度为长度为1616位位,所以寻址范围为所以寻址范围为0-65535(64K).0-65535(64K).在物理上是独立于在物理上是独立于SFR.SFR.累加器累加器A A:最常用的专用寄存器最常用的专用寄存器,大多数的指令操作数都来大多数的指令操作数都来自累加器自累加器A.A.所有的算术运算指令的运算结果都存放在所有的算术运算指令的运算结果都存放在A A中中.B B寄存器寄存器:乘除法指令使用的寄存器乘除法指令使用的寄存器.数据指针数据指针DPTR:DPTR:一个一个1616位的寄存器位的寄存器.由高八位由高八位DPHDPH和低八和低八位位DPLDPL构成构成.DPTR.DPTR主要用来存放片内主要用来存放片内ROMROM的地址和片外的地址和片外RAM,ROMRAM,ROM的地址的地址.这样单片机可以通过间址的方式来访问片这样单片机可以通过间址的方式来访问片内内ROMROM或片外的或片外的RAM,ROMRAM,ROM。例如例如:片外片外RAMRAM的的2000H2000H单元中有一个数单元中有一个数x,x,试将其送到累加器试将其送到累加器A A中中.MOV DPTR,#2000h MOV DPTR,#2000h ;DPTR ;DPTR 2000H 2000H MOVX A,DPTR MOVX A,DPTR ;A;A x xl l程序状态字程序状态字PSW:PSW:8 8位寄存器位寄存器.表征程序执行的状态信息。表征程序执行的状态信息。CY(PSW.7)CY(PSW.7)进位标志进位标志:在加减法运算中在加减法运算中,累加器累加器A A的最高位的最高位A7A7有进位有进位,则则CY=1,CY=1,否则否则CY=0.CY=0.同理同理,在减法运算中在减法运算中,如果如果A7A7有借有借位位,则则CY=1.CY=1.因此因此CYCY往往作为无符号数运算是否有溢出的标往往作为无符号数运算是否有溢出的标志。志。AC(PSW.6):AC(PSW.6):辅助进位位辅助进位位:用来判断加减法运算时用来判断加减法运算时,低四位是否低四位是否向高四位进位或借位向高四位进位或借位(既既A3A3的进位或借位的进位或借位).).往往用来判断压往往用来判断压缩的缩的BCDBCD码的运算处理码的运算处理.F0(PSW.5)F0(PSW.5)用户标志位用户标志位:完全由用户来定义和使用。完全由用户来定义和使用。RS1,RS0RS1,RS0工作寄存器区选择位工作寄存器区选择位:确定工作寄存器确定工作寄存器R0-R7R0-R7在哪个区在哪个区中中.单片机在上电或复位后单片机在上电或复位后RS1RS1、RS0=00RS0=00。当需要人为的修。当需要人为的修改改RS1,RS0RS1,RS0的值来改变工作寄存器区的位置。的值来改变工作寄存器区的位置。CYCYACACF0F0RS1RS1RS0RS0OVOV-P PRAM分配图OV(PSW.2)OV(PSW.2)溢出标志位溢出标志位:判断符号数加减法运算时是否有溢出判断符号数加减法运算时是否有溢出.OV OV的结果可以用一个算法来表示的结果可以用一个算法来表示:OV=CPOV=CP异或异或CSCS 其中其中:CP:CP为为A7A7的进位的进位,CS,CS为为A6A6的进位的进位OV=1OV=1表明有溢出。表明有溢出。P(PSW.0)P(PSW.0)奇偶标志位奇偶标志位:用来标志累加器用来标志累加器A A中运算后中运算后1 1的个数。的个数。当当P=1P=1时时,表明表明A A中中1 1的个数为奇数个的个数为奇数个,反之为偶数个。反之为偶数个。【举例举例】:有两个数:有两个数0FH0FH和和F8HF8H,试将两数相加,试将两数相加 MOV A MOV A,#0FH#0FH ;将立即数;将立即数0f h 0f h 送累加器送累加器A A ADD A ADD A,#0F 8H#0F 8H ;A A的内容与立即数的内容与立即数0f8h0f8h相加,结果送相加,结果送A A 0000 1111 0000 1111 运算结果:运算结果:A=07HA