单片微机原理及应用_第1页
单片微机原理及应用_第2页
单片微机原理及应用_第3页
单片微机原理及应用_第4页
单片微机原理及应用_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

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

文档简介

1、1会计学单片微机原理及应用单片微机原理及应用绪 论绪 论 在工业、农业、军事、保安、金融、仪器仪表、航空航天、医疗、通讯、办公设备、娱乐休闲、健身、体育竞赛、服务领域,大量单片机-嵌入式技术已经无处不在。正迅速改变着人们传统的生产和生活方式。 请稍微留心一下我们的周围,看看身边到底发生了什么变化?单片机技术的应用遍布国民经济与人民生活的各个领域从一个简单的测控应用实例说起动作选择按钮红外线传感器89C2051单片机复位按钮电源指示灯从一个简单的测控应用实例说起任务一:控制一盏灯点亮任务二:红灯周期性地点亮/熄灭信号检测柔性开关集群灯控顺序控制/多任务定时切换自动生产流水线任务三:红外防盗报警实

2、时控制简单测控实例原理图数字电路中由13片IC组成的数字钟数字电路中由13片IC组成的数字钟数字电路中由13片IC组成的数字钟单片机1G手机大哥大3G、4G手机电子技术的几十年飞速发展虚拟现实3D打印机四旋翼飞行器机器人将影响人类生活的一些事物单片机与嵌入式技术 重要吗?有用吗?遥远吗? 问题的答案是不言而喻的。https:/ 算机各部件自动地、协调一致地工作。存储器:是存放程序与数据的部件。输入设备:用来输入程序与数据,常用的输入设备有键盘、鼠标、光电输入机等。输出设备:将计算机的处理结果用数字、图形等形式表示出来。常用的输出设备有显示终端、数码管、打印机、绘图仪等。计算机的基本结构中央处理

3、单元CPU:运算器、控制 器 合 称 为 中 央 处 理 单 元CPU(Central Processing Unit) 。主机:通常把运算器、控制器、存储器这三部分称为计算机主机。外设:输入、输出设备称为计算机的外围设备(简称“外没”)。第一讲:单片机基础本讲重点: MCS-51的基本特性; 单片机的引脚与I/O口结构; 存储器、堆栈与特殊功能寄存器. 单片机与嵌入式:单片微机(Single Chip Micro-computer)微控制器(Micro-Controller UnitMCU)嵌入式微控制器(Embedded Microcontroller) 单片机应用领域:测控系统、智能仪表

4、、智能接口、办公自动化、光机电一体化设备、通讯设备、网络设备、汽车电子、消费类电子产品、智能楼宇设备 单片机的多元化发展:外国:NXP(Philips, Motorola) ST Microchip TI RENESAS Intel Atmel 国产:宏晶,松瀚,和泰,华邦组成: CPU(进行运算、控制) RAM(数据存储器) I/O口(串口、并口等) ROM(程序存储器) PC机: 上述部件以芯片形式安装在主板上。 单片机:上述部件被集成到单芯片中。通用PC包括:键盘、显示器、鼠标、硬/软/光驱、音箱、打印机、扫描仪等外设。单片机则只是一片集成电路。(100、48、40、32、28、20、1

5、6、8条引脚)。单片机与计算机之异同(1)功能:PC机: 数据运算、采集、处理、存储、传输;单片机:控制(或受控于)外设。通用计算机擅长于数据运算、采集、处理、存储和传输;单片机的专长则是测控,往往嵌入某个仪器/设备/系统中,使其达到智能化的效果。单片机与计算机之异同(2)应用特点:个人计算机(微机):体积大,功耗大,价格高,用途较固定,属通用计算机。易于学习掌握和使用,但用于控制时必须制作或购买专用的接口卡,并编制专门的应用软件。单片机:体积小,功耗小,价格低,用途灵活,无处不在,属专用计算机。是一种特殊器件,需经过专门学习方能掌握应用,应用中要设计专业的硬件和软件。单片机与计算机之异同(3

6、)MCS-51单片机基本特性8 位的CPU,片内有振荡器和时钟电路,工作频率为 112MHz(Atmel 89Cxx为024MHz)片内有 128/256字节 RAM片内有 0K/4K/8K字节 程序存储器ROM可寻址片外 64K字节 数据存储器RAM可寻址片外 64K字节 程序存储器ROM片内 21/26个 特殊功能寄存器(SFR)4个8位 的并行I/O口(PIO)1个 全双工串行口(SIO/UART)2/3个16位 定时器/计数器(TIMER/COUNTER)可处理 5/6个中断源,两级中断优先级内置1个布尔处理器和1个布尔累加器(Cy)MCS-51指令集含 111条指令MCS-51系列单

