单片机课程计划-彩灯控制器地设计.doc

上传人:一*** 文档编号:813609 上传时间:2019-07-17 格式:DOC 页数:23 大小:1.08MB
返回 下载 相关 举报
单片机课程计划-彩灯控制器地设计.doc_第1页
第1页 / 共23页
单片机课程计划-彩灯控制器地设计.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《单片机课程计划-彩灯控制器地设计.doc》由会员分享,可在线阅读,更多相关《单片机课程计划-彩灯控制器地设计.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、黄河科技学院课程设计任务书黄河科技学院课程设计任务书工 学院学院 机械 系系 机械设计制造及其自动化 专业专业 09 级级 1 班班学号学号 姓名姓名 朱施泽 指导教师导教师 郭晓君 题目题目: 彩灯控制器的设计 课程课程: 单片机课程设计 课程设计时间课程设计时间 2012 年 12 月 21 日 至 2012 年 1 月 3 日 共 2 周课程设计工作内容与基本要求课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)1 1设计要求设计要求利用 AT89C51 单片机作为微控制器,用 16 盏以上的 LED 小灯,实现至少 4 种彩灯灯光效果(不含全部点

2、亮,全部熄灭) ;可以用输入按钮在几种灯光效果间切换;可以通过按钮暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果。2.2. 设计任务与要求设计任务与要求2.12.1 系统硬件电路设计系统硬件电路设计根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用 Proteus 绘制整个系统电路原理图。2.22.2 软件设计软件设计根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。2.32.3 ProteusProteus 仿真仿真用 Proteus 对系统进行仿真并进行软硬件调试。2.42.4 编写设

3、计说明书编写设计说明书内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于 4000 字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并在各功能块前加程序功能注释。3 3工作计划工作计划 序号序号设计内容设计内容所用时间所用时间1布置任务及调研天3制作与调试天4撰写设计报告书2天合 计14天4 4主要参考资料主要参考资料单片机课程设计指导书 皮大能 北京理工大学出版社2010.78051 单片机实践与应用 吴金戎 清华大学出版社2003.8

4、单片机技术基础教程与实践 夏路易 电子工业出版社 2008.1MCS-51 单片机原理接口及应用 王质朴 北京理工大学出版社 2009.11基于 Proteus 的单片机系统设计与仿真实例 蒋辉平 机械工业出版社 2009.7指导老师签字:日 期:目目 录录1 系统硬件设计.41.1 电路设计.41.2 主要元器件介绍.51.2.1 AT89c51 单片机芯片介绍.51.2.2 主要特性.52 系统软件设计.72.1 综述.72.2 主程序及流程图.72.2.1 主程序.72.3 子程序的编程思路.82.3.1 延迟子程序流程图.93 系统调试与仿真分析.113.1 软件调试.113.1.1

5、单片机 C 语言.113.1.2 Keil uVision2.113.1.3 Proteus.123.2 软件仿真结果及分析.133.2.1 闪光效果一:单灯向里移动.133.2.2 闪光效果二:流水左移.143.2.3 闪光效果三:3 灯走马右移.153.2.4 闪光效果三:红色流水内外移动.164 致谢.175 参考文献.18附录 程序代码.181 系统硬件设计整个系统以 AT-89C51 单片机作为主控核心,与发光二极管 LED 等较少的辅助硬件电路相结合,利用软件实现对 LED 彩灯进行控制。本系统具有体积小、硬件少、电路结构简单及容易操作等优点。1.1 电路设计彩虹灯控制器电路见【图

6、 1】 。其主要设计器件有 AT89C51,复位电路,时钟电路,5个按钮(其中一个为检测按钮) 。通过软件设计,使单片机 P0 和 P1 作为 LED 驱动信号输出口,4 个外部按钮作为按钮输入口。图 1 彩虹灯控制器电路图1.2 主要元器件介绍1.2.1 AT89c51 单片机芯片介绍AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易

7、失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.2.2 主要特性与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环数据保留时间:10 年全静态工作:0Hz-24Hz三级程序存储器锁定128*8 位内部 RAM32 可编程 I/O 线两个 16 位定时器/计数器5 个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路;1.2.3 引脚定义及功能见

8、【图 2】。图 2 AT89C51 引脚图(1) 输入输出引脚(P0、P1 和 P2 端口引脚)P0P3 是 89C51 与外界联系的 4 个 8 位双向并行 I/O 口。本设计中 P0 和 P1 口作为 LED 驱动信号输出口,P2 口与 4 个按钮连接作为按钮输入口,控制 4 中彩虹灯效果。(2) AT89C51 单片机的基本结构见【图 3】 OSC89C51 OSC 4KB EPROM 256B RAM/SFR2 16 / 64KB I/O 图 3 AT89C51 基本结构2 系统软件设计2.1 综述本次的任务是设计一个基于单片机的 LED 彩灯控制器,需要循环运行四种以上预设的彩灯闪烁

9、方案,这里的各种的方案还有显示方式都是由单片机内部的程序控制。在这里我将 16 个发光二极管分别接在 P0 和 P1 口,通过程序控制这两个端口的电平高低,将16 个发光二极管的负极接 P0 和 P1 口,正极接外部高电平,即 P0 和 P1 口的相应端口为低电平时 LED 就能被点亮。再通过程序循环的让各个端口以不同的方式点亮来达到各种花样的效果,并且当中要有一定的延时,延时时间小于人眼视觉暂留时间,否则人眼看上去每个灯都是亮的也就没有实际效果。设计的 LED 彩灯系统分为两部分,即 AT89C51 主控模块和发光二极管 LED 受控模块。整个系统工作由软件程序控制运行,同时根据不同的需要,

