资源描述
单片机流水灯系统设计学生 专业班级 学 号 指导教师 2015年4月25日摘要自计算机问世以来,单片机技术在社会各领域中得到了广泛的应用。在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式市发展速度,成为日后此系统中的核心部分。由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。本文主要讲的是单片机,课题名称为单片机流水灯控制,它使我们学会了如何使用单片机控制我们日常生活中的多设备设施的应用。通过本课题的设计以后,使我了解到了单片机的许多方面的应用。本课题详细地介绍了一种由MCS-89C51集成块编程实现的控制电路,它完成了单片机流水灯控制功能,并给出了具体的硬件电路和相应的程序。这种控制电路可靠性,灵活性高,使用范围广,特别适合中小城市的交通灯、霓虹灯等的应用。而且,它对其他类似系统的开发具有一定的借鉴意义。通过本次实训实习,其目的是让电子信息工程专业的毕业生通过自己动手制作一些实际电子产品,掌握一定的电子产品设计、制作技能和调试技术,巩固电子技术的理论知识,锻炼和提高学生的动手能力和综合运用知识解决实际问题的能力及实践动手能力。让学生完全体验电子产品开发的全过程,整个电路的制作、调试,让学生完全自己动手完成,真正受到工程实践的基本训练,培养成为电子信息领域内的高级应用型技术人才。 关键词:单片机;集成块;I/O口;接口技术信号灯。目录 摘要1 前言31概述41. 1什么是单片机412单片机的发展413 单片机的应用52 原理621 流水灯电路原理图及工作原理62.2 发光二极管72.3晶体震荡器73 编程83.1 单片机应用系统的软件设计83.2编程84 仿真调试1941 软件仿真19 结论20前言随着单片机功能的飞速发展,单片机的应用领域已经广泛渗透到了国民经济的各个领域,无是无处不在影响着每个现代人的生活。单片机技术的出现给现代工业测控领域带来了一次技术革命。目前,单片机仍以其高可靠性、高性价比,在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等诸多领域得到了广泛的应用。作为将要从事单片机应用系统开发方面的技术人员,掌握单片机的应用技术是必要的。在单片机的应用过程中,单片机只是应用系统的一个核心部件,为把单片机系统应用于不同的领域,只掌握单片机的基础知识是远远不够的,要想构成一个完善的应用系统,还要熟悉执行机构及硬件接口电路的应用特性,同时,还应该掌握系统的结构布局、印刷电路板的结构布局及软件的设计技巧这些书本上学不到的知识,因此为设计出完善的应用系统,必须在实际工作中勤于实践,逐步积累这方面的经验。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,次此用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以及给单片机初学者以启发,更快地成为单片机领域的优秀人才。电子技术课程设计是电子技术课程的实践性环节,是对所学的电子技术基本理论知识的综合运用。课程设计是根据某一课题技术指标或逻辑功能的要求,进行电路的独立设计,实验安装和调试,在实验板上进行电子产品的制作和写出实验总结报告。根据这次课程设计的内容和要求,我首先进行了整体方案的构思,通过在图书馆和上网查阅资料,并分析和比较,选取了一种简单而且可行性高的方案。此方案主要由延时电路、定时计数电路、主控电路、程序译码驱动电路等组成。通过查阅有关书籍、上网和综合已学机以及电子技术的知识,并考虑到电路的工作稳定性,设计成本低,电路简单,功耗低等因素,同时还留有余地用于电路的功能扩展,鉴于此选用了比较常见的元器件来构成各单元电路,选取所须的元件后,对各电路元件的参数进行了计算,然后进实验室进行电路的安装和调试。经过几天紧张的电路安装和调试,期间还进行了部分方案的的单片修改和改进,实现了课程设计的主要任务和具体要求。1 概述1. 1什么是单片机单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成(如图1所示)。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上.单片机的应用领域 : 1.单片机在智能仪器仪表中的应用; 2.单片机在工业测控中的应用; 3.单片机在计算机网络和通讯技术中的应用; 4.单片机在日常生活及家电中的应用; 5.单片机在办公自动化方面。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。12单片机的发展单片机就是在一块硅片上集成了中央处理器CPU(Central Processing Unit)、随机存储器RAM(Random Access Memory)、只读存储器ROM(Read Only Memory)、中断系统、定时/计数器和多种I/O口(Input/Output Ports)的一个不带外部设备的微型计算机。它具有计算机的基本属性,所以可以称它为单片微型计算机(Single Chip Microcomputer),简称单片机。1971年微处理器研制成功后不久,就出现了单芯片的微型计算机,即单片机。最早的单片机是一位的。1976年Intel公司推出了第一代8位单片机的代表产品-MCS-48系列单片机8048,它将CPU、串行口、定时器和128BRAM集成在一块芯片内,使用的是NMOS工艺。在MCS-48成功的刺激下,出现了第二代单片机产品。在第二代单片机中,IntelMCS-51进入中国市场最早,过渡到CMOS工艺的80C51要迟一些。1982年以后,高速低功耗CHMOS工艺的出现,使许多公司生产与80C51兼容的单片机,并扩展了其功能。8位单片机后,还出现了16位的单片机,1983年Intel公司推出的MCS-96系列单片机就是其中的典型代表之一。近10年来出现的具有许多新特点的单片机,可以称之为第三代单片机。目前单片机的内存容量可以做得相当大,I/O功能也已足够地丰富,可以不用外加扩展芯片;大多数单片机都提供可由用户编程的OTPROM型式;随着单片机程序存储空间的扩大,在空余空间可以嵌入实时操作系统等软件,以提高单片机的性能和产品开发效率;扩展方式从并行总线型发展出各种串行总线,如IC总线、USB总线、CAN总线等;有的单片机集成了多个CPU,将数字信号处理器、精简指令集计算机等集成到单片机中的产品也不断出现;另外,在抗干扰、抗噪声、提高可靠性、功耗管理等方面的新技术也不断的出现。单片机虽然种类繁多,但就其应用情况看,功能最强的16位机属于日立公司的H8/3048系列,8位机要数Intel公司的MCS-51系列。13 单片机的应用在生产和生活的各个领域中,凡是有自动控制要求的地方都会有单片机的出现。单片机的应用有利于产品小型化、多功能化和智能化,而且抗干扰能力强,可在各种恶劣的环境下可靠的工作,成本也较低。所以单片机的应用已极为广泛,它在工业自动化、工业测控、智能仪器仪表、家用电器、信息与通信、军事装备等方面都在发挥着“微电脑控制”的作用。较高档的单片机都有通信接口,因而为单片机在计算机网络与通信设备中的应用创造了很好的条件。在微波通信、短波通信、载波通信、光纤通信和程控交换等设备、仪器中都能找到单片机的应用,如通信系统中的监控、自适应控制系统,频率合成,声像处理,数字滤波,自动拨号无线电话网,自动呼叫应答设备及程控调度电话分机等。单片机广泛应用的意义在于它正从根本上改变着传统的控制系统设计思想和设计方法,以前必须由模拟电路和数字电路实现的大部分控制功能,现在可使用单片机通过编程序来实现了。这种以软件取代硬件,并能提高系统性能的微电脑控制技术是对传统控制技术的一种革命。随着单片机产品功能的更强大、更先进,应用单片机来实现的微电脑控制技术一定会不断发展和完善。2 原理21 流水灯电路原理图及工作原理 流水灯的电路原理图2.2 发光二极管发光二极管是由III-IV族化合物半导体制成的,其核心是PN结。因此它具有一般P-N结的I-N特性,即正向导通,反向截止、击穿特性。此外,在一定条件下,它还具有发光特性。在正向电压下,电子由N区注入P区,空穴由P区注入N区。进入对方区域的少数载流子一部分与多数载流子复合而发光。如图1所示: 假设发光是在P区中发生的,那么注入的电子与价带空穴直接复合而发光,或者先被发光中心捕获后,在与空穴复合发光。除了这种复合发光外,还有些电子被非发光中心捕获,而后在与空穴复合。每次释放的能量不大,不可能形成可见光。发光的复合量相对于非发光的复合量的比例越大,光量子效率越高。由于复合是在少子扩散去内发光的,所以光线仅在靠近PN结面数um以内产生。发光二极管的特性有极限参数的意义、电参数的意义。极限参数的意义有允许功耗、最大正向直流电流、最大反向电压和工作环境。电参数的意义有光谱分布和峰值波长、发光强度、光谱半宽度、半直角和视角、正向工作电流、正向工作电压和V-I特性。发光二极管的应用:由于发光二极管的颜色、尺寸、形状、发光强度及透明情况等不同,所以使用发光二极管时应根据实际需要进行恰当选择。由于发光二极管具有最大正向电流、最大反向电压的限制,使用时,应保证不超过此值。发光二极管被广泛应用于各种电子仪器和电子设备中,可作为电源指示灯、电平指示或微光源之用。红外发光二极管被常用于电视机、录象机等的遥控中。2.3晶体震荡器石英晶体振荡器是一种高精度和高稳定度的振荡器,被广泛应用于彩电、计算机、遥控器等各类振荡电路中,以及通信系统中用于频率发生器、为数据处理设备产生时钟信号和为特定系统提供基准信号。 石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。 国际电工委员会(IEC)将石英晶体振荡器分为4类:普通晶体振荡(TCXO),电压控制式晶体振荡器(VCXO),温度补偿式晶体振荡(TCXO),恒温控制式晶体振荡(OCXO)。目前发展中的还有数字补偿式晶体损振荡(DCXO)等。3 编程3.1 单片机应用系统的软件设计 软件设计是应用系统研制中工作量最大最重要也是最困难的任务,它可以分为两部分:一是用于管理单片机系统工作的监控管理程序;二是用于执行完成实际具体任务的功能程序。而功能程序通常应包括数据采集和处理程序、控制算法实现程序、人机联系程序和数据管理程序。监控程序是控制单片机系统按预定操作方式运转的程序,它的任务是:1. 在系统投入运行的最初时刻,应对系统进行自检和初始化。当用户操作键盘时,必须对键盘操作进行解释,调用相应的功能模块,完成预定的任务,并通过显示等方式给出执行的结果,即完成处理键盘命令的任务。2. 对于具有遥控通信接口的单片机系统,监控程序还应包括通信解释程序,即具有处理接口命令的功能。3. 单片机系统在运行时也能被某些预定的条件触发而完成规定的操作,这类条件中有定时信号、外部触发信号等,监控程序也应考虑处理条件触发并完成显示的功能。软件设计通常才用模块化程序设计、自顶向下的程序设计方法。3.2编程20#include#include #define uint unsigned int#define uchar unsigned char /延时void delay(uint k) uint i,j;for(i=k;i-;i0)for(j=100;j-;j0);void main()uchar temp0,temp1;uchar yi;uchar yi0,yi1; uint i,j,k,a,b;j=k=a=b=3;/全部亮P0=P1=P2=P3=0 x00;delay(700);P0=P1=P2=P3=0 xff;/每个io口独自亮for(i=2;i-;i0)P1=P0=0 x00;delay(500);P1=P0=0 xff;P3=P2=0 x00;delay(500);P3=P2=0 xff;/全部亮,闪三次for(i=2;i-;i0)P0=P1=P2=P3=0 x00;delay(100);P0=P1=P2=P3=0 xff;delay(100);/P1、P2亮,P3、P0暗for(i=3;i-;i0)P1=0 x00,P2=0 x00; P3=0 xff,P0=0 xff;delay(500);P1=0 xff,P2=0 xff,P3=0 x00,P0=0 x00;delay(500);/四个点的流水while(j0)temp0=0 xfe,temp1=0 x7f;P1=P3=temp0,P2=P0=temp1;delay(100);for(i=7;i-;i0)temp0=_crol_(temp0,1),temp1=_cror_(temp1,1);P1=P3=temp0,P2=P0=temp1;delay(100); j-; /全部亮,闪三次for(i=3;i-;i0)P0=P1=P2=P3=0 x00;delay(300);P0=P1=P2=P3=0 xff;delay(300); /四个IO口同样跟踪流水while(k0)temp0=0 xfe,temp1=0 x7f;P1=P3=temp0,P2=P0=temp1;delay(60);for(i=7;i-;i0)temp0=temp01;P1=P3=temp0,P2=P0=temp1;delay(60);k-; P0=P1=P3=P2=0 xff; while(k0) temp0=temp01,temp1=temp10)yi=_crol_(yi,1);P1=P0=yi;delay(50);P1=P0=0 xff;yi=0 xfe;P3=P2=yi;delay(50);for(i=7;i-;i0)yi=_crol_(yi,1);P3=P2=yi;delay(50);P3=P2=0Xff; /两边单个返回流水for(i=7;i-;i0) yi=_cror_(yi,1);P3=P2=yi;delay(50);P3=P2=0 xff;for(i=7;i-;i0)yi=_cror_(yi,1);P0=P1=yi;delay(50); /全部亮,闪三次P0=P1=P3=P2=0 xff;for(i=3;i-;i0)P0=P1=P2=P3=0 x00;delay(100);P0=P1=P2=P3=0 xff;delay(100); /流水灯yi0=0 xfe,yi1=0 x7f;P3=P2=yi1,P1=P0=yi0;delay(100);for(i=7;i-;i0) yi0=yi01; P1=P0=yi0,P3=P2=yi1; delay(100);P1=P2=P3=P0=0 xff;delay(200);yi0=0 x7f,yi1=0 xfe;P1=P0=yi0,P3=P2=yi1;for(i=7;i-;i0)yi0=yi01,yi1=yi10) P1=P10) P3=P30) P2=P21; delay(50);for(i=8;i-;i0) P0=P01; delay(50); /逆向大循环跟踪流水P1=P2=P3=P0=0 xff;for(i=8;i-;i0) P0=P00) P2=P20) P3=P31; delay(50);for(i=8;i-;i0) P1=P11; delay(50); /全部亮,闪三次P0=P1=P3=P2=0 xff;for(i=4;i-;i0)P0=P1=P2=P3=0 x00;delay(100);P0=P1=P2=P3=0 xff;delay(100); /全部亮,只有一个暗的在流水temp0=0 x01,temp1=0 x00;P1=P0=temp0,P3=P2=temp1;delay(100);for(i=7;i-;i0)temp0=_crol_(temp0,1);P1=P0=temp0;delay(100);P1=P0=0 x00;temp1=0 x01;P3=P2=temp1;delay(100);for(i=7;i-;i0)temp1=_crol_(temp1,1);P3=P2=temp1;delay(100); /全部亮,逆向一个暗在流水temp0=0 x00,temp1=0 x80;P1=P0=temp0,P3=P2=temp1;delay(100);for(i=7;i-;i0)temp1=_cror_(temp1,1);P3=P2=temp1;delay(100);P3=P2=0 x00;temp0=0 x80;P1=P0=temp0;delay(100); for(i=7;i-;i0)temp0=_cror_(temp0,1);P1=P0=temp0;delay(100); /花样temp0=0 xaa,temp1=0 x55;P1=P3=temp0,P2=P0=temp1;delay(500);for(;a-;a0)for(i=7;i-;i0)temp0=_crol_(temp0,1),temp1=_cror_(temp1,1);P1=P3=temp0,P2=P0=temp1;delay(500); for(;b-;b0)temp0=0 xee,temp1=0 x77;P1=P3=temp0,P2=P0=temp1;delay(300);for(i=7;i-;i0)temp0=_crol_(temp0,1),temp1=_cror_(temp1,1);P1=P3=temp0,P2=P0=temp1;delay(300); /环形逐个亮P1=P2=P3=P0=0 xff;for(i=8;i-;i0) P0=P00) P2=P20) P3=P31; delay(50);for(i=8;i-;i0) P1=P11; delay(50); /逐个熄灭for(i=7;i-;i0)P0=P00)P2=P20)P3=P31;P3=P3;delay(50);P3=0 xff;for(i=7;i-;i0)P1=P11;P1=P1;delay(50);P1=0 xff; 4 仿真调试41 软件仿真仿真采用proteus7.8仿真通过,仿真截图如下: 结论通过这次毕业设计我们主要了解了单片机控制流水灯的工作原理,发光二极管以及AT89C51的应用,使我认识到了单片机的重要性。在设计中,我们可以写出各种各样的程序,使流水灯亮灭看起来更新颖漂亮。在这次设计中,不但使我学到了许多理论上的知识,而且还提高了我的动手实践能力。首先通过Protel99SE的强化训练,使我学会了如何绘制原理图、封装图以及PCB板图纸;其次是电路板的制作,这个环节注重的是我们的动手实践能力。通过PCB板的制作,使我了解到了电路板的制作过程,也对电子信息工程技术有了更深刻的了解;最后一个环节就是仿真调试和论文的撰写,仿真调试主要就是对程序的编译和写入。撰写论文时首先要做的就是对资料的收集,它们主要来自于一些参考文献、集成芯片和元器件功能的介绍。下一步就是把资料组织成一篇具有逻辑的文章,从整个论文的撰写中,使我学会了对资料的组织能力。终于在三个月的时间里完成了毕业设计的任务,通过三个月的实习实训,从Protel99SE原理图的绘制到最后论文的撰写的整个过程中使我学到了关于电子技术工程上的许多东西。特别是在制板的整个过程中,在这个过程中使我体会到动手实践在工程技术上的重要性。也使我知道了理论知识与实践相结合的重要性。除此之外我还学会了焊接电路板,掌握了许多书本以外的电子技术知识,培养了专心工作学习的习惯,懂得了相互之间的帮助与理解,这次毕业设计使我受益匪浅。
展开阅读全文