7、片机配置一览表系列片内存储器(字节)定时器计数器并行I/O串行I/O中断源片内ROM片内RAM无有ROM有EPROMIntelMCS-51子系列803180C31805180C51(4K字节)875187C51(4K字节)128字节2x164x8位15IntelMCS-52子系列803280C32805280C52(8K字节)875287C52(8K字节)256字节3x164x8位16注意:今后将会经常提到ATMEL的AT89C2051/51/52等MCU!ATEML89C系列(常用型)1051(1K)/ 2051(2K)/ 4051(4K)(20条引脚DIP封装)1282151589C51(

8、4K)/ 89C52(8K)(40条引脚DIP封装)128/2562/33215/6内部结构框图MCS-51的CPU 由运算器和控制器所构成I 运算器 运算器的功能是进行算术、逻辑运算和位操作,包括算术逻辑运算单元ALU、累加器A、寄存器B、位处理器、程序状态字寄存器PSW以及BCD码修正电路等。 1算术逻辑运算单元ALU ALU可对8位变量进行加、减、乘、除、加1、减1、比较、十进制调整等算术运算和与、或、非、异或、移位等逻辑运算,还具有位处理操作功能,可对位进行置“1”、清“0”、取反、测试转移及逻辑与、或等操作。2累加器A 使用最频繁的寄存器,可写为Acc。 累加器A的作用:(1)是AL

9、U的输入之一,又是运算结果的存放单元。(2)数据传送大多都通过累加器A。MCS-51增加了一部分可以不经过累加器的传送指令,即可加快数据的传送速度,又减少A的“瓶颈堵塞”现象。 A的进位标志Cy同时又是位处理机的位累加器。3寄存器B 它是运算结果的另一个存放单元。例如在进行8位变量乘以8位变量运算时,运算结果的高8位数据存放在寄存器B中,低8位数据存放在累加器A中。(1)Cy(PSW.7)进位标志位,用于表示Acc.7有否 向更高位进位。(2)Ac(PSW.6) 辅助进位标志位,用于BCD码的十 进制调整运算。用于表示Acc.3有否 向Acc.4进位(3)F0(PSW.5)用户使用的状态标志位

10、。程序状态字寄存器PSW4程序状态字寄存器PSW PSW也称为标志寄存器,存放各有关标志。其结构和定义如图:(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。如表2-2。 RS1、RS0与4组工作寄存器区的对应关系 RS1 RS0 所选的4组寄存器 0 0 0区(内部RAM地址 00H07H) 0 1 1区(内部RAM地址 08H0FH) 1 0 2区(内部RAM地址 10H17H) 1 1 3区(内部RAM地址 18H1FH)(5)OV(PSW.2)溢出标志位 指示运算是否溢出。注意各种算术运算指令对该位的影响(6)PSW.1位: 保留位,未用 (7)P(P

11、SW.0)奇偶标志位 P=1,A中“1”的个数为奇数P=0,A中“1”的个数为偶数II 控制器 1程序计数器PC(Program Counter) 存放下一条要执行的指令在程序存储器中的地址。 基本工作方式有以下几种: 1)程序计数器自动加1 2)执行有条件转移或无条件转移指令时, PC将被置入新的数值,从而使程序的流向发生变化。 3)执行子程序调用或中断调用,完成下列操作:l PC的现行值保护l 将子程序入口地址或中断向量的地址送入PC。 2指令寄存器IR、指令译码器及控制逻辑电路 指令寄存器IR用来存放指令操作码。IR寄存器的输出送至指令译码器,然后对该指令进行译码,译码结果送至时序控制逻

12、辑电路。 时序控制逻辑电路的功能是根据对指令的译码结果,发出一系列的时序控制信号,控制单片机的各组成部件进行相应的工作,执行指令。III.CPU时序时序是表达指令执行中各控制信号在时间上的相互关系。时序是用时间单位来说明的,80C51系列单片机的时序单位共有4个,从小到大依次是:l 振荡周期l 状态周期l 机器周期l 指令周期III.CPU时序1、振荡周期(P)振荡周期也称为晶振周期,用P表示,也称为拍。它就是晶体的振荡周期,或是外部振荡源的脉冲周期,是80C51单片机中最小的时序单位。2、状态周期(S)振荡脉冲经过二分频后,就得到单片机的时钟信号,把时钟信号的周期称为状态周期或时钟周期,用S

