




免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理与接口技术单片机原理与接口技术 课程设计报告课程设计报告 姓姓 名名 梁家余 学学 号号 201004170314 院院 系系 自机学院 班班 级级 电气三班 指导教师指导教师 黄钺 冯维杰 王玮 20122012 年年 0606 月月 1 目目 录录 一 单片机数字电压表设计 2 1 设计任务 2 2 设计要求 2 3 设计思路 2 4 硬件电路设计 2 5 单片机系统 4 6 复位电路和时钟电路 6 6 1 复位电路设计 6 6 2 时钟电路设计 7 7 LED 显示系统设计 7 8 总体电路设计 10 9 程序设计 11 9 1 程序设计总方案 11 9 2 系统子程序设计 12 10 仿真 12 10 1 软件调试 12 11 显示结果及误差分析 13 11 1 显示结果 13 11 2 误差分 14 二 总结 15 三 参考文献 15 四 附录 15 2 一 单片机数字电压表设计一 单片机数字电压表设计 1 设计任务 基于 MCS 51 系列单片机 AT89C51 设计一个能测量 0 5V 直流电压的数字电压 表 2 设计要求 1 选用 A D 转换器 ADC0808 测定 0 5V 范围内的直流电压值 2 采集的数据送四位数码管实时显示 3 实现多路电压循环测量和循环显示 4 实现 0 500mA 电流的测量和显示 5 实现功率的测量 3 设计思路 1 根据设计要求 选择 AT89C51 单片机为核心控制器件 2 A D 转换采用 ADC0808 实现 与单片机的接口为 P1 口和 P2 口的高四位 引脚 3 电压显示采用 4 位一体的 LED 数码管 4 LED 数码的段码输入 由并行端口 P0 产生 位码输入 用并行端口 P2 低四位 产生 4 硬件电路设计 1 转换过程如下 开始时 寄存器各位清零 转换时 先将最高位置 1 把数据送入 A D 转 换器转换 转换结果与输入的模拟量比较 如果转换的模拟量比输入的模拟量 小 则 1 保留 如果转换的模拟量比输入的模拟量大 则 1 不保留 然后从第 二位依次重复上述过程直至最低位 最后寄存器中的内容就是输入模拟量对应 的二进制数字量 5 其原理框图如图 1 所示 顺序脉冲 发生器 主次逼近 寄存器 ADC 输入数字量输入电压 电压 比较器 图 1 逐次逼近式 A D 转换器原理图 2 ADC0808 主要特性 ADC0808 是 CMOS 单片型逐次逼近式 A D 转换器 带有使能控制端 与微机 直接接口 片内带有锁存功能的 8 路模拟多路开关 可以对 8 路 0 5V 输入模拟 3 电压信号分时进行转换 由于 ADC0808 设计时考虑到若干种模 数变换技术的长 处 所以该芯片非常适应于过程控制 微控制器输入通道的接口电路 智能仪 器和机床控制等领域 ADC0808 主要特性 8 路 8 位 A D 转换器 即分辨率 8 位 具有锁存控制的 8 路模拟开关 易与各种微控制器接口 可锁存三态输出 输出与 TTL 兼容 转换时间 128 s 转换精度 0 2 单个 5V 电源供电 模拟输入电压范围 0 5V 无需外部零点和满度调整 低功耗 约 15mW 3 ADC0808 的外部引脚特征 ADC0808 芯片有 28 条引脚 采用双列直插式封装 其引脚图如图 2 所示 图 2 ADC0808 引脚图 下面说明各个引脚功能 IN0 IN7 8 条 8 路模拟量输入线 用于输入和控制被转换的模拟电压 地址输入控制 4 条 ALE 地址锁存允许输入线 高电平有效 当 ALE 为高电平时 为地址输入 线 用于选择 IN0 IN7 上那一条模拟电压送给比较器进行 A D 转换 ADDA ADDB ADDC 3 位地址输入线 用于选择 8 路模拟输入中的一路 其对 应关系如表 1 所示 4 表 1 ADC0808 通道选择表 地址码 C B A 对应的输入通 道 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 START START 为 启动脉冲 输入法 该线上正脉冲由 CPU 送来 宽度应 大于 100ns 上升沿清零 SAR 下降沿启动 ADC 工作 EOC EOC 为转换结束输出线 该线上高电平表示 A D 转换已结束 数字量 已锁入三态输出锁存器 D1 D8 数字量输出端 D1 为高位 OE OE 为输出允许端 高电平能使 D1 D8 引脚上输出转换后的数字量 REF REF 参考电压输入量 给电阻阶梯网络供给标准电压 Vcc GND Vcc 为主电源输入端 GND 为接地端 一般 REF 与 Vcc 连接在 一起 REF 与 GND 连接在一起 CLK 时钟输入端 5 单片机系统 1 AT89C51 各引脚功能 AT89C51 提供以下标准功能 4KB 的 Flash 闪速存储器 128B 内部 RAM 32 个 I O 口线 两个 16 位定时 计数器 一个 5 向量两级中断结构 一个全双工 串行通信口 片内震荡器及时钟电路 同时 AT89C51 可降至 0Hz 静态逻辑操 作 并支持两种软件可选的节电工作模式 空闲方式停止 CPU 的工作 但允许 RAM 定时 计数器 串行通信口及中断系统继续工作 掉电方式保存 RAM 中的 内容 但震荡器停止工作并禁止其他所有工作直到下一个硬件复位 AT89C51 采用 PDIP 封装形式 引脚配置如图 3 所示 5 图 3 AT89C51 的引脚图 AT89C51 芯片的各引脚功能为 P0 口 这组引脚共有 8 条 P0 0 为最低位 这 8 个引脚有两种不同的功能 分别适用于不同的情况 第一种情况是 89C51 不带外存储器 P0 口可以为通用 I O 口使用 P0 0 P0 7 用于传送 CPU 的输入 输出数据 这时输出数据可以得 到锁存 不需要外接专用锁存器 输入数据可以得到缓冲 增加了数据输入的 可靠性 第二种情况是 89C51 带片外存储器 P0 0 P0 7 在 CPU 访问片外存储 器时先传送片外存储器的低 8 位地址 然后传送 CPU 对片外存储器的读 写数据 P0 口为开漏输出 在作为通用 I O 使用时 需要在外部用电阻上拉 P1 口 这 8 个引脚和 P0 口的 8 个引脚类似 P1 7 为最高位 P1 0 为最低 位 当 P1 口作为通用 I O 口使用时 P1 0 P1 7 的功能和 P0 口的第一功能相 同 也用于传送用户的输入和输出数据 P2 口 这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为 通用 I O 口使用 它的第一功能和 P0 口引脚的第二功能相配合 用于输出片外 存储器的高 8 位地址 共同选中片外存储器单元 但并不是像 P0 口那样传送存 储器的读 写数据 P3 口 这组引脚的第一功能和其余三个端口的第一功能相同 第二功能为 控制功能 每个引脚并不完全相同 如下表 2 所示 6 表 2 P3 口各位的第二功能 P3 口各位第二功能 P3 0 RXT 串行口输入 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 片外数据存储器读允许 Vcc 为 5V 电源线 Vss 接地 ALE 地址锁存允许线 配合 P0 口的第二功能使用 在访问外部存储器时 89C51 的 CPU 在 P0 0 P0 7 引脚线去传送随后而来的片外存储器读 写数据 在 不访问片外存储器时 89C51 自动在 ALE 线上输出频率为 1 6 震荡器频率的脉 冲序列 该脉冲序列可以作为外部时钟源或定时脉冲使用 EA 片外存储器访问选择线 可以控制 89C51 使用片内 ROM 或使用片外 ROM 若 EA 1 则允许使用片内 ROM 若 EA 0 则只使用片外 ROM PSEN 片外 ROM 的选通线 在访问片外 ROM 时 89C51 自动在 PSEN 线上 产生一个负脉冲 作为片外 ROM 芯片的读选通信号 RST 复位线 可以使 89C51 处于复位 即初始化 工作状态 通常 89C51 复 位有自动上电复位和人工按键复位两种 XTAL1 和 XTAL2 片内震荡电路输入线 这两个端子用来外接石英晶体和微 调电容 即用来连接 89C51 片内 OSC 震荡器 的定时反馈回路 6 复位电路和时钟电路 1 复位电路设计 单片机在启动运行时都需要复位 使 CPU 和系统中的其他部件都处于一个 确定的初始状态 并从这个状态开始工作 MCS 51 单片机有一个复位引脚 RST 采用施密特触发输入 当震荡器起振后 只要该引脚上出现 2 个机器周期以上 的高电平即可确保时器件复位 1 复位完成后 如果 RST 端继续保持高电平 MCS 51 就一直处于复位状态 只要 RST 恢复低电平后 单片机才能进入其他工 7 作状态 单片机的复位方式有上电自动复位和手动复位两种 图 4 是 51 系列单 片机统常用的上电复位和手动复位组合电路 只要 Vcc 上升时间不超过 1ms 它们都能很好的工作 图 4 复位电路 2 时钟电路设计 单片机中 CPU 每执行一条指令 都必须在统一的时钟脉冲的控制下严格按 时间节拍进行 而这个时钟脉冲是单片机控制中的时序电路发出的 CPU 执行 一条指令的各个微操作所对应时间顺序称为单片机的时序 MCS 51 单片机芯片 内部有一个高增益反相放大器 用于构成震荡器 XTAL1 为该放大器的输入端 XTAL2 为该放大器输出端 但形成时钟电路还需附加其他电路 本设计系统采用内部时钟方式 利用单片机内部的高增益反相放大器 外 部电路简单 只需要一个晶振和 2 个电容即可 如图 5 所示 图 5 时钟电路 电路中的器件选择可以通过计算和实验确定 也可以参考一些典型电路的 参数 电路中 电容器 C1 和 C2 对震荡频率有微调作用 通常的取值范围是 30 10pF 在这个系统中选择了 33pF 石英晶振选择范围最高可选 24MHz 它 决定了单片机电路产生的时钟信号震荡频率 在本系统中选择的是 12MHz 因 而时钟信号的震荡频率为 12MHz 7 LED 显示系统设计 1 LED 基本结构 LED 是发光二极管显示器的缩写 LED 由于结构简单 价格便宜 与单片机 接口方便等优点而得到广泛应用 LED 显示器是由若干个发光二极管组成显示 字段的显示器件 6 在单片机中使用最多的是七段数码显示器 LED 七段数码 8 显示器由 8 个发光二极管组成显示字段 其中 7 个长条形的发光二极管排列成 日 字形 另一个圆点形的发光二极管在显示器的右下角作为显示小数点用 其通过不同的组合可用来显示各种数字 LED 引脚排列如下图 6 所示 图 6 LED 引脚排列 2 LED 显示器的选择 在应用系统中 设计要求不同 使用的 LED 显示器的位数也不同 因此就 生产了位数 尺寸 型号不同的 LED 显示器供选择 在本设计中 选择 4 位一 体的数码型 LED 显示器 简称 4 LED 本系统中前一位显示电压的整数位 即个位 后两位显示电压的小数位 4 LED 显示器引脚如图 7 所示 是一个共阴极接法的 4 位 LED 数码显示管 其中 a b c e f g 为 4 位 LED 各段的公共输出端 1 2 3 4 分别是每 一位的位数选端 dp 是小数点引出端 4 位一体 LED 数码显示管的内部结构是 由 4 个单独的 LED 组成 每个 LED 的段输出引脚在内部都并联后 引出到器件 的外部 图 7 4 位 LED 引脚 对于这种结构的 LED 显示器 它的体积和结构都符合设计要求 由于 4 位 LED 阴极的各段已经在内部连接在一起 所以必须使用动态扫描方式 将所有 数码管的段选线并联在一起 用一个 I O 接口控制 显示 9 3 LED 译码方式 译码方式是指由显示字符转换得到对应的字段码的方式 对于 LED 数码管 显示器 通常的译码方式有硬件译码和软件译码方式两种 硬件译码是指利用专门的硬件电路来实现显示字符码的转换 软件译码就是编写软件译码程序 通过译码程序来得到要显示的字符的字 段码 译码程序通常为查表程序 本设计系统中为了简化硬件线路设计 LED 译码采用软件编程来实现 由 于本设计采用的是共阴极 LED 其对应的字符和字段码如下表 3 所示 表 3 共阴极字段码表 显示字符共阴极字段码 03FH 106H 25BH 34FH 466H 56DH 67DH 707H 87FH 96FH 4 LED 显示器与单片机接口设计 由于单片机的并行口不能直接驱动 LED 显示器 所以 在一般情况下 必 须采用专用的驱动电路芯片 使之产生足够大的电流 显示器才能正常工作 如果驱动电路能力差 即负载能力不够时 显示器亮度就低 而且驱动电路长 期在超负荷下运行容易损坏 因此 LED 显示器的驱动电路设计是一个非常重 要的问题 为了简化数字式直流电压表的电路设计 在 LED 驱动电路的设计上 可以 利用单片机 P0 口上外接的上拉电阻来实现 即将 LED 的 A G 段显示引脚和 DP 小数点显示引脚并联到 P0 口与上拉电阻之间 这样 就可以加大 P0 口作为输 出口的驱动能力 使得 LED 能按照正常的亮度显示出数字 如图 8 所示 10 图 8LED 与单片机接口间的设计 8 总体电路设计 经过以上的设计过程 可设计出基于单片机的数字直流电压表硬件电路原 理图如图 9 所示 图 9 基于单片机的数字电压表 proteus 仿真 此电路的工作原理是 5V 模拟电压信号通过变阻器 VR1 分压后由 ADC08008 的 IN7 通道进入 由于使用的 IN0 通道 所以 ADDA ADDB ADDC 均接 低电平 经过模 数转换后 产生相应的数字量经过其输出通道 D0 D7 传送给 AT89C51 芯片的 P1 口 AT89C51 负责把接收到的数字量经过数据处理 产生正 确的 7 段数码管的显示段码传送给四位 LED 同时它还通过其四位 I O 口 P2 0 P2 1 P2 2 P2 3 产生位选信号控制数码管的亮灭 此外 AT89C51 还 11 控制 ADC0808 的工作 其中 单片机 AT89C51 通过定时器中断从 P2 4 输出方波 接到 ADC0808 的 CLOCK P2 6 发正脉冲启动 A D 转换 P2 5 检测 A D 转换是否 完成 转换完成后 P2 7 置高从 P1 口读取转换结果送给 LED 显示出来 数字直流电压表的硬件电路已经设计完成 就可以选取相应的芯片和元器 件 利用 Proteus 软件绘制出硬件的原理 并仔细地检查修改 直至形成完善 的硬件原理图 但要真正实现电路对电压的测量和显示的功能 还需要有相应 的软件配合 才能达到设计要求 9 程序设计 1 程序设计总方案 根据模块的划分原则 将该程序划分初始化模块 A D 转换子程序和显示 子程序 这三个程序模块构成了整个系统软件的主程序 如图 10 所示 开始 调用A D转换子程序 调用显示子程序 结束 初始化 图 10 数字式直流电压表主程序框图 2 系统子程序设计 1 初始化程序 所谓初始化 是对将要用到的 MCS 51 系列单片机内部部件或扩展芯片进行 初始工作状态设定 初始化子程序的主要工作是设置定时器的工作模式 初值 预置 开中断和打开定时器等 2 A D 转换子程序 12 A D 转换子程序用来控制对输入的模块电压信号的采集测量 并将对应的 数值存入相应的内存单元 其转换流程图如图 11 所示 图 11 A D 转换流程图 3 显示子程序 显示子程序采用动态扫描实现四位数码管的数值显示 在采用动态扫描显 示方式时 要使得 LED 显示的比较均匀 又有足够的亮度 需要设置适当的扫 描频率 当扫描频率在 70HZ 左右时 能够产生比较好的显示效果 一般可以采 用间隔 10ms 对 LED 进行动态扫描一次 每一位 LED 的显示时间为 1ms 在本设计中 为了简化硬件设计 主要采用软件定时的方式 即用定时器 0 溢出中断功能实现 11 s 定时 通过软件延时程序来实现 5ms 的延时 10 仿真 1 软件调试 软件调试的主要任务是排查错误 错误主要包括逻辑和功能错误 这些错 误有些是显性的 而有些是隐形的 可以通过仿真开发系统发现逐步改正 Proteus 软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真 用户甚至可以实时采用诸如 LED LCD 键盘 RS232 终端等动态外设模型来对设 计进行交互仿真 Proteus 支持的微处理芯片包括 8051 系列 AVR 系列 PIC 系列 HC11 系列及 Z80 等等 Proteus 可以完成单片机系统原理图电路绘制 13 PCB 设计 更为显著点的特点是可以与 u Visions3 IDE 工具软件结合进行编程 仿真调试 本系统的调试主要以软件为主 其中 系统电路图的绘制和仿真我采用的是 Proteus 软件 而程序方面 采用的是汇编语言 用 Keil 软件将程序写入单片 机 11 显示结果及误差分析 显示结果 1 当 IN0 输入电压值为 2 30V 时 显示结果如图 12 所示 测量误差为 0 08V 图 12 输入电压为 2 30V 时 LED 的显示结果为 238mv 2 当 IN0 口输入电压值为 2 50V 时 显示结果如图 13 测量误差为 0 04V 14 图 13 输入电压为 2 50V 时 LED 的显示结果为 2540mv 误差分析 通过以上仿真测量结果可得到数字电压表与 标准 数字电压表对比测试 表 如下表 4 所示 表 4 简易数字电压表与 标准 数字电压表对比测试表 标准电压值 V电压表测量值 V绝对误差 0 000 000 00 0 500 520 02 1 001 020 02 1 501 540 04 2 302 380 08 2 502 540 04 3 003 060 06 3 503 560 06 4 004 080 08 5 005 100 10 由于单片机 AT89C51 为 8 位处理器 当输入电压为 5 00V 时 ADC0808 输 出数据值为 255 FFH 因此单片机最高的数值分辨率为 0 0196V 5 255 这 15 就决定了电压表的最高分辨率只能到 0 0196V 从上表可看到 测试电压一般 以 0 01V 的幅度变化 从上表可以看出 简易数字电压表测得的值基本上比标 准电压值偏大 0 0 01V 这可以通过校正 ADC0808 的基准电压来解决 因为该 电压表设计时直接用 5V 的供电电源作为电压 所以电压可能有偏差 当要测量 大于 5V 的电压时 可在输入口使用分压电阻 而程序中只要将计算程序的除数 进行调整就可以了 二 总结二 总结 经过一段时间的努力 课程设计基于单片机的数字电压表基本完成 但设 计中的不足之处仍然存在 在电路中用 Proteus 软件实现了仿真 在这过程中 使我对电路设计和单片机的使用等都有了新的认识 通过这次设计学会了 Proteus 和 Keil 软件的使用方法 掌握了从系统的需要 方案的设计 功能模 块的划分 原理图的设计和电路图的仿真的设计流程 积累了不少经验 基于单片机的数字电压表使用性强 结构简单 成本低 外接元件少 在 实际应用工作应能好 测量电压准确 精度高 系统功能 指标达到了课题的 预期要求 系统在硬件设计上充分考虑了可扩展性 经过一定的改造 可以增 加功能 本文设计主要实现了数字电压表测量一路电压的功能 详细说明了从 原理图的设计 电路图的仿真再到软件的调试 通过本次设计 我对单片机这门课有了进一步的了解 无论是在硬件连接 方面还是在软件编程方面 本次设计采用了 AT89C51 单片机芯片 与以往的单 片机相比增加了许多新的功能 使其功能更为完善 应用领域也更为广泛 设 计中还用到了模 数转换芯片 ADC0808 以前在学单片机课程时只是对其理论知 识有了初步的理解 通过这次设计 对它的工作原理有了更深的理解 在调试 过程中遇到很多问题 但经过老师和同学不懈努力最终解决了问题 总之这次电路的设计和仿真 基本上达到了设计的功能要求 在以后的实 践中 我将继续努力学习电路设计方面的理论知识 并理论联系实际 争取在 电路设计方面能有所提升 三 参考文献三 参考文献 1 单片机原理及接口技术 2 数字电路逻辑设计 3 单片机原理与程序设计实验教程 四 附录四 附录 16 程序代码 LED 0EQU 30H 个位 LED 1EQU 31H 十位 LED 2EQU 32H 百位 LED 3EQU 33H 存放千位段码 ADCEQU 35H CLOCKBIT P1 4 定义 0809 时钟位 STBIT P1 5 EOCBIT P1 6 OEBIT P1 7 ORG 00H SJMPSTART ORG 0BH LJMPINT T0 ORG 30H START MOV LED 0 00H MOV LED 1 00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 坚果有机肥制备创新创业项目商业计划书
- 2025年交通安全知识竞赛题库及参考答案
- 初中数学解一元一次方程教学案例
- 端午公司发圈方案
- 300字大学生自荐信
- 6.3.3统计图的选择课件北师大版七年级数学上册
- 1.1细胞是生命活动的基本单位课件高一上学期生物人教版必修1
- 受限空间安全专项培训课件
- 浙江安全员b证及答案
- 天津安全员要求考试及答案
- XX学校(幼儿园)食堂管理各岗位廉政(廉洁)风险点及防控措施一览表
- 2069-3-3101-002WKB产品判定准则-外发
- GB/T 18948-2017内燃机冷却系统用橡胶软管和纯胶管规范
- 2020年户口本模板
- 全套课件-食品营养学-王莉
- htri手册HTRIExchanger使用手册
- 四年级数学上册试题 一课一练2.3《平移与平行》习题1-北师大版(含答案)
- 小学英语外研版5A Unit2 They sell many different things Module 2部优课件
- 9.10.11有机、酸碱一般排-盛剑
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 毕业设计-太平哨水利枢纽引水式水电站设计
评论
0/150
提交评论