单片机实习报告_第1页
单片机实习报告_第2页
单片机实习报告_第3页
单片机实习报告_第4页
单片机实习报告_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

序号 学号 序号 学号 学学生生实实习习报报告告书书 实习类别单片机应用实习 实习地址武汉理工大学信息工程学院 学 院 专 业 班 级 姓 名 指导教师 2015 年 12 月 21 日 武汉理工大学单片机实习报告 I I 目录目录 摘 要 IV Abstract IV 1 实习执行大纲 1 1 1 实习目的 1 1 2 实习纪律与要求 1 1 2 1 实习纪律 1 1 2 2 基本要求 1 1 3 实习地点 1 1 4 实习时间 2 1 5 实习内容 2 1 5 1 实习所需主要材料 2 1 5 2 任务 3 1 6 实习具体安排 5 1 7 实习考核 5 1 7 1 对报告的要求 5 1 7 2 对图纸的要求 5 1 8 概况 6 2 基本原理 6 2 1 STC89C52 单片机介绍 6 2 2 单片机最小系统 11 2 3 键盘检测原理 12 2 4 数码管显示 13 2 5 串口通信 14 2 6 ISP 下载电路 15 3 硬件设计 15 3 1 实验总电路图 15 3 2 矩阵键盘 16 3 3 数码管显示 17 3 4 双机通信 17 4 软件设计及仿真 17 4 1 键盘输入及数码管显示 17 4 2 PROTEUS 仿真 18 4 2 1 功能选择 18 4 2 2 数据输入 18 4 2 3 数据显示 18 4 2 4 数据通信 18 5 硬件实物 20 5 1 硬件实物图 20 5 2 硬件运行图 21 6 小结 22 武汉理工大学单片机实习报告 II II 7 参考文献 23 附录一 24 附录二 38 武汉理工大学单片机实习报告 III III 摘摘 要要 随着时代的进步和发展 单片机技术已经普及到我们生活 工作 科研 各个领 域 已经成为一种比较成熟的技术 单片机具有体积小 功耗低 控制功能强 扩展灵 活 微型化和使用方便等优点 广泛应用于仪器仪表中 结合不同种类的传感器 可实 现诸如电压 湿度 温度 速度 硬度 压力等的物理量的测量 本文将介绍一种基于 单片机按键 显示及通信应用 主要介绍了基于 STC89C52RC 单片机的键盘输入 数码 管显示 串口通信 详细描述了以单片机最小系统为基础 利用 Proteus 进行电路设计 利用 Keil C51 uVision4 集成开发环境进行软件程序的编写 并进行电路焊接 电路仿 真和电路调试的过程 关键字关键字 单片机 键盘 数码管 Keil Abstract With The Times progress and development microcontroller technology has spread to our life work scientific research each domain has become a more mature technology SCM has small volume low power consumption strong control function flexible extension and the advantages of miniaturization and easy to use widely used in instruments and meters combined with different kinds of sensors which can realize such as voltage humidity temperature speed hardness measurement pressure and other quantities This article introduces a kind of based on single chip microcomputer buttons display and communication applications Mainly introduced based on STC89C52RC single chip computer keyboard input digital tube display serial communication Described in detail based on the single chip microcomputer minimum system the use of Proteus for circuit design using the Keil C51 uVision4 integrated development environment Keywords MCU keypad Keil 武汉理工大学单片机实习报告 0 0 1 实习执行大纲 1 1 实习目的 1 巩固 单片机原理与应用 理论课的理论知识 2 熟悉单片机应用系统的硬件设计及软件设计的基本方法 3 将 单片机原理与应用 理论课的理论知识应用于实际的应用系统中 4 训练单片机应用技术 锻炼实际动手能力 1 2 实习纪律与要求 1 2 1 实习纪律 1 参加实习的学生必须按照实习大纲的要求 在指导教师的指导下 全面完成实 习任务 2 听从指导教师安排 严格遵守实习纪律 3 因故在实习期间缺勤累计超过规定时间的三分之一 不得参加本次实习考核 但可在补足所缺天数后再给予考核并评定实习成绩 1 2 2 基本要求 1 利用 PROTEL 等软件进行硬件设计 2 利用 Keil uV2 软件完成应用系统软件设计 3 利用 PROTEUS 软件进行仿真设计 4 完成单片机最小系统和应用系统电路板的焊接 5 对电路进行调试 6 利用 stc isp 软件完成在系统编程 下载 并完成系统软件调试 7 题目由指导教师提供 8 要求每个学生单独完成硬件软件设计 仿真 焊接 调试任务 9 写出实习报告 实习报告主要包括以下内容 目录 摘要 关键词 基本原理 方案论证 硬件设计 软件设计 带流程图 程序清单 仿真结果 实物运行 结果照片 结论 参考文献等 10 实习完成后通过答辩 11 答辩时交实习报告电子文档 通过答辩后根据修改意见修改并打印 装订成册 1 3 实习地点 武汉理工大学信息工程学院通信实验室 鉴主 15 楼 武汉理工大学单片机实习报告 1 1 1 4 实习时间 2015 年 12 月 21 日 2016 年 1 月 8 日 1 5 实习内容 1 5 1 实习所需主要材料 1 单片机最小系统部分 序序 号号 名称名称数量数量 1 万能实验电路板1 块 2 单片机 STC89C521 只 3 晶振 12MHz1 只 4 30PF 瓷片电容2 只 5 10k 0 25W 电阻1 只 6 10uF 16V 电解电容1 只 7 2k 0 25W 电阻1 只 8 10k 9 脚排阻1 只 9 5V 500mA 直流电源1 个 10 排针 按钮 LED 导线等 若干 2 下载电路部分 序序 号号 名称名称数量数量 1 万能实验电路板1 块 2 MAX232 1 片 3 0 1uF 瓷片电容 4 只 4 DB9 插座 1 只 5 RS 232C 串口电缆 9 针 1 根 3 扩展电路部分 扩展电路部分材料根据设计方案确定 武汉理工大学单片机实习报告 2 2 4 软件部分 序序 号号 名称名称数量数量 1 电路设计软件 PROTEL1 套 2 编程软件 Keil uV21 套 3 仿真软件 PROTEUS1 套 4 下载软件 stc isp 1 套 5 工具 序序 号号 名称名称数量数量 1 PC 带 RS 232C 口 1 台 2 万用表 1 块 3 电烙铁 1 只 4 焊锡 松香等 若干 1 5 2 任务 1 利用上述材料完成包含如下系统功能组件的单片机最小系统的设计 焊接 调试 利用上述材料完成包含如下系统功能组件的单片机最小系统的设计 焊接 调试 1 键盘 键盘 一个 4X4 的矩阵键盘 其中 10 个按键是 0 9 数字键 另外 6 个是功能键 用于 功能选择和控制 如 数据输入 数据显示 串行通信 功能选择键 以及 回车 清除 控制键 2 显示电路 显示电路 由 6 个 7 段 LED 数码管组成的显示电路 3 串口串行通信 串口串行通信 利用 51 的串口实现串行通信接口电路 2 完成 完成 ISP 下载电路的设计 焊接下载电路的设计 焊接 3 完成系统软件的设计 包括程序结构设计 流程图绘制 程序设计 实现如下功能 完成系统软件的设计 包括程序结构设计 流程图绘制 程序设计 实现如下功能 1 功能选择 功能选择 通过功能选择键 使得单片机处于不同的工作状态并通过 LED 显示相应的内容 可 武汉理工大学单片机实习报告 3 3 选择的功能包括 数据输入 数据显示 串口通信 2 数据输入 数据输入 通过功能选择键选择 数据输入 后 可分次输入 10 个 4 位十进制数据 并将输 入的数据保存在内部 RAM 中 数据输入要求 1 第一步输入序号 0 9 表明输入的是第几个 4 位十进制数据 2 第二步按下回车键 完成序号输入 3 第三步输入最多 4 位的十进制数据 4 第四步按下回车键 完成数据输入 5 重复第一步 开始新数据的输入 6 输入数据的显示格式是 最左边是序号 然后是空格 之后是从右到左的 最多 4 位十进制数 7 若在输入过程中 第一步或第三步 出现错误 按 清除 键 重新从第 一步开始输入数据 或者 自己设计 10 个十进制数的输入及显示方式 3 数据显示 通过功能选择键选择 数据显示 后 可显示之前输入的 10 个 4 位十进制数据中 的任一个 要求 1 第一步输入序号 0 9 表明显示的是第几个 4 位十进制数据 2 第二步显示相应的数据 3 重复第一步 第二步 显示其他的数据 4 数据的显示格式是 最左边是序号 然后是空格 之后是要显示的数据 从右到左最多 4 位十进制数 或者 自己设计数据的显示方式 4 数据通信 将两个单片机最小系统通过串口连接起来 其中一个作为主系统 另一个作为辅 系统 当通过功能选择键选择 串行通信 后 当在主系统上按下数字键后主系统的 LED 按从左向右移东的方式显示按键输入的数字 同时辅系统的 LED 上显示与主系统同 样的内容 武汉理工大学单片机实习报告 4 4 4 利用仿真软件完成系统仿真工作 5 在单片机最小系统硬件上实现任务 3 中规定的功能 1 6 实习具体安排 序序 号号 阶段内容阶段内容所需时间所需时间 1 方案设计2 天 2 硬件设计2 天 3 软件设计3 天 4 系统仿真1 天 5 电路板焊接2 天 6 系统调试3 天 7 答辩1 天 合 计14 天 1 7 实习考核 学生必须按照实习大纲的要求完成实习的全部内容 并提交实习报告 指导教师应 对学生进行实习考核并评定实习成绩 实习成绩评定按优 良 中 及格和不及格五级 分制 1 7 1 对报告的要求 实习报告要求逻辑清晰 层次分明 书写整洁 报告包括标题 中英文 提要 正 文 包括 项目要求与说明 软件流程分析 调试分析 实验数据分析 答 辩 成绩评定 附录 图纸 程序清单或软盘 实习要求须每人一份 独立完成 1 7 2 对图纸的要求 图纸要求准确全面并与任务要求完成的内容一致 1 7 3 评分标准 1 选题合理 目的明确 10 分 2 方案正确 具有可行性 创新性 20 分 武汉理工大学单片机实习报告 5 5 3 结果 如 硬件成果 软件程序 仿真结果 20 分 4 态度认真 学习刻苦 遵守纪律 15 分 5 报告的规范化 参考文献充分 不少于 5 篇 10 分 6 答辩 25 分 总分 100 分 备注 成绩等级 优 90 分 100 分 良 80 分 89 分 中 70 分 79 分 及格 60 分 69 分 60 分以下为不及格 1 8 概况 实习单位 武汉理工大学信息工程学院 参观考察单位 1 武汉理工大学信息工程学院国创课题小组 2 武汉理工大学信息工程学院开放实验室 3 武汉理工大学电工电子实习中心 实习开始时间 20 15 年 12 月 21 日 实习时间共 14 天 完成实习报告时间 20 16 年 1 月 8 日 2 基本原理 2 1 STC89C52 单片机介绍 STC89C52RC 单片机是宏晶科技推出的新一代高速 低功耗 超强抗干扰的单片机 武汉理工大学单片机实习报告 6 6 指令代码完全兼容传统 8051 单片机 12 时钟 机器周期和 6 时钟 机器周期可以任意选 择 主要特性如下 1 增强型 8051 单片机 6 时钟 机器周期和 12 时钟 机器周期可以任意选择 指令代码完全兼容传统 8051 2 工作电压 5 5V 3 3V 5V 单片机 3 8V 2 0V 3V 单片机 3 工作频率范围 0 40MHz 相当于普通 8051 的 0 80MHz 实际工作频率可 达 48MHz 4 用户应用程序空间为 8K 字节 5 片上集成 512 字节 RAM 6 通用 I O 口 32 个 复位后为 P1 P2 P3 P4 是准双向口 弱上拉 P0 口 是漏极开路输出 作为总线扩展用时 不用加上拉电阻 作为 I O 口用时 需加上拉电阻 7 ISP 在系统可编程 IAP 在应用可编程 无需专用编程器 无需专用 仿真器 可通过串口 RxD P3 0 TxD P3 1 直接下载用户程序 数秒即可 完成一片 8 具有 EEPROM 功能 9 具有看门狗功能 10 共 3 个 16 位定时器 计数器 即定时器 T0 T1 T2 11 外部中断 4 路 下降沿中断或低电平触发电路 Power Down 模式可由外部 中断低电平触发中断方式唤醒 12 通用异步串行口 UART 还可用定时器软件实现多个 UART 13 工作温度范围 40 85 工业级 0 75 商业级 14 PDIP 封装 STC89C52RC 单片机的工作模式 掉电模式 典型功耗 0 1 A 可由外部中断唤醒 中断返回后 继续执行原程序 空闲模式 典型功耗 2mA 正常工作模式 典型功耗 4 7mA 掉电模式可由外部中断唤醒 适用于水表 气表等电池供电系统及便携设备 武汉理工大学单片机实习报告 7 7 图 1 STC89C52RC 引脚图 STC89C52RC 引脚功能说明 VCC 40 引脚 电源电压 VSS 20 引脚 接地 P0 端口 P0 0 P0 7 39 32 引脚 P0 口是一个漏极开路的 8 位双向 I O 口 作为输出端口 每个引脚能驱动 8 个 TTL 负载 对端口 P0 写入 1 时 可以作为高阻 抗输入 在访问外部程序和数据存储器时 P0 口也可以提供低 8 位地址和 8 位数据的 复用总线 此时 P0 口内部上拉电阻有效 在 Flash ROM 编程时 P0 端口接收指令字 节 而在校验程序时 则输出指令字节 验证时 要求外接上拉电阻 P1 端口 P1 0 P1 7 1 8 引脚 P1 口是一个带内部上拉电阻的 8 位双向 I O 口 P1 的输出缓冲器可驱动 吸收或者输出电流方式 4 个 TTL 输入 对端口写入 1 时 通过内部的上拉电阻把端口拉到高电位 这是可用作输入口 P1 口作输入口使用时 因为有内部上拉电阻 那些被外部拉低的引脚会输出一个电流 此外 P1 0 和 P1 1 还 武汉理工大学单片机实习报告 8 8 可以作为定时器 计数器 2 的外部技术输入 P1 0 T2 和定时器 计数器 2 的触发输入 P1 1 T2EX 具体参见下表 在对 Flash ROM 编程和程序校验时 P1 接收低 8 位地址 表一 P1 0 和 P1 1 引脚复用功能表 引脚号功能特性 P1 0T2 定时器 计数器 2 外部计数输入 时钟输出 P1 1T2EX 定时器 计数器 2 捕获 重装触发和方向控制 P2 端口 P2 0 P2 7 21 28 引脚 P2 口是一个带内部上拉电阻的 8 位双向 I O 端口 P2 的输出缓冲器可以驱动 吸收或输出电流方式 4 个 TTL 输入 对端口写 入 1 时 通过内部的上拉电阻把端口拉到高电平 这时可用作输入口 P2 作为输入口 使用时 因为有内部的上拉电阻 那些被外部信号拉低的引脚会输出一个电流 在访问外部程序存储器和 16 位地址的外部数据存储器 如执行 MOVX DPTR 指 令 时 P2 送出高 8 位地址 在访问 8 位地址的外部数据存储器 如执行 MOVX R1 指令 时 P2 口引脚上的内容 就是专用寄存器 SFR 区中的 P2 寄存器的内容 在整个访问期间不会改变 在对 Flash ROM 编程和程序校验期间 P2 也接收高位地址和一些控制信号 P3 端口 P3 0 P3 7 10 17 引脚 P3 是一个带内部上拉电阻的 8 位双向 I O 端口 P3 的输出缓冲器可驱动 吸收或输出电流方式 4 个 TTL 输入 对端口写入 1 时 通过内部的上拉电阻把端口拉到高电位 这时可用作输入口 P3 做输入口使用时 因 为有内部的上拉电阻 那些被外部信号拉低的引脚会输入一个电流 在对 Flash ROM 编程或程序校验时 P3 还接收一些控制信号 P3 口除作为一般 I O 口外 还有其他一些复用功能 如下表所示 表二 P3 口引脚功能表 引脚号复用功能 P3 0RXD 串行输入口 P3 1TXD 串行输出口 P3 2 外部中断 0 P3 3 外部中断 1 P3 4T0 定时器 0 的外部输入 P3 5T1 定时器 1 的外部输入 P3 6外部数据存储器写选通 武汉理工大学单片机实习报告 9 9 P3 7外部数据存储器读选通 RST 9 引脚 复位输入 当输入连续两个机器周期以上高电平时为有效 用来 完成单片机单片机的复位初始化操作 看门狗计时完成后 RST 引脚输出 96 个晶振周 期的高电平 特殊寄存器 AUXR 地址 8EH 上的 DISRTO 位可以使此功能无效 DISRTO 默认状态下 复位高电平有效 ALE 30 引脚 地址锁存控制信号 ALE 是访问外部程序存储器时 锁存低 8 位地址的输出脉冲 在 Flash 编程时 此引脚也用作编程输入脉冲 在一般情况下 ALE 以晶振六分之一的固定频率输出脉冲 可用来作为外部定时器 或时钟使用 然而 特别强调 在每次访问外部数据存储器时 ALE 脉冲将会跳过 如果需要 通过将地址位 8EH 的 SFR 的第 0 位置 1 ALE 操作将无效 这一位 置 1 ALE 仅在执行 MOVX 或 MOV 指令时有效 否则 ALE 将被微弱拉高 这个 ALE 使能标志位 地址位 8EH 的 SFR 的第 0 位 的设置对微控制器处于外部执行模式下无效 PSEN 29 引脚 是外部程序存储器选通信号 当 AT89C51RC 从外部程序存储器 执行外部代码时 在每个机器周期被激活两次 而访问外部数据存储器时 将不被激活 EA VPP 31 引脚 访问外部程序存储器控制信号 为使能从 0000H 到 FFFFH 的 外部程序存储器读取指令 必须接 GND 注意加密方式 1 时 将内部锁定位 RESET 为 了执行内部程序指令 应该接 VCC 在 Flash 编程期间 也接收 12 伏 VPP 电压 XTAL1 19 引脚 振荡器反相放大器和内部时钟发生电路的输入端 XTAL2 18 引脚 振荡器反相放大器的输入端 特殊功能寄存器 在 STC89C52RC 片内存储器中 80H FFH 共 128 个单元位特殊功能寄存器 SFR 单片机可实现 看门狗 功能 所谓 看门狗 是指在单片机构成的系统中 由于 单片机的工作可能受到来自外界电磁场的干扰 造成程序的跑飞 从而陷入死循环 程 序的正常运行被打断 由单片机控制的系统无法继续工作 这样会使整个系统处于停滞 状态 发生不可预料的后果 所以处于对单片机运行状态进行实时监测的考虑 便产生 了一种专门用于监测单片机程序运行状态的芯片 俗称 看门狗 STC 系列单片机内 部自带了看门狗 通过对相应的特殊功能寄存器的设置就可实现看门狗的应用 其相应 的功能及原理介绍见下表三 表三 看门狗 定时器寄存器的功能表 符号功能 EN WDT 看门狗允许位 当设置为 1 看门狗启动 武汉理工大学单片机实习报告 10 10 CLR WDT 看门狗清 0 位 当设为 1 时 看门狗将重新计数 硬件将自 动清 0 此位 IDLE WDT看门狗 IDLE 模式位 当设置为 1 时 看门狗定时器在 空闲 模式 计数 当清 0 该位时 看门狗在 空闲模式 时不计数 PS2 PS1 PS0 看门狗定时器预分频值 2 2 单片机最小系统 51 单片机最小系统复位电路的极性电容 C1 的大小直接影响单片机的复位时间 一 般采用 10 30uF 51 单片机最小系统容值越大需要的复位时间越短 51 单片机最小系统晶振 Y1 也可以采用 6MHz 或者 11 0592MHz 在正常工作的情况 下可以采用更高频率的晶振 51 单片机最小系统晶振的振荡频率直接影响单片机的处 理速度 频率越大处理速度越快 51 单片机最小系统起振电容 C2 C3 一般采用 15 33pF 并且电容离晶振越近越好 晶振离单片机越近越好 P0 口为开漏输出 作为输出口时需加上拉电阻 阻值一般为 10k 其他接口内部有 上拉电阻 作为输出口时不需外加上拉电阻 设置为定时器模式时 加 1 计数器是对内部机器周期计数 1 个机器周期等于 12 个 振荡周期 即计数频率为晶振频率的 1 12 计数值 N 乘以机器周期 Tcy 就是定时时 间 t 设置为计数器模式时 外部事件计数脉冲由 T0 或 T1 引脚输入到计数器 在每个机 器周期的 S5P2 期间采样 T0 T1 引脚电平 当某周期采样到一高电平输入 而下一周期 又采样到一低电平时 则计数器加 1 更新的计数值在下一个机器周期的 S3P1 期间装 入计数器 由于检测一个从 1 到 0 的下降沿需要 2 个机器周期 因此要求被采样的电平 至少要维持一个机器周期 当晶振频率为 12MHz 时 最高计数频率不超过 1 2MHz 即 计数脉冲的周期要大于 2 ms 武汉理工大学单片机实习报告 11 11 图 2 单片机最小系统图 2 3 键盘检测原理 键盘是计算机系统中不可缺少的输入设备 当键盘较少时可接成线性键盘 当按键 较多时接成矩阵的形式 可以节省口线 键盘是一组按键的组合 键通常是一种常开型 按钮开关 常态下键的两个触点处于断开状态 按下键时它们才闭合 短路 通常 键盘有编码和非编码两种 矩阵键盘每个按键都有它的行值和列值 行值和列值的组合 就是识别这个按键的编码 矩阵键盘的行线和列线分别通过两并行口中 一个输出扫描 码 使按键动态接地 称行扫描码 另一个并行口输入按键状态 称回馈信号 通 过编码识别不同的按键 再通过软件查表 查出该键的功能 转向不同的处理程序 因 此键盘处理程序的任务是 确定有无键按下 判断哪一个键按下 形成键编码 根据键 的功能 转相应的处理程序 武汉理工大学单片机实习报告 12 12 图 3 矩阵键盘 键扫描就是要判断有无键按下 当扫描到有键按下时再进行下一步处理 否则退出 键盘处理程序 独立式键盘扫描只需读取 IO 口状态 而矩阵式键盘描通常有两种实现方 法 逐行扫描法和线反转法 1 逐行扫描法 依次从第一至最末行线上发出低电平信号 如果该行线所连接的键 没有按下的话 则列线所接的端口得到的是全 1 信号 如果有键按下的话 则得到 非全 1 信号 2 线反转法 线反转法也是识别闭合键的一种常用方法 该法比行扫描速度快 但在硬件上要求 行线与列线外接上拉电阻 先将行线作为输出线 列线作为输入线 行线输出全 0 信号 读入列线的值 那么在闭合键所在的列线上的值必为 0 然后从列线输出全 0 信号 再读取行线的 输入值 闭合键所在的行线值必为 0 这样 当一个键被按下时 必定可读到一对唯一 的行列值 再由这一对行列值可以求出闭合键所在的位置 本次设计采用简单的逐行扫描的方式 2 4 数码管显示 数码管按段数分为七段数码管和八段数码管 八段数码管比七段数码管多一个发光 二极管单元 多一个小数点显示 按能显示多少个 8 可分为 1 位 2 位 4 位等等 数码管 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管 共阳数码管是指将 武汉理工大学单片机实习报告 13 13 所有发光二极管的阳极接到一起形成公共阳极 COM 的数码管 共阳数码管在应用时应 将公共极 COM 接到 5V 当某一字段发光二极管的阴极为低电平时 相应字段就点亮 当某一字段的阴极为高电平时 相应字段就不亮 共阴数码管是指将所有发光二极管的 阴极接到一起形成公共阴极 COM 的数码管 共阴数码管在应用时应将公共极 COM 接到 地线 GND 上 当某一字段发光二极管的阳极为高电平时 相应字段就点亮 当某一字段 的阳极为低电平时 相应字段就不亮 图 4 为数码管的内部原理图 图 4 数码管内部原理图 2 5 串口通信 串行接口 Serial Interface 是指数据一位一位地顺序传送 其特点是通信线路简 单 只要一对传输线就可以实现双向通信 并可以利用电话线 从而大大降低了成本 特别适用于远距离通信 但传送速度较慢 一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯 串行通讯的特点 是 数据位传送 传按位顺序进行 最少只需一根传输线即可完成 成本低但传送速度 慢 串行通讯的距离可以从几米到几千米 根据信息的传送方向 串行通讯可以进一步 分为单工 半双工和全双工三种 51 单片机的中断系统中第 4 个中断就是串口中断 要进行串口通信首先就要打开 CPU 总中断 EA 还要打开串口通信中断 ES 这是串口通信的前堤 串口通信也跟计时器 一样有很多的模式 因此我们还要设置 SCON 寄存器来指定采用哪一种方式进行通信 而 在通信的过程中 我们还要设定通信的波特率 不然的话 单片机是没办法进行采样的 这 样也不会得到正确的结果了 51 单片机串口波特率由内部定时器 1 产生 一般要让定时器 1 工作在自动装载的 8 武汉理工大学单片机实习报告 14 14 位模式 即工作方式 2 串口工作在方式 3 即 SM0 1 SM1 1 每一帧 9 位 无奇偶校 验 波特率由定时器 1 确定 本设计设定为 4800bps 图 5 串口通信帧的结构 2 6 ISP 下载电路 ISP 下载电路如图 7 所示 单片机 TTL 电平通过 MAX232 芯片转换成 RS232 电平 再经串口线转换成 USB 电平 图 6 ISP 下载电路 武汉理工大学单片机实习报告 15 15 3 硬件设计 3 1 实验总电路图 本次设计电路图见附录二 系统由 51 单片机 数码管 PNP 三极管 排阻 矩阵键盘 蜂鸣器 指示灯等部件 构成 其中数码管的段选信号线 a b c d e f g h 与 P0 口直接连接 以灌电流的方 式点亮数码管 位选信号通过三极管基极与 P1 口连接 三极管主要起提供数码管工作 电流的作用 因为 51 单片机的额 IO 口带负载能力很弱 直接连接不能够点亮数码管 矩阵键盘是 4X4 的大小 与 P2 口连接 分别为数字键 0 9 和功能切换键 从第一 排至下一次为 1 2 3 数据输入 4 5 6 数据显示 7 8 9 数据通信 0 删 除 回车 单片机指示灯与 P3 7 相连 当灯正常闪烁表示单片机正常工作 蜂鸣器用来指示按键按下是否有效 3 2 矩阵键盘 图 7 矩阵键盘图 武汉理工大学单片机实习报告 16 16 3 3 数码管显示 图 8 数码显示图 3 4 双机通信 图 9 双机通信图 4 软件设计及仿真 4 1 键盘输入及数码管显示 矩阵键盘扫描和执行响应功能函数在一个死循环里面 反复执行 矩阵键盘采用扫 描的方式检测 流程如下 图 10 扫描流程图 武汉理工大学单片机实习报告 17 17 4 2 PROTEUS 仿真 4 2 1 功能选择 键盘按下 数据输入 数据显示 或 数据通信 选择功能后按下 确定 键 即完成功能选择 4 2 2 数据输入 选择功能为数据输入后 在第 2 个数处输入 3977 仿真图如图 12 所示 图 11 数据输入仿真图 4 2 3 数据显示 选择功能为数据显示后 显示第 2 个数仿真图如图 12 所示 图 12 数据显示仿真图 4 2 4 数据通信 选择功能为数据通信后 输入 389021345 显示依次如图 13 所示 武汉理工大学单片机实习报告 18 18 图 13 数据通信仿真图 武汉理工大学单片机实习报告 19 19 5 硬件实物 5 1 硬件实物图 图 14 硬件实物图 武汉理工大学单片机实习报告 20 20 5 2 硬件运行图 图 15 数据输入与显示图 图 16 双机通信图 武汉理工大学单片机实习报告 21 21 6 小结 通过这次设计 我学到了很多书本上不曾学到的东西 这次的单片机课程设计是一 次综合性的实验设计 它将它将各种知识结合到一起综合运用到实践上来扩展 弥补 串联所学的知识 通过本次设计我得到了很多收获 首先 明确了单片机的构造以及工作原理单片机是一门非常重视实践的技术 不能 总是看书 但要学习它首先应看书 对单片机引脚 内部结构 寄存器和原理有一定地 了解和感官认识 其次掌握了 C 语言的编写程序 能够熟练使用 PROTEUS 和 KEIL 的仿真来实现 同 时掌握了如何收集 查阅 应用文献资料 如何根据实际需要有选择的阅读书籍和正确 确定系统所要使用的元器件的类型 当然 这其中也有很多问题 第一 在电路原理上 由于参考的原理图存在串口连 线错误导致程序无法下载进去 最终通过请教同学进行排查终于找到的原因 第二 由 于仿真与实物之间存在一定的差异性 仿真中某些原件的参数需要特别的设置才能让仿 真在电脑上正确运行 如 Proteus 中电阻多了要讲电阻默认的 ANALOG 模型设置为 DIGITAL 模型 用 PNP 三极管驱动数码管时三极管集电极要加下拉电阻才能正常工作 否则无论基极输入是高电平还是低电平 输出都是高电平 第三 在做人上 我认识到 无论做什么事情 首先要告诉自己能够完成 再运用所掌握的知识和查阅资料设计出完 成的思路 最后坚定的做下去 那样就没有什么办不到的 在这次难得的课程设计过程 中我锻炼了自己的思考能力和动手能力 通过题目选择和设计电路的过程中 加强了我 思考问题的完整性和实际生活联系的可行性 在方案设计选择和芯片的选择上 培养了 我们综合应用单片机的能力 对单片机的各个管脚的功能也有了进一步的认识 还锻炼 我们个人的查阅技术资料的能力 动手能力 发现问题 解决问题的能力 并且我们熟 练掌握了有关器件的性能及测试方法 再次感谢老师的辅导以及同学的帮助 是他们让我有了一个更好的认识 无论是学 习还是生活 生活是实在的 要踏实走路 课程设计时间虽然很短 但我学习了很多的 东西 使我眼界打开 感受颇深 武汉理工大学单片机实习报告 22 22 7 参考文献 1 尹勇 撒继铭等 单片计算机原理及应用 第 1 版 科学出版社 2013 年 2 谢自美 电子线路设计 实验 测试 第三版 武汉 华中科技大学出版社 3 李群芳 单片微型计算机与接口技术 第 3 版 电子工业出版社 2008 4 刘教瑜 单片机原理及应用 武汉理工大学出版社 2011 5 张东亮 单片机原理与应用 人民邮电出版社 2009 6 郭天祥 新概念 51 单片机 C 语言教程 入门 提高 开发 拓展 电子工业出版社 2009 武汉理工大学单片机实习报告 23 23 附录一 上位机程序 main c 作者 洪豆 日期 2015 12 6 名称 单片机应用实习 模块 7 段数码管 段选 p0 位选 P1 0 p1 5 矩阵键盘 P2 蜂鸣器 P3 6 LED 灯 P3 7 说明 矩阵键盘 1 2 3 数据输入 4 5 6 数据显示 7 8 9 数据通信 0 清除 确定空 include LED h include key h include State h sbit LED P3 7 void Tim0 Init void 定时器 0 初始化 void Serial Init void void SendString void void SendHandle void void main void Tim0 Init Serial Init while 1 keyScam SendHandle 武汉理工大学单片机实习报告 24 24 说明 定时器 0 初始化 设定 1ms 中断 void Tim0 Init TMOD 0X01 定时器工作方式 1 TH0 65536 1000 256 TL0 65536 1000 256 EA 1 ET0 1 TR0 1 说明 串口设定波特率 4800 void Serial Init SCON 0 x50 REN 1 允许串行接受状态 串口工作模式 2 TMOD 0 x20 定时器工作方式 2 PCON 0 x80 波特率提高一倍 TH1 0 xF3 baud 2 波特率 4800 起始位 0 数据位 8 停止位 1 效验位 无 TL1 0 xF3 2 SMOD 32 F0 xc 12 256 X TR1 1 开启定时器 1 说明 串口发送字符串 void SendString u8 i int count for i 0 i5000 避免死循环 武汉理工大学单片机实习报告 25 25 break TI 0 发送完成之后 将发送中断标志 TI 置 0 说明 串口处理 void SendHandle if SenOver SendString SenOver True 发送完成 1MS 定时器中断处理函数 说明 完成数码管的显示和按键的处理 unsigned char Circle 0 void task int interrupt 1 static u8 i TH0 65536 1000 256 1ms 中断 TL0 65536 1000 256 Circle Circle 1 3 if 0 Circle 执行周期 3ms LedHandle 数码管显示 else if 1 Circle keyHandle 按键值处理 else if 2 Circle i i 1 200 指示系统正常工作 if i 武汉理工大学单片机实习报告 26 26 LED 1 LED h ifndef LED H define LED H include include State h define Null 10 define showNum i P0 NUM i 显示段 define setLocation i P1 0X01 0 i 永远也跑不出去 void int2String u8 order 数字序号 u8 i u16 temp InputNum order if order 9 return NumString 0 order 武汉理工大学单片机实习报告 27 27 NumString 1 Null for i 0 i 4 i NumString 5 i temp 10 temp 10 i 2 while 0 NumString i 说明 在 loc 位置显示 num void LedShow u8 loc u8 num showNum Null 所有段位置暗 setLocation loc showNum num 说明 同时显示序号及其数据 u8 Order Null 数字序号 void LedShowOrder 放定时器中 static u8 loc 0 if Null Order LedShow 6 Null return 避免最后位出现残留现象 int2String Order loc loc 1 6 0 5 LedShow loc 1 NumString loc void LedShowString 武汉理工大学单片机实习报告 28 28 static u8 loc 0 loc loc 1 6 0 5 LedShow loc 1 NumString loc void LedHandle if SerialCommun ModeWork LedShowString else LedShowOrder KEY h ifndef KEY H define KEY H include include LED h include State h define BuzOn Buz 1 define BuzOff Buz 0 sbit Buz P3 6 extern u8 SenOver extern void keyScam void extern void keyHandle void endif key c include key h WorkMode ModeWork FuctionSelect 工作模式 WorkStep Step FirstStep 模式中哪一状态 延时函数 武汉理工大学单片机实习报告 29 29 void delay unsigned int t unsigned int i for t t 0 t for i 0 i 1100 i u8 key value 按键 1 16 u8 KeyHandled True 名称 keyScam void 说明 按键扫描 将按键值存放在 key value 中 void keyScam void u8 i if KeyHandled return for i 0 i 4 i P2 0X10 i if P2 if P2 指示按键状态 switch P2while P2break case 0 x0b key value i 5 while P2break case 0 x0d key value i 9 while P2break case 0 x0e key value i 13 while P2break default break KeyHandled False BuzOff 武汉理工大学单片机实习报告 30 30 void FuctionSelectPage 三个状态 static WorkMode ModeWorkTemp 按下回车前记录下选择的功能 u8 i switch Step case FirstStep if 4 key value ModeWorkTemp DataInput Step SecondStep else if 8 key value ModeWorkTemp DataShow Step SecondStep else if 12 key value ModeWorkTemp SerialCommun Step SecondStep break case SecondStep if 4 key value 覆盖之前的功能选择 ModeWorkTemp DataInput else if 8 key value ModeWorkTemp DataShow else if 12 key value ModeWorkTemp SerialCommun else if 15 key value 按下了回车确定键 Step FirstStep ModeWork ModeWorkTemp if ModeWork SerialCommun 串口通信方式 Order 0 for i 0 i 6 i NumString i Null break 武汉理工大学单片机实习报告 31 31 名称 key2Num 说明 将按键值对应是 0 9 数字的转换后返回 u8 key2Num u8 keyNum if keyNum 3 return keyNum else if keyNum4 return keyNum 1 else if keyNum8 return keyNum 2 else if 13 keyNum return 0 else return Null void DataInputPage switch Step case FirstStep if key2Num key value 10 Step SecondStep Order key2Num key value else if 15 key value 完成数据输入 Step FirstStep ModeWork FuctionSelect break case SecondStep if key2Num key value 10 Order key2Num key value else if 15 key value 回车 Step ThirdStep break case ThirdStep if key2Num key value 10 武汉理工大学单片机实习报告 32 32 InputNum Order InputNum Order 1000 InputNum Order 10 key2Num key value InputNum Order else if 14 key value 清除 Step FirstStep 作相应修改 日期 2016 1 12 Step ThirdStep InputNum Order 0 else if 15 key value 回车 Order Null Step FirstStep break void DataShowPage switch Step case FirstStep if key2Num key value 10 Step SecondStep Order key2Num key value else if 15 key value 回车 表示完成显示 退出 Order Null Step FirstStep ModeWork FuctionSelect break case SecondStep if 14 key value 清除 进入第一步 Step FirstStep Order Null else if 15 key value 回车 表示完成显示 退出 Order Null Step FirstStep ModeWork FuctionSelect break u8 SenOver True 武汉理工大学单片机实习报告 33 33 void SerialCommunPage u8 i if SenOver return if k

温馨提示

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

评论

0/150

提交评论