单片机流水灯·

上传人:m**** 文档编号:431631460 上传时间:2023-02-06 格式:DOC 页数:12 大小:241.50KB
返回 下载 相关 举报
单片机流水灯·_第1页
第1页 / 共12页
单片机流水灯·_第2页
第2页 / 共12页
单片机流水灯·_第3页
第3页 / 共12页
单片机流水灯·_第4页
第4页 / 共12页
单片机流水灯·_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《单片机流水灯·》由会员分享,可在线阅读,更多相关《单片机流水灯·(12页珍藏版)》请在金锄头文库上搜索。

1、广州学院用I/O口实现流水灯电路课 程 名 称:微机与单片机技术姓名:邬惠明学号:201038795080序号:34系:电子信息工程系专业:通信工程班级:通信(1)班指导教师:肖婷目 录一、内容摘要1二、正文1.设计目的 22.设计要求 23.题目分析与整体构思24.硬件详细设计65.软件详细设计86.在调试过程中遇到的问题及排除措施11三、设计心得体会11四、参考文献12一、 内容摘要:近年来,随着电子技术和微型计算机的发展,单片机的不仅档次不断提高,而且价格不断降低。起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产

2、品等等得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而STC89C52就是其中一种,其是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。需求分析:随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿百态恰能给人一种视觉冲击,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以产用电子电路去设计,我们主要可以用装套控制器和状态

3、译码器来实现灯光的流水效果,但是现在我们可以用单片机STC89C52来实现,因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。二正文微机与单片机技术课程设计用I/O口实现流水灯电路1设计目的 1)熟悉单片机I/O口的编程2)设计I/O口的使用2设计要求 用单片机控制LED灯轮流亮与灭,达到流水灯效果。 技术指标:每支灯管亮灭时间50us。3.题目分析与整体构思一个单片机系统最基本为单片机最小系统,复位电路、时钟电路、ROM等基本电路组成。因此我们以单

4、片机最小系统为模板,设计出下图原理框图。1)硬件原理框图复位电路流水灯电路驱动电路时钟电路STC89C52 2)总设计图3)选用有关STC89C52的引脚功能的分析:时钟电路:单片机采用内部时钟方式,利用芯片内部振荡器,然后在XTAL1、XTAL2两端跨接晶体振荡器构成稳定的自激振荡器。其中,XTAL1为单芯片系统时钟的反向放大器输入端。XTAL2为系统时钟的反向放大器输出端,在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了。而晶振我们用频率12MHZ的晶振。此外,可以在两引脚与地之间加入30pF的小电容C1、C2,C1、C2对频率有微调作用。可以使系统更稳定,避免噪

5、音干扰而可靠工作。复位电路:单片机利用上电复位电路进行单片机复位操作,利用电容的充电实现,在上电瞬间,由于电容电压不能突变使RESET为高电平,由于RESET为复位引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平,便能完成系统复位的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。驱动、流水灯电路:SCT89C52有4个I/O口,由于P1口只有一种功能,即并行I/O口功能,因此用P1口作为流水灯输出的时候,也可以利用其他I/O口的第二功能增加更多其他的功能,为以后增加功能提供了方便,从而提高单片机的使用价值。4)软件使用: 选用PROTEUS软件进行仿真设计,proteus

6、为一款强的单片机仿真软件,极大简化设计工作,并降低开发成本风险和开发效率,是电子技术人员的常用工具。另外PROTEUS可以与第三方集成开发进行联合仿真。使开发调试更加方便。4.硬件详细设计1) 复位电路部分单片机利用上电复位电路进行单片机复位操作,接通电源后使单片机复位使单片机会到初始状态,开始执行程序。 2)晶振部分通过晶振两端接入单片机XTAL1、XTAL2两端,产生时钟信号。使单片机在12MHZ下的时间节拍工作,机器周期为1us。3)LED显示部分 限流电阻为270欧姆。由于单片机的驱动能力有限,为了提高驱动能力,在P1口输出端口增加一片ULN2803驱动芯片,增加系统稳定性。5.软件详

