




已阅读5页,还剩102页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 20 54 单片机原理与接口技术 第2章mcs 51单片机硬件结构和原理 2 20 54 1 熟悉mcs 51单片机cpu内部组成结构和各功能部件的作用 2 掌握mcs 51单片机引脚功能 包括 p0 p3并行i o口的定义 控制信号 三总线组成 3 掌握存储器的组织结构和程序存储器 数据存储器 内部特殊功能寄存器 sfr 的配置情况 熟悉程序状态寄存器 psw 各位的含义及变化规律 4 掌握p0 p3并行i o口结构及其特点 掌握时钟电路 cpu时序和复位电路 本章教学要求 3 20 54 本章目录 2 1mcs 51系列单片机分类2 2单片机硬件结构2 2 1单片机的引脚功能2 2 2单片机的内部结构2 3中央处理器 cpu 2 3 1运算器 2 3 2控制器2 3 3布尔 位 处理器2 4存储器2 4 1程序存储器2 4 2数据存储器 4 20 54 本章目录 2 7单片机的工作方式2 7 1复位方式2 7 2程序执行方式2 7 3低功耗运行方式习题与思考题 2 5并行输入 输出端口2 5 1p1口2 5 2p2口2 5 3p3口2 5 4p0口2 5 5并行口的应用2 6时钟电路和时序2 6 1时钟电路2 6 2时序 5 20 54 2 1mcs 51系列单片机的分类 自从intel公司于20世纪80年代初推出mcs 51系列单片机以后 所有的51系列单片机都是以intel公司最早的典型产品8051为核心 增加一定的功能部件后构成的 本章以8051为主阐述mcs 51系列单片机的系统结构 工作原理和应用中的一些技术问题 mcs 51系列可分为两大系列 51子系列和52子系列 51子系列主要有8031 8051和8751三种机型 52子系列主要有8032 8052和8752三种机型 6 20 54 表2 1mcs 51系列单片机的性能一览表 2 1mcs 51系列单片机的分类 7 20 54 2 2单片机硬件结构 2 2 1单片机的引脚功能mcs 51系列单片机是在一块芯片上集成了cpu ram rom 定时 计数器和多功能i o口等基本功能部件的一台计算机 单片机必须配备部分外围元件才能使用 其系统核心是单片机芯片 芯片引脚按功能分为3类 即数据总线 地址总线和控制总线 mcs 51系列单片机的外形采用40条引脚双列直插封装 dip 或lcc qfp封装 每条引脚有规定的序号和名称 dip封装的引脚排列和逻辑符号如图2 1所示 8 20 54 芯片引脚按功能分成3类 即 51单片机的引脚功能 数据总线地址总线控制总线 2 2 1单片机的引脚功能 9 20 54 1 主电源引脚vcc和vss vcc 5v 电源输入端vss gnd 共用接地端 2 2 1单片机的引脚功能 51单片机电源引脚 10 20 54 2 时钟振荡电路引脚xtal1和xtal2 xtal1和xtal2分别用做晶体振荡电路的反相器输入端和输出端 在使用内部振荡电路时 这两个端子用来外接石英晶体 振荡频率为晶体振荡频率 振荡信号送至内部时钟电路产生时钟脉冲信号 2 2 1单片机的引脚功能 51单片机时钟引脚 11 20 54 3 控制信号引脚 rst为复位信号输入端vpd为内部ram的备用电源输入端psen外部程序存储器的读选通信号ale地址锁存允许信号 2 2 1单片机的引脚功能 复位 外部存储器 地址锁存引脚 12 20 54 复位信号输入端rst 当rst reset 端保持两个机器周期 24个时钟周期 以上的高电平时 单片机完成复位操作 vpd为内部ram的备用电源输入端 当主电源vcc一旦发生断电或电压降到一定值时 可通过vpd为单片机内部ram提供电源 以保护片内ram中的信息不丢失 使vcc上电后能继续正常运行 2 2 1单片机的引脚功能 复位引脚 13 20 54 外部程序存储器的读选通信号 当访问外部rom时 产生负脉冲作为外部rom的选通信号 2 2 1单片机的引脚功能 ale与psen引脚 地址锁存允许信号ale 在访问外部存储器时 ale用来锁存p0送出的低8位地址信号 prog是对8751内部eprom编程时的编程脉冲输入端 读选通信号psen 14 20 54 外部程序存储器控制信号ea ea 0 访问外部程序存储器 ea 1 访问片内与片外程序存储器 vpp为8751eprom的21v编程电源输入端 2 2 1单片机的引脚功能 内外程序存储器控制引脚 15 20 54 p0端口 p0端口 p0 0 p0 7 第一功能 是一个8位漏极开路型的双向i o口 这时p0口可看成用户数据总线 第二功能 是在访问外部存储器时 分时提供低8位地址和8位双向数据总线 这时先用做地址总线再用做数据总线 4 p0 p1 p2 p3端口 2 2 1单片机的引脚功能 16 20 54 p1口 p1 0 p1 7 内部带上拉电阻的8位准双向i o口 p2口 p2 0 p2 7 第一功能 一个内部带上拉电阻的8位准双向i o口 第二功能 在访问外部存储器时 输出高8位地址 p3口 p3 0 p3 7 第一功能 内部带上拉电阻的8位准双向i o口 在系统中 这8个引脚都有各自的第二功能 2 2 1单片机的引脚功能 p1 p2和p3端口 17 20 54 2 2 2单片机的内部结构 一个8位cpu 4kb程序存储器 采用rom或eprom 8031无rom 128b通用数据存储器 21个特殊功能寄存器 sfr 4个8位并行口 其中p0 p2 p3是复用口 p0和p2为地址 数据线 可寻址64kbrom和64kbram 一个可编程全双工串行口 具有5个中断源 两个优先级嵌套结构 两个16位定时 计数器 一个片内振荡器与时钟电路 51单片机内部主要器件 18 20 54 2 2 2单片机的内部结构 51单片机内部主要部件 19 20 54 2 3中央处理器 cpu 单片机核心部分是cpu由下面三部分组成 运算器控制器布尔 位 处理器 20 20 54 2 3 1运算器 运算器 算术逻辑单元 alu 包括 累加器 acc 程序状态字 psw 暂存器b寄存器等部件 运算器的组成 21 20 54 1 累加器 累加器是一个8位寄存器 在指令系统中 累加器在直接寻址时的助记符为acc 除此之外全部用助记符a表示 2 3 1运算器 累加器 22 20 54 算术 逻辑部件 算术 逻辑部件alu是用于对数据进行算术运算和逻辑操作的执行部件 由加法器和其他逻辑电路 移位电路和判断电路等 组成 在控制信号的作用下 完成算术加 减 乘 除和逻辑与 或 异或等运算 以及循环移位操作 位操作等功能 2 3 1运算器 2 算术 逻辑部件 23 20 54 程序状态字寄存器 程序状态字寄存器psw是一个8位寄存器 用来存放运算结果的一些特征 进位标志位 半进位标志位 用户自定义标志位 工作寄存器组选择位 溢出标志位 奇偶校验标志位 2 3 1运算器 3 程序状态字寄存器 24 20 54 cy psw 7 进位标志位 在执行加 减法指令时 若运算结果的最高位 d7位 有进位或借位 则cy位被置1 否则清零 cy既可以作为条件转移指令中的条件 也可用于十进制调整 ac psw 6 半进位标志位 在执行加 减法指令时 如果其低半字节向高半字节有进位或借位 d3位向d4位 则ac位被置1 否则清零 ac也可用于十进制调整 f0 psw 5 用户自定义标志位 用户可用软件对f0赋以一定的含义 决定程序的执行转向 rs1 psw 4 和rs0 psw 3 工作寄存器组选择位 表2 2所示为rs1和rs0与片内工作寄存器组的对应关系 程序状态字寄存器 2 3 1运算器 25 20 54 ov psw 2 溢出标志位 当补码运算的结果超出 128 127的范围 溢出 时 ov位被置1 若无溢出 则ov位为0 ov也可以作为条件转移指令中的条件 psw 1 未定义位 p psw 0 奇偶校验标志位 单片机在指令执行后 根据acc中1的个数的奇偶性 自动将该标志位置1或清零 若1的个数为奇数 则p 1 否则p 0 p也可以作为条件转移指令中的条件 程序状态字寄存器 2 3 1运算器 26 20 54 rs1 rs0与片内工作寄存器组的对应关系 2 3 1运算器 片内四组工作寄存器的选择 27 20 54 4 b寄存器 在进行乘法 除法运算时 b寄存器作为alu的输入之一 与acc配合完成运算 并存放运算结果 在无乘除运算时 它可作为内部ram的一个单元 2 3 1运算器 寄存器 28 20 54 2 3 2控制器 定时控制逻辑指令寄存器数据指针 dptr 程序计数器 pc 堆栈指针 sp 地址寄存器地址缓冲器 控制器的组成 控制器是cpu的大脑中枢 它包括 29 20 54 1 程序计数器 程序计数器 programcounter pc 用来存放下一条要执行的指令的地址 当按照pc所指的地址从存储器中取出一条指令后 pc会自动加l 即指向下一条指令 2 3 2控制器 程序计数器 30 20 54 2 堆栈指针 堆栈指针 stackpointer sp 是指在片内ram的l28b 52子系列为256b 空间中开辟的堆栈区的栈顶地址 并随时跟踪栈顶地址变化 堆栈是按先进后出的原则存取数据的 开机复位后 单片机栈底地址为07h 2 3 2控制器 堆栈指针 31 20 54 3 指令寄存器和指令译码器 指令寄存器和指令译码器 instructionregister ir 的功能是对将要执行的指令进行存储和译码 当指令送入指令寄存器后 对该指令进行译码 即把指令转变成所需的电平信号 cpu根据译码输出的电平信号 使定时控制电路产生执行该指令所需的各种控制信号 以便计算机能正确地执行指令所要求的操作 2 3 2控制器 指令寄存与译码 32 20 54 4 数据指针 由于8051系列单片机可以外接64kb的数据存储器和i o接口电路 故在单片机内设置了l6位的数据指针寄存器 datapointer dptr 它可以对64kb的外部数据存储器和i o进行寻址 dptr可分为高8位数据指针寄存器 dph 和低8位数据指针寄存器 dpl 地址分别为83h和82h 2 3 2控制器 数据指针 33 20 54 在8051单片机系统中 与字节处理器相对应 还特别设置布尔 位 处理器 cy 进位标志位位寻址寄存器位寻址的并行i o口位操作指令系统 2 3 3布尔 位 处理器 34 20 54 2 4存储器 8051在物理结构上有4个存储空间 片内程序存储器片外程序存储器 rom 片内数据存储器片外数据存储器 ram 从用户使用的角度上 msc 51有3个存储空间 片内外统一编址的64kb程序存储器空间 用16位地址 256b片内数据存储器空间 用8位地址 64kb片外数据存储器地址空间 51单片机存储器布局 35 20 54 存储器结构 2 4存储器 36 20 54 2 4 1程序存储器 程序存储器用于存放编好的程序或表格常数 51子系列片内有4kbrom 52子系列片内有8kbrom 二者片外地址线均为16位 最多可扩展64kbrom 片内片外统一编址 若ea端保持低电平 则所有取指令操作均在片外程序存储器中进行 0000h地址在片外 若ea端保持高电平 0000h地址在片内 所有取指令操作均在片内程序存储器中进行 程序存储器的用途 37 20 54 程序存储器 在程序存储器的开始部分 定义了一段具有特殊功能的地址段 用作程序起始和各种中断的入口 2 4 1程序存储器 程序入口地址 38 20 54 2 4 2数据存储器 数据存储器用于存放中间运算结果 数据暂存和缓冲 标志位等 mcs 51系列单片机的片内数据存储器除ram块外 还有特殊功能寄存器 sfr 块 片内数据存储器的容量很小 常需要扩展片外数据存储器 mcs 51系列单片机有一个数据指针寄存器 可用于寻址程序存储器或数据存储器单元 它有16位 寻址范围可达64kb 数据存储器分为片外数据存储器 片内数据存储器 特殊功能存储器 以下分别加以介绍 数据存储器的用途 39 20 54 2 4 2数据存储器 片内通用数据存储器有 工作寄存器区位寻址区数据缓冲区 片内数据存储器 3个区域 1 片内通用数据存储器 40 20 54 片内数据存储器 2 4 2数据存储器 工作寄存器区 位寻址区 数据缓冲器区 41 20 54 1 工作寄存器区 工作寄存器也称为通用寄存器 供用户编程时使用 用于临时存储8位数据信息 工作寄存器地址为00h 1fh的32个单元 并分成4个工作寄存器组 每个组有8个工作寄存器 名称为r0 r7 工作寄存器和ram地址的对应关系如表所示 2 4 2数据存储器 工作寄存器区 每个工作寄存器组都可被选为cpu的当前工作寄存器 通过改变程序状态字寄存器 psw 中的rs1 rs0两位来实现 42 20 54 2 位寻址区 内部ram中地址为20h 2fh的16个单元 cpu不仅具有字节寻址功能 而且还具有位寻址功能 这16个单元共128 2 4 2数据存储器 位寻址区 位 每一位都赋予1个位地址 位地址范围是00h 7fh 43 20 54 3 数据缓冲区 30h 7fh是数据缓冲区 即用户ram区 共80个单元 52子系列片内ram有256个单元 工作寄存器区和位寻址区的单元数与地址都和51子系列的一致 而数据缓冲区有208个单元 地址范围是30h ffh 2 4 2数据存储器 数据缓冲区 44 20 54 4 堆栈与堆栈指针 堆栈是一种执行 后进先出 算法的数据结构 是在内存中的一个存储区域 数据一个一个顺序地存入 也就是 压入 push 这个区域之中 有一个地址指针 堆栈指针 总指向最后一个压入堆栈的数据所在的存储单元 存放这个地址指针的寄存器就叫做堆栈指示器 开始放入数据的单元叫做 栈底 数据一个一个地存入 这个过程叫做 压栈 读取这些数据时 按照堆栈指示器中的地址读取数据 堆栈指示器中的地址数自动减1 这个过程叫做 弹出pop 如此就实现了后进先出的原则 2 4 2数据存储器 堆栈指针 45 20 54 2 特殊功能寄存器 概念特殊功能寄存器 specialfunctionregister sfr 也称为专用寄存器 用于控制 管理单片机内部算术逻辑部件 并行i o口 串行i o口 定时器 计数器 中断系统等功能模块的工作 使用系统初始化时针对使用的功能部件编程设定 2 4 2数据存储器 特殊功能寄存器 46 20 54 表2 6特殊功能寄存器地址对照表 2 4 2数据存储器 特殊功能寄存器 47 20 54 psw与acc 1 程序状态字寄存器 psw psw是8位寄存器 存放程序运行状态的标志 字节地址为d0h 可以进行位寻址 2 累加器 acc acc是8位寄存器 用于算术或逻辑操作的输入和运算结果的输出 在指令系统中累加器的助记符为a 作为直接地址时助记符为acc 2 4 2数据存储器 psw与acc 48 20 54 3 数据指针寄存器 dptr 16位的专用地址指针寄存器 可对外部存储器和i o口进行寻址 也可拆成高字节dph和低字节dpl两个独立的8位寄存器 在cpu内分别占据83h和82h两个地址 当对64kb外部数据存储器寻址时 dptr可作为间接寻址寄存器使用 从外部数据存储器取数movxa dptr送数到外部数据存储器movx dptr a 2 4 2数据存储器 dptr 49 20 54 4 b寄存器 x yx y在乘 除法运算中用b寄存器暂存数据 乘法指令的两个操作数分别取自a和b 结果再存于b和a中 即a存低字节 b存高字节 除法指令中被除数取自a 除数取自b 结果商存于a中 余数存放在b中 在其他指令中 b寄存器可作为ram中的一个单元使用 b寄存器的地址为b0h 2 4 2数据存储器 b寄存器 50 20 54 5 堆栈指针 sp 堆栈是个特殊的存储区 主要功能是暂时存放数据和地址 通常用来保护断点和现场 它的特点是按照先进后出的原则存取数据 这里的进与出是指进栈与出栈操作 2 4 2数据存储器 堆栈指针 sp 与p0 p3锁存器 6 端口p0 p3 特殊功能寄存器p0 p3分别是i o端口p0 p3的锁存器 51 20 54 7 定时器 计数器tl0 th0 tl1 th1 msc 51单片机中有两个16位的定时器 计数器t0和t1 它们由4个8位寄存器 th0 tl0 th1和tl1 组成 两个16位定时器 计数器是完全独立的 可以单独对这4个寄存器寻址 2 4 2数据存储器 定时器 计数器 52 20 54 8 串行数据缓冲器 sbuf 功能 存放需要发送和接收的数据 组成 由两个独立的寄存器构成 一个是发送缓冲器 一个是接收缓冲器 但寄存器名称统一为subf 使用 发送指令movsbuf a 使用发送缓冲器 接收指令mova sbuf 使用接收缓冲器 2 4 2数据存储器 串行数据缓冲器 53 20 54 9 控制寄存器 控制寄存器有5种 中断优先级控制寄存器 ip 中断允许控制寄存器 ie 定时器 计数器控制寄存器 tcon 串行口控制寄存器 scon 电源控制寄存器 pcon 它们将在后续章节中详细介绍 2 4 2数据存储器 控制寄存器 54 20 54 可位寻址的位地址分布 mcs 51可直接位寻址的空间有216位 其中内部ram的20h 2fh这16个单元具有128个位地址空间 位地址为00h 7fh 另一部分位地址在特殊功能寄存器中 这些特殊功能寄存器是一些能被8整除的字节单元 地址在80h ffh区间 只用了11个字节 它们都可进行位寻址 共计88位 如表2 8所示 2 4 2数据存储器 可位寻址的位地址分布 55 20 54 可位寻址的位地址分布 2 4 2数据存储器 可位寻址的位地址分布 56 20 54 位操作与字节操作 尽管位地址和字节地址有重叠 读 写位寻址空间时也采用mov指令形式 但所有的位操作指令都是以位地址为一个操作数 以进位位 cy 为另一个操作数 例如 读位地址90h 用指令 movc 90h或movc p1 0写位地址90h 用指令 mov90h c或movp1 0 c 2 4 2数据存储器 位操作与字节操作 57 20 54 2 5并行输入 输出 i o 端口 接口的主要功能包括 缓冲与锁存数据 地址译码 信息格式转换 传递状态 外设状态 和发布命令等 i o接口有 并行接口 串行接口 定时 计数器 a d d a等 根据外设的不同情况和要求选择不同的接口 本节介绍mcs 51单片机的并行输入 输出接口 58 20 54 并行输入 输出接口 mcs 51单片机有p0 p1 p2 p3四个8位双向并行i o口 每个端口可以按字节输入或输出 也可以按位进行输入或输出 4个并行口共有32根端口线 用做位控制十分方便 并行i o口具有如下特点 2 5并行输入 输出 i o 端口 59 20 54 并行i o口特点 1 4个并行i o口都是双向的 p0口为漏极开路驱动 p1 p2 p3口均具有内部上拉电阻驱动 它们有时称为准双向口 2 32根端口线都可用做输入或输出 还可进行位操作 3 当并行i o口作为输入时 该口的锁存器必须先写入 1 这是一个重要条件 否则 该口不能读入正确数据 2 5并行输入 输出 i o 端口 60 20 54 2 5 1p1口 mcs 51单片机的pl口只有一种功能 即通用输入 输出接口 p1口每位的内部结构如图2 5所示 图2 5p1口每位的内部结构示意图 61 20 54 1 输出方式 当cpu执行写p1口的指令 如movpl data 时 p1口工作于输出方式 此时数据data经内部总线送入锁存器锁存 如果某位的数据为1 则该位锁存器输出端q 1 而使t截止 从而在引脚p1 x上出现高电平 即输出数据 1 反之 如果数据为0 则q 0 而使t导通 p1 x上出现低电平 即输出数据 0 2 5 1p1口 p1口工作原理 62 20 54 2 输入方式 当cpu执行读p1口的指令 如mova p1 时 p1口工作于输入方式 2 5 1p1口 p1口工作原理 63 20 54 2 5 2p2口 p2口有两种用途 通用i o口或高8位地址总线 p2口内部结构 图2 6p2口每位的内部结构示意图 通用i o与地址线的选择可根据指令由控制信号完成 64 20 54 movxa ri或movx ri a此时 ri寄存器提供的是8位地址 由p0口送出 不需要p2口 p2口引脚原有的数据在访问片外ram期间不受影响 故p2口仍可用做通用i o口 当片外ram容量较大需要由p2口和p0口送出16位地址时 p2口不再用做通用i o口 p2口用作地址线 通用i o口 2 5 2p2口 p2口用作地址线 当p2口作为准双向通用i o口使用时 其功能与p1口相同 工作方式 负载能力也相同 p2口用作通用i o口 65 20 54 2 5 3p3口 p3口是双功能口 默认为第一功能 通用i o 通过编程可设定为第二功能 通用i o口状态 图2 7p3口每位的内部结构示意图 1 通用i o口状态p3口用做准双向通用i o口时 其功能与p1口相同 66 20 54 2 第二功能状态 2 5 3p3口 第二功能状态 p3口作为第二功能操作时 其锁存器q端必须为高电平 可用输出指令向端口写1 以使q 1 单片机复位时 锁存器输出端为高电平 否则无法输入或输出第二功能信号 p3口第二功能中的输入信号经三态门2输入 可直接进入内部总线 p3口第二功能定义如表2 8所示 67 20 54 2 5 3p3口 第二功能状态 表2 8p3口第二功能 68 20 54 p3口使用 p3口的每一位都可独立地定义为第一功能i o或第二功能使用 p3的第二功能涉及到串行口 外部中断 定时器 与特殊功能寄存器有关 它们的结构 功能等在后面章节中再作进一步介绍 2 5 3p3口 p3口使用 p3口的地址为b0h 对应p3 0 p3 7的位地址为b0h b7h 69 20 54 2 5 4p0口 地址 数据分时复用总线通用i o口 p0口的功能 图2 8p0口每位的内部结构示意图 p0口有两种功能 p0口内部无上拉电阻 作为i o口时 必须外接上拉电阻 70 20 54 地址 数据总线状态 2 5 4p0口 p0口作为地址 数据总线的工作原理 输出 p0口作为输入端口的工作原理 输入 p0口作为通用i o口时的工作原理 图2 8p0口每位的内部结构示意图 71 20 54 当cpu向端口输出数据时 写脉冲加在锁存器的时钟端cl上 由于输出驱动级是漏极开路电路 因vt0截止 在作为i o口使用时应外接10k的上拉电阻 当cpu从端口读数据时 端口中两个三态门用于读操作 p0口读 写数据 2 5 4p0口 图2 8p0口每位的内部结构示意图 72 20 54 p0口读 修改 写 当执行 读 修改 写 指令 即读端口信息 在片内加以运算修改后 再输出到该端口的某些指令如 anlp0 a指令 即是读锁存器q的数据 究竟是读引脚还是读锁存器 cpu内部会自行判断是发读引脚脉冲还是读锁存器脉冲 读者不必在意 2 5 4p0口 p0口的读 修改 写操作 73 20 54 当作输入端口使用时 应先对该口写入 1 以使场效应管vt1截止 再进行读入操作 以防场效应管处于导通状态而使引脚箝位到零 引起误读 读引脚时注意 2 5 4p0口 p0口用作输入端时应注意 74 20 54 4个并行口使用注意事项 1 如果单片机内部有程序存贮器 不需要扩展外部存贮器和i o接口 单片机的4个口均可作为i o口使用 2 4个口在作为输入口使用时 均应先对其写 1 以避免误读 3 p0口作为i o口使用时应外接10k的上拉电阻 其它口则可不必 4 p2口某几根口线作地址使用时 剩下的口线不能作为i o口线使用 5 p3口的某些口线作第二功能时 剩下的口线可以单独作为i o口线使用 2 5 4p0口 p0 p1 p2 p3并行端口使用注意事项 75 20 54 2 5 5并行口的应用 并行接口是单片机用得最多的部分 可直接连接外部设备 需要注意电平的匹配 现以最简单的外部设备 开关和发光二极管为例说明并行口的应用设计 76 20 54 i o端口应用设计 例2 1设计一电路 监视某开关 k 用发光二极管 led 显示开关状态 如果k闭合 则led亮 如果k断开 则led熄灭 分析 通过程序监视p1 1端口的状态 若 p1 1 1 p1 0 0若 p1 1 0 p1 0 1 2 5 5并行口的应用 77 20 54 汇编语言程序代码如下 clrp1 0 使led灭aga setbp1 1 先对p1 1口写入 1 以便能正确读入p1 1口数据jbp1 1 lig 判断p1 1口状态 0或1 1 为k断开 转ligsetbp1 0 k闭合时 置位p1 0 led亮sjmpaga 循环执行 方便反复调整开关 状态 观察执行结果lig clrp1 0 k断开时 p1 0清0 led灭sjmpaga 循环执行 2 5 5并行口的应用 i o端口应用设计 78 20 54 例2 2在图2 10所示电路中 p1 4 p1 7接4个led管 p1 0 p1 3接4个开关 编程序将开关的状态反映到led上 2 5 5并行口的应用 i o端口应用设计 79 20 54 org0000hmovp1 0ffh 高四位的led全灭 低四位输入线送 1 abc mova p1 读p1口引脚开关状态 并送入aswapa 低四位开关状态换到高四位anla 0f0h 保留高四位movp1 a 从p1口输出 驱动四位ledorlp1 0fh 保持高四位不变 低四位送 1 准备再读开关sjmpabc 循环执行 方便反复调整开关状态 观察执行结果上述程序中每次读取开关状态之前 输入位都先置 1 保证了开关状态的正确读入 2 5 5并行口的应用 i o端口应用设计 汇编语言程序代码如下 80 20 54 sfrp1 0 x90 main p1 0 xff p1低4位置 1 高4位灯全灭 while 1 p1 p1 4 读入p1引脚状态 左移四位 将低四位的开关状态移至高四位后从p1口输出 以驱动led p1 p1 0 x0f p1高4位不变 低4位置 1 准备下再读开关状态 2 5 5并行口的应用 c语言程序代码如下 i o端口应用设计 81 20 54 2 5 5并行口的应用 i o端口应用设计 例2 3 用p1 0输出1khz和500hz的音频信号驱动扬声器 作为报警信号 要求1khz信号响100ms 500hz信号响200ms 交替进行 p1 7接一开关进行控制 当开关合上 高电平 时发出报警信号 当开关断开 低电平 时报警信号停止 设单片机晶振频率为12mhz 编程实现上述功能 82 20 54 500hz信号周期为2ms 信号电平为每1ms改变1次 1khz的信号周期为1ms 信号电平每500 s改变1次 编写一个延时500 s的子程序 延时1ms只需调用2次 用r2控制音响时间长短 a作为音响频率交换控制的标志 a 0ffh时产生500hz信号 a 00h时产生1khz信号 2 5 5并行口的应用 i o端口应用设计 分析 83 20 54 汇编语言程序代码如下 org0000hclra a作为1khz 500hz转换控制标志beg jnbp1 7 检测p1 7的开关状态 等待开关闭合movr2 200 r2置音响控制时间初值dv cplp1 0 改变p1 0状态cjnea 0ffh n1 a 0ffh 延时500 sacalld500 a 0ffh 延时1msn1 acalld500djnzr2 dvcplasjmpbegd500 movr7 250 延时500 s子程序djnzr7 l执行该指令用2 sretend 2 5 5并行口的应用 汇编程序实现 84 20 54 2 6时钟电路及时序 单片机工作是在统一的时钟脉冲控制下一拍一拍地进行的 这个脉冲是单片机控制器中的时序电路发出的 mcs 51系列单片机内部有一个高增益反相放大器 用于构成振荡器 但要形成时钟脉冲 外部还需附加电路 mcs 51的时钟产生方法有以下两种 2 6 1时钟电路 85 20 54 内部时钟方式 利用芯片内部的振荡器 然后在引脚xtall和xtal2两端跨接晶体振荡器 简称晶振 就构成了稳定的自激振荡器 发出的脉冲直接送入内部时钟电路 外接晶振时 cl和c2的值通常选择为30pf左右 cl c2对频率有微调作用 晶振或陶瓷谐振器的频率范围可在1 2 12mhz之间选择 2 6 1时钟电路 1 内部时钟方式 86 20 54 外部时钟方式 此方式是利用外部振荡脉冲接入xtall或xtal2 hmos和chmos单片机外时钟信号接入方式不同 如表所示 单片机 hmos型 外部时钟电路如图所示 2 6 1时钟电路 2 外部时钟方式 87 20 54 2 6 2时序 cpu执行指令的一系列动作都是在时序电路控制下进行的 由于指令的字节数不同 取这些指令所需要的时间就不同 既使是字节数相同的指令 由于执行操作有较大差别 不同的指令执行时间也不一定相同 即所需要的节拍数不同 为了便于对cpu时序进行分析 人们按指令的执行过程规定了几种周期 即时钟周期 状态周期 机器周期和指令周期 也称为时序定时单位 88 20 54 时钟周期 时钟周期也称为振荡周期 定义为时钟脉冲频率 fosc 的倒数 它是单片机中最基本的 最小的时间单位 在一个时钟周期内 cpu仅完成一个最基本的动作 为方便描述 振荡周期用p表示 2 6 2时序 1 时钟周期 89 20 54 状态周期 时钟周期经2分频后成为内部的时钟信号 用作单片机内部各功能部件按序协调工作的控制信号 称为状态周期 用s表示 这样 一个状态周期就有两个时钟周期 前半状态周期相应的时钟周期定义为p1 后半状态周期相应的时钟周期定义为p2 2 6 2时序 2 状态周期 90 20 54 机器周期 完成一个基本操作所需要的时间称为机器周期 mcs 51有固定的机器周期 规定一个机器周期有6个状态 分别表示为s1 s6 而一个状态包含两个时钟周期 那么一个机器周期就有12个时钟周期 可以表示为s1p1 s1p2 s6p1 s6p2 一个机器周期共包含12个振荡脉冲 即机器周期就是振荡脉冲的12分频 显然 如果使用6mhz的时钟频率 一个机器周期就是2 s 而如果使用12mhz的时钟频率 一个机器周期就是1 s 2 6 2时序 3 机器周期 91 20 54 指令周期 指令周期是执行一条指令所需要的时间 一般由若干个机器周期组成 指令不同 所需要的机器周期数也不同 2 6 2时序 4 指令周期 单周期指令双周期指令4周期指令 92 20 54 5 mcs 51指令的取指 执行时序 ale信号是用于锁存地址的选通信号 由时钟频率6分频得到的 多数指令在整个指令执行过程中ale信号是周期信号 通常 在每个机器周期内ale信号出现两次 时刻为s1p2和s4p2 信号的有效宽度为一个s状态 每出现一次ale信号 cpu进行一次读指令操作 但并不是每条指令在ale信号生效时都能有效地读取指令 如果是单周期指令 则在s4p2期间仍有操作 但读出的字节被丢弃 且读后的pc值不加1 如果是双周期指令 则在s4p2期间读二字节 在s6p2时结束指令 2 6 2时序 93 20 54 2 6 2时序 51单片机时序图 94 20 54 2 7单片机的工作方式 复位是单片机的初始化操作 单片机系统在上电启动运行时 都需要先复位 其作用是使cpu和系统中其他部件都处于一个确定的初始状态 并从这个状态开始工作 2 7 1复位方式 复位的作用 95 20 54 复位电路 2 7 1复位方式 1 上电复位上电复位利用电容器的充电实现 在时钟电路工作后 在rst端连续给出2个机器周期的高电平就可完成复位操作 1 复位电路 单片机的外部复位电路有上电自动复位和按键手动复位两种 96 20 54 上电加按键复位 当复位按键按下后 复位端通过51 的小电阻与 5v电源接通 迅速放电 使rst引脚为高电平 当复位按键弹起后 5v电源通过2k电阻对22 f电容重新充电 rst引脚端出现复位正脉冲 其持续时间取决于rc电路的时间常数 2 7 1复位方式 2 上电加按键复位 97 20 54 复位状态 复位后mcs 51片内各特殊功能寄存器的状态如表所示 表中 x 为不定数 2 7 1复位方式 2 复位状态 98 20 54 2 7 2程序执行方式 mcs 51单片机的基本工作方式是程序执行方式 它分为连续执行工作方式和单步执行工作方式 单片机在复位后 其pc值为0000h 一般在0000h地址放一条无条件转移指令 ljmp 以便跳转到用户程序的入口地址处连续执行用户程序 1 连续执行工作方式 连续执行方式 99 20 54 单步执行方式 单步执行工作方式是用户调试程序的一种工作方式 一次执行一条指令 单步执行工作方式是利用单片机的外部中断功能实现的 在单片机开发系统上有单步执行键 该键相当于单片机的外部中断源 当它被按下时产生一个负脉冲 即中断请求信号int0或int1 mcs 51单片机在外部中断信号的作用下 自动执行预先安排在中断服务程序中的单步执行指令 执行完后中断返回 2 7 2程序执行方式 2 单步执行工作方式 100 20 54 2 7 3低功耗运行方式 mcs 51单片机除具有一般的程序执行方式外 还具有两种低功耗运行方式 待机 或称为空闲 方式掉电 或称为停机 方式备用电源
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 篮球赛事组织流程总结及优化计划
- 危险品运输安全技术措施
- 2025年春季四年级道德法治影视观赏计划
- 国际贸易销售合同管理流程
- 房地产公司团建活动实施方案
- 二手交易市场开发协议
- 农业科技年度产品质量提升计划
- 职业介绍所劳动合同续签
- 零售业退换货流程与客户满意度
- 大型基础工程工期管理及其实施措施
- LOTO上锁挂牌培训资料课件
- 市政工程安全台账表
- DB63-T 1800-2020盐湖卤水矿堤坝工程施工技术规范
- 航天模型的设计、制作与比赛课件
- 公路工程施工现场安全检查手册
- 高考倒计时60天课件
- 幼儿园绘本故事:《十二生肖》 课件
- 财务会计费用原始凭证分割单
- 公司组织架构图(可编辑模版)
- 《环境化学》(第二版)全书教学课件
- 常规检泵设计培训
评论
0/150
提交评论