1 / 15
文档名称:

流水灯模拟控制系统(课程设计论文).pdf

格式:pdf   大小:2,009KB   页数:15页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

流水灯模拟控制系统(课程设计论文).pdf

上传人:1781111**** 2024/5/11 文件大小:1.96 MB

下载得到文件列表

流水灯模拟控制系统(课程设计论文).pdf

相关文档

文档介绍

文档介绍:该【流水灯模拟控制系统(课程设计论文) 】是由【1781111****】上传分享,文档一共【15】页,该文档可以免费在线阅读,需要了解更多关于【流水灯模拟控制系统(课程设计论文) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..流水灯就是一组灯在控制系统的控制下按照设定的顺序和时间来点亮和熄灭,这样就能形成如流水一样的视觉效果。现在很多街上的店面和招牌上面就安了流水灯,在夜里看上去如流水一样变换闪烁、美不胜收。流水灯控制可用多种方法实现,例如可运用模电和数电的知识,利用移位寄存器实现对流水灯的控制:通常用左移寄存器实现灯的单方向移动;用双向移位寄存器实现灯的双向移动。因为我最近在自学单片机的教程,对单片机这个具有体积小、功能强、成本低、应用面广等优点小东西起了浓厚的兴趣,本着学****单片机就要理论与实践并重的理念,我决心用单片机来做这次流水灯课程设计,检验自己对单片机知识的吸收和掌握的程度。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代,可以说,智能控制与自动控制的核心就是单片机。因此,作为未来电子自动化领域主力,我们应该掌握有关单片机的知识,以跟上科技的发展和时代的潮流。,首先要求八个灯LED0至LED7依次点亮,间隔时间为一秒。待八个灯全部点亮后,再由LED7至LED0依次熄灭,间隔时间同样为一秒。等到灯全部熄灭后,再控制灯八个灯同时闪烁4次,闪烁一次的时间为1秒,共计四秒。附加功能:灯LED0-LED1-LED2-LED3构成字母A的“”,灯LED7-LED6-LED5构成字母A的“”,灯LED4构成字母A的“-”,按照写字母A的顺序依次点亮各个小灯,间隔时间为500毫秒。等到灯全部点亮后,再控制八个灯同时闪烁3次,闪烁一次的时间为500毫秒。由于延时时间较短,在灯明灭时我们可以明显地观测到字母A的流水灯效果。,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。从原理图中可以看出,,;相反,,;同理,~。因此,要实现流水灯功能,我们只要将发光二极管LED0~LED7依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于设计任务对灯的点亮与熄灭有一定时间要求,所以我们在控制二极管亮灭的时候应该加入延时程序,以满足课程设计的要求。61:..1电路原理图(SCH),以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有手动按钮复位和上电复位。从方便和实用的角度出发,本设计采用手动按钮复位法。手动按钮复位需要人为在复位输入端RST上加入高电平,如图2所示。一般采用的之间接一个按钮。当人为按下按钮时,的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。71:..复位电路所需元件:电阻一个,按钮一个,10uF点解电容一个,电源。单片机系统里都有晶振,在单片机系统里晶振作用非常大,全名叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率上。晶振是为电路提供频率基准的元器件,通常分成有源晶振和无源晶振两个大类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确匹配外围电路(电感、电容、电阻等),如需更换晶振时要同时更换外围的电路。有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。考虑到价格等因素,实际应用中多采用无源晶振设计的电路居多,除非电路设计时序极其敏感或芯片内部无振荡器的情况(如一些型号的DSP或精密仪器中)。因为本次课程设计的实验要求不是很高,故采取无源晶振设计电路。XTAL就是一个两脚的无源晶振,12MHz振荡频率,匹配电容是两个30pF的瓷片电容。选用12MHz的晶振主要是因为这种晶振可以方便和精确的设计串口或其它异步通讯时的波特率。晶振电路原理图如图3所示。图3晶振电路所需元件:30pF瓷片电容两个,12MHz晶振一块。。为了防止流过发光二极管的电流过大对二极管造成损坏而影响实验,每个二极管都串联一个电阻分压,串联电阻越大,流过二极管的电流越小,灯的亮度越低。由原理图可知,=5V,,流81:..至10mA内为安全电流。为了保证发光二极管导通时的安全和发光亮度,串联电阻取500欧姆,此时流过二极管的电流为I=(5-)/500=660(mA)满足要求。所需元件:发光二极管8个,电阻(500欧姆)8个。51单片机是对目前所有兼容Intel8031指令系统的单片机的统称。按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51系列单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:闪存4x、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,~~24MHz工作频率,使用AT89C51系列单片机时无须外扩存储器。简要介绍:·8位CPUCPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器。·4kbytes程序存储器ROM(52为8K)ROM:用以存放程序、一些原始数据和表格。·256bytes的数据存储器RAM(52有384bytes的RAM)RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据。·32条I/O口线I/O口:四个8位并行I/O口,既可用作输入,也可用作输出。·111条指令,大部分为单字节指令。·21个专用寄存器·2个可编程定时/计数器T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式。·5个中断源,2个优先级(52有6个)·一个全双工串行通信口·外部数据存储器寻址空间为64kB·外部程序存储器寻址空间为64kB·双列直插40PinDIP封装·单一+5V电源供电片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率为12M。本次课程设计中所用的单片机为AT89C52,功能和引脚与AT89C51没有差别。所需元件:AT89C52一块。91:..,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。从电路图中可以看出,,;相反,,;同理,~。因此,要实现流水灯功能,我们只要编程将发光二极管LED0~LED7依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。实现流水灯控制的软件编程方法有好几种,如位控法、循环位移法等。这里采用位控法。这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P3口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序见附录二。(1s),所以我们在控制二极管亮灭的时候应该加入延时程序,以满足课程设计的要求。延时程序如下:voiddelay(unsignedintx){unsignedchari;while(x--){for(i=0;i<123;i++);}}只要修改delay(x)中的x值,就可以修改灯亮灭的延迟时间,如delay(100),则延迟100ms,delay(1000),则延迟1000ms(1s)。通过调试,得到了比较精确的延时时间(1s)。如下图(图4)所示。图4延时程序的调试101:..。。由仿真结果可知,本次设计较为成功,完成了控制流水灯的流向与明灭时间的任务要求。5小结通过对本次课程设计,我充分认识到了理论与实际操作相结合的重要性。以前在自学单片机教程的时候,听到老师将知识点讲的很容易很透彻,自己也能够听得懂能够理解,便得意洋洋的以为自己已经掌握了单片机,认为自己用运用单片机做设计师是易如反掌。直到这次课程设计,通过自己亲自构思编写程序和进行调试仿真,我才认识到自己在单片机知识上的薄弱与浅薄:构思编写程序时的粗心大意与考虑不周,无不让我不得不一次次对程序进行修改;进行调试仿真时的忘记下一步操作,让我不得不暂停,去查阅资料或请教别人。虽然在做本次课程设计中遇到了种种困难,但也让我加深了对单片机知识的理解与掌握,学会了解决问题的方法,同时通过学****和运用keil,proteus等软件进行实验设计仿真,让我找到了学****的乐趣,加大了对自己所学专业知识的了解与热爱。111:...《单片机外围电路设计及C语言编程视频教程》.、牛莉.《C语言程序设计》[M].北京:中国铁道出版社,、杨建国、宁改娣等.《51系列单片机及C51程序设计》.[M]..《单片机原理及应用系统设计》.[M].:..附录一(电路图)SCH)PCB印刷版1:..#include<>#defineuintunsignedint/*宏定义*/#defineucharunsignedcharsbitled0=P3^0;/*端口定义*/sbitled1=P3^1;sbitled2=P3^2;sbitled3=P3^3;sbitled4=P3^4;sbitled5=P3^5;sbitled6=P3^6;sbitled7=P3^7;voiddelay(unsignedintx)/*延时程序*/{unsignedchari;while(x--){for(i=0;i<123;i++);}}voidmain()/*主函数*/{uintj;/*课程设计任务的程序*//*依次点亮led0至led7八个灯,间隔时间为1秒*/led0=0;/**/delay(1000);/*延时一秒*/led1=0;delay(1000);led2=0;delay(1000);led3=0;delay(1000);led4=0;delay(1000);led5=0;delay(1000);led6=0;141:..led7=0;delay(1000);/*led7至led0八个灯,间隔时间为1s。*/led7=1;/**/delay(1000);/*延时一秒*/led6=1;delay(1000);led5=1;delay(1000);led4=1;delay(1000);led3=1;delay(1000);led2=1;delay(1000);led1=1;delay(1000);led0=1;delay(1000);/*八个灯同时闪烁四次,闪烁一次的时间为一秒。*/P3=0x00;P3=0xff;for(j=0;j<8;j++){P3=~P3;delay(1000);}P3=0xff;/*附加任务的程序(“A”形灯的程序)*//*依次点亮led0-led1-led2-led3-led7-led6-led5-led4八个灯,间隔时间为500ms*/led0=0;delay(500);led1=0;151:..led2=0;delay(500);led3=0;delay(500);led7=0;delay(500);led6=0;delay(500);led5=0;delay(500);led4=0;delay(500);/*3次,闪烁一次的时间为500ms。*/P3=0x00;P3=0xff;for(j=0;j<6;j++){P3=~P3;delay(500);}P3=0xff;while(1);/*死循环,程序停止*/}161:..仿真结果课程设计任务的仿真结果仿真电路图(ISIS)仿真结果截图LED0至LED7依次点亮,间隔时间为一秒。171:..2LED7至LED0依次熄灭,间隔时间为一秒。181:..3LED0至LED7同时闪烁四次,闪烁一次的时间为一秒。1:..)仿真结果截图(部分)201