单片机课程设计节日彩灯控制器的设计Word文档格式.docx
《单片机课程设计节日彩灯控制器的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计节日彩灯控制器的设计Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
2系统简介………………………………………………………………2
2.1总体设计方案说明……………………………………………2
2.2单片机系统组成方框图………………………………………2
2.3AT89S51单片机介绍………………………………………2
3系统设计………………………………………………………………4
3.1系统总体设计…………………………………………………4
3.2硬件电路设计…………………………………………………5
3.3软件设计………………………………………………………7
4实验结果与讨论……………………………………………………11
5结论…………………………………………………………………12
6参考文献……………………………………………………………12
7附录…………………………………………………………………13
1摘要
随着科技的发展,节日彩灯已经作为节日的一个重要部分越来越丰富多彩了,同时它作为节日的一部分给我们的生活带来了许多美好。
本文分析了彩灯四种不同亮法的原理,基于汇编语言设计了一种按键控制的可以有四种不同亮法的彩灯,当按下第一个键的时候彩灯从上到下亮,按下第二个键时候彩灯从下到上亮,第三个键彩灯从中间到两边亮,第四个彩灯从两边到中间亮。
通过设计能使彩灯亮的方式更多样、更漂亮。
本文介绍一种新型的彩灯控制系统的设计方法,以STC89C52单片机作为主控核心,与按键,显示器等较少的辅助硬件电路相结合,利用软件实现对彩灯进行控制。
本系统具有体积小,硬件少,电路结构简单及容易操作等优点。
首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。
本设计以数字集成电路技术为基础,单片机技术为核心。
本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。
同时对控制系统进行了仿真,实验结果表明该系统可以成功的控制彩灯。
2系统简介
2.1总体设计方案说明
以单片机为核心,设计一个节日彩灯控制器。
(1)P1.2—开始,按此键则灯开始流动(由上而下);
(2)P1.3—停止,按此键则停止流动,所有灯为暗;
(3)P1.4—上,按此键则灯由上向下流动;
(4)P1.5—下,按此键则灯由下向上流动。
2.2单片机系统组成方框图
AT89S51单片机的片内硬件组成结构
2.3AT89S51单片机介绍
VCC:
电源。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
AT89S51引脚图
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C52的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
3系统设计
3.1系统总体设计
3.1.1系统总体功能介绍
通过按按钮来控制彩灯的点亮方式
3.1.2电路控制方框图
3.2硬件电路设计
3.2.1硬件设计思想
节日彩灯控制器是利用将单片机的CPU、RAM、ROM、定时器/计数器及输入/输出(I/O)接口电路集成在一块集成电路芯片上的特点。
通过其与发光二极管及驱动电路的连接,从而构成一个完整的硬件电路。
然后通过对单片机的ROM进行编程,实现对彩灯闪烁的控制。
3.2.2电路原理
以STC-89C52单片机作为主控核心,与按键、电阻等较少的辅助硬件电路相结合,并辅以由电器元件组成的复位电路和时钟电路,利用软件实现对LED彩灯进行控制。
3.2.3电路原理图
3.2.3.1时钟晶振电路图
由两个22PF电容加11.0592的晶振组成,晶振两端一边分别与单片机的18、19号引脚相连,一边分别与两个电容一段相连,两个电容的另一端接在一起并且接地,从而构成了时钟晶振电路。
3.2.3.2复位电路
由2个电阻、1个电解电容、1个按钮组成
3.2.3.3按钮电路图
由四个按钮分别接单片机的P1.2、P1.3、P1.4、P1.5即单片机的3、4、5、6号引脚相连,按钮的另一端接电源负极,通过按按钮输入低电平信号来控制彩灯
3.2.3.4彩灯电路
由8个发光二极管、8个200欧的电阻组成,8个发光二极管的正极分别接单片机的P0.0-P0.7口,即32-39号引脚,另一端分别接电阻,电阻另一端分别接电源正极,通过按钮输入低电平来达到对彩灯的控制情况。
3.2.3.5系统总电路
3.3软件设计
3.3.1软件设计思想
通过编程改变P1口的状态,从而改变彩灯的闪烁。
本程序主要可分为主程序模块,比较模块TURN、DOWN和状态显示程序模块TURN1、DOWN1、UPP延时程序模块DELAY等模块。
3.3.2程序流程图
3.3.2.1主程序流程图
3.3.2.2正向流动程序流程图和反向流动程序流程图
3.3.2.3延时子程序流程图
3.3.2.4按键扫描子程序流程图
3.3.3程序清单
ORG0000H
LJMPSTART
START:
MOVA,P1;
将P1口的值传送给累加器A
CJNEA,#0FFH,DEL;
判断是否有键按下,有就转DEL
JNBP1.2,TURN;
“开始”键按下转子程序TURN
SJMPSTART;
无键按下转主程序继续扫描
DEL:
MOV40H,A;
累加器A的值传给40H
LCALLDEK;
调用10ms防抖动子程序
MOVA,P1;
将P1的值传送A
CJNEA,40H,START;
确认无键按下转START
RET
TURN:
MOVR0,#0FEH;
给R0赋值0FEH
MOVA,R0;
将R0的值送给累加器A
TURN1:
MOVP0,A;
让P0口最上面一个灯亮
CALLDELAY;
调用显示延迟子程序
JNBP1.3,UPP;
“停止”键按下转子程序UPP
JNBP1.4,TURN;
“从上到下”键按下转TURN,重新开始
JNBP1.5,DOWN;
“从下到上”键按下转DOWN
RLA;
循环左移累加器A的值
SJMPTURN1;
转到TURN1,继续循环
DOWN:
MOVR1,#7FH;
给R1赋值7FH
MOVA,R1;
将R1的值送给累加器A
DOWN1:
让P0口最下面一个灯亮
调用显示延时子程序
“停止”键按下转子程序UPP
RRA;
循环右移累加器A的值
SJMPDOWN1;
转到DOWN1,继续循环
UPP:
MOVP0,#0FFH;
使所有灯灭
SJMPUPP
DEK:
MOVR2,#40;
10ms防抖动字程序
DEK1:
MOVR3,#125
DEK2:
DJNZR3,DEK2
DJNZR2,DEK1
DELAY:
MOVR5,#25;
显示延时子程序
D0:
MOVR6,#250
D1:
MOVR7,#25
D2:
DJNZR7,D2
DJNZR6,D1
DJNZR5,D0
END
4、实验结果与讨论
4.1实验结果
仿真结果图
4.2实验讨论
在这次课程设计中,我们首先编写程序然后对其进行了仿真,虽然仿真结果是正确的,但是在焊接电路的时候不知道是什么原因导致不能显示结果,我尝试这从短路、接触不良等方面去寻找问题,最终还是没有找出问题,逼不得已只得重新焊,然而第二块板子也没成功,只好找同学帮忙,找了半天同样也没找出问题来,当时就失望了,好不容易把东西焊出来结果不能调试成功,是多么的悲惨啊,最后抱着换个IC座和电容再焊一块试试的心态又焊了一块,终于成功了。
这让我体会到了只有坚持才能成功,我想前两块课可能是IC座接触不良的缘故吧。
5结论
虽然这次课程设计我焊了三块电路板(还好当时买元器件的时候对买了点备份),但是通过这次的设计使我认识到掌握单片机方面的知识太重要了,它是我们作为在这科技飞速发展的时代里的新青年要掌握的必不可少的一项技术。
我还发现自己对于书本上的很多知识还不够熟悉,有很多我们需要掌握的知识还没掌握,我会在以后的学习生活中弥补我所缺少的知识。
本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。
大学的课堂的学习只是在给我们灌输专业知识、打好理论基础,而我们应把所学的用到我们现实的生活中去,充分运用我们的知识体现我们的价值。
我会在以后的学习、生活中不断磨练自己,使自己适应于以后的竞争,不会在激烈的竞争中掉队。
在查找资料的过程中我也学到了许多单片机技术的相关知识,不仅拓展了我的知识面,同时激起了我对单片机相关技术的兴趣。
当然不能忽略在协作过程中我和同组的同学一起设计增进了同学间的友谊。
我相信这次课程设计对我以后的课程设计和毕业设计将会有很大的帮助。
6参考文献
1、张毅刚彭喜元彭宇.单片机原理及应用[M].北京高等教育出版社.2010
2、邹丽新翁桂荣.单片机微型计算机原理,苏州大学出版社.2001
3、
邹丽新翁桂荣.单片机微型计算机及接口技术,苏州大学出版社,2002
4、李飞.单片机原理及其应用
西安电子科技大学出版社
.2007
7附录
元件清单
元件
个数
STC89C51单片机
1个
30pF电容
2个
10uF电解电容
按钮
5个
10K欧电阻
200欧电阻
8个
11.0592晶振
LED发光二极管
1K电阻
实物图