心形流水灯课程设计.doc_第1页
心形流水灯课程设计.doc_第2页
心形流水灯课程设计.doc_第3页
心形流水灯课程设计.doc_第4页
心形流水灯课程设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

此文档收集于网络 如有侵权 请 联系网站删除 精品文档 心形流水灯设计 摘 要 本课题是利用 STC89C52 设计了一个心形流水灯电路 该电路可以实现 32 个 LED 灯循环闪亮 依次熄灭 对角闪亮 对角熄灭 间隔闪亮 间隔熄灭等多种功能 该 电路主要由单片机芯片 STC89C52 电源电路 时钟电路 复位电路和显示电路组成 利用 Keil 软件编写 C 语言程序 并生成目标代码 Hex 文件 使用 Proteus 软件设计仿 真电路 并调入已编译好的目标代码 即可在仿真图中看到模拟实物的运行状态和过 程 使用 Altium Designer 软件对电路进行原理图设计和 PCB 设计 并对该电路行安装 和调试 调试结果可以实现流水灯的多种亮灭循环的功能 关键词 AT89C52 复位电路 时钟电路 发光二极管 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 目 录 1 绪论 1 1 1 课题描述 1 1 2 基本工作原理及框图 1 2 相关芯片及硬件电路设计 2 2 1 AT89C52 芯片 2 2 1 1 AT89C52 的功能特性 2 2 1 2 AT89C52 的主要性能参数 2 2 2 时钟电路 3 2 3 复位电路 4 2 4 显示电路 4 2 6 总原理图设计 5 3 系统软件设计 6 3 1 程序主要流程 6 3 2 程序设计 7 3 4 电路功能仿真 20 总 结 21 致 谢 22 参考文献 23 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 1 绪论 1 1 课题描述 随着现代科学技术的持续进步和发展以及人们生活水平的不断提高 以大规模 超大规模集成电路为首的电子工艺技术的使用也越来越广泛 结合单片机技术设计的 电子电路也层出不穷 LED 彩灯由于其丰富的灯光色彩 低廉的造价以及控制简单等 特点而得到了广泛的应用 用彩灯来装饰街道和城市建筑物已经成为一种时尚 利用 控制电路可使彩灯按一定的规律不断的改变状态 不仅可以获得良好的观赏效果 而 且可以省电 彩灯的运用已经遍布于人们的生活中 从歌舞厅到卡拉 OK 包房 从节日的祝贺 到日常生活中的点缀 这些不仅说明了我们对生活的要求有了质的飞跃 也说明科技 在现实生活中的运用有了较大的发展 在这一设计中我们将运用单片机技术 与单片 机芯片 STC89C52 的功能 对心形流水灯系统进行设计 来实现流水灯的多种亮与灭 的循环 给人带来美感 1 1 2 基本工作原理及框图 本课程设计的 XX 系统原理如图 1 所示 图 1 基本工作原理框图 电源电路 显示电路 AT89C52 时钟电路 复位电路 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 2 相关芯片及硬件电路设计 2 1 AT89C52 芯片 图 2 AT89C52 引脚图 2 1 1 AT89C52 的功能特性 STC89C52 是 STC 公司生产的一种低功耗 高性能的微控制器 具有 8K 的系统 可编程 Flash 存储器 其具有传统 51 单片机不具备的功能 在经典的 MCS 51 内核上 做了很多的改进 使得 STC89C52 在处理嵌入式控制应用系统时更加高效 灵活 STC89C52 具有以下标准功能 4 个外部中断 全双工串行口 一个 7 向量 4 级中断结 构 3 个 16 位定时器 计数器 8K 字节 Flash 512 字节 RAM 随机存储器 看门狗 定时器 其 12 周期和 6 周期可以任意选择 其工作电压在 3V 5 5V 之间 工作频率在 0 40MHZ 实际工作频率可达 48MHZ 2 其管脚的封装图如图 2 所示 2 1 2 AT89C52 的主要性能参数 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 AT89C52 主要性能参数如下 与 MC 51 产品指令系统完全兼容 VCC 38 脚 芯片电源 接 5V GND 16 脚 接地端 XTAL1 15 脚 片内振荡器反相放大器和时钟发生器电路的输入端 当使 用片内振荡器时 该引脚连接外部石英晶体和微调电容 当采用外接时钟源时 该引 脚接外部时钟振荡器的信号 XTAL2 14 脚 片内振荡器反相放大器的输出端 当使用片内振荡器时 该引脚连接外部石英晶体和微调电容 当采用外部时钟源时 该引脚悬空 ALE 27 脚 用来锁存 P0 口送出的低 8 位地址 PSEN 26 脚 外部 ROM 读选通信号 RST 4 脚 复位信号输入端 EA Vpp 29 脚 内外 ROM 选择 片内 EPROM 编程电源 P0 口 8 位 漏极开路的双向 I O 口 P1 口 8 位 准双向 I O 口 具有内部上拉电阻 P2 口 8 位 准双向 I O 口 具有内部上拉电阻 P3 口 8 位 准双向 I O 口 具有内部上拉电阻 2 2 时钟电路 单片机内有一个由反相放大器所构成的振荡电路 XTAL1 和 XTAL2 分别为振荡 电路的输入端和输出端 在 XTAL1 和 XTAL2 引脚上外接石英晶体和微调电容构成并 联振荡回路 晶振频率设置为 11 0592MHZ 作用是产生时钟信号 单片机晶振提供的 时钟频率越高 那么单片机运行速度就越快 单片接的一切指令的执行都是建立在单 片机晶振提供的时钟频率 电容值为 30pF 可以起到频率微调作用 3 时钟电路如图 3 所示 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 XTAL1 30pF C4 30pF C5 GND XTAL1XTAL2 图 3 时钟电路图 2 3 复位电路 单片机 RST 接口为复位信号输入端 高电平有效 在该引脚上加上持续时间大于 两个机器周期的高电平 就可以使单片机复位 在单片机正常工作时 此引脚应为小 于或等于 0 5V 的低电平 复位电路接单片机 RST 端口 在 RST 输入端出现高电平时实 现复位和初始化 4 复位电路如 4 所示 R20 0 1uF C3 GND VCC REST 图 4 复位电路 2 4 显示电路 单片机的 P0 口为 8 位的漏极开路的双向 I O 口 当 P0 口作为普通的 I O 口使用时 需要上拉电阻 这时为准双向口 P1 P2 P3 都为 8 位的准双向口 具有内部上拉电阻 图 5 为显示电路 单片机 I O 口一对 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 一直接控制 LED 灯 显示电路中的 32 个电阻既为上拉电阻 也起到电路 分 压作用 防止烧坏元器件 5 显示电路如图 5 所示 R1 LED1VCC R3 LED3 R5 LED5 R7 LED7 R9 LED9 R11 LED11 R14 LED13 R16 LED15 R2 LED2VCC R4 LED4 R6 LED6 R8 LED8 R10 LED10 R12 LED12 R15 LED14 R17 LED16 LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 LED17 LED18 LED19 LED20 LED21 LED22 LED23 LED24 R21 LED17VCC R23 LED19 R25 LED21 R27 LED23 R29 LED25 R31 LED27 R33 LED29 R35 LED31 R22 LED18VCC R24 LED20 R26 LED22 R28 LED24 R30 LED26 R32 LED28 R34 LED30 R36 LED32 LED9 LED10 LED11 LED12 LED13 LED14 LED15 LED16 LED25 LED26 LED27 LED28 LED29 LED30 LED31 LED32 图 5 显示电路图 2 6 总原理图设计 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 总结时钟电路 复位电路 以及显示电路 把其放入一个电路 得到总体的电路 总体电路如图 6 所示 图 6 电路原理图 3 系统软件设计 3 1 程序主要流程 单片机的应用系统由硬件和软件组成 在硬件原理图搭建完成上电之后 暂时还 不能看到流水灯循环点亮的现象 还需要编写程序控制单片机管脚电平的高低变化 来实现 LED 灯的各种亮灭功能 先将 P0 P1 P2 P3 全部置 1 即通入高电平 用 16 进制表示为 0XFFH 则 32 个 LED 灯全部处于熄灭状态 然后给 P0 口赋值 0X7FH 即只有 P0 0 处于低电平时 LED1 灯点亮 使用延时函数 delay 并设置延时时间为 2 秒 延时时间一到 P0 口的值 就变为 0X3FH 即 P0 0 和 P0 1 都为高电平 LED2 也开始点亮 如此循环 P0 口控制的 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 8 个 LED 灯全部点亮 当高电平变为低电平时 LED 灯熄灭 P1 P2 P3 口控制的 LED 灯闪亮和熄灭原理同 P0 口一样 所以就可以看到 LED 灯的流水效果了 6 程序 流程图如图 7 所示 低电平 高电平 图 7 程序设计流程图 3 2 程序设计 include include 开始 读取 I O 口状态 判断 I O 口状态 LED 灯熄灭 结束 LED 灯点亮 延时 灯流动运行 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 defineuint unsigned int defineuchar unsigned char uchar code table 0 xfe 0 xfc 0 xf8 0 xf0 0 xe0 0 xc0 0 x80 0 x00 逐个点亮 0 7 uchar code table1 0 x7f 0 x3f 0 x1f 0 x0f 0 x07 0 x03 0 x01 0 x00 逐个点亮 7 0 uchar code table2 0 x01 0 x03 0 x07 0 x0f 0 x1f 0 x3f 0 x7f 0 xff 逐个灭 0 7 uchar code table3 0 x80 0 xc0 0 xe0 0 xf0 0 xf8 0 xfc 0 xfe 0 xff 逐个灭 7 0 void delay uint t 延时 void zg uint t uchar a 两边逐个亮 void qs uint t uchar a 全部闪烁 void zgxh uint t uchar a 逆时针逐个点亮 void zgxh1 uint t uchar a 顺时针逐个点亮 void djs uint t uchar a 对角闪 void lbzgm uint t uchar a 两边逐个灭 void sszgm uint t uchar a 顺时针逐个灭 void nszgm uint t uchar a 逆时针逐个灭 void sztl uint t uchar a 顺时逐个同步亮 void nztl uint t uchar a 逆时逐个同步亮 void sztm uint t uchar a 顺时逐个同步灭 void nztm uint t uchar a 逆时逐个同步灭 void hwzjl uint t uchar a 横往中间亮 void hwzjm uint t uchar a 横往中间灭 void swzjl uint t uchar a 竖往中间亮 void swzjm uint t uchar a 竖往中间灭 void nzdl uint t uchar a 逆时逐段亮 void nzdgl uint t uchar a 逆时逐段一个点亮 void jgs uint t uchar a 间隔闪 void zg uint t uchar a 两边逐个亮 uchar i j for j 0 j a j P0 P1 P2 P3 0 xff P0 0 x7f delay t for i 0 i 7 i P0 table1 i 1 P2 table1 i delay t P2 0 x00 P1 0 xfe delay t for i 0 i 7 i P1 table i 1 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 P3 table1 i delay t P3 0 x00 delay t void qs uint t uchar a 全部闪烁 uchar j for j 0 j a j P0 P1 P2 P3 0 xff delay t P0 P1 P2 P3 0 x00 delay t void zgxh uint t uchar a 逆时针逐个点亮 uchar i j for j 0 j a j P0 P1 P2 P3 0 xff for i 0 i 8 i P0 table1 i delay t for i 0 i 8 i P1 table i delay t for i 0 i 8 i P3 table i delay t for i 0 i 8 i P2 table i delay t 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 void nszgm uint t uchar a 逆时针逐个灭 uchar i j for j 0 j a j P0 P1 P2 P3 0 x00 for i 0 i 8 i P0 table3 i delay t for i 0 i 8 i P1 table2 i delay t for i 0 i 8 i P3 table2 i delay t for i 0 i 8 i P2 table2 i delay t void zgxh1 uint t uchar a 顺时针逐个点亮 uchar i j for j 0 j a j P0 P1 P2 P3 0 xff for i 0 i 8 i P2 table1 i delay t for i 0 i 8 i P3 table1 i delay t for i 0 i 8 i P1 table1 i 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 delay t for i 0 i 8 i P0 table i delay t void sszgm uint t uchar a 顺时针逐个灭 uchar i j for j 0 j a j P0 P1 P2 P3 0 x00 for i 0 i 8 i P2 table3 i delay t for i 0 i 8 i P3 table3 i delay t for i 0 i 8 i P1 table3 i delay t for i 0 i 8 i P0 table2 i delay t void djs uint t uchar a 对角闪 uchar j for j 0 j a j P0 P1 P2 P3 0 xff P0 P3 0 x00 delay t P0 P1 P2 P3 0 xff P1 P2 0 x00 delay t 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 void lbzgm uint t uchar a 两边逐个灭 uchar i j for j 0 j1 i P1 table i 1 P3 table1 i 2 delay t P1 0 xfe P3 0 xff delay t P1 0 xff P2 0 x01 delay t for i 7 i 1 i P0 table1 i 1 P2 table1 i 2 delay t P0 0 x7f P2 0 xff delay t P0 0 xff delay t void sztl uint t uchar a 顺时逐个同步亮 uchar i j for j 0 j a j P0 P1 P2 P3 0 xff for i 0 i 8 i P0 table i P1 P2 P3 table1 i delay t void nztl uint t uchar a 逆时逐个同步亮 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 uchar i j for j 0 j a j P0 P1 P2 P3 0 xff for i 0 i 8 i P0 table1 i P1 P2 P3 table i delay t void sztm uint t uchar a 顺时逐个同步灭 uchar i j for j 0 j a j P0 P1 P2 P3 0 x00 for i 0 i 8 i P0 table2 i P1 P2 P3 table3 i delay t void nztm uint t uchar a 逆时逐个同步灭 uchar i j for j 0 j a j P0 P1 P2 P3 0 xff for i 0 i 8 i P0 table3 i P1 P2 P3 table2 i delay t void hwzjl uint t uchar a 横往中间亮 uchar i j for j 0 j a j 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 P0 P1 P2 P3 0 xff for i 0 i 8 i P0 P2 P1 table1 i P3 table i delay t void hwzjm uint t uchar a 横往中间灭 uchar i j for j 0 j a j P0 P1 P2 P3 0 x00 for i 0 i 8 i P0 P2 P1 table3 i P3 table2 i delay t void swzjl uint t uchar a 竖往中间亮 uchar i j for j 0 j a j P0 P1 P2 P3 0 xff for i 0 i 8 i P0 P2 P1 table i P3 table1 i delay t void swzjm uint t uchar a 竖往中间灭 uchar i j for j 0 j a j P0 P1 P2 P3 0 x00 for i 0 i 8 i P0 P2 P1 table2 i 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 P3 table3 i delay t void nzdl uint t uchar a 逆时逐段亮 uchar i j for j 0 j a j P0 P1 P2 P3 0 xff for i 0 i 8 i P0 table1 i delay t P0 0 xff for i 0 i 8 i P1 table i delay t P1 0 xff for i 0 i 8 i P3 table i delay t P3 0 xff for i 0 i 8 i P2 table i delay t P2 0 xff void nzdgl uint t uchar a 逆时逐段一个点亮 uchar i j k l for j 0 j a j k table1 0 P0 k l table 0 P1 P2 P3 l delay t 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 for i 0 i 8 i k crol k 1 P0 k l crol l 1 P1 P2 P3 l delay t void jgs uint t uchar a 间隔闪 uchar j for j 0 j a j P0 0 x55 P1 P2 P3 0 xaa delay t P0 0 xaa P1 P2 P3 0 x55 delay t void main uchar i while 1 zg 100 1 两边逐个亮 lbzgm 100 1 两边逐个灭 jgs 300 10 djs 100 20 对角闪 P1 P2 P3 0 xff for i 0 i 3 i P0 0 x00 delay 800 P0 0 xff delay 800 P0 0 x00 for i 0 i 3 i P1 0 x00 delay 800 P1 0 xff delay 800 P1 0 x00 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 for i 0 i 3 i P3 0 x00 delay 800 P3 0 xff delay 800 P3 0 x00 for i 0 i 3 i P2 0 x00 delay 800 P2 0 xff delay 800 qs 500 3 for i 0 i 6 i zgxh 50 1 nszgm 50 1 djs 100 20 对角闪 for i 0 i 3 i zg 100 1 两边逐个亮 lbzgm 100 1 两边逐个灭 qs 200 10 djs 100 50 for i 0 i 5 i sztl 200 1 顺时逐个同步亮 nztm 200 1 nztl 200 1 sztm 200 1 顺时逐个同步灭 djs 300 10 对角闪 nzdgl 300 10 逆时逐段一个点亮 jgs 300 10 间隔闪 for i 0 i 3 i zgxh 100 1 nszgm 100 1 for i 0 i 5 i zgxh1 100 1 sszgm 100 1 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 nzdl 200 3 逆时逐段亮 jgs 50 100 间隔闪 P0 P1 P2 P3 0 xff for i 0 i 8 i P0 table1 i delay 200 for i 0 i 8 i P1 table i delay 200 for i 0 i 3 i P0 P1 0 x00 delay 200 P0 P1 0 xff delay 200 for i 0 i 8 i P2 table1 i delay 200 for i 0 i 8 i P3 table1 i delay 200 for i 0 i 3 i P2 P3 0 x00 delay 200 P2 P3 0 xff delay 200 nzdgl 50 40 逆时逐段一个点亮 for i 0 i 4 i zg 100 1 qs 100 10 lbzgm 100 1 djs 50 100 对角闪 for i 0 i 3 i 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 zgxh 100 1 nszgm 100 1 djs 1000 10 for i 0 i 10 i hwzjl 200 1 横往中间亮 hwzjm 200 1 横往中间灭 djs 300 10 对角闪 for i 0 i 10 i swzjl 200 1 竖往中间亮 swzjm 200 1 竖往中间灭 for i 0 i 5 i zgxh 100 1 nszgm 100 1 djs 100 20 对角闪 zg 300 1 lbzgm 300 1 for i 0 i 5 i zgxh1 100 1 sszgm 100 1 for i 0 i0 x for y 120 y 0 y 3 4 电路功能仿真 在各部分电路设计的基础上 按照总体电路图在 Proteus 上一一进行器件选择 并 连接 将电路连接好后 为各个器件选择合适的参数 然后调入已编译好的目标代码 Hex 文件 启动仿真 根据 LED 灯是否发亮 判断所设计的电路是否可以实现 32 个 LED 灯依次点亮 依次熄灭 对角闪亮 对角熄灭 间隔闪亮 间隔熄灭等多种功能 刚开始时 LED 灯不亮 仔细检查原来是将 LED 灯接反了 改正之后 LED 灯便可以 正常发光了 电路仿真的结果为 32 个 LED 灯依次发亮 依次熄灭 并可以实现多种 亮灭功能 根据仿真结果可知电路原理及程序无误 可以进行 PCB 设计 7 如图 8 所 示 图 8 电路仿真图 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 总 结 在设计电路图的过程中 经过了多次分析和仿真验证 并结合所给的器件清单最 后确定了需要哪些器件来实现电路的功能 并且保证了所需要的元器件在给出的清单 范围内 经过 Proteus 软件多次仿真和修改后 在仿真电路图实现设计要求的前提下确 定了最终的原理图 然后在 Altium Designer 中画出来所对应的原理图 8 再导入到 PCB 设计的环境中 进行 PCB 设计 在经过小组内多次讨论和听取指导老师的意见后 确定了 PCB 的

温馨提示

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

评论

0/150

提交评论