《单片机技术基础第二章.ppt》由会员分享,可在线阅读,更多相关《单片机技术基础第二章.ppt(49页珍藏版)》请在三一办公上搜索。
1、2023/6/3,1,第2章 单片机硬件结构,单片机技术基础,2.1 89C51单片机的内部结构及特点,2.2 89C51单片机引脚及其功能,2.3 89C51存储器配置,2.4 CPU时序,2.5 复位及复位电路,2.6 89C51单片机的低功耗工作方式,2.7 输出/输入端口结构,2.8 思考题与习题,2023/6/3,2,熟悉芯片内部结构及原理掌握存储器配置及特点掌握21个特殊功能寄存器(SFR)的功能掌握复位电路及堆栈的概念掌握各个引脚的功能,达到会应用的目的了解CPU时序及单片机的工作过程了解并行I/O端口内部结构,学习目的和要求,将电子产品抽象成一个硬件的模型,大约有以下组成:1)
2、输入 2)处理核心 3)输出 输入基本可能有:1)键盘 2)串行接口(RS232/485/can bus/以太网/USB)3)开关量(TTL,电流环路,干接点)4)模拟量(420ma、010ma、05V(平衡和非平衡信号)输出的基本组成:1)串行接口(RS232/485/can bus/以太网/USB)2)开关量(TTL、电流环路、干接点、功率驱动)3)模拟量(420ma,010ma,05V(平衡和非平衡信号)4)LED显示:发光管等5)液晶显示器 6)蜂鸣器 处理核心主要有:1)8位单片机,主要就是51系列 2)32位arm单片机,主要有atmel和三星系列,51单片机最小系统 实际上,51
3、单片机核心外围电路是很简单的即:一个单片机一个看门狗一个晶振2个磁片电容1.单片机:atmel的89C51系列、winbond的78E52系列,还有philips的系列等;现在有一些有ISP(在线下载的),就更好用了;2.看门狗:很早以前的电路设计中,现在可能还有人使用,使用一个电阻和一个电容形成上电复位电路;但是,这样的复位电路一个是不可靠,为什么不可靠,网络上能找得到专门论述复位电路的文章;更重要的是,51系列的单片机比较容易受到干扰;没有看门狗电路是不行的,当程序跑飞时,回不来了,死在那里。3.晶振:一般选用11.0592M,因为可以准确地得到9600波特率和19200波特率;磁片电容:
4、22pf30pf,可以在有些书上找到什么晶振频率对应什么容量的磁片电容,如果你用到了更高的频率,找找资料看看。,5,2023/6/3,2.1.1 89C51单片机的基本组成,2.1.2 89C51单片机内部结构,2.1 89C51单片机的结构,6,2023/6/3,MCS-51系列单片机为Intel 公司产品,1980年推出。MCS-51 系列单片机有:8051,8751,8031 80c51BH,80c31BH 它们的基本组成、基本性能和指令系统都是相同的。,89C51单片机是ATNMEL、PHILIPS、SST公司的产品:89C51 80C51373Flash ROM 价格便宜,得到更广泛
5、的应用。,7,2023/6/3,2.1.1 89C51单片机的基本组成,80C51CPU,振荡器和 时序OSC,64KB 总线扩展控制器,数据存储器256B RAM/SFR,216位定时器/计数器,可编程I/O,程序存储器4KBROM,可编程全双工串行口,外中断,内中断,控制,并行口,串行通信,外部时钟源,外部事件计数输入,89C51单片机结构框图,80c51 CPU字长8位,地址16位,最大存储器寻址能力为64KB。能实现8位二进制数的加、减、乘、除以及与、或、异或、移位等运算。,用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。,256 B/128 B RAM/SFR
6、,用以存放程序、一些原始数据和表格。但有一些单片机内部不带ROM/EPROM,如8031、8032、80C31等(8051/8052是掩膜 ROM,8751/8752是EPROM,但8031、8032、80C32片内无ROM)。,片内4KB程序存储器Flash ROM:,每个口可以用作输入,也可以用作输出。,四个8位并行I/O(输入/输出)接口P0P3:,9,2023/6/3,每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果 实现计算机控制。,两个定时/计数器:,可实现单片机与单片机或与其它微机之间串行通信。,一个全双工UART
7、的串行I/O口:,但需外接晶振和电容。,片内振荡器和时钟产生电路:,五个中断源的中断控制系统。,2个外中断,2个定时/计数器中 断,1个串行口中断,10,2023/6/3,51系列单片机的温度适用范围 为:民品(商业用)070 C 工业品 4085 C 军品 55125 C,与8051相比,89C51具有两种用软件选择的节电工作方式:空闲方式:CPU停止工作,RAM、定时/计数器、中断系统等继续工作。掉电方式:片内振荡器停止,所以系统不能工作,仅保存RAM中内容。,11,2023/6/3,如表21所示MCS-51系列单片机的性能表表中型号带“C”表示所用的是CMOS工艺,具有功耗低的优点。,1
8、2,2023/6/3,2.1.2 89C51单片机内部结构,由 中央处理单元(CPU)、存储器(ROM及RAM)和I/O接口组成。MCS-51单片机内部结构如图21所示。,P0驱动器,P2驱动器,P0锁存器,P2锁存器,RAM地址寄存器,128BRAM,4KBFlash ROM,B寄存器,暂存器1,暂存器2,ACC,SP,程序地址寄存器,缓冲器,PC增1,PC,DPTR,中断、串行口和定时器,PSW,P1锁存器,P1驱动器,P3锁存器,P3驱动器,定时控制,指令寄存器,指令译码器,OSC,ALU,XTAL1 XTAL2,PSENALEEARET,14,2023/6/3,(一)、中央处理单元(C
9、PU),运算器,控制器,单片机中的中央处理器(CPU)和通用微处理器基本相同,只是增设了“面向控制”的处理功能。例如:位处理、查表、多种跳转、乘除法运算、状态检测、中断处理等,增强了实时性。,CPU,1运算器,+、算术运算,与、或、非、异或逻辑运算,循环移位、位处理,(1)算术逻辑运算单元ALU(8位):,15,2023/6/3,(2)8位累加器ACC(A):,它经常作为一个运算数经暂存器2进入ALU的输入端,与另一个来自暂存器1的运算数进行运算,运算结果又送回ACC。,指示指令执行后的状态信息供程序查询和判别用。,(3)8位程序状态寄存器PSW:,(4)8位寄存器B:,在乘除运算时,用来存放
10、一个操作数也用来存放运算后的一部分结果;如不能做乘除运算时,作为通用寄存器,16,2023/6/3,(5)布尔处理器:,专门用于处理位操作的,以PSW中的C为其累加器。,(6)2个8位暂存器:,ALU的两个入口处。,17,2023/6/3,(1)程序计数器PC(16位),由两个8位计数器PCH、PCL组成。PC是程序的字节地址计数器,PC内容为将要执行的指令地址。改变PC内容,改变执行的流向。PC可对64KB的ROM直接寻址,也可对89C51片内RAM寻址。,2控制器,(2)指令寄存器IR及指令译码器ID,由PC中的内容指定ROM地址,取出来的指令经IR送至ID,由ID对指令译码产生一定序列的
11、控制信号,以执行指令所规定的操作。,18,2023/6/3,(3)振荡器和定时电路,89C51单片机片内有振荡电路,只需外接石英晶体和2个频率微调电容(30pF左右),产生频率范围为1.2MHz12MHz。该信号就作为89C51工作的基本节拍(时间的最小单位)。,19,2023/6/3,(二)存储器,程序存储器(ROM),数据存储器(RAM),存储器,普林斯顿结构:程序和数据共用一个存储器逻辑空间,统一编址。,哈佛结构:程序与数据分为两个独立存储器逻辑空间,分开编址。,89C51存储器属于哈佛结构:包含4KB程序存储器Flash ROM 包含128B内部数据存储器。,20,2023/6/3,(
12、三)、I/O接口,89C51有四个8位并行I/O接口P0P3。它们都是双向端口,每个端口各有8条I/O线。P0-P3口四个锁存器同RAM统一编址,可作为SFR来寻址。,21,2023/6/3,2.2 89C51单片机引脚及其功能,89C51单片机引脚图,一.电源引脚:Vcc和Vss,1Vcc(40脚):电源端,为+5V。2Vss(20脚):接地端。,二.时钟电路引脚:XTAL1和XTAL2,XTAL2(18脚):接外部晶体和微调电容的一端。是89C51片内振荡器反向放大器的输出端,振荡电路的频率就是晶体固有频率。当采用外部时钟时,此脚悬空。若89C51正常工作时,该引脚应有脉冲信号输出。,23
13、,2023/6/3,XTAL1(19脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反向放大器的输入端,在采用外部时钟时,该引脚输入外部时钟脉冲。,24,2023/6/3,VCC,5.1K,外时钟信号,89c51,X1,X2,RST/VPD(9脚):复位/后备电源输入 时钟信号正常时,该引脚高电平时,单片机进入复位状态(RST);当VCC掉电时,该引脚作为后备电源输入,以保持片内RAM中的数据不丢失(VPD)。,ALE/PROG(30脚):地址锁存允许/编程脉冲输入端ALE:地址锁存允许信号端。正常工作时,该引脚以振荡频率的1/6固定输出正脉冲。CPU访问片外存储器时,该引脚输出信号作为
14、锁存低8位地址的控制信号。它的负载能力为8个LS型TTL负载。PROG:是对片内带有4KB Flash ROM编程写入时的编程脉冲输入端。,26,2023/6/3,PSEN(29脚):程序存储器允许信号输出端。在访问片外ROM时,定时输出负脉冲作为读片外ROM的选通信号,接片外ROM 的OE端。它的负载能力为8个LS型TTL负载。,VPP:用于在对89C51的片内Flash ROM编程时,施加(12V21V)的编程允许电源。,EA/VPP(31脚)内外程序存储器选择/编程电源输入,27,2023/6/3,单片机上电后不运转的原因,首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间
15、的电压,看是否是电源电压,例如常用的5V。接下来就是检查复位引脚电压是否正常。分别测量按下复位按钮和放开复位按钮的电压值,看是否正确。然后再检查晶振是否起振了,一般用示波器来看晶振引脚的波形,注意应该使用示波器探头的“X10”档。另一个办法是测量复位状态下的IO口电平,按住复位键不放,然后测量IO口(没接外部上拉的P0口除外)的电压,看是否是高电平,如果不是高电平,则多半是因为晶振没有起振。另外还要注意的地方是,如果使用片内ROM的话,一定要将EA引脚拉高,否则会出现程序乱跑的情况。经过上面几点的检查,一般即可排除故障了。如果系统不稳定的话,有时是因为电源滤波不好导致的。在单片机的电源引脚跟地
16、引脚之间接上一个0.1uF的电容会有所改善。如果电源没有滤波电容的话,则需要再接一个更大滤波电容,例如220uF的。遇到系统不稳定时,就可以并上电容试试(越靠近芯片越好)。,28,2023/6/3,四、I/O端口P0、P1、P2和P3,(1)P0口(P0.0P0.7,3932pin,I/O)是漏极开路的8位准双向 I/O 端口。,准双向 作为输入口使用时,应先写入全1。,每位能驱动8个LS型TTL负载。可用作8位数据输入/输出,同时也可用作外部地址总线的低8位。在CPU访问片外存储器(RAM、ROM)时,P0口作为分时复用的低8位地址总线/数据总线。,29,2023/6/3,(3)P1口(P1
17、.0P1.7,18pin,I/O)8位准双向I/O口。输出时,P1口的每一位能驱动4个LS型TTL负载。输入时,先向P1口锁存器写入全1,此时将P1口引脚由内部上拉 电阻拉成高电平。,(2)P2口(P2.0P2.7,2128,I/O)8位准双向I/O口,可用作8位数据输入/输出,同时也可用作外部地址总线的高8位。当有外部存贮器时,用作高8 位地址总线).当无外部存贮器时,可用作一般I/O线。,(4)P3口(P3.0P3.7,1017pin,I/O)8位准双向I/O端口。,每位能驱动4个LS型TTL负载。P3口除作为一般I/O口外,每个引脚都有第二功能。,30,2023/6/3,P3口第二功能:
18、系统控制信号,定义如下:,任意一位不用于第二功能(首选)时,可用于第一功能。,31,2023/6/3,2.3 89C51存储器配置,89C51存储器,程序存储器ROM,数据存储器ROM,片内程序存储器,片外程序存储器,片内数据存储器,片外数据存储器,物理结构(哈佛结构),32,2023/6/3,128B,128B,SFR,片外64KB,片内外程序存储器,片内数据存储器,片外数据存储器,0000H,FFFFH,提示:CPU访问片内、外ROM用指令 MOVC 片外RAM用 指令 MOVX 片内RAM用 指令 MOV,00H,7FH,80H,FFH,33,2023/6/3,2.3.1 程序存储器用于
19、存放程序和常数表。含4KB Flash ROM,当EA=1时,片内程序存储器被允许(地址为00000FFFH时自动访问片内,地址为1000HFFFFH时自动访问片外)。当EA=0时,片内程序存储器被禁止。,片内片外统一编址:0000HFFFFH,34,2023/6/3,中断向量表,0003H002AH均匀地分为5段,为5个中断服务程序起始处。因为字节单元太少,所以常在这些存储单元中存放转移指令。,片内ROM和片外ROM取指的速度相同。应尽量避免外扩程序存储器芯片而增加硬件的负担.在极特殊的情况下,才应外扩程序存储器芯片执行外部程序.,程序存储器的低地址的40多个单元留给系统使用。,35,202
20、3/6/3,2.3.2 数据存储器地址空间,用于存放运算的中间结果、数据暂存和缓冲、标志位等。,1.片外RAM 0000HFFFFH,使用MOVX指令访问。,2.片内RAM 00HFFH,使用MOV指令访问。,安排了21个SFR地址分布离散,32个字节通用Reg.区,即可字节寻址,又可位寻址.,80字节RAM区,由PSW中RS1、RS0组合来决定选中当前组,CPU上电时选中0组;未用到的组可作为RAM用.程序执行的任何时刻,只能用一组。,37,2023/6/3,图28 低128字节RAM区,图29 高128字节RAM区(SFR区),38,2023/6/3,1)低128字节RAM,89C51的3
21、2个工作寄存器与RAM安排在同一个队列空间里,统一编址并使用同样的寻址方式(直接寻址和间接寻址)。00H1FH地址安排为4组工作寄存器区,每组有8个工作寄存器(R0R7),共占32个单元。通过对程序状态字寄存器PSW中RS1、RS0的设置,每组寄存器均可选作CPU的当前工作寄存器组。若程序中并不需要4组,那么其余可用作一般RAM单元。CPU复位后,选中第0组寄存器为当前的工作寄存器。,工作寄存器区后的16字节单元(20H2FH),可用位寻址方式访问其各位。在89系列单片机的指令系统中,还包括许多位操作指令,这些位操作指令可直接对这128位寻址。这128位的位地址为00H7FH。,39,2023
22、/6/3,2)高128字节RAM特殊功能寄存器(SFR),89C51片内高128字节RAM中,有21个特殊功能寄存器(SFR),它们离散地分布在80HFFH的RAM空间中。访问特殊功能寄存器只允许使用直接寻址方式。,(1)累加器ACC(E0H),累加器ACC是89C51最常用、最忙碌的8位特殊功能寄存器,许多指令的操作数取自于ACC,许多运算中间结果也存放于ACC。在指令系统中用A作为累加器ACC的助记符。,40,2023/6/3,(2)寄存器B(F0H),在乘、除指令中,用到了8位寄存器B。乘法指令的两个操作数分别取自A和B,乘积存于B和A两个8位寄存器中。除法指令中,A中存放被除数,B中放
23、除数,商存放于A,B中存放余数。在其他指令中,B可作为一般通用寄存器或一个RAM单元使用。,(3)程序状态寄存器PSW(D0H),PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。PSW除有确定的字节地址(D0H)外,每一位均有位地址。,41,2023/6/3,42,2023/6/3,CY(PSW.7):进位标志位。在执行加法(或减法)运算指令时,如果运算结果最高位(位7)向前有进位(或借位),则CY位由硬件自动置1;如果运算结果最高位无进位(或借位),则CY清0。CY也是89C51在进行位操作(布尔操作)时的位累加器,在指令中用C代替CY。AC(PSW
24、.6):半进位标志位,也称辅助进位标志。当执行加法(或减法)操作时,如果运算结果(和或差)的低半字节(位3)向高半字节有半进位(或借位),则AC位将被硬件自动置1;否则AC被自动清0。F0(PSW.5):用户标志位。用户可以根据自己的需要对F0位赋予一定的含义,由用户置位或复位,以作为软件标志。,43,2023/6/3,RS0和RS1(PSW.3和PSW.4):工作寄存器组选择控制位。这两位的值可决定选择哪一组工作寄存器为当前工作寄存器组。通过用户用软件改变RS1和RS0值的组合,以切换当前选用的工作寄存器组。89C51上电复位后,RS1=RS0=0,CPU自动选择第0组为当前工作寄存器组。根
25、据需要,可利用传送指令对PSW整字节操作或用位操作指令改变RS1和RS0的状态,以切换当前工作寄存器组。这样的设置为程序中保护现场提供了方便。,44,2023/6/3,OV(PSW.2):溢出标志位。当进行补码运算时,如有溢出,即当运算结果超出128127的范围时,OV位由硬件自动置1;无溢出时,OV=0。PSW.1:为保留位。89C51未用,89C52为F1用户标志位。P(PSW.0):奇偶校验标志位。每条指令执行完后,该位始终跟踪指示累加器A中1的个数。如结果A中有奇数个1,则置P=1;否则P=0。常用于校验串行通信中的数据传送是否出错。,45,2023/6/3,(4)栈指针SP(81H)
26、,堆栈指针SP为8位特殊功能寄存器,SP的内容可指向89C51片内00H7FH RAM的任何单元。系统复位后,SP初始化时为07H,即指向07H的RAM单元。,89C51在片内RAM中专门开辟出来一个区域,数据的存取是以“后进先出”的结构方式处理的;堆栈的操作有两种:一种叫数据压入(PUSH),另一种叫数据弹出(POP)。89C51的堆栈指针SP是一个双向计数器。进栈时,SP内容自动增值,出栈时自动减值。存取信息必须按“后进先出”或“先进后出”的规则进行。,46,2023/6/3,如右图,假若有8个RAM单元,每个单元都有地址,栈顶由堆栈指针SP自动管理。每次进行压入或弹出操作以后,堆栈指针便
27、自动调整以保持指示堆栈顶部的位置。,图210 堆栈的压入与弹出,47,2023/6/3,(5)数据指针DPTR(83H,82H),DPTR是一个16位的特殊功能寄存器,其高位字节寄存器用DPH表示(地址83H),低位字节寄存器用DPL表示(地址82H)。DPTR既可以作为一个16位寄存器来处理,也可以作为两个独立的8位寄存器DPH和DPL使用。DPTR主要用于存放16位地址,以便对64 KB片外RAM作间接寻址。,48,2023/6/3,(6)/端口P0P3(80H,90H,A0H,B0H),P0P3为4个8位特殊功能寄存器,分别是4个并行/端口的锁存器。它们都有字节地址,每一个口锁存器还有位地址,每一条/线均可独立用作输入或输出。用作输出时,可以锁存数据;用作输入时,数据可以缓冲。,图2-11 特殊功能寄存器SFR的位置,空格部分为未来设计新型芯片可定义的SFR位置,