[研究生入学考试]第二章 MCS-51单片机的结构和原理.ppt_第1页
[研究生入学考试]第二章 MCS-51单片机的结构和原理.ppt_第2页
[研究生入学考试]第二章 MCS-51单片机的结构和原理.ppt_第3页
[研究生入学考试]第二章 MCS-51单片机的结构和原理.ppt_第4页
[研究生入学考试]第二章 MCS-51单片机的结构和原理.ppt_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

1 第二章MCS 51单片机的结构和原理 2 1MCS 51单片机的结构2 2MCS 51单片机的引脚及其功能2 38051存储器配置2 4CPU时序2 5复位及其复位电路2 6输入输出端口结构 2 2 1MCS 51单片机的结构 2 1 189C51单片机的基本组成组成 CPU 进行运算 控制 RAM 数据存储器 ROM 程序存储器 I O口 串口 并口 内部总线和中断系统等 组成框图如下 3 1 8位CPU 2 布尔代数处理器 具有位寻址能力 3 256B内部RAM数据存储器 21个专用寄存器 4 4KBFLASHROM 5 2个16位可编程定时器 计数器 6 32个 4 8位 双向可独立寻址的I O口 7 1个全双工UART 异步串行通信口 8 5个中断源 两级中断优先级的中断控制器 9 时钟电路 外接晶振和电容可产生最高24MHz的时钟频率 10 单一 5V电源供电 双列直插40引脚DIP封装 11 111条指令 大部分为单字节指令 89C51包含以下功能部件 4 2 1 289C51单片机内部结构 5 1 运算器 一 CPU内部结构 6 2 控制器 它先以振荡信号为基准产生CPU的时序 从ROM中取出指令到指令寄存器 然后在指令译码器中对指令进行译码 产生指令执行所需的各种控制信号 送到单片机内部的各功能部件 指挥各功能部件产生相应的操作 完成对应的功能 7 8 2 289C51单片机引脚及其功能 1 电源引脚Vss 接地引脚 VCC 正电源引脚 接 5V电源 89C51单片机引脚 分为端口引脚 电源引脚和控制信号引脚三类 9 3 控制信号引脚 1 RST 10 11 12 13 4 I O端口 1 P0口 P0 0 P0 7 由于在输入操作前有这种准备工作 所以P0 P3口叫做准双向口 14 2 P1口 P1 0 P1 7 8位准双向I O口 内部具有上拉电阻 可作为通用I O口 每个引脚可驱动4个TTL负载 3 P2口 P2 0 P2 7 8位准双向I O口 内部具有上拉电阻 可作为外部扩展时的高8位地址总线 又可作为通用I O口 每个引脚可驱动4个TTL负载 对访问片外EPROM RAM时 它输出高8位地址 4 P3口 P3 0 P3 7 8位准双向I O口 内部具有上拉电阻 它是双功能复用口 作为通用I O口时 功能与P1口相同 常用第二功能 每个引脚可驱动4个TTL负载 作为第二功能使用时 各位的作用如下页表所示 15 16 2 38051存储器配置 17 18 2 3 1程序存储器地址空间 MCS 51的程序存储器用于存放编好的程序和表格常数 8051片内有4KB的ROM 8751片内有4KB的EPROM 8031片内无程序存储器 MCS 51的片外最多能扩展64KB程序存储器 片内外的ROM是统一编址的 如端保持高电平 8051的程序计数器PC在0000H 0FFFH地址范围内 即前4KB地址 是执行片内ROM中的程序 当PC在1000H FFFFH地址范围时 超过片内ROM容量时 自动执行片外程序存储器中的程序 当保持低电平时 只能寻址外部程序存储器 片外存储器可以从0000H开始编址 19 程序存储器地址空间 续 MCS 51的程序存储器中某些单元是留给系统用的 使用时应予以注意 其中一组特殊单元是0000H 0002H 系统复位后 PC 0000H 单片机从0000H单元开始取指令执行程序 如果程序不从0000H单元开始 应在这三个单元中存放一条无条件转移指令 以便直接转去执行指定的程序 此三个单元称为80C51上电复位后引导程序的存放单元 80C51上电复位后CPU总是从0000H单元开始执行 如果在这3个单元中存放一条转移指令 如LJMP1000H 单片机就会转移到1000H单元 开始执行应用程序 应用程序的引导过程见左图 20 还有一组特殊单元是0003H 002AH 共40个单元 这40个单元被均匀地分为5段 作为5个中断服务程序的入口 21 程序存储器地址空间 续 中断响应后 按中断源种类 自动转到各中断区的首地址去执行程序 因此在中断地址区中理应存放中断服务程序 但通常情况下 8个单元难以存下一个完整的中断服务程序 因此通常也是从中断地址区首地址开始存放一条无条件转移指令 以便中断响应后 通过中断地址区 再转到中断服务程序的实际入口地址 22 2 3 2数据存储器地址空间 一般将随机存储器 RAM 用做数据存储器 可寻址空间为64KB MCS 51数据存储器可分为片内和片外两部分 片外RAM 最大范围 0000H FFFFH 64KB 用指令MOVX访问 片内RAM 最大范围 00H FFH 256B 用指令MOV访问 又分为两部分 低128B 00 7FH 为真正的RAM区 高128B 80 FFH 为特殊功能寄存器 SFR 区 如右图所示 23 00H 20H 2FH 7FH 1FH 30H 80H FFH SFR区 用户RAM区 位寻址区 工作寄存器区 R0 R2 R1 R3 R4 R5 R6 R7 07H 02H 01H 00H 06H 04H 05H 03H 08H 1FH 工作寄存器区3 工作寄存器区2 工作寄存器区1 工作寄存器区0 0FH 10H 17H 18H 低128单元是单片机的真正RAM存储器 按其用途划分为寄存器区 位寻址区和用户RAM区三个区域 片内RAM前32个单元是工作寄存器区 00H 1FH 1 片内RAM低128B单元 在任一时刻 CPU只能使用其中的一组寄存器 并且把正在使用的那组寄存器称之为当前寄存器组 到底是哪一组 由程序状态字寄存器PSW中RS1 RS0位的状态组合来决定 24 内部RAM的20H 2FH单元为位寻址区 既可作为一般单元用字节寻址 也可对它们的位进行寻址 位地址为00H 7FH CPU能直接寻址这些位 称MCS 51具有布尔处理功能 位地址分配如右表所示 按字节寻址 每个字节 8个位 占一个地址按位寻址 有的存储器每一个位就有一个地址 25 用户RAM区 在内部RAM低128单元中 通用寄存器占去32个单元 位寻址区占去16个单元 剩下80个单元 这就是供用户使用的一般RAM区 其单元地址为30H 7FH 对用户RAM区的使用没有任何规定或限制 但在一般应用中常把堆栈开辟在此区中 00H 20H 2FH 7FH 1FH 30H 80H FFH SFR区 用户RAM区 位寻址区 工作寄存器区 26 2 片内RAM高B128单元 MCS 51有21个特殊功能寄存器 也称为专用寄存器 包括算术运算寄存器 指针寄存器 I O口锁存器 定时器 计数器 串行口 中断 状态 控制寄存器等 它们被离散地分布在内部RAM的80H FFH地址单元中 不包括PC 共占据了128个存储单元 构成了SFR区 其字节地址可被8整除的SFR可位寻址 11个 SFR反映了MCS 51单片机的运行状态 特殊功能寄存器分布如右表所示 27 1 累加器ACC Accumulator 累加器ACC是8位寄存器 是一个最常用的专用寄存器 在算术 逻辑运算中用于存放操作数或结果 在指令系统中用A作为的ACC助记符 2 寄存器B 28 其中 Cy 进借位标志 AC 辅助进借位标志 F0 用户标志 RS1 RS0 工作寄存器组 区 选择 如下表所示 OV 溢出标志位 有溢出时置1 P 奇偶标志位 A中有奇数个1时置1 3 程序状态字寄存器PSW ProgramStatusWord 程序状态字PSW是8位寄存器 用于存放程序运行后的状态信息 PSW中各位状态通常是在指令执行的过程中自动形成的 但也可以由用户根据需要采用传送指令加以改变 其定义格式如下页表所示 29 4 堆栈指针SP StackPointer 堆栈是一种数据结构 是内部RAM的一段区域 堆栈存取数据的原则是 后进先出 设立堆栈的目的是用于数据的暂存 中断 子程序调用时断点和现场的保护与恢复 堆栈指针SP是一个8位寄存器 用于指示堆栈的栈顶 它决定了堆栈在内部RAM中的物理位置 MCS 51单片机的堆栈地址向大的方向变化 与微机堆栈地址向小的方向变化相反 系统复位后 SP初值为07H 实际应用中通常根据需要在主程序开始处对堆栈指针SP进行初始化 30 31 5 数据指针DPTR DataPointer 16位 它是80C51内部唯一一个供用户使用的16位寄存器 DPTR使用灵活 即可用作16位寄存器 对外部数据存储空间的64K范围进行访问 也可拆成两个8位的寄存器DPH和DPL使用 DPTR称作地址指针 32 33 说明 64KB的程序存储器和64KB的片外数据存储器地址空间都为0000H 0FFFFH 地址空间是重叠的 它们如何区分呢 MCS 51单片机是通过不同的信号来对片外数据存储器和程序存储器进行读 写的 片外数据存储器的读 写通过 RD和 WR信号来控制 而程序存储器的读通过 PSEN信号控制 通过用不同的指令来实现 片外数据存储器用MOVX指令 程序存储器用MOVC指令 片内数据存储器和片外数据存储器的低256字节的地址空间是重叠的 它们如何区分呢 片内数据存储器和片外数据存储器的低256字节通过不同的指令访问 片内数据存储器用MOV指令 片外数据存储器用MOVX指令 因此在访问时不会产生混乱 34 存储空间的区分 1 内部程序存储器与数据存储器的区分 2 外部程序存储器与数据存储器的区分 3 内外数据存储器的区分 35 2 4CPU时序 时序 CPU在执行指令时所需控制信号的时间顺序称为时序 2 4 1片内振荡器及时钟信号的产生在89C51芯片内部有一个高增益反相放大器 其输入端为芯片引脚XTAL1 其输出端为引脚XTAL2 而在芯片的外部 XTAL1和XTAL2之间跨接晶体振荡器和微调电容 从而构成一个稳定的自激振荡器 这就是单片机的时钟电路 如图所示 一般地 电容C1和C2取30pF左右 晶体的振荡频率范围是0 24MHz 时钟振荡电路图 36 37 2 4 2机器周期和指令周期 1 时钟周期 又称为振荡周期 节拍 用P表示 定义为单片机提供时钟信号的振荡源 OSC 的周期 它是时序中的最小单位 2 状态 用S表示 单片机振荡脉冲经过二分频后即得到整个单片机工作系统的状态 一个状态有两个节拍 前半周期对应的节拍定义为P1 后半周期对应的节拍定义为P2 38 3 机器周期 通常将完成一个基本操作所需的时间称为机器周期 MCS 51中规定一个机器周期包含12个时钟周期 即有6个状态 分别表示为S1 S6 若晶振为6MHz 则机器周期为2 s 若晶振为12MHz 则机器周期为1 s 4 指令周期 执行一条指令所需要的时间称为指令周期 它是时序中的最大单位 一个指令周期通常含有1 4个机器周期 指令所包含的机器周期数决定了指令的运算速度 机器周期数越少的指令 其执行速度越快 以机器周期为单位 指令可分为单周期 双周期和四周期指令 39 单片机各种周期的相互关系 牢牢记住振荡周期 晶振频率fosc的倒数 1个机器周期 12个振荡周期 1个指令周期 1 2 4个机器周期 双周期指令 40 2 4 3CPU取指 执行周期时序 自学 指令的集合称为程序 执行程序的过程就是执行指令的过程 单片机执行任何一条指令时都可以分为取指阶段和执行阶段 在取指阶段 CPU从程序存储器中取出指令操作码 送指令寄存器 再经指令译码器译码 产生一系列控制信号 完成本指令规定的操作 单周期和双周期指令的取指时序图如下页图所示 ALE信号是用于锁存低8位地址的选通信号 每出现一次该信号 单片机即进行一次读指令操作 当指令为多字节或多周期指令时 只有第一个ALE信号进行读指令操作 其余的ALE信号为无效操作 或读操作数操作 41 MCS 51单片机指令的取指和执行时序 单周期指令的执行从S1P2开始 在S1P2期间读入操作码并把它锁存到指令寄存器中 双字节指令 则在同一机器周期的S4期间读出第2个字节 对于单字节指令在S4处仍有一次读操作 但这时读出的字节 下一条指令的操作码 是不予考虑的 而且程序计数器PC也不加1 对于单周期指令 在上述任何情况下 指令都在S6P2期间完成操作 图中的 a 和 b 分别表示单字节单周期和双字节单周期指令的执行时序 图 c 表示单字节双周期指令的时序 单字节双周期指令在两个机器周期内作4次读操作码的操作 由于是单字节指令 后3次读操作是无效的 图 d 表示执行访问外部数据存储器指令MOVX的时序 这是一条单字节双周期指令 具有其特殊性 42 2 5复位及复位电路 2 5 1复位操作复位是单片机初始化操作 单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态 并从这个状态开始工作 例如复位后PC 0000H 使单片机从第一个单元取指令 单片机在开机时都需要复位 以便CPU及其他功能部件都处于一种确定的初始状态 并从这个状态开始工作 单片机运行出错或进入死循环时 可按复位键重新运行 MCS 51单片机在RST引脚产生两个机器周期 即24个时钟周期 以上的高电平即可实现复位 如果RST引脚持续保持高电平 单片机就处于循环复位状态 当RST从高电平转为低电平后 CPU才从初始状态开始工作 43 44 复位状态 复位不影响片内RAM存放的内容 而ALE 在复位期间将输出高电平 由上表可以看出 1 PC 0000H表示复位后程序的入口地址为0000H 2 PSW 00H 其中RS1 PSW 4 0 RS0 PSW 3 0 表示复位后单片机选择工作寄存器0组 3 SP 07H表示复位后堆栈在片内RAM的08H单元处建立 4 P0口 P3口锁存器为全1状态 说明复位后这些并行接口可以直接作输入口 无须向端口写1 5 TH1 TL1 TH0 TL0的内容为00H 定时器 计数器的初值为0 6 TMOD 00H 复位后定时器 计数器T0 T1为定时器方式0 非门控方式 7 TCON 00H 复位后定时器 计数器T0 T1停止工作 外部中断0 1为电平触发方式 8 SCON 00H 复位后串行口工作在移位寄存器方式 且禁止串行口接收 9 IE 00H 复位后屏蔽所有中断 10 IP 00H 复位后所有中断源都设置为低优先级 45 2 5 2复位电路 上电复位电路 是利用电容充电来实现的 在接电瞬间 RESET端的电位与VCC相同 随着充电电流的减少 RESET的电位逐渐下降 只要保证RESET为高电平的时间大于两个机器周期 便能正常复位 22 FC1 RST R11K 5V a 上电复位电路 46 手动按键复位要求在电源接通的条件下 用按钮开关操作使单片机复位 如图所示 其工作原理为 复位键按下后 电容C通过R2放电 放电结束后 RST引脚的电位由R1和R2分压决定 由于R2 R1 因此 RST引脚为高电平 单片机进入复位状态 松开按键后 电容充电 RST上的电位降低 经过一定的延时 单片机就脱离复位状态 进入正常工作模式 47 2 6 1P0口 P0 0 P0 7 双向I O 内置场效应管上拉 寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口 不接外部程序存储器时可作为8位准双向I O口使用 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 地址 数据 控制 引脚P0 X 3 4 Vcc 2 6输入输出端口结构 48 2 1 D Q CK Q 读引脚 1 读锁存器 写锁存器 内部总线 地址 数据 控制 引脚P0 X 3 4 控制 0时 此脚作输入口 事先必须对它写 1 0 0 1 0 0 截止 截止 0 Vcc P0口输入操作 从P0口引脚输入数据时 V2一直处于截止状态 引脚上的外部信号既加在三态缓冲器1的输入端 又加在V1的漏极 假定在此之前曾经输出数据 0 则V1是导通的 这样引脚上的电位就始终被箝位在低电平 使输入高电平无法读入 因此 在输入数据时 应人为地先向P0口写 1 使V1 V2均截止 方可高阻输入 以防场效应管处于导通状态 使引脚箝位到零 而引起误读 qi n clamp V2 V1 49 读 修改 写 缓冲器2用于读取锁存器Q端的数据 当执行 读 修改 写 指令 即读端口信息 在片内加以运算修改后 再输出到该端口的某些指令如 ANLP0 A指令 即是读的锁存器Q的数据 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 地址 数据 控制 引脚P0 X 3 4 Vcc 50 对于这类 读 修改 写 指令 不直接读引脚而读锁存器是为了避免可能出现的错误 因为在端口已处于输出状态的情况下 如果端口的负载恰是一个晶体管的基极 导通了的PN结会把端口引脚的高电平拉低 这样直接读引脚就会把本来的 1 误读为 0 但若从锁存器Q端读 就能避免这样的错误 得到正确的数据 51 2 1 D Q CK Q 读引脚 0 读锁存器 写锁存器 内部总线 地址 数据 控制 1 引脚P0 X 3 4 控制 1时 此脚作地址 数据复用口 1 输出地址 数据 0时 1 0 1 1 0 导通 截止 0 Vcc P0口 P0 0 P0 7 双向I O 内置场效应管上拉 寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口 不接外部程序存储器时可作为8位准双向I O口使用 52 2 1 D Q CK Q 读引脚 0 读锁存器 写锁存器 内部总线 地址 数据 控制 1 引脚P0 X 3 4 控制 1时 此脚作地址 数据复用口 2 输出地址 数据 1时 1 1 0 0 1 截止 导通 1 Vcc P0口 P0 0 P0 7 双向I O 内置场效应管上拉 寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口 不接外部程序存储器时可作为8位准双向I O口使用 53 2 1 D Q CK Q 读引脚 1 读锁存器 写锁存器 内部总线 地址 数据 控制 1 引脚P0 X 3 4 控制 1时 此脚作地址 数据复用口 3 输入数据时 输入指令将使引脚与内部总线直通 Vcc P0口 P0 0 P0 7 双向I O 内置场效应管上拉 寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口 不接外部程序存储器时可作为8位准双向I O口使用 54 当CPU向端口输出数据 0 时 写脉冲加在锁存器的CP上 内部总线的数据经反相 V2管导通 PO口输出 0 当内部总线写入1时 Q 0 V2也截止 由于输出驱动级是漏极开路电路 因V1截止 输出引脚呈高阻 不能向外输出高电平 因此必须外接10K上拉电阻才能有高电平输出 55 P0口控制 0 作8位输出口 来自CPU的 写入 脉冲加在D锁存器的CP端 内部总线上的数据写入D锁存器 并向端口引脚P0 x输出 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 地址 数据 控制 引脚P0 X 3 4 控制 0时 P0作输出口 0 0 截止 0 Vcc VCC 56 P1 0 P1 7 准双向I O口 内置了上拉电阻 输出时一切照常 仅在作输入口用时要先对其写 1 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 Vcc 引脚P1 X 内部上拉电阻 2 6 2P1口 57 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 Vcc 引脚P1 X 内部上拉电阻 输出数据 1时 1 1 0 截止 1 P1口 P1 0 P1 7 准双向I O口 内置了上拉电阻 输出时一切照常 仅在作输入口用时要先对其写 1 58 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 Vcc 引脚P1 X 内部上拉电阻 输出数据 0时 0 0 1 0 导通 P1口 P1 0 P1 7 准双向I O口 内置了上拉电阻 输出时一切照常 仅在作输入口用时要先对其写 1 59 2 1 D Q CK Q 读引脚 1 读锁存器 写锁存器 内部总线 Vcc 引脚P1 X 内部上拉电阻 输入数据时 要先对其写 1 1 1 0 截止 P1口 P1 0 P1 7 准双向I O口 内置了上拉电阻 输出时一切照常 仅在作输入口用时要先对其写 1 60 2 6 3P2口 P2 0 P2 7 双向I O 内置了上拉电阻 寻址外部程序存储器时输出高8位地址 不接外部程序存储器时可作为8位准双向I O口使用 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 地址高8位 控制 引脚P2 X 3 内部上拉电阻 Vcc 61 2 1 D Q CK Q 读引脚 0 读锁存器 写锁存器 内部总线 地址高8位 控制 引脚P2 X 控制 0时 此脚作通用输出口 输出 1时 1 1 0 截止 3 内部上拉电阻 1 1 Vcc 1 0 P2口 P2 0 P2 7 双向I O 内置了上拉电阻 寻址外部程序存储器时输出高8位地址 不接外部程序存储器时可作为8位准双向I O口使用 62 2 1 D Q CK Q 读引脚 0 读锁存器 写锁存器 内部总线 地址高8位 控制 引脚P2 X 控制 0时 此脚作通用输出口 输出 0时 0 0 1 导通 3 内部上拉电阻 0 0 Vcc 0 0 P2口 P2 0 P2 7 双向I O 内置了上拉电阻 寻址外部程序存储器时输出高8位地址 不接外部程序存储器时可作为8位准双向I O口使用 63 2 1 D Q CK Q 读引脚 0 读锁存器 写锁存器 内部总线 地址高8位 控制 1 引脚P2 X 控制 1时 此脚作高8位地址A8 A15输出口 当输出 1时 1 0 截止 3 内部上拉电阻 1 1 Vcc 1 P2口 P2 0 P2 7 双向I O 内置了上拉电阻 寻址外部程序存储器时输出高8位地址 不接外部程序存储器时可作为8位准双向I O口使用 64 2 1 D Q CK Q 读引脚 0 读锁存器 写锁存器 内部总线 地址高8位 控制 1 引脚P2 X 0 1 导通 3 内部上拉电阻 0 0 Vcc 0 控制 1时 此脚作高8位地址A8 A15输出口 当输出 0时 P2口 P2 0 P2 7 双向I O 内置了上拉电阻 寻址外部程序存储器时输出高8位地址 不接外部程序存储器时可作为8位准双向I O口使用 65 2 6 4P3口 P3 0 P3 7 双功能口 内置了上拉电阻 它具有特定的第二功能 在不使用它的第二功能时它就是普通的通用准双向I O口 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 第二功能输出 引脚P3 X 3 内部上拉电阻 Vcc 第二功能输入 4 66 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 第二功能输出 WR RD TxD 引脚P3 X 3 内部上拉电阻 Vcc 4 第二功能输出时 内部自动D 1 1 1 1 反相器 2 6 4P3口 续 P3 0 P3 7 双功能口 内置了上拉电阻 它具有特定的第二功能 在不使用它的第二功能时它就是普通的通用准双向I O口 67 2 1 D Q CK Q 读引脚 读锁存器 写锁存器 内部总线 此端自动 1 引脚P3 X 3 内部上拉电阻 Vcc 第二功能输入 RxD T0 T1 INT0 INT1 4 第二功能输入时 信号经缓冲器4直接进入内总线 1 1 1 0 截止 2 6 4P3口 续 不管是作为输入口使用还是第二功能信号输入 输出电路中的锁存器输出和第二功能输出信号线都应保持高电平 68 MCS 51内部并行I O口的应用 MCS 51I O端口的操作方式 1 输出数据方式 CPU通过一条数据传送指令就可以把输出数据写入P0 P3的端口锁存器 然后通过输出驱动器送到端口引脚线 例如 下面的指令均可在P0口输出数据 MOVP0 AANLP0 dataORLP0 A 2 读端口数据方式 CPU读入的这个数据并非端口引脚线上的数据 读端口数据可以直接读端口 例如 下面的指令均可以从P1口输入数据 这是锁存器上的数据 MOVA P1MOV20H P1MOVR0 P1MOV R0 P1 69 3 读端口引脚方式 读端口引脚方式可以从端口引脚上读入信息 在这种方式下 CPU首先必须使欲读端口引脚所对应的锁存器置1 然后才能读端口引脚 因此 用户在读引脚时必须先置位锁存器后读 连续使用两条指令 例如 下面的程序可以读P1引脚上的信号 MOVP1 0FFH 置位P1引脚的锁存器MOVA P1 读P1引脚上的信号送累加器A注意 写引脚时是直接向端口输出要写的数据 读引脚时就要区分是读端口的引脚信号还是读锁存器信号 读端口信号是必须先向端口写 1 然后再读 这就是单片机口信号的准双向的含义 切记 70 在I O口直接用做输入 输出时 CPU既可以把它们看做数据口 也可以看做状态口 这是由用户决定的 例题1 要求设计跑马灯 硬件电路设计 1 设计单片机最小系统2 设计带按键的复位电路3 使用一个P口连接八个led发光二极管4 软件设计各引脚功能如下 VCC 接正电源 Vss 接地 举例 I O口直接用于输入 输出 71 72 程序设计 实验一 单片机最小系统及流水灯程序org00h 源程序起始地址jmpmain 跳转到MAINorg0050h 主程序开始地址main mova 11111110B 立即数送入Aloop movp1 a 数据送P1口rra 右循环一下lcalldelay 延时子程序ajmploop 重复循环delay movr3 250 延时子程序d1 movr4 235d2 nopnopnopdjnzr4 d2djnzr3 d1retend 73 P0 P3口的使用 P0口 可以作为通用的I O口进行数据的输入输出 实际中绝大多数情况下都作为地址 数据线使用 P1口 通常是作为通用I O口使用的P2口 P2口可以作为通用I O口使用 通常 P2口是作为高位地址线使用 P3口 第一功能是作为I O口使用 它的第二功能信号都是单片机的重要控制信号 在实际使用时 都是先按需要选用第二功能信号 剩下的才以第一功能的身份作数据位的输入 输出使用 74 端口小结 1 系统总线 地址总线 16位 P0 地址低8位 P2口 地址高8位 数据总线 8位 P0口 地址 数据分时使用 控制总线 6根 P3口的第二功能 和9 29 30 31脚 2 供用户使用的端口 P1口 部分未作第二功能的P3口 3 P0口作地址 数据时 是真正的双向口 三态 负载能力为8个LSTTL电路 P1 P3是准双向口 负载能力为4个LSTTL电路 4 P0 P3在用作输入之前必须先写 1 即 P0 FFH P3 FFH 75 1 数据总线 DB 传送数据 双向 CPU的位数和外部数据总线的位数一致 而数据可能是指令代码 状态量或控制量 也可能是真正的数据 2 地址总线 AB 传送CPU发出的地址信息 单向 宽度 线数目 决定了CPU的可寻址范围 例如 2根地址线 可寻址22 4个字节单元 16根地址线 可寻址216 64K字节单元 3 控制总线 CB 传送使微机协调工作的定时 控制信号 双向 但对于每一条具体的控制线 都有固定的功能 控制线数目受芯片引脚数量的限制 76 1 什么是ISP 随着电子技术的日益发展 芯片的规模越来越大 封装日趋小型化 相应的对系统板级调试困难也在加大 回忆一下传统的编程方式 举设计单片机系统为例 如果想要对单片机编程序 必须要把单片机先从电路板上取下来 然后放入专用的编程器进行编程 最后再次放入电路板进行调试 补充 AT89S51的ISP下载线原理及其应用 77 ISP技术ISP In SystemProgramming Lattice是ISP 在线可编程 技术的发明者 据说Lattice公司最早是由华人创办的 ISP技术极大的促进了PLD产品的发展 在系统编程ISPISP In SystemProgramming 在系统可编程 指电路板上的空白器件可以编程写入最终用户代码 而不需要从电路板上取下器件 已经编程的器件也可以用ISP方式擦除或再编程 ISP技术是未来发展方向 78 可以看出 这样的开发步骤有以下缺点 1 频繁的拔插芯片 容易损坏芯片的引脚 2 如果频繁的调试程序 换程序 必须重复拔插 大大降低了开发效率 isp技术彻底地改变了传统的开发

温馨提示

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

评论

0/150

提交评论