13、表示。一个状态周期包含两个拍,分别称做Pl和P2,或者前拍和后拍。状态周期是单片机中最基本的时间单位,在一个状态周期内,CPU仅完成一个最基本的动作。III.CPU时序3、 机器周期一个机器周期由6个状态周期(S1S6),也就是12个拍组成,可依次表示为S1P1,S1P2,S2P1,S2P2,S6P1,S6P2。当振荡频率为12 MHz时,一个机器周期为ls;当振荡脉冲频率为6 MHz时,一个机器周期为2s。4、 指令周期指令周期就是执行一条指令所需要的时间。指令周期是80C51单片机中最大的时序单位,一般由若干个机器周期组成。指令不同,所需要的机器周期数也不同,但一条指令的周期应在14个机器

14、周期范围内单片机的引脚定义从一片集成电路的角度去认识单片机(a)双列直插DIP封装(b)贴片式封装深圳宏晶公司出品的STC89系列单片机51单片机外形封装MCS-51:40个引脚双排直插DIP封装,大致可分为3类:电源及时钟、控制和I/O引脚。40只引脚按功能分为3类: 1)电源及时钟引脚(4个): Vcc、Vss;XTAL1、XTAL2。 2)控制引脚(4个): PSEN*、EA* 、ALE、RESET (即RST)。 3)I/O口引脚(32个):P0、P1、P2、P3,为4个8位I/O口的外部引脚1)电源引脚 (1)Vcc(40脚):+5V电源(+5V/3.3V/2.7V) ; (2)Vs

15、s(20脚):接地。 不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不同。2)时钟引脚 (1)XTAL1(19脚):接外部晶体,如果采用外接振荡器时,振荡器的输出应接到此引脚上。 (2)XTAL2(18脚):接外部晶体的另一端或采用外接振荡器时悬空。1. 电源及时钟引脚lXTAL1, XTAL2: 片内振荡电路输入/输出端1545pfx2112MHz(MCS-51) 024MHz(Atmel-89C)XTAL1XTAL2也可以由 XTAL1端接入外部时钟,此时应将 XTAL2接地:XTAL2XTAL1通常外接一个晶振两个电容无源晶振有源晶振1. 电源及时钟引脚通过单片机的XTA

16、Ll和XTAL2两端跨接晶体,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器lXTAL1, XTAL2: 片内振荡电路输入、输出端CPU总是按照一定的时钟节拍与时序工作:振荡周期/时钟周期: Tc=晶振频率fosc(或外加频率)的倒数状态周期:Ts=2个时钟周期(Tc)(很少用到此概念)机器周期:Tm=6个状态周期(Ts)=12个振荡周期(Tc)指令周期: Ti:执行一条指令所需的机器周期(Tm)数牢牢记住: 振荡周期 = 晶振频率fosc的倒数; 1个机器周期 = 12个振荡周期; 1个指令周期 = 1、2、4个机器周期1. 电源及时钟引脚复位使单片机进入某种确定的初始状态:

17、PC值归零(0000H); 各个SFR被赋予初始值(见P.42): P0P3 = 0FFH,Acc = 0,B = 0,TH0=0,TL0=0,TH1=0,TL0=0,SP=7,PSW=0 退出处于节电工作方式的停顿状态、退出一切程序进程、退出程序的死循环,从头开始。lRESET: 复位端(正脉冲有效,宽度8 mS)2. 控制引脚“跑飞”:单片机程序进入死循环,或单片机脱离用户程序控制的一种非正常状态。PC与SFR复位状态表寄存器寄存器复位状态复位状态寄存器寄存器复位状态复位状态PC0000HTCON00HA00HT2CON00HB00HTH000HPSW00HTL000HSP07HTH100

18、HDPTR0000HTL100HP0P3FFHSCON00HIPXX000000BSBUFXXHIE0X000000BPCON0XXX0000BTMOD00HlRESET: 复位端 (正脉冲有效,宽度8 mS)2. 控制引脚lEA/Vpp: 寻址外部ROM控制端/编程电源输入端。 EA*:为内外程序存储器选择控制端。 EA*=1,访问片内程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051、8751)时,即超出片内程序存储器的4K字节地址范围时,将自动转向执行外部程序存储器内的程序。 EA*=0,单片机则只访问外部程序存储器。 不管芯片内有否内ROM。对80C31芯片,片内无ROM

