1、邯郸学院课程设计报告 课程名称 单片机 题 目 节日彩灯控制器的设计 学 生 学 生 学 生 学 生 指导教师 年 级 专 业 二级学院 邯郸学院2015年 1 月 5 日邯郸学院单片机课程设计任务书院别 专业 班级 课程设计题目节日彩灯控制器的设计课程设计基本内容与要求一、基本内容 以单片机为核心,设计一个节日彩灯控制器: P1.2开始,按此键则灯开始流动(由上而下)。 P1.3停止,按此键则停止流动,所有灯为暗。 P1.4上,按此键则灯由上向下流动。 P1.5下,按此键则灯由下向上流动。二、功能要求1、根据课题,查阅相关资料2、画出系统原理框图;3、画出单元电路图;4、编写相应部分程序;5
2、、撰写说明书三、设计成果要求1、课程设计报告(2000字)2、设计能够实现上述功能的protues电路图和keil c程序。主要参考文献1、靳达.单片机应用系统开发实例导航 北京:人民邮电出版社,2003.102、张俊谟.单片机中级教程原理与应用 北京:北京航空航天大学出版社,2000.63、何立民.MCS-51系列单片机应用系统设计(系统配置与接口技术)进程安排起止时间完成内容2015.12.16-2015.12.23据任务书搜集相关的资料2015.12.24-2015.12.30设计并实现2016.01.01-2016.01.01撰写课程设计说明书2016.01.08-2016.01.15
3、准备答辩阶段系意见 系主任签字: 年 月 日摘要节日彩灯是生活中常常的装饰物品,是我国普遍流行的传统的民间的综合工艺品。彩灯艺术也是灯的综合性的装饰艺术。在当今社会里,彩灯已经成为我们生活当中的一部分,能给我们带来视觉上的享受,还能美化我们的生活。彩灯控制器主要是通过产生有规律变化的脉冲信号来实现彩灯的各种变化,他集中的应用了单片机、LED、自动控制等技术,是典型的基于单片机的电子产品。本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现才在开启时满足不一样的闪亮方法及方式。按K1开始,按此键则灯开始流动(由上而下)。K2停止,按此键则停止流动,所有
4、灯为暗。K3上,按此键则灯由上向下流动。K4下,按此键则灯由下向上流动。按K5从亮到暗到亮循环。通过按键能方便使用者选择不一样的亮法。并用仿真软件进行仿真按不同的方式点亮LED。还有就是这节日彩灯的制作成本低、精确度高、装调容易,为节日增添气氛,具一定的市场价值,因此制作了此节日彩灯。关键词:节日彩灯;单片机;LED;设计;仿真目录摘要3一、概述5二、任务要求5三、硬件电路设计与分析51.AT89C51单片机51.1 AT89C51结构512 AT89S51引脚描述72.键盘设计83.定时器与复位模块83.1时钟电路83.2复位电路9四、软件设计与论证10五、功能仿真实现12七、心得体会14八
5、、参考文献15附录15一、概述19世纪兴起的单片机以其先天的便捷、稳定的优点在现代电子技术电路中占有越来越重要的地位。又有数字电路与模拟电路相比有显而易见的稳定性。近年来,数字电路又有了巨大的发展。可编程逻辑器件(PAL、GAL等)的发展和普及最终使IC的设计面向了用户(这是模拟电路无法做到的),而这毫无疑问会给用户带来巨大的便捷,从而奠定它在电子电路中的对位。随着集成技术的进一步提高,各种新技术的出现和应用,人类历史横跨数码时代向更进一步发展已出现在各大型相关企业的宏伟蓝图中。新世纪里谁掌握了新技术谁就得到了获胜的资本,也仅仅是资本而矣。新世纪里电子行业的发展速度令人窒息,闻名的摩尔定律更把
6、许多人威吓在门外。 可以展望,一个由数字构成的新世界即将出现。那将是人类文明的又一飞跃,不仅可以获得良好的观赏效果,而且可以省电(与全部彩灯始终全亮相比)。近年来,随着人们生活水平的较大提高,人们对于物质生活的要求也在逐渐提高,不光是对各种各样的生活电器的需要,也开始在环境的幽雅方面有了更高的要求。比如日光灯已经不能满足于我们的需要,彩灯的运用已经遍布于人们的生活中,从歌舞厅到卡拉OK包房,从节日的祝贺到日常生活中的点缀。这些不紧说明了我们对生活的要求有了质的飞跃,也说明科技在现实运用中有了较大的发展。彩灯是我国普遍流行的传统的民间的综合性的工艺品。彩灯艺术也就是灯的综合性的装饰艺术。新中国成
7、立后,彩灯艺术得到了更大的发展,特别是随着我国科学技术的发展,彩灯艺术更是花样翻新,奇招频出,传统的制灯工艺。二、任务要求(1)PD0: 开始,按此键则灯开始流动(由上而下);(2)PD1: 停止,按此键则停止流动,所有灯为暗;(3)PD2: 上,按此键则灯由上向下流动;(4)PD3: 下,按此键则灯由下向上流动。三、硬件电路设计与分析 1.AT89C51单片机 1.1 AT89C51结构AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Onl
8、y Memory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC51兼容。片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。因此,AT89C51是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。AT89C51系列单片机对于一般用户来说,存在3个明显的特点:(1)内含Flash存储器。因此在应用2系统的开发过程中可以十分容易的进行程序的修改,这就大大缩短了系统的开发周期;同时,在系统工作过程中,能有效的保存一些数据信息,即使外接电源损坏也不影响信息的保存。
9、(2)与80C51插座兼容。AT89C51系列单片机的引脚与80C51是一样的,当用AT89C51单片机取代80C51时,可以直接进行取代。这时,不管采用40引脚还是44引脚的产品,只要用相同引脚的AT89C51单片机取代80C51的单片机即可。(3)静态时钟方式。AT89C51单片机采用静态时钟方式,所以可以节省电能。这对于降低便携式产品的功耗十分有用。图1 AT89S51单片机结构图12 AT89S51引脚描述VCC(40):供电电压,其工作电压为5V。GND(20):接地。P0端口(P0.0-P0.7):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次
10、写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门电流
11、,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3端口(P3.0-P3.7):P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下
12、拉为低电平,P3口将输出电流(ILL)。P3口也可作为AT89C51的一些特殊功能口。P3口同时为闪烁编程和编程校验接收一些控制信号。复位RST(9):复位输入。在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位操作不会对内部RAM有所影响。ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期
13、间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的 PSEN 信号将不出现。EA/VPP(31):当_ EA 保持低电平时,则在此期间外部程序存储器 (0000
14、H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,_ EA将内部 锁定为RESET;当_ EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2(18):来自反向振荡器的输出。 2.键盘设计独立式键盘是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响到其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断那个键被按下了。 独立式按键电路配置灵活,软件简单,但每个按键需要占用一根输入口线,在按键数量较多时,需要较多的输
15、入口线且电路结构复杂,故此种键盘适用于按键较少或操作速度较高的场合。按键直接与单片机的I/O 口线相接,通过读 I/O 口,判定 I/O 口线的电平状态,即可识别出按下的按键。如图2图2独立式按键仿真图3.定时器与复位模块3.1时钟电路单片机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。(1)时钟电路 89C51单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就
16、构成了自激振荡器并产生振荡时钟脉冲,如图2所示。图3时钟与复位电路仿真图图2中,电容器C2,C3起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。3.2复位电路当AT89C51单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路电容C1和电阻R19对电源
17、+5V来说20构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如图2所示。开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位常用的上电或开关复位电路如图2所示。上电后,由于电容C3的充电和反相门的作用,使RESET持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RESET为一段时间的高电平,从而实现上电或开关复位的操作。 四、软件设计与论证本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯系统的设计,来达到本设计的要求。其硬件以单片机为核心控制,由
18、单片机最小系统、时钟电路、复位电路、发光二极管和独立按键组成。 此设计方案中单片机的P1口接4路按键控制电路,实现彩灯花型的切换功能,单片机上的P0口接8路LED发光二极管组成彩灯电路,显示彩灯循环情况。1、总体流程图设计开始正向循环开始键按下?是否停止键按下?正向键按下?灯全灭是否是否反向键按下?反向循环是正向键按下?否停止键按下?是否是否 图4程序流程图2.总原理图 图5:总原理图功能说明:S1-开始,按此键,灯开始流动(从上到下)S2-停止,按此键,灯停止流动(灭灯)S3-上,按此键,灯从上而下流动S4-下,按此键,灯从下而上流动2元件清单元件序号元件说明数量备注AT89C51单片机芯片
19、1R1R9限流电阻9220LED发光二极管8KEY按键开关4 表1:元器件清单五、功能仿真实现1、开始:从上到下流动点亮2、反向:从下向上流动点亮3、停止:灭灯七、心得体会本次课程设计既要求我们对知识掌握的牢固,又要求我们对知识能够灵活运用。从所涉及的知识面来说,它不仅要求我们运用所学过的知识还要求我们去查找,学习,借鉴其他科目或门类的知识。从时间上来说,这次设计的时间是最长的,因此我们有足够的时间去重新温习学过的知识,更有充足的时间去搜集学习一些我们没有涉猎过的知识。这样不仅锻炼了我们学习新知识的能力,同时也拓宽了我们的知识面。并且我们还有足够时间去修改我们的设计中的缺陷,这也是对我们将来走
20、入社会独立完成一项课题的考验。我们经过将近两周的努力,终于完成本次创新课程设计,过程虽是辛苦的,但从中我们却学到了很多东西。首先巩固了课上学习的理论知识,对于计算机C语言的系统化整体化有了更深的认识。整个设计过程最大的收获就是意识到理论知识扎实的重要性,实践是建立在理论之上的,平时的基础知识很重要。另外就是合作的重要性,每个人都有他的特长一个人难免有疏漏,只有大家共同努力才能顺利的完成任务。通过本次课程设计,提高了我们的自学能力,提高了理论联系实际的能力,把自己所学应用到实验中,对所用到的硬件有了更加深刻的理解;同时我们更加明白团结合作、分工合作的重要性,提高了团结合作的能力与做事效率。提高了
21、我们克服困难的信心与决心。 八、参考文献1马潮编著.AVR单片机嵌入式系统原理与应用实践(第二版) 北京航空航天大学出版社 2011年8月。 2周兴华编著.手把手教你学单片机C程序设计 北京航空航天大学出版社 2008年6月。 3、童诗白、华成英主编.模拟电子技术基础 高等教育出版社。附录#include#include#define uchar unsigned char#define uint unsigned intvoid delay(uint);void san();void wu();sbit K1=P12;sbit K2=P13;sbit K3=P14;sbit K4=P15;int a;int c;void main()while(1) if(K1=0) san(); if(K2=0) P0=0xff; if(K3=0) san(); if(K4=0) wu(); void san() uchar table=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; for(a=0;a0;i-) for(j=110;j0;j-);void wu()uchar table1=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;for(c=7;c-1;c-)P0=table1c;delay(300);18