低频信号发生器毕业论文.doc_第1页
低频信号发生器毕业论文.doc_第2页
低频信号发生器毕业论文.doc_第3页
低频信号发生器毕业论文.doc_第4页
低频信号发生器毕业论文.doc_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

便携式低频信号发生器 摘要 信号发生器是一种常用的信号源 广泛地应用于电子电路 自动控制系统和 教学实验等领域 目前使用的信号发生器大部分是函数信号发生器 且特殊波形发生器 的价格昂贵 所以本设计使用的是 AT89c51 单片机构成的发生器 可产生三角波 方波 正弦波等多种特殊波形和任意波形 波形的频率可用程序控制改变 在单片机上加外围 器件距阵式键盘 通过键盘控制波形频率的增减以及波形的选择 并用了 LCD 显示频 率大小 在单片机的输出端口接 DAC0832 进行 D A 转换 再通过运放进行波形调整 最后输出波形接在示波器上显示 本设计具有线路简单 结构紧凑 价格低廉 性能优越 等优点 关键词 信号发生器 单片机 波形调整 The design of low frequency function signal generator Author Zhao Xinghui Grade05 Class2 Detection Technology and Application Mechanical engineering institute Shaanxi University of Technology Hanzhong 723003 Shaanxi Tutor Zhai Renhe Abstract Signal generator is a kind of signal source in common use broadly applied at the electronics electric circuit auto control system and teaching experiment etc Currently used mostly function signal generator signal generator waveform generator and a special price of expensive So the dissertation is usage of the AT89s51 single chip microcomputer constitute of wave form generator which can generate triangle wave square wave sine wave etc variety wave form the period of wave can be controlled by procedure at outer circle spare part of the machine plus independence type keyboard which can control wave increase or decrease of form frequency and the choice of wave form at the same time LED display frequency size The output of the machine connect DAC0832 to carry on a DA conversion again pass operation amplifier to put an end exportation wave form This design has advantage of simple circuit tightly packed structure cheap price superior function etc Keywords signal generator MCU wave form adjustment 目 录 1 绪 论 1 1 1 课题背景 目的及意义 1 1 2 设计要求和任务 2 2 便携式低频信号发生器的方案研究 3 2 1 方案提出和论证 3 2 2 模块结构划分 4 3 各模块具体设计 6 3 1 AT89C51 单片机介绍 6 3 2 最小应用系统 12 3 3 8255 扩展电路 15 3 4 4 6 距阵式按键电路 21 3 5 128 64LCD 显示电路 30 3 6 D A 转换电路 37 3 7 I V 转换波形输出电路 41 4 电路软件设计和体统调试 47 4 1 软件设计流程图 47 4 2 Keil 和 Protues 介绍和联调 48 4 3 软硬模块调试 50 4 4 调试遇到的问题和解决办法 51 4 5 调试工具及测试仪器 56 5 产品说明 57 5 1 产品的性能和应用范围 57 5 2 产品的使用说明 57 总 结 59 致 谢 60 参考文献 61 附录 A 硬件电路图 附录 B 软件程序 附录 C 英文翻译 1 1 绪绪 论论 1 11 1 课题背景 目的及意义课题背景 目的及意义 随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发 展 促使信号发生器种类增多 性能提高 尤其随着 70 年代微处理器的出现 更 促使信号发生器向着自动化 智能化方向发展 现在 许多信号发生器带有微处理 器 因而具备了自校 自检 自动故障诊断和自动波形形成和修正等功能 可以和 控制计算机及其他测量仪器一起方便的构成自动测试系统 当前信号发生器总的趋 势是向着宽频率覆盖 低功耗 高频率精度 多功能 自动化和智能化方向发展 在科学研究 工程教育及生产实践中 如工业过程控制 教学实验 机械振 动试验 动态分析 材料试验 生物医学等领域 常常需要用到低频信号发生器 而在我们日常生活中 以及一些科学研究中 锯齿波和正弦波 矩形波信号是常用 的基本测试信号 譬如在示波器 电视机等仪器中 为了使电子按照一定规律运动 以利用荧光屏显示图像 常用到锯齿波产生器作为时基电路 信号发生器作为一种 通用的电子仪器 在生产 科研 测控 通讯等领域都得到了广泛的应用 但市 面上能看到的仪器在频率精度 带宽 波形种类及程控方面都已不能满足许多方面 实际应用的需求 加之各类功能的半导体集成芯片的快速生产 都使我们研制一种 低功耗 宽频带 能产生多种波形并具有程控等低频的信号发生器成为可能 便携式和智能化越来越成为仪器的基本要求 对传统仪器的数字化 智能化 集成化也就明显得尤为重要 平时常用信号源产生正弦波 方波 三角波等常见波 形作为待测系统的输入 测试系统的性能 单在某些场合 我们需要特殊波形对系 统进行测试 这是传统的模拟信号发生器和数字信号发生器很难胜任的 利用单片 机的强大功能 设计合适的人机交互界面 使用户能够通过手动的设定 设置所需 波形 该设计课题的研究和制作全面说明对低频信号发生系统要有一个全面的解 对 低频信号的发生原理要理解掌握 以及低频信号发生器工作流程 波形的设定 D A 转换 单片机 51 单片机 显示电路 键盘控制 显示和各模块的连接通信 等各个部分要熟练联接调试 能够正确的了解常规芯片的使用方法 掌握简单信号 发生器应用系统软硬件的设计方法 进一步锻炼了我们在信号处理方面的实际工作 能力 1 21 2 设计要求和任务设计要求和任务 1 能产生频率范围在 200HZ 1000HZ 的常见信号 2 电路板性价比高 可靠性强 3 人机界面友好 使用灵活方便 操作简单明了 2 2 便携式低频信号发生器的方案研究便携式低频信号发生器的方案研究 2 12 1 方案提出和论证方案提出和论证 方案 1 采用 AT89C51 单片机和 DAC0832 芯片 直接连接键盘和显示图 2 1 P0 AT89C51 P2 P1 P3 LCD 显示器 4 6 键盘 D A 转换 芯片 图 2 1 方案 1 电路原理图 该种方案主要对 AT89C51 单片机的各个 I O 口充分利用 P2 0 P2 3 和 P3 0 P3 3 是连接 4 6 的键盘 在 P0 口接显示电路 P1 口连接 DAC0832 输出波形 这样总体 来说 能对单片机各个接口都利用上 而不在多用其它芯片 从而减小了系统的成本 也 对按照系统便携式低频信号发生器的要求所完成 占用空间小 使用芯片少 低功耗 其缺点就是在考虑以后发展和改进的时候 单片机数据接口都被占用了 那么很难 进行改进和进一步发展 在对系统驱动和数据的存储有一定的困难 方案 2 采用芯片 8255 对 AT89C51 进行扩展 其中使用 74LS373 来驱动 并且加了一个 74LS138 译码器 8255 的 PA 口和 12864LCD 显示器连接 PB0 PB5 和 PC0 PC3 连接 4 6 的 键盘 AT89C51 的 P1 连接 DAC0832 来显示波形 电路连接如图 2 2 此方案主要用到了 8255 对单片机的扩展 在功耗低 型号小的要求下 用 8255 扩展 在 本来 I O 接口刚好够用的情况下 多余几个接口 以后在系统电路改进或发展上都有着 很好的作用 在编辑程序上对各个 I O 口地址上有了明确的划分 容易编程和改进电路 LCD 显示器 D A 转换 芯片 P0 AT89C51 P2 P1 P3 8225 键盘 控制 图 2 2 方案 2 电路图 通过对这两个方案的介绍和说明 在系统整体上方案 2 明显优于方案 1 所以本次设 计选用方案 2 作为本系统的最终方案 2 22 2 模块结构划分模块结构划分 本次设计所研究的就是对所需要的某种波形输出对应的数字信号 在通过 D A 转换器和单片机部分的转换输出一组连续变化的 0 5V 的电压脉冲值 在通过显示 部分显示其频率 幅值 和波形 在设计时分块来做 按照波形设定 D A 转换 51 单片机连接 键盘控制和显示五个模块的设计 最后通过联调仿真 做出电路 板成品 从而简化人机交互的问题 具体设计模块如图 2 3 图 2 3 系统模块图 模块介绍 1 波形设定 对任意波形的手动设定 2 D A 转换 主要选用 DAC0832 来把数字信号转换为模拟信号 在送入单片机进 行处理 3 单片机部分 最小系统和 8255 的扩展 4 键盘 用 4 6 的键盘来控制输出波形的种类和数值的输入 5 显示部分 采用 128 64 点阵式 LCD 显示波形的频率和形状 系统要求是便携式低功耗的 所以在硬件电路建立前首先粗略计算一下整个系 统所需的功耗 考虑单片机部分 有最小系统 D A 转换 键盘接口 扩展部分显 示等部分 的功耗大小 机器体积小 价格便宜 耗电少 频率适中 便于携带 3 3 各模块具体设计各模块具体设计 3 13 1 AT89C51AT89C51 单片机介绍单片机介绍 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器 FPEROM Falsh Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS8 位微处理 器 俗称单片机 该器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准 的 MCS 51 指令集和输出管脚相兼容 由于将多功能 8 位 CPU 和闪烁存储器组合在单个 芯片中 ATMEL 的 AT89C51 是一种高效微控制器 为很多嵌入式控制系统提供了一种灵 活性高且价廉的方案 图 3 1 是常用的一种单片机 型号为 AT89C51 它将计算机的功能都集成到这个芯 片内部去了 就这么一个小小的芯片就能构成一台小型的电脑 因此叫做单片机 图 3 1 AT89C51 芯片 它有 40 个管脚 分成两排 每一排各有 20 个脚 其中左下角标有箭头的为第 1 脚 然后按逆时针方向依次为第 2 脚 第 3 脚 第 40 脚 在 40 个管脚中 其中有 32 个脚可用于各种控制 比如控制小灯的亮与灭 控制 电机的正转与反转 控制电梯的升与降等 这 32 个脚叫做单片机的 端口 在单片 机技术中 每个端口都有一个特定的名字 比如第一脚的那个端口叫做 P1 0 AT89C51 单片机的功能 1 主要特性 与 MCS 51 兼容 4K 字节可编程闪烁存储器 寿命 1000 写 擦循环 数据保留时间 10 年 全静态工作 0Hz 24Hz 三级程序存储器锁定 128 8 位内部 RAM 32 可编程 I O 线 两个 16 位定时器 计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2 管脚说明 图 3 2 图 3 2 AT89C51 管脚分布 VCC 供电电压 GND 接地 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸收 8TTL 门电流 当 P1 口的 管脚第一次写 1 时 被定义为高阻输入 P0 能够用于外部程序数据存储器 它 可以被定义为数据 地址的第八位 在 FIASH 编程时 P0 口作为原码输入口 当 FIASH 进行校验时 P0 输出原码 此时 P0 外部必须被拉高 P1 口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲器能接收输出 4TTL 门电流 P1 口管脚写入 1 后 被内部上拉为高 可用作输入 P1 口被外部 下拉为低电平时 将输出电流 这是由于内部上拉的缘故 在 FLASH 编程和校验 时 P1 口作为第八位地址接收 P2 口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可接收 输出 4 个 TTL 门电流 当 P2 口被写 1 时 其管脚被内部上拉电阻拉高 且作为输 入 并因此作为输入时 P2 口的管脚被外部拉低 将输出电流 这是由于内部上 拉的缘故 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时 P2 口输出地址的高八位 在给出地址 1 时 它利用内部上拉优势 当对外部 八位地址数据存储器进行读写时 P2 口输出其特殊功能寄存器的内容 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号 P3 口 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收输出 4 个 TTL 门电流 当 P3 口写入 1 后 它们被内部上拉为高电平 并用作输入 作为输入 由于 外部下拉为低电平 P3 口将输出电流 ILL 这是由于上拉的缘故 P3 口也可作为 AT89C51 的一些特殊功能口 P3 口管脚备选功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INT0 外部中断 0 P3 3 INT1 外部中断 1 P3 4 T0 记时器 0 外部输入 P3 5 T1 记时器 1 外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 P3 口同时为闪烁编程和编程校验接收一些控制信号 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机器周期的高电平时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址的地位字 节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不变的频率周 期输出正脉冲信号 此频率为振荡器频率的 1 6 因此它可用作对外部输出的脉 冲或用于定时目的 然而要注意的是 每当用作外部数据存储器时 将跳过一 个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此时 ALE 只有在执 行 MOVX MOVC 指令是 ALE 才起作用 另外 该引脚被略微拉高 如果微处理器在 外 部执行状态 ALE 禁止 置位无效 PSEN 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机器周期 两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号将不出 现 EA VPP 当 EA 保持低电平时 则在此期间外部程序存储器 0000H FFFFH 不管 是否有内部程序存储器 注意加密方式 1 时 EA 将内部锁定为 RESET 当 EA 端保持高电平时 此间内部程序存储器 在 FLASH 编程期间 此引脚也用于施 加 12V 编程电源 VPP XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器的输出 3 振荡器特性 XTAL1 和 XTAL2 分别为反向放大器的输入和输出 该反向放大器可以配置为片内振 荡器 石晶振荡和陶瓷振荡均可采用 如采用外部时钟源驱动器件 XTAL2 应不接 有 余输入至内部时钟信号要通过一个二分频触发器 因此对外部时钟信号的脉宽无任何 要求 但必须保证脉冲的高低电平要求的宽度 4 芯片擦除 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合 并保持 ALE 管脚处于低电平 10ms 来完成 在芯片擦操作中 代码阵列全被写 1 且在任何非空 存储字节被重复编程以前 该操作必须被执行 此外 AT89C51 设有稳态逻辑 可以在低到零频率的条件下静态逻辑 支持两种软 件可选的掉电模式 在闲置模式下 CPU 停止工作 但 RAM 定时器 计数器 串口和 中断系统仍在工作 在掉电模式下 保存 RAM 的内容并且冻结振荡器 禁止所用其他 芯片功能 直到下一个硬件复位为止 5 复位电路 图 3 3 MCS 51 单片机复位电路是指单片机的初始化操作 单片机启运运行时 都需要先 复位 其作用是使 CPU 和系统中其他部件处于一个确定的初始状态 并从这个状态开 始工作 因而 复位是一个很重要的操作方式 但单片机本身是不能自动进行复位的 必须配合相应的外部电路才能实现 图 3 3 复位电路 1 复位功能 复位电路的基本功能是 系统上电时提供复位信号 直至系统电源 稳定后 撤销复位信号 为可靠起见 电源稳定后还要经一定的延时才撤销复位信号 以防电源开关或电源插头分 合过程中引起的抖动而影响复位 单片机的复位是由外部的复位电路来实现的 片内复位电路是复位引脚 RST 通过 一个斯密特触发器与复位电路相连 斯密特触发器用来抑制噪声 它的输出在每个机 器周期的 S5P2 由复位电路采样一次 复位电路通常采用上电自动复位 如图 3 4 a 和按钮复位 如图 3 4 b 两种方式 图 3 4 RC 复位电路 2 单片机复位后的状态 单片机的复位操作使单片机进入初始化状态 其中包括 使程序计数器 PC 0000H 这表明程序从 0000H 地址单元开始执行 单片机冷启动后 片内 RAM 为随机值 运行中的复位操作不改变片内 RAM 区中的内容 21 个特殊功能寄 存器复位后的状态为确定值 见表 1 值得指出的是 记住一些特殊功能寄存器复位后的主要状态 对于了解单片机的 初态 减少应用程序中的初始化部分是十分必要的 说明 表中符号 为随机状态 表 1 寄存器复位后状态表 特殊功能寄存器初始状态特殊功能寄存器初始状态初始状态 A A B B PSWPSW SPSP DPLDPL DPHDPH P0P0 P3P3 IPIP IEIE 00H 00H 00H 07H 00H 00H FFH 00000B 0 00000B TMOD TCON TH0 TL0 TH1 TL1 SBUF SCON PCON 00H 00H 00H 00H 00H 00H 不定 00H 0 B PSW 00H 表明选寄存器 0 组为工作寄存器组 SP 07H 表明堆栈指针指向片 内 RAM 07H 字节单元 根据堆栈操作的先加后压法则 第一个被压入的内容写入到 08H 单元中 Po P3 FFH 表明已向各端口线写入 1 此时 各端口既可用于输入又可用于 输出 IP 00000B 表明各个中断源处于低优先级 IE 0 00000B 表明 各个中断均被关断 系统复位是任何微机系统执行的第一步 使整个控制芯片回到默 认的硬件状态下 51 单片机的复位是由 RESET 引脚来控制的 此引脚与高电平相接超过 24 个振荡周 期后 51 单片机即进入芯片内部复位状态 而且一直在此状态下等待 直到 RESET 引 脚转为低电平后 才检查 EA 引脚是高电平或低电平 若为高电平则执行芯片内部的程 序代码 若为低电平便会执行外部程序 51 单片机在系统复位时 将其内部的一些重 要寄存器设置为特定的值 至于内部 RAM 内部的数据则不变 6 晶振电路 晶振是晶体振荡器的简称 在电气上它可以等效成一个电容和一个电阻并联再串 联一个电容的二端网络 电工学上这个网络有两个谐振点 以频率的高低分其中较低 的频率是串联谐振 较高的频率是并联谐振 AT89C51 单片机内部有一个用于构成振荡器的高增益反相放大器 引脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输出端 这个放大器与作为反馈元件的片外晶体谐振 器一起构成一个自激振荡器 外接晶体谐振器以及电容 C1 和 C2 构成并联谐振电路 接在放大器的反馈回路中 对外接电容的值虽然没有严格的要求 但电容的大小会影 响震荡器频率的高低 震荡器的稳定性 起振的快速性和温度的稳定性 因此 此系 统电路的晶体振荡器的值为 12MHz 电容应尽可能的选择陶瓷电容 电容值约为 30 F 在焊接刷电路板时 晶体振荡器和电容应尽可能安装得与单片机芯片靠近 以 减少寄生电容 更好地保证震荡器稳定和可靠地工作 晶振有一个重要的参数 那就是负载电容值 选择与负载电容值相等的并联电容 就可以得到晶振标称的谐振频率 晶体振荡电路如图 3 5 图 3 5 晶振电路 3 23 2 最小应用系统最小应用系统 单片机最小系统 或者称为最小应用系统 是指用最少的元件组成的单片机可以工 作的系统 对 51 系列单片机来说 最小系统一般应该包括 单片机 晶振电路 复位电 路 下面给出一个 51 单片机的最小系统电路图 图 3 6 在智能化仪器仪表中 控制核心均为微处理器 而单片机以高性能 高速度 体 积小 价格低廉 稳定可靠而得到广泛应用 是设计智能化仪器仪表的首选微控制器 单片机结合简单的晶体振荡电路和复位电路即可构成单片机最小系统 它是智能化仪 器仪表的基础 也是测控 监控的重要组成部分 图 3 6 最小系统电路图 下面是用单片机和八个数码管来实现流水灯的仿真 图 3 7 图 3 7 流水灯仿真图 下图 3 8 为流水灯程序在 KEIL 中进行编译 图 3 8 流水灯程序编译 流水灯程序 ORG 0000H START MOV P1 01111111B LCALL DELAY MOV P1 10111111B LCALL DELAY MOV P1 11011111B LCALL DELAY MOV P1 11101111B LCALL DELAY MOV P1 11110111B LCALL DELAY MOV P1 11111011B LCALL DELAY MOV P1 11111101B LCALL DELAY MOV P1 11111110B LCALL DELAY MOV P1 11111111B AJMP START DELAY MOV R4 2 L3 MOV R2 250 L1 MOV R3 250 L2 DJNZ R3 L2 DJNZ R2 L1 DJNZ R4 L3 RET END 3 33 3 82558255 扩展电路扩展电路 8255 是 Intel 公司生产的可编程并行 I O 接口芯片 有 3 个 8 位并行 I O 口 具 有 3 个通道 3 种工作方式的可编程并行接口芯片 40 引脚 其各口功能可由软件选 择 使用灵活 通用性强 8255 可作为单片机与多种外设连接时的中间接口电路 当 8255 作为主机与外设的连接芯片 必须提供与主机相连的 3 个总线接口 即数据线 地址线 控制线接口 同时必须具有与外设连接的接口 A B C 口 由于 8255 可编程 所 以必须具有逻辑控制部分 因而 8255 内部结构分为 3 个部分 与 CPU 连接部分 与外 设连接部分 控制部分 1 与 CPU 连接部分 根据定义 8255 能并行传送 8 位数据 所以其数据线为 8 根 D0 D7 由于 8255 具 有 3 个通道 A B C 所以只要两根地址线就能寻址 A B C 口及控制寄存器 故地址 线为两根 A0 A1 此外 CPU 要对 8255 进行读 写与片选操作 所以控制线为片选 复 位 读 写信号 各信号的引脚编号如下 1 数据总线 DB 编号为 D0 D7 用于 8255 与 CPU 传送 8 位数据 2 地址总线 AB 编号为 A0 A1 用于选择 A B C 口与控制寄存器 3 控制总线 CB 片选信号 复位信号 RST 写信号 读信号 当 CPU 要对 8255 进行读 写操作时 必须先向 8255 发片选信号选中 8255 芯片 然 后发读信号或写信号对 8255 进行读或写数据的操作 2 与外设连接部分 根据定义 8255 有 3 个通道 A B C 与外设连接 每个通道又有 8 根线与外设连 接 所以 8255 可以用 24 根线与外设连接 若进行开关量控制 则 8255 可同时控制 24 路开关 各通道的引脚编号如下 1 A 口 编号为 PA0 PA7 用于 8255 向外设输入输出 8 位并行数据 2 B 口 编号为 PB0 PB7 用于 8255 向外设输入输出 8 位并行数据 3 C 口 编号为 PC0 PC7 用于 8255 向外设输入输出 8 位并行数据 当 8255 工 作于应答 I O 方式时 C 口用于应答信号的通信 3 控制器 8255 将 3 个通道分为两组 即 PA0 PA7 与 PC4 PC7 组成 A 组 PB0 PB7 与 PC0 PC3 组成 B 组 如图 7 5 所示 相应的控制器也分为 A 组控制器与 B 组控制器 各组控制器的作用如下 1 A 组控制器 控制 A 口与上 C 口的输入与输出 2 B 组控制器 控制 B 口与下 C 口的输入与输出 8255 是一个 40 引脚的双列直插式芯片 图 3 9 为 8255 的引脚图 8255 与 CPU 的 连接方式是多种多样的 本节以 AT89C52 与 8255 的连接为例说明 8255 与 CPU 的连接 方法 同时也介绍 8255 各芯片引脚的功能与作用 图 3 9 8255 的引脚图 引脚说明 RESET 复位输入线 当该输入端外于高电平时 所有内部寄存器 包括控制寄存 器 均被清除 所有 I O 口均被置成输入方式 CS 片选信号线 当这个输入引脚为低电平时 表示芯片被选中 允许8255 与 CPU 进行通讯 RD 读信号线 当这个输入引脚为低电平时 允许8255 通过数据总线向 CPU 发 送数据或状态信息 即 CPU 从 8255 读取信息或数据 WR 写入信号 当这个输入引脚为低电平时 允许CPU 将数据或控制字写 8255 D0 D7 三态双向数据总线 8255 与 CPU 数据传送的通道 当 CPU 执行输入输 出指令时 通过它实现 8 位数据的读 写操作 控制字 和状态信息也通过 数据总线传送 PA0 PA7 端口 A 输入输出线 一个 8 位的数据输出锁存器 缓冲器 一个 8 位 的数据输入锁存器 PB0 PB7 端口 B 输入输出线 一个 8 位的 I O 锁存器 一个 8 位的输入输出 缓冲器 PC0 PC7 端口 C 输入输出线 一个 8 位的数据输出锁存器 缓冲器 一个 8 位 的数据输入缓冲器 端口 C 可以通过工作方式设定而分成 2 个 4 位的端口 每个 4 位的端口包含一个 4 位的锁存器 分别与端口 A 和端口 B 配合使 用 可作为控制信号输出或状态信号输入端口 图 3 10 为 8255 与 AT89C52 的连接图 由于 AT89C52 与 8255 的连接就是 3 总线的 连接 因此 下面将以 3 总线形式讲述连接方法 74LS373 为锁存驱动芯片 74LS138 为译码器 图 3 10 8255 与 AT89C52 的连接图 1 数据总线 DB 引脚 8255 的数据总线 DB 有 8 根 D0 D7 因为 AT89C52 用其 P0 口作为数据总线口 所以 AT89C52 与 8255 数据线连接为 AT89C52 的 P0 0 P0 7 与 8255 的 D0 D7 连接 如图 3 6 所示 2 地址总线 AB 引脚 8255 的地址线 AB 有两根 A0 A1 A0 A1 通过 74HC373 锁存器与 AT89C52 的 P0 0 P0 1 连接 A1A0 取 00 11 值 可选择 A B C 口与控制寄存器 选择方法如 下 1 A1A0 00 选择 A 口 2 A1A0 01 选择 B 口 3 A1A0 10 选择 C 口 4 A1A0 11 选择控制寄存器 3 片选信号 CS 片选信号 CS 由 P2 5 P2 7 经 138 译码器 Y7 产生 若要选中 8255 则 Y7 必须有 效 此时 P2 7P2 6P2 5 111 由此可推知各口地址如下 1 A 口 111x x00 E000H 当 x x 0 0 时 2 B 口 111x x01 E001H 当 x x 0 0 时 3 C 口 111x x10 E002H 当 x x 0 0 时 4 控制口 111x x11 E003H 当 x x 0 0 时 其中 x x 表示取值可任意 以各口地址不唯一 为了今后叙述方便 后面程序 中 8255 的地址将全部使用 E000H E003H 注意 此处要说明的是单片机与 8255 的连接方法是多种多样的 8255 各口地址也随连 接方式而变化 因此 在使用不同单片机系统时 8255 的各口地址不会是上面所推导 的 E000H E003H 1 读信号 8255 的读信号与 AT89C52 的相连 2 写信号 8255 的写信号与 AT89C52 的相连 3 复位信号 RST 8255 的复位信号 RST 与 AT89C52 的 RST 相连 4 3 个通道引脚 1 A 口的 8 个引脚 PA0 PA7 与外设连接 用于 8 位数据的输入与输出 2 B 口的 8 个引脚 PB0 PB7 与外设连接 用于 8 位数据的输入与输出 3 C 口的 8 个引脚 PC0 PC7 与外设连接 用于 8 位数据的输入与输出或通信 线 8255 的工作方式 由 8255 的定义可知 8255 有 3 种工作方式 这 3 种工作方式如表 1 所示 方式 0 为基本 I O 输入 输出方式 这是 8255 最常用 也是最基本的工作方式 方式 1 为应 答 I O 方式 当 8255 工作于应答 I O 方式时 上 C 口作为 A 口的通信线 下 C 口作为 B 口的通信线 方式 2 为双向应答 I O 方式 此方式仅 A 口使用 B 口无双向 I O 应答 方式 8255 的 3 种工作方式的选择由 8255 工作方式选择字决定 下面介绍 8255 的工 作方式选择字 表 2 8255 的工作方式 接口方式ABC 方式 0 方式 1 方式 2 基本 I O 方式 应答 I O 方式 双向应答 I O 方式 基本 I O 方式 应答 I O 方式 无 I O 方式 通信线 通信线 工作方式选择字 8255 工作方式选择字共 8 位 如图 3 11 所示 存放在 8255 控制寄存器中 最高 位 D7 为标志位 D7 1 表示控制寄存器中存放的是工作方式选择字 D7 0 表示控制 寄存器中存放的是 C 口置位 复位控制字 D3 D6 用于 A 组的控制 D6D5 00 表示 A 组工作于基本 I O 方式 0 D6D5 01 表示 A 组工作于应答 I O 方式 1 D6D5 1x 表示 A 组工作于双向应答 I O 方式 2 x 取 0 或 1 D4 1 表示 A 口工作于输入方式 D4 0 表示 A 口工作于输出方式 D3 1 表示上 C 口工作于输入方式 D3 0 表示上 C 口工作于输出方式 图 3 11 8255 的工作方式选择字 D0 D2 用于 B 组的控制 各位含义如图 3 所示 D2 0 表示 B 组工作于基本 I O 方式 0 D2 1 表示 B 组工作于应答 I O 方式 1 D1 1 表示 B 口工作于输入方式 D1 0 表示 B 口工作于输出方式 D0 1 表示下 C 口工作于输入方式 D0 0 表示下 C 口工作于输出方式 工作方式字应输入控制寄存器 按上面的连接方式 控制寄存器 的地址为 E003H C 口置 复位控制字 8255 的 C 口可进行位操作 即可对 8255C 口的每一位进行置位或清 0 操作 该操 作是通过设置 C 口置 复位字实现的 C 口置 复位字共 8 位 各位含义如图 3 12 所示 图 3 12 C 口置 复位控制字 由于 8255 的工作方式选择字与 C 口置 复位字共用一个控制寄存器 故特别设置 D7 为标志位 D7 0 表示控制字为 C 口置 复位字 D7 1 表示控制字为 8255 工作方式 选择字 D6D5D4 不用 常取 000 D3D2D1 为 C 口 8 个引脚 PC0 PC7 的选择位 D3D2D1 000 选择 PC0 D3D2D1 001 选择 PC1 D3D2D1 111 选择 PC7 D0 为置位或清 0 选择 位 D0 0 表示由 D3D2D1 选择的位清 0 D0 1 表示由 D3D2D1 选择的位置 1 C 口置 复位字必须输入 8255 控制寄存器 系统 8255 扩展如图 3 13 采用 8255 扩展芯片 74LS373 锁存芯片和 74LS138 译 码器来对 AT89C51 单片机进行扩展 图 3 13 系统 8255 扩展图 3 43 4 4 64 6 距阵式按键电路距阵式按键电路 键盘如 3 14 4 6 键盘和 4 4 键盘 图在单片机应用系统中 实现输入数据 传 送命令的功能 是人工干预的主要手段 键盘分两大类 编码键盘和非编码键盘 编码键盘 由硬件逻辑电路完成必要的键识别工作与可靠性措施 每按一次键 键盘自动提供被按键的读数 同时产生一选通脉冲通知微处理器 一般还具有反弹跳 和同时按键保护功能 这种键盘易于使用 但硬件比较复杂 对于主机任务繁重之情 况 采用 8279 可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案 非编码键盘 只简单地提供键盘的行列与矩阵 其他操作如键的识别 决定按键 的读数等仅靠软件完成 故硬件较为简单 但占用 CPU 较多时间 有 独立式按键结 构 矩阵式按键结构 键盘系统设计 首先 确定键盘编码方案 采用编码键盘或非编码键盘 随后 确定键盘工作方式 采用中断或查询方式输入键操作信息 然后 设计硬件电路 非编码键盘系统中 键 闭合和键释放的信息的获取 键抖动的消除 键值查找及一些保护措施的实施等任务 均由软件来完成 图 3 14 4 6 键盘和 4 4 键盘 1 非编码键盘的键输入程序应完成的基本要求 1 监测有无键按下 键的闭合与否 反映在电压上就是呈现出高电平或低电平 所以通过电平的高低状态的检测 便可确认按键按下与否 2 判断是哪个键按下 3 完成键处理任务 2 从电路或软件的角度应解决的问题 1 消除抖动影响 键盘按键所用开关为机械弹性开关 利用了机械触点的合 断 作用 由于机械触点的的弹性作用 一个按键开关在闭合和断开的瞬间均有一 连串的抖动 抖动时间的长短由按键的机械特性决定 一般为 5 10ms 这是一个很重要的参数 抖动过程引起电平信号的波动 有可能令 CPU 误解为多次按键操作 从而引起误处理 为了确保 CPU 对一次按键动作只确认一次按键 必须消除抖动的影响 按键的消 抖 通常有软件 硬件两种消除方法 消抖硬件 这种方法只适用于键的数目较少的情况 软件消抖 如果按键较多 硬件消抖将无法胜任 常采用软件消抖 通常采用 软件延时的方法 在第一次检测到有键按下时 执行一段延时 10ms 的子程序后 再确 认电平是否仍保持闭合状态电平 如果保持闭合状态电平 则确认真正有键按下 进 行相应处理工作 消除了抖动的影响 这种消除抖动影响的软件措施是切实可行的 2 采取串键保护措施 串键 是指同时有一个以上的键按下 串键会引起 CPU 错 误响应 通常采取的策略 单键按下有效 多键同时按下无效 3 处理连击 连击 是一次按键产生多次击键的效果 要有对按键释放的处理 为了消除连击 使得一次按键只产生一次键功能的执行 不管一次按键持续的时 间多长 仅采样一个数据 否则的话 键功能程序的执行次数将是不可预知 由按键时间决定 连击是可以利用的 连击对于用计数法设计的多功能键特别有 效 3 键盘工作方式 单片及应用系统中 键盘扫描只是 CPU 的工作内容之一 CPU 忙于各项任务时 如 何兼顾键盘的输入 取决于键盘的工作方式 考虑仪表系统中 CPU 任务的份量 来确 定键盘的工作方式 键盘的工作方式选取的原则是 既要保证能及时响应按键的操作 又不过多的占 用 CPU 的工作时间 键盘的工作方式有 查询方式 编程扫描 定时扫描方式 中断扫描方式 4 键盘电路结构 1 独立式按键接口设计 独立式按键就是各按键相互独立 每个按键单独占用一根 I O 口线 每根 I O 口 线的按键工作状态不会影响其他 I O 口线上的工作状态 因此 通过检测输入线的电 平状态可以很容易判断哪个按键被按下了 优点 电路配置灵活 软件结构简单 缺点 每个按键需占用一根 I O 口线 在按键数量较多时 I O 口浪费大 电 路结构显得复杂 因此 此键盘是用于按键较少或操作速度较高的场合 也可以用扩展 I O 口搭接独立式按键接口电路 可采用 8255 扩展 I O 口 用三态 缓冲器扩展 这两种配接方式 都是把按键当作外部 RAM 某一工作单元的位来对待 通过读片外 RAM 的方法 识别按键的工作状态 上电路中独立式按键电路 各按键开关均采用了上拉电阻 是为了保证在按键断 开时 各 I O 有确定的高电平 如输入口线内部已有上拉电阻 则外电路的上拉电阻 可省去 2 矩阵式键盘接口设计 矩阵式键盘适用于按键数量较多的场合 由行线和列线组成 按键位于行列的交 叉点上 节省 I O 口 矩阵键盘工作原理 行线通过上拉电阻接到 5V 上 无按键 行线处于高电平状态 有键按下 行线电平状态将由与此行线相连的列线电平决定 列线电平为低 则行线 电平为低 列线电平为高 则行线电平为高 5 双功能及多功能键设计 在单片机应用系统中 为简化硬件线路 缩小整个系统的规模 总希望设置最少 的按键 获得最多的控制功能 矩阵键盘与独立式按键键盘相比 硬件电路大大节省 可通过软件的方法让一键 具有多功能 方法 选择一个 RAM 工作单元 对某一个按键进行按键计数 根据不同 计数值 转到子程序 这种计数多功能键最好与显示器结合用 以便知道当前计数值 同时配合一个启动键 复合键是使用软件实现一键多功能的另一个途径 所谓复合键 就是两个或两个 以上的键的联合 当这些键同时按下时 才能执行相应的功能程序 实际情况做不到 同时按下 他们的时间差别可以长到 50ms 解决策略是 定义一个或两个引导键 这些引导键按下时没什么意义 执行空操作 引导键的例子 微机键盘上的 CTRL SHIFT ALT 缺点 一是操作变得复杂 二是操作时间变长 多功能键的利用 应具体情况具体分析 要求速度的场合最好做一键一功能 如 果系统功能很多 一键一功能不现实 可采取一键多功能 6 功能开关及拨码盘接口设计 设计原因 键盘输入灵活性大 操纵方便 但某些重要功能或数据由键盘输入 误操作将产生一些不良后果 因此常设定静态开关的方法来执行这些功能或输入数据 静态开关一经设定 将不再改变 一直维持设定的开关状态 通常这些开关状态是在 单片机系统加电时由 CPU 读入内存 RAM 的 以后 CPU 将不再关注这些开关的状态 因 此 即使加电后 这些开关的状态发生变化 也不会影响 CPU 的正常工作 只有在下 一次加电时 这些新状态才能生效 1 功能开关 主要是根据开关的状态执行一些重要的功能 2 拨码盘 单片机应用系统中 有时要输入一些控制参数 这些参数一经设定 将维持不变 除非给系统断电后重新设定 这时使用数字拨码盘既简单直观 又方便 可靠 7 按键介绍 常用的按键有三种 机械触点式按键 导电橡胶式和柔性按键 又称触摸式键盘 机械触点式按键是利用弹性使键复位 手感明显 连线清晰 工艺简单 适合单 件制造 但是触点处易侵入灰尘而导致接触不良 体积相对较大 导电橡胶按键是利用橡胶的弹性来复位 通过压制的方法把面板上所有的按键制 成一块 体积小 装配方便 适合批量生产 但是时间长了 橡胶老化而使弹力下降 同时易侵入灰尘 柔性按键是近年来迅速发展的一种新型按键 可以分为凸球型和平面型两种 凸 球型动作幅度触感明显 富有立体感 但制造工艺相对复杂 平面型幅度微小 触感 较弱 但工艺简单 寿命长 柔性按键最大特点是防尘 防潮 耐蚀 外形美观 装 嵌方便 而且外形和面板的布局 色彩 键距可按照整机的要求来设计 本系统的 4 6 键盘硬件电路如图 3 15 图 3 15 4 6 键盘硬件电路如图 4 6 键盘扫描与处理程序编译如图 3 16 图 3 16 4 6 键盘扫描与处理程序编译 4 6 键盘扫描程序 KEYNAME DATA 28H CTCO PUSH PSW PUSH ACC PUSH DPL PUSH DPH SETB RS0 SETB RS1 MOV A 11000000B MOV DPTR 8801H MOVX DPTR A INC DPTR MOVX A DPTR ORL A 0F0H XRL A 0FFH JZ SNOKEY LCALL DELAY10 MOVX A DPTR ORL A 0F0H XRL A 0FFH JZ SNOKEY MOV R7 06H MOV R6 10111111B KEYLOOP MOV A R6 RR A MOV R6 A MOV DPTR 8801H MOVX DPTR A INC DPTR MOVX A DPTR JNB ACC 0 PC0 JNB ACC 1 PC1 JNB ACC 2 PC2 JNB ACC 3 PC3 DJNZ R7 KEYLOOP SNOKEY LJMP NOKEY PC0 MOV R5 00H SJMP KEYNO PC1 MOV R5 01H SJMP KEYNO PC2 MOV R5 02H SJMP KEYNO PC3 MOV R5 03H SJMP KEYNO KEYNO DEC R7 MOV A R7 RL A RL A ADD A R5 MOV R5 A MOV A 11000000B MOV DPTR 8801H MOVX DPTR A INC DPTR KEYLOOP2 MOVX A DPTR ORL A 0F0H XRL A 0FFH JNZ KEYLOOP2 MOV A R5 MOV DPTR KEY MOVC A A DPTR MOV KEYNAME A SJMP KEYRE NOKEY MOV A 11000000B MOV DPTR 8801H MOVX DPTR A MOV KEYNAME 0FFH KEYRE POP DPH POP DPL POP ACC POP PSW RETI DELAY10 MOV R6 10H

温馨提示

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

评论

0/150

提交评论