19、,因此EA必须接地。VPP:本引脚的第二功能。用于施加编程电压(例如+21V或+12V)。对89C51,加在VPP脚的编程电压为+12V或+5V。2. 控制引脚 EA低有效, 片内无ROM时必须接地 片内有ROM时应当接高电平lALE/PROG: 地址锁存允许/编程脉冲输入端。 P0口寻址外部低8位地址时接外部锁存器 G端; ALE端平时会输出周期正脉冲:f fosc/6 ; 对片内ROM编程时编程脉冲由此端加入。 2. 控制引脚lPSEN:寻址外部程序存储器时选通外部EPROM的 读控制端(OE)低有效。RD2. 控制引脚 MCS-51共有4个8位并行I/O端口:P0、P1、P2、P3口,共

20、32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 3. I/O口引脚(32个)P3P3口引脚口引脚第第 二二 功功 能能P3.0P3.0RXDRXD(串行输入口)(串行输入口)P3.1P3.1TXDTXD(串行输出口)(串行输出口)P3.2P3.2(外部中断(外部中断0 0)P3.3P3.3(外部中断(外部中断1 1)P3.4P3.4T0T0(定时器(定时器0 0外部计数输入)外部计数输入)P3.5P3.5T1T1(定时器(定时器1 1外部计数输入)外部计数输入)P3.6P3.6(外部数据存储器写选通)(外部数据存储器写选通)P3.7P3.7(外部数据存储器读选

21、通)(外部数据存储器读选通)P3口的第二功能定义WRINT01INTn单片机最小系统 单片机最小系统所谓最小系统:指单片机正常工作的最基本的外围配置主要包括:时钟(晶振)电路复位电路电源等单片机的I/O引脚结构众多功能各异的I/O引脚源于它结构的不同并行I/O端口 MCS-51单片机有4个双向的8位并行I/O端口,分别记作P0P3。端口的每一位均由锁存器、输出驱动器和输入缓冲器组成。各端口除了可以作为字节输入/输出外,还可以按位寻址,便于位控功能的实现。MCS-51利用P1P3口实现CPU与外设的输入/输出,完成信息的交换。各个端口的功能有所不同,结构也有差别,但工作原理相似。下面分别叙述各个

22、端口的内部结构。P0口是一个双功能的8位并行I/O端口,字节地址为80H,位地址为80H87H。端口的各位具有完全相同但又相互独立的电路结构,P0口某一位的电路结构如图所示 2P0 口地址/数据分时复用推挽式输出电路优点:驱动能力强1.位电路结构P0口某一位的电路包括:(1) 一个数据输出锁存器,用于数据位的锁存(2) 两个三态的数据输入缓冲器。(3) 一个多路转接开关MUX,使P0口可作通用I/O口,或地址/数据线口。(4) 数据输出的驱动和控制电路,由两只场效应管(FET)组成,上面的场效应管构成上拉电路。区分“读引脚”和“读锁存器”。 “读引脚”信号把下方缓冲器打开,引脚上的状态经缓冲器

23、读入内部总线; “读锁存器”信号打开上面的缓冲器把锁存器Q端的状态读入内部总线。CPU发来的“控制”信号为低电平,上拉场效应管截止,MUX打向下边,与D锁存器的Q*端接通。 2. 工作过程分析 (1)P0口作为地址或数据总线使用 CPU发出控制信号为高电平,打开上面的与门,使MUX打向上边,使内部地址/数据线与下面的场效应管反相接通。此时由于上下两个FET处于反相,形成推拉式电路结构,大大提高负载能力。(2) P0口作通用的I/O口使用 CPU发来的“控制”信号为低电平,上拉场效应管截止,MUX打向下边,与D锁存器的Q*端接通。 a. P0作输出口使用 来自CPU的“写入”脉冲加在D锁存器的C

24、P端,内部总线上的数据写入D锁存器,并向端口引脚P0.x输出。 注意:由于输出电路是漏极开路(因为这时上拉场效应管截止),必须外接上拉电阻才能有高电平输出(这时就不为双向口)。b. P0作输入口使用 区分“读引脚”和“读锁存器”。 “读引脚”信号把下方缓冲器打开,引脚上的状态经缓冲器读入内部总线; “读锁存器”信号打开上面的缓冲器把锁存器Q端的状态读入内部总线。3P0口的特点 P0口具有如下特点:P0口为双功能口地址/数据复用口和通用I/O口。(1)当P0口用作地址/数据复用口时,为一个真正的双向口,用作外扩存储器,输出低8位地址和输出/输入8位数据。 (2)当P0口用作通用I/O口时,由于需

25、要在片外接上拉电阻,端口不存在高阻抗(悬浮)状态,因此为一个准双向口。 一般情况下,如果P0口已作为地址/数据复用口,就不能再作为通用I/O口使用。Vcc上拉电阻来自CPU的“写入”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器 , 并 向 端 口 引 脚P0.x输出。 注意:由于输出电路是漏极开路(因为这时上拉场效应管截止),必须外接上拉电阻才能有高电平输出(这时就不为双向口)。不需要上拉电阻!CPU自动向引脚写“1”!单片机的引脚(P0口)P0总结P0口用作通用I/O口 P0口作为通用的I/O口使用,此时P0口为准双向口,且内部无上拉电阻。(1).P0口用作输出口时:P0口端口的结

26、构可以正常输出低电平,但必须外接上拉电阻才能按指令的要求有高电平输出。2、 P0口用作通用I/O口 (2). P0口作为输入口使用时(需要先执行写“1”操作): 当P0口用作通用I/O口时,由于需要在片外接上拉电阻,端口不存在高阻抗(悬浮)状态,因此为一个准双向口。3、P0 口地址/数据分时复用时是真正的双向口 一般情况下,P0口大多作为地址数据复用口使用,这时就不能再作为通用I/O口使用。 注:不是所有P0口在源操作数的指令都表示读入引脚状态。P0口实际存在两种读入方式:“读锁存器”和“读引脚”。凡遇“读取P0口前一状态以便修改后再送出”的情形,都属于“读锁存器”指令,如:而指令“CPL P

27、1.0”则是“读锁存器”。P0总结知识点: 上拉电阻:就是从电源高电平引出的电阻接到输出端,上拉电阻可以将不确定的信号通过一个电阻嵌位在高电平。下拉电阻。同理,只不过要拉到GND上。 为什么需要连接上拉电阻?由于单片机P0口内部结构设计的原因,导致其作普通I/O口时,不能够输出高电平,需要外接电阻和电源用硬件设计拉高(或拉低)口线输出高(低)电平。一般我们选择10k的上拉电阻值,接5V电源。 上拉电阻选取原则: 1)从节约功耗及芯片灌电流能力考虑应当足够大;电阻大,电流小。 2)从确保足够的驱动电流考虑应当足够小;电阻小,电流大。 3)对于高速电路,过大的上拉电阻可能会导致边沿变平缓。综合考虑

