LED灯循环显示速度的遥控器控制设计-课程设计论文.docx_第1页
LED灯循环显示速度的遥控器控制设计-课程设计论文.docx_第2页
LED灯循环显示速度的遥控器控制设计-课程设计论文.docx_第3页
LED灯循环显示速度的遥控器控制设计-课程设计论文.docx_第4页
LED灯循环显示速度的遥控器控制设计-课程设计论文.docx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及接口技术 设计说明书LED 灯循环显示速度的遥控器控制设计一课程设计的目的1.进一步熟悉和掌握单片机的结构及工作原理。2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5.通过完成一个包括电路设计和程序开发的完整过程,了解开发一单片机应用系统的全过程,为今后从事相应开发打下基础。二课程设计的基本要求1.认真认识设计的意义,掌握设计工作程序,学会使用工具书和技术参考资料,并培养科学的设计思想和良好的设计作风。2.提高模型建立和设计能力,学会应用相关设计资料进行设计计算的方法。3.提高独立分析、解决问题的能力,逐步增强实际应用训练。4.课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。5.课程设计说明书封面格式要求见天津城市建设学院课程设计教学工作规范附表1。三课程设计具体要求a) 要求每位同学独立完成设计任务。b) 原理图设计1.原理图设计要符合项目的工作原理,连线要正确。2.图中所使用的元器件要合理选用,电阻、电容等器件的参数要正确标明。3.原理图要完整,CPU、外围器件、外扩接口、输入/输出装置要一应俱全。c) 程序调计1.根据要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。2.根据总体要求及分解的功能模块,确定各功能模块之间的关系,设计出完整的程序流程图。d) 程序调试1.编写相关程序,并进行仿真。2.将程序下载到单片机,进行运行调试。e) 设计说明书1.原理图设计说明简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。2.程序设计说明对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。3.画出工作原理图,程序流程图并给出相应的程序清单。四 设计任务STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计LED灯循环显示速度的控制电路。一是设计74LS273扩展8个LED显示;二是设计遥控接收电路,作为LED循环显示速度的参数输入;三是设计根据不同的输入参数改变LED循环显示速度的程序;四是扩展MAX7219或LCD1602作为相关输入参数的显示。目 录第1章.总体设计方案11.1主要设计模块概述11.1.1 关于AT89C51的介绍11.1.2关于遥控器工作方式的介绍11.1.3 LED灯循环及速度值的显示21.2设计实现原理31.2.1实现设计的大体思路31.2.2 总体思路流程框图4第2章 硬件电路设计52.1 LED小灯点亮模块52.2 LCD1602显示数据模块52.3完整电路图设计6第3章软件编程设计73.1 各模块程序设计73.1.1 LED小灯的循环点亮编程73.1.2遥控器编程83.2 总的整合程序9第4章 实际应用结果104.1模块仿真104.1.1 LED小灯循环显示仿真图:104.1.2 LCD1602仿真显示104.2总图仿真结果11第5章 课设心得体会12附录13附录14附录18附录19参考文献21第1章.总体设计方案1.1主要设计模块概述 本次课程设计要求以AT89C51作为主控芯片,以LCD1602液晶为显示,通过遥控器控制来达到使LED流水灯的流动速度改变。1.1.1 关于AT89C51的介绍 AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。在本次课程设计里,主要用到了两个I/O端口,分别是P0口和P1口。P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。根据本次课设的需求,我们让P0做主控芯片的输出端口和LCD的输入端口,通过这个端口,将数据传送到LCD1602液晶上,使该液晶显示当前速度直。至于LED流水灯的显示效果,我们就通过P1口来达到数据传送的目的。我们通过软件编程来实现LED小灯的循环和显示。1.1.2关于遥控器工作方式的介绍 针对课程设计的要求,我们采用红外遥控器,通过给外部中断一个开中断信号并且经过红外接收模块处理后使外部信息以不均匀的时序码形式传输给主控芯片,已达到对LED等亮度的控制.红外遥控器的发送数据要依据规定的数据格式。具体的发送格式如下图:图1.1 遥控数据发送格式遥控器的接收数据部分是将从遥控器接收到的数据信号进行放大之后在传输到主控芯片里进行下一步的操作。1.1.3 LED灯循环及速度值的显示 (1)根据课设要求,我们用IED灯来客观的反映在不同的档位下小灯的不同的循环速度。LED(Light Emitting Diode)即发光二极管,它是一种固态的半导体器件,可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。它通过将电压加在LED的PN结两端,使PN结本身形成一个能级(实际上,是一系列的能级),然后电子在这个能级上跃变并产生光子来发光的。所以我们通过软件编程在程序中利用中断程序来控制相邻的小灯之间亮灯的交换需要等待的时间来达到不同的循环点亮速度的效果(2)针对小灯不同循环速度显示不同数值的要求,我们应用LCD1602来显示。LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值.它与AT89C51主控芯片链接如图1.2所示:图1.2 LCD1602连接主控芯片 LCD1602的程序写入需要遵守一系列的时许规律,具体如图1.3:图1.3 LCD1602写操作时序根据图1.3对需要显示的数据(8位二进制代码)进行写程序和命令程序的编写就可以顺利的在显示屏上的看到想要显示的数据。1.2设计实现原理1.2.1实现设计的大体思路 首先,我们用红外遥控器发出一段NEC格式的信号,将信号发送给接收端,接收端将信号放大并将信号传送至外部中断INT0口,通过软件编程对时序信号进行解码,然后将解码后的数据送入循环程序,编程使这个数据能控制循环程序中进入中断的次数,中断在程序中循环的次数不同,那么小灯的循环点亮的时间间隔也发生变化,例如:当遥控器送入程序一个”2”时,程序中的中断会循环两次下一个小灯亮,让每次循环的时间固定为50ms的话,那么两次循环就是100ms,也就是说上一个小灯两100MS后会熄灭,紧接着下一个小灯就点亮。当遥控器送入程序一个”3”时,程序中的中断会循环三次下一个小灯才会亮,那么上一个小灯和下一个小灯熄灭和点亮交换的时间就会变成150ms。通过这种对中断次数控制的方法,我们就可以是小灯的循环快慢发生明显的变化,最后,通过编程,将两个小灯高低电平反转的时间间隔并依据LCD时序图进行软件编程是这个时间能显示在LCD1602液晶屏上。1.2.2 总体思路流程框图图1.4 设计原理框图第2章 硬件电路设计2.1 LED小灯点亮模块 对与LED小灯点亮部分,我们采用灌电流法将小灯连接在P1口,灌电流法就是从外部被动的将电流灌入小灯使小灯发亮,这种方法对硬件的条件需求低,而且工作更加稳定。作图方法是在每个小灯后面加一个300欧的电阻,在导通方向加一个电压源。具体电路图如2.1图:图2.1 LED小灯点亮电路图2.2 LCD1602显示数据模块LCD1602的显示受”CLK”和”DIN”两个功能拐脚控制,CLK是时钟信号,DIN是写数据和写命令信号,但是输入命令还是数据,要根据时钟信号和写操作时序(见图1.3)来确定.在本课程设计中,LCD1602的显示电路图如图2.2:图2.2 LCD1602显示电路图2.3完整电路图设计我们将以上所有模块的设计思路综合起来就可以得到完整的设计电路图,总的电路图如图2.3:图2.3设计电路图总图第3章软件编程设计3.1 各模块程序设计3.1.1 LED小灯的循环点亮编程(1)程序编写大体思路框图:图3.1编程设计框图(2)程序如下:#include#include#define uchar unsigned charuchar clockNum,flag;uchar fixTime;void init()clockNum = flag = 0;fixTime = 6;P1 = 0xfe;TMOD = 0x01;TH0 = 0x4c;TL0 = 0x00;ET0 = 1;TR0 = 1;EA = 1;void main()init();while(1)if(flag = 1)P1 = _cror_(P1,1);/循环移位flag = 0;void T0_Interrupt_Process() interrupt 1TH0 = 0x4c;TL0 = 0x00;if(clockNum+ = fixTime)flag = 1;clockNum = 0;3.1.2遥控器编程(1)遥控器编程思路框图:图3.2 遥控器编程框图(2)遥控器编程程序编写量较大,见附录3.2 总的整合程序 程序如下:#include#include1836.h#define uchar unsigned char#define uint unsigned intvoid delayms(uchar max)uchar i,j;for(i=max;i!=0;-i)for(j=110;j!=0;-j);void init()init_1836();void main()init();while(1);主程序中的子程序见附录到。第4章 实际应用结果4.1模块仿真4.1.1 LED小灯循环显示仿真图:如下图所见,此时LED小灯在自右至左无限循环,小灯的循环速度是经过300MS下一个小灯变亮。图4.1 LED灯循环显示仿真4.1.2 LCD1602仿真显示经过对程序的运行,LED灯循环点亮的速度显示在了LCD1602液晶显示屏上了。图4.2 LCD1602显示仿真4.2总图仿真结果当程序添加到画好的电路图后并进行仿真运行,此时LED小灯成功的循环,而且LCD1602液晶显示屏上也显示出了相应的速度。由于红外遥控器在仿真软件里无法仿真,所以下图中的电路图中没有画出。这里需要另外说明的是实物运行是成功的。图4.3总图仿真第5章 课设心得体会这一次单片机课程设计历时两个星期,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。从刚开始的热情满满,到中间部分一度陷入死胡同的纠结,再到最后面对现实,进一步埋头苦学。这一点一滴的内心的感受和心理历程,实在是让人感受良多啊。但是最终还是经过漫长的学习,克服重重的困难,还是按规定时间完成了课设要求。 其实生活同样是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实际的设计操作,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会。在做课设的过程中,我和同学们相互交流,相互讨论,相互学习。在一起做课设的这段时间,我们有说有笑,相互帮助,配合默契,多少汗水和欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了。我想说,做课设确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋。同样的我们也可以为社会作出我们应该做的一切,这有什么不好呢?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!附录主程序编写:#include#include1836.h#define uchar unsigned char#define uint unsigned intvoid delayms(uchar max)uchar i,j;for(i=max;i!=0;-i)for(j=110;j!=0;-j);void init()init_1836();void main()init();while(1);附录遥控器部分编程(1836.h):#include /包含单片机寄存器的头文件#include /包含_nop_()函数定义的头文件#includecror.h#includelcd.h#define uchar unsigned char#define uint unsigned int#define delayNOP(); _nop_();_nop_();_nop_();_nop_();#define DEFAULTNUM 6uchar code table=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;sbit IRIN=P32; /红外接收器数据线uchar IRCOM7;uchar m;/*void delay(uchar x) /x*0.14MSuchar i;while(x-)for (i = 0; i13; i+)void writeString(uchar *s,uchar num)uchar i;writeCom(0x06);for(i=0;i!=num;+i)writeDate(*(s+i);void display(uchar num)uint msTime = num*50;/设置的是50ms中断一次uchar ge,shi,bai;bai = msTime / 100;shi = msTime / 10 % 10;ge = msTime % 10; clearn();writeString(velocity:,9);writeDate(bai+0x30);writeDate(shi+0x30);writeDate(ge+0x30);writeString(ms,2);void init_1836()init_lcd();init_cror();m = DEFAULTNUM;IRIN=1; /I/O口初始化IE= IE | 0x81; /允许总中断中断,使能 INT0 外部中断TCON=TCON|0x01; /触发方式为脉冲负边沿触发display(getParam();void INT0_Interrupt_Process() interrupt 0unsigned char j,k,N=0;unsigned char q=0;EX0 = 0; delay(15);/先延迟0.14*15 = 2.1msif (IRIN=1) EX0 =1;return; /确认IR信号出现while (!IRIN) /等IR变为高电平,跳过9ms的前导低电平信号。delay(1);/延迟0.14msfor (j=0;j4;j+) /收集四组数据 for (k=0;k=30) EX0=1;return; /0.14ms计数过长自动离开。 /高电平计数完毕 IRCOMj=IRCOMj 1; /数据最高位补“0”if(N=8)IRCOMj = IRCOMj | 0x80; /数据最高位补“1” N=0;if(IRCOM2!=IRCOM3) EX0=1;return; /*数值转换*/IRCOM5=IRCOM2 & 0x0F; /取键码的低四位IRCOM6=IRCOM2 4; /右移4次,高四位变为低四位if(IRCOM59) IRCOM5=IRCOM5+0x37;elseIRCOM5=IRCOM5+0x30;if(IRCOM69) IRCOM6=IRCOM6+0x37;elseIRCOM6=IRCOM6+0x30;q= (IRCOM6&0x0f)4) + (IRCOM5&0x0f);/*/switch(q) /判断按键键码值case 0x16:m=0;break; case 0x03:m=1;break; case 0x18:m=2;break; case 0x55:m=3;break; case 0x09:m=13;break; default :break; switch(m)case 0:setParam(1);break;case 1:setParam(5);break;case 2:setParam(10);break;case 3:setParam(15);break;case 13:setParam(0);break;default:break;display(getParam();EX0 = 1; 附录LED小灯循环程序(cror.h):#include#include#define uchar unsigned charuchar clockNum;uchar fixTime;void init_cror()clockNum = 0;fixTime = 6;P1 = 0xfe;TMOD = TMOD | 0x01;TH0 = 0x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论