多按键花样流水灯的设计.docx
《多按键花样流水灯的设计.docx》由会员分享,可在线阅读,更多相关《多按键花样流水灯的设计.docx(22页珍藏版)》请在冰豆网上搜索。
![多按键花样流水灯的设计.docx](https://file1.bdocx.com/fileroot1/2022-12/19/85b99042-4d6f-437b-856d-048b2c5af360/85b99042-4d6f-437b-856d-048b2c5af3601.gif)
多按键花样流水灯的设计
摘要
自人类发明计算机以来,单片机技术在社会各领域中得到了广泛的应用。
在流水灯控制系统中,单片机的作用更是发挥的淋漓尽致,成为此系统中的核心部分。
利用单片机的可编程功能,软硬件结合,来控制LED的灯的开通关断,通过丰富多彩的花样变化,给人以不同的视觉效果,更是成为现代商业社会不可缺少吸引消费者的普遍手段。
本文结合单片机的突出特点,着重介绍通过单片机来实现多按键花样流水灯的变化,主要包括其软件程序的编写、硬件电路的搭接、器件的选择,以及通过PROTEUS的仿真和PCB板的制作等。
关键词:
单片机、可编程控制器、多按键花样流水灯、准确。
前言
单片微型计算机简称单片机(single-chip microcomputer),又称为单片机微型控制器(single-chip microcontroller),是由CPU、RAM、ROM、定时/计时器、I/O接口电路通过应刷电路板上的总线连成一体的完整计算机系统。
从1971年出现单片机的雏形开始,短短四十多年的时间里,单片机便社会各领域中得到了广泛的应用在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式控制系统,成为日后此系统中的核心部分。
由于单片机具有一些突出的优点:
体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。
本文主要讲的是单片机,课题名称为多按键花样流水灯,它使我们学会了如何使用单片机控制我们日常生活中的多设备设施的应用。
通过本课题的设计以后,使我了解到了单片机的许多方面的应用。
第一章 设计目的和要求
1 设计目的
1)掌握51系列单片机的基本硬件结构及工作原理;
2)掌握51系列单片机的汇编语言及基本程序设计方法;
3)学习并掌握使用51系列单片机开发控制系统的基本步骤及方法
2设计基本要求
1)选择一个I/O口控制八只流水灯。
2)设置四个按键K1—K4,按下K1跑马灯,K2流水灯,K3戏水灯,K4则循环三种控制方式。
3)跑马灯:
共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。
4)流水灯:
共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。
5)戏水灯:
共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。
然后继续上次操作。
第二章 80c51单片机简介
80c51单片机
80C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(PUSH)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。
采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。
80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。
80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。
由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用作为控制核心。
MCS-51系列单片机内部采用模块式结构,其结构组成框图如图所示。
引脚介绍:
引脚是单片机和外界进行通信的通道连接点,用户只能通过引脚组建控制系统。
从应用的角度来看,引脚的应用是单片机应用的一个重要基础。
因此熟悉引脚是学习应用单片机的基础。
单片机的40个引脚大致可分为4类:
电源、时钟、控制和I/O引脚。
⒈电源:
VCC-芯片电源,接+5V;
⑵VSS-接地端;
⒉时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
⒊控制线:
控制线共有4根,
⑴ALE/PROG:
地址锁存允许/片内EPROM编程脉冲①ALE功能:
用来锁存P0口送出的低8位地址
②PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵PSEN:
外ROM读选通信号。
⑶RST/VPD:
复位/备用电源。
①RST(Reset)功能:
复位信号输入端。
②VPD功能:
在Vcc掉电情况下,接备用电源。
⑷EA/Vpp:
内外ROM选择/片内EPROM编程电源。
①EA功能:
内外ROM选择端。
②Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋I/O线
80C51共有4个8位并行I/O端口:
P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
P0口输入时需要接上拉电阻才能置1:
MCS-51系列单片机的引脚封装主要有:
PDIP40、PLCC44和PQFP/TQFP44。
不同封装的芯片其引脚的排列位置有所不同,但他们的功能和特性都相同。
方形封装(PLCC44和POFP/TQFP44)有44引脚,其中4个NC为空引脚。
采用40引脚PDIP封装的80C51单片机的引脚排列及逻辑符号如图所示。
引脚示意图
由于工艺及标准化等原因,芯片的引脚数量是有限的,但单片机为实现控制所需要的信号数目却远远超过其引脚数目。
为解决这一矛盾,单片机的某些信号引脚被赋予双重功能。
PDIP封装的80C51单片机的引脚排列及逻辑符号图
总线系统:
所谓总线,就是连接单片机与各外部器件的一组公共的信号线。
当系统要求扩展时,单片机要与一定数量的外部器件和外围设备连接。
如果各部件及每一种外围设备都分别用各自的一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。
为了简化硬件电路的设计和系统结构,常用一组线路,并配以适当的接口电路来与各个外部器件和外围设备连接,这组共用的连接线路就是总线。
采用总线结构便于扩展外部器件和外围设备,而统一的总线标准则使不同设备间的互连更容易实现。
利用片外引脚可以构造MCS-51系列单片机的三总线结构。
单片机的引脚除了电源端VCC、接地端VSS、复位端RST、晶振接入端XTAL1和XTAL2、通用I/O口的P1.0~P1.7以外,其余的引脚都是为实现系统扩展而设置的。
用这些引脚构造的单片机系统的三总线结构如图所示
MCS-51系列单片机片外三总线结构
第三章:
方案设计任务分析
I/O口及总线分配:
采用标准80c51单片机作为控制器;
采用P2口作为输出口控制八个LED的亮灭;
P1口为输出口,P1.0,P1.1,P1.2,P1.3分别与四个开关K1,K2,K3,K4相连作为输入控制口,采用外部中断的控制方式控制各种花样灯的开通。
采用以上结构,考虑到只有8个LED灯,所选单片机的I/O口完全够用,不需外部扩展。
该系统具有电路简单,设计方便,显示亮度高,显示准确,耗电较少,可靠性高等特点。
花样流水灯控制系统
软件流程图。
第四章 软件设计
1 中断子程序
T0INT:
JNBP1.0,PAOMA1
JNBP1.1,LIUSHUI2
JNBP1.2,XISHUI3
JNBP1.3,XUNHUAN4;判0转移到相应亮灯方式
MOVP2,#0FFH;P2口至高电位,关闭所有LED
RETI;中断返回
2 跑马灯子程序
先让P2口全部为高电平,让后让P2.1口点亮,考虑到人眼的视觉暂停效应,延时100ms,在通过移位指令依次点亮别的口,没点亮一个灯延时100ms.
PAOMA1:
;跑马灯程序
MOVP2,#0FFH
MOVA,#0FEH
LOOP1:
MOVP2,A
LCALLDELAY
RLA
JNBP1.0,LOOP1;开关闭合继续循环执行
SJMPT0INT;返回到T0INT继续判断
3 流水灯子程序
依次点亮八个LED灯,没点亮一个延时100ms,当全部点亮时,延时100ms,关闭所有的LED灯,继续从头开始循环。
LIUSHUI2:
;流水灯程序
CLRP2.0;点亮P2.0口
LCALLDELAY
CLRP2.1
LCALLDELAY
CLRP2.2
LCALLDELAY
CLRP2.3
LCALLDELAY
CLRP2.4
LCALLDELAY
CLRP2.5
LCALLDELAY
CLRP2.6
LCALLDELAY
CLRP2.7
LCALLDELAY
MOVP2,#0FFH;P2口熄灭
LCALLDELAY
JNBP1.1,LIUSHUI2;若开关闭合则循环执行
SJMPT0INT
4戏水灯子程序
先点亮1、3、5、7号LED延时100ms后关闭,再点亮2、4、6、8号LED,延时100ms后关闭,循环执行上述程序。
XISHUI3:
;戏水灯程序
MOVP2,#55H;点亮1,3,5,7号灯
LCALLDELAY
MOVP2,#0FFH;熄灭1,3,5,7号灯
LCALLDELAY
MOVP2,#0AAH;点亮2,4,6,8号灯
LCALLDELAY
MOVP2,#0FFH;熄灭2,4,6,8号灯
LCALLDELAY
JNBP2.2,XISHUI3;循环点亮P2口
SJMPT0INT
5 循环子程序
XUNHUAN4:
;顺序循环执行三种花样灯
MOVP2,#0FFH
MOVA,#0FEH
LOOP2:
MOVP2,A
LCALLDELAY
RLA
JBP2.7,LOOP2
SETBP2.7
LCALLDELAYING
CLRP2.0
LCALLDELAY
CLRP2.1
LCALLDELAY
CLRP2.2
LCALLDELAY
CLRP2.3
LCALLDELAY
CLRP2.4
LCALLDELAY
CLRP2.5
LCALLDELAY
CLRP2.6
LCALLDELAY
CLRP2.7
LCALLDELAY
MOVP2,#0FFH
LCALLDELAYING
MOVP2,#55H
LCALLDELAY
MOVP2,#0FFH
LCALLDELAY
MOVP2,#0AAH
LCALLDELAY
MOVP2,#0FFH
LCALLDELAYING
JNBP1.3,XUNHUAN4
LCALLT0INT
6延时子程序
由于人眼的视觉有暂停效应,所以必须延时才能区分灯光的亮灭。
考虑到实际效果本程序段延时100ms ,当执行循环子程序时,相邻两个循环灯之间的间隔时间延时500ms,以区分程序段之间的间隔。
DELAY:
MOVR5,#200;延时100ms程序
DELAY1:
MOVR6,#250
DELAY2:
DJNZR6,DELAY2
DJNZR5,DELAY1
RET
DELAYING:
MOVR5,#5;延时500mS程序
DELAYING1:
MOVR6,#200
DELAYING2:
MOVR7,#250
DELAYING3:
DJNZR7,DELAYING3
DJNZR6,DELAYING2
DJNZR5,DELAYING1
RET
第五章:
硬件系统设计
整套电路系统由时钟已复位部分电路、控制系统模块、花样灯输出控制显示模块组成。
1时钟及复位部分电路
时钟电路单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。
而时钟电路就用于产生单片机工作所需要的时钟信号。
80c51单片机时钟电路振荡电路示意图如图所示
在80c51芯片内部有一个高增益反相放大器,用于构成振荡器。
反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率范围通常是1.2~12MHz。
晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。
也可以由外部时钟电路向片内输入脉冲信号作为单片机的振荡脉冲。
这时外部脉冲信号是经XTAL1引脚引入的,而XTAL2引脚悬空或接地。
对外部信号的占空比没有要求,但高低电平持续的时间不应小于20ns。
这种方式常用于多块芯片同时工作,便于同步。
本课设由于只采用了一片单片机,所以采用单片机的内部时钟电路,其晶振
频率为12MHZ。
2主控系统
主控系统采用80c51单片机,单片机P1口用于开关控制输入,P2口用于控制输出花样灯花样变化,P3.2(INTO)口用于外部中断外输入。
花样灯输入控制模块由四个开关,电源,上拉电阻及四个二极管组成。
各开关风别和相应的P1口相连于此同时通过二极管与P3.2(INTO)口相连。
当开关处于断开状态时,各开关所对应P1.N(N为0到3)口处于高电位状态,当开关闭合时,所对应得P1.N(N为0到3)口直接与地相连,便处于低电位状态,于此同时二级管也导通,使P3.2(INTO)也经过二极管也直接与地相连,因此P3.2(INTO)的电位便被拉升到低电位,引起外部中断。
此处电路二极管的设置十分必要和关键,利用二极管的单向导电性使得任意开关按下时,不至使得P1.0-P1.3口发生短路,全部被拉到低电位,若无二极管按下任意开关时,四个开关的右端将同时处于低电位,这就使得程序不能准确判断到底是哪个开关闭合,从而就不能顺利执行相应的花样灯程序。
花样灯输入控制系统部分电路
设置十分必要和关键,利用二极管的单向导电性使得任意开关按下时,不至使 得P1.0-P1.3口发生短路,全部被拉到低电位,若无二极管按下任意开关时,四个开关的右端将同时处于低电位,这就使得程序不能准确判断到底是哪个开关闭合,从而就不能顺利执行相应的花样灯程序。
3花样灯输出控制部分
如图为花样灯输出控制部分电路图。
图中共有八个发光二极管,其采用共阳极结构。
输出信号从80c51单片机的P2口输出,每个P2.N(N从1-7)通过总线与其相对应一个发光二极管相连,发光二管与限流电阻相连,设置限流电阻的目的是限制流过发光二极管的电流大小,不至于使其因为热效应损坏。
当P2.N(N从1-7)处于低电平的时候,与其相连的二极管便被点亮,通过对P2口的高低电平的控制便控制了发光二极管的点亮与熄灭。
从而实现花样灯的变化。
花样灯输出部分电路
第六章:
系统仿真
1Keil C51仿真
本设计使用的Keil C51软件来进行编程。
Keil C51提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部份组合在一起。
主程序显示如下:
ORG0000H
LJMPSTART
ORG0003H;外部中断0入口地址
LJMPT0INT
ORG0100H
START:
SETBP3.2;外部中断置1
SETBEA;总中断允许
SETBEX0;允许外部中断0
CLRIT0;设置电平触发方式
SJMP$;等待中断
T0INT:
JNBP1.0,PAOMA1
JNBP1.1,LIUSHUI2
JNBP1.2,XISHUI3
JNBP1.3,XUNHUAN4;判0转移到相应亮灯方式
MOVP2,#0FFH;P2口至高电位,关闭所有LED
RETI;中断返回
PAOMA1:
;跑马灯程序
MOVP2,#0FFH
MOVA,#0FEH
LOOP1:
MOVP2,A
LCALLDELAY
RLA
JNBP1.0,LOOP1;开关闭合继续循环执行
SJMPT0INT;返回到T0INT继续判断
LIUSHUI2:
;流水灯程序
CLRP2.0;点亮P2.0口
LCALLDELAY
CLRP2.1
LCALLDELAY
CLRP2.2
LCALLDELAY
CLRP2.3
LCALLDELAY
CLRP2.4
LCALLDELAY
CLRP2.5
LCALLDELAY
CLRP2.6
LCALLDELAY
CLRP2.7
LCALLDELAY
MOVP2,#0FFH;P2口熄灭
LCALLDELAY
JNBP1.1,LIUSHUI2;若开关闭合则循环执行
SJMPT0INT
XISHUI3:
;戏水灯程序
MOVP2,#55H;点亮1,3,5,7号灯
LCALLDELAY
MOVP2#0FFH;熄灭1,3,5,7号灯
LCALLDELAY
MOVP2,#0AAH;点亮2,4,6,8号灯
LCALLDELAY
MOVP2#0FFH;熄灭2,4,6,8号灯
LCALLDELAY
JNBP2.2,XISHUI3;循环点亮P2口
SJMPT0INT
XUNHUAN4:
;顺序循环执行三种花样灯
MOVP2,#0FFH
MOVA,#0FEH
LOOP2:
MOVP2,A
LCALLDELAY
RLA
JBP2.7,LOOP2
LCALLDELAYING
CLRP2.0
LCALLDELAY
CLRP2.1
LCALLDELAY
CLRP2.2
LCALLDELAY
CLRP2.3
LCALLDELAY
CLRP2.4
LCALLDELAY
CLRP2.5
LCALLDELAY
CLRP2.6
LCALLDELAY
CLRP2.7
LCALLDELAY
MOVP2,#0FFH
LCALLDELAYING
MOVP2,#55H
LCALLDELAY
MOVP2,#0FFH
LCALLDELAY
MOVP2,#0AAH
MOVP2,#0FFH
LCALLDELAYING
JNBP1.3,XUNHUAN4
LCALLT0INT
DELAY:
MOVR5,#200;延时100ms程序
DELAY1:
MOVR6,#250
DELAY2:
DJNZR6,DELAY2
DJNZR5,DELAY1
RET
DELAYING:
MOVR5,#10;延时1S程序
DELIAYING1:
MOVR6,#200
DELAYING2:
MOVR7,#250
DELAYING3:
DJNZR7,DELAYING3
DJNZR6,DELAYING2
DJNZR5,DELAYING1
RET
END
2proteus仿真
Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
多按键花样流水灯总的电路原理图如图所示
多按键花样流水灯总体电路图
完成电路原理图并封装好后,可由ISIS软件导出PCB板。
第七章:
课程设计与总结
本次课程设计我的课题是花样流水灯的设计,开始的几天我针对这个课题的任务要求从图书馆、上网等渠道获取相关信息,查找相关的参考资料,然后设定了本课题的设计方案。
经过近多日的努力,终于将本次课程设计做完了,但由于水平有限,文中肯定有很多不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。
在本次课程设计过程中,我增强了自己的动手能力和分析能力。
通过跟老师和同学的交流,也通过自己的努力,我按时完成了这次课程设计。
在此过程中,我学会了很多,也看到了很多自己的不足之处。
在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。
总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论和实际联系的重要性。
在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。
参考文献
[1] 郭文川. 单片机原理与接口技术[M],中国农业大学出版社2007.8
[2] 胡汉才.单片机原理与接口技术[M].北京:
清华大学出版社,1995.6.
[3] 于凤明.单片机原理及接口技术[M].北京:
中国轻工业出版社.1998.
[4] 郭文川. 单片机原理与接口技术[M],中国农业大学出版社2007.8
[5] 何立民. 单片机高级教程[M].北京:
北京航空航天大学出版社,2001.
[6] 郭文川. 单片机原理与接口技术[M],中国农业大学出版社2007.8
[7] XX百科80c51单片机
[8] 肖洪兵. 跟我学用单片机[M]. 北京:
北京航空航天大学出版社,2002.