28、:上拉电阻常用值在1K到10K之间选取,下拉同理。lP1.0P1.7: 准双向I/O口(内置了上拉电阻)输出时一切照常,仅在作输入口用时要先对其 写“1”。lP1口是单功能的I/O口,字节地址为90H,位地址为90H97H。P1口只能作为通用的I/O口使用。P1口为准双向口,但内部有上拉电阻。普通准双向I/O口简单测控实例原理图P1.3作输入端口光路通畅,R亮2K光路阻断,R暗 400K R亮 250K JOB3: CLR P1.1 ;亮绿灯REDO: SETB P1.3 ;P1.3作输入口必先置1CHECK:JNB P1.3,CHECK ;检测通道是否被阻断?LOOP: ;有入侵者,报警!A

29、JMP REDO ;再跳回去检测任务三:红外防盗报警P1.3口用于输入状态检测的语句: R亮250K ,红外线光路阻断时,P1.3端高电平nP1 口总结P1口是单功能的I/O口,字节地址为90H,位地址为90H97H。P1口只能作为通用的I/O口使用。P1口为准双向口,但内部有上拉电阻。 1、P1口作为输出口时,外部不需要接上拉电阻,端口结构即能够按照指令的要求输出高低电平。2、P1口作为输入口时,由于其端口不呈现高阻抗输入状态,因此为准双向口。仍必须首先执行向锁存器写“1”操作指令(例如:MOV P1,#0FFH),方能正确读入引脚电平状态数据。69lP2.0P2.7: 双向I/O (内置了

30、上拉电阻)寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。 2P2 口作为地址总线nP2口总结P2口是一个双功能口,字节地址为A0H,位地址为A0HA7H。P2口只能作为通用的I/O口使用。P2口为准双向口,但内部有上拉电阻。P2口功能有以下两个方面: 1、作为高8位地址输出线使用时,P2口可以输出外部存储器的高8位地址,与P0口输出的低8位地址一起构成16位地址,可以寻址64 KB的地址空间。 2、作为通用I/O口使用时,P2口为一个准双向口。功能和使用方法与与P1口一样。 一般情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用I/O口使用

