便携式低频发生器.doc_第1页
便携式低频发生器.doc_第2页
便携式低频发生器.doc_第3页
便携式低频发生器.doc_第4页
便携式低频发生器.doc_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

便携式低频信号发生器 I 目 录 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 软件程序 第 1 页 共 61 页 1 1 绪绪 论论 1 11 1 课题背景 目的及意义课题背景 目的及意义 随着电子测量及其他部门对各类信号发生器的广泛需求及电子 技术的迅速发展 促使信号发生器种类增多 性能提高 尤其随着 70 年代微处理器的出现 更促使信号发生器向着自动化 智能化方向发 展 现在 许多信号发生器带有微处理器 因而具备了自校 自检 自动故障诊断和自动波形形成和修正等功能 可以和控制计算机及其 他测量仪器一起方便的构成自动测试系统 当前信号发生器总的趋势 是向着宽频率覆盖 低功耗 高频率精度 多功能 自动化和智能化 方向发展 在科学研究 工程教育及生产实践中 如工业过程控制 教学 实验 机械振动试验 动态分析 材料试验 生物医学等领域 常常 需要用到低频信号发生器 而在我们日常生活中 以及一些科学研究 中 锯齿波和正弦波 矩形波信号是常用的基本测试信号 譬如在示 波器 电视机等仪器中 为了使电子按照一定规律运动 以利用荧光 屏显示图像 常用到锯齿波产生器作为时基电路 信号发生器作为一 种通用的电子仪器 在生产 科研 测控 通讯等领域都得到了广泛 的应用 但市面上能看到的仪器在频率精度 带宽 波形种类及程控 方面都已不能满足许多方面实际应用的需求 加之各类功能的半导体 集成芯片的快速生产 都使我们研制一种低功耗 宽频带 能产生多 种波形并具有程控等低频的信号发生器成为可能 便携式和智能化越来越成为仪器的基本要求 对传统仪器的数字 化 智能化 集成化也就明显得尤为重要 平时常用信号源产生正弦 波 方波 三角波等常见波形作为待测系统的输入 测试系统的性能 单在某些场合 我们需要特殊波形对系统进行测试 这是传统的模拟 信号发生器和数字信号发生器很难胜任的 利用单片机的强大功能 设计合适的人机交互界面 使用户能够通过手动的设定 设置所需波 形 第 2 页 共 61 页 该设计课题的研究和制作全面说明对低频信号发生系统要有一个全 面的解 对低频信号的发生原理要理解掌握 以及低频信号发生器工作 流程 波形的设定 D A 转换 单片机 51 单片机 显示电路 键盘控 制 显示和各模块的连接通信等各个部分要熟练联接调试 能够正确 的了解常规芯片的使用方法 掌握简单信号发生器应用系统软硬件的设 计方法 进一步锻炼了我们在信号处理方面的实际工作能力 1 21 2 设计要求和任务设计要求和任务 1 能产生频率范围在 200HZ 1000HZ 的常见信号 2 电路板性价比高 可靠性强 3 人机界面友好 使用灵活方便 操作简单明了 第 3 页 共 61 页 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 第 4 页 共 61 页 此方案主要用到了 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 第 5 页 共 61 页 图 2 3 系统模块图 模块介绍 1 波形设定 对任意波形的手动设定 2 D A 转换 主要选用 DAC0832 来把数字信号转换为模拟信号 在送 入单片机进行处理 3 单片机部分 最小系统和 8255 的扩展 4 键盘 用 4 6 的键盘来控制输出波形的种类和数值的输入 5 显示部分 采用 128 64 点阵式 LCD 显示波形的频率和形状 系统要求是便携式低功耗的 所以在硬件电路建立前首先粗略计算 一下整个系统所需的功耗 考虑单片机部分 有最小系统 D A 转换 键盘接口 扩展部分显示等部分 的功耗大小 机器体积小 价格便宜 耗电少 频率适中 便于携带 第 6 页 共 61 页 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 脚 第 7 页 共 61 页 在 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 第 8 页 共 61 页 图 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 口 第 9 页 共 61 页 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 外部数据存储器读选通 第 10 页 共 61 页 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 将 第 11 页 共 61 页 内部锁定为 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 和系统中其他部件处于一个确定的初 第 12 页 共 61 页 始状态 并从这个状态开始工作 因而 复位是一个很重要的操作方式 但单片机本身是不能自动进行复位的 必须配合相应的外部电路才能实现 图 3 3 复位电路 1 复位功能 复位电路的基本功能是 系统上电时提供复位信号 直至系统电源稳定后 撤销复位信号 为可靠起见 电源稳定后还要经一 定的延时才撤销复位信号 以防电源开关或电源插头分 合过程中引起的 抖动而影响复位 单片机的复位是由外部的复位电路来实现的 片内复位电路是复位引 脚 RST 通过一个斯密特触发器与复位电路相连 斯密特触发器用来抑制噪 声 它的输出在每个机器周期的 S5P2 由复位电路采样一次 复位电路通 常采用上电自动复位 如图 3 4 a 和按钮复位 如图 3 4 b 两种方式 第 13 页 共 61 页 图 3 4 RC 复位电路 2 单片机复位后的状态 单片机的复位操作使单片机进入初始化状 态 其中包括使程序计数器 PC 0000H 这表明程序从 0000H 地址单元开 始执行 单片机冷启动后 片内 RAM 为随机值 运行中的复位操作不改变 片内 RAM 区中的内容 21 个特殊功能寄存器复位后的状态为确定值 见表 1 值得指出的是 记住一些特殊功能寄存器复位后的主要状态 对于 了解单片机的初态 减少应用程序中的初始化部分是十分必要的 说明 表中符号 为随机状态 表 1 寄存器复位后状态表 特殊功能寄存 器 初始状态特殊功能寄存 器 初始状态初始状态 第 14 页 共 61 页 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 内部的数据则不变 第 15 页 共 61 页 6 晶振电路 晶振是晶体振荡器的简称 在电气上它可以等效成一个电容和一个 电阻并联再串联一个电容的二端网络 电工学上这个网络有两个谐振点 以频率的高低分其中较低的频率是串联谐振 较高的频率是并联谐振 AT89C51 单片机内部有一个用于构成振荡器的高增益反相放大器 引 脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输出端 这个放大器与作为 反馈元件的片外晶体谐振器一起构成一个自激振荡器 外接晶体谐振器以 及电容 C1 和 C2 构成并联谐振电路 接在放大器的反馈回路中 对外接电 容的值虽然没有严格的要求 但电容的大小会影响震荡器频率的高低 震 荡器的稳定性 起振的快速性和温度的稳定性 因此 此系统电路的晶体 振荡器的值为 12MHz 电容应尽可能的选择陶瓷电容 电容值约为 30 F 在焊接刷电路板时 晶体振荡器和电容应尽可能安装得与单片机 芯片靠近 以减少寄生电容 更好地保证震荡器稳定和可靠地工作 晶振有一个重要的参数 那就是负载电容值 选择与负载电容值相 等的并联电容 就可以得到晶振标称的谐振频率 晶体振荡电路如图 3 5 第 16 页 共 61 页 图 3 5 晶振电路 3 23 2 最小应用系统最小应用系统 单片机最小系统 或者称为最小应用系统 是指用最少的元件组成的单 片机可以工作的系统 对 51 系列单片机来说 最小系统一般应该包括 单片 机 晶振电路 复位电路 下面给出一个 51 单片机的最小系统电路图 图 3 6 在智能化仪器仪表中 控制核心均为微处理器 而单片机以高性能 高速度 体积小 价格低廉 稳定可靠而得到广泛应用 是设计智能化仪 器仪表的首选微控制器 单片机结合简单的晶体振荡电路和复位电路即可 构成单片机最小系统 它是智能化仪器仪表的基础 也是测控 监控的重 要组成部分 第 17 页 共 61 页 图 3 6 最小系统电路图 下面是用单片机和八个数码管来实现流水灯的仿真 图 3 7 图 3 7 流水灯仿真图 第 18 页 共 61 页 下图 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 第 19 页 共 61 页 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 引脚 第 20 页 共 61 页 其各口功能可由软件选择 使用灵活 通用性强 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 根线与外设连接 若进行开关量控制 第 21 页 共 61 页 则 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 各芯片引脚的功能与作 用 第 22 页 共 61 页 图 3 9 8255 的引脚图 引脚说明 RESET 复位输入线 当该输入端外于高电平时 所有内部寄存器 包 括控制寄存器 均被清除 所有 I O 口均被置成输入方式 CS 片选信号线 当这个输入引脚为低电平时 表示芯片被选中 允 许 8255 与 CPU 进行通讯 RD 读信号线 当这个输入引脚为低电平时 允许 8255 通过数据总 线向 CPU 发送数据或状态信息 即 CPU 从 8255 读取信息或数据 WR 写入信号 当这个输入引脚为低电平时 允许 CPU 将数据或控制 字写 8255 D0 D7 三态双向数据总线 8255 与 CPU 数据传送的通道 当 CPU 执行输入输 出指令时 通过它实现 8 位数据的读 写操作 控制字 和状态信 息也通过 数据总线传送 第 23 页 共 61 页 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 引脚 第 24 页 共 61 页 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 第 25 页 共 61 页 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 方式 通信线 通信线 第 26 页 共 61 页 工作方式选择字 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 第 27 页 共 61 页 操作 该操作是通过设置 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 单片机进行扩展 第 28 页 共 61 页 图 3 13 系统 8255 扩展图 3 43 4 4 64 6 距阵式按键电路距阵式按键电路 键盘如 3 14 4 6 键盘和 4 4 键盘 图在单片机应用系统中 实现输 入数据 传送命令的功能 是人工干预的主要手段 键盘分两大类 编码 键盘和非编码键盘 编码键盘 由硬件逻辑电路完成必要的键识别工作与可靠性措施 每 按一次键 键盘自动提供被按键的读数 同时产生一选通脉冲通知微处理 器 一般还具有反弹跳和同时按键保护功能 这种键盘易于使用 但硬件 比较复杂 对于主机任务繁重之情况 采用 8279 可编程键盘管理接口芯 片构成编码式键盘系统是很实用的方案 第 29 页 共 61 页 非编码键盘 只简单地提供键盘的行列与矩阵 其他操作如键的识别 决定按键的读数等仅靠软件完成 故硬件较为简单 但占用 CPU 较多时间 有 独立式按键结构 矩阵式按键结构 键盘系统设计 首先 确定键盘编码方案 采用编码键盘或非编码键盘 随后 确定 键盘工作方式 采用中断或查询方式输入键操作信息 然后 设计硬件电 路 非编码键盘系统中 键闭合和键释放的信息的获取 键抖动的消除 键值查找及一些保护措施的实施等任务 均由软件来完成 图 3 14 4 6 键盘和 4 4 键盘 1 非编码键盘的键输入程序应完成的基本要求 1 监测有无键按下 键的闭合与否 反映在电压上就是呈现出高电平 或低电平 所以通过电平的高低状态的检测 便可确认按键按下与 否 2 判断是哪个键按下 3 完成键处理任务 2 从电路或软件的角度应解决的问题 第 30 页 共 61 页 1 消除抖动影响 键盘按键所用开关为机械弹性开关 利用了机械触 点的合 断作用 由于机械触点的的弹性作用 一个按键开关在闭 合和断开的瞬间均有一连串的抖动 抖动时间的长短由按键的机械特性决定 一般为 5 10ms 这是一个很 重要的参数 抖动过程引起电平信号的波动 有可能令 CPU 误解为多次按 键操作 从而引起误处理 为了确保 CPU 对一次按键动作只确认一次按键 必须消除抖动的影响 按键的消抖 通常有软件 硬件两种消除方法 消抖硬件 这种方法只适用于键的数目较少的情况 软件消抖 如果按键较多 硬件消抖将无法胜任 常采用软件消抖 通常采用软件延时的方法 在第一次检测到有键按下时 执行一段延时 10ms 的子程序后 再确认电平是否仍保持闭合状态电平 如果保持闭合状 态电平 则确认真正有键按下 进行相应处理工作 消除了抖动的影响 这种消除抖动影响的软件措施是切实可行的 2 采取串键保护措施 串键 是指同时有一个以上的键按下 串键会 引起 CPU 错误响应 通常采取的策略 单键按下有效 多键同时按下 无效 3 处理连击 连击 是一次按键产生多次击键的效果 要有对按键释 放的处理 为了消除连击 使得一次按键只产生一次键功能的执行 不管一次按键持续的时间多长 仅采样一个数据 否则的话 键 功能程序的执行次数将是不可预知 由按键时间决定 连击是可以利 用的 连击对于用计数法设计的多功能键特别有效 第 31 页 共 61 页 3 键盘工作方式 单片及应用系统中 键盘扫描只是 CPU 的工作内容之一 CPU 忙于各 项任务时 如何兼顾键盘的输入 取决于键盘的工作方式 考虑仪表系统 中 CPU 任务的份量 来确定键盘的工作方式 键盘的工作方式选取的原则是 既要保证能及时响应按键的操作 又 不过多的占用 CPU 的工作时间 键盘的工作方式有 查询方式 编程扫描 定时扫描方式 中断扫 描方式 4 键盘电路结构 1 独立式按键接口设计 独立式按键就是各按键相互独立 每个按键单独占用一根 I O 口线 每根 I O 口线的按键工作状态不会影响其他 I O 口线上的工作状态 因此 通过检测输入线的电平状态可以很容易判断哪个按键被按下了 优点 电路配置灵活 软件结构简单 缺点 每个按键需占用一根 I O 口线 在按键数量较多时 I O 口浪费大 电路结构显得复杂 因此 此键盘是用于按键较少或操作速度较高的场合 也可以用扩展 I O 口搭接独立式按键接口电路 可采用 8255 扩展 I O 口 用三态缓冲器扩展 这两种配接方式 都是把按键当作外部 RAM 某一 工作单元的位来对待 通过读片外 RAM 的方法 识别按键的工作状态 第 32 页 共 61 页 上电路中独立式按键电路 各按键开关均采用了上拉电阻 是为了保 证在按键断开时 各 I O 有确定的高电平 如输入口线内部已有上拉电阻 则外电路的上拉电阻可省去 2 矩阵式键盘接口设计 矩阵式键盘适用于按键数量较多的场合 由行线和列线组成 按键位 于行列的交叉点上 节省 I O 口 矩阵键盘工作原理 行线通过上拉电阻接到 5V 上 无按键 行线处 于高电平状态 有键按下 行线电平状态将由与此行线相连的列线电平决 定 列线电平为低 则行线电平为低 列线电平为高 则行线电平为高 5 双功能及多功能键设计 在单片机应用系统中 为简化硬件线路 缩小整个系统的规模 总希 望设置最少的按键 获得最多的控制功能 矩阵键盘与独立式按键键盘相比 硬件电路大大节省 可通过软件的 方法让一键具有多功能 方法 选择一个 RAM 工作单元 对某一个按键进 行按键计数 根据不同计数值 转到子程序 这种计数多功能键最好与显 示器结合用 以便知道当前计数值 同时配合一个启动键 复合键是使用软件实现一键多功能的另一个途径 所谓复合键 就是 两个或两个以上的键的联合 当这些键同时按下时 才能执行相应的功能 程序 实际情况做不到 同时按下 他们的时间差别可以长到 50ms 解 决策略是 定义一个或两个引导键 这些引导键按下时没什么意义 执行 空操作 引导键的例子 微机键盘上的 CTRL SHIFT ALT 缺点 一是操作变得复杂 二是操作时间变长 第 33 页 共 61 页 多功能键的利用 应具体情况具体分析 要求速度的场合最好做一键 一功能 如果系统功能很多 一键一功能不现实 可采取一键多功能 6 功能开关及拨码盘接口设计 设计原因 键盘输入灵活性大 操纵方便 但某些重要功能或数据由 键盘输入 误操作将产生一些不良后果 因此常设定静态开关的方法来执 行这些功能或输入数据 静态开关一经设定 将不再改变 一直维持设定 的开关状态 通常这些开关状态是在单片机系统加电时由 CPU 读入内存 RAM 的 以后 CPU 将不再关注这些开关的状态 因此 即使加电后 这些 开关的状态发生变化 也不会影响 CPU 的正常工作 只有在下一次加电时 这些新状态才能生效 1 功能开关 主要是根据开关的状态执行一些重要的功能 2 拨码盘 单片机应用系统中 有时要输入一些控制参数 这些参数 一经设定 将维持不变 除非给系统断电后重新设定 这时使用数字拨码 盘既简单直观 又方便可靠 7 按键介绍 常用的按键有三种 机械触点式按键 导电橡胶式和柔性按键 又称 触摸式键盘 机械触点式按键是利用弹性使键复位 手感明显 连线清晰 工艺简 单 适合单件制造 但是触点处易侵入灰尘而导致接触不良 体积相对较 大 第 34 页 共 61 页 导电橡胶按键是利用橡胶的弹性来复位 通过压制的方法把面板上所 有的按键制成一块 体积小 装配方便 适合批量生产 但是时间长了 橡胶老化而使弹力下降 同时易侵入灰尘 柔性按键是近年来迅速发展的一种新型按键 可以分为凸球型和平面 型两种 凸球型动作幅度触感明显 富有立体感 但制造工艺相对复杂 平面型幅度微小 触感较弱 但工艺简单 寿命长 柔性按键最大特点是 防尘 防潮 耐蚀 外形美观 装嵌方便 而且外形和面板的布局 色彩 键距可按照整机的要求来设计 本系统的 4 6 键盘硬件电路如图 3 15 图 3 15 4 6 键盘硬件电路如图 4 6 键盘扫描与处理程序编译如图 3 16 第 35 页 共 61 页 图 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 第 36 页 共 61 页 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 第 37 页 共 61 页 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 第 38 页 共 61 页 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 第 39 页 共 61 页 POP PSW RETI DELAY10 MOV R6 10H 按键扫描码 键值对应关系 KEY DB 10H 扫描码为 0 对应键 DB 07H 扫描码为 1 对应键 7 DB 04H 扫描码为 2 对应键 4 DB 01H 扫描码为 3 对应键 1 DB 00H 扫描码为 4 对应键 0 DB 08H 扫描码为 5 对应键 8 DB 05H 扫描码为 6 对应键 5 DB 02H 扫描码为 7 对应键 2 DB 11H 扫描码为 8 对应键 DB 09H 扫描码为 9 对应键 9 DB 06H 扫描码为 10 对应键 6 DB 03H 扫描码为 11 对应键 3 DB 12H 扫描码为 12 对应键 左 第 40 页 共 61 页 DB 16H 扫描码为 13 对应键 ESC DB 0DH 扫描码为 14 对应键 D DB 0AH 扫描码为 15 对应键 A DB 14H 扫描码为 16 对应键 下 DB 15H 扫描码为 17 对应键 上 DB 0EH 扫描码为 18 对应键 E DB 0BH 扫描码为 19 对应键 B DB 13H 扫描码为 20 对应键 右 DB 17H 扫描码为 21 对应键 Enter DB 0FH 扫描码为 22 对应键 F DB 0CH 扫描码为 23 对应键 C END 3 53 5 128 64LCD128 64LCD 显示电路显示电路 AMPIRE12864 点阵式 LCD 图 3 17 是一种图形点阵液晶显示器 它主 要由行驱动器 列驱动器及 128 64 全点阵液晶显示器组成 可完成图形 显示 也可以显示 8 4 个 16 16 点阵 汉字 各管脚功能说明如表 3 第 41 页 共 61 页 图 3 17 AMPIRE12864 点阵式 LCD 第 42 页 共 61 页 表 3 AMPIRE12864 点阵式 LCD 管脚说明 管脚 号 管脚名称 LEVER 管脚功能描述 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VSS VDD V0 D I RS R W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 CS1 CS2 0 5 0V H L H L H L H L H L H L H L H L H L H L H L H L H L 电源地 电源电压 液晶显示器驱动电压 D I H 表示 DB7 D

温馨提示

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

评论

0/150

提交评论