基于51单片机的花样心形流水灯.doc_第1页
基于51单片机的花样心形流水灯.doc_第2页
基于51单片机的花样心形流水灯.doc_第3页
基于51单片机的花样心形流水灯.doc_第4页
基于51单片机的花样心形流水灯.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

给予51单片机的花样流水灯设计重庆三峡学院单片机课程设计报告书课程名称:基于51单片机的花样心形流水灯学院(系): 电子与信息工程学院 年级专业:2012级电子信息工程(通信)学 号: 201107014226 学生姓名: $ 梅 指导教师: 肖 化 武 成 绩: 制作日期 2015 年7月 2 日40基于51单片机的花样流水灯设计基于单片机的花样心形流水灯摘要自计算机问世以来,单片机技术在社会各领域中得到了广泛的应用。在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式市发展速度,成为日后此系统中的核心部分。由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。本文主要讲的是单片机,课题名称为多按键花样流水灯,它使我们学会了如何使用单片机控制我们日常生活中的多设备设施的应用。通过本课题的设计以后,使我了解到了单片机的许多方面的应用。AbstractSince the introduction of computer-chip technology in society, in every field in a wide range of applications.Running light control systems, the microcontroller is replaced by the gear regulating the delay time of old growth rate in future in the heart of this system.Due to the MCU has several benefits: small size, light weight, a single power supply; features, low power consumption and low; and the data transfer, one finds in SCM internal, run fast, uding, high reliability, so single-chip is widely used in measurement and control system, data acquisition, instrumental, Mechatronics product, smart interface, computer communications, as well as single-chip multilevel system, etc.This article is primarily deals with a subject name is Multi-key pattern of light water, flowing water and light control, which enables we learned how to use the SCM control our lives in the application of the facility.关键词: 单片机、可编程控制器、交通型号灯、可靠性高。目 录绪论11. 相关元件及电路设计21.1 AT89C51芯片功能特性及应用21.2 MCS-51单片机31.2.1 内部结构31.2.2 引脚定义31.2.3 外部总线构成51.3 单片机时钟电路及时钟时序单位61.4单片机的复位81.4.1 复位状态81.4.2 复位电路92. 流水灯电路及程序设计132.1 电路原理图设计132.2电路程序设计143. 课程设计体会.404. 参考文献40绪论当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。本设计用AT89C51单片机自制了一款简易的花样流水灯,介绍了其硬件电路及软件编程方法,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料。本课题将以发光二极管作为发光器件,用单片机自动控制,实现一个简易的花样流水灯设计。1. 相关元件及电路设计1.1 AT89C51芯片功能特性及应用单片机在我们的日常生活和工作中无处不在、无处不有:家用电器中的电子表、洗衣机、电饭褒、豆浆机、电子秤;住宅小区的监控系统、电梯智能化控制系统;汽车电子设备中的ABS、GPS、ESP、TPMS;医用设备中的呼吸机,各种分析仪,监护仪,病床呼叫系统;公交汽车、地铁站的IC卡读卡机、滚动显示车次和时间的LED点阵显示屏;电脑的外设,如键盘、鼠标、光驱、打印机、复印件、传真机、调制解调器;计算机网络的通讯设备;智能化仪表中的万用表,示波器,逻辑分析仪;工厂流水线的智能化管理系统,成套设备中关键工作点的分布式监控系统;导弹的导航装置,飞机上的各种仪表等等。有资料表明:2007年全球单片机的产值达到151亿美元,我国单片机的销售额达到400亿元人民币,我国每年单片机的需求量达50至60亿片,是全球单片机的最大市场。可以说单片机已经渗透到了我们生活的各个领域。在AT89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率通常是1.212MHz。若晶体振荡器频率高,则系统的时钟频率也高,单片机的运行速度也就快1.2 MCS-51单片机1.2.1 内部结构MCS-51系列单片机内部采用模块式结构,其结构组成框图如图1所示。图1 MCS-51系列单片机组成框图由图1可见,MCS-51系列单片机主要由以下部件通过片内总线连接而成:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行输入/输出口(P0口P3口)、串行口、定时器/计数器、中断控制、总线控制及时钟电路。1.2.2 引脚定义引脚是单片机和外界进行通信的通道连接点,用户只能通过引脚组建控制系统。从应用的角度来看,引脚的应用是单片机应用的一个重要基础。因此熟悉引脚是学习应用单片机的基础。 MCS-51系列单片机的引脚封装主要有: PDIP40、PLCC44和PQFP/TQFP44。不同封装的芯片其引脚的排列位置有所不同,但他们的功能和特性都相同。方形封装(PLCC44和POFP/TQFP44)有44引脚,其中4个NC为空引脚。采用40引脚PDIP封装的80C51单片机的引脚排列及逻辑符号如图2所示。由于工艺及标准化等原因,芯片的引脚数量是有限的,但单片机为实现控制所需要的信号数目却远远超过其引脚数目。为解决这一矛盾,单片机的某些信号引脚被赋以双重功能。1)电源及电源复位引脚:(1)VCC(40脚):正常操作时接+5V直流电源。(2)VSS (20脚):接地端。图2 40引脚PDIP封装的80C51单片机的引脚排列及逻辑符号图(3)RST/VPD(9脚):复位信号输入端。在该引脚上输入一定时间(约两个机器周期)的高电平将使单片机复位。该引脚的第二功能是VPD,即备用电源输入端。当主电源发生故障,降低到低电平规定值时,可将+5V备用电源自动接入VPD端,以保护片内RAM中的信息不丢失,使复电后能继续正常运行。(4)/VPP(31脚):访问程序存储器控制信号/编程电源输入。当保持高电平时,访问内部程序存储器,访问地址范围在04KB内;当PC(程序计数器)值超过0FFFH,即访问地址超出4KB时,将自动转向执行外部程序存储器内的程序;当保持低电平时,不管单片机内部是否有程序存储器,则只访问外部程序存储器(从0000H地址开始)。由此可见,对片内有可用程序存储器的单片机而言,端应接高电平,而对片内无程序存储器的单片机,可将接地。对于EPROM型单片机,在EPROM编程期间,此引脚用于施加21V的编程电源(VPP)。2)时钟振荡电路引脚XTAL1和XTAL2:(1)XTAL1(19脚):外接石英晶体和微调电容引脚1。它是片内振荡电路反向放大器的输入端。采用外部振荡器时此引脚接地。(2)XTAL2(18脚):外接石英晶体和微调电容引脚2。它是片内振荡电路反向放大器的输出端。采用外部振荡器时此引脚为外部振荡信号输入端。3) (30脚):低8位地址锁存控制信号/编程脉冲输入。在系统扩展时,ALE用于把P0口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离。在访问外部程序存储器期间,ALE信号两次有效;而在访问外部数据存储器期间,ALE信号一次有效。对于EPROM型单片机,在EPROM编程期间,此引脚用于输入编程脉冲。4)(29脚):外部程序存储器的读选通信号输出端,低电平有效。在从外部程序存储器取指令(或常数)期间,此引脚定时输出负脉冲作为读取外部程序存储器的信号,每个机器周期两次有效,此时地址总线上送出的地址为外部程序存储器地址;在此期间,如果访问外部数据存储器和内部程序存储器,不会产生信号。5)并行双向输入/输出(I/O)口引脚:(1)P0口的P0.0P0.7引脚(3932脚):8位通用输入/输出端口和片外8位数据/低8位地址复用总线端口。(2)P1口的P1.0P1.7引脚(18脚):8位通用输入/输出端口。(3)P2口的P2.0P2.7引脚(2821脚):8位通用输入/输出端口和片外高8位地址总线端口。(4)P3口的P3.0P3.7引脚(1017脚):8位通用输入/输出端口,具有第二功能。1.2.3 外部总线构成所谓总线,就是连接单片机与各外部器件的一组公共的信号线。当系统要求扩展时,单片机要与一定数量的外部器件和外围设备连接。如果各部件及每一种外围设备都分别用各自的一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路的设计和系统结构,常用一组线路,并配以适当的接口电路来与各个外部器件和外围设备连接,这组共用的连接线路就是总线。采用总线结构便于扩展外部器件和外围设备,而统一的总线标准则使不同设备间的互连更容易实现。利用片外引脚可以构造MCS-51系列单片机的三总线结构。单片机的引脚除了电源端VCC、接地端VSS、复位端RST、晶振接入端XTAL1和XTAL2、通用I/O口的P1.0P1.7以外,其余的引脚都是为实现系统扩展而设置的。用这些引脚构造的单片机系统的三总线结构如3所示。图3 MCS-51系列单片机片外三总线结构1)地址总线(Address Bus,AB):MCS-51系列单片机总共有16根地址线A15 A0,片外存储器可寻址范围达64KB(216=65536字节),由P2口直接提供高8位地址A15 A8,P0口经地址锁存器提供低8位地址A7 A0。2)数据总线(Data Bus,DB):MCS-51系列单片机总共有8根数据线D7D0,全由P0口提供。由于P0口是分时复用总线,分时输送低8位地址(通过地址锁存器锁存)和高8位数据信息。 3)控制总线(Control Bus,CB):控制总线由P3口的第二功能(P3.6)、(P3.7)和3根独立的控制线、ALE、组成。1.3 单片机时钟电路及时钟时序单位1) 时钟电路单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。而时钟电路就用于产生单片机工作所需要的时钟信号。MCS-51单片机时钟电路示意图如图4所示。图4 MCS-51单片机时钟振荡电路示意图在MCS-51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率范围通常是1.212MHz。晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。振荡脉冲在片内通过一个时钟发生电路二分频后才作为系统的时钟信号。片内时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为fosc/2;状态时钟三分频后为ALE信号,其频率为fosc/6;状态时钟六分频后为机器周期,其频率为fosc/12。在图4中,使用晶体振荡器时,C1、C2取值3010pF;使用陶瓷振荡器时,C1、C2取值4010pF。C1、C2的取值虽然没有严格的要求,但电容的大小影响振荡电路的稳定性和快速性,通常取值2030pF。在设计印制电路板时,晶振和电容等应尽可能靠近芯片,以减少分布电容,保证振荡器振荡的稳定性。也可以由外部时钟电路向片内输入脉冲信号作为单片机的振荡脉冲。这时外部脉冲信号是经XTAL1引脚引入的,而XTAL2引脚悬空或接地。对外部信号的占空比没有要求,但高低电平持续的时间不应小于20ns。这种方式常用于多块芯片同时工作,便于同步。其外部脉冲接入方式如图5所示。图5 MCS-51单片机外部时钟输入接线图所谓时序,是指在指令执行过程中,CPU的控制器所发出的一系列特定的控制信号在时间上的先后关系。CPU发出的控制信号有两类:一类是用于单片机内部的,用户不能直接接触此类信号,不必对它作过多了解;另一类是通过控制总线送到片外的,人们通常以时序图的形式来表示相关信号的波形及出现的先后次序。为了说明信号的时间关系,需要定义时序单位。89C51的时序单位共有四个,从小到大依次是拍节、状态、机器周期和指令周期。如图4所示。1.4单片机的复位1.4.1 复位状态复位是单片机的初始化操作,其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化外,当程序运行出错或操作错误使系统处于死锁状态时,也须重新启动单片机,使其复位。 单片机复位后,除P3P0的端口锁存器被设置成FFH、堆栈指针SP设置成07H和串行口的SBUF无确定值外,其它各专用寄存器包括程序计数器PC均被设置成00H。片内RAM不受复位的影响,上电后RAM中的内容是随机的。记住这些特殊功能寄存器的复位状态,对熟悉单片机操作,简短应用程序中的初始化部分是十分必要的。1.4.2 复位电路单片机的复位操作有上电自动复位和手动按键复位两种方式。上电自动复位操作要求接通电源后自动实现复位操作。如图1.5-1所示。图6(a)所示为最简单的复位电路。上电瞬间由于电容C上无储能,其端电压近似为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。只要高电平能保持复位所需要的时间(约两个机器周期),单片机就能实现复位。相比于图6(a),图6(b)所示的电路只是增加了外接二极管VD和电阻R。其优越性在于停电后,二极管VD给电容C提供了快速放电通路,保证再上电时RST为高电平,从而保证单片机可靠复位。正常工作时,二极管反偏,对电路没影响。断电后,VCC逐渐下降,当VCC=0时,电容C通过VD迅速放电,恢复到无电量的初始状态,为下次上电复位做好准备。(a) (b)图6 上电自动复位电路手动按键复位要求在电源接通的条件下,用按钮开关操作使单片机复位,如图7所示。其工作原理为:复位键按下后,电容C通过R2放电,放电结束后,RST引脚的电位由R1和R2 分压决定,由于R20;x-)for(y=110;y0;y-);void disp0()/状态0 所有LED闪烁3次for(i=0;i3;i+)P0=0x00; P2=0x00; P3=0x00; P1=0x00;delay(300);P0=0xff; P2=0xff; P3=0xff; P1=0xff;delay(300);void disp1()/状态1 LED顺时针转一圈for(i=0;i8;i+)P2=table1i;delay(100);P2=0xff;for(i=0;i8;i+)P3=table1i;delay(100);P3=0xff;for(i=0;i8;i+)P1=table1i; delay(100);P1=0xff;for(i=0;i8;i+)P0=table0i;delay(100);P0=0xff;void disp2()/状态2 LED逆时针转一圈for(i=0;i8;i+)P0=table1i;delay(100);P0=0xff;for(i=0;i8;i+)P1=table0i;delay(100);P1=0xff;for(i=0;i8;i+)P3=table0i;delay(100);P3=0xff;for(i=0;i8;i+)P2=table0i;delay(100);P2=0xff;void disp3()/状态3 4个LED同时顺时、逆时针移动1/4圈for(i=0;i8;i+)P0=table1i;P1=table1i;P2=table1i;P3=table0i;delay(100);for(i=0;i8;i+)P0=table0i;P1=table0i;P2=table0i;P3=table1i;delay(100);P3=0xff; P0=0xff; void disp4()/状态4 2个LED同时顺时针移动半圈for(i=0;i8;i+)P2=table1i;P1=table1i;delay(100);P2=0xff; P1=0xff;for(i=0;i8;i+)P3=table1i;P0=table0i;delay(100);P3=0xff; P0=0xff;void disp5()/状态5 2个LED同时逆时针移动半圈for(i=0;i8;i+)P0=table1i;P3=table0i;delay(100);P0=0xff; P3=0xff;for(i=0;i8;i+)P1=table0i;P2=table0i;delay(100);P1=0xff; P2=0xff;void disp6()/状态6 LED自上而下逐渐点亮(一半点亮一半不亮)for(i=0;i8;i+)P0=table3i;P2=table3i;delay(100);P0=0xff; P2=0xff;for(i=0;i8;i+)P1=table2i;P3=table3i;delay(100);P1=0xff; P3=0xff;void disp7()/状态7 LED自下而上逐渐点亮(直到全部点亮)for(i=0;i8;i+)P1=table3i;P3=table2i;delay(100);for(i=0;i8;i+)P0=table2i;P2=table2i;delay(100);void disp8()/状态8 间断8格的4个LED亮并逆时针旋转for(j=0;j2;j+)for(i=0;i8;i+)P0=table1i;P2=table0i;P1=table0i;P3=table0i;delay(100);P0=0xff; P2=0xff; P1=0xff; P3=0xff;for(i=0;i8;i+)P0=table1i;P2=table0i;P1=table0i;P3=table0i;delay(100);P0=0xff; P2=0xff; P1=0xff; P3=0xff;void disp9()/状态9 间断8格的4个LED亮,然后逆时针逐渐点亮(直到全部点亮)for(i=0;i8;i+)P0=table3i;P2=table2i;P1=table2i;P3=table2i;delay(100);delay(500);void disp10()/状态10 从LED全部亮到全不亮(间断8格的4个LED开始逆时针熄灭)for(i=0;i9;i+)P0=table5i;P2=table4i;P1=table4i;P3=table4i;delay(100);delay(300);void disp11()/状态11 间断8格的4个LED亮并顺时针旋转for(j=0;j2;j+)for(i=0;i8;i+)P0=table0i;P2=table1i;P1=table1i;P3=table1i;delay(100);P0=0xff; P2=0xff; P1=0xff; P3=0xff;for(i=0;i8;i+)P0=table0i;P2=table1i;P1=table1i;P3=table1i;delay(100);P0=0xff; P2=0xff; P1=0xff; P3=0xff;void disp12()/间断8格的4个LED亮,然后顺时针逐渐点亮(直到全部点亮)for(i=0;i8;i+)P0=table2i;P2=table3i;P1=table3i;P3=table3i;delay(100);delay(1000);void disp13()/状态13 从LED全部亮到全不亮(间断8格的4个LED开始顺时针熄灭)for(i=0;i9;i+)P0=table4i;P2=table5i;P1=table5i;P3=table5i;delay(100);delay(300);void disp14()/状态14 从LED不亮到全亮(从P0.0、P1.0、P2.0、P3.7开始逐步点亮)for(i=0;i8;i+)P0=table2i;P1=table2i;P2=table2i;P3=table3i;delay(100);void disp15()/状态15 从LED全亮到全不亮(从P0.7、P1.7、P2.7、P3.0开始逐步熄灭)for(i=0;i9;i+)P0=table5i;P1=table5i;P2=table5i;P3=table4i;delay(100);delay(300);void disp16()/状态16 LED灯交替闪烁(频率有慢变快)for(i=0;i5;i+)P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(100);P0=P0; P1=P1; P2=P2; P3=P3;delay(100);for(i=0;i5;i+)P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(200);P0=P0; P1=P1; P2=P2; P3=P3;delay(200);for(i=0;i5;i+)P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(300);P0=P0; P1=P1; P2=P2; P3=P3;delay(300);P0=0xff; P2=0xff; P1=0xff; P3=0xff;delay(300);void disp17()/状态17 LED从P0.7开始逆时针逐步点亮,(循环2次)并且速度会逐步提高for(i=0;i8;i+)P0=table3i;delay(100);for(i=0;i8;i+)P1=table2i;delay(100);for(i=0;i8;i+)P3=table2i;delay(100);for(i=0;i8;i+)P2=table2i;delay(100);P0=0xff; P1=0xff; P3=0xff; P2=0xff;/*/for(i=0;i8;i+)P0=table3i;delay(50);for(i=0;i8;i+)P1=table2i;delay(50);for(i=0;i8;i+)P3=table2i;delay(50);for(i=0;i8;i+)P2=table2i;delay(50);P0=0xff; P1=0xff; P3=0xff; P2=0xff;void disp18()/状态18 LED从P0.7开始逆时针逐步点亮(每亮8位后就熄灭)for(i=0;i8;i+)P0=table3i;delay(100);P0=0xff;for(i=0;i8;i+)P1=table2i;delay(100);P1=0xff;for(i=0;i8;i+)P3=table2i;delay(100);P3=0xff;for(i=0;i8;i+)P2=table2i;delay(100);P2=0xff;void disp19()/状态19 LED从P2.7开始顺时针逐步点亮,(循环2次)并且速度会逐步提高for(i=0;i8;i+)P2=table3i;delay(100);for(i=0;i8;i+)P3=table3i;delay(100);for(i=0;i8;i+)P1=table3i;delay(100);for(i=0;i8;i+)P0=table2i;delay(100);P0=0xff; P1=0xff; P3=0xff; P2=0xff;/*/for(i=0;i8;i+)P2=table3i;delay(50);for(i=0;i8;i+)P3=table3i;delay(50);for(i=0;i8;i+)P1=table3i;delay(50);for(i=0;i8;i+)P0=table2i;delay(50);P0=0xff; P1=0xff; P3=0xff; P2=0xff;void disp20()/状态20 LED从P2.7开始顺时针逐步点亮(每亮8位后就熄灭)for(i=0;i8;i+)P2=table3i;delay(100);P2=0xff;for(i=0;i8;i+)P3=table3i;delay(100);P3=0xff;for(i=0;i8;i+)P1=table3i;delay(100);P1=0xff;for(i=0;i8;i+)P0=table2i;delay(100);P0=0xff;void disp21()/状态21 2个LED开始上下移动半圈for(i=0;i8;i+)P0=table1i;P2=table1i;delay(100);P0=0xff; P2=0xff;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(100);for(i=0;i8;i+)P1=table1i;P3=table0i;delay(100);P1=0xff; P3=0xff;for(i=0;i8;i+)P0=table0i;P2=table0i;delay(100);void disp22()/装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环16次,然后循环5次频率再逐渐降低)for(j=0;j5;j+)for(i=0;i8;i+)P0=table1i;P2=table1i;delay(tt);P0=0xff; P2=0xff;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(tt);P1=0xff; P3=0xff;tt=tt-10;for(j=0;j16;j+)for(i=0;i8;i+)P0=table1i;P2=table1i;delay(20);P0=0xff; P2=0xff;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(20);P1=0xff; P3=0xff;tt=20;for(j=0;j5;j+)for(i=0;i8;i+)P0=table1i;P2=table1i;delay(tt);P0=0xff; P2=0xff;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(tt);P1=0xff; P3=0xff;tt=tt+10;tt=70;void disp23()/状态23 LED上下交替闪烁for(i=0;i2;i+)P0=0x00; P2=0x00;delay(1000);P0=0xff; P2=0xff;P1=0x00; P3=0x00;delay(1000);P1=0xff; P3=0xff;void disp24()/状态24 LED左右交替闪烁P1=0xff; P3=0xff; P0=0xff; P2=0xff;for(i=0;i2;i+)P0=0x00; P1=0x00;delay(1000);P0=0xff; P1=0xff;P2=0x00; P3=0x00; delay(1000);P2=0xff; P3=0xff;void disp25()/状态25 LED交替闪烁for(i=0;i5;i+)P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(1000);P0=P0; P1=P1; P2=P2; P3=P3;delay(1000);void disp26()/状态26 2个LED开始上下移动半圈(LED不亮流水)P0=0x00;P1=0x00;P2=0x00;P3=0x00;for(i=0;i8;i+)P0=table1i;P2=table1i;delay(200);P0=0x00; P2=0x00;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(200);for(i=0;i8;i+)P1=table1i;P3=table0i;delay(200);P1=0x00; P3=0x00;for(i=0;i8;i+)P0=table0i;P2=table0i;delay(200);void disp27()/状态27 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LEDP0=0xff; P1=0xff; P2=0xff; P3=0xff;for(j=0;j2;j+)for(i=0;i8;i+)P2=table3i;P1=table3i;delay(100);P2=0xff; P1=0xff;for(i=0;i8;i+)P0=table2i;P3=table3i;delay(100);P0=0xff; P3=0xff;void disp28()/状态28 P1、P2和P0、P3交替闪烁for(i=0;i2;i+)P1=0x00; P2=0x00; P0=0xff; P3=0xff; delay(1000);P1=0xff; P2=0xff; P0=0x00; P3=0x00; delay(1000);P1=0xff; P2=0xff; P0=0xff; P3=0xff; void disp29()/状态29 逐步顺时针点亮P2、P1的LED,再顺时熄灭后,再顺时针点亮P0、P3的LED,再顺时熄灭P0=0xff; P1=0xff; P2=0xff; P3=0xff;for(j=0;j2;j+)for(i=0;i8;i+)P2=table3i;P1=table3i;delay(100);for(i=0;i9;i+)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论