STC89C51系列单片机的结构...ppt_第1页
STC89C51系列单片机的结构...ppt_第2页
STC89C51系列单片机的结构...ppt_第3页
STC89C51系列单片机的结构...ppt_第4页
STC89C51系列单片机的结构...ppt_第5页
免费预览已结束,剩余57页可下载查看

下载本文档

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

文档简介

第二章STC89C51系列单片机的结构和原理 2 2STC89C51系列单片机的内部结构 2 3STC89C51系列单片机的主要组成部分 2 1STC89C51如何控制流水灯 2 4单片机的复位电路 2 5单片机最小系统 2 1STC89C51如何控制流水灯 任务 使用单片机控制发光管按一定顺序亮 1 利用Proteus7连接电路图 2 利用keilc软件编写程序 include includeunsignedinttemp1 voiddelay unsignedinttemp 延时程序 while temp voidmain P2 0XFF ledisoffwhile 1 P2 0XFE temp1 35000 delay temp1 P2 0XFD temp1 35000 delay temp1 P2 0XFB temp1 35000 delay temp1 P2 0XF7 temp1 35000 delay temp1 P2 0XEF temp1 35000 delay temp1 P2 0XDF temp1 35000 delay temp1 P2 0XBF temp1 35000 delay temp1 P2 0X7F temp1 35000 delay temp1 3 利用keilc软件将C语言转化成HEX文件 4 将HEX文件添加到Proteus7软件中 进行仿真 思考 单片机如何使用 2 2STC89C51系列单片机的内部结构 51系列单片机结构框图 1 电源引脚VSS 20脚 接地 0V参考点 VCC 40脚 电源 提供掉电 空闲 正常工作2 外接晶体引脚XTAL1 19脚 接外部晶体的一端 振荡反向放大器的输入端和内部时钟电路输入端 XTAL2 18脚 接外部晶体的另一端 振荡反向放大器的输出端 3 控制信号或与其它电源复用引脚控制信号或与其它电源复用引脚有RST VPD 和等4种形式 RST 9脚 复位端 当晶体在运行时 只要此引脚上出现2个机器周期高电平即可复位 内部有扩散电阻连接到Vss 仅需要外接一个电容到Vcc即可实现上电复位 ALE 30脚 地址锁存使能 在访问外部存储器时 输出脉冲锁存地址的低字节 在正常情况下 ALE输出信号恒定为1 6振荡频率 并可用作外部时钟或定时 注意每次访问外部数据时 一个ALE脉冲将被忽略 PSEN 29脚 程序存储使能 读外部程序存储 当从外部读取程序时 PSEN每个机器周期被激活两次 在访问外部数据存储器时PSEN无效 访问内部程序存储器时PSEN无效 EA Vpp 31脚 外部寻址使能 编程电压 在访问整个外部程序存储器时 EA必须外部置低 如果EA为高时 将执行内部程序 当RST释放后EA脚的值被锁存 任何时序的改变都将无效 该引脚在对FLASH编程时用于输入编程电压 Vpp 输入 输出引脚 P0口 P0 0 P0 7 32 39脚 是双向8位三态I O口 可向其写入1使其状态为悬浮 用作高阻输入 P0口也可以在访问外部程序存储器时作地址的低字节 在访问外部数据存储器时作数据总线 此时通过内部强上拉传送1 P1口 P1 0 P1 7 1 8脚 是带内部上拉的双向I O口 向P1口写入1时 P1口被内部上拉为高电平 可用作输入口 当作为输入脚时 被外部拉低的P1口会因为内部上拉而输出电流 P2口 P2 0 P2 7 21 28脚 是带内部上拉的双向I O口 向P2口写入1时 P2口被内部上拉为高电平 可用作输入口 当作为输入脚时 被外部拉低的P2口会因为内部上拉而输出电流 在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址 此时通过内部强上拉传送1 当使用8位寻址方式访问外部数据存储器时 P2口发送P2特殊功能寄存器的内容 P3口 P3 0 P3 7 10 17脚 是带内部上拉的双向I O口 向P3口写入1时 P3口被内部上拉为高电平 可用作输入口 当作为输入脚时 被外部拉低的P3口会因为内部上拉而输出电流 P3口脚具有第二功能 表2 2介绍了P3口的第二功能 2 3STC89C51的系列单片机的主要组成部分该系列单片机由中央处理器 CPU 存储器和I O接口三大部分组成 其中CPU包括运算器和控制器两大部分 2 3 1运算器对操作数进行算术 逻辑和位操作运算 主要包括算术逻辑运算单元ALU 累加器A 位处理器 程序状态字寄存器PSW及两个暂存器等 1 算术逻辑运算单元ALU可对8位变量逻辑运算 与 或 异或 循环 求补和清零 还可算术运算 加 减 乘 除 12 ALU还有位操作功能 对位变量进行位处理 如置 1 清 0 求补 测试转移及逻辑 与 或 等 2 累加器A使用最频繁的寄存器 可写为Acc A 与 Acc 作用如下 1 ALU单元的输入数据源之一 又是ALU运算结果存放单元 2 数据传送大多都通过累加器A 相当于数据的中转站 13 A的进位标志Cy是特殊的 因为它同时又是位处理机的位累加器3 程序状态字寄存器PSWPSW ProgramStatusWord 位于片内特殊功能寄存器区 字节地址为D0H 包含了程序运行状态的信息 其中4位保存当前指令执行后的状态 供程序查询和判断 格式如图2 3所示 图2 3PSW的格式 14 PSW中各个位的功能 1 Cy PSW 7 进位标志位可写为C 在算术和逻辑运算时 若有进位 借位 Cy 1 否则 Cy 0 在位处理器中 它是位累加器 2 Ac PSW 6 辅助进位标志位在BCD码运算时 用作十进位调整 即当D3位向D4位产生进位或借位时 Ac 1 否则 Ac 0 3 F0 PSW 5 用户设定标志位由用户使用的一个状态标志位 可用指令来使它置1或清0 控制程序的流向 用户应充分利用 15 4 RS1 RS0 PSW 4 PSW 3 4组工作寄存器区选择选择片内RAM区中的4组工作寄存器区中的某一组为当前工作寄存区 5 OV PSW 2 溢出标志位当执行算术指令时 用来指示运算结果是否产生溢出 如果结果产生溢出 OV 1 否则 OV 0 6 PSW 1位保留位 7 P PSW 0 奇偶标志位指令执行完 累加器A中 1 的个数是奇数还是偶数 16 P 1 表示A中 1 的个数为奇数 P 0 表示A中 1 的个数为偶数 此标志位对串行通信有重要的意义 常用奇偶检验的方法来检验数据串行传输的可靠性 17 18 2 3 2控制器任务识别指令 并根据指令的性质控制单片机各功能部件 从而保证单片机各部分能自动协调地工作 控制器包括 程序计数器 指令寄存器 指令译码器 定时及控制逻辑电路等 功能是控制指令的读入 译码和执行 从而对各功能部件进行定时和逻辑控制 程序计数器PC是一个独立的16位计数器 不可访问 单片机复位时 PC中内容为0000H 从程序存储器0000H单元取指令 开始执行程序 PC工作过程是 CPU读指令时 PC的内容作为所取指令的地址 程序存储器按此地址输出指令字节 同时PC自动加1 PC中内容变化轨迹决定程序流程 当顺序执行程序时自动加1 执行转移程序或子程序 中断子程序调用时 自动将其内容更改成所要转移的目的地址 PC的计数宽度决定了程序存储器的地址范围 PC为16位 故可对64KB 216B 寻址 19 程序存储器 FLASH 下载到4KBROM 2 3 存储器 1 编址与访问计算机的工作是按照事先编制好的程序命令序列一条条顺序执行的 程序存储器就是用来存放这些已编好的程序和表格常数 它由只读存储器ROM或EPROM组成 计算机为了有序地工作 设置了一个专用寄存器 程序计数器PC 用以存放将要执行的指令地址 每取出指令的 个字节后 其内容自动加 指向下一字节地址 使计算机依次从程序存储器取出指令予以执行 完成某种程序操作 由于MCS 51单片机的程序计数器为16位 因此 可寻址的地址空间为64KB 2 程序的7个特殊入口地址 表1MCS 51单片机复位 中断入口地址 数据存储器1 编址与访问MCS 51单片机片内 外数据存储器是两个独立的地址空间 应分别单独编址 片内数据存储器除RAM块外 还有特殊功能寄存器 SFR 块 对于51子系列 前者有128个字节 其编址为00H 7FH 后者有128个字节 其编址为80H FFH 二者连续而不重叠 由于访问它们所用的指令不同 并不会引起混乱 片外数据存储器一般是16位编址 2 内部数据存储器 MCS 51片内RAM为256字节 地址范围为00H FFH 分为两大部分 低128字节 00H 7FH 为真正的RAM区 高128字节 80H FFH 为特殊功能寄存器区SFR 在低128字节RAM中 00H 1FH共32单元是4个通用工作寄存器区 每一个区有8个通用寄存器R0 R7 低128字节 00H 7FH 其中真正用户能用到得只有20H 7FH共96个字节 故一般需要扩展片外存储器 其中20H 2FH为位寻址 重点 故可设位变量 sbitp20 P2 0 sbitp21 P2 1 Ifp20 1thenp21 0 表2寄存器与RAM地址对照表 表3SFR特殊功能寄存器地址表 28 表4SFR中的位地址分布 特殊功能寄存器 SFR 特殊功能寄存器 SFR 也称专用寄存器 专门用于控制 管理片内算术逻辑部件 并行I O口 串行口 定时 计数器 中断系统等功能模块的工作 用户在编程时可以给其设定值 但不能移作它用 SFR离散地分布在片内RAM的80H FFH地址空间 与片内数据存储器统一编址 51子系列有18个特殊功能寄存器 其中3个为双字节 DPTR T0 T1 共占用21个字节 其中11个可位寻址 仅83位有效 凡是可位寻址的SFR 字节地址末位只能是0H或8H 52子系列有21个特殊寄存器 其中5个为双字节 共占用26个字节 注意 1 21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中 共83个可寻址位 尽管还剩余许多空闲单元 但用户并不能使用 2 在22个专用寄存器中 唯一一个不可寻址的PC PC不占据RAM单元 它在物理上是独立的 在控制器中 因此是不可寻址的寄存器 3 对专用寄存器只能使用直接寻址方式 书写时既可使用寄存器符号 也可使用寄存器单元地址 因为寄存器名和地址单元的地址已经一一对应 位地址空间 211个寻址位的位地址 其中 00H 7FH这128位处于片内RAM字节地址20H 2FH单元中 其余的83个可寻址位分布在特殊功能寄存器SFR中 可被位寻址的特殊寄存器有11个 共有位地址88个 5个位未用 其余83个位的位地址离散地分布于片内数据存储器区字节地址为80H FFH的范围内 其最低的位地址等于其字节地址 且其字节地址的末位都为0H或8H AT89C51片内RAM的可寻址位及其位地址 SFR中的位地址分布 P1 P3口驱动LED发光二极管 例如 使用单片机的并行口P1 P3直接驱动发光二极管 电路如下图 由于P1 P3内部有30k 左右的上拉电阻 如高电平输出 则强行从P1 P2和P3口输出的电流会造成单片机端口的损坏 如端口引脚为低电平 能使电流从单片机外部流入内部 则将大大增加流过的电流值 所以 当P1 P3口驱动LED发光二极管时 应该采用低电平驱动 a 不恰当的连接 高电平驱动 b 恰当的连接 低电平驱动发光二极管与AT89C51并行口的直接连接 有关时序的概念 计算机在执行指令时 一条指令经译码后产生若干个基本微操作 这些基本微操作在时间上有严格的先后次序 这种次序称为计算机的时序 几个CPU时序的基本概念1 振荡周期 指为单片机提供定时信号的振荡源的周期 是时序中最小的时间单位 若为内部产生方式 则为石英晶体的振荡周期 常用12MHz 6MHz等 振荡脉冲并不直接使用 由XTAL2或XTAL1端送往内部时钟电路 fosc 经过2分频 向CPU提供2相时钟信号P1和P2 f拍节 1 2osc 再经3分频 6分频 产生ALE时序 fALE 1 6fosc 经过12分频 成为机器周期信号 MC 12 fosc 如下图所示 需要指出的是 CPU的运算操作在P1期间 数据传送在P2期间 2 时钟周期 是振荡源信号经2分频后形成的时钟脉冲信号 也就是一个时钟周期是振荡周期的2倍 时钟信号向单片机提供一个二节拍时钟信号 在每个时钟的前半周期 节拍1信号P1有效 后半周期节拍P2有效 每个节拍持续1个振荡周期 3 机器周期 CPU完成一个基本操作所需的时间为机器周期 一个机器周期包含6个时钟周期 也就是等于12个振荡周期 当石英晶体的振荡为12MHz和6MHz时 时钟周期分别为1 12 s和1 6 s 机器周期分别为1 s和2 s 4 指令周期 是指CPU执行一条指令所需的时间 是时序中最大时间单位 由于单片机执行不同的指令 所需要的时间不同 因此 不同指令所包含的机器周期数也不同 机器周期越少的指令执行速度快 单片机中大多数指令的指令周期由一个机器周期或两个机器周期组成 只有乘法 除法指令需要四个机器周期 CPU时序机器周期 每个机器周期包含S1 S2 S3 S4 S5 S6个状态 每个状态包含2拍P1和P2 每一个节拍持续1个振荡周期 因此 每12个振荡周期为一个机器周期 依次可表示为S1P1 S1P2 S2P1 S2P2 S6P1 S6P2 时钟电路 什么作用 单片机时钟内接法 图1 自己产生时钟信号作为单片机单片机的时钟外接方式 图2 使用其他电路产生 图1时钟振荡电路图2外部时钟接法 三 I O接口 1 P0口的某位P0 n n 0 7 结构图 它由一个输出锁存器 两个三态输入缓冲器和输出驱动电路及控制电路组成 从图中可以看出 P0口既可以作为I O用 也可以作为地址 数据线用 当系统不进行片外的ROM扩展 也不进行片外RAM扩展时 单片机硬件自动使C 0 MUX开关接向锁存器的反相输出端 将输出上拉场效应管T1截止 当有外部扩展时 P0口必须做输出地址 数据时 C 1 地址通过T1送到P0口 当输入数据时 通过下边缓冲器进入内存 1 P0口作为普通I O口 输出时 CPU发出控制电平 0 封锁 与 门 多路开关MUX把锁存器与输出驱动场效应管T2栅极接通 内部总线与P0口同相 由于输出驱动级是漏极开路电路 若驱动NMOS或其它拉流负载时 需要外接上拉电阻 输入时 分读引脚或读锁存器 此刻如果T2导通 则P0将被锁定为0 输入数据不能正确读入 故必须使P0 1 T1和T2截止 才能读入数据 因此称为准双口 因为T2截止 故P0口数据 通过下边三态门进入内存总线 2 P2用作通用I O口 当不在单片机芯片外部扩展程序存储器 只扩展256B的片外RAM时 仅用到了地址线的低8位 P2口仍可以作为通用I O口使用 P0 P1 P2 P3口的电平与CMOS和TTL电平兼容 P0口的每一位口线可以驱动8个LSTTL负载 在作为通用I O口时 由于输出驱动电路是开漏方式 由集电极开路 OC门 电路或漏极开路电路驱动时需外接上拉电阻 当作为地址 数据总线使用时 口线输出不是开漏的 无须外接上拉电阻 P1 P2和P3口为准双向口 在内部差别不大 但使用功能有所不同 P1口是用户专用8位准双向I O口 具有通用输入 输出功能 每一位都能独立地设定为输入或输出 当有输出方式变为输入方式时 该位的锁存器必须写入 1 然后才能进入输入操作 P2口是8位准双向I O口 外接I O设备时 可作为扩展系统的地址总线 输出高8位地址 与P0口一起组成16位地址总线 对于8031而言 P2口一般只作为地址总线使用 而不作为I O线直接与外部设备相连 P3口的第二功能 2 4单片机的复位 复位是使单片机的CPU或系统中的其它部件处于某一确定的初始状态 并从这一状态开始工作 单片机的工作就是从复位开始的 复位电路在振荡器工作时 将RST脚保持至少两个机器周期高电平 6时钟模式时为12个振荡器周期 12时钟模式时为24个振荡器周期 可实现复位 为了保证上电复位的可靠 RST必须保持足够长时间的高电平 该时间至少为振荡器的稳定时间 通常为几个毫秒 加上两个机器周期 上电时VCC和RST必须同时上升以实现正确的启动 如果RST引脚持续保持高电平 单片机就处于循环复位状态 初始化后 程序计数器PC 0000H P0 P3 FFH 各端口锁存器已写入1 此时不但可用于输出 也可以于输入 SP 07H 表明堆栈指针指向片内RAM的07单元 即第一个被压入的内容将写入到08H单元 IP IE和PCON的有效位为0 分别表明各中断源处于低优先级 各中断均被关断 串行通信的波特率不加倍 PSW 00H 表明当前工作寄存器选为0组 a 上电复位 b 上电与按键均有效的复位 上电复位要求接通电源后 单片机自动实现复位操作 常用的上电复位在加电的瞬间 RST引脚为高电平 随着电容C1的充电 RST引脚的高电平将逐渐下降 该电路典型的电阻值为 晶体振荡器为12MHz时 C1为10 F R1为8 2k 复位时 PC初始化为0000H 程序从0000H单元开始执行 除系统的正常初始化外 当程序出错 如程序跑飞 或操作错误使系统处于死锁状态时 需按复位键使RST脚为高电平 使AT89C51摆脱 跑飞 或 死锁 状态而重新启动程序 复位操作还对其他一些寄存器有影响 这些寄存器复位时的状态见表2 7

温馨提示

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

评论

0/150

提交评论