便携式正弦信号发生器毕业设计.doc_第1页
便携式正弦信号发生器毕业设计.doc_第2页
便携式正弦信号发生器毕业设计.doc_第3页
便携式正弦信号发生器毕业设计.doc_第4页
便携式正弦信号发生器毕业设计.doc_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

正弦信号发生器 I 便携式正弦信号发生器毕业设计便携式正弦信号发生器毕业设计 目 录 摘摘 要要 I ABSTRACT II 1 绪绪 论论 1 1 1 课题背景课题背景 1 1 2 系统结构系统结构 1 2 硬件电路设计硬件电路设计 2 2 1 系统设计方案系统设计方案 2 2 2 方案论证方案论证 2 2 3 正弦信号发生器的基本原理正弦信号发生器的基本原理 3 2 4 AT89S52 的简介的简介 3 2 4 1 CPU 系统 5 2 4 2 存储器系统 5 2 4 3 I O 口和其它功能单元 5 2 4 4 AT89S52 的时钟电路的接法 5 2 4 5 时钟信号 6 2 4 6 AT89S52 的各个管脚的功能介绍 6 2 4 7 AT89S52 的复位 7 2 4 7 1 复位电路 7 2 4 7 2 开机复位后的状态 8 2 4 8 AT89S52 的程序存储器配置 8 2 4 9 AT89S52 的数据存储器配置 9 2 4 10 AT89S52 的中断简介 9 2 4 10 1 中断的定义 10 2 4 10 2 中断允许控制 11 2 4 10 3 中断优先级控制 12 2 4 11 AT89S52 定时 计数器简介 14 2 4 11 1 T0 和 T1 工作方式的控制 15 2 4 11 2 T0 和 T1 工作状态的控制 15 2 4 11 3 T0 和 T1 定时计数器的工作方式 16 2 4 11 4 T2 定时 计数器的控制 17 2 4 11 5 T2 定时 计数器模式的控制 18 2 4 11 6 T2 的工作方式 18 2 4 12 AT89S52 的串行口的简介 20 2 4 12 1 AT89S52 串行口的结构 20 沈阳工程学院毕业设计 论文 II 2 4 12 2 AT89S52 串行口的控制 20 2 4 12 3 AT89S52 串行口的工作方式 22 2 4 13 低功耗节电模式 23 2 4 13 1 电源断电标志 23 2 4 13 2 空闲模式 23 2 4 13 3 掉电模式 23 2 4 14 看门定时器 WDT 24 2 4 14 1 WDT 的使用 24 2 4 14 2 掉电模式下的 WDT 24 2 4 14 3 空闲模式下的 WDT 25 2 4 15 其它特殊功能寄存器 25 2 4 15 1 辅助寄存器 AUXR 25 2 4 15 2 辅助寄存器 AUXR1 25 2 4 15 3 双数据指针寄存器 25 2 5 AD9850 简介简介 26 2 5 1 AD9850 的控制字与控制时序 27 2 5 2 I O 方式并行接口 2 2 5 3 总线方式并行接口 2 2 6 8279 接口芯片接口芯片 2 2 6 1 8279 的结构 2 2 6 2 8279 的引脚定义 3 2 6 3 8279 的操作命令 4 2 6 4 8279 的状态字 5 2 7 LCD 简介简介 6 2 7 1 原理框图 6 2 7 2 LCD 应用时序 6 2 7 2 1 并行方式 AC 特性及时序 6 2 7 2 2 并行方式 AC 特性及时序 7 2 7 3 系统功能 8 2 7 3 1 功能描述 8 2 7 3 2 忙标志 BF 9 2 7 3 3 地址计数器 AC 9 2 7 3 4 中文字型生成 ROM CGROM 及半宽字型 ROM HCGROM 9 2 7 3 5 字型产生 RAM CGRAM 9 2 7 3 6 ICON RAM IRAM 9 2 7 3 7 显示数据 RAM DDRAM 9 2 7 3 8 图形显示 RAM GDRAM 10 2 7 3 9 光标 闪烁 10 2 7 4 指令集 10 2 7 4 1 基本指令集 RE 0 10 2 7 4 2 扩充指令集 RE 1 14 2 7 4 3 基本指令集初始值 Register flag RE 0 15 正弦信号发生器 III 2 7 5 LCD 驱动电源连接方式 15 2 7 6 液晶显示模块显示中文时 RAM 地址对应表 15 2 7 7 控制器中内藏的字符表 16 8 半宽字型 16 2 7 8 接口引脚定义 16 2 8 直流稳压电源直流稳压电源 17 3 软件程序设计软件程序设计 18 3 1 程序流程图程序流程图 18 3 1 1 主程序 18 3 1 2 外部中断 0 子程序 19 3 1 3 T2 中断子程序 20 3 2 C 语言程序清单语言程序清单 20 3 3 C 语言程序解析语言程序解析 30 3 3 1 运算符的优先级和结合性 30 3 3 2 库函数 31 3 3 3 功能界面建立相关函数 38 3 3 4 键盘响应相关函数 38 3 3 5 提示信息显示相关函数 39 结结 论论 40 致致 谢谢 41 参考文献参考文献 42 附附 录录 I 43 附附 录录 55 附附 录录 III 56 附附 录录 IV 57 正弦信号发生器 1 1 绪 论 1 1 课题背景 DDS 技术目前已成为频率合成技术发展的主流方向 它高度的集成性 对 于简化电子系统的设计方案 降低硬件的复杂程度 提高系统的整机性能意义 重大 用这种方法产生线性调频信号及其它复杂波形信号的技术日益受到重视 并得到广泛的应用 近年来 随着直接数字频率合成技术 direct digital frequency synthesis 简称 DDS 的发展 基于 DDS 技术的合成信号发生器 在正弦信号源的设计与使用 中日益广泛 它与以往的射频信号源 锁相信号源和模拟频率合成信号源相比 较 其频率分辨率高 指定频率的重复性好 而且易于程序控制 DDS 技术的 原理主要是通过相位与幅度的对应关系实现的 由于不同的控制字对应相位累 加器中不同的相位累加速度 用此速度从正弦幅值表中进行查询 获得指定的 幅度序列 最后通过数模转换输出 1 2 系统结构 对一个系统来说 系统结构的好坏是非常重要的 我本着实现所有要求的 功能的基础上 简化系统结构 这样可以降低成本 也可以减少一些电路本身 的干扰 对于本系统我采用了四个模块 即 键盘模块 控制模块 显示模块 正 弦信号发生模块 各个模块之间的关系如下图 键 盘 正弦信号产生 显 示 CPU 图 1 1 系统总框图 根据系统总框图可知 CPU 是用来处理键盘传来的按键信号 并且控制显示 模块和正弦信号产生模块的正常工作的 本系统的核心是正弦信号产生模块 因它是产生正弦信号的中心 其它器件只是让整个系统更加完善 沈阳工程学院毕业设计 论文 2 2 硬件电路设计 2 1 系统设计方案 正弦信号发生器待选方案有两个 方案一 利用单片机查询正弦表的方法来产生正弦信号 此方法的优点是 电路简单 易实现程控 缺点是输出信号频率范围比较窄 而且输出信号的波 形好坏和单片机查询的正弦表有密切关系 既在正弦波的一个周期内所查的正 弦表次数越多 则正弦波的波形越好 但是单片机的负担也变大了 计算量将 明显提高 则单片机的大部分资源被输出正弦波的工作所占用 方案二 利用模拟电路知识中的振荡电路的方法来产生正弦信号 此方法 的优点是输出信号频率范围比较宽 缺点是电路的抗干扰能力比较差 不易实 现程控 当输出频率比较高时电路设计比较困难 方案三 利用 DDS 技术来产生正弦信号 此方法的优点是输出信号的频率 范围比较宽 电路比较简单 易于实现程控 缺点是 DDS 器件价格有点高 一 般在一百元以上 而且多数是帖片元件 这对于焊接工艺要求比较高 由于 DDS 技术的发展 再加上生活水平的提高 本次设计我采用 DDS 技 术 2 2 方案论证 按照系统功能要求 决定 CPU 模块采用 AT89S52 单片机 正弦信号产生 模块采用 AD8950 显示模块采用 LCD 键盘模块采用 8279 和 4 4 键盘 系 统除能确保实现要求的功能外 还可以方便地进行其它功能的扩展 正弦信号 发生器系统设计方案框图如图 2 1 所示 正弦信号发生器系统硬件电路由单片机 AD9850 LCD 显示电路和按键 处理电路等组成 它的硬件电路如附录所示 AT89S52 4 4 键盘 8279 LCD 显示 AD9850 图 2 1 设计方案框图 正弦信号发生器 3 2 3 正弦信号发生器的基本原理 根据系统的功能要求 控制系统采用 AT89S52 单片机 正弦信号发生模块 采用 AD9850 AD9850 是专业的正弦信号发生器件 通过单片机对 AD9850 的 控制可以输出不同频率的正弦波 并且可以通过 LCD 显示频率值 以便于更好 的实现人机界面 2 4 AT89S52 的简介 单片微机 Single Chip Microcomputer 简称为单片机 它在一块芯片上集中 成了中央处理单元 CPU 随机存储器 RAM 只读存储器 ROM 定时 计数和多 功能输入 输出 I O 口 如并行口 I O 串行口 I O 和转换 A D 等 就其组成而 言 一块单片机就是一台计算机 其典型结构如图 2 2 所示 由于它具有体积 小 功能强和价格便宜等优点 因而被广泛地应用于产品智能化和工业控制自 动化上 时钟电路 总线控制 CPU ROM EPROM FLASH 4K 字节 RAM 128字节 SFR 21个 定时 计数器 2个 中断系统 5中断源 2优先级 串行口 全双工 2个 并行口 4个 RST EAALE PSEN XTAL2XTAL1 P0P1P2P3 VCC VSS 图 2 2 单片机典型内部组成原理图 单片机特点 a 单片机体积小巧 使用灵活 成本低 易于真正产品化 组装各种智能 式控制设备和仪器 能做到机电仪一体化 b 面向控制 能有针对性地解决各种从简单到复杂的各类控制任务 因而 能获得最佳的性能价格比 c 抗干扰能力强 适应温度范围宽 在各种恶劣的环境下都能可靠的工作 这是其它微机集中无法比拟的 d 可以方便的实现多机 分布式的集散控制 使整个控制系统的效率大大 地提高 e 单片机应用产品的研制周期短 所开发出来的样机就是以后批量生产的 产品 可以避免不必要的二次开发过程 单片机应用 a 工业方面 电机控制 工业机器人 过程控制 智能传感器 机电仪一 沈阳工程学院毕业设计 论文 4 体化等 b 仪器仪表方面 智能仪器 医疗仪器 色谱仪 示波器等 c 家用电器 高级电子玩具 微波灶 洗衣机 录像机等 d 电讯方面 调制解调器 智能通讯设备等 e 导航与控制方面 导弹控制 鱼雷制导控制 智能武器装置 航天导航 系统等 f 数据处理方面 图形终端 彩色与黑白复印机 温式硬盘驱动器 磁带 机 打印机等 g 汽车方面 点火控制 变速器控制 防滑刹车 排气控制等 MCS 51 系列单片机在我国得到了广泛的应用 是单片机的主流系列 软 硬件应用设计资料丰富齐全 为了提高指令的执行速度和效率 采用了面向控 制的结构和指令系统的独立 CPU 即选择 Atmel 公司的 AT89S52 单片机 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0 0 AD0 39 P0 1 AD1 38 P0 2 AD2 37 P0 3 AD3 36 P0 4 AD4 35 P0 5 AD5 34 P0 6 AD6 33 P0 7 AD7 32 P1 0 T2 1 P1 1 T2EX 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 7 RD 17 P3 6 WR 16 P3 5 T1 15 P2 7 A15 28 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 AT89S52 图 2 3 AT89S52 引脚排列 AT89S52 是低功耗 高性能 采用 CMOS 工艺的 8 位单片机 其片内具有 8KB 的可在线编程的 Flash 存储器 该单片机采用了 ATMEL 公司的高密度 非易失性存储器技术 与工业标准型 AT89S52 单片机的握住系统和引脚完全兼 容 片内的 Flash 存储器可在线重新编程 或使用通用的非易失性存储器编程 器 通用的 8 位 CPU 与在线可编程 Flash 集成在一块芯片上 从而使 AT89S52 功能更加完善 应用更加灵活 具有较高的性能价格比 使其在嵌入式控制系 统中有着广泛的应用前景 AT89S52 单片机具有如下特性 片内存储器包含 8KB 的 Flash 可在线编程 擦写次数不少于 1000 次 具有 256 字节的片内 RAM 具有可编程的 32 根 I O 口线 P0 P1 P2 和 P3 口 具有 3 个可编程定时器 T0 T1 和 T2 内含 2 个数据指针 DPTR0 和 DPTR1 中断系统是具有 8 个中断源 6 个中断矢量 2 级优先权的中断结构 串行通信口是 1 个全双工的 UART 串行口 2 种低功耗节电工作方式为空闲模式和掉电模式 正弦信号发生器 5 具有 3 级程序锁定位 含有 1 个看门狗定时器 具有断电标志 POF AT89S52 的工作电压为 4 0 5 5V 全静态工作模式为 0 3MHz AT89S52 和 0 16MHz AT89LS52 与 MCS 51 产品完全兼容 2 4 1 CPU 系统 8 位 CPU 含布尔处理器 时钟电路 总线控制逻辑 2 4 2 存储器系统 8K 的程序存储器 Flash 可外扩至 64K 256 的数据存储器 RAM 可再外扩 64K 特殊功能寄存器 SFR 2 4 3 I O 口和其它功能单元 4 个并行 I O 口 3 个 16 位定时 计数器 1 个全双工异步串行口 中断系统 8 个中断源 2 个优先级 2 4 4 AT89S52 的时钟电路的接法 振荡器 CYS 悬空 外部 时钟 信号 XTAL1 XTAL2 XTAL2 XTAL1 图 2 4 AT89S52 的时钟电路的接法 如上图所示 左图是内部时钟方式 右图是外部时钟方式 由于 AT89S52 沈阳工程学院毕业设计 论文 6 内部有时钟 所以我选择左图的外部时钟方式 晶振选择 12MHz C1 C2 电 容选择 30pF 5 30pF 都可以 2 4 5 时钟信号 晶振周期为最小的时序单位 一个时钟周期包含 2 个晶振周期 一个机器 周期包含 12 个晶荡周期或 6 个时钟周期 如本设计用的是 12MHz 的晶振频率 则机器周期为 1 S 指令周期为 1 4 S 每个机器周期中 ALE 信号有效两次 具有稳定的频率可以将基作为外部设 备的时钟信号 所以 ALE 引脚的频率是单片机时钟频率的 1 6 应注意的是 在对片外 RAM 进行读 写时 ALE 信号会出现非周期现象 2 4 6 AT89S52 的各个管脚的功能介绍 1 电源及时钟引脚 Vcc 电源接入引脚 Vss 接地引脚 XTAL1 晶体振荡器接入的一个引脚 采用外部振荡器时 此引脚接 地 XTAL2 晶体振荡器接入的另一个引脚 采用外部振荡器时 此引脚作为 外部振荡信号的输入端 2 控制线引脚 RST VPD 复位信号输入引脚 备用电源输入引脚 ALE PROG 地址允许信号输出引脚 编程脉冲输入引脚 EA VPP 内外有储器选择引脚 片内 FlashROM 编程电压输入引脚 PSEN 外部程序存储器信号输出引脚 3 并行 I O 引脚 32 个 分成 4 个 8 位口 P0 0 P0 7 一般 I O 口引脚或数据 低位地址总线复用引脚 P1 0 P1 7 一般 I O 口引脚和定时器 T2 定义的引脚 P2 0 P2 7 一般 I O 口引脚或高位地址总线引脚 P3 0 P3 7 一般 I O 口引脚或第二功能引脚 P1 0 和 P1 1 引脚的第二功能 P1 0 T2 T2 的外部计数输入 P1 1 T2EX T2 的外部控制 1 P3 0 P3 7 引脚的第二功能 P3 0 RXD 串行口输入 P3 1 TXD 串行口输出 P3 2 INT0 外部中断 0 输入 P3 3 INT1 外部中断 1 输入 正弦信号发生器 7 P3 4 T0 定时 计数器 0 的外部输入 P3 5 T1 定时 计数器 1 的外部输入 P3 6 WR 片外数据存储器 写 控制输出 P3 7 RD 片外数据存储器 读 控制输出 2 并行口的负载能力 P0 P1 P2 P3 口的输入和输出电平与 CMOS 电平和 TTL 电平均兼容 P0 口的每一个位口线可以驱动 8 个 LSTTL 负载 在作为通用 I O 口时 由于输出驱动电路是开漏方式 由集电极开路 OC 门 电路或漏极开路电路 驱动时需外接上拉电阻 当作为地址 数据总线使用时 接口线输出不是开漏的 无在须外接上拉电阻 P1 P2 P3 口的每一位能驱动 4 个 LSTTL 负载 它们的输出劝电路设有 内部上拉电阻 所以可以方便地由集电极开路 OC 门 电路或漏极开路电路 所驱动 而无须外接上拉电阻 由于单片机口线仅能提供几毫安的电流 当作为输出驱动一般晶体管的基 极时 应在口与晶体管的基极之间串接限流电阻 2 4 7 AT89S52 的复位 当在 AT89S52 单片机的 RST 引脚引入高电平并保持 2 个机器周期时 单 片机内部就执行复位操作 如果 RST 引脚持续保持高电平 单片机就处于循环 复位状态 2 4 7 1 复位电路 在实际应用中 复位操作有两种基本形式 一种是上电复位 另一种是上 电与按键均有的复位 如图 2 4 所示 R 1 C 1 5vRST AT89S52 5vRST AT89S52 R 1 R 2 C 1 图 2 5 左图为上电复位 右图为上电与按键均有的复位 上电复位要求接通电源后 单片机自动实现复位操作 开机瞬间 RST 引脚 获得高电平 随着电容 C1 的充电 RST 引脚的高电平 随着电容 C1 的充电 RST 引脚的高电平将逐渐下降 RST 引脚的高电平只要能保持足够的时间 2 个机器周期 单片机就可以进行复位操作 左图上电复位电路的典型的电阻和电容参数为 晶振频率为 12MHz 时 C1 为 10 F R1 为 8 2k 晶振频率为 6MHz 时 C1 为 22 F R1 为 1k 沈阳工程学院毕业设计 论文 8 开机与按键均有效的复位电路可以在单片机运行期间 用按键完成复位操 作 晶振频率为 6MHz 时 R2 为 200 晶振频率为 12MHz 时 R2 为 400 2 4 7 2 开机复位后的状态 单片机的复位操作使单片机进入初始化状态 初始化后 程序计数器 PC 0000H 所以程序从 0000H 地址单元开始执行 单片机启动后 片内 RAM 为随机值 运行中的复位操作不改变片内 RAM 的内容 特殊功能寄存器复位后的状态是确定的 P0 P3 为 FFH SP 为 07H SBUF 不定 IP IE 和 PCON 的有效位为 0 其余的特殊功能寄存器的状 态均为 00H 相应的意义为 P0 P3 FFH 相当于各接口器已定入 1 此时不但可用于输出 也可以用 于入 SP 07H 堆栈指针指向片内 RAM 的 07H 单元 第一个入栈内容将定入 08H 单元 IP IE 和 PCON 的有效位为 0 各中断源处于低优先级且均被关断 串行 通信的波特率不加倍 PSW 00H 当前工作寄存器为 0 组 2 4 8 AT89S52 的程序存储器配置 程序计数器 PC 是 16 位的计数器 所以能寻址 64KB 的程序存储器地址范 围 允许用户程序调用或转向 64KB 的任何存储单元 地址范围为 0000H FFFFH 但是 AT89S52 单片机内部只有 4KB 的存储单元 地址范围为 0000H 0FFFH 当 EA 引脚为高电平时 CPU 将首先访问内部存储器 当指令地址超过 0FFFH 时 自动片外 ROM 去取指令 接低电平时 接地 CPU 只能访问外 部程序存储器 程序存储器低端的一些地址被固定地用作特定的入口地址 0000H 单片机复位的入口地址 0003H 外部中断 0 的中断服务程序入口地址 000BH 定时 计数器 0 溢出中断服务程序入口地址 0013H 外部中断 1 的中断服务程序入口地址 001BH 定时 订数器 1 溢出中断服务程序入口地址 0023H 串行口接口的中断服务程序入口地址 002BH 定时 计数器 2 溢出或 T2EX 负跳变中断服务程序入口地址 正弦信号发生器 9 T2 中断入口 02BH 图 2 6 程序存储器配置 编程时以上的中断入口地址空间最好不要使用 2 4 9 AT89S52 的数据存储器配置 AT89S52 片内 RAM 共有 256 字节 分成工作寄存器区 位址区 通用 RAM 区和间接寻址 RAM 区四个部分 片内 RAM 地址范围是 00H FFH 片 外 RAM 地址空间为 64KB 地址范围是 0000H FFFFH 图 2 7 数据存储器配置 2 4 10 AT89S52 的中断简介 1 INT0 P3 2 外部中断请求信号输入引脚 可由 IT0 TCON 0 选择其为低电平有效还是下降沿有效 当 CPU 检测到 P3 2 引脚上出现有效的 中断信号时 中断标志 IE0 TCON 1 置之不理 向 CPU 申请中断 2 INT1 P3 3 外部中断定请求信号输入引脚 可由 IT1 TCON 2 选择其为低电平有效还是下降沿有效 当 COU 检测到 P3 3 引 脚上出现有效的中断信号时 中沁村志 IE1 TCON 3 置 1 向 CPU 申请中断 3 TF0 TCON 5 片内定时 计数器 T0 溢出中断请求标志 当定时 计数器 T0 发生溢出时 置位 TF0 并向 CPU 申请中断 4 TF1 TCON 7 片内定时 计数器 T1 溢出中断请求标志 当定时 计数器 T1 发生溢出时 置位 TF1 并向 CPU 申请中断 沈阳工程学院毕业设计 论文 10 5 RI SCON 0 或 TI SCON 1 串行口中断请求标志 当串行口 接收完一帧串行数据置位 RI 或当串行口发关完一帧串行数据时置位 TI 向 CPU 早请中断 6 TF2 T2CON 7 定时器 T2 溢出中断标志 定时器 T2 溢出时置位 标志并向 CPU 申请中断 7 EXF2 T2CON 6 定时器 T2 外部中断标志 在捕捉和常数自动重 装方式下 当 EXEN2 1 时 在 T2EX 端发生的负跳变使 EXF2 置位 如此时 T2 中断被允许 则 EXF2 1 使 CPU 响应中断 2 4 10 1 中断的定义 CPU 正在执行主程序时 单片机外部或内部发生的某一事件 如外部设备 产生的一个电平的变化 一个脉冲沿的发生或内部计数器的计数溢出等 请求 CPU 迅速去处理 于是 CPU 暂时中止当前的工作 转到中断服务处理程序处 理所发生的事件 中断服务处理程序处理完该事件后 再回到原来被中止的地 方 继续原来的工作 例如 继续执行被中断的主程序 这称为中断 CPU 处理事件的过程 称为 CPU 的中断响应过程 能够实现中断处理功能的部件称 为中断系统 产生中断的请求源称为中断请求源 中断源向 CPU 提出的处理请 求 称为中断请求 或中断申请 中断的工作 保护现场 恢复现场 中断返回 中断方式的优点是大大地提高了 CPU 的工作效率 六个中断请求源 1 INT0 外部中断请求 0 由引脚 INT0 输入 中断请求标志为 IE0 2 INT1 外部中断请求 1 由引脚 INT1 输入 中断请求标志为 IE1 3 定时器 计数器 T0 溢出中断请求 中断请求标志为 TF0 4 定时器 计数器 T1 溢出中断请求 中断请求标志为 TF1 5 串行口中断请求 中断请求标志为 TI 或 RI 6 定时器 计数器 T2 中断请求 中断请求标志为 TF2 和 EXF2 标志位分别由特殊功能寄存器 TCON SCON 和 T2CON 的相应位锁存 TCON 是定时 计数器 T0 和 T1 控制寄存器 它锁存几个定时 计数器的溢 出中断标志及外部中断 INT0 和 INT1 的中断标志 表 2 1 TCON 寄存器中的各位定义 TCON 的字节地址 88H复位值 00000000B 可以位寻址 76543210 TF1TR1TF0TR0IE1IT1IE0IT0 IT0 TCON 0 外部中断 INT0 非触发方式控制位 当 IT0 0 时 INT0 非为电平触发方式 CPU 在每个机器周期的 S5P2 取样 INT0 非引脚电平 当取样到低电平时 置 IE0 1 表示 INT0 非向 CPU 请求中断 正弦信号发生器 11 取样到高电平时 将 IE0 清 0 必须注意 在电平触发方式下 CPU 响应中断 时 不能自动清除 IE0 标志 也就是说 IE0 状态完全由 INT0 非状态决定 所 以 在中断返回前必须撤除 INT0 非引脚的低电平 当 IT0 1 时 INT0 非为边沿触发方式 下降沿有效 CPU 在每个机器 周期的 S5P2 取样 INT0 非引脚电平 如果在连续的两面三刀个机器周期检测到 INT0 非引脚由高电平变为低电平 即第一个周期取样到 INT0 非 1 第二个周 期取样到 INT0 非 0 则置 IE 1 产生中断请求 在边沿触发方式下 CPU 响应中断时 能由硬件自动清除 IE0 标志 注意 为保证 CPU 能检测到负跳变 INT0 非的高 低电平时间至少应保持 1 个机器周期 IE0 TCON 1 外部中断 INT0 非中断请求标志位 IE0 1 时 表示 INT0 非向 CPU 请求中断 IT1 TCON 2 外部中断 INT1 非触发方式控制位 其操作功能与 IT0 类 同 IE1 TCON 3 外部中断 INT1 非中断请求标志位 IE1 1 时 表示 INT1 非向 CPU 请求中断 TF0 TCON 5 定时 计数器 T0 溢出中断请求标志位 在 T0 启动后就 开始由初值加 1 计数 直到最高位产生溢出由硬件置位 TR0 向 CPU 请求中断 CPU 响应中断时 TF0 由硬件自动清 0 TF1 TCON 7 定时 计数器 T1 溢出中断请求标志位 其操作功能与 TF0 类同 2 4 10 2 中断允许控制 CPU 对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存 器 IE 控制的 IE 的状态可通过程序由软件设定 某位设定为 1 相应的中断源 中断允许 某位跑马场定为 0 相应的中断源中断屏蔽 CPU 复位时 IE 各位 清 0 禁止所有中断 表 2 2 IE 寄存器位的定义 IE 的字节地址 A8H复位值 00000000B 可以位寻址 76543210 EAET2ESET1EX1ET0EX0 其中 EA 中断允许总控制位 0 CPU 屏蔽所有的中断请求 CPU 关中断 1 CPU 开放所有中断 CPU 开中断 ET2 定时器 计数器 T2 的中断允许位 0 禁止 T2 中断 1 允许 T2 中断 沈阳工程学院毕业设计 论文 12 ES 串行口中断允许位 0 禁止串行口中断 1 允许串行口中断 ET1 定时器 计数器 T1 的溢出中断允许位 0 禁止 T1 溢出中断 1 允许 T1 溢出中断 EX1 外部中断 1 中断允许位 0 禁止外部中断 1 中断 1 允许外部中断 1 中断 ET0 定时器 计数器 T0 的溢出中断允许位 0 禁止 T0 溢出中断 1 允许 T0 溢出中断 EX0 外部中断 0 中断允许位 0 禁止外部中断 0 中断 1 允许外部中断 0 中断 AT89S52 复位以后 IE 被清 0 所有的中断请求被禁止 CPU 对中断源的开放或屏蔽 由片内的中断允许寄存器 IE 控制 IE 的字 节地址为 A8H 可进行位寻址 IE 对中断的开放和关闭实现两级控制 总的开关中断控制位 EA IE 7 位 当 EA 0 时 所有的中断请求被屏蔽 当 EA 1 时 CPU 开放中断 但五个中断源的中断请求是否允许 还要由 IE 中的低 5 位所对应的 5 个中断请求允许控制位的状态来决定 若使某一个中断源被允许中断 除了 IE 相应的位的被置 1 外 还必须 使 EA 位 1 即 CPU 开放中断 改变 IE 的内容 可由位操作指令来实现 即 SETB bit CLR bit 2 4 10 3 中断优先级控制 同一优先级中的中断中请不止一个时 则有中断优先权排队问题 同一优 先级的中断优先权排队 由中断系统硬件确定的自然优先级形成 其排列如表 表 2 3 中断系统硬件的优先级形式 中断源中断标志中断服务程序入口优先级顺序 外部中断 0 INT0 IE00003H高 定时 计数器 0 T0 TF0000BH 正弦信号发生器 13 外部中断 1 INT1 IE10013H 定时 计数器 1 T1 TF1001BH 串行口RI 或 TI0023H 定时 计数器 2 T2 TF2 或 EXF2002BH低 表 2 4 IP 寄存器各位的定义 IP 的字节地址 B8H复位值 00000000B 可以位寻址 76543210 PT2PSPT1PX1PT0PX0 其中 PT2 定时器 T2 中断优先级控制位 1 高优先级中断 0 低优先级中断 PS 串行口中断优先级控制位 1 高优先级中断 0 低优先级中断 PT1 定时器 T1 中断优先级控制位 1 高优先级中断 0 低优先级中断 PX1 外部中断 1 中断优先级控制位 1 高优先级中断 0 低优先级中断 PT0 定时器 T0 中断优先级控制位 1 高优先级中断 0 低优先级中断 PX0 外部中断 0 中断优先级控制位 1 高优先级中断 0 低优先级中断 由用户程序置 1 和清 0 以改变各中断源的中断优先级 AT89S52 单片机的中断优先级处理有三条原则 1 CPU 同时接收到几个中断时 首先相应优先级别最高的中断请求 2 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断 3 正在进行的低优先级中断服务 能被高优先级中断请求所中断 为了实现上述后两条原则 中断系统内部设有两个用户不能寻址的优先级 沈阳工程学院毕业设计 论文 14 状态触发器 其中一个置 1 表示正在相应高优先级的中断 它将阻止断后所 有的中断请求 另一个置 1 表示正在相应低优先级中断 它将阻止后来所有 的低优先级中断请求 两个中断优先级 可实现两级中断嵌套 就是 CPU 正在执行低优先级中断 的服务程序时 可被高优先级中断请求所中断 去执行高优先级中断服务程序 待高优先级中断处理完毕后 再返回低优先级中断服务程序 一个正在执行的低优先级中断程序能被高优先级的中断源所中断 但不能 被另一个低优先级的中断源所中断 若 CPU 正在执行高优先级的中断 则不能 被任何中断源所中断 可归纳为下面基本规则 1 低优先级可被高优先级中断 反之则不能 2 任何一种中断 不管是高级还是低级 一旦得到响应 不会再被它 的同级中断源所中断 某一中断源被设置为高优先级中断 则不能被任何其它的中断源的中断请 求所中断 中断优先级寄存器 IP 其字节地址为 B8H 可位寻址 AT89S52 的中断优先级结构 中断系统有两个不可寻址的 优先级激活触 发器 其中一个指示某高优先级的中断正在执行 所有后来的中断均被阻止 另一个触发器指示某低优先级的中断正在执行 所有同级的中断都被阻止 但 不阻断高优先级的中断请求 响应中断请求的条件 一个中断请求被响应 需满足以下必要条件 1 CPU 开中断 即 IE 寄存器中的中断总允许位 EA 1 2 该中断源发出中断请求 即该中断源对应的中断请求标志为 1 3 该中断源的中断允许位 1 即该中断没有被屏蔽 4 无同级或更高级中断正在被服务 若遇到下列任一条件 硬件将受阻 不能产生函数调用指令 1 CPU 正在处理同级或高优先级中断 2 当前查询的机器周期不是所执行指令的最后一个机器周期 即在完成 所执行指令前 不会响应中断 从而保证指令在执地过程中不被打断 3 正在执行的指令为返回 中断返回或任何访问 IE 或 IP 寄存器的指令 即只有在这些指令后面至少再执行一条指令时才能接爱中断请求 从中断源提出中断申请 到 CPU 响应中断 如果满足了中断响应条件 需要经历一定的时间 一般从标志置到进入相应的中断服务 至少要 3 个完整 的机器周期 另外 如果中断响应过程受阻 就要增加等待时间 若没有同级 或高级中断正在进行 所需要的附加等待时间在 3 5 个机器周期之间 对于没 有嵌套的中断 响应时间为 3 8 个机器周期 正弦信号发生器 15 2 4 11 AT89S52 定时 计数器简介 在单片机应用系统中 常常会有定时控制需求 如定时输出 定时检测 定时扫描等 也经常要对外部事件进行计数 要实现定时功能 有时亦可以采用下而三种方法 软件定时 让 CPU 循环执行一段程序 通过选择指令和安排循环次数 以实现软件定时 软件定时不占用硬件资源 但占用了 CPU 时间 降 低了 CPU 的利用率 采用时基电路定时 例如采用 555 电路 外接必要的元器件 电阻和电 容 即可构成硬件定时电路 此种方法实现容易 改变电阻和电容 值可以在一定范围内改变定时值 但在硬件连接好以后 定时值与定 时范围不能由软件进行控制和修改 即不可编程 采用可编程芯片定时 这种定时芯片的定时值及定时范围很容易用软件 来确定和修改 此种芯片定时功能强 使用灵活 在单片机的定时 计 数器不够用时 可以考虑进行扩展 典型的可编程定时芯片如 Intel 8253 TL0 8AH 存储 T0 的低 8 位数据 TH0 8CH 存储 T0 的高 8 位数据 TL1 8BH 存储 T1 的低 8 位数据 TH1 8DH 存储 T1 的高 8 位数据 2 4 11 1 T0 和 T1 工作方式的控制 工作方式寄存器 TMOD 用于设置定时 计数器的工作方式 低 4 位用于 T0 高 4 位用于 T1 表 2 5 TMOD 寄存器各位的定义 TMOD 的字节地址 89H复位值 00000000B 不可以位寻址 76543210 GATEC TM1M0GATEC TM1M0 其中 GATE 门控位 GATE 0 时 只要用软件使 TCON 中的 TR0 或 TR1 为 1 就可以启动定时 计数器工作 GATE 时 要用软件使 TR0 或 TR1 为 1 同时 外部中断引脚 INT0 或 INT1 也为高电平时 才能启动定时 计数器工作 即此 时定时器的启动条件 加上了 INT0 或 INT1 引脚为高电平这一条件 C T 定时 计数模式选择位 C T 0 为定时模式 C T 1 为计数模式 M1M0 工作方式设置位 定时 计数器有 4 种工作方式 由 M1M0 进行设置 表 2 6 定时 计数器工作方式设置表 M1M0工作方式说 明 00方式 013 位定时 计数器 沈阳工程学院毕业设计 论文 16 01方式 116 位定时 计数器 10方式 28 位自动重装定时 计数器 11方式 3T0 分成两个独立的 8 位定时 计数器 T1 此方式停止计数 2 4 11 2 T0 和 T1 工作状态的控制 TCON 的高 4 位用于控制定时 计数器的启动和中断申请 表 2 7 TMOD 寄存器各位的定义 TCON 的字节地址 88H复位值 00000000B 可以位寻址 76543210 TF1TR1TF0TR0 其中 TF1 定时 计数器 T1 溢出中断请求标志位 定时 计数器 T1 计数溢出时由 硬件自动置 TF1 为 1 CPU 响应中断后 TF1 由硬件自动清 0 T1 工作时 CPU 可随时查询 TF1 的状态 所以 TF1 可用作查测试的标志 TF1 也可以用软件 置 1 或清 0 同硬件置 1 或清 0 的效果一样 TR1 定时 计数器 T1 运行控制位 TR1 置 1 时 定时 计数器 T1 开始工作 TR1 置 0 时 定时 计数器 T1 停止工作 TR1 由软件置 1 或清 0 所以 用软 件可控制定时 计数器的启动与停止 TF0 定时 计数器 T0 溢出中断请求标志位 其功能与 TF1 类同 TR0 定时 计数器 T0 运行控制位 其功能与 TR1 类同 2 4 11 3 T0 和 T1 定时计数器的工作方式 1 方式 0 方式 0 为 13 位计数 由 TL0 的低 5 位 高 3 位未用 和 TH0 的 8 位组成 TL0 的低 5 位溢出时向 TH0 进位 TH0 溢出时 置位 TCON 中的 TF0 标志 向 CPU 发出中断请求 当为定时模式时 有 N t Tcy 式中 t 为定时时间 N 为计数个数 Tcy机器 周期 通常 在定时 计数器的应用中要根据计数个数求出送入 TH1 TL1 和 TH0 TL0 中的计数初值 计数初值计算的公式为 X 213 N 式中 X 为计数初 值 N 为计数个数 初值在 8191 0 范围时 计数范围为 1 8192 另外 定时器的初值还可以采用计数个数直接取补法获得 当 GATE 1 时 由 INT0 控制或门的输出 此时控制与门的开启由 INT0 和 TR0 共同控制 当 TR0 1 时 INT0 引脚的高电平启动计数 INT0 引脚的 低电平停止计数 这种方式可以用来测量 INT0 引脚上正脉冲的宽度 应说明的是 方式 0 采用 3 位计数器是为了与早期的产品兼容 计数初值 正弦信号发生器 17 的高 8 位和低 5 位的确定比较麻烦 所以在实际应用中常由 16 位的方式 1 取代 2 方式 1 方式 1 的计数位数是 16 位 由 TL0 作为低 8 位 TH0 作为高 8 位 组成 了 16 位加 1 计数器 计数个数与计数初值的关系为 X 216 N 初值在 65535 0 范围时 计数范围为 1 65536 3 方式 2 方式 2 为自动重装初值的 8 位计数方式 TH0 为 8 位初值寄存器 当 TL0 计满溢出时 由硬件使 TF0 置 1 向 CPU 发出中断请求 并将 TH0 中的计数 初值自动送入 TL0 TL0 从初值重新进行加 1 计数 周而复始 直至 TR0 0 才会停止 计数个数与计数初值的关系为 X 28 N 当初值在 255 0 范围时 计数范围为 1 256 由于工作方式 2 时省去了儿童医院软件中重装常数的程序 所以特别适合 于用作较精确的脉冲信号发生器 4 方式 3 方式 3 只适用于定时 计数器 T0 定时器 T1 牌方式 3 时相当于 TR1 0 停 止计数 方式 3 时 T0 分为两个独立的 8 位计数器 TL0 和 TH0 TL0 使用 T0 的所 有控制位 C T GATE TR0 TF0 和 INT0 当 TL0 计数溢出时 由硬件使 TR0 置 1 向 CPU 发出中断请求 而 TH0 固定为定时方式 不能过街外部计数 并且借用了 T1 的控制位 TR1 TF1 因此 TH0 的启 停受 TR1 控制 TH0 的溢出将置位 TF1 在 T0 方式 3 时 因 T1 的控制位 C T M1M0 并未交出 原则上 T1 仍可 按方式 0 1 2 工作 只是不能使用运行控制位 TR1 和溢出标志位 TF1 也不 能发出中断请求信号 方式设定后 T1 将自动运行 如果要停止工作 只需将 其定义为方式 3 即可 在单片机的串行通信应用中 T1 常作为串行口波特率发生器 且工作于方 式 2 这时将 T0 设置成方式 3 可以使单片机的定时 计数器资源得到充分利用 2 4 11 4 T2 定时 计数器的控制 T2 的控制是用 T2 的控制寄存器 T2CON 来设置的 在专用寄存器组中有 5 个与 T2 有关的寄存器 控制寄存器 T2CON 捕捉寄存器 RCAP2H 0CBH 和 RCAP2L OCAH 定时寄存器高低字节 TH2 0CDH 和 TL2 0CCH 当 T2 用作定时器或计数器时 与 T0 和 T1 类似 只是 T2 没有 8 位和 13 位工 作模式 仅有 16 位模式 表 2 8 T2CON 各位功能如下 T2CON 地址 0C8H复位值 0000 0000B 沈阳工程学院毕业设计 论文 18 可位寻址 76543210 TF2EXF2RCLKTCLKEXEN2TR2C T2CP RL2 其中 TF2 T2 溢出标志 当 T2 溢出时 TF2 1 TF2 只能用软件清除 当 RCLK 1 或 TCLK 1 即 RCLK TCLK 1 时 TF2 将不置位 EXF2 T2 外部标志 在 EXEN2 1 的条件下 T2EX P1 1 引脚上的负跳变 将引起 T2 的捕捉 重装操作 此时 EXF2 1 在 T2 中断允许的条件下 EXF2 1 将引起中断 EXF2 位只能用软件清除 在 T2 的向上 向下计数模式下 DCEN 1 EXF2 的将不引起中断 RCLK 接收时钟允许 当 RCLK 1 时 T2 的溢出脉冲可用做串行口的接 收时钟信号 适用于串行模式 1 和 3 当 RCLK 0 时 T1 的溢出脉冲用做串行 口的接收时钟信号 TCLK 发送时钟允许 当 TCLK 1 时 T2 的溢出脉冲可用做串行口的发 送时钟信号 适用于串行模式 1 和 3 当 TCLK 0 时 T1 的溢出脉冲可用做 串行口的发送时钟信号 EXEN2 T2 的外部事件 引起捕捉 重装的外部信号 允许 当 EXEN2 1 时 如果 T2 没有作串行时钟输出 即 RCLK TCLK 0 则在 T2EX P1 1 引脚的负跳变将引起 T2 的捕捉 重装操作 当 EXEN2 0 时 T2EX P1 1 的负跳变不起作用 TR2 T2 的启动 停止控制 当 TR2 1 时 启动 T2 当 TR2 0 时 停止 T2 C T2 T2 的计数 定时方式的选择 当 C T2 1 时 T2 为内部定时器 当 C T2 0 时 T2 为外部事件计数器 下降沿触发 CP RL2 捕捉或常数自动重装方式选择 当 CP RL2 1 且 EXEN2 1 时 T2EX P1 1 引脚的负跳变将引起捕捉操作 当 CP RL2 0 且 EXEN2 1 时 T2EX P1 1 引脚的负跳变将引起自动重装操作 当 CP RL2 0 且 EXEN2 0 时 T2 的溢出将引起 T2 的自动重装操作 2 4 11 5 T2 定时 计数器模式的控制 定时器 2 模式寄存器 T2MOD 表 2 9 T2MOD 各位功能介绍如下 T2MOD 地址 0C9H复位值 XXXXXX00B 不可位寻址 76543210 T2OEDCEN 其中 正弦信号发生器 19 T2OE 定时器 2 输出允许位 当 T2OE 1 时 P1 0 T2 引脚可输出连续脉 冲信号 DCEN 允许向下计数位 当 DCEN 0 时 设置为向上 增加 计数 当 DCEN 1 时 定时器 T2 可以向上计数 还可以向下计数 由

温馨提示

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

评论

0/150

提交评论