7、细设计1)软件框图 2)单片机详细C51程序代码#include /52单片机头文件#include /包含有左右循环移位子函数的库#define uint unsigned int /宏定义#define uchar unsigned char /宏定义void delay(uint z) /延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms./delay(500);大约延时500ms.uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void main() /主函数uchar a,i,j;while(1)for(j=0;j3;

8、j+) /流水灯a=0xfe;for(i=0;i8;i+)P1=a; /点亮小灯delay(300); /延时300毫秒a=_crol_(a,1);P1=0xff;for(j=0;j3;j+) /从两边往中间流P1=0x7e; /点亮小灯delay(300); /延时300毫秒P1=0xbd;delay(300); /延时300毫秒P1=0xdb; /点亮小灯delay(300); /延时300毫秒P1=0xe7;delay(300); /延时300毫秒P1=0xff;for(j=0;j3;j+) /从中间往两边流P1=0xe7; /点亮小灯delay(300); /延时300毫秒P1=0xd

9、b;delay(300); /延时300毫秒P1=0xbd; /点亮小灯delay(300); /延时300毫秒P1=0x7e;delay(300); /延时300毫秒P1=0xff;for(j=0;j6;j+) /全部闪烁P1=P1; /点亮小灯delay(300); /延时300毫秒a=0xfe; /赋初值for(j=0;j8;j+)for(i=0;i8-j;i+) /左移P1=a; /点亮小灯delay(200); /延时200毫秒a=_crol_(a,1); /将a变量循环左移一位a=_crol_(a,j); /补齐,方便下面的左移一位P1=0xff; /全部关闭a=a1;/左移一位让

10、多一个灯点亮 6.在调试过程中遇到的问题及排除措施:第一个方面,为了将LED灯循环点亮,延时一段时间,我们组一致采用软件延时来实现,即空指令NOP加循环来实现,在写指令时,由于输入法的中/英切换导致程序中的一些标点格式不正确,经过反复检查和改进,我们组终于将延时程序写好。第二个方面,在采购的时候,我们打算用89S52芯片来来实现流水灯的功能,但是由于买到的AT89S52不能写入程序,迫于无奈,我们只能再买一块STC89C52来代替AT89S52,终于将程序写入了。第三个方面,在焊接完成后,流水灯却不能正常显示,我们首先是检查接线有没有接错,确定没错之后,我们猜测是焊点接触不良,我们用万用表检测

11、我们认为可能出问题的焊点,果然,由于铜线太细,在焊接的时候断了,当我们重新将焊点焊上之后,流水灯终于正常工作了。三设计心得体会:通过这次对单片机流水灯的设计与制作,让我了解电路设计的程序,也让我了解关于流水灯的设计原理与设计理念,加强了我们动手、思考和解决问题的能力。虽然刚开始时不知道从何做起,但棘手的问题经过小组讨论后,最后总能解决。看起来不是很难得电路图,真要动手做出来,就会出现很多意想不到的问题,又要经过重复调试、检查,才发现只是一个焊点有问题。在此次的数字钟设计的过程中,我们更进一步地熟悉了芯片的结构及掌握芯片的工作原理与具体的使用放方法,巩固和加强课本知识。我认为在设计的时候一定要仔细,耐心,一定要有创新思维,要用于尝试,要非常注意细节和养成良好的动手操作的习惯。这一次课程设计,不仅深化所学理论知识,培养了我们的综合运用能力,而且还增强了我们独立分析的能力、解决问题的能力与团队合作的能力。最重要的一点是我们应该尽情享受这设计过程中的乐趣!四、参考文献 单片机原理与应用 朱兆优 陈坚 2010年9月 单片机原理与应用系统设计 张齐 2011年5月 单片机应用系统设计技术 张齐 朱宁西 2011年1月

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号