LCD电话显示拨号.doc_第1页
LCD电话显示拨号.doc_第2页
LCD电话显示拨号.doc_第3页
LCD电话显示拨号.doc_第4页
LCD电话显示拨号.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

技术学院技术学院 20092009 20102010 学年学年 第二学期第二学期 毕业设计毕业设计 课题名称 课题名称 LCDLCD 电话显示拨号电话显示拨号 设计时间 设计时间 系系 部 部 班班 级 级 姓姓 名 名 指导教师 指导教师 扬州工业职业技术学院毕业论文 0 总总 目目 录录 第一部分第一部分 任务书任务书 第二部分第二部分 开题报告开题报告 第三部分第三部分 毕业设计报告毕业设计报告 扬州工业职业技术学院毕业论文 1 第第 一一 部部 分分 任任 务务 书书 扬州工业职业技术学院毕业论文 2 扬州工业职业技术学院扬州工业职业技术学院 毕业设计任务书毕业设计任务书 系系 部部电子系电子系指导老师指导老师徐秋徐秋职职 称称助教助教 学生姓名学生姓名乔晓燕乔晓燕班班 级级05020502 电信电信学学 号号 05056102120505610212 设计题目设计题目LCDLCD 电话显示拨号电话显示拨号 设计设计 内容内容 目标目标 和和 要求要求 一 毕业设计主要内容及技术指标 1 主要内容 本毕业设计是应用 MCS 51 单片机进行 LCD 显示的控制 并利用 C 语言进行程序设计 通过控制 51 单片机 1602LCD 实现数字的 显示 这种控制电路结构简单 可靠性高 应用性强 软件程序适 应范围广 通过本设计旨在让学生要将单片机的硬件知识与软件知识融会 贯通 设计出实用的系统 培养学生独立分析问题 综合运用知 识解决实际问题的能力 本课题涵盖了单片机控制 键盘接口和 LCD 显示等知识 是单 片机原理及 LCD 显示应用的综合性课题 通过本课题的设计和调 试 使学生巩固所学的理论知识 增强动手能力 提高学生的创 新能力和工程素质 2 主要技术指标 1 系统电源电压 220V 10 50HZ 2 单片机及外围芯片工作电压 5V 5 3 键盘 LCD 工作电压 5V 5 4 单片机选型 MCS 51 系列单片机 5 软件开发环境 Keil uvision2 6 计时时间产生方式 定时器中断方式获取 扬州工业职业技术学院毕业论文 3 7 显示方式 LCD 数码显示 二 毕业设计的基本要求 1 收集 整理与毕业设计有关领域的信息资料 2 完成本毕业设计方案和结构框图的设计 3 完成本毕业设计电路原理图设计 4 完成本毕业设计程序流程图和 C 语言源程序设计 5 完成软件和硬件系统的调试 功能指标达到技术要求 6 根据本毕业设计的设计 编程 工作过程 形成符合学校 规定的毕业设计书面文档 三 毕业设计提交的成果 1 开题报告 2 设计说明书 3 图样资料 a 系统原理图 b 硬件电路图 c 软件流程图 4 中 英文摘要 中文摘要约 200 字 3 5 个关键词 5 查阅文献不少于 8 篇 教研室教研室 审核审核 系部系部 审核审核 扬州工业职业技术学院毕业论文 4 第第 二二 部部 分分 开开 题题 报报 告告 扬州工业职业技术学院毕业论文 5 扬州工业职业技术学院扬州工业职业技术学院 电子信息工程系电子信息工程系 1010 届届 毕业设计 论文 开题报告书毕业设计 论文 开题报告书毕业设计 论文 开题报告书毕业设计 论文 开题报告书 学生姓名乔晓燕专业 电子信息 工程 班级0502 电信学号0505610212 题 目LCD 电话显示拨号 指导教师徐秋职称助教学 位硕士 题目类别 工程设计 基础研究 应用研究 其它 课题的内容与要求 本次毕业设计是以AT89C51为核心 用键盘和液晶模块作为输入和输出装置 用C语言编程使单片机实现键盘识别 功能转换和液晶显示等控制 这种控制电路 结构简单 可靠性高 应用性强 软件程序适应范围广 对于不同的客户只需要改 变相应的定时常数即可 对单片机以及日常生活中的推前事件的应用有一定的借 鉴价值 前言 目前 电子领域正朝着集成化 微型化的方向飞速发展 微电子技术的快速 更新和工业测量的大量需求 其具有一些突出优点 体积小 重量轻 耗电少 电源单一 功能强 价格低 运行速度快 抗干扰能力强 可靠性高 所以在交 通灯 广告 工业控制 仪器仪表 密码锁等产品中都可以看到单片机的身影 方案的比较与评价 因为单片机是个体积小 重量轻 功能强大 使用方便而且可靠性高的系统 所以把单片机作为本设计硬件电路的主体 即以 AT80C51 芯片为核心 设计并安 装电路 实现倒计时控制器的功能 软件方面采用 C 语言和 Keil u Vision2 仿真软件进行程序的编写和调试 C 语言指令简单 使用方便 初学者容易理解和掌握 用它来对单片机进行换成是 最合适的选择 预期的效果及指标 通过控制单片机内部的中断来进行数字的显示 由 LCD 数码显示管来显示数 字 并可以通过按钮选择数字 软件程序适用范围广 对于不同的客户选择自己 的所需即可 扬州工业职业技术学院毕业论文 6 进度安排 2009 年 10 月 1 日 2009 年 10 月 30 日 选题 收集资料 论证 开题 2009 年 11 月 1 日 2009 年 11 月 20 日 方案 电路 硬件 软件设计 2009 年 11 月 20 日 2009 年 11 月 31 日 软硬件调试 写初稿 2009 年 12 月 1 日 2009 年 12 月 14 日 修改 定稿 打印 答辩 参考文献 1 潘永雄编著 新编单片机原理与应用 西安电子科技大学出版社 2003 2 肖玲妮等编著 Protel 99 SE 清华大学出版社 2003 3 刘瑞新编著 单片机原理及应用教程 机械工业出版社 2003 4 戢卫平编著 单片机系统开发实例经典 冶金工业出版社 2006 5 靳达编著 单片机应用系统开发实例导航 人民邮电出版社 2003 6 赵建领编著 51 系列单片机开发宝典 电子工业出版社 2007 7 沈红卫编著 单片机应用系统设计实例 北京航空航天大学出版社 2003 8 李国兴 李伟编著 单片机开发应用技术 北京大学出版社 2007 9 求是科技 单片机通信技术与工程实践 第一版 人民邮电出版社 2005 10 刘文涛 单片机语言 C51 典型应用设计 第一版 人民邮电出版社 2005 11 求是科技 单片机应用系统开发实例导航 第一版 人民邮电出版社 2004 12 李光飞 楼然苗 单片机课程设计实例指导 第一版 北京航空航天大 学出版社 2004 指导教师意见 有针对性地说明选题意义及工作安排是否恰当等 同意提交开题论证 修改后提交 不同意提交 请说明理由 指导教师签章 年 月 日 扬州工业职业技术学院毕业论文 7 系部意见 同意指导教师意见 不同意指导教师意见 请说明理由 其它 请说明 系 部 主任签章 年 月 日 第第 三三 部部 分分 毕毕 扬州工业职业技术学院毕业论文 8 业业 论论 文文 LCDLCD 电话显示拨号电话显示拨号 乔晓燕 0502 电信 摘摘 要要 本次毕业设计是应用 MCS 51 单片机原理和控制理论设计 LCD 显示的硬 件电路 并利用 C 语言进行程序设计 目前 电子领域正朝着集成化 微型化的方向飞速发展 微电子技术的快速更新和工业测量的大量需求 界面友好 操作简单 成本低 功耗低等特点 这些在其电路设计中应 扬州工业职业技术学院毕业论文 9 给予充分考虑 系统以 AT89C51 为核心 用键盘和液晶模块作为输入和 输出装置 用 C 语言编程使单片机实现键盘识别 功能转换和液晶显示 等控制 针对电源模块单电源供电多路电压输出的特点 文中给出了常 见的解决方案 最后对系统调试的基本过程进行了较详细的介绍 关键词关键词 单片机单片机 C C 语言语言 液晶显示液晶显示 键盘扫描键盘扫描 Single chipSingle chip LEDLED dotdot matrixmatrix displaydisplay controlcontrol circuitscircuits Qiao Xiaoyan 0502 电信 Abstract Abstract Nowadays electronic area is fast developing to the integration and micromation With the fast update of the microelectronics technology and the large demand of the industrial measurements portable instruments have a very bright future Portable instruments have many characteristics such as convenience friendly interface easy control low cost low power waste These should be considered in the design of its circuit By analyzing the typical hardware structure of portable instrument this text summarizes the function and characteristics of the interchangeable modules introduces several solutions compared On this condition the circuit of a multifunctional instrument given as an instance are designed The project is base on the AT89C51 and the keyboard and LCD are used as the input and output device The program compiled in Assemble Language make the SCM control keyboard scan function switch and LCD display In addition on account of their special requirements of single voltage input and multi voltage output a common solution is given to solve such problems in the text at the end of which introduce the basic process of debugging in detail KeyKey words words PortablePortable InstrumentsInstruments LCDLCD ScannerScanner KeyboardKeyboard 扬州工业职业技术学院毕业论文 10 目目 录录 第一章第一章 绪论绪论 13 1 1 课题意义课题意义 13 1 2 课题实现功能课题实现功能 13 第二章第二章 硬件设计硬件设计 14 2 1 整体结构整体结构 14 2 2 单片机单片机 AT89C51 17 2 2 1 主要特性主要特性 18 2 2 2 管脚说明管脚说明 18 扬州工业职业技术学院毕业论文 11 2 3 液晶模块的液晶模块的选选择择 28 2 4 液晶显示液晶显示电电路路 29 2 4 1 液晶显液晶显示示简介简介 29 2 4 2 技术方技术方案案 30 2 5 行列键盘的输入行列键盘的输入 34 2 6 键盘的选择键盘的选择 29 2 6 1 技术方案技术方案 30 2 6 2 键盘识别键盘识别流流程程图图 31 2 7 时钟时钟电电路路的设计的设计 32 2 8 按键电路设计按键电路设计 33 第三章第三章 软件设计软件设计 35 31 软件设计软件设计 37 3 1 1 软件设计方案软件设计方案 39 3 2 应用程序应用程序的的设计设计 40 第四章第四章 调试过程调试过程 41 4 1 KEIL 程序调试程序调试 41 4 2proteus 与与 keil 连调实现电路仿真连调实现电路仿真 42 总结总结 43 致谢致谢 44 参考文献参考文献 45 第一章第一章 绪论绪论 1 11 1 课题课题意义意义 计算机最初的设计目的是为了提高计算数据的速度和完成海量数据的计算 随着技术的发展 人们发现计算机在逻辑处理以及工业控制等方面也具有非凡 的能力 在控制领域 人们更多的关心计算机的低成本 小体积 运行的可靠 性和控制灵活性 单片机体积小 价格低 可靠性高 其非凡的嵌入式应用形态 对于满足嵌入式应用需求具有独特的优势 目前 单片机应用技术已经成为电 子应用系统设计最为常用的手段 在微电子技术基础上发展起来的单片机及其 扬州工业职业技术学院毕业论文 12 外围器件 使仪表技术进入了一个崭新的智能化时代 1 21 2 课题实现功能课题实现功能 设计其电路并编程实现控制 实现下列功能 内容显示 液晶显示当前被使用者按下的按键内容 功能显示 液晶显示当前被按下的功能键所对应的功能 例如 当按下 1234时 在液晶模块上显示 1234 字样等 操作输入 通过键盘 实现使用者简单操作 第二章第二章 硬件设计硬件设计 2 12 1 整体结构整体结构 本次的设计电路主要由单片机 液晶模块 扬声器 键盘组成 如下图所示 扬州工业职业技术学院毕业论文 13 单 片 机 液晶显示 拨号键盘扬声器 时钟电路 复位电路 2 22 2 单片机单片机 AT89C51AT89C51 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器 FPEROM Falsh Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS8 位 微处理器 俗称单片机 该器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 由于将多功能 8 位 CPU 和闪烁 存储器组合在单个芯片中 ATMEL 的 AT89C51 是一种高效微控制器 为很多嵌 入式控制系统提供了一种灵活性高且价廉的方案 扬州工业职业技术学院毕业论文 14 图 1 2 AT89C51 芯片及管脚 2 2 12 2 1 主要特性主要特性 与 MCS 51 兼容 4K 字节可编程闪烁存储器 寿命 1000 写 擦循环 1 数据保留时间 10 年 2 全静态工作 0Hz 24Hz 3 三级程序存储器锁定 4 128 8 位内部RAM 5 32 可编程I O 线 6 两个16 位定时器 计数器 7 5 个中断源 8 可编程串行通道 扬州工业职业技术学院毕业论文 15 9 低功耗的闲置和掉电模式 10 片内振荡器和时钟电路 2 2 22 2 2 管脚说明管脚说明 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口同时为闪烁编程和编程校 验接收一些控制信号 RST 复位输入 当振荡器复位器件时 要保持RST脚两个机器周期的高电 平时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址 的地位字节 扬州工业职业技术学院毕业论文 16 在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 来自反向振荡器的输出 4 2 3 振荡器特性 XTAL1和XTAL2分别为反向放大器的输入和输出 该反向放大器可以配置为 片内振荡器 石晶振荡和陶瓷振荡均可采用 如采用外部时钟源驱动器件 XTAL2应不接 有余输入至内部时钟信号要通过一个二分频触发器 因此对外部 时钟信号的脉宽无任何要求 但必须保证脉冲的高低电平要求的宽度 2 32 3 液晶模块的选择液晶模块的选择 选择合适的液晶模块对于便携式仪表的外观和功能的实现起到至关重要的作用 目前 液晶模块有下述3 种类型 数显液晶模块 这是一种由段型液晶显示器件于专用的集成电路组装成一体的功能部件 只能显示数 字 和一些标识符号 段型液晶显示器件大多应用在便携 袖珍设备上 由于这些设备体积小 扬州工业职业技术学院毕业论文 17 所以尽可能不将显示部分设计成单独的部件 即使一些应用领域需要单独的显示组件 那 么也应该使其具有显示功能外 还应具有一些信息接收 处理 存储传递等功能 由于他 们具有某种通用的 特定的功能而受市场欢迎 液晶点阵字符模块 它是由点阵字符液晶显示器件和专用的行 列驱动器 控制器及必要的连接件 结构 件 装配而成的 可以显示数字和西文字符 这种点阵字符模块本身兵有字符发生器 显示容 量大 功能丰富 一般该种模块最少也可以显示8位1行或16位1行以上的字符这种模块的点 阵排列是由5 7 5 8或5 11的一组组像素点阵排列组成的 每组为1位 每位间有一点的间 隔 每行间也有一行的间隔 所以不能显示图形 点阵图形液晶模块 这种模块也是点阵模块的一种 其特点是点阵像素连续排列 行和列在排布中均没有 空 格 因此可以显示连续 完整的图形 由于它也是有X Y矩阵像素构成的 所以除显示图形 外 也可以显示字符 有下述3种类型 行 列驱动型 行 列驱动 控制型 行 列控制 型 2 42 4 液晶显示电路液晶显示电路 本设计中重点的部分是基于单片机系统的液晶显示部分 在单片机系统中 液晶显示是单片机系统中反映系统输出和操纵输入的有效 液晶显示模块是一 种将液晶显示器件 连接件 集成电路 PCB线路板 背光源 结构件装配在一 起的组件 英文名叫 LCD Module 简称 LCM 中文一般称为 液晶显示 模块 在单片机系统中使用液晶显示模块作为输出有以下的优点 1 显示质量高 由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度 恒定 发光 而不像阴级射线管显示器 CRT 那样需要不断刷新新亮点 因此 液晶 显示器画质高而且不会闪烁 2 数字式接口 扬州工业职业技术学院毕业论文 18 液晶显示器都是数字式的 和单片机系统的接口更加简单 操纵也更加方 便 体积小 重量轻 液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示目的 在重 量上比相同显示面积的传统显示器件要轻得多 3 功率消耗小 相比而言 液晶显示器的功耗主要消耗在其内部的电极和驱动IC上 因而 耗电量比其他显示器件也要小得多 4 电路中的应用 图4 10 1602液晶模块单片机AT89C51的连接电路 2 4 12 4 1 液晶显示简介液晶显示简介 1 液晶显示原理 液晶显示的原理是利用液晶的物理特性 通过电压对其显示区域进行控制 有电就有显示 这样即可以显示出图形 液晶显示器具有厚度薄 适用于大规 模集成电路直接驱动 易于实现全彩色显示的特点 目前已经被广泛应用在便 携式电脑 数字摄像机 PDA移动通信工具等众多领域 扬州工业职业技术学院毕业论文 19 2 液晶显示器的分类 液晶显示的分类方法有很多种 通常可按其显示方式分为段式 字符式 点阵式等 除了黑白显示外 液晶显示器还有多灰度有彩色显示等 如果根据 驱动方式来分 可以分为静态驱动 Static 单纯矩阵驱动 Simple Matrix 和主动矩阵驱动 Active Matrix 三种 3 液晶显示器各种图形的显示原理 1 线段的显示 点阵图形式液晶由M N个显示单元组成 假设LCD显示屏有64行 每行有128列 每8列对应1字节的8位 即每行由16字节 共16 8 128个点组成 屏上64 16个 显示单元与显示RAM区1024字节相对应 每一字节的内容和显示屏上相应位置的 亮暗对应 例如屏的第一行的亮暗由RAM 区的000H 00FH 的16 字节的内容 决定 当 000H FFH时 则屏幕的左上角显示一条短亮线 长度为8个点 当 3FFH FFH时 则屏幕的右下角显示一条短亮线 当 000H FFH 001H 00H 002H 00H 00EH 00H 00FH 00H时 则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线 这就是LCD显示的基 本原理 2 字符的显示 用LCD显示一个字符时比较复杂 因为一个字符由6 8或8 8点阵组成 既要找到 和显示屏幕上某几个位置对应的显示RAM区的8字节 还要使每字节的不同位为 1 其它的为 0 为 1 的点亮 为 0 的不亮 这样一来就组成某 个字符 但由于内带字符发生器的控制器来说 显示字符就比较简单了 可以 让控制器工作在文本方式 根据在LCD上开始显示的行列号及每行的列数找出显 示RAM对应的地址 设立光标 在此送上该字符对应的代码即可 2 4 22 4 2 技术方案技术方案 1 1602 液晶模块的特性 扬州工业职业技术学院毕业论文 20 字符型液晶模块1602是一种用5 7点阵图形来显示字符的液晶显示器 根据 显示的容量可以分为1行16个字 2行16个字 2行20个字等等 常用的2行16个 字的1602液晶模块来的编程方法来实现 一般1602字符型液晶显示器实物如图 4 5 图4 5 1602LCD的基本参数及引脚功能 1602LCD分为带背光和不带背光两种 基控制器大部分为HD44780 带背光 的比不带背光的厚 应用中并无差别 两者尺寸差别如下图4 6所示 图4 6 1602LCD带背光和不带背光尺寸差别 1602LCD主要技术参数 显示容量 16 2个字符 扬州工业职业技术学院毕业论文 21 芯片工作电压 4 5 5 5V 工作电流 2 0mA 5 0V 模块最佳工作电压 5 0V 字符尺寸 2 95 4 35 W H mm 本设计中将1602采用标准的16脚接口 其中 表4 2 引脚接口说明表 编号符号引脚说明编号符号引脚说明 1 VSS 电源地 9D2 数据 2 VDD 电源正极 10D3 数据 3 VL 液晶显示偏压 11D4 数据 4 RS 数据 命令选择 12D5 数据 5 R W 读 写选择 13D6 数据 6 E 使能信号 14D7 数据 7 D0 数据 15BLA 8 D1 数据 16BLK 第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脚 空脚 其中VSS为地电源 VDD接5V正电源 V0为液晶显示器对比度调整端 接正电源时对比度最 弱 接地电源时对比度最高 对比度过高时会产生 鬼影 使用时可以通过一个10K的电 位器调整对比度 RS为寄存器选择 高电平时选择数据寄存器 低电平时选择指令寄存器 RW为读写信号线 高电平时进行读操作 低电平时进行写操作 当RS和RW共同为低电平时 可以写入指令或者显示地址 当RS为低电平RW为高电平时可以读忙信号 当RS为高电平RW 为低电平时可以写入数据 E端为使能端 当E端由高电平跳变成低电平时 液晶模块执行 命令 D0 D7为8位双向数据线 2 52 5 键盘的选择键盘的选择 键盘按结构的不同可分为独立式按键键盘和行列式键盘两类 每类按译码方式的不同 扬州工业职业技术学院毕业论文 22 又分为编码式和非编码式两种 单片机中一般使用的都是用软件来识别和产生键代码的非 编码键盘 行列式键盘的编码方式有静态和动态两种 静态接口主要由一个行编码器和一 个列编码器构成 动态接口可采用计数器 译码器和数据选择器构成 这两种键盘由硬件 完成键的辨码任务 一般在小型仪器仪表和控制系统中 使用较多的是行列式和独立式的非编码键盘 如 果系统要求实现多键同时按下的处理 则用非编码独立方式较为合适 2 62 6 行列键盘的输入行列键盘的输入 2 6 12 6 1 技术方案技术方案 1 行列式键盘的基本结构 行列式键盘中的键实际上就是一个机械开关 位于行线和列线的交点处 图 4 11 所示为本设计中使用的 4 行 4 列的 16 键行列式键盘 当键被按下时 其交点的行线和列线接通 使相应行线或列线上的电平发生变化 根据电平变 化情况确定被按下的键 图 4 11 4 行 4 列的 16 键行列式键盘 2 键盘接口方式选择 常用的键识别方法有 行扫描法 线翻转法和利用 8279 键盘接口的中断法 前两种方法相当于查询法 需要反复查询按键的状态 会占用大量的 CPU 时间 后一种方法在有键按下时向 CPU 申请中断 平时并不需要占用 CPU 时间 在本 系统中 完全可以不使用中断法完成键盘接口 这是由系统的特殊性决定的 首先 对于本系统而言 要实现便携式的设计 硬件电路使用的器件越少越好 扬州工业职业技术学院毕业论文 23 其次 被测信号由外中断引脚输入 未占用单片机 4 个并行 I O 口中的任何一 个 系统有足够的资源利用自身 I O 口完成接口 最后 只有当传感器输出信 号频率为空载频率 系统处于空闲待测的状态下 才允许键盘输入 因此键盘 识别占用的 CPU 时间不会对系统正常工作造成影响 因此直接利用单片机并行 接口完成键盘的接口 采用线翻转法进行键盘识别 图 4 12 4 4 行列式键盘与单片机的连接电路 选用如图 4 12 所示的 4 4 行列式键盘 将总共 8 根行线与列线直接与单片 机的通用输入输出口 Pl 口相连 连接方式见图 高 4 位用于列控制 低 4 位用 于行控制 3 键盘处理子程序流程 键盘上有很多键 每一个对应一个键码 以便根据键码转到相应的键处理 子程序 进一步实现数据输入和命令处理的功能 键盘识别的流程如图所示 采用线翻转法实现的具体方法如下 扬州工业职业技术学院毕业论文 24 图 4 13 键盘扫描子程序流程框图 2 6 22 6 2 键盘识别流程图键盘识别流程图 键盘上有很多键 每一个键对应一个键码 以便根据键码转到相应的键处理 扬州工业职业技术学院毕业论文 25 子程序 进一步实现数据输入和命令处理的功能 键盘识别的流程如图 4 15 所 示 图 4 15 键识别流程框图 判断是否有键按下 设置列线输出方式 行线输入方式 向所有列线输 出低电平 读取 P1 口状态 并从 P1 口状态中分离出行线状态 若行线状态皆 为高电平 则无键按下 若有电平状态 则有键按下 当有键按下时 保留此 时的行线状态 去抖动 按键本身是机械开关 在触点闭合或断开的瞬间会出现电压抖 动的现象 必须去除抖动的影响 才能正确识别被按下的键 为简单起见 使 用软件方法消抖 延时 10ms 读取所有列线输出低电平情况下的行线状态 若 扬州工业职业技术学院毕业论文 26 两次的行线状态相同 说明信号稳定 可以继续确定按键的物理位置 确定物理位置得到键码 将改变行线和列线的工作方式 由行线输出 列线输入 行线输出前次读取的行线状态 由列线读取相应的列线状态 闭合 键对应的行线和列线的状态均为低电平 其他键均为高电平状态 将此行线和 列线状态组合即可得到该闭合健对应的键码 等待键释放 得到闭合键对应的键码以后 继续延时并判断按键状态 直到闭合的按键被释放 再根据键码转到响应的键处理子程序中 2 72 7 时钟电路的设计时钟电路的设计 如图 3 5 所示 单片机工作的时间基准是由时钟电路提供的 在单片机的 XTAL1 和 XTAL2 两个引脚间 接一只晶振及两只电容就构成了单片机的时钟电 路 电路中的器件选择可以通过计算和实验确定 也可以参考一些典型电路的 参数 电路中 电容器 C1 和 C2 对振荡器频率有微调作用 通常的取值范围 30 10pF 石英晶体选择 6MHZ 或 12MHZ 都可以 其结果只是机器周期时间不同 影响计数器的计数初值 扬州工业职业技术学院毕业论文 27 图 3 5 时钟设计电路 3 83 8 按键电路设计按键电路设计 如图 3 8 所示是按钮的选择键 不按不显示字 按 1 或者按 2 会选择你所 想要的数字 显示完后不按任何按钮任然会保持显示这几个数字 图 3 8 按键电路设计 扬州工业职业技术学院毕业论文 28 第三章第三章 软件设计软件设计 3 13 1 软件设计软件设计 3 1 13 1 1 软件设计的方案软件设计的方案 1 进行应用软件设计时可采用模块化程序设计方法 其优点是 1 每个模块的程序结构简单 任务明确 易于编写 调试和修改 2 程序可读性好 对程序的修改可局部进行 其他部分可以保持不变 便 于功能扩充 3 对于使用频繁的子程序可以建立子程序库 便于多个模块调用 4 便于分工合作 多个人同时进行程序的编写和调试工作 加快软件研制 进度 2 设计方案及框图 如图 3 9 所示 根据设计要求 首先要确定软件设计方案 即确定该软件 应该完成哪些功能 其次是规划为了完成这些功能需要分成多少个功能模块 以及每一个程序模块的具体任务是什么 划分模块时应遵循下述原则 1 每个模块应具有独立的功能 能产生一个明确的结果 2 模块之间的控制参数应尽量简单 数据参数应尽量少 3 模块长度适中 4 根据模块的划分原则 将该程序划分成 5 个模块 扬州工业职业技术学院毕业论文 29 主主 程程 序序 键 盘 扫 描 程 序 液 晶 显 示 程 序 声 音 控 制 程 序 延 时 程 序 图 3 9 设计框图 3 23 2 应用程序的设计应用程序的设计 include iclude define uchar unsigned char define uint unsigned int define delayNOPX nop nop nop nop sbit BEEP P1 0 sbit LCD RS P2 0 sbit LCD RW P2 1 sbit LCD EN P2 2 void DelayMS uint ms bit LCD Busy void LCD Pos uchar void LCD Wcmd uchar void LCD Wdat uchar 标题字符串 扬州工业职业技术学院毕业论文 30 char code Title Text phone code 键盘序号与键盘符号映射表 Uchar code Key Table 1 2 3 4 5 6 7 8 9 0 键盘拨号数字缓冲 uhar Dial Code Str uchar KeyNo 0Xff int tCount 0 延时 void DelayMS uint x uchar i while x for i 0 i 120 i 在 LCD 指定的行上显示字符串 Void display string uchar str uchar klineNo Uchar k LCD pos lineNo for k 0 k 16 k LCD wdat str k 1602LCD 显示控制函数 bit LCD busy void LCD wcmd uchar cmd void LCD wdat uchar str void LCD init void LCD pos uchar pos T0 控制按键声音 Void T0 INT interrupt 1 扬州工业职业技术学院毕业论文 31 Th0 600 256 TL0 600 256 BEEP BEEP If tcount 200 Tcount 0 tr0 0 键盘扫描 Uchar getkey Uchar I j k 0 Uchar keyscancode 0 xef 0 xdf 0 xbf 0 x7f 键盘扫描码 Uchar keyscancode 0 xee 0 xed 0 xeb 0 xde 0 xdd 0 xdb 0 xbe 0 xbd 0 xb b 0 x7e 0 x7d ox7b 键盘特征码 P3 0 x0f 扫描键盘获取按键序号 If p3 0 x0f For I 0 i 4 i p3 keyscancode i For j 0 j 3 j K I 3 j If p3 keycodetable k return k 扬州工业职业技术学院毕业论文 32 Else return 0 xff 主程序 Void main Uchar I 0 j P0 p2 p1 0 xff Ie 0 x82 tmod 0 x01 LCD init 初始化 LCD Display string title text 0 x00 在第一行显示标题 While 1 Keyno getkey 获取按键 If keyno 0 xff continue 无按键时继续扫描 If I 11 超过 11 位时清空 For j 0 j 16 j dial code str j i 0 Dial code str i key table keyno 讲待显示字符放入待显示的拨号串中 Display string dial code str 0 x40 在第二行显示号码 Tr0 1 T0 中断控制按键声音 While getkey 0 xff 等待释放 扬州工业职业技术学院毕业论文 33 第四章第四章 调试过程调试过程 4 14 1 KEILKEIL 程序调试程序调试 1 启动 uVision2 如图 4 1 所示 图 4 1 2 弹出如图 4 3 4 4 所示选择 CPU 厂家和型

温馨提示

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

评论

0/150

提交评论