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

下载本文档

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

文档简介

第5章MCS 51系列单片机的片内接口及中断5 1并行I O接口及其应用5 2定时器 计数器及其应用5 3中断系统及其应用5 4串行接口及其应用 5 1并行I O接口及其应用5 1 1并行I O接口的功能5 1 2并行I O接口的结构5 1 3并行I O接口的应用 5 1并行I O接口及其应用 5 1 1并行I O接口的功能4个8位的并行I O接口P0 P1 P2和P3的映像位地址或字节地址如下表所示 P0 P3口均可作为一般的双向输入 输出口使用 此外P0 P2和P3口具有第二功能 P0口 在系统扩展时作为低8位地址与数据分时复用总线 P2口 在系统需要进行片外扩展时提供系统所需的高8位地址 P3口 当作为第二功能使用时 为串行通信 外部中断 定时器功能提供输入输出信号线 5 1 2并行I O接口的结构 1 P1口的位结构P1口是51系列单片机中惟一的一个单功能端口 其位结构如下图所示 输出时向锁存器写1 输入时该位的锁存器必须置 1 2 P2口的位结构P2口既可作为一般输入 输出口使用 也可作为系统扩展时的地址总线口 输出高8位地址A8 A15 其位结构如下图所示 其输出驱动电路多一个多路电子开关MUX 用于实现P2口两种功能的切换 3 P0口的位结构P0口可作为一般输入 输出口使用 还可在系统扩展时作为地址 数据复用总线口 分时输出低8位地址A0 A7与8位数据D0 D7 位结构如下图所示 4 P3口的位结构P3口的位结构如下图所示 P3口比P1口多一个输入缓冲器和一个与非门 其输出驱动电路与P2口相同 P3口具有第二功能 使用时只须将锁存器置1 在内部硬件控制作用下该位将具有相应的第二功能 5 1 3并行I O接口的应用例 电路结构如下图所示 欲利用发光二极管LED显示开关K的状态 即开关闭合时LED亮 开关K断开时LED熄灭 试编程实现 参考程序如下 CLRP1 0 给LED一个初态 熄灭BACK SETBP1 7 对输入位P1 7写 1 JBP1 7 BACK1 K断开 转BACK1SETBP1 0 K闭合 LED亮SJMPBACKBACK1 CLRP1 0 K断开 LED灭SJMPBACK 例 电路结构如下图所示 要求当图中Ki闭合时与之对应的LEDi亮 Ki断开时LEDi熄灭 试编程实现 参考程序如下 ORG0000HLJMPMAIN 跳转到主程序ORG0100HMAIN MOVP1 00H 8位LED全灭MOVP0 0FFH P0置1 准备进行输入操作BACK MOVA P0 读P0口开关状态 并送入累加器ACPLA 对累加器A求反MOVP1 A 从P1口输出SJMPBACK 循环执行 5 2定时器 计数器及其应用5 2 1定时器 计数器的结构和工作原理5 2 2定时器 计数器的工作方式5 2 3定时器 计数器的编程5 2 4定时器 计数器的应用 5 2定时器 计数器及其应用 5 2 1定时器 计数器的结构和工作压力 1 定时器 计数器的结构MCS 51系列单片机的定时器 计数器T0 T1的结构完全相同 如下图所示 2 定时器 计数器的工作原理MCS 51系列单片机的定时器 计数器实质上是一个加1计数器 可以工作于定时方式 也可以工作于计数方式 两者都是对输入脉冲进行计数 定时器 计数器的核心部件是一个加1计数器 它每接收到一个输入脉冲 该加1计数器便在预置计数初值N的基础上加1 当计数器的计数初值N被加为0 即产生进位 时 将使计数器的溢出中断标志TFi置1 通过中断或查询方式可了解TFi是否为1 从而达到了解计数器是否完成本次定时或计数的目的 5 2 2定时器 计数器的工作方式定时器 计数器共有4种工作方式 1 方式0 13位计数器 THi提供高8位 TLi提供低5位的计数初值 TLi的高3位未用 最大计数值为213 C T 0时 工作于定时方式 计数器对晶体振荡器12分频后的脉冲进行计数 C T 1时 工作于计数方式 计数器对外部脉冲输入端Ti输入的脉冲进行计数 GATE 0时 由TRi位为1启动计数 为0停止计数 GATE 1时 只有当TRi和INTi同时为1才能启动定时器 计数器工作 2 方式1 16位计数器 由THi和TLi寄存器各提供8位计数初值 最大计数值为216 工作过程及启 停方式与方式0完全一样 惟一区别是当由THi TLi共同构成的16位计数器计满溢出时 置位中断溢出标志TFi 并向CPU发出中断请求 3 方式2 8位计数器 方式2是8位的可自动重装计数初值的定时计数方式 最大计数值为28 其工作过程及启 停方式与方式0 1基本相同 但结构上略有不同 具体结构如下图所示 4 方式3 8位计数器 定时器T0被分成两个独立的计数器TL0和TH0 如下图所示 TL0可做定时器 计数器 占用T0的所有控制位 GATE C T TR0 INT0和TF0 TH0只能做定时器使用 占用T1的TR1和TF1 此时TH0控制着定时器T1的中断 在这种情况下 T1可用做串行口的波特率发生器 但不能使用中断方式 5 2 3定时器 计数器的编程MCS 51系列单片机内的定时器 计数器T0 T1 均为可编程的功能部件 相关控制寄存器介绍如下 1 工作方式寄存器TMODTMOD的格式如下图所示 TMOD的高 低4位分别为定时器T1 T0的方式选择控制位 其中 GATE 门控制位 用作启 停操作方式的选择 C T 定时器 计数器方式选择位 该位置0选定时方式 置1选计数方式 M1 M0 方式选择位 用以选择定时器 计数器的4种不同工作方式 2 计数初值N定时器 计数器在定时和计数方式下 计数初值N的计算方法各不相同 定时方式 2n N t tOV其中 t 12 fosc 为机器周期 tOV为所需定时的时间 n为计数器的位数 取值与具体工作方式相关 计数方式 N 2n X其中 X为要求计数的次数 n同上 3 控制寄存器TCON控制字TCON的格式如下图所示 其低4位与中断有关 不在此介绍 高4位为定时器的运行控制位和溢出中断标志 具体定义如下 TF1 定时器T1溢出中断标志 TR1 定时器T1的运行控制位 TF0 定时器T0溢出中断标志 TR0 定时器T0的运行控制位 4 编程举例例 要求 T0为计数工作方式 工作在方式0下 由TR0位直接控制T0的启停 计数100个脉冲 T1为定时工作方式 工作在方式1下 由TR1位直接控制T1的启停 定时20ms 请完成相关初始化编程 参考程序段如下 MOVTMOD 14HMOVTH1 0D8HMOVTL1 0F0HMOVTH0 0FCHMOVTL0 1CHSETBTR1SETBTR0 5 2 4定时器 计数器的应用例 电路如下图所示 欲使图中LED以200ms为周期闪烁 其定时时间由定时器T0完成 设fosc 6MHz 试编程实现 参考程序如下 ORG0000HLJMPMAINORG0100HMAIN SETBP1 0MOVTMOD 01HMOVTH0 3CHMOVTL0 0B0HSETBTR0 BACK JBCTF0 BACK1SJMPBACKBACK1 MOVTH0 3CHMOVTL0 0B0HCPLP1 0SJMPBACK 例 电路如下图所示 欲测量图中INT0 P3 2 引脚上出现的正脉冲宽度N 并将结果存入70H和71H两个单元中 请编程实现 设fosc 12MHz 参考程序如下 ORG0000HLJMPMAINORG0100HMAIN MOVTMOD 09HMOVTH0 00HMOVTL0 00HBACK1 JBP3 2 BACK1SETBTR0 BACK2 JNBP3 2 BACK2BACK3 JBP3 2 BACK3CLRTR0MOV70H TL0MOV71H TH0SJMP END 5 3中断系统及其应用5 3 1中断系统结构5 3 2中断处理过程5 3 3中断的应用 5 3中断系统及其应用 5 3 1中断系统结构MCS 51系列单片机的中断系统结构如下图所示 1 中断源与中断向量MCS 51系列单片机有5个中断源 提供两个中断优先级 可实现二级中断嵌套 5个中断源可分为外部中断源 定时中断源 串行口接收 发送中断源 各中断源与各对应中断向量的关系如下 中断源中断向量INT00003HT0000BHINT10013HT1001BHRI或TI0023H 2 中断的控制MCS 51对中断的控制主要通过中断优先级控制寄存器IP 中断允许寄存器IE以及中断源寄存器TCON和SCON 中断允许寄存器IEIE寄存器的地址为A8H 各位的定义如下 中断优先级控制寄存器IPIP寄存器的地址为B8H 统一管理中断源的中断优先级 当IP中某位设定为1时 相应的中断源为高优先级中断 某位设定为0时 相应的中断源为低优先级中断 单片机复位时 IP各位初始化为0 IP寄存器各位的定义如下 中断源寄存器TCON和SCONTCON为定时器 计数器的控制寄存器 地址为88H 它也锁存外部中断请求标志 与中断标志位有关的格式如下 SCON是串行口控制寄存器 地址为98H 它锁存的中断请求标志只有两位 其格式如下 5 3 2中断处理过程一个完整的中断处理过程包括中断请求 中断响应 中断处理和中断返回部分 前面已经介绍了中断请求与控制 下面将介绍其他几部分内容 1 中断响应当有中断请求且满足中断响应条件时 CPU便会响应中断 其响应过程如下 将相应的优先级状态触发器置1 以禁止同级或低级的中断嵌套 将当前程序计数器PC的内容压入堆栈保存 并将相应的中断服务程序入口地址送入PC 以实现程序的转移 执行中断服务程序 响应过程的前两步由硬件自动完成的 中断服务程序需要用户编写 5 3 3中断应用例 电路结构如下图所示 欲使与P1 0引脚相连的LED以2秒为周期闪烁 试编程实现 功能实现分析如下 由电路图可知 欲使LED按2秒为周期闪烁 实际上就是控制LED以1秒的频率改变其亮 灭的状态 要使LED亮 则P1 0输出 1 否则输出 0 1秒的延时时间利用定时器 计数器来实现 设单片机的振荡频率为6MHz 则其机器周期为2us 根据前面所学知识可知 仅仅只利用定时器T0或T1无法实现1秒的定时 要定时1秒需定时器T0和T1共同配合使用来达到目的 可通过使T0定时50ms 在P1 3引脚上输出一个周期为100ms的方波 计数器T1对该脉冲进行计数 计满10个 便达到定时1秒的目的 以1秒为周期对P1 0引脚状态求反 便能实现题目的要求 例 利用中断实现例5 5测量INT0引脚上的正脉冲宽度的功能 设待测脉冲的宽度为N 且有0 N 65536us 参考程序如下 ORG0000HLJMPMAINORG0003HLJMPINT0ORG0100HMAIN MOVTMOD 09HMOVTH0 00HMOVTL0 00HBACK1 JBP3 2 BACK1 SETBTR0SETBIT0SETBEX0SETBEASJMP ORG0200HINT0 CLRTR0MOV70H TL0MOV71H TH0RETI 5 4串行接口及其应用5 4 1串行口的结构5 4 2串行口的工作方式5 4 3串行口的使用5 5 4串行口的应用 5 4串行接口及其应用 5 4 1串行口的结构MCS 51系列单片机内的串行接口是一个可编程的全双工串行通讯接口 通过软件编程 既可作为通用异步接收和发送器UART 通用异步收发器 也可作为同步移位寄存器 其结构框图如下图所示 5 4 2串行口的工作方式可编程的串行口有4种工作方式 可通过SCON中的SM0 SM1进行设置 1 方式0 移位寄存器的输入输出方式 该方式下 数据由RXD P3 0 引脚输入或输出 同步移位脉冲由TXD P3 1 引脚输出 该方式多用于外接移位寄存器以扩展I O端口 波特率固定为fosc 12 2 方式1 波特率可变10位异步通讯方式 该方式为标准的异步通讯方式 其通讯格式为 起始位1位 数据位8位 停止位1位 工作在全双工方式下 以TXD为串行数据的发送端 RXD为串行数据的接收端 波特率由定时器T1的溢出率和SMOD位的状态确定 3 方式2 3 11位异步通讯方式 方式2和方式3的操作过程与方式1基本相同 主要区别在于方式2和方式3有第9位数据 该位数据的主要作用是用作数据的奇偶效验位 或在多机通讯中作为地址 数据的特征位 该位数据保存在RB8 接收时 或TB8 发送时 中 方式2的波特率只有两种 即fosc 64和fosc 32 方式3的波特率则可通过编程进行多种设置 5 4 3串行口的使用 1 与串行口有关的特殊功能寄存器 SBUFSBUF为串行口接收 发送数据缓冲器 其地址为99H 通过SBUF寄存器可实现对串行数据的输入 输出操作 SCONSCON是串行口控制寄存器 专门用以设定串行口的工作方式 接收 发送控制以及相关标志的状态 其格式及各位功能如下 PCONPCON是电源控制寄存器 地址为87H 它主要是为CHMOS型单片机的电源控制而设置的专用寄存器 与串行口初始化编程相关的只有最高位SMOD 波特率选择位 当串行口工作在方式1 方式2和方式3下时 波特率与SMOD有关 当SMOD 1时 波特率提高一倍 当SMOD 0时 波特率不变 复位时 SMOD 0 2 串行口波特率的选择不同的工作方式 其波特率的取值也各异 详细内容参见教材相关部分 3 串行通信结束的查询与中断串行通讯可以通过查询方式或中断方式实现接收数据和发送数据 具体流程图参见教材相关部分 5 4 4串行口的应用 1 利用方式0扩展并行I O口例 利用51单片机的串行口外接74LS164扩展8位并行输出口 电路图如下图所示 8位并行输出口的各位分别接一个发光二极管 要求发光二极管按从左到右的顺序 以一定的时间间隔依次循环发光 试编程实现 参考程序如下 ORG0000HLJMPMAINORG2000HMAIN CLRP1 0MOVSCON 00HSETBP1 0MOVA 80HBACK1 MOVSBUF A BACK2 JNBTI BACK2CLRTILCALLDELAYRRASJMPBACK1 2 利用方式1实现点对点的异步通信例 编程将甲机片内RAM50H 5FH单元中的数据向乙机发送 在发送之前将数据块长度N发送给乙机 当发送完N个字节后 再发送一个累加效验和 乙机接收数据进行累加和校验 如果和发送方的累加和一致 发送数据 00 表示接收正确 如果不一致 发数据FFH 甲机再重发 乙机接收的数据存入片内70H 7FH单元中 设波特率为2400 fosc 6MHz 试编程实现 参考程序如下 甲机发送程序TRT MOVTMOD 20HMOVTH1 0F3HMOVTL1 0F3HSETBTR1MOVSCON 50HRPT MOVR0 50HMOVR2 10HMOVR3 00HMOVSBUF R2BACK1 JNBTI BACK1CLRTIBACK2 MOVA R0MOVSBUF AADDA R3 MOVR3 AINCR0BACK3 JNBTI BACK3CLRTIDJNZR2 BACK2MOVSBUF R3MOVR3 0BACK4 JNBTI BACK4CLRTIBACK5 JNBRI BACK5CLRRIMOVA SBUFJNZRPTRET 乙机接收程序RSU MOVTMOD 20HMOVTH1 0F3HMOVTL1 0F3HSETBTR1MOVSCON 50HBACK MOVR0 70HBACK1 JNBRI BACK1CLRRIMOVA SBUFMOVR2 AMOVR3 00HBACK2 JNBRI BACK2CLRRIMOVA SBUFMOV R0 AINCR0 ADDA R3MOVR3 ADJNZR2 BACK2BACK3 JNBRI BACK3CLRRIMOVA SBUFXRLA R3MOVR3 00HJZBACK5MOVSBUF 0FFHBACK4 JNBTI BACK4CLRTIAJMPBACKBACK5 MOVSBUF 00HBACK6 JNBTI BACK6CLRTIRET 3 利用方式2 方式3与多机通信串行口控制寄存器SCON中的SM2位为方式2 方式3的多机通讯控制位 在多机

温馨提示

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

评论

0/150

提交评论