自动充气机中的设计.doc_第1页
自动充气机中的设计.doc_第2页
自动充气机中的设计.doc_第3页
自动充气机中的设计.doc_第4页
自动充气机中的设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

西安工业大学毕业设计西安工业大学毕业设计 作品设计报告书 作品名称 作品名称 单片机在自动充气机中的应用单片机在自动充气机中的应用 申报者姓名 申报者姓名 刘勇刘勇 魏星魏星 石鲤林石鲤林 所在单位 所在单位 机电工程学院机电工程学院 设计题目设计题目 单片机在自动充气机中的应用单片机在自动充气机中的应用 专专 业业 电子信息工程电子信息工程 论文作者论文作者 刘勇刘勇 魏星魏星 石鲤林石鲤林 指导教师指导教师 郭凤德郭凤德 摘摘 要要 本文详细介绍了单片机在自动充气机中的应用 由于单片机具 有集成度高 体积小 运行可靠 应用灵活 价格低 面向控制等 特点 因此在工业控制 数据采集 智能仪器仪表 智能化设备和 各种家用电器等领域得到了广泛应用 而且发展非常迅猛 现在 单片机的应用领域已经遍及几乎所有的领域 为研究单片机在自动 控制领域中的应用 我们以自动充气机系统为依托 进一步揭示单 片机在自动控制系统中的应用价值 关键词关键词 AT89S52 单片机 A D 转换器 1602LCD 液晶显示器 1引言 1 1 研究背景介绍 随着人们生活水平的不断提高 单片机控制在各领域的发展与应用无疑成为 人们追求的目标之一 目前 汽车工业的发展速度很快 传统的轮胎充气设备不 能适应现代化生产规模的要求 研制与轮胎流水作业生产线配套的 机械化 自 动化 节能高效的充气设备是现代化汽车生产企业亟待解决的实际问题 基于 上述两个原因 我们有了研究基于单片机便携式自动控制充气机这一课题的想 法 便携式自动控制充气机具有自动充气和放气功能 气压检测和气压预设功 能 夜间照明 警示功能 体积非常小巧 性能高 无污染气体排放 适合您的 车辆出差 远行 是各车主携带的应急必备工具 1 2 研究价值和意义 本文介绍了单片机在设计制作自动充气机中的工作成果和经验总结 市面 的充放气机大都不是自动的也不是气压可调的 随着人们生活水平的提高 小 汽车将成为家家户户必备的交通工具 再加上生活节奏的加快 时间已是最宝 贵的东西 显然市面上普通手动控制的充气机 将满足不了人们的需求 因此 我们就想到了做一件能够自动充放气的充气机 它能够给人们在使用过程中节 省时间 同时又能够很方便的使用 因为它是全自动的 所以只要把电源一安 上 再设定你所需要气压值 它就会自动地完成任务 并且在充 放气完成之后 将自动停止 因此 研究一个能基于单片机自动控制的自动充 放气机是很有必 要的 下面将对自动充气机的设计原理及设计方案思路 主要是涉及单片机控 制的部分 做详细地介绍 2 系统分析与设计 2 1 设计思路 总体设计思路 1 首先由压力传感器将检测到的车轮胎内部的当前气压参 数 传输到模 数转换器 ADC0832 的一路模拟信号通道 转换出八路数字信号 传给单片机 AT89S52 接着单片机把计算气压值送给 LCD1602 并让它显示当前 气压值 然后键盘输入我们需要的气压值 经单片机 AT89S52 键盘扫描程序读 出键值 并在 LCD1602 上显示出来 接着通过控制核心 单片机 比较当前气压 值与输入的气压值 如果输入值大于当前气压值时 通过单片机发出一个控制 命令驱动电机工作 开始充气 在充气的同时继续对气压进行采样 当两个值 相等时 中断驱动电路 停止充气 而如果当前气压值大于输入值时 单片机 发送控制命令到电磁阀驱动器 开通电磁阀 放气开始 与此同时仍然进行气 压采样 当两值相等时 电磁阀断开 停止放气 在夜间 特别是在有车辆行 驶的路边加气时 我们有照明灯和警示灯 通过特殊功能键可使照明灯发光工 作或警示灯发出警示信号 给使用者的操作带来方便 避免发生交通事故 2 2 设计要求 1 基本要求 检测汽车轮胎内部气压强度 LCD1602液晶显示器显示其检测的参数值和键盘输入设定的气压值 通过单片机控制系统自动控制电动机和电磁阀的工作 2 功能部分 监测轮胎内部的气体压强 通过LCD显示检测到的参数值和设定值 电动机和电磁阀分别控制轮胎的充气 放气 单片机一个指令使得照明灯和警示灯处于工作状态 2 3 总体设计流程 本设计以AT89S52单片机为核心 对所有的数据进行处理 将扫描到的键盘 输入值在LCD1602上显示 并运用ADC0832对气压传感器采集到的模拟数据进行 模数转换 并将转换后的数据传送给单片机进行处理 同时用LCD1602来显示外 部采集到的气压值 如果检测到的气压值小于设定的气压值 则单片机控制充 气工作 若检测到的气压值大于设定的气压值 则TLV5616对单片机处理好的数 据进行数模转换再将转换好的模拟信号传送给电磁阀 电磁阀随着放气的进行 电磁阀的阀门慢慢变小 放气的速度也随着减慢 这样可以减小误差 系统的 总流程图如图2 1所示 比较 相等 初始化 电流采样 压 力传感器 AD 转换 单片机LCD 显示 键盘扫描 驱动电机 充气 电磁阀 放气 停止电机 相等 大于 小于 是 是 否 否 图 2 1 总体流程图 3 单片机控制模块的设计 方案一 采用AT89S52 8位单片机 AT89S52 3 是美国 ATMEL 公司生产的低电压 高性能 CMOS 8 位单片机 片 内含 8k bytes 的可反复擦写的只读程序存储器 PEROM 和 256bytes 的随机 存取数据存储器 RAM 器件采用 ATMEL 公司的高密度 非易失性存储技术生 产 与标准 MCS 51 指令系统及 8052 产品引脚兼容 片内置通用 8 位中央处 理器 CPU 和 Flash 存储单元 功能强大 AT89S52 单片机适合于许多较为复 杂控制应用场合 AT89S52 有 40 个引脚 32 个外部双向输入 输出 I O 端口 同时内含 2 个外中断口 3 个 16 位可编程定时计数器 2 个全双工串行通信口 2 个读写 口线 AT89S52 可以按照常规方法进行编程 也可以在线编程 其将通用的微 处理器和 Flash 存储器结合在一起 特别是可反复擦写的 Flash 存储器可有效 地降低开发成本 AT89S52主要功能特性 1 兼容MCS51指令系统 2 8k可反复擦写 1000次 Flash ROM 3 32个双向I O口等 此单片机是小型电子产品普遍采用的微控芯片 性价比高 在控制领域应 用也比较普遍 方案二 采用高档高位机 凌阳的61单片机 凌阳的16位单片机就是为适应这种发展而设计的 它的CPU内核采用凌阳最 新推出的 nSP Microcontroller and Signal Processor 16位微处理器 芯片 以下简称 nSP 围绕 nSP 所形成的16位 nSP 系列单片机 以下简称 nSP 家族 采用的是模块式集成结构 它以 nSP 内核为中 心集成不同规模的ROM RAM和功能丰富的各种外设接口部件 具有以下等性能 16位 nSP 微处理器 工作电压 CPU VDD为2 4 3 6V I O VDDH为2 4 5 5V CPU时钟 0 32MHz 49 152MHz 内置2K字SRAM 内置32K FLASH 使用凌阳音频编码SACM S240方式 2 4K位 秒 能容纳210秒的语音数 据 32位通用可编程输入 输出端口 7通道10位电压模 数转换器 ADC 和单通道声音模 数转换器 此类单片机功能更强 但是价格比较昂贵 综合本设计所要实现的各部分功能 仅需一片AT89S52单片机就可以满足设 计的需要 因此采用AT89S52作为主控芯片 为了使电路更加紧凑 外部引线更加少 需合理设计整个系统的原理图 2 以便硬件规划与设计 硬件总电路图如图3 1所示 C3 30p C4 30pf Y0 12MHZ R4 10K P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 P3 0 10 P3 1 11 P3 2 12 P3 3 13 P3 4 14 P3 5 15 P3 6 16 P3 7 17 XTAL2 18 XTAL1 19 GND 20 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PSEN 29 ALE 30 EA 31 P0 7 32 P0 6 33 P0 5 34 P0 4 35 P0 3 36 P0 2 37 P0 1 38 P0 0 39 VCC 40 U3 AT89S52 5V 5V CH0 2 CH1 3 CS 1 CLK 7 DI 5 VREF 8 DO 6 GND 4 U2 ADC0832 5v R2 10 5v 5v DIN 1 SCLK 2 CS 3 FS 4 AGND 5 REFIN 6 OUT 7 VDD 8 TLV5616 5V 1 1 2 2 C1 104 1 1 2 2 C2 22u 1 1 2 2 S0 SW PB R1 10K 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 J4 1602 1 2 3 4 5 6 7 8 9 J1 CON9 C5 CAPACITOR 1 2 3 J2 传传传传传 R3 10K R6 RES2 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 K1 RELAY DPDT 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 K2 RELAY DPDT Q1 9013 Q2 9013 5v 100 RES2 1 2 J5 传 10k RES2 A 1 K 2 D1 DIODE R9 50 1 2 J6 传传 1 2 3 4 J7 CON4 Vin 1 GND 2 Vout 3 U1 LM2940 C6220u C7 104 1 2 3 J9 CON3 1 J10 CON1 1 A 2 K D2 LED R10 1k 1 2 3 4 5 6 7 8 J0 CON8 1 2 3 4 5 6 7 8 9 8 10k CON9 K3 XIAOJIDIANQI Vin 1 GND 2 Vout 3 U1 7805 C6220u C7 104 5K RES2 9013 NPN 30 RES2 5V 1 2 J0 传传传 1a 1 1b 2 2a 3 2b 4 3a 5 3b 6 GND 7 4a 8 4b 9 5a 10 5b 11 6a 12 6b 13 VCC 14 Q 74ls04 1 J CON1 D LED D LED R RES2 R RES2 图3 1 硬件总体布局 整个系统的控制核心是AT89S52 因此对单片机的资源要合理分配与利用 单片机的IO口资源分配 表3 1 IO口分配 键盘控制模块 P0 0 P0 7 设置比较的气压值 气压采集模块 P2 4 P2 7 通过ADC0832采集气压 电机模块 充气 P3 3 控制电机的转动 电磁阀 放气 P2 1 P2 3 通过TLV5616控制电磁阀 P1 0 P1 7 LCD数据 LCD模块 P3 0 P3 2 LCD控制信号 照明灯控制 P3 4 控制灯的亮灭 在自动充气机中的各个部分 并不是每一个部分都用到了单片机的控制 由于本文研究的是单片机在自动充气机中应用 因此 对于没有用到单片机的 部分就不做过多的阐述 主要针对有用到单片机的重要部分做详细地阐述 在 自动充气机中的气压检测及模数转换模块 显示模块 键盘输入模块和照明报 警模块都是由单片机来控制 下面将对这四个模块的设计做详细介绍 4 气压检测及 A D D A模块的设计 4 1 气压检测 通过压力传感器检测轮胎当前的气压参数并经由 ADC0832 传给单片机 由 单片机给 LCD1602 送数据 让其显示当前的轮胎气压值 4 2 方案选择 方案一 采用ADC0809 8路8位A D转换器 即分辨率8位 采样频率 数据并行传输 可对8路信 号进行分时采样 多用于对多路信号进行采样的设计中 软件编程比较简单 ADC0809芯片有28条引脚 采用双列直插式封装 因此对它的硬件接线比较麻烦 同时也会加大硬件设计难度 方案二 采用ADC0832 ADC0832为8位分辨率A D转换芯片 其最高分辨可达256级 可以适应一般 的模拟量转换要求 其内部电源输入与参考电压的复用 使得芯片的模拟电压 输入在0 5V之间 8位2路AD转换器即8位分辨率 采样频率 数据串行传输 此转换器一般用于对少数信号进行采样的电路中 外部只有8个引脚 连线简单 方便 但是相对而言软件编程稍微复杂一点 方案三 采用TLV5616 12位转换器 TLV5616是一个12位电压输出数模转换器 DAC 带有灵活的4线串行接口 可以无缝连接TMS320 SPI QSPI和Microwire串行口 数字电源和模拟电源分 别供电 电压范围2 7 5 5V 输出缓冲是2倍增益rail to rail输出放大器 输出放大器是AB类以提高稳定性和减少建立时间 rail to rail输出和关电方 式非常适宜单电源 电池供电应用 通过控制字可以优化建立时间和功耗比 精度高 数据是串行传输的 只有8个引脚便于接线 软件编程简单 方案四 采用DAC0832 8位转换器 DAC0832是采样频率为八位的D A转换芯片 集成电路内有两级输入寄存器 使DAC0832芯片具备双缓冲 单缓冲和直通三种输入方式 以便适于各种电路的 需要 如要求多路D A异步输入 同步转换等 数据是进行并行传输 是以电流 的形式输出 有14个引脚 硬件连线较烦 软件编程简单 但是使用它并需外 加外部转换电路将电流转换成电压 从软件和硬件制作的角度考虑 采用8引脚的ADC0832对采集到的气压值进 行AD转化 采用TLV5616对数据进行DA转化 4 3电路设计与分析 ADC0832 是美国国家半导体公司生产的一种 8 位分辨率 双通道 A D 转换 芯片 由于它体积小 兼容性强 性价比高而深受单片机爱好者及企业欢迎 目前已经有很高的普及率 学习并使用 ADC083 可以使我们了解 A D 转换器的原 理 有助于我们对单片机技术水平的提高 1 ADC0832 具有以下 5 个特点 8 位分辨率 双通道 A D 转换 输入输出电平与 TTL CMOS 相兼容 5V 电源供电时输入电压在 0 5V 之间 工作频率为 250KHZ 转换时间为 32 S 其引脚电路图如图 4 1 所示 图 4 1 ADC0832 引脚图 芯片转换时间仅为32 S 具有双数据输出可作为数据校验 以减少数据误 差 转换速度快且稳定性能强 独立的芯片使能输入 使多器件挂接和处理器 控制变的更加方便 通过DI数据输入端 可以轻易地实现通道功能的选择 正常情况下ADC0832与单片机的接口应为4条数据线 分别是 CS CLK DO DI 如图4 1 但由于DO端与DI端在通信时并未同时有效且与 单片机的接口是双向的 所以电路设计时可以将DO和DI并联在一根数据线上使 用 当ADC0832未工作时其CS输入端应为高电平 此时芯片处于禁用状态 CLK 和DO DI的电平可任意 当要进行A D转换时 须先将CS使能端置于低电平并且 保持低电平直到转换完全结束 此时芯片开始转换工作 同时由处理器向芯片 时钟输入端CLK输入时钟脉冲 DO DI端则使用DI端输入通道功能选择的数据信 号 在第1个时钟脉冲的下降沿之前DI端必须是高电平 表示启始信号 在第 2 3个脉冲下降沿之前DI端应输入2位数据用于选择通道功能 当此2位数据为 1 0 时 只对CH0进行单通道转换 当2位数据为 1 1 时 只 对CH1进行单通道转换 当2位数据为 0 0 时 将CH0作为正输入端 IN CH1作为负输入端IN 进行输入 当2位数据为 0 1 时 将CH0作为 负输入端IN CH1作为正输入端IN 进行输入 到第3个脉冲的下降沿之后DI端 的输入电平就失去输入作用 此后DO DI端则开始利用数据输出DO进行转换数据 的读取 从第4个脉冲的下降沿开始由DO端输出转换数据最高位DATA7 随后每 一个脉冲的下降沿DO端输出下一位数据 直到第11个脉冲时发出最低位数据 DATA0 一个字节的数据输出完成 也正是从此位开始输出下一个相反字节的数 据 即从第11个字节的下降沿输出DATD0 随后输出8位数据 到第19个脉冲时 数据输出完成 也标志着一次A D转换的结束 最后将CS置高电平禁用芯片 直 接将转换后的数据进行处理就可以了 在本设计中 我们只用到了一个CH0转换口 故本设计的DO DI两端口的数 据应为 1 0 分别用P2 1和P2 2口控制 CPU向TLV5616发送的串行数据每帧为16位 其中高4位为控制位 低12位为 转换的数据 高位在前 低位在后 VREF为参考电压输入端 系统中接运放1的 输出 VOUT是电压输出端 片内有一个2倍的输出放大器 其转换关系为 VOUT 2 VREF Di 4096 VREF参考电压的范围为0V 3 5V 所以我在设计时参考电压的选择是外接一 个上拉电阻可选电压为0V 5V 这样可以方便选择参考电压 为硬件调试打下好 的基础 其与单片机的接口如图4 2所示 图 4 2 TLV5616引脚接线 4 4 软件设计 4 4 1 A D模块软件设计 A D模块的软件设计流程图如图4 3所示 图 4 3 AD 转换流程 其程序 5 如下 uchar adc0832 uchar channel 读 ADC0832 函数 采集并返回 uint dat2 0 uchar ndat 0 i 0 j if channel 0 channel 2 if channel 1 channel 3 通道选择 AD CS 0 nop 拉低 CS 端 AD 片选 DI 1 nop 在第一个脉冲下降之前 DI 必须是高电平 表示启始信号 SCK 1 nop SCK 0 nop SCK 1 DI channel nop 在第二和第三个脉冲下降之前 DI 输入两位表示通道 SCK 0 nop SCK 1 DI channel 1 nop SCK 0 写命令完成 DI 失去输入作用 DI 1 nop dat2 0 for i 0 i 8 i 读出 8 字节数据 dat2 DO SCK 1 nop SCK 0 nop dat2 1 if i 7 dat2 DO for i 0 i 8 i j 0 j j DO SCK 1 nop SCK 0 nop j j 7 ndat ndat j if i 1 AD CS 1 SCK 0 DO 1 dat2 8 dat2 ndat return dat2 返回数据 A D 转换的数据处理过程是用采样两次数据对比的方法 第一次数据采集 是使用正向存储的方式 就是高位在前低位在后 而第二次则是反向存储的方 法 低位在前 高位在后 所以在做数据对比时 必须把第二次数据反过来 当测得的两次数值是一样的时候 则返回数值 若不一样则再次进行测试 这 样就保证了测得的值的准确性 4 4 2 D A模块软件设计 D A 转换模块是采用是 TLV5616 对数值进行 D A 转换 其主要程序如下 void spiwrite int temp 写数据 uint i setcs 0 for i 0 i 16 i pindin bit temp setsclk 1 temp 1 nnop 1 setsclk 0 nnop 1 setcs 1 TLV5616 的控制仅靠数据的第 14 15 位 所以一般情况下写控制和数据是 同时进行的 这样的程序就简洁了 TLV5616 的数据传送是串行发送的 因此对 时序的要求很严 要严格按照时序来发送 5 LCD1602显示模块的设计 5 1 方案选择 方案一 采用LCD液晶显示屏 其实物图如图5 1所示 图 5 1 LCD1602 随着大量电子仪器 设备的智能化 并且普遍地采用人机交互方式 需要 能够显示更为丰富的信息和通用性较强的显示器 而点阵式LCD显示器能够满足 这些要求 同时用大规模专用集成电路作为点阵LCD控制驱动 使用者仅仅直接 送入数据和指令可实现所需的显示 这种由LCD 板 PCB 板 控制驱动电路组 成的单元叫做点阵液晶显示模块 DOT MATRIC LCD MODULE 液晶显示器可视面积大 其特性如下 错误 未找到引用源 错误 未找到引用源 显示内容 16 字符x 2 行 因而显示的位数可任意 设定 同时可视效果也比较好 错误 未找到引用源 错误 未找到引用源 字符点阵 5 x 8 点 错误 未找到引用源 错误 未找到引用源 驱动方式 1 16D 错误 未找到引用源 错误 未找到引用源 对比度可调节 方案二 采用LED数码管显示 使用多个数码管动态显示 其总功耗就等效 为一个数码管 但工作电流较大 并且只有数字显示 显示的范围也比较小 在软件上对其编程 相对于LCD比较麻烦 同时由于数码管还涉及到驱动的问题 因而硬件制作上相对LCD也增加了难度 综上所述 根据显示内容的多少和软硬件的制作 本设计选择采用LCD液晶 实时显示输出检测到的参数值和键盘输入值 5 2 电路设计与分析电路设计与分析 1602字符型LCD模块的应用非常广泛 而各种液晶厂家均有提供几乎都是同 样规格的1602模块或兼容模块 尽管各厂家的对其各自的产品命名不尽相同 1602字符型LCD模块最初采用的LCD控制器采用的是HD44780 在各厂家生产的 1602模块当中 基本上也都采用了与之兼容的控制IC 所以从特性上基本上是 一样的 当然 很多厂商提供了不同的字符颜色 背光色之类的显示模块 LCD1602 液晶模块内部的字符发生存储器 CGROM 已经存储了 160 个不同的 点阵字符图形 如表 5 1 所示 这些字符有 阿拉伯数字 英文字母的大小写 常用的符号 和日文假名等 每一个字符都有一个固定的代码 比如大写的英 文字母 A 的代码是 01000001B 41H 显示时模块把地址 41H 中的点阵字符 图形显示出来 我们就能看到字母 A 表 5 1 CGROM 和 CGRAM 中字符代码与字符图形对应关系 引脚功能 7 说明 第 1 脚 VSS 为地电源 第 2 脚 VDD 接 5V 正电源 第 3 脚 VL 为液晶显示器对比度调整端 接正电源时对比度最弱 接地时对比 度最高 对比度过高时会产生 鬼影 使用时可以通过一个 10K 的电位器调 整对比度 第 4 脚 RS 为寄存器选择 高电平时选择数据寄存器 低电平时选择指令寄存 器 第 5 脚 R W 为读写信号线 高电平时进行读操作 低电平时进行写操作 当 RS 和 R W 共同为低电平时可以写入指令或者显示地址 当 RS 为低电平 R W 为 高电平时可以读忙信号 当 RS 为高电平 R W 为低电平时可以写入数据 第 6 脚 E 端为使能端 当 E 端由高电平跳变成低电平时 液晶模块执行命令 第 7 14 脚 D0 D7 为 8 位双向数据线 第 15 脚 背光源正极 第 16 脚 背光源负极 LCD1602 的硬件连接图如图 5 2 所示 图 5 2 LCD1602 引脚图 根据电路图 5 2 可知 对 LCD 的控制只需在软件上对 8 根数据线和 3 根控 制线进行编程控制即可实现 LCD 的显示 同时可利用滑动变阻器调节显示屏的 对比度 5 3 软件设计 LCD 模块就是使用 P1 口做数据线 用 P3 1 P3 2 P3 0 口做控制线进行 数据传送和控制的 其读写程序如下 wzhilin uchar zhi 读指令 while check RS 0 RW 0 EN 0 nop nop P1 zhi nop nop nop nop EN 1 nop nop nop nop EN 0 wshuju uchar shu 写数据 while check RS 1 RW 0 EN 0 nop nop P1 shu nop nop nop nop EN 1 nop nop nop nop EN 0 程序中的 nop 是进行延时的操作 保证了数据传送的正常 如果没有这 些空操作指令 LCD 传送数据的时候有可能会发生错乱 6 键盘模块的设计 6 1 方案选择 方案一 采用4行 4列的键盘 8 键盘上有16个按键 选择其中的10个按键作为0 9这十个数字键作为预置 数的输入 剩下的其他的四个按键可分别作为确定 取消 选择照明灯 警示 灯亮灭等功能 还可以用于后期进行扩展功能设计的使用 虽然设计16个按键 在硬件上的制作比较麻烦 但是控制起来比较简单 方案二 采用复合式按键 即一键多用 根据设计的要求 使用5个按键即可完成全部的功能 由于需要预置气压的 比较值 将其中两个按键用于数字输入即一个用作数字加 一个用作数字减 一个为功能键 确定 取消 一个用作夜间照明的灯控开关 最后一个作为的 复位键 在软件设计上和使用都比较麻烦 但相对而言节省硬件资源 要做一件产口虽然要考虑到成本和使用的方便 同时也为了节省时间和对 硬件资源的维护 因此 我们采用第一种方案 这样控制起来比较简单和方便 6 2 电路设计和分析电路设计和分析 本设计采用 4 4 的矩阵键盘 它是每个按键按行列式的形式排列 每一 行 4 个键共用一根 I O 口线 每一列 4 个键也共用一根 I O 口线 其电路图如 图 6 1 所示 图 6 1 4 4 按键电路图 这样就达到了减少 I O 口线的效果 但编程时需要来回扫描 矩阵键盘的编程方法采用线反转法 其基本思想如下 1 判断是否有键按下 如果都没键按下 则列线上输出都是高电平 如果 有键按下 则列线上肯定会输出低电平 单片机只要检测到列线上不全为高电 平 则说明有键按下 2 去抖动 由于在按下某个键时 被按键的弹簧片总会有轻微的抖动 且 这种抖动常常会持续 10ms 左右 为了避免单片机误判 就在程序中加入延时程 序即消抖后 再进行下一步的行扫描读取坐标 3 按键坐标读取 轮流地对每一条行线输入低电平 其余的为高电平 然 后单片机再读取列线上的输出值 如果输出值都为高 表示按键不在这一行上 再进行下一行的扫描 遇到输出值不全为高时 计下此刻的行值和列值输出值 再继续扫描完全部行线 因为有可能发现窜键的情况 通常确定最后被放开的 按键为真正的按键 4 求键值 读出了按键的行值和列值后 就用 行号 4 列号 这一公式 计算该键的键值 6 3 键盘模块的软件设计软件设计 按键的控制是使用单片机的定时器 T0 对按键进行 50ms 的定时扫描控制 如果有按键按下就进入相应的模块程序 其主体程序 6 如下 P0 0 xf0 if P0 switch P0return 1 case 0 xd0 while P0return 4 case 0 xb0 while P0return 7 case 0 x70 while P0return default break 我们用的是单片机的 P0 口 再外接 4 个 4 7K 的上拉电阻 因为 P0 口硬件 里没有接上拉电阻 为了保证单片机系统的稳定性 即使用别的 IO 口也要用要 上接上拉电阻 因为单片机的 IO 口如果直接外接会有电流流过单片机会使单片 机上的电流过大 影响单片机的寿命 7 报警模块的设计 为了使设计更加全面 我们设计了照明报警模块 在该系统运行中 当我 们第一次按下控制灯的按钮后 灯不工作 灯为熄灭状态 当第二次按下此键 时 灯开始正常工作 这时灯可以作为照明灯使用 当第三次按下时 灯开始 闪烁 发出警示信号 其软件设计已融合在按键控制程序中 在此不给出单独 的程序 8 总结 在刚调试硬件之初 我们犯了两个不该 但也是最重要的 出现的错误 一个是忘了把单片机的EA端口上拉到高电平 这样使得单片机无法正常的工作 另一个就是在做复位电路PROTEL板子的时候 把电源线和地线接反了 从而导 致单片机的复位脚一直处于高电平的复位状态 虽然是最基本的知识 但是做 的时候却把它遗漏了 由此看来心细是做任何事情必须具备的素质 当然这也 说明了理论与实践必须结合在一起 仅仅学习理论知识是远远不够的 在最小 系统搭起来之后 我们就外接按键和LCD1602 这部分还算是比

温馨提示

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

评论

0/150

提交评论