31、。lP3.0P3.7: 双功能口(内置了上拉电阻);它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。CPU自动向引脚写“1”!P3口第二功能表 (P.26 表23)引引 脚脚第第 二二 功功 能能 P3.0P3.0RxD: RxD: 串行口接收数据输入端串行口接收数据输入端P3.1P3.1TxD: TxD: 串行口发送数据输出端串行口发送数据输出端P3.2P3.2INT0: INT0: 外部中断申请输入端外部中断申请输入端 0 0P3.3P3.3INT1: INT1: 外部中断申请输入端外部中断申请输入端 1 1P3.4P3.4T0: T0: 外部计数脉冲输入端外部

32、计数脉冲输入端 0 0P3.5P3.5T1: T1: 外部计数脉冲输入端外部计数脉冲输入端 1 1P3.6P3.6WR: WR: 写外设控制信号输出端写外设控制信号输出端P3.7P3.7RD: RD: 读外设控制信号输出端读外设控制信号输出端nP3口总结 P3口的字节地址为B0H,位地址为B0H-B7H。由于80C51的引脚数目有限,因此在P3口电路中增加了引脚的第二功能。P3口的每一位都可以分别定义为第二输入功能或第二输出功能。 1、P3口作为第一功能的通用I/O口(字节或位寻址时) P3口可作为通用IO口使用时使用方法同P1。 2、P3口第二功能表(不进行字节或位寻址时) 当CPU不对P3

33、口进行字节或位寻址时,P3口不需要任何设置工作,就可以进入第二功能操作。51单片机的8个特殊引脚lVcc, GND: 电源端lXTAL1, XTAL2: 片内振荡电路输入、输出端lRESET: 复位端 正脉冲有效(宽度8 mS)lEA/Vpp: 寻址外部ROM控制端。低有效 片内有ROM时应当接高电平。lALE/PROG: 地址锁存允许控制端。lPSEN:选通外部ROM的读(OE)控制端。 低有效 小结51单片机的4个8位的I/O口P0.0P0.7:8位数据口和输出低8位地址复用口 (复用时是双向口;不复用时也是准双向口)P1.0P1.7: 通用I/O口(准双向口)P2.0P2.7: 输出高8

34、位地址(用于寻址时是输出口;不寻址时是准双向口)P3.0P3.7: 具有特定的第二功能(准双向口)注意:在不外扩ROM/RAM时,P0P3均可作通用I/O口使用,而且都是准双向I/O口(例如:AT89C51)! 小结P3口第二功能表 (P.26 表23)引引 脚脚第第 二二 功功 能能 P3.0P3.0RxD: RxD: 串行口接收数据输入端串行口接收数据输入端P3.1P3.1TxD: TxD: 串行口发送数据输出端串行口发送数据输出端P3.2P3.2INT0: INT0: 外部中断申请输入端外部中断申请输入端 0 0P3.3P3.3INT1: INT1: 外部中断申请输入端外部中断申请输入端

35、 1 1P3.4P3.4T0: T0: 外部计数脉冲输入端外部计数脉冲输入端 0 0P3.5P3.5T1: T1: 外部计数脉冲输入端外部计数脉冲输入端 1 1P3.6P3.6WR: WR: 写外设控制信号输出端写外设控制信号输出端P3.7P3.7RD: RD: 读外设控制信号输出端读外设控制信号输出端 小结片外三总线结构 单片机的管脚可以构成三总线结构:v地址总线v数据总线v控制总线 地址总线(AB) v地址总线主要是在单片机扩展时,用于地址信号的传输。可以通过地址选通访问外部存储器或设备的内容。MCS-51单片机地址总线宽度为16位,因此其能访问的外部存储器的地址范围是0000HFFFFH

