设计方案及原理本课程的设计利用闪烁灯光的变化来表现不同的效果。 主体采用AT89S51单片机,利用多个发光二极管,通过编程实现“闪光灯”的图案变化。 本设计采用P0、P2、P3三个输出接口,共24个LED灯。 有红、蓝、绿三种光色。 一个系统可以让闪光灯有规律地、周期性地闪烁,产生绚丽的闪烁效果。 硬件设计 单片机的复位操作有两种方式:上电自动复位和按键自动复位。 上电复位是通过对外部复位电路的电容充电来实现的。 电容C1选择10uf,电阻选择10K。 这样,只要电源VCC的上升时间不超过1ms,就可以实现上电复位,即上电时就完成了系统的复位初始化。 时钟电路用于产生单片机运行所需的时钟信号。 在MCS-51系列单片机芯片外部,X1X2跨接晶振和微调电容,构成稳定的自激振荡器,是单片机的时钟电路。 电容C2通常为30pf,对振荡频率有微调作用。 选择振荡频率为12MHZ的石英晶体。 3.1 硬件接线设计 单片机的P0.0-P0.7分别连接8个发光二极管L1-L8,P2.0~P2.7还连接8个发光二极管L9-L16、P3。 0~P3.7还连接8个发光二极管L17-L24。 当按下运行按钮时,二十四个发光二极管分三列依次亮起,然后每一排灯一一闪烁,实现二十四灯的绚丽闪烁。 每个灯的闪烁设置为 50MS 延迟。 ,由于8051单片机P0、P3口输出电流太小,需要设置上拉电阻。
发光二极管有共阳极和共阴极的连接方式。 本设计选择共阳极连接方式,因此向P1口发送高电平即可驱动发光二极管发光,发送低电平即可驱动发光二极管熄灭。 循环过程中,通过中断的方式增加广告灯图案的一些变化; 灯光从两侧向中间照射,从中间向两侧照射。 同时利用中断来控制下方24个发光二极管的单双亮灭,形成绚丽的闪烁效果。 因此,总体设计框图如图1所示。 硬件设计 图3.2 时钟电路分析 在内部模式时钟电路中,必须在XTAL1XTAL2引脚两端连接一个石英晶体振荡器和两个微调电容,以构成振荡电路。 通常C1和C2一般为30pF。 ,晶体振荡器的频率范围为1.2MHz至12MHz。 对于外部时钟电路,XTAL1 需要接地,XTAL2 引脚连接外部时钟。 对外部时钟信号没有特殊要求,只要保证脉冲宽度且时钟频率低于12MHz即可。 晶振的振荡信号从XTAL2端送至内部时钟电路,内部时钟电路将信号二分频,产生两相时钟信号P1和P2,供单片机使用。 时钟信号周期是状态时间S,它是振荡周期的两倍。 P1信号在每个状态的前半周期有效,P2信号在每个状态的后半周期有效。 CPU以两相时钟P1、P2为基本节拍,协调单片机各部分的有效工作。 3.3 上拉电阻的使用 经过实验,C51单片机P0、P2口输出电流偏小。 需要使用上拉电阻来放大电流才能使彩灯闪烁。 后来减小限流电阻的大小来调节彩灯的亮度。
软件设计 4.1 设计流程图 发光二极管有共阳极和共阴极连接方法。 本设计选择了共阳极连接方式,因此向P1口发送高电平即可驱动发光二极管发光,发送低电平即可驱动发光二极管发光。 关闭 LED。 程序设计:组合闪烁模式在程序中用单独的块进行编程。 第一个块是所有灯闪烁,延迟40MS,闪烁次数; 下一个模式是每排灯依次闪烁,延迟40MS,闪烁完成后进入3个模式,彩色灯依次点亮。 点亮后,应用高电平保持灯亮,直至所有灯亮; 第一种模式将返回并循环。 通过了解控制需求而绘制的流程图可以让我们更加熟悉控制过程,编程过程变得有据可查。 闪灯控制设计流程图如图2所示。3排灯一起闪5次。 每排灯从上到下依次闪烁。 设置端口输出,看是否有按键。 按结束键开始闪灯控制流程图。 单片机原理与系统课程设计报告。 4.2 闪烁光源程序。 闪烁光源程序见附录。 显示。 4.3 模拟结果:彩灯排列:第一排蓝色灯,第二排绿色灯,第三排红色灯。 当按下运行按钮时,三排灯同时闪烁; 闪烁一次后,每行灯依次闪烁,然后每行灯从上到下闪烁,最后循环之前的闪烁过程。 就像夜晚的城市里随处可见闪烁的灯光一样。 总结了一周的单片机课程设计,终于顺利完成了,其中有幸福,也有辛酸。 我选择的设计主题是“闪烁的灯光”。 一开始我觉得这个题目比较简单。
事实上,事实并非如此。 做了之后,我们发现虽然设计电路很简单,但我们认为真正困难的部分是编程。 不过,在大家的共同努力下,最终还是完成了。 模拟的时候,一开始连接正确,但是发现灯不亮。 后来查资料发现C51的P0、P3口输出电阻太小,所以设置了上拉电阻。 这个问题终于解决了,Flash也实现了。 闪烁功能。 完成单片机课程设计后,我们发现自己还有很多不足,所学的知识还远远不够,以至于还有一些功能是无法被动完成的。 不过,通过学习这次实践,增强了我们的动手能力,提高和巩固了我们对单片机尤其是软件的知识。 它增强了我们的团队合作精神,让我们认识到理论联系实际的重要性。 孙汉芳. MCS-51/96系列单片机原理及应用[M]. 北京:高等教育出版社,1994。江惠平。 基于Proteus的单片机系统设计及仿真实例[M]. 北京:机械工业出版社,2009。单片机原理与系统课程设计报告附录闪烁灯源程序为:/*程序名称:单片机循环灯课程设计/*编写者:/*编写时间: 2012/*硬件支持:AT89C5112MHz#includereg51 .H//STC12C2052AD单片机 sbitLED0_1//定义闪烁LEDsbitLED0_2//定义闪烁LEDsbitLED0_3//定义闪烁LEDsbitLED0_4//定义闪烁LEDsbitLED0_5//定义闪烁LEDsbitLED0_6//定义闪烁LED sbitLED0_7 //定义闪烁LEDsbit LED0_8 //定义闪烁LEDsbit LED2_1 //定义闪烁LEDsbit LED2_2 //定义闪烁LEDsbit LED2_3 //定义闪烁LEDsbit LED2_4 //定义闪烁LEDsbit LED2_5 //定义闪烁LEDsbit LED2_6 //定义闪烁LEDsbit LED2_7 //定义闪烁LEDsbit LED2_8 //定义闪烁LEDsbit LED3_1 //定义闪烁LEDsbit LED3_2 //定义闪烁LEDsbit LED3_3 //定义闪烁LEDsbit LED3_4 //定义闪烁LEDsbit LED3_5 //定义闪烁LEDsbit LED3_6 //定义闪烁LEDsbit LED3_7 //定义闪烁LEDsbit LED3_8 / /定义闪烁LED//延时子程序 void DELAY_MS (unsigned int unsignedint //闪光模式0子程序 void Type_0() //闪光模式1子程序 void Type_1() 0;DELAY_MS(30);LED0_2 0;DELAY_MS(30);LED0_3 0;DELAY_MS(30);LED0_4