10、用户可以在 LED 彩灯工作时通过主控模块上的按钮来实现 4 种彩灯灯光效果(不含全部点亮,全部熄灭) 。模块功能:该部分主要涉及功能的实现方式,即程序编写。程序要实现的功能包括读按键,通过对读入按键的值控制 LED 点亮方式。键盘有 5 个按键,其中K1、K2、K3、K4 控制 LED 点亮模式。2.2 主程序及流程图2.2.1 主程序AT89C51 通过编写程序应完成以下功能:通过 P0 口和 P1 控制发光二极管 LED 的亮与灭,从而实现多种闪烁方案; 用 16 盏以上的 LED 小灯,实现至少 4 种彩灯灯光效果(不含全部点亮,全部熄灭) 。用输入按钮在几种灯光效果间转换。按照上述要

11、求即可写出主程序代码并绘制出主程序流程图。2.2.2 主程序流程图开始扫描按键否 是 否是 否是 否是 2.3 子程序的编程思路虽然大致的流程图已经绘制完毕,但编程过程中会遇到更加具体的问题,需要编制一些子程序来解决,以下是一些主要子程序的流程图绘制思路。2.3.1 延迟子程序流程图数码管的显示必须有足够长的时间长到肉眼能够察觉到,因此在点亮数码管时要给按钮一效果一按钮二效果二按钮三效果三按钮四效果四予其一个适当的延迟。否 是否是 一个机器周期包括 12 个时钟周期。单片机 AT89C51 工作于 12M 晶振,它的时钟周期是 1/12(微秒) 。它的一个机器周期是 12*(1/12)也就是

12、1 微秒。一共执行 1000 次,正好 1000 微秒,也就是 1 毫秒。2.3.2 按键扫描子程序按键扫描子程序用来检测并识别外部输入按钮的输入信号。void KeyScan() if(P2=0xf7) ys1ms(100); if(P2=0xf7) 开始触发时间 i0计时j /包含单片机寄存器的头文件 #include unsigned char flag=0xff;/状态标志 void ys1ms(unsigned int i); void KeyScan(); rzy(); rlszy(); rsdzmyy(); rlsnwyd(); rjl(); rja(); zkb(unsigne

13、d char d);/* 函数功能:主函数 */ void main(void) while(1) KeyScan(); switch(flag) case 0xfe:rzy();break;/扫描状态标志,为 1 时,第 1 种效果case 0xfd: rlszy(); break;/扫描状态标志,为 2 时,第 2 种效果case 0xfb:rsdzmyy(); break;/扫描状态标志,为 3 时,第 3 种效果case 0xf7:rlsnwyd();break; /扫描状态标志,为 4 时,第 4 种效果/ default:P1=0x00; /*延时程序 */void ys1ms(u

14、nsigned int i) /延时程序,i 是形式参数,i 为 1 时 延时约 1MS unsigned int j; for(;i0;i-) /变量 i 由实际参数传入一个值,因此 i 不能赋初值for(j=0;ji;P1=b; ys1ms(150); /* 按键 3 效果程序:3 灯走马右移函 */ rsdzmyy() P0=0x1f;/00011111P1=0xff;ys1ms(80);P0=0x8f;P1=0xfe;ys1ms(80);P0=0xc7;P1=0xfc;ys1ms(80);P0=0xe3;P1=0xf8;ys1ms(80);P0=0xf1;P1=0xf1;ys1ms(8

15、0);P0=0xf8;P1=0xe3;ys1ms(80);P0=0xfc;P1=0xc7;ys1ms(80);P0=0xfe;P1=0x8f;ys1ms(80);P0=0xff;P1=0x1f;ys1ms(80);/* 按键 4 效果程序:红色流水内外移动函数(灯光渐暗渐明) */ rlsnwyd() P0=0xe7;P1=0xe7;ys1ms(90);P0=0xc3;P1=0xc3;ys1ms(90);P0=0x81;P1=0x81;ys1ms(90);P0=0x00;P1=0x00;rjl();ys1ms(500);P0=0x7e;P1=0x7e;ys1ms(90);P0=0x3c;P1=

16、0x3c;ys1ms(90);P0=0x18;P1=0x18;ys1ms(90);P0=0x00;P1=0x00;rja();/* */rjl() /渐亮函数 unsigned char a, b;/a 控制延时长度 b 控制循环周期 P0 = 0xff; P1=0xff;a = 0; for (b=250; b0; b-) /循环周期设置 a+; zkb (a); /延时长度随 a 而改变 P0 = 0xff;P1 = 0xff;a = a; /a 值取反,决定灯灭时的占空比 zkb (a); P0 = 0x00; P1 =0x00;a = a; /a 值取反 使 a 回到原值继续循环 /* */ rja() /渐暗函数 unsigned char a, b;/a 控制延时长度 b 控制循环周期 P0 = 0x00; /亮起 LED P1=0x00; a = 0; for (b=250; b0; b-) a+; zkb (a); P0 = 0x00; P1 = 0x00;a = a; zkb (a); P0 = 0xff;P1=0xff;a = a; /* */ zkb(unsigned char d) /占空比函数,由 d 决定延时长度 unsigned char i; while( -d != 0) for(i = 0; i 1; i+); /占空比时间设置 /* */

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