36、,即可达64KB。v在单片机中,由P0口经地址锁存器提供16位地址总线的低8位地址(A7-A0),由P2口直接提供16位地址总线的高8位地址(A15A8) 数据总线 vMCS-51单片机是8位单片机,其数据总线的宽度位8位,由P0口提供。 控制总线在MCS-51单片机中,控制信号主要有:RST,EA,WR,RD,ALE及PSEN等。这些信号在单片机扩展时非常重要,统称为控制总线。 单片机的三总线 8051PSENALEEAP2.7P2.0A15A88P0.7P0.0A7A0地址锁存器D7D088地址总线RDWR数据总线控制总线存储器、堆栈、SFR数据存储器RAM(Random Access M

37、emory)程序存储器ROM(Read Only Memory)闪速存储器Flash MemoryEPROM(UV)Erazible Programmable ROMEEPROM/E2PROMElectrical Erasable Programmable ROM静态存储器 SRAMStatic RAM (动态存储器 DRAMDynamic RAM)按字节寻址:每个字节(8个位)占一个地址按位寻址:有的存储器每一个位就有一个地址单片机的存储器几个有关的概念:89C51单片机存储器配置l片内RAM 128字节(00H7FH); 片内RAM前32个单元是工作寄存器区(00H1FH) 片内RAM有1

38、28个可按位寻址的位,占16个单元。 位地址编号为:00H7FH,分布在20H2FH单元l片内21个特殊功能寄存器(SFR)中:地址号能被 8整除的 SFR中的各位也可按位寻址(P.33-34)l可寻址片外RAM 64K字节 (0000HFFFFH)l可寻址片外ROM 64K字节 (0000HFFFFH)l片内 Flash ROM 4K字节 (000HFFFH)存储器配置(片内RAM)l片内RAM 128字节(00H7FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SFR分布在80H-FFH其中92个位可位寻址80HFFH所有的RA

39、M区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器89C51 128字节90注:带“*”寄存器仅为52 子系列单片机所有,在51 子系列单片机中不存在。91在指令中,位地址与位名称作用相同!92l片内RAM前32个单元是工作寄存器区 (00H1FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区存储器配置(片内RAM)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH

40、工作寄存器区3工作寄存器区2工作寄存器区1工作寄存器区00FH10H17H18Hl片内RAM前32个单元是工作寄存器区 (00H1FH)存储器配置(片内RAM)单片机CPU 每一时刻只能使用一个工作寄存器子区!00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区l片内RAM中有128个可按位寻址的位。 位地址:00H7FH 分布在:20H2FH单元存储器配置(片内RAM)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区27H22H21H20H26H24H25H23H28H2FH单元地址0

41、7 06 05 04 03 02 01 000F 0E 0D 0C 0B 0A 09 0817 16 15 14 13 12 11 101F 1E 1D 1C 1B 1A 19 1827 26 25 24 23 22 21 202F 2E 2D 2C 2B 2A 29 2837 36 35 34 33 32 31 303F 3E 3D 3C 3B 3A 39 3847 46 45 44 43 42 41 407F 7E 7D 7C 7B 7A 79 78位地址总共128个可按位寻址的位l片内RAM中有128个可按位寻址的位。 位地址:00H7FH 分布在:20H2FH单元存储器配置(片内RAM

42、)100NoImagel可寻址片外RAM 64K字节 (0000HFFFFH);l可寻址片外ROM 64K字节 (0000HFFFFH);l片内 Flash ROM 4K字节 ( 000H FFFH);FFFFH0000H可寻址片外RAM 64K字节FFFFH0000H可寻址片外ROM 64K字节FFFH000H可寻址片内 Flash ROM4K 字节89C517FH00H片内 RAM 128字节FFH80H存储器配置(片内RAM)堆栈: 在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。功用:1)子程序调用

43、和中断服务时CPU自动将当前PC 值压栈保存,返回时自动将PC值弹栈。2)保护现场/恢复现场3)数据传输00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区 SP栈顶下一个进栈的数据将存在此数据进栈已经进栈的数据存放在此初始 SP复位后 SP=07H,数据进栈时:首先SP+1指向08H单元,第一个放进堆栈的数据将放进08H单元,然后SP再自动增 1,仍指着栈顶堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。从堆栈取出数据时:取出的数据是最

44、近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区 SP栈顶当前要出栈的数据数据出栈SP-1指向下一个将要出栈的数据初始 SP堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址

45、区工作寄存器区SP-1 指向新的栈顶,也就是下一个将要出栈的数据数据出栈初始 SP堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。89C51特殊功能寄存器(SFR)特殊功能寄存器SFR(专用寄存器)专用于控制、选择、管理、存放单片机内部各部分的工作方式、条件、状态、结果的寄存器。不同的SFR管理不同的硬件模块,负责不同的功能各司其职换言之:要让单片机实现预定的功能,必须有相应的硬件和软件,而软件中最重要的一项工作就是对SFR写命令(要求)。程序计数器PC(Program Counter)P

