




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微控制技术课程设计论文 1 1 引言 本次课设主要是运用单片机及按键 数码管显示等常见外围电路知识 结 合实际生活中电梯的运作 实现对三层电梯控制模型的设计 1 设计任务及要求 1 1 设计任务 三层电梯控制模型的设计 1 2 设计要求 用户可通过按键发出请求 可实时显示电梯所在楼层 按键按下后 相应的 LED 灯亮 可对发出的服务请求进行合理的分析调度并作出正确的响应 用户请求得到服务后 可更新状态 2 设计方案及器件介绍 2 1 设计方案介绍 在工业上 多采用可编程控制器或微型计算机实现电梯逻辑控制 可编程 控制器抗干扰性强 但针对性强 价格较贵 为实现电梯控制的模拟 本设计 采用单片机为控制中心 针对所在的不同楼层分别进行合理的调度 设计中按 键用于给用户发出服务请求 LED 电路用于显示请求状态及电梯运行状态 数 码管显示电路来显示实时楼层 而电梯上升或下降的过程则通过定时来模拟 2 2 主要器件介绍 2 2 1 AT89S51 单片机 AT89S51 是一个低功耗 高性能 CMOS 8 位单片机 片内含 4k Bytes ISP In system programmable 的可反复擦写 1000 次的 Flash 只读程序存储器 1 主要特性 4K 字节可编程 FLASH 存储器 寿命 1000 写 擦循环 全静态工作 0Hz 33MHz 三级程序存储器保密锁定 128 8 位内部 RAM 32 条可编程 I O 线 两个 16 位定时器 计数器 6 个中断源 可编程串行通道 低功耗的闲置和掉电模式 微控制技术课程设计论文 2 2 片内振荡器和时钟电路 2 管脚介绍 VCC 供电电压 GND 接地 P0 P0 口为一个 8 位漏级开路双向 I O 口 作为普通 IO 口使用需要外加 上拉电阻 P1 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲器能接收 输出 4TTL 门电流 P2 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可接收 输 出 4 个 TTL 门电流 P3 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收输出 4 个 TTL 门电流 RST 复位输入 PSEN 外部程序存储器的选通信号 EA VPP 当 EA 保持低电平时 访问外部程序存储器 XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器的输出 3 系统设计 3 1 系统框图 本系统以单片机为核心 通过扫描键盘点亮相应的指示灯 数码管显示 实时楼层 单片机通过扫描按键指示灯来读取请求 根据所在楼层的不同 进 行不同的分析 调度 然后做出正确的响应 更新状态并在指示灯和数码管上 显示出来 系统结构如图 1 所示 单片机控制系统 P3 P1 口 接 LE 指示 灯 矩 阵 键 盘 P2 接 2 4 键盘行 列 LED 指 示 灯 P0 接数码 管段选 数码管 微控制技术课程设计论文 3 3 图 1 系统框图 3 2 硬件电路设计 3 2 1 AT89S51 电路 通过下载器电路下载程序进入单片机 由内部振荡电路 12M 晶振 产生 12MHz 的频率供单片机使用 使用按键按下时电平的改变使单片机复位 图 2 图 3 图 4 1 下载器电路 2 内部振荡电路 3 按键电位复 位 4 单片机控制电路 由单片机的 P0 口控制数码管的位码和按键 P1 口控制 ADC0809 数据的读 取 P2 口控制数码管的段码 P3 口控制 ADC0809 的工作状态 图 4 单片机控制电路 3 2 2 按键控制电路 P2 0 P2 1 接矩阵的行线 P2 2 P2 5 接列线 微控制技术课程设计论文 4 4 图 5 矩阵键盘 3 2 3 LED 指示电路 图 6 LED 指示电路 3 2 4 数码管显示电路 图 7 数码管显示电路 3 3 软件编程设计 微控制技术课程设计论文 5 5 3 3 1 程序流程图 初始化 设定电梯初始状态和定时器初值 显示当前楼层 now 扫描键盘 now 1 的请 求分析程序 now 1 的请 求分析程序 now 1 的请 求分析程序 电梯动 now 3 now 2 now 1 电梯动 电梯动 等待中断 YY YYY NN N 开始 图 8 主程序流程图 微控制技术课程设计论文 6 6 中断产生 重装初值 中断次数 tn 加 1 tn 20 tn 0 更新 now 值 新的 now 为目标层 或有可读取的请求 N Y N 停下来 等待一会 熄灭相应的指示 灯 中断返回 Y 图 9 中断服务程序流程图 4 电路及软件调试 4 1 主要软件和仪器仪表 数字万用表 电路检测 Keil 程序编译器 DXP 电路设计软件 4 2 电路调试 4 2 1 电路板的设计和制作 对课题要求做出分析 列出所需模块有单片机最小系统 指示灯模块 按键电路 数码管显示电路 划分好系统模块后 根据实际情况确定各个模块的实现方式 为各模块 分配 I O 口 由此确定系统的大概结构 本设计中 由于系统硬件较简 单 直接用各个 I O 口控制各个模块 而无需经地址译码 其中 P0 口给数码管送段选码 P3 0 P3 3 和 P1 口控制电梯内外指示灯 P2 口 接按键 根据实际情况 确定各个模块的实现方式 进而确定系统的详细参数 本系统中所需按键较多故采用矩阵键盘 P0 口无内部上拉电阻 故应 在外部加上 此外 为使数码管足够量 用一个三极管进行驱动 运用 DXP 软件绘制原理图 PCB 图并手动布线 绘制原理图的过程中 要注意选择合适的元件封装 在进行布线时不但要考虑电路的稳定 安 全 还要考虑其美观 以及调试的方便 布线过程中要细心以免造成断 路或短路 打印 PCB 图 熨烫 腐蚀 打孔 焊接 检查线路 腐蚀电路板时应注 意把握度 以免腐蚀过度 打孔 焊接 检查电路时应细心以保证电路 微控制技术课程设计论文 7 7 板的质量 4 2 2 电路板调试 对着 PCB 目测所印电路有无断点或短路点 若有则用电烙铁进行焊接 如果怀疑某点是断点或者短路点 则应用万用表的蜂鸣器测试电路 蜂 鸣器响代表电路通 否则代表断开 用万用表的蜂鸣再测试所有线路 特别是地线和电源线 确保都为正常 通路 连接电路 确保无误后 连接电源 对各个模块进行检测 首先单片机上电后 各个 I O 口一般为高电平 可用万用表检测验证 此时指示灯 数码管所有段应全亮 可观察指示 灯和数码管是否正常亮 若不够亮或不亮 可能是电流不够 可检测相 关节点电压以分析原因并解决 另外 可烧入一简单的拉低所有 I O 口 电平的程序 看是否有相应的变化 烧入一简单的程序 拉低键盘行线电平 列线保持高电平 按下按键 用万用表检测按下后按键所在列线电平是否变低 若变低则正常 否则 不正常 应检测相关节点的电平 以分析故障原因并解决 4 2 3 软件设计及编程 分析实际生活中的电梯运行情况 总结电梯运行规律及原则 电梯在扫 描到请求后 到底是否立即响应 何时响应 总是遵循 顺路 的原则 若请求的运动方向与电梯现行方向相同且在该方向上继续运行即可响应 该请求 则 顺路 响应 根据电梯运行过程 规律和原则 设计合理的调度算法以实现电梯控制 系统的模拟 由于本设计中电梯的层数较少 问题得以简化 电梯动作 的调度 采用分层设计的方法 即对电梯在 1 2 3 层分别设计一请求 分析程序 若要电梯运动则开中断 只要电梯所在楼层未变 就一直在 相应的分析程序内 同时 该分析程序内应包含有键盘扫描程序 确定程序的结构后 便可结合硬件电路用 keil 编写各个模块的子程序 其中 键盘扫描采用行扫描法 检测到有按键按下即扫描两行 根据按 下后列信号的变化来确定按下的键 进而点亮相应的指示灯 对于数码 管则可写一简单的程序 送 0 F 的段码 使其每个数字显示 1s 来判 断数码管显示是否正常 各个模块的程序分块调试无误后 可结合起来联调 对于程序执行出现 的非理想状况 进行分析并判别可能的原因 进行验证 确认 改正 微控制技术课程设计论文 8 8 基本功能正常后 试看某些复杂情况 如同时多个按键按下 能否做出 正确的响应 若不能 则据现象进行改进 4 2 4 调试中出现的故障及排除方法 最初上电后 LED 指示灯部分亮 用万用表检测线路 发现有断路 连接 好后 情况无改善 发现亮的灯几乎都是红色的 而绿灯只有一个亮 故猜想橙色灯需要的电流可能较大 把其换成红色的之后 能正常发光 猜想得到验证 但绿色的灯始终只有一个亮 尝试着把不亮的绿灯换成 红灯 灯能正常发光 故障排除 最初上电后数码管只有部分段亮 且亮度不够 说明电流不够大 且电 路可能存在断路 用万用表排除线路问题后 发现数码管公共阴极与其 他阳极的压差 1V 都不到 故把 P0 口的上拉电阻换成 470 欧的 亮度有 所改善但变化不大 且数码管不是所有段都亮 经计算确定上拉电阻已 合适且三极管工作正常 故推测锁存器 74573 可能有故障 其芯片以正 常供以电压 测试中发现其输入输出之间的压差较大 且触碰到该芯片 时数码管显示不稳定 最后去掉该芯片 将与数码管某段不亮的阳极连 接的引脚接至相应的 P0 口引脚 该段被点亮 证明锁存器工作不正常 把其移除后将其底座的输入和输出脚一一短接后 数码管各段均被点亮 且亮度足够 烧入按键扫描程序时 发现烧不进去 总提示芯片使能有误 反复检查 尝试后仍不能烧 与其他同学讨论后发现是芯片与所用的下载口电路不 匹配 列元件清单时位考虑到这一点 调试按键扫描程序时 按下按键 相应的指示灯无反应 排除线路连通 故障后 依旧无改善 用万用表测量按键两端的电平时发现 按键按下 后电平仍有 0 5V 为无效电平 说明上拉电阻太小 使电流较大 换 大些的电阻后 按键按下 则电平变为有效的低电平 在进行程序整体联调时发现 多个按键按下时 有时能扫描到所有按下 的键 有时不能 且响应了一个请求之后 即使仍有请求灯在亮着 也 不再做任何响应 按键也没反应 就像 死机 了一样 推测可能按键 扫描的频率不够高 或者逻辑上不全面 程序进入到一个死循环 故在 程序中检查并完善了条件判断语句 几处添加按键检测 只要有键按下 就进行行扫描 如此 按键几乎都能扫描到 电梯在一楼时若同时按下 2 3 数字键 电梯总是上到 2 楼不停 到 3 楼后才回到 2 楼 推测在到 2 楼时的判断分析程序有错 反复检查 修 改无改善后 发觉原先把判断分析电梯怎么动作的程序都写在中断服务 微控制技术课程设计论文 9 9 程序内 故只有电梯到了新的楼层才会得到下一步怎么走的命令 且在 中断服务程序中无按键扫描 故刚好到达某一楼层时按下的键无法扫描 到 电梯除初始态外 静止在其他楼层时若有按键按下未必能进行合理 的分析和处理 总结以上不足后 把判断电梯该如何动作的分析调度程 序改写到主程序中 各个楼层均有一个对应的分析程序 改分析程序内 已包含键盘扫描程序 只要电梯未到达新的楼层就始终执行该分析程序 在分析过程中 发现要让电梯上升或下降时就开中断 在等待中断次数 够 20 次 定时 2s 的过程中仍未到达新的楼层 故期间一直在执行该 分析程序 按照以上思路改进后 上述问题得到解决 故障得以排除 5 设计总结 5 1 电路设计总结 本系统的硬件结构简明 清晰 但在调试过程中还是发现很多的问题 分 析这些问题后发现 电路设计 制作过程中需注意很多问题 首先 在划分系统模块 确定各模块实现的电路形式时 不但要考虑控制 芯片的控制 I O 口个数 特点 还应根据系统运行时的环境和具体情况来选择 与之最合适的电路形式和元件 其次 在设计过程的每一步时 都应该考虑如 何设置才能便于后续的工作及最终的调试和操作 此外 在确定各个模块的电 路后 应对电路某些关键的参数进行分析 结合实际与理想的区别 进行合理 的设置 5 2 软件设计总结 本系统设计的关键和难点就是电梯动作的调度程序 正因如此 在设计和 调试程序的过程中 获益匪浅 首先 在对设计所要模拟 实现的内容分析时 不但要全面考虑各种情况 而且 还要准确的把握这些不同情况的规律以及所遵循的统一原则 如本电梯 控制模型设计中就应该考虑到不同情况下对相同请求的响应的差别 相同情况 下对不同请求响应的区别 而且 要从中找出其 顺路 的请求先响应的原则 规律 其次 编写程序代码时 要养成良好的编程习惯 有好的设计风格 关键性语 句加注释 使程序可读性强 也便于后续的查错 调试 再者 在写到条件 循环语句时 要考虑全面 以免逻辑错误或死循环 此外 对于用到的状态变 量和控制变量 应进行初始化 以免默认的初始化值与预想的不一致 微控制技术课程设计论文 10 10 附 录 1 以下为本次电路设计原理图 附 录 微控制技术课程设计论文 11 11 附 录 2 以下为电路 PCB 图 微控制技术课程设计论文 12 12 附 录 3 以下为程序清单 include include define uint unsigned int define uchar unsigned char uchar code table 0 x3f 0 x06 0 x5b 0 x4f uchar num temp temp1 temp2 busy rqst flag uf df ref now next setf uint tn sbit start P1 0 sbit F1 P1 1 sbit F2 P1 2 sbit F3 P1 3 sbit UPI P1 4 sbit DNI P1 5 sbit UPO P1 6 sbit DNO P1 7 sbit UP1 P3 0 sbit UP2 P3 1 sbit DN2 P3 2 sbit DN3 P3 3 void display uchar now void delay uint z uchar keyscan void pause main busy 0 初始化 now 1 flag 1 num 0 P1 0 x00 P3 0 xf0 TMOD 0 x01 TH0 0 x3c TL0 0 xb0 微控制技术课程设计论文 13 13 EA 1 ET0 1 开定时器 0 中断 while 1 display now 显示初始楼层 if P2 0 xfc 有键按下则扫描 delay 15 if P2 0 xfc keyscan 1 楼的分析程序 while now 1 display now if UP2 1 F2 1 F3 1 TR0 1 UPO UPI 1 else if DN3 1 TR0 1 UPO UPI 1 else if DN2 1 TR0 1 UPO UPI 1 P2 0 xfc if P2 0 xfc delay 15 if P2 0 xfc keyscan 3 楼的分析程序 while now 3 display now if DN2 1 F2 1 F1 1 TR0 1 DNO DNI 1 flag 0 else if UP1 1 TR0 1 DNO DNI 1 flag 0 else if UP2 1 TR0 1 DNO DNI 1 flag 0 P2 0 xfc if P2 0 xfc 微控制技术课程设计论文 14 14 delay 15 if P2 0 xfc keyscan 中断服务程序 void time0 interrupt 1 tn TH0 0 x3c TL0 0 xb0 TR0 1 if tn 40 tn 0 if flag 1 now else now display now if now 3 if F3 1 DN3 1 TR0 0 pause F3 0 三楼灯灭DN3 0 flag 0 start 0 TR0 0 UPI UPO DNI DNO 0 else if now 1 if F1 1 UP1 1 TR0 0 pause F1 0 UP1 0 flag 1 start 0 TR0 0 UPI UPO DNI DNO 0 else if now 2 if F2 1 UPI 1TR0 0 pause else if DNI 1 TR0 0 pause F2 0 微控制技术课程设计论文 15 15 start 0 TR0 0 UPI UPO DNI DNO 0 键盘扫描子程序 uchar keyscan P2 0 xfe 扫描第一行 temp P2 temp temp while temp 0 xfc delay 5 temp P2 temp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精密锉刀套装企业制定与实施新质生产力项目商业计划书
- 宠物友好型公共场所创新创业项目商业计划书
- 木材初级加工数字化转型创新创业项目商业计划书
- 护理实习生医患关系指南
- 2025年药物分析模拟题含答案(附解析)
- 甲状腺危象急救护理题库及答案解析
- 期货从业考试放弃章节及答案解析
- 团体保险岗前考试及答案解析
- 考试题库安全生产及答案解析
- 2025年法院书记员招聘考试笔试试题(50题)含答案
- 贸易安全课件
- 中职对口高考-机械类专业综合模拟卷( 湖北适用) 第5卷(答案版)
- 部编六年级上册快乐读书吧《童年》测试题(3份)(有答案)
- 霍尼韦尔Honeywell温控器UDC2500中文手册
- 临汾市尧都区招聘专职社区工作者笔试真题2023
- 留置胃管课件
- 核反应堆热工分析课程设计
- DL-T5017-2007水电水利工程压力钢管制造安装及验收规范
- 《药物化学》课件-苯二氮䓬类药物
- 城市轨道交通员工职业素养(高职)全套教学课件
- 二十四节气与我们的生活
评论
0/150
提交评论