资源预览内容
第1页 / 共61页
第2页 / 共61页
第3页 / 共61页
第4页 / 共61页
第5页 / 共61页
第6页 / 共61页
第7页 / 共61页
第8页 / 共61页
第9页 / 共61页
第10页 / 共61页
第11页 / 共61页
第12页 / 共61页
第13页 / 共61页
第14页 / 共61页
第15页 / 共61页
第16页 / 共61页
第17页 / 共61页
第18页 / 共61页
第19页 / 共61页
第20页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,2,章,80C51,的结构和原理,单片机原理及系统设计,1,第,2,章,80C51,的结构和原理,2.7 80C51,的并行口结构与操作,2.1 80C51,系列概述,2.2 80C51,的基本结构及内部结构,2.3 80C51,典型产品资源配置与引脚封装,2.4 80C51,的时钟与时序,2.6 80C51,的存储器组织,2.5 80C51,的复位,1第2章 80C51的结构和原理2.7 80C51的并行,2,2.1 80C51,系列概述,2.1.1 MCS-51,系列,(,1,),MCS-51,是,Intel,公司生产的一个单片机系列名称。,(,2,)该系列生产工艺有两种:,型号中凡带有字母“,C”,的即为,CHMOS,芯片,HMOS,工艺(高密度短沟道,MOS,工艺)。,H:,高速度和高密度 ;与,TTL,电平兼容,CHMOS,工艺,(互补金属氧化物的,HMOS,工艺)。,C:,低功耗;,CHMOS,与,TTL,和,COMS,电平都兼容,80C51,和,MCS-51,的关系,8051,是,MCS-51,系列单片机的典型品种。以,8051,为基核开发出的,CHMOS,工艺单片机产品统称为,80C51,。,8051,的功耗为,630mW,,而,80C51,的功耗只有,120mW,。,22.1 80C51系列概述2.1.1 MCS-51系列,3,(,3,)在功能上,该系列单片机有基本型和增强型两大类:,基本型,:,1,增强型,:,2,80C51,有,4K,字节的掩膜,ROM,;,8,7,C51,有,4K,字节的,EPROM,;,80C,3,1,在芯片内无程序存储器。,(,4,)在片内程序存储器的配置上,该系列单片机 有三种形式,即掩膜,ROM,、,EPROM,和,ROMLess(,无片内程序存储器,),。如:,3(3)在功能上,该系列单片机有基本型和增强型两大类:基本型,4,2.1.2 80C51,系列,以,8051,为基核,开发出的,CMOS,工艺单片机产品,统称为,80C51,系列,。,Intel,的:,80C31,、,80C51,、,87C51,,,80C32,、,80C52,、,87C52,等;,ATMEL,的:,89C51,、,89C52,、,89C2051,等;,42.1.2 80C51系列 以8051为基核开发,5,2.2 80C51,的基本结构及,内部结构,2.2.1 80C51,的基本结构 框图,52.2 80C51的基本结构及内部结构2.2.1 80,6,8051,单片机的结构框图如图所示,可以看出,在一块芯片上集成了一个微型计算机的主要部件,它包括以下几部分:,1,个,8,位,微处理器,(CPU),。,1,个时钟电路。,4KB,程序存储器。,256B,数据存储器。,2,个,16,位定时,/,计数器。,64KB,扩展总线控制电路。,4,个,8,位并行,I/O,接口,P0,P3,。,1,个全双工串行,I/O,接口。,5,个中断源,其中包括,2,个优先级嵌套中断。,68051单片机的结构框图如图所示,可以看出,在一块芯片上集,7,2.2.2 80C51,的内部结构,72.2.2 80C51的内部结构,8,一、,80C51,微处理器(,CPU),二、,80C51,片内存储器,(ROM,、,RAM),三、,80C51,的,I/O,口及功能单元,2.2.2 80C51,的内部结构,四、,80C51,特殊功能寄存器(,SFR,),8一、80C51微处理器(CPU)二、80C51片内存储器(,9,一、,80C51,微处理器(,CPU),CPU,即中央处理器,是单片机的核心部件,是计算机的控制指挥中心。由运算器和控制器两部分组成。,运算器,电路以算术逻辑单元,(ALU,,,Arithmetic Logic Unit),为核心,由暂存器,1,、暂存器,2,、,累加器,(A,,,Accumulator),、,寄存器,B,、,程序状态寄存器,(PSW,,,Program Status Word),及布尔处理机共同组成。,它的主要任务是完成算术运算、逻辑运算、位运算和数据传送等操作,运算结果的状态由程序状态寄存器,(PSW),保存。,控制器,电路包括,程序计数器,(PC),、,PC,增,1,寄存器、指令寄存器,(IR),、指令译码器,(ID),、,数据指针,(DPTR),、,堆栈指针,(SP),、缓冲器及定时控制电路等。,控制器电路完成指挥控制工作,协调单片机各部分正常工作。,9一、80C51微处理器(CPU) CPU即中,10,运算器,CPU,算术,/,逻辑部件,ALU,(Arithmetic Logic Unit),累加器,ACC,(Accumulator),程序状态字寄存器,PSW,(Program Status Word),暂存寄存器,寄存器,B,控制器,堆栈指针,SP,数据指针,DPTR,程序计数器,PC,指令寄存器,IR,指令译码器,ID,10运算器CPU算术/逻辑部件ALU(Arithmetic,11,二、,80C51,的片内存储器,80C51,单片机与一般微机的存储器配置方式很不相同。,一般微机通常只有一个逻辑空间,可以随意安排数据或程序。访问存储器时,同一地址对应唯一的存储单元,可以是,ROM,也可以是,RAM,,并用同类访问指令。 而,MCS-51,则不同:,80C51,在,物理结构,上设计成,程序存储器,与,数据存储器,独立分开,的,哈佛结构,。,在,芯片内部,有:,程序存储器,4KB,(,ROM 0000H0FFFH,);,数据存储器,128B,(,RAM 00H7FH,);,21,字节的特殊功能寄存器(,SFR,);,在,芯片外,还可以,扩展,ROM,、,RAM,最多可达到,64KB,。,11二、80C51的片内存储器 80C51单片机与一般微机的,12,三、,80C51,的,I/O,口及功能单元,四个,8,位的并行口,即,P0P3,。它们均为双向口,既可作为输入,又可作为输出。每个口各有,8,条,I/O,线。,有一个全双工的串行口,(利用,P3,口的两个引脚,P3.0,和,P3.1,);,有,2,个,16,位的定时,/,计数器,;,有,1,套完善的中断系统。,12三、80C51的I/O口及功能单元四个8位的并行口,即P,13,四、,80C51,特殊功能寄存器(,SFR,),21,个特殊功能寄存器单元,,地址范围是只用到了,80H,FFH,中的,21,个字节单元,且这些单元是离散分布的。,13四、80C51特殊功能寄存器(SFR)21个特殊功能寄存,14,2.3 80C51,典型产品资源配置与引脚,2.3.1 80C51,典型产品资源配置,142.3 80C51典型产品资源配置与引脚2.3.1,15,无,ROM,(即,ROMLess,)型,应用时要在片外扩展程序存储器;,掩膜,ROM,(即,MaskROM,)型,用户程序由芯片生产厂写入;,EPROM,型,用户程序通过写入装置写入,通过紫外线照射擦除;,FlashROM,型,用户程序可以电写入或擦除(当前常用方式)。,还有,OTPROM,型(一次性编程写入,ROM,) 产品,具有较高的环境适应性和可靠性。,15无ROM(即ROMLess)型,应用时要在片外扩展程序,16,2.3.2 80C51,的引脚封装,总线型,非总线型,162.3.2 80C51的引脚封装总线型非总线型,17,8051,的,40,个引脚可分为:,电源,引脚,2,根,时钟,引脚,2,根,控制,引脚,4,根,I/O,引脚,32,根,由于,8051,单片机是高性能的单片机,同时受到引脚数目的限制,所以有部分引脚具有,第二功能,。,178051的40个引脚可分为:,18,8051,引脚的功能描述(一),电源引脚,(2,根,),V,CC,(40,脚,),:电源端,接,+5V,电源。,V,SS,(20,脚,),:接地端。,时钟引脚,(2,根,),XTAL1,(19,脚,),:接外部晶振和微调电容的一端。采用外部时钟电路时,对,HMOS,型工艺的单片机,此引脚应接地;对,CHMOS,型而言,此引脚应接外部时钟的输入端。,XTAL2,(18,脚,),:接外部晶振和微调电容的另一端。使用外部时钟时,对,HMOS,型工艺的单片机,此引脚应接外部时钟的输入端;对,CHMOS,型而言,此引脚悬空。,188051引脚的功能描述(一) 电源引脚(2根),19,8051,引脚的功能描述 (二),控制引脚,(4,根,),RST/V,PD,(9,脚,),:复位信号,/,备用电源输入引脚。,当,RST,引脚保持两个机器周期的高电平后,就可以使,8051,完成复位操作。该引脚的第二功能是,V,PD,,即备用电源的输入端,具有掉电保护功能。若在该引脚接,+5V,备用电源,在使用中若主电源,VCC,掉电,可保护片内,RAM,中的信息不丢失。,ALE/PROG,(30,脚,),:地址锁存允许信号输出,/,编程脉冲输入引脚。当,CPU,访问片外存储器时,,ALE,输出信号控制锁存,P0,口输出的低,8,位地址,从而实现,P0,口数据与低位地址的分时复用。当,8051,上电正常工作后,自动在,ALE,端输出频率为,fosc/6,的脉冲序列,(fosc,代表振荡器的频率,),。,该引脚的第二功能,PROG,是对,8751,内部,4KB EPROM,编程写入时,作为编程脉冲的输入端,198051引脚的功能描述 (二)控制引脚(4根),20,EA/VPP,(31,脚,),:外部程序存储器地址允许输入端,/,编程电压输入端。,当,EA,接高电平时,,CPU,执行片内,ROM,指令,但当,PC,值超过,0FFFH,时,将自动转去执行片外,ROM,指令;当,EA,接低电平时,,CPU,只执行片外,ROM,指令。对于,8031,,由于其无片内,ROM,,故其,EA,必须接低电平。,该引脚的第二功能,VPP,是对,8751,片内,EPROM,编程写入时,作为,21V,编程电压的输入端。,PSEN,(29,脚,),:片外,ROM,读选通信号端。,在读片外,ROM,时,,PSEN,有效,为低电平,以实现对片外,ROM,的读操作。,控制引脚,(4,根,),20 EA/VPP(31脚):外部程序存储器地址允许输入端/,21,8051,引脚的功能描述 (三),I/O,引脚,(48=32,根,),P0.0,P0.7,(39,32,脚,),:,P0,口的,8,位双向,I/O,口线。,P0,口即可作地址,/,数据总线使用,又可作通用的,I/O,口使用。当,CPU,访问片外存储器时,,P0,口分时先作低,8,位地址总线,后作双向数据总线,此时,,P0,口就不能再作,I/O,口使用了。,P1.0,P1.7,(1,8,脚,),:,P1,口的,8,位准双向,I/O,口线。,P1,口作为通用的,I/O,口使用。,P2.0,P2.7,(21,28,脚,),:,P2,口的,8,位准双向,I/O,口线。,P2,口即可作为通用的,I/O,口使用,也可作为片外存储器的高,8,位地址总线,与,P0,口配合,组成,16,位片外存储器单元地址。,P3.0,P3.7,(10,17,脚,),:,P3,口的,8,位准双向,I/O,口线。,P3,口除了作为通用的,I/O,口使用之外,每个引脚还具有第二功能。,218051引脚的功能描述 (三)I/O引脚(48=32根,22,2.4 80C51,的时钟与时序,一、,80C51,的时钟产生方式,内部时钟,外部时钟,时钟,:用来为单片机芯片内部各种微操作提供时间基准,时序,:微操作的时间次序,222.4 80C51的时钟与时序一、80C51的时钟产生,23,在,8051,单片机内部有一个高增益的,反相放大器,,用于构成振荡器,反相放大器的输入端为,XTAL1,,输出端为,XTAL2,。,内部振荡方式是在,XTAL1,和,XTAL2,引脚两端跨接,石英晶体振荡器,和两个,电容,构成稳定的自激振荡电路。,电容,C1,和,C2,通常取,30pF,,对振荡频率有微调作用。晶振频率范围是,1.2MHz,12MHz,。,1.,内部振荡方式,231. 内部振荡方式,24,2.,外部时钟方式,外部时钟方式是把外部已有的时钟信号引入到单片机内。,8051,:外部时钟由,XTAL2,输入,直接送入内部时钟电路,,XTAL1,接地;,80C51,:外部时钟由,XTAL1,输入,,XTAL2,悬空。,外部时钟信号为高电平持续时间要大于,20ns,,且频率低于,12MHz,的方波。,242. 外部时钟方式外部时钟方式是把外部已有的时钟信号引入,25,二、,80C51,的时钟信号,一个,机器周期,包含,12,个晶荡周期或,6,个时钟周期,指令的执行时间称作,指令周期,(,单、双、四周期,),25二、80C51的时钟信号一个机器周期包含12个晶荡周期或,26,3.,机器周期:,一个机器周期包括,12,个振荡周期。,4.,指令周期:,执行一条指令的时间,,14,个机器周期。,1.,振荡周期,:振荡源周期。,2.,状态周期:,又叫时钟周期,振荡周期,2,分频,,P1,、,P2,节拍。,263.机器周期:一个机器周期包括12个振荡周期。 1.振荡,27,典型指令的取指、执行时序,振荡周期,为单片机提供定时信号的振荡源的周期或外部输入时钟信号的周期,时钟周期,(,或状态,周期,S),是振荡周期的两倍,它分为,P1,节拍和,P2,节拍。,一条指令的执行过程分作几个基本操作,完成一个基本操作所需的时间称作,机器周期。,执行一条指令所需的时间称为,指令周期。,27典型指令的取指、执行时序 振荡周期为单片机提供定时信号的,28,2.5 80C51,的复位,复位是单片机的初始化操作。,复位功能是把,PC,初始化为,0000H,,使,CPU,从,0000H,单元开始执行程序;复位操作同时还对其他一些,寄存器,有影响,但,内部,RAM,的数据是不变的。,除了进入系统的正常初始化之外,当由于,程序运行出错,或,操作错误,使系统处于死锁状态时,为摆脱困境,也需要按复位键重新启动。,2.5.1,复位功能,282.5 80C51的复位复位是单片机的初始化操作。2.5,29,单片机的复位引脚,RST,出现,2,个机器周期,以上的高电平时,单片机就执行复位操作。,常见的复位操作有上电自动复位和按键手动复位两种方式 。,上电自动复位,是通过外部复位电路的电容充电来实现的。,按键手动复位,是通过复位端经电阻与电源,V,CC,接通而实现的,它兼备上电复位功能。,(a),上电自动复位,(b),按键手动复位,2.5.2,复位电路,29单片机的复位引脚RST出现2个机器周期以上的高电平时,单,30,PC=0000H,,,所以程序从,0000H,地址单元开始执行;,启动后,,片内,RAM,为随机值,,运行中的复位操作不改变片内,RAM,的内容,;,特殊功能寄存器复位后的状态是确定的,:,P0P3=FFH,,各口可用于输出,也可用于输入;,SP=07H,,第一个入栈内容将写入,08H,单元;,IP,、,IE,和,PCON,的,有效位为,0,,各中断源处于低优先级且均被关断、串行通讯的波特率不加倍;,PSW=00H,,当前工作寄存器为,0,组。,2.5.3,复位状态,30PC=0000H,所以程序从0000H地址单元开始执行;,31,2.6 80C51,的存储器组织,RAM,,在关闭电源时,其所存储的信息将丢失。它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。,ROM,,,断电后,,ROM,中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。,312.6 80C51的存储器组织 RAM,在关闭电源,32,2.6.1 80C51,的程序存储器,ROM,程序存储器,ROM,用来存放,程序、常数,或,表格,等。,80C51,:,4KB,的掩膜,ROM,,,87C51,:,4KB,的,EPROM,,,80C31,:没有,ROM(,使用时必须使,EA,接低电平,),。,PC,是,16,位的计数器,所以能寻址,64KB,的,ROM,。,实例观察,322.6.1 80C51的程序存储器ROM程序存储器ROM,33,2.6.2 80C51,的数据存储器配置,片内,片外,0000H,007FH,重叠区域访问需要采用不同的寻址方式,片外,RAM,不能进行堆栈操作,332.6.2 80C51的数据存储器配置 片内片外000,34,数据存储器,RAM,主要用来存放运算的,中间结果,和,数据,等。,在,80C51,中,其存储空间分布如下:,片内,RAM,为,128B,存储单元,地址范围为,00H,7FH,。,片外,RAM,最多可扩至,64KB,存储单元,地址范围为,0000H,FFFFH,。,34数据存储器RAM主要用来存放运算的中间结果和数据等。,35,一、工作寄存器区,通用,RAM,区,(80B),位地址区,(16B),寄存器区,4,组,(32B),7FH,寄存器,3,组,寄存器,2,组,寄存器,1,组,寄存器,0,组,寄存器区,4,组,(32B),.,.,.,.,.,.,.,.,.,由,PSW,中的,2,位,RS1,、,RS0,来决定选,哪一组为当前工作寄存器:,RS1,、,RS0=00,选,0,组,RS1,、,RS0=01,选,1,组,RS1,、,RS0=10,选,2,组,RS1,、,RS0=11,选,3,组,00H,30H,2FH,20H,1FH,.,.,.,35一、工作寄存器区通用RAM区位地址区寄存器区7FH寄存器,36,通用,RAM,区,(80B),位地址区,(16B),7FH,寄存器,3,组,寄存器,2,组,寄存器,1,组,寄存器,0,组,寄存器,0,组,寄存器区,4,组,(32B),.,.,.,.,.,.,.,.,.,RS1,、,RS0=,00,R7,R6,R5,R4,R3,R2,R1,R0,00H,01H,02H,03H,04H,05H,06H,07H,00H,30H,2FH,20H,1FH,.,.,.,36通用RAM区位地址区7FH寄存器3组寄存器0组寄存器区.,37,通用,RAM,区,(80B),位地址区,(16B),7FH,寄存器,3,组,寄存器,2,组,寄存器,1,组,寄存器,0,组,寄存器,1,组,R7,R6,R5,R4,R3,R2,R1,R0,08H,09H,0AH,0BH,0CH,0DH,0EH,0FH,寄存器区,4,组,(32B),.,.,.,.,.,.,.,.,.,RS1,、,RS0=,01,00H,30H,2FH,20H,1FH,.,.,.,37通用RAM区位地址区7FH寄存器3组寄存器1组R708H,38,通用,RAM,区,(80B),位地址区,(16B),7FH,寄存器,3,组,寄存器,2,组,寄存器,1,组,寄存器,0,组,寄存器,2,组,R7,R6,R5,R4,R3,R2,R1,R0,10H,11H,12H,13H,14H,15H,16H,17H,寄存器区,4,组,(32B),.,.,.,.,.,.,.,.,.,RS1,、,RS0=,10,00H,30H,2FH,20H,1FH,.,.,.,38通用RAM区位地址区7FH寄存器3组寄存器2组R710H,39,通用,RAM,区,(80B),位地址区,(16B),7FH,寄存器,3,组,寄存器,2,组,寄存器,1,组,寄存器,0,组,寄存器,3,组,R7,R6,R5,R4,R3,R2,R1,R0,18H,19H,1AH,1BH,1CH,1DH,1EH,1FH,寄存器区,4,组,(32B),.,.,.,.,.,.,.,.,.,RS1,、,RS0=,11,00H,30H,2FH,20H,1FH,.,.,.,39通用RAM区位地址区7FH寄存器3组寄存器3组R718H,40,40,通用,RAM,区,(80B),位地址区,(16B),7FH,寄存器,3,组,寄存器,2,组,寄存器,1,组,寄存器,0,组,位地址区,20H,21H,22H,23H,24H,25H,26H,27H,28H,29H,2AH,2BH,2CH,2DH,2EH,2FH,00H,01H,02H,03H,04H,05H,06H,07H,08H,0FH,10H,7FH,78H,70H,68H,60H,58H,50H,48H,40H,38H,30H,28H,20H,77H,6FH,67H,18H,5FH,57H,4FH,47H,3FH,37H,2FH,27H,1FH,17H,.,.,D7 D6 D5 D4 D3 D2 D1 D0,.,.,.,.,.,.,.,.,.,00H,30H,2FH,20H,1FH,.,.,.,二、位寻址区,(20H2FH),4040通用RAM区位地址区7FH寄存器3组位地址区20H2,41,通用,RAM,区,(80B),位地址区,(16B),00H,30H,2FH,20H,1FH,7FH,寄存器,3,组,寄存器,2,组,寄存器,1,组,寄存器,0,组,通用,RAM,区,.,.,.,.,.,.,.,.,.,.,.,.,共,80,个字节,作为一般的数据缓冲区并可设置堆栈区,栈顶的位置由,SP,寄存器指示。,复位时,SP,的初值为,07H,,在系统初始化时可以重新设置。,三、通用,RAM,区,实例观察,41通用RAM区位地址区00H30H7FH寄存器3组通用RA,42,2.6.3 80C51,的特殊功能寄存器,一、与运算器相关的寄存器(,3,个),二、指针类寄存器(,3,个),三、与口相关的寄存器(,7,个),四、与中断相关的寄存器(,2,个),五、与定时器,/,计数器相关的寄存器(,6,个),422.6.3 80C51的特殊功能寄存器一、与运算器相关的,43,A,Register (Accumulator),:,累加器,通常用,A,或,ACC,表示。可字节寻址,(E0H),,,也可位寻址,(E0HE7H),它是一个寄存器,而不是一个做加法的部件。,在运算器做运算时其中一个数一定是在,ACC,中。,B,Register,:暂存寄存器。,暂存寄存器。在做乘、除法时放乘数或除数及结果。,PSW,(Program Status Word,):,PSW,是,8,位寄存器,用于作为程序运行状态的标志。这是一个很重要的部件,里面存放了,CPU,工作时的很多状态,借此,我们可以了解,CPU,的当前状态,并作出相应的处理。,一、与运算器相关的寄存器(,3,个),43A Register (Accumulator):一、与,44,当,CPU,进行各种逻辑操作或算术运算时,为反映操作或运算结果的状态,把相应的标志位置,1,或清,0,。这些标志的状态,可由专门的指令来测试,也可通过指令来读出。它为计算机确定程序的下一步进行方向提供依据。,PSW,寄存器中各位的名称、位置及各标志位的作用说明如下:,D7H,D6H,D5H,D4H,D3H,D2H,D1H,D0H,CY,AC,F0,RS1,RS0,OV,P,PSW,位地址,PSW,44 当CPU进行各种逻辑操作或算术运算时,为反映操作,45,CY,:,进位标志。,加减运算时,保存最高位进位、借位状态。,AC,:,半进位标志。,例:,78H+97H,0111 1000,+1001 0111,1 0000 1111,D7H,D6H,D5H,D4H,D3H,D2H,D1H,D0H,CY,AC,F0,RS1,RS0,OV,P,PSW,位地址,有进位,CY=1,没有半进位,AY=0,45 CY:进位标志。D7HD6HD5HD4HD3HD2HD,46,RS1,、,RS0,:工作寄存器组选择位。,0 0,选择工作寄存器,0,组,0 1,选择工作寄存器,1,组,1 0,选择工作寄存器,2,组,1 1,选择工作寄存器,3,组,P,:奇偶校验位,它用来表示累加器,A,内容中二进制数位,“,1,”,的,个数,的,奇偶性,。若为,奇,数,则,P=1,,否则为,0,。,例:某运算结果是,78H,(,01111000,),,P=0,。,D7H,D6H,D5H,D4H,D3H,D2H,D1H,D0H,CY,AC,F0,RS1,RS0,OV,P,PSW,位地址,46 RS1、RS0:工作寄存器组选择位。D7HD6HD5H,47,F0,:,用户标志位。作为软件标志,由编程人员决定,何时使用。,OV,:溢出标志位。,有符号数运算时,如果发生,溢出,,,OV,置“,1,”,,,否则清“,0,”,。,D7H,D6H,D5H,D4H,D3H,D2H,D1H,D0H,CY,AC,F0,RS1,RS0,OV,P,PSW,位地址,47F0:用户标志位。作为软件标志,由编程人员决定D7HD6,48,SP (Stack Pointer),:,堆栈指针,,8,位寄存器,用来指定堆栈的栈顶位置,初值为,07H,。,它是,加,1,计数。,堆栈操作遵循“后进先出”的原则,入栈操作时:,SP,先加,1,,数据再压入,SP,指向的单元。,出栈操作时:,先将,SP,指向的单元的数据弹出,,SP,再减,1,,这时,SP,指向的单元是新的栈顶。,80C51,单片机的堆栈区是向地址增大的方向生成的。,DPTR (Data Pointer),(,分成,DPH,、,DPL,两个,):,数据指针可以用它来访问外部数据存储器中的任一单元,也可以作为通用寄存器来用,由我们自已决定如何使用。,二、指针类寄存器(,3,个),48SP (Stack Pointer):二、指针类寄存器(,49,P0,、,P1,、,P2,、,P3,:,四个并行输入,/,输出口的寄存器。它里面的内容对应着管脚的输出。,SCON (S,erial,C,ontrol,R,egister),SBUF (S,erial Date Buffer),PCON (P,ower,C,ontrol,R,egister),三、与口相关的寄存器(,7,个),四、与中断相关的寄存器(,2,个),IP,(,I,nterrupt,P,riority Register),IE,(,I,nterrupt,E,nable Register),49P0、P1、P2、P3:三、与口相关的寄存器(7个)四、,50,TMOD,(T,imer/Counter,Mod,e Register,),定时器工作模式寄存器。,TCON (T,imer/Counter,Con,trol Register),定时器控制寄存器。,TH0,、,TL0,、,TH1,、,TL1,:,分别是,T0,、,T1,的记数初值寄存器。,五、与定时器,/,计数器相关的寄存器(,6,个),50TMOD (Timer/Counter Mode Reg,51,2.7 80C51,的并行口结构与操作,8051,单片机有,4,个,8,位并行,I/O,端口,称为,P0,、,P1,、,P2,和,P3,口,每个端口都各有,8,条,I/O,口线,每条,I/O,口线都能独立地用作输入或输出。,在无片外扩展存储器的系统中,这四个,I/O,口都可以作为,通用,I/O,口,使用。,在有片外扩展存储器的系统中,,P2,口送出,高,8,位地址,,,P0,口分时送出,低,8,位地址,和,8,位数据,。,512.7 80C51的并行口结构与操作8051单片机有,52,2.6.1 P0,口、,P2,口的结构,一、,P0,口的结构,当不需要外部,ROM,和外部,RAM,时,,P0,、,P2,口做,I/O,口用;,当需要外部,ROM,和外部,RAM,时,,P0,低,8,为地址、数据总线,,P2,高,8,位地址,522.6.1 P0口、P2口的结构 一、 P0口的结构当,53,二、,P2,口的结构,图中的控制信号,C,决定转换开关,MUX,的位置:当,C=0,时,,MUX,拨向下方,,P0,口为通用,I/O,口;当控制信号,C=1,时,,MUX,拨向上方,,P0,口作为地址总线使用。,在实际应用中,,P2,口通常作为高,8,位地址总线使用。,53二、 P2口的结构 图中的控制信号C决定转换开关MUX的,54,2.6.2 P1,口、,P3,口的结构,一、,P1,口的结构,P1,口是唯一的单功能口,仅能作为通用,I/O,口使用。由于在其输出端接有上拉电阻,故可以直接输出而无需外接上拉电阻。,同,P0,口一样,当作输入口时,必须先向锁存器写“,1”,,使场效应管,T,截止。,542.6.2 P1口、P3口的结构 一、 P1口的结构,55,二、,P3,口的结构,P3,口用作通用,I/O,口时,第二输出功能信号,W=1,,,P3,口的每一位都可定义为输入或输出,其工作原理同,P1,口类似。,在真正的应用电路中,,P3,口的第二功能显得更为重要,。,55二、 P3口的结构 P3口用作通用I/O口时,第二输出功,56,P3,口的第二功能,引脚,第二功能,功能说明,P3.0,RXD,串行口输入,P3.1,TXD,串行口输出,P3.2,外部中断,0,输入,P3.3,外部中断,1,输入,P3.4,T0,定时器,/,计数器,0,计数输入,P3.5,T1,定时器,/,计数器,1,计数输入,P3.6,片外,RAM,写选通信号,(,输出,),P3.7,片外,RAM,读选通信号,(,输出,),56 P3口的第二功能 引脚 第二功能 功能说明 P3.0R,57,2.7.3,并行口的负载能力,P0,、,P1,、,P2,、,P3,口的,电平,与,CMOS,和,TTL,电平兼容。,P0,口的每一位口线可以,驱动,8,个,LSTTL,负载。在,作为通用,I/O,口,时,由于输出驱动电路是开漏方式,由集电极开路(,OC,门)电路或漏极开路电路驱动时,需外接上拉电阻,;当作为,地址,/,数据总线,使用时,口线输出不是开漏的,,无须外接上拉电阻,。,P1,、,P2,、,P3,口的每一位能驱动,4,个,LSTTL,负载。它们的输出驱动电路设有内部上拉电阻,所以可以方便地由集电极开路(,OC,门)电路或漏极开路电路所驱动,而,无须外接上拉电阻,。,由于单片机口线仅能提供几毫安的电流,当作为输出驱动一般的晶体管的基极时,应在口与晶体管的基极之间串接限流电阻。,572.7.3 并行口的负载能力 P0、P1、P2、P3口,58,P1,口输出功能应用实例,【,例,1】,P1,口做输出口,控制八只发光二极管循环点亮,(P1,口输出低电平时发光二极管被点亮,),。,解:由于发光二极管低电平点亮,所以,需要哪个发光二极管点亮,只需在相应的端口输出逻辑,0,即可。由于每个发光二极管点亮后要持续一段时间才熄灭,再使下个发光二极管点亮,因此需要编写延时子程序,供主程序反复调用。,本例中,延时子程序采用指令循环来实现。,58P1口输出功能应用实例 【例1】 P1口做输出口,控制八,59,地址,机器码,程序,注释,ORG 0000H,0000H,02 10 00,LJMP MAIN,ORG 1000H,1000H,74 FE,MAIN: MOV A, #0FEH,1002H,F5 90,LOOP: MOV P1, A,1004H,12 10 0A,LCALL DELAY,;,延时,1007H,23,RL A,;,左移位,1008H,80 F8,SJMP LOOP,;,循环,100AH,7F FF,DELAY: MOV R7, #0FFH,;,延时子程序,100CH,7E FA,L1: MOV R6, #0FAH,100EH,DE FE,DJNZ R6, $,1010H,DF FA,DJNZ R7, L1,1012H,22,RET,END,59地址机器码程序注释 ORG 0000H,60,P3,口输入功能应用实例,【,例,2】 P3,口的,P3.0,连接一个开关,作为输入端;,P1,口的,P1.0,P1.7,连接八只发光二极管,作为输出端。要求用,P3.0,来控制,P1,输出的循环灯,即当,P3.0,输出高电平时,控制,P1,口的发光二极管左循环点亮;当,P3.0,输出低电平时,控制,P1,口的发光二极管右循环点亮,(P1,口输出低电平时发光二极管被点亮,),。,解:在主程序中要对,P3.0,的状态进行判断。,如果,P3.0,为高电平,则使用循环左移指令。,如果,P3.0,为低电平,则使用循环右移指令。,延时子程序同例,1,。,60P3口输入功能应用实例 【例2】 P3口的P3.0连接一,61,参考程序:,地址,机器码,程序,注释,ORG 0000H,0000H,02 30 00,LJMP MAIN,ORG 3000H,3000H,74 FE,MAIN: MOV A, #0FEH,3002H,F5 90,LOOP: MOV P1, A,3004H,12 30 10,LCALL DELAY,;,延时,3007H,20 B0 03,JB P3.0, L1,300AH,03,RR A,;,右移位,300BH,80 F5,SJMP LOOP,;,循环,300DH,23,L1: RL A,;,左移位,300EH,80 F2,SJMP LOOP,;,循环,3010H,7F FF,DELAY: MOV R7, #0FFH,;,延时子程序,3012H,7E FA,L2: MOV R6, #0FAH,3014H,DE FE,DJNZ R6, $,3016H,DF FA,DJNZ R7, L2,3018H,22,RET,END,61参考程序:地址机器码程序注释 ORG,
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6