单片机设计流水灯Word格式.docx
《单片机设计流水灯Word格式.docx》由会员分享,可在线阅读,更多相关《单片机设计流水灯Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
2.1课题的来源
当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。
而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。
而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。
流水灯是一串按一定的规律像流水一样连续闪亮。
流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。
流水灯控制可用多种方法实现,但对现代可编程控制器而言,利用移位寄存器实现最为便利。
通常用左移寄存器实现灯的单方向移动;
用双向移位寄存器实现灯的双向移动。
本案例利用价格低廉的AT89C51系列单片机控制基色LED灯泡从而实现丰富的变化。
2.2课题的意义
这次单片机课程设计是为了通过对流水灯控制的设计加强学生团队配合的能力和创造力;
综合运用专业及基础知识,解决实际工程技术问题的能力。
能够让学生深入真是的体会到所学的理论知识和实践相结合的过程。
找出自身的不足并加以改正。
2.3预期的目标
对8个LED灯设计5种流水灯显示方式。
3系统分析
3.1涉及的基础知识
Proteus软件的使用
89C51单片机指令系统:
规定89C51单片机内操作的语句或命令。
LED数码管的显示:
向数码的显示送数,控制系统的显示部分。
3.289C51单片机引脚图及引脚功能介绍
本次课程设计的目的在于加深89C51单片机的理解,首先来简单认识一下,它的引脚如图所示:
单片机的39个引脚大致可分为4类:
电源、时钟、控制和I/O引脚。
1.电源:
(1)VCC:
芯片电源,接+5V;
(2)VSS:
接地端;
2.时钟:
XTAL1、XTAL2:
晶体振荡电路反相输入端和输出端。
3.控制线:
控制线共有4根,
(1)ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
ALE功能:
用来锁存P0口送出的低8位地址
PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
(2)PSEN:
外ROM读选通信号。
(3)RST/VPD:
复位/备用电源。
RST(Reset)功能:
复位信号输入端。
VPD功能:
在Vcc掉电情况下,接备用电源。
(4)EA/Vpp:
内外ROM选择/片内EPROM编程电源。
EA功能:
内外ROM选择端。
Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
4.I/O分配线
89C51共有4个8位并行I/O端口:
P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
3.3解决问题的基本思路
因为选定用循环移位法来实现亮灯程序的,所以在一种设计好一种亮灯方式的前提下编程实现一个循环结构体,分别来实现五种不同的亮灯方式。
另外再编一个实现延时控制的调用程序,来提供亮灯速度的控制。
3.4模块分解
1)核心部件
89C51单片机是整个彩灯循环系统的核心是控制彩灯循环闪烁等等一切功能的部件;
其中内部有ROM、有RAM、有并行I/O口等,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。
(2)复位系统
电路中C1(电解电容)、R2组成复位电路,它的作用是将单片机内部特殊功能寄存器和端口寄存器恢复到初始状态,从内部FLASH存储器的初始状态开始执行。
如图所示,当要对晶片重置时,只要按此开关就能完成LED和开关的重置。
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
单片机的RST管脚为主机提供了一个外部复位信号输入口。
复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。
单片机的复位方式可由手动复位方式完成。
RST引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,若使用6MHz晶振,则需持续4μS以上才能完成复位操作。
在通电瞬间,由于RC的充电过程,在RST端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位。
CPU在第二个机器周期内执行内部复位操作,以后每个机器周期重复一次,直至RST端电平变低。
在单片机复位期间,AlE和
信号都不产生。
复位操作将对部分专用寄存器产生影响。
上电瞬间由于电容C上无储能,其端电压近似为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。
只要高电平能保持复位所需要的时间(约两个机器周期),单片机就能实现复位。
(3)震荡系统
单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。
而时钟电路就用于产生单片机工作所需要的时钟信号。
晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。
时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。
CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。
MCS-51单片机时钟电路示意图如图所示。
振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。
振荡脉冲在片内通过一个时钟发生电路二分频后才作为系统的时钟信号。
片内时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为fosc/2;
状态时钟三分频后为ALE信号,其频率为fosc/6;
状态时钟六分频后为机器周期,其频率为fosc/12。
(4)闪烁系统
利用单片机的P口控制:
LED的发光闪烁,再利用编程实现流水灯的电路,用软件来实现对LED的控制,每个LED接一个限流电阻,来控制流入LED发光管的电流。
4系统设计
4.1硬件设计
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
89C51单片机是本次课程设计运用的主要原件。
流水灯控制设计是用一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
4.2软件设计
单片机的应用系统由硬件和软件组成,在硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。
软件编程是单片机应用系统中的一个重要的组成部分,也是本次课程设计的重点和难点。
我们编程实现流水灯的方法是循环移位法,下面我们就来简述一下循环移位法的工作原理。
循环移位法是采用循环程序结构进行编程。
我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果了。
另外,由于89C51系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样也可以实现“流水”效果。
4.3元件清单
表4-1元件清单
名称
型号
数量
电阻
220Ω
9
电容
103μf
4
开关
1
单片机
89C51
PC机串行口
1
LED灯
8
接线
若干
4.4硬件原理图
图4-1硬件原理图
5程序编写
#include<
reg52.h>
voiddelay(float);
charLED[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//用16进制表示给灯从上往下赋予低电平
voidmain()//主程序
{
while
(1)//至1为高电平
inti;
//定义一个变量
for(i=0;
i<
8;
i++)//i从0-7依次累加(模式一)
P1=LED[i];
delay(300);
//P1.0-1.7端口对应LED端口并延时300
}
for(i=7;
i>
=0;
i--)//i从7-0依次累减(模式二)
//P1.7-1.0端口对应LED端口并延时300
i++)//i从0-7依次累加(模式三)
delay(50);
//P1.0-1.7端口对应LED端口并延时50
i--)//i从7-0依次累减(模式四)
/P1.7-1.0端口对应LED端口并延时50
i++)//i从0-7依次累加并i从7-0依次累减不延时及看到所有灯一起闪烁(模式5)
i--)
delay(0);
//‘0’延时0并重新复位
}
}
voiddelay(floatz)//延时程序(最多延时300)
intj;
floati;
for(i=z;
0;
for(j=0;
j<
=300;
j++);
6扩展
由于接口原因,不仅仅可以用p1.0-p1.7,还可以使用接口p0.0-p0.7以及p2.0-p2.7,p3.0-p3.7
最多可以加上32个LED灯。
7总结
通过这次课程设计我学到了很多东西,我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源:
懂得设计的关键是要有一个清晰的思路和一个完整的软件流程图。
在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路。
要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你思路,这样也为资料的保存和交流提供了方便。
课程设计是培养学生综合运用所学知识,发现实际问题、提出实际问题、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际学习能力、动手能力的具体训练和考察过程。
在此次流水灯设计过程中,在学习新知识的同时,把在课程中学到的理论知识运用到实际作品设计、操作中,更进一步地熟悉了单片机芯片的结构及掌握了其工作原理和具体的使用方法与相关元器件的参数计算方法、使用方法,了解了电路的开发和制作及课程设计报告的编写。
加深了对相关理论知识及专业知识的掌握度,增强自身的动手能力,锻炼及提高了理解问题、分析问题、解决问题的能力,更深刻的体会到了理论联系实际的重要性。
8参考文献
楼然苗等.51系列单片机设计实例[M].北京:
北京航空航天出版社,2003.3.
何立民.单片机高级教程[M].北京:
北京航空航天大学出版社,2001.
夏继强.单片机实验与实践教程[M].北京:
北京航空航天大学出版社,2001.
楼然苗,李光飞,《单片机课程设计指导》,北京,北京航空航天出版社,2007年
KennethA.Reek,《C和指针》,北京,人民邮电出版社,2008年