单片机课程设计报告彩灯控制器设计文档格式.doc
- 文档编号:13079177
- 上传时间:2022-10-04
- 格式:DOC
- 页数:23
- 大小:1.08MB
单片机课程设计报告彩灯控制器设计文档格式.doc
《单片机课程设计报告彩灯控制器设计文档格式.doc》由会员分享,可在线阅读,更多相关《单片机课程设计报告彩灯控制器设计文档格式.doc(23页珍藏版)》请在冰豆网上搜索。
2.3Proteus仿真
用Proteus对系统进行仿真并进行软硬件调试。
2.4编写设计说明书
内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于4000字;
硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;
软件设计部分要绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并在各功能块前加程序功能注释。
3.工作计划
序号
设计内容
所用时间
1
布置任务及调研
4天
3
制作与调试
8天
4
撰写设计报告书
2天
合计
14天
4.主要参考资料
单片机课程设计指导书 皮大能 北京理工大学出版社 2010.7
8051单片机实践与应用 吴金戎 清华大学出版社 2003.8
单片机技术基础教程与实践夏路易 电子工业出版社 2008.1
MCS-51单片机原理接口及应用 王质朴北京理工大学出版社2009.11
基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社2009.7
指导老师签字:
日期:
..
目录
1系统硬件设计 4
1.1电路设计 4
1.2主要元器件介绍 5
1.2.1AT89c51单片机芯片介绍 5
1.2.2主要特性 5
2系统软件设计 7
2.1综述 7
2.2主程序及流程图 7
2.2.1主程序 7
2.3子程序的编程思路 8
2.3.1延迟子程序流程图 9
3系统调试与仿真分析 11
3.1软件调试 11
3.1.1单片机C语言 11
3.1.2KeiluVision2 11
3.1.3Proteus 12
3.2软件仿真结果及分析 13
3.2.1闪光效果一:
单灯向里移动 13
3.2.2闪光效果二:
流水左移 14
3.2.3闪光效果三:
3灯走马右移 15
3.2.4闪光效果三:
红色流水内外移动 16
4致谢 17
5参考文献 18
附录程序代码 18
1系统硬件设计
整个系统以AT-89C51单片机作为主控核心,与发光二极管LED等较少的辅助硬件电路相结合,利用软件实现对LED彩灯进行控制。
本系统具有体积小、硬件少、电路结构简单及容易操作等优点。
1.1电路设计
彩虹灯控制器电路见【图1】。
其主要设计器件有AT89C51,复位电路,时钟电路,5个按钮(其中一个为检测按钮)。
通过软件设计,使单片机P0和P1作为LED驱动信号输出口,4个外部按钮作为按钮输入口。
图1彩虹灯控制器电路图
1.2主要元器件介绍
1.2.1AT89c51单片机芯片介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.2.2主要特性
·
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128*8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路;
1.2.3引脚定义及功能见【图2】。
图2AT89C51引脚图
(1)输入输出引脚(P0、P1和P2端口引脚)
P0~P3是89C51与外界联系的4个8位双向并行I/O口。
本设计中P0和P1口作为LED驱动信号输出口,P2口与4个按钮连接作为按钮输入口,控制4中彩虹灯效果。
(2)AT89C51单片机的基本结构见【图3】
图3AT89C51基本结构
2系统软件设计
2.1综述
本次的任务是设计一个基于单片机的LED彩灯控制器,需要循环运行四种以上预设的彩灯闪烁方案,这里的各种的方案还有显示方式都是由单片机内部的程序控制。
在这里我将16个发光二极管分别接在P0和P1口,通过程序控制这两个端口的电平高低,将16个发光二极管的负极接P0和P1口,正极接外部高电平,即P0和P1口的相应端口为低电平时LED就能被点亮。
再通过程序循环的让各个端口以不同的方式点亮来达到各种花样的效果,并且当中要有一定的延时,延时时间小于人眼视觉暂留时间,否则人眼看上去每个灯都是亮的也就没有实际效果。
设计的LED彩灯系统分为两部分,即AT89C51主控模块和发光二极管LED受控模块。
整个系统工作由软件程序控制运行,同时根据不同的需要,用户可以在LED彩灯工作时通过主控模块上的按钮来实现4种彩灯灯光效果(不含全部点亮,全部熄灭)。
模块功能:
该部分主要涉及功能的实现方式,即程序编写。
程序要实现的功能包括读按键,通过对读入按键的值控制LED点亮方式。
键盘有5个按键,其中K1、K2、K3、K4控制LED点亮模式。
2.2主程序及流程图
2.2.1主程序
AT89C51通过编写程序应完成以下功能:
通过P0口和P1控制发光二极管LED的亮与灭,从而实现多种闪烁方案;
用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭)。
用输入按钮在几种灯光效果间转换。
按照上述要求即可写出主程序代码并绘制出主程序流程图。
2.2.2主程序流程图
开始
扫描按键
按钮一
否
按钮二
是否
按钮三
效果一
是 否
效果二
按钮四
是
效果三
否
是
效果四
2.3子程序的编程思路
虽然大致的流程图已经绘制完毕,但编程过程中会遇到更加具体的问题,需要编制一些子程序来解决,以下是一些主要子程序的流程图绘制思路。
2.3.1延迟子程序流程图
数码管的显示必须有足够长的时间长到肉眼能够察觉到,因此在点亮数码管时要给开始
予其一个适当的延迟。
触发时间i>
否
调用
是
计时
j<
125
否
是
输出信号0
一个机器周期包括12个时钟周期。
单片机AT89C51工作于12M晶振,它的时钟周期是1/12(微秒)。
它的一个机器周期是12*(1/12)也就是1微秒。
一共执行1000次,正好1000微秒,也就是1毫秒。
2.3.2按键扫描子程序
按键扫描子程序用来检测并识别外部输入按钮的输入信号。
voidKeyScan()
{
if(P2==0xf7)
{
ys1ms(100);
if(P2==0xf7)
{
flag=0xf7;
}
}
if(P2==0xfb)
if(P2==0xfb)
flag=0xfb;
if(P2==0xfd)
if(P2==0xfd)
flag=0xfd;
if(P2==0xfe)
if(P2==0xfe)
flag=0xfe;
}
其中的状态标志分别为:
0xfe为按键1标志,0xfd为按键2标志,0xfb为按键3标志,0xf7为按键4标。
3系统调试与仿真分析
3.1软件调试
本次所有软体程序均采用C51语言编写,程序写完后要对其编译,在Proteus软件里实现硬件电路仿真。
下面分别简单介绍单片机C语言和这两款软件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告 彩灯 控制器 设计