已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章89C51单片机的结构和原理 2 189C51单片机的内部结构及特点2 289C51单片机引脚及其功能2 389C51单片机存储器配置2 4时针电路及89C51CPU时序2 5复位及复位电路2 689C51的低功耗工作方式2 7输入 输出端口结构 2 189C51单片机的内部结构及特点 MCS 51单片机是由INTEL公司研发的 授权生产的公司有ATMEL PHILIPS和SST等公司 AT89C51 P89C51 STC89C51 89C51芯片的特点是 低功耗 高性能 闪速可电改写的ROM 价格便宜 近年来得到极其广泛的应用 下面以89C51单片机为典型机 介绍该芯片内部的硬件资源 各个功能部件的结构及原理 2 1 189C51单片机组成原理 不同型号MCS 51单片机的CPU处理能力和指令系统完全兼容 只是存储器和I O接口的配置有所不同 2 1 1MCS 51单片机的基本组成 2 1 189C51单片机组成原理 89C51单片机的组成 1 8位CPU 片内256字节RAM 片内4KB的FlashROM 4 4个8位并行I O接口 5 片内2个16位定时器 计数器6 片内5个中断源 2个中断优先级的中断处理系统7 片内1个全双工串行I O口8 具有节电工作方式9 最高允许振荡频率为24MHz 8051为12MHz 2 1 2MCS 51单片机内部结构 运算器 控制器 振荡器 2 1 2MCS 51单片机内部结构 各部分的功能 一 中央处理单元 CPU CPU是单片机的核心 是计算机的控制和指挥中心 由运算器和控制器等部件组成 一 中央处理单元 CPU 1 运算器有 1个能进行8位算术运算和逻辑运算的单元ALU 8位的暂存器1 暂存器2 8位的累加器ACC 寄存器B 程序状态寄存器PSW 布尔处理器C等组成 ALU 可对4位 半字节 8位 一字节 和16位 双字节 数据进行算术和逻辑操作 ACC 累加器 在指令中用助记符A来表示 它是最繁忙的一个寄存器 PSW 程序状态寄存器 8位 是一个标志寄存器 用来指示指令执行后的状态信息 PSW中的各位状态可供程序查询和判别 B 寄存器 8位 在乘 除运算时 运算前B用来存放一个操作数 运算完后用来存放一部分运算结果 当不做乘 除运算时 则作为一般的寄存器使用 C 布尔处理器 1位 它是以PSW中的进位标志位CY作为它的累加器 专门用于处理位操作 2 控制器 包括 程序计数器PC 指令寄存器IR 指令译码器ID 振荡器及时钟电路 程序计数器PC 16位 由两个8位的计数器PCH 高8位 和PCL 低8位 组成 它是程序的字节地址计数器 PC存放的内容是即将要执行的下一条指令的地址 故 改变PC的内容就可以改变程序执行的方向 PC可对64KB的ROM直接寻址 也可对89C51片内RAM寻址 指令寄存器IR 指令译码器ID 由PC中的内容指定ROM 程序存储器 的地址 取出来的指令经IR送至ID 由ID对指令译码并送PLA产生一定序列的控制信号 以执行指令所规定的操作 振荡器及时钟电路 89C51片内有振荡电路 只需外接晶振和频率微调电容 2个30皮法左右 频率为 0 24MHz 8051为12MHz 二 存储器 1 程序存储器 ROM 89C51 8751的片内ROM容量为4KB 地址从0000H开始 到0FFFH 用于存放程序和表格常数 89C51片内有 4KFlash程序存储器 ROM 它只能读不能写 数据存储器 RAM 它可以读 写 2 数据存储器 RAM 8031 89C51 8751的片内RAM容量为128B 地址从00H开始 到7FH 用于存放运算的中间结果 数据暂存及数据缓冲等 另外 在RAM的128B单元中还有特殊功能寄存器 SFR 地址为80H FFH 详细内容将在后面介绍 三 I O接口 89C51有4个8位的并行接口 即 P0 P3 它们都是准双向口 为什么是准双向口 后面会解释 每个端口各有8根I O线 均可作输入 输出用 89C51有1个可编程的全双工串行口 即RXD 引脚P3 0 接收 和TXD 引脚P3 1 发送 P0 P3口的4个锁存器同RAM统一编址 可以把I O作为一般特殊功能寄存器来寻址 所谓 寻址 就是寻找指令中操作数或操作数所在的地址 2 289C51单片机引脚及其功能 图2 389C51的引脚结构 1 I O口线功能4个8位并行I O接口引脚P0 0 P0 7 P1 0 P1 7 P2 0 P2 7和P3 0 P3 7为多功能引脚 可自动切换用作数据总线 地址总线 控制总线和或I O接口外部引脚 2 289C51单片机引脚及其功能 2 289C51单片机引脚及其功能 2 控制线ALE PROG ALE地址锁存允许信号端 CPU访问片外存储器时 该引脚输出信号作为锁存低8位地址的控制信号 PROG是对片内带有4KBEPROM的8751编程写入时的编程脉冲输入端 用示波器查看ALE端 若有脉冲信号输出 则说明89C51基本上是好的 2 控制线 PSEN 外部程序存储器读选通信号端 在访问片外ROM时 该引脚接片外ROM的OE端 定时输出负脉冲作为读片外ROM的选通信号 检查一个89C51最小系统上电后能否正常工作 可用示波器查看该引脚有无脉冲输出 若有 则说明基本上工作正常 EA VPP EA程序存储器选择信号端 VPP固化编程电源输入端 12V 2 289C51单片机引脚及其功能 当EA引脚接高电平 EA 1 时 CPU只访问片内ROM EPROM 并执行片内程序存储器中的指令 当PC 程序计数器 的值超过0FFFH 89C51 8751为4KB 时 将自动转去执行片外ROM内的程序 当EA引脚接低电平 接地 EA 0 时 CPU只访问片外ROM EPROM 并执行片外程序存储器中的指令 而不管片内是否有ROM 故对于无片内ROMR的8031 8032 需要外扩EPROM 此时 EA引脚必须接地 3 复位 RST VPD 复位信号端和后备电源输入端 输入10ms以上高电平脉冲 单片机复位 VPD使用后备电源 可实现掉电保护 复位电路 1 上电复位2 外部信号复位 4 电源工作电源 VCC 5V VSS 即GND端为接地端 5 外接晶振引脚 XTAL2接外部晶振和微调电容的一端 若须采用外部时钟电路时 该引脚悬空 要查看89C51的振荡电路是否工作 可用示波器查看该引脚有无脉冲信号输出 若有则说明振荡器工作正常 XTAL1接外部晶振和微调电容的另一端 若须采用外部时钟电路时 该引脚是外部时钟的输入端 6 输入 输出端口 P0口 P0 0 P0 7 P0口是一个漏极开路的8位准双向I O端口 每一位口线能驱动8个LS型TTL负载 当P0口作为输入口使用时 要先向端口写 1 而作为输出口使用时则不需要 P0口内部无上拉电阻 故当作为输出口使用 需输出高电平时 应加外部上拉电阻 P0口还是复用端口 当CPU访问片外存储器时 P0口分时提供低8位的地址和8位数据 6 输入 输出端口 P1口 P1 0 P1 7 P1口是一个带内部上拉电阻的8位准双向I O端口 每一位口线能驱动8个LS型TTL负载 当P1口作为输入口使用时 要先向端口写 1 而作为输出口使用时则不需要 P2口 P2 0 P2 7 P2口是一个带内部上拉电阻的8位准双向I O端口 每一位口线能驱动4个LS型TTL负载 当P2口作为输入口使用时 要先向端口写 1 而作为输出口使用时则不需要 当CPU访问片外存储器时 P2口输出地址的高8位 P3口 P3 0 P3 7 P3口是一个带内部上拉电阻的8位准双向I O端口 每一位口线能驱动4个LS型TTL负载 P3口作为输入口使用时 要先向端口写 1 而作为输出口使用时则不需要 P3口还具有第二功能 P3口作为第二功能端口时的功能表 P21 表2 1 物理结构 哈佛结构 89C51存储器 程序存储器ROM 数据存储器RAM 片内程序存储器 片外程序存储器 片内数据存储器 片外数据存储器 2 389C51存储器配置 一 物理空间与地址 物理上4个存储器地址空间 片内 片外程序存储器空间片内 片外数据存储器空间逻辑上3个存储器地址空间 64KB程序存储器 片内 片外统一编址0000H FFFFH 256B片内数据存储器 地址 00H FFH 64KB片外数据存储器 地址 0000H FFFFH 这三个存储空间的地址是重叠的 用指令来区别这三个不同的逻辑空间 当CPU访问片内 片外ROM时 用 MOVC 指令 当访问片外RAM时 用 MOVX 指令 访问片内RAM时 用 MOV 指令 二 程序和数据存储器逻辑空间 普林斯顿结构 程序和数据共用一个存储器逻辑空间 统一编址 哈佛结构 程序与数据分为两个独立存储器逻辑空间 分开编址 2 3 1程序存储器 ROM 地址空间 ROM是用来存放编好的程序和表格常数 89C51有64K的FlashROM ROM通过16位的程序计数器 PC 寻址 寻址空间为64K 但不能使程序从ROM中转移到数据存储器 RAM 中去 2 3 1程序存储器 ROM 地址空间 用户角度1 片内 外统一编址的64K程序存储器地址空间 CPU访问片内 片外ROM指令用 MOVC 2 64K的片外数据存储器地址空间 访问片外RAM指令用 MOVX 3 256字节的片内数据存储器地址空间 访问片内RAM指令用 MOV 上述三个存储空间地址是重叠的 89C51的指令系统采用不同的数据传送指令符号 2 3 1程序存储器 ROM 地址空间 寻址方式 1 当EA 1 时 89C51的PC在0000 0FFFH范围内执行片内ROM中的程序 当指令地址超过0FFFH后就自动转向片外ROM中取指令 2 当EA 0 时 89C51片内ROM不起作用 CPU只能从片ROM中取指令 可以从0000H开始寻址 由于8031片内不带ROM 所以使用时必须EA 0 3 89C51从片内ROM和片外ROM取指的速度相同 2 3 1程序存储器 ROM 地址空间 程序存储器中留有一些存储单元给系统使用 如下表 P26 表2 2保留的存储单元 2 3 1程序存储器 ROM 地址空间 P26 表2 3中断矢量地址表 2 3 1程序存储器 ROM 地址空间 执行外部程序 即访问片外ROM时 时的硬件连接如图2 5所示 图中 单片机EA引脚接地代表何意 2 3 2数据存储器 RAM 地址空间 RAM用来存放运算的中间结果 数据暂存和缓冲 标志位等 片内RAM的存储空间为256B 分为 低128B 地址 00H 7FH 是真正的RAM区 高128B 地址 80H FFH 是特殊功能寄存器区 SFR 2 3 2数据存储器 RAM 地址空间 1 片内RAM 工作寄存器区 4组 每一组有8个工作寄存器R0 R7 可通过PSW中的RS1 RS0设置加于选择 字节地址 00H 1FH 位寻址区 字节地址 20H 2FH 位地址为 00H 7FH 数据缓冲区 堆栈区 字节地址 00H 7FH一般使用30H 7FH 低128B 2 片外RAM 89C51片内RAM只有128B 若需要扩展片外RAM 则可外接静态RAM芯片如6116 2K 6264 8K 62256 32K 硬件连接如图2 6所示 CPU访问片外RAM时 用指令 MOVX 当执行该指令时 RD和WR的引脚信号有效 图中 89C51的引脚EA接高电平 即电源 Vcc 是何含义 3 特殊功能寄存器SFR 占用字节地址 80H FFH位寻址寄存器 其字节地址可被8整除 专用寄存器 A B PSW DPTR SP I O接口寄存器 P0 P1 P2 P3 SBUF TMOD TCON SCON 高128B 访问SFR只能用直接寻址方式 部分特殊功能寄存器 程序状态寄存器PSW D0H 格式 进位位标志位 半进位标志位 用户标志位 工作寄存器组选择控制位 奇偶校验标志位 未定义 溢出标志位 复习 第1章讲过 进位 与 溢出 进位 例如在加法运算中 每位数等于基数时向前一位数进一 这叫进位溢出是指有符号数的运算结果超出了数 补码 128 127的表示范围 破坏了符号位 如 105 50 69H 32H 155 CY PSW 7 进位 借位标志位 在执行加 减 运算时 若最高位 第7位 向前有进位 或借位 位 则CY自动置1 否则CY自动清0 它也是布尔处理器的位累加器 可用于布尔操作 AC PSW 6 半进位 借位标志位 在执行加 减 运算时 第3位向第4位有进位 或借位 则AC自动置1 否则AC自动清0 F0 PSW 5 可由用户定义的标志位 OV PSW 2 溢出标志位 累加器在进行有符号数 128 127 运算时即进行补码运算时有溢出 超出 128 127范围 时 OV自动置1 无溢出时OV自动清0 在MCS 51中 无符号数进行乘法运算时 若两数的乘积超过255时 OV 1 否则为0 当执行除法运算时 若除数为0时 则OV 1 否则OV为时0 P66 如何判断是否溢出 例如 有符号数105 50 155 69H 32H 9BH RS1 PSW 4 RS0 PSW 3 工作寄存器组选择位 PSW 1未定义 P PSW 0 奇偶标志位 P 1表示累加器中 1 的个数为奇数P 0表示累加器中 1 的个数为偶数CPU随时监视着ACC中的 1 的个数 并反映在PSW中 部分特殊功能寄存器 表2 8RS0 RS1的组合关系 部分特殊功能寄存器 栈指针SP 81H SP的内容可指向89C51片内00H 7FHRAM的任何单元 系统复位后 SP初始化为07H 即指向07H的RAM单元 堆栈 先进后出 原则堆栈的操作 PUSH 数据压入 POP 数据弹出 在使用堆栈之前 先给SP赋值 即规定堆栈的起始位置 称为 堆底 89C51的堆栈指针SP是一个双向计数器 进栈时 SP的内容自动 1 出栈时自动 1 堆栈的操作 MOVSP 60H 堆栈区 堆栈是片内RAM中临时开辟的暂存区 堆栈主要是为子程序调用和中断操作而设立的 其具体功能有两种 保护现场和保护断点 计算机无论是执行子程序还是执行中断操作 最后都要返回主程序 因此计算机在转去执行这些程序之前 必须考虑其返回问题 这就要预先把主程序的断点保护起来 为程序的正确返回作准备 那么 把断点和现场内容保护在哪里 这就必须保护在堆栈内 用户可以指定内部RAM的最高若干字节做为堆栈区 在初始化程序中 可以对堆栈指针SP写入栈底的地址 于是从SP指定的栈底直到7FH单元都是堆栈区 例如MOVSP 5FH 那么 从60H 7FH单元都是堆栈区 部分特殊功能寄存器 数据指针DPTR 83H 82H DPTR是一个16位的特殊功能寄存器 其高位字节 高8位 寄存器用DPH表示 地址为 83H 低位字节 低8位 寄存器用DPL表示 地址为 82H DPTR既可以作为一个16位寄存器使用 也可以作为两个独立的8位寄存器DPH和DPL来使用 DPTR主要用来存放16位的地址 以便对64K片外RAM作间接寻址 2 4CPU时序 2 4 1片内振荡器及时钟信号的产生89C51内部有一个高增益反相放大器 用来构成振荡器 在XTAL1引脚 19 和XTAL2引脚 18 间跨接一个石英晶体 即晶振 及两个电容 30皮法左右 就可构成稳定的自激振荡器 如果用多片89C51同时工作 则一般采用外部振荡源方式 以便于同步工作 此时 XTAL2引脚 18 悬空 而XTAL1引脚 19 作外部时钟信号输入的输入端 时钟 时钟频率 范围要求在1 2MHz 24MHz之间 一般从外部振荡器输入时钟信号 基本时序单位 1 振荡周期 晶振的振荡周期 2 状态周期 振荡周期2分频 也称时钟周期 3 机器周期 完成一个基本操作所需要的时间 一个机器周期包括12个时钟周期 4 指令周期 执行一条指令的时间 以机器周期为单位 单周期 双周期和四周期指令 INTEL对每一条指令都给出了它的指令周期数 MCS 51单片机的所有指令中 有一些完成得比较快 只要一个机器周期就行了 有一些完成得比较慢 得要2个机器周期 还有两条指令要4个机器周期才行 时钟 2 4CPU取指 执指时序 CPU取指 执指时序 2 5复位及复位电路 2 5 1复位操作复位是单片机的初始化操作 主要功能是把PC初始化为0000H 使单片机从0000H单元开始执行程序 表2 9一些寄存器的复位状态 2 5 2复位信号及其产生 MCS 51单片机复位 RST高电平2个机器周期 任何单片机在工作之前都要有个复位的过程 复位是什么意思呢 对单片机来说 是程序还没有开始执行 是在做准备工作 初始状态 显然 准备工作不需要太长的时间 复位需要不少于24个时钟周期的时间就可以了 2 5 3复位电路 只要在单片机的RST引脚上加上高电平 就可以了 为了达到这个要求 可以用很多种方法 右图为其中一种方法 2 689C51单片机的低功耗工作方式 0 0 进入空闲方式 IDL 0 89C51进入空闲动作方式 CPU此时得不到时钟信号 而中断 串行口 定时器等仍在时钟控制下正常运行 0 振荡器不工作 掉电方式下 PD 0 振荡器冻结 与门 2 6 1方式的设定 注意 如果PD位和IDL位同时置 1 则PD优先 即为掉电方式 当89C51复位时 PCON的值为 0XXX000B 2 6 2空闲工作方式 系统在空闲工作方式时 CPU内部状态维持不变 即堆栈指针SP 程序计数器PC 程序状态字PSW 累加器ACC所有的内容不变 端口状态不变 ALE和PSEN保持高电平 系统退出空闲方式的方法 任何的中断请求被响应都可由硬件使IDL位清0 使系统中止空闲工作方式 由硬件复位 即按复位键 2 6 3掉电 停机 工作方式 内部振荡器停止工作 即没有振荡时钟 故所有的功能部件都停止工作 内部RAM区和SFR中的内容被保留 而端口的输出状态值都保存在对应的SFR中 ALE和PSEN都为低电平 退出掉电方式的唯一方法 硬件复位 复位后所有SFR中的内容被初始化 但片内RAM区的数据不变 在掉电工作方式下 Vcc可降到2V 退出掉电方式之前 Vcc必须恢复正常的工作电压值 2 7输入 输出端口结构 场效应管 复习 当G 0时 场效应管截止 当G 1时 场效应管导通 2 7 1P0口 下图为P0口的某位P0 n n 0 7 结构图 它由一个输出锁存器 两个三态输入缓冲器和输出驱动电路及控制电路组成 P0口既可以作为I O用 也可以作为地址 数据线用 三态缓冲器 与门 多路开关 一 P0口作为一般I O口使用 P口用作输出口时CPU发出控制电平 0 即 硬件自动使 控制 0 封锁 与门 将输出上拉场效应管T1截止 同时使多路开关MUX把锁存器的输出端Q与场效应管T2栅极接通 P0口用作输入口时 输入时 分读引脚或读锁存器 读引脚 由传送指令 MOV 实现 下面的缓冲器2用于读端口引脚数据 当执行一条由端口输入的指令时 读脉冲把三态缓冲器2打开 这样端口引脚上的数据经过缓冲器读入到内部总线 第1步 输入时 先向锁存器 写 1 指令为 SETBP0 n或 MOVP0 0FFH 1 1 0 0 T2截止 第2步 引脚信号 读引脚 信号有效 缓冲器2打开 P0口用作输入口时 输入时 分读引脚或读锁存器读锁存器 有些指令如 ANLP0 A称为 读 修改 写 指令 需要读锁存器 缓冲器1用于读端口锁存器数据 原因 如果此时该端口的负载恰是一个晶体管基极 且原端口输出值为1 那么导通了的PN结会把端口引脚高电平拉低 若此时直接读端口引脚信号 将会把原输出的 1 电平误读为 0 电平 现采用读输出锁存器代替读引脚 图中 上面的三态缓冲器就为读锁存器Q端信号而设 读输出锁存器可避免上述可能发生的错误 准双向口 从图中可以看出 在读入端口数据时 由于输出驱动FET并接在引脚上 如果T2导通 就会将输入的高电平拉成低电平 产生误读 所以在端口进行输入操作前 应先向端口锁存器写 1 使T2截止 引脚处于悬浮状态 变为高阻抗输入 这就是所谓的准双向口 二 P0口作为地址 数据总线使用 在系统扩展时 P0端口作为地址 数据总线使用时 执行 MOVX 指令或EA 0时执行 MOVC 指令时 内部硬件自动使 控制 1 P0口用作输出地址 数据总线 P0引脚输出地址 输入数据 输入信号是从引脚通过输入缓冲器进入内部总线 此时 CPU自动使MUX向下 并向P0口写 1 读引脚 控制信号有效 下面的缓冲器打开 外部数据读入内部总线 2 7 2P1口 它由一个输出锁存器 两个三态输入缓冲器和输出驱动电路组成 准双向口 2 7 3P2口 P2口作为普通I O口CPU发出控制电平 0 使多路开关MUX倒向锁存器输出Q端 构成一个准双向口 其功能与P1相同 2 7 3P2口 2 P2口作为地址总线在系统扩展片外程序存储器扩展数据存储器且容量超过256B 用MOVX DPTR指令 时 CPU发出控制电平 1 使多路
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业学校泥水工程协议
- 学校建设防尘网施工合同
- 地震学校食堂员工劳动合同
- 农业企业股权登记策略
- 林地征用补偿协议范本
- 合同纠纷调解培训
- 摩托车交易合同模板
- 农药化肥知识产权认证管理办法
- 展厅多媒体使用规范
- 财务资质管理办法
- 供应链协同规划:整合供应链资源、提高供应链效率
- 水利工程运维水利工程运行和日常维修养护方案
- FZT 92082-2017 非织造布喷丝板
- 2024上海市标准房屋租赁合同官方版
- (易错笔记)第五单元 周长 常考易错题汇编(单元测试)小学数学三年级上册(北师大版含答案)
- 2024年济宁农村干部学院(校)招生历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 电气自动化专业个人职业生涯规划书
- 股权优先优先回购权协议书
- 供应商调查表模板及范文大全
- 浙江省绍兴市诸暨市2023-2024学年七年级上学期期末语文试题
- 一鼓作气成语故事ppt
评论
0/150
提交评论