彩灯控制系统设计方案 .docx
精品名师归纳总结目 录任务一:一只 LED灯闪耀一、任务目标1二、任务分析1三、任务实施1<一>、硬件电路设计1<二>、软件程序设计21、程序流程图22、源程序任务二:跑马灯2一、任务目标2二、任务分析2三、任务实施3<一>、硬件电路设计3<二>、软件程序设计31、程序流程图32、源程序4任务三:任意变化的彩灯一、任务目标4二、任务分析4三、任务实施4<一>、硬件电路设计4<二>、软件程序设计51、程序流程图52、源程序5可编辑资料 - - - 欢迎下载精品名师归纳总结任务一:一只 LED灯闪耀一、任务目标1) 懂得单片机掌握彩灯电路的设计原理。2) 懂得程序对彩灯的掌握原理。3) 懂得延时程序的工作原理。4) 会将单片机端口与彩灯电路正确的连接。5) 能编写简洁的彩灯掌握程序二、任务分析本次任务是要用单片机实现一只LED彩灯按 1Hz 的频率闪耀。就是要求在 1s 内,让彩灯亮 0.5s ,熄灭 0.5s 。前面已经分析过,就是让单片机端口的某一位 每隔 0.5s 转变一次输出电平。这里有两件事要做,一个是选用单片机的某一个端口,用接线连接到彩灯的连接插座上。另一个是要使单片机产生一个1Hz 的频率脉冲信号,从 P2 口的某一位输出,去掌握发光二极管。P2 口可掌握一只发光二极管的闪耀。为了能设计动身光二极管以1Hz 的频率闪耀,这就要求单片机输出的频率为1Hz 的脉冲信号,实际上就是在端口上周期显现高电频和低电频,输出1Hz 的方波,就是其高、低电平各0.5s 。单片机重复的实现高低电平这个过程用框图表示出来。一般来说,在进行程序设计时,第一分析要实现的任务,编写程序设计的思 路和确定程序实现任务的方法,并用框图表示出来,这就是所谓的程序框图设 计。然后依据框图编写详细程序即可,从而完成一只LED灯闪耀的任务目标。三、任务实施C230pfC330pfX1U119XTAL1CRYSTAL18XTAL2C19RSTP0.0/AD0 P0.1/AD1P0.2/AD2 P0.3/AD3P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7393837363534333210uFR410k29 PSEN30 ALE31 EAP2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11P2.4/A12 P2.5/A13P2.6/A14 P2.7/A152122232425262728R1D1220LED-yellow1P1.02P1.13P1.24P1.35P1.467P1.58P1.6P1.7P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1P3.4/T0P3.5/T1 P3.6/WR P3.7/RD1011121314151617AT89C51<一>、硬件电路设计可编辑资料 - - - 欢迎下载精品名师归纳总结<二>、软件程序设计1、程序流程图开头输出低电平延时0.5s输出高电平延时0.5s2、源程序如下:#include"reg51.h"void mainvoid#define uchar unsigned charsbit light=P20。void delay05svoidwhile1unsigned char i,j,k。fori=5。i>0 。i- forj=250。j>0 。j-light=0。delay05s light=1。delay05s。fork=250。k>0。k- 。任务二:跑马灯一、任务目标所谓的跑马灯,让彩灯从左到右依次点亮。为了演示跑马灯的成效,学会它的硬件连接以及其对应的原理图。二、任务分析为了完成跑马灯 LED依次点亮的任务目标,就是要求P2 口从 P2.0P2.7 依次输出低电平,其余引脚都输出高电平。从输出的详细的数,据来看,第一个LED 点亮需要的输出数据,是对应于P2.0 的位为 0,其余位为 1,组合为一个字节时,对应的二进制从高到低为: 1111 1110 ,即十六进制数0xFE。同理,其次个LED 点亮对应的数为: 11111101,即十六进制数 0xFD。依次类推,逐次点亮 LED所对应的数: 1111 1110 、1111 1101 、1111 1011 、1111 0111 、1110 1111、1101 1111 、1011 1111 、0111 1111.可编辑资料 - - - 欢迎下载精品名师归纳总结从这些数据上可以看出一个规律,就是这些数据中的二进制0 的位置依次往左移动了一位。在 C51 中,要直接实现数据的这种的这种运算式不简洁的,假如将数据的全部二进制位取反后,数据就变成了:0x01、0x02、0x04、0x08、0x10、0x20、0x40、0x80,也就是后一个数在前一个数的基础上乘以一个2.数据前面的分析,实现任务的思路是:程序开头时,给某一个变量赋初始值0x01,并从端口输出变量的反码,等待一段时间后,让变量的值乘以2,再次输出反码并延时,直到全部数据输出完毕,再次重复整个过程。依据思路得出程序框图,最终完成跑马灯的设计。三、任务实施<一>、硬件电路设计外部电路设计图如下:C130pf可编辑资料 - - - 欢迎下载精品名师归纳总结X119U1XTAL1P0.0/AD03938可编辑资料 - - - 欢迎下载精品名师归纳总结C230pFC310uFR910kCRYSTAL18XTAL29RST29PSEN30ALE31EA1P1.02P1.13P1.24P1.35P1.46P1.57P1.68P1.7AT89C51P0.1/AD1 P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.0/A821P2.1/A922P2.2/A102324P2.3/A11 P2.4/A122526P2.5/A13 P2.6/A142728P2.7/A15P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17R1220R2220R3220R4220R5220R6220R7220R8220D1LED-YELLOWD2LED-YELLOWD3LDE4D-YELLOWLED-YELLOWD5LED-YELLOWD6LED-YELLOWD7LED-YELLOWD8LED-YELLOW可编辑资料 - - - 欢迎下载精品名师归纳总结<二>、软件程序设计1、程序流程图开头设置显示变量初始值,定义显示循环掌握变量i<8.显示变量取反送端口,LED亮延时0.5s显示变量左移一位可编辑资料 - - - 欢迎下载精品名师归纳总结2、源程序如下:#include"reg51.h"#define uchar unsigned charwhile1sbit light=P20。void delay05svoidlight=0。delay05s。unsigned char i,j,k。light=1。fori=5。i>0 。i-delay05s。forj=250。j>0 。j-fork=250。k>0。k- 。void mainvoid任务三:任意变化的彩灯一、任务目标按时间依次让彩灯显示出规定的花样,但其对应于掌握的显示数据之间没有规律,不能通过运算的方式得到。并能明白其采纳的电路图以及对应的原理 图。二、任务分析由于本次任务是按时间变化依次掌握彩灯亮、灭,可以采纳与跑马灯类似的思路来完成程序框图,但显示花样所对应的数据的变化不肯定有规律,不能采纳变量直接运算的方式实现前后数据的变化,因而我们可以采纳一种很重要的程序设计方法 - 查表法。将彩灯显示的图案所对应的端口输出数据依次编写为一张数据表,表中的每 个数据为 0 的位表示对应的彩灯亮,数据位1 的位表示对应的彩灯灭。将这张数据表放在程序中,以数据的形式储备,在使用时依次读出数据中的元素就得到了需要的数据,实现了数据的无规律变化,并且数据储备的数据可以较多,能实现的花样变化也可以比较复杂。在C51 中要进行复杂的运算,也可以采纳数据组的方式来实现,比如:一个周期正弦值的运算,也可以先将这些列在表中,需要是查表读出,这就是查表法。将用于点亮彩灯的数据放在数据组中,让程序依次多出这组中的数据,并将数据送到端口,掌握彩灯的点亮就实现了任意规律变化彩灯掌握。假如设有N个数据,当程序段读完N 个数据后,又从头开头读数。从而掌握本次的任意变化的彩灯的掌握。三、任务实施<一>、硬件电路设计外部电路图设计如下:可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结C130pfX1CRYSTALU119XTAL139P0.0/AD038P0.1/AD137可编辑资料 - - - 欢迎下载精品名师归纳总结C230pF18XTAL2P0.2/AD236P0.3/AD335P0.4/AD434可编辑资料 - - - 欢迎下载精品名师归纳总结C310uF9RST29PSEN30ALEP0.5/AD533P0.6/AD632P0.7/AD721P2.0/A822P2.1/A923P2.2/A1024P2.3/A1125P2.4/A12R1220R2220D1LED-YELLOWD2可编辑资料 - - - 欢迎下载精品名师归纳总结R910k3126EAP2.5/A1327P2.6/A1428P2.7/A15R3LED-YELLOWD3可编辑资料 - - - 欢迎下载精品名师归纳总结1P1.02P1.13P1.24P1.35P1.46P1.57P1.68P1.7AT89C5110P3.0/RXD11P3.1/TXD12P3.2/INT013P3.3/INT114P3.4/T015P3.5/T116P3.6/WR17P3.7/RD220R4220R5220R6220R7220R8220LDED4-YELLOWLED-YELLOWD5LED-YELLOWD6LED-YELLOWD7LED-YELLOWD8LED-YELLOW可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结<二>、软件程序设计1、程序流程图程序开头可编辑资料 - - - 欢迎下载精品名师归纳总结设置初始值I<N.读变量表 P2端口LED亮延时0.5S2、源程序如下:可编辑资料 - - - 欢迎下载精品名师归纳总结#include"reg51.h"#define uchar unsigned char uchardispcode8=0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff。void delay05svoidunsigned char i,j,k。fori=5。i>0 。i- forj=250。j>0 。j- fork=250。k>0。k- 。void mainvoiduchar i。while1fori=0。i<8 。i+P2=dispcodei。delay05s。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载