46、C 不是一个特殊功能寄存器SFR,但其作用又十分重要和特殊!特点:它是16位的按机器周期自动增1计数器一切分支/跳转/调用/中断/复位 等操作的本质就是:改变 PC 值总指向下一条指令所在首地址(当前PC值)特殊功能寄存器(PC)89C51有21个SFR(89C52有26个) 已知的P0、P1、P2、P3等四个8位I/O口分别由名为P0、P1、P2、P3四个SFR代表。堆栈指针寄存器 SP(Stack Pointer): 总是指向栈顶,压栈时先 (SP)+1 然后数据进栈;弹栈时数据先出栈 然后(SP)-1。累加器 ACC:一个被众多指令用得最频繁的特殊功能寄存器(如:运算、数据传输)。副累加

47、器 B:一个经常与 ACC 配合在一起使用的特殊功能寄存器(如:乘法、除法),此外,它也经常当作普通寄存器使用。特殊功能寄存器(P0P3,SP,A,B)程序状态字寄存器 PSW:CYACF0RS0OVPRS1PSW.7PSW.0CY(PSW.7)进位/借位标志位。若ACC在运算过程中发生了进位或借位,则CY=1;否则=0。它也是布尔处理器的位累加器,可用于布尔操作。AC(PSW.6)半进位/借位标志位。若ACC在运算过程中,D3位向D4位发生了进位或借位,则CY=1,否则=0。机器在执行“DA A”指令时自动要判断这一位,我们可以暂时不关心它。F0 (PSW.5)可由用户定义的标志位。PSW.

48、6 PSW.5特殊功能寄存器(PSW)程序状态字寄存器 PSW(续):CYACF0RS0OVPRS1PSW.7PSW.0RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。RS1,RS0 = 0 1 则选择了工作寄存器组 1 区R0R7分别代表08H 0FH单元。RS1,RS0 = 1 0 则选择了工作寄存器组 2 区 R0R7分别代表10H 17H单元。RS1,RS0 = 1 1 则选择了工作寄存器组 3 区R0R7分别代表18H 1FH单元。PSW.4 PSW.3RS1,RS0 = 0 0 则选择了工作寄存器组 0 区R0R7分别代表08H 0FH单元。l片内RAM前32个单元(

49、00H1FH)是工作寄存器区 (由PSW中的RS1,RS0决定)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器区3工作寄存器区2工作寄存器区1工作寄存器区0 程序状态字寄存器 PSW(续):CYACF0RS0OVPRS1PSW.7PSW.0OV (PSW.2)溢出标志位。 OV=1时特指累加器在进行带符号数(-128+127)运算时出错(超出范围);OV=0时未出错。PSW.1 未定义。P (PSW.0)奇偶标志位。 P=1表示累加器中

50、“1”的个数为奇数 P=0表示累加器中“1”的个数为偶数 CPU随时监视着ACC中的“1”的个数,并反映在PSW中PSW.2PSW.1PC与SFR复位状态表寄存器寄存器复位状态复位状态寄存器寄存器复位状态复位状态PCPC0000H0000HTCONTCON00H00HA A00H00HT2CONT2CON00H00HB B00H00HTH0TH000H00HPSWPSW00H00HTL0TL000H00HSPSP07H07HTH1TH100H00HDPTRDPTR0000H0000HTL1TL100H00HP0P3P0P3FFHFFHSCONSCON00H00HIPIPXX000000BXX0

51、00000BSBUFSBUFXXHXXHIEIE0X000000B0X000000BPCONPCON0XXX0000B0XXX0000BTMODTMOD00H00H 回顾89C51单片机存储器配置l片内RAM 128字节(00H7FH); 片内RAM前32个单元是工作寄存器区(00H1FH) 片内RAM有128个可按位寻址的位,占16个单元。 位地址编号为:00H7FH 分布在:20H2FH单元l片内21个特殊功能寄存器(SFR)中:地址号能被 8整除的 SFR中的各位也可按位寻址l可寻址片外RAM 64K字节 (0000HFFFFH)l可寻址片外ROM 64K字节 (0000HFFFFH)l片内 Flash ROM 4K字节 (000HFFFH) 小结存储器配置(片内RAM)00H20H2FH7FH1FH30H80HFFH52子系列才

温馨提示

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

评论

0/150

提交评论