单片机节日彩灯课程设计.docx
《单片机节日彩灯课程设计.docx》由会员分享,可在线阅读,更多相关《单片机节日彩灯课程设计.docx(26页珍藏版)》请在冰豆网上搜索。
单片机节日彩灯课程设计
专业班级
电传12-2
学生姓名
崔玉君
课程名称
单片机原理与接口技术
设计名称
节日彩灯
控制器
设计周数
2
指导教师
张军朝
设计
任务
主要
设计
参数
1.以单片机为核心,设计一个节日彩灯控制器。
2.P0.0~P0.7接8只红色LED,P2.0~P2.7接8只绿色LED,P3.0~P3.7接8只黄色LED。
3.P1.2—开始,按此键则彩灯开始流动(依次点亮)。
P1.3—停止,按此键则停止彩灯流动,所有灯为暗。
P1.4—P1.7彩灯不同的显示方式,按下相应的按键彩灯则按照不同的显示方式显示,渲染节日气氛。
设计内容
设计要求
1.采用AT89S51单片机作为主控芯片及外围控制芯片,设计节日彩灯控制器的硬件电路。
2.采用AT89S51单片机汇编语言(C语言),完成节日彩灯控制器的软件编程。
3.由按键控制流水灯,LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,实现题目要求的功能。
4.采用Proteus仿真软件完成节日彩灯控制器的硬件设计、软件编程及系统调试。
主要参考
资料
1.贾好来.单片机嵌入式系统原理及应用.机械工业出版社,2013.4
2.徐爱钧.单片机原理实用教程基于PROTEUS虚拟仿真.电子工业出版社,2009.1
学生提交
归档文件
1.设计说明书一本,包括硬件电路图和软件程序(电子版)
2.采用屏幕录像软件,录制十字路口交通灯控制器运行情况,以MP3的形式提交。
课程设计任务书
注:
1.课程设计完成后,学生提交的归档文件应按照:
封面—任务书—说明书—图纸的顺序进行装订上交(大张图纸不必装订)
2.可根据实际内容需要续表,但应保持原格式不变。
指导教师签名:
日期:
目录
第一章绪论3
1.1节日彩灯的发展3
1.2现代节日彩灯的控制3
第二章总体方案设计4
2.1方案比较5
2.2方案论证6
2.3方案选择6
第三章硬件电路设计6
3.1单片机最小系统设计6
3.2LED彩灯显示电路设计7
3.3按键控制电路设计8
3.4AT89C51单片机结构9
第四章统软件设计12
4.1主程序流程图13
4.2正向流动程序流程图和反向流动程序流程图14
4.3延时程序软件序设计15
第五章仿真结果16
第六章总结18
附录A总原理图20
附录B总程序21
参考文献25
第一章绪论
1.1节日彩灯的发展
彩灯是我国普遍流行的传统的民间的综合性的工艺品。
彩灯艺术也就是灯的综合性的装饰艺术。
新中国成立后,彩灯艺术得到了更大的发展,特别是随着我国科学技术的发展,彩灯艺术更是花样翻新,奇招频出。
而随着人们生活环境的不断改善和美化,在许多节日的气氛里可以看到彩色霓虹灯,这种LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。
其将电子、建筑、机械、遥控、声学、光导纤维等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一。
在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。
1.2现代节日彩灯的控制
在现代生活中,彩灯作为一种装饰,既可以增强人们的感观,起到广告宣传的作用,又可以增添节日气氛,为人们的生活增添亮丽,用在舞台上增强晚会灯光效果。
随着科学技术的发展以及人民生活水平的提高,人们对于彩灯的要求越来越高,另一方面,随着电子技术的发展,应用系统向着小型化、快速化、大容量、重量轻的方向发展,单片机技术的应用引起电子产品及系统开发的巨大变革。
梯形图语言作为可编程逻辑器件的标准语言描述能力强,覆盖面广,抽象能力强,在实际应用中越来越广泛。
于是,人们开始追求贯彻整个系统设计的自动化,可以从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。
随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。
在海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。
在娱乐方面,场地的装饰离不开彩灯。
在建筑方面也采用彩灯来装饰高楼大厦。
彩灯又灵活多变的点亮方式,装饰效果非常好,特别时晚上使得高楼大厦更加漂亮。
是彩灯的应用才使得城市的夜景非常迷人。
它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按P1.2键使灯开始流动;按P1.3键则停止流动;按P1.4键则灯由上向下流动;按P1.5键则灯由下向上流动。
通过按键能方便使用者选择不同样的亮法。
并用proteus仿真能使八盏彩灯顺序点亮,逆序点亮和停止。
本系统还有很大的拓展空间,可以控制更多的彩灯显示更绚烂的图案,为节日增添喜庆气氛。
第二章总体方案设计
通过查阅大量相关技术资料,并结合自己的实际知识,我主要提出了两种技术方案来实现系统功能。
下面我将首先对这两种方案的组成框图和实现原理分别进行说明,并分析比较它们的特点,然后阐述我最终选择方案的原因。
设计任务主要涉及参数:
1.以单片机为核心,设计一个节日彩灯控制器。
2.P0.0~P0.7接8只红色LED,P2.0~P2.7接8只绿色LED,P3.0~P3.7接8只黄色LED。
3.P1.2—开始,按此键则彩灯开始流动(依次点亮)。
P1.3—停止,按此键则停止彩灯流动,所有灯为暗。
P1.4—P1.7彩灯不同的显示方式,按下相应的按键彩灯则按照不同的显示方式显示,渲染节日气氛。
2.1方案比较
彩灯控制器大致可分为两种方案实现。
一种是利用电子电路装置控制,另一种是采用单片机控制。
方案一:
根据设计任务要求介绍的彩灯控制电路的基本组成,可以确定彩灯控制器应由振荡电路、计数/时序分配电路、移位位寄存器和彩灯显示五部其框图如图1所示。
图一:
方案一原理框图
方案二:
本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环系统的设计,来达到本设计的要求。
以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED发光二极管和5V直流电源电路组成。
此设计方案中单片机的P1口接4路按键控制电路,实现彩灯花型的切换功能;单片机的P1口引脚接上四个按钮开关以实现对彩灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换。
P1.2—开始,按此键则彩灯开始流动(依次点亮)。
P1.3—停止,按此键则停止彩灯流动,所有灯为暗。
P1.4—P1.7彩灯不同的显示方式,按下相应的按键彩灯则按照不同的显示方式显示,渲染节日气氛。
单片机上的P0.0~P0.7接8只红色LED,P2.0~P2.7接8只绿色LED,P3.0~P3.7接8只黄色LED,显示彩灯循环情况,该电路的原理框图如图二所示。
图二:
方案二原理框图
2.2方案论证
结合设计任务书比较以上两种方案可知:
利用电子电路装置控制,其电路不很复杂,制作相对较容易点,成本也相对较低,但可调性差,亮灯模式少而且样式单调,达不到设计任务要求或实现困难。
采用单片机控制其优点是电路集成度高,工作原理简单,清晰明了,自定义编程,控制的图案花样多,移植性好等。
2.3方案选择
综上,显然方案二各方面优越于方案一,以及为了体现专业优势,本次设计采用第二种方案。
第三章硬件电路设计
3.1单片机最小系统设计
要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。
单片机最小系统如图3所示。
时钟电路:
本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz石英晶体振荡器和2个33p微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
复位电路:
确定单片机工作的起始状态,完成单片机的启动过程。
单片机系统的复位方式有上电自动复位和手动按键复位。
本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。
图三:
时钟电路与复位电路原理图
3.2LED彩灯显示电路设计
设计任务主要涉及参数:
1.以单片机为核心,设计一个节日彩灯控制器。
2.P0.0~P0.7接8只红色LED,P2.0~P2.7接8只绿色LED,P3.0~P3.7接8只黄色LED。
3.P1.2—开始,按此键则彩灯开始流动(依次点亮)。
P1.3—停止,按此键则停止彩灯流动,所有灯为暗。
P1.4—P1.7彩灯不同的显示方式,按下相应的按键彩灯则按照不同的显示方式显示,渲染节日气氛。
彩灯显示电路原理图
3.3按键控制电路设计
P1.2—开始,按此键则彩灯开始流动(依次点亮)。
P1.3—停止,按此键则停止彩灯流动,所有灯为暗。
P1.4—P1.7彩灯不同的显示方式,按下相应的按键彩灯则按照不同的显示方式显示,渲染节日气氛。
图五:
按键电路原理图
3.4AT89C51单片机结构
AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC—51兼容。
片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。
因此,AT89C51是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。
另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到零并提供两种软件的省电方式-空闲方式和掉电方式。
在空闲方式中,CPU停止工作。
在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下次硬件复位为止。
主要特性:
(1)与MCS-51产品指令系统兼容
(2)4K字节可编程闪烁存储器
(3)寿命:
1000写/擦循环
(4)数据保留时间:
10年
(5)全静态工作:
0Hz-24Hz
(6)三级程序存储器锁定
(7)128*8位内部RAM
(8)32可编程I/O线
(9)两个16位定时器/计数器
(10)6个中断源
(11)可编程串行通道
(12)低功耗的闲置和掉电模式
(13)片内振荡器和时钟电路
管脚说明:
VCC(40):
供电电压,其工作电压为5V。
GND(20):
接地。
P0端口(P0.0-P0.7):
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1端口(P1.0-P1.7):
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2端口(P2.0-P2.7):
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3端口(P3.0-P3.7):
P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。
P3口也可作为AT89C51的一些特殊功能口,如下表1所示。
表1P3端口引脚兼用功能表
P3口同时为闪烁编程和编程校验接收一些控制信号。
复位RST(9):
复位输入。
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位操作不会对内部RAM有所影响。
ALE/
(30):
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
(29):
外部程序存储器的选通信号。
在由外部程序存储器取指令期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
EA/VPP(31):
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1(19):
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2(18):
来自反向振荡器的输出。
其引脚图如图3.1所示。
图3.1AT89C51引脚图
第四章统软件设计
程序设计(Programming)是指设计、编制、调试程序的方法和过程。
它是目标明确的智力活动。
在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。
因此,软件设计在微机控制系统设计中占重要地位。
对于本系统,软件也占有重要的地位。
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。
把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。
所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。
4.1主程序流程图
4.2正向流动程序流程图和反向流动程序流程图
4.3延时程序软件序设计
第五章仿真结果
5.1仿真效果图
5.2按下P1.2,开始,灯开始流动(由上而下)。
5.3按下P1.3,停止,灯停止流动,所有灯为暗。
5.4按下P1.4,灯由上向下流动。
5.5按下P1.5,灯由下向上流动。
第6章总结
经过几天的努力,终于完成了本学期的单片机课程设计,过程虽是辛苦的,但从中我学到了很多东西。
首先巩固了课上学习的理论知识,对于计算机汇编语言的系统化整体化有了更深的认识。
在编写程序的过程中遇到了很多困难经过反复修改不断修正最终才能得以执行。
再次是经过搜集资料基本了解了proteus软件的使用。
整个设计过程最大的收获就是意识到理论知识扎实的重要性,实践是建立在理论之上的。
设计主要研究的是节日彩灯控制系统的设计。
节日彩灯是节日中不可或缺的一部分,它可以增添节日气氛,用于装饰,布置节日现场,如公园、商场、舞台、酒店等等。
赏花灯是一个中国流传已久的节日活动。
历经千年而流传足以说明节日彩灯对于节日的重要。
古代只有用纸制作的,中间点着油灯的花灯,而如今已经被电灯所取替了。
现代的节日花灯使用色彩缤纷的灯泡,通过控制器来控制他们的亮灭规律,使其变幻多姿。
利用编程与外部开关的组合控制可以实现多种的点亮规律的手动切换,避免了但以显示方式的单调。
显示规律还可以利用编程从新编写。
单片机具有稳定性好,实时性高,使用寿命长等诸多优点。
在不断学习中,终于完成了课程设计任务。
通过本设计锻炼了我们的实践能力,也是对以后我们实际工作能力的训练和考察过程。
现在是一个高科技的时代,单片机的应用无处不在,这更坚定了我要学好单片机的决心。
我与同组人员经过将近两周的努力,终于完成的小学期的单片机课程设计,过程虽是辛苦的,但从中我却学到了很多东西。
首先巩固了课上学习的理论知识,对于计算机汇编语言的系统化整体化有了更深的认识。
在编写程序的过程中遇到了很多困难经过我们两人反复修改不断修正最终才能得以执行。
但最难的部分焊接实物部分,实验要求二十四个二极管是共阴极接法,我们先改了我们的程序,接下来焊接的过程中遇到的问题有,电解电容正负接反,开关使用方法不正确焊接虚焊等等,经过与同组人员讨论,向其他人请教和老师的指导才焊接成功。
整个设计过程最大的收获就是意识到理论知识扎实的重要性,实践是建立在理论之上的,平时基础知识学的好的同学做起来就是娴熟。
另外就是合作的重要性,每个人都有他的特长一个人难免有疏漏,只有大家共同努力才能顺利的完成任务。
通过本次课程设计,提高了我们多方面的能力。
提高了我们的自学能力,在设计过程中我们查阅了很多图书馆的书籍;提高了理论联系实际的能力,吧自己所学应用到实验中,对所用到的硬件有了更加深刻的理解;同时我们更加明白团结合作、分工合作的重要性,提高了团结合作的能力与做事效率。
提高了我们克服困难的信心与决心,刚开始学习单片机时毫无头绪到现在完成设计,我们明白了只要我们努力,没有克服不了的困难。
在经过遇到问题,思索问题到解决问题的过程中,就连向别人请教的过程也是一种收获,收获是最多的。
以往没有注意到的问题,都在这一次的课程设计中得以体现,这培养了我的细心,耐心和专心。
我觉得能够在这次的课程设计中学到很多的东西,以往不注意的细节,在这一次中是必须让自己去注意的。
也是我这所学到知识的一个体现。
我深深知道,每一次的学习实践环节都是那么的来之不易,都是通过老师的深思熟虑后,才给我们定下目标。
然后让我们在知识的海洋里翱翔,让我们随着年龄的增长不断的扩充自己的知识领域,也逐渐成熟,逐渐长大,老师同时也教导我们逐渐成为一个能够为身边的人,为家庭,为国家做出点点贡献的人,教导我们学会感恩。
所以,我在这次的课程设计中,认真对待每一个过程,希望自己的认真,自己最后的课程设计的成果能够回报老师教导。
附录A总原理图
附录B总程序
TCNTEQU30H
DIRBIT00H
ORG0000H
LJMPMAIN
ORG000BH
LJMPT0ISR
ORG0030H
MAIN:
CLREA
MOVSP,#5FH
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVTCNT,#0
SETBET0
SETBEA
CLRDIR
LOOP:
JBP1.2,LOOP1;启动
MOVR7,#10
LCALLDELAY
JBP1.2,LOOP1
JNBP1.2,$
SETBTR0
SJMPLOOP
LOOP1:
JBP1.3,LOOP2;停止
MOVR7,#10
LCALLDELAY
JBP1.3,LOOP2
JNBP1.3,$
MOVP0,#0FFH
MOVP2,#0FFH
MOVP3,#0FFH
CLRTR0
SJMPLOOP
LOOP2:
JBP1.4,LOOP3;正向
MOVR7,#10
LCALLDELAY
JBP1.4,LOOP3
JNBP1.4,$
CLRDIR
SJMPLOOP
LOOP3:
JBP1.5,LOOP;反向
MOVR7,#10
LCALLDELAY
JBP1.5,LOOP
JNBP1.5,$
SETBDIR
SJMPLOOP
DELAY:
MOVR2,#20
DLY1:
MOVR3,#250
DJNZR3,$
DJNZR2,DLY1
DJNZR7,DELAY
RET
T0ISR:
PUSHACC
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
MOVDPTR,#LEDLP
MOVA,TCNT
MOVCA,@A+DPTR
CPLA
PUSHACC
MOVA,TCNT
MOVB,#8
DIVAB
JNZT0ISR1
POPACC
MOVP0,A
MOVP2,#0FFH
MOVP3,#0FFH
SJMPT0ISRE
T0ISR1:
DECA
JNZT0ISR2
POPACC
MOVP2,A
MOVP0,#0FFH
MOVP3,#0FFH
SJMPT0ISRE
T0ISR2:
POPACC
MOVP3,A
MOVP2,#0FFH
MOVP0,#0FFH
T0ISRE:
JBDIR,T0ISR4
INCTCNT
MOVA,TCNT
CJNEA,#24,T0ISR3
T0ISR3:
JCT0ISR6
MOVTCNT,#0
SJMPT0ISR6
T0ISR4:
MOVA,TCNT
JNZT0ISR5
MOVTCNT,#23
SJMPT0ISR6
T0ISR5:
DECTCNT
T0ISR6:
POPACC
RETI
LEDLP:
DB01H,02H,04H,08H,10H,20H,40H,80H
DB01H,02H,04H,08H,10H,20H,40H,80H
DB01H,02H,04H,08H,10H,20H,40H,80H
END
参考文献
[1]贾好来.单片机嵌入式系统原理及应用.机械工业出版社,2013.4
[2]徐爱钧.单片机原理实用教程基于PROTEUS虚拟仿真.电子工业出版社,2009.1
[3]何立民.单片机与嵌入式系统应用[J].基于HCS12的小车智能控制系统设计.2007,