




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机控制的花样流水灯设计信息工程学院单片机课程论文第26页共26页单片机控制的花样流水灯设计单片机控制的花样流水灯设计目录引言 31.绪论 42相关元件及电路设计 42.1AT89C52芯片功能特性及应用 42.2AT89C5252单片机 52.2.1AT89C52单片机的硬件结构 52.2.2主要性能参数 62.2.3AT89C52管脚说明 72.2.4外部总线构成 112.3单片机时钟电路及时钟时序单位 122.4单片机的复位 132.4.1复位状态 132.4.2复位电路 143.KeilC51开发系统基本知识KeilC51开发系统基本知识 154电路及程序设计 164.1电路原理图设计 16总结 17参考文献 18附录 19
引言单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C52单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发更快地成为单片机领域的优秀人才。1.绪论当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。本设计用AT89C51单片机自制了一款简易的花样流水灯,介绍了其硬件电路及软件编程方法,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料。本课题将以发光二极管作为发光器件,用单片机自动控制,实现一个简易的花样流水灯设计。2相关元件及电路设计2.1AT89C52芯片功能特性及应用单片机在我们的日常生活和工作中无处不在、无处不有:家用电器中的电子表、洗衣机、电饭褒、豆浆机、电子秤;住宅小区的监控系统、电梯智能化控制系统;汽车电子设备中的ABS、GPS、ESP、TPMS;医用设备中的呼吸机,各种分析仪,监护仪,病床呼叫系统;公交汽车、地铁站的IC卡读卡机、滚动显示车次和时间的LED点阵显示屏;电脑的外设,如键盘、鼠标、光驱、打印机、复印件、传真机、调制解调器;计算机网络的通讯设备;智能化仪表中的万用表,示波器,逻辑分析仪;工厂流水线的智能化管理系统,成套设备中关键工作点的分布式监控系统;导弹的导航装置,飞机上的各种仪表等等。有资料表明:2007年全球单片机的产值达到151亿美元,我国单片机的销售额达到400亿元人民币,我国每年单片机的需求量达50至60亿片,是全球单片机的最大市场。可以说单片机已经渗透到了我们生活的各个领域。AT89C52是美国Atmel公司生产的低电压、高性能CMOS8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。其主要工作特性是:
(1)片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;
(2)片内数据存储器内含256字节的RAM;
(3)具有32根可编程I/O口线;
(4)具有3个可编程定时器;
(5)中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;
(6)串行口是具有一个全双工的可编程串行通信口;
(7)具有一个数据指针DPTR;
(8)低功耗工作模式有空闲模式和掉电模式;
(9)具有可编程的3级程序锁定位;
(10)AT89C52工作电源电压为5(1+0.2)V,且典型值为5V;在AT89C52芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率通常是24MHz。若晶体振荡器频率高,则系统的时钟频率也高,单片机的运行速度也就快2.2AT89C5252单片机2.2.1AT89C52单片机的硬件结构AT8952系列单片机内部采用模块式结构,其结构组成框图如图1所示。图1AT8952系列单片机组成框图由图1可见,MCS-52系列单片机主要由以下部件通过片内总线连接而成:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行输入/输出口(P0口~P3口)、串行口、定时器/计数器、中断控制、总线控制及时钟电路。2.2.2主要性能参数•8K字节可重擦写Flash闪速存储器•1000次可擦写周期•全静态操作:0Hz-24MHz•三级加密程序存储器•256×8字节内部RAM•32个可编程I/O口线•3个16位定时/计数器•8个中断源•可编程串行UART通道•低功耗空闲和掉电模式图2AT89C52外部引脚图2.2.3AT89C52管脚说明VCC:电源GND:接地P0口:P0口是一个8位漏级开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0口端口写“1”时,引脚作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接受指令字节:在程序效验时,输出指令字节。程序效验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位是双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。对P1口写“1”时,内部上拉电阻的原因,将输出电流ILL。此外,与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输出(P1.1/T2EX),具体如下表所示。表1P1.0和P1.1的第二功能引脚号功能特性P1.0T2(定时/计数器2外部计数脉冲输入),时钟输出P1.1T2EX定时/计数2捕获/重装载触发和方向控制在Flash编程和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲级可驱动吸收或输出电流4个TTL逻辑电平。对P2口写“1”时,通过内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。在访问外部好曾许存储器或用16位地址读取外部数据存储器时,P2口送出高8位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口接收低8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。对P3口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入端口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。P3口除了作为一般、的I/O口线外,更重要的是它的第二功能,如下表所示。表2P3口引脚第二功能引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)在Flash编程和校验时,P3口也接收一些控制信号。RST:复位输入。晶振工作时,RST脚持续2个机器周期以高电平将使用单片机复位。ALE/:地址锁存器控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚()也使用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位的设置对微控制器处于外部执行模式下无效。:外部程序储存器选通信号()是外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据储存器时,将不被激活。:访问外部程序存储器控制信号。为使能从0000H—FFFFH的外部程序存储器读取指令,端必须保持低电平(接地)。为了执行内部程序指令,应该接VCC。在flash编程期间,也接受12伏VPP电压。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。MCS-52系列单片机的引脚封装主要有:PDIP40、PLCC44和PQFP/TQFP44。不同封装的芯片其引脚的排列位置有所不同,但他们的功能和特性都相同。方形封装(PLCC44和POFP/TQFP44)有44引脚,其中4个NC为空引脚。采用40引脚PDIP封装的80C52单片机的引脚排列及逻辑符号如图2所示。由于工艺及标准化等原因,芯片的引脚数量是有限的,但单片机为实现控制所需要的信号数目却远远超过其引脚数目。为解决这一矛盾,单片机的某些信号引脚被赋以双重功能。1)电源及电源复位引脚:(1)VCC(40脚):正常操作时接+5V直流电源。(2)VSS(20脚):接地端。图340引脚PDIP封装的80C52单片机的引脚排列及逻辑符号图(3)RST/VPD(9脚):复位信号输入端。在该引脚上输入一定时间(约两个机器周期)的高电平将使单片机复位。该引脚的第二功能是VPD,即备用电源输入端。当主电源发生故障,降低到低电平规定值时,可将+5V备用电源自动接入VPD端,以保护片内RAM中的信息不丢失,使复电后能继续正常运行。(4)/VPP(31脚):访问程序存储器控制信号/编程电源输入。当保持高电平时,访问内部程序存储器,访问地址范围在0~4KB内;当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.0~P0.7引脚(39~32脚):8位通用输入/输出端口和片外8位数据/低8位地址复用总线端口。(2)P1口的P1.0~P1.7引脚(1~8脚):8位通用输入/输出端口。(3)P2口的P2.0~P2.7引脚(28~21脚):8位通用输入/输出端口和片外高8位地址总线端口。(4)P3口的P3.0~P3.7引脚(10~17脚):8位通用输入/输出端口,具有第二功能。2.2.4外部总线构成所谓总线,就是连接单片机与各外部器件的一组公共的信号线。当系统要求扩展时,单片机要与一定数量的外部器件和外围设备连接。如果各部件及每一种外围设备都分别用各自的一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路的设计和系统结构,常用一组线路,并配以适当的接口电路来与各个外部器件和外围设备连接,这组共用的连接线路就是总线。采用总线结构便于扩展外部器件和外围设备,而统一的总线标准则使不同设备间的互连更容易实现。利用片外引脚可以构造MCS-51系列单片机的三总线结构。单片机的引脚除了电源端VCC、接地端VSS、复位端RST、晶振接入端XTAL1和XTAL2、通用I/O口的P1.0~P1.7以外,其余的引脚都是为实现系统扩展而设置的。用这些引脚构造的单片机系统的三总线结构如3所示。图4MCS-51系列单片机片外三总线结构1)地址总线(AddressBus,AB):MCS-51系列单片机总共有16根地址线A15~A0,片外存储器可寻址范围达64KB(216=65536字节),由P2口直接提供高8位地址A15~A8,P0口经地址锁存器提供低8位地址A7~A0。2)数据总线(DataBus,DB):MCS-51系列单片机总共有8根数据线D7~D0,全由P0口提供。由于P0口是分时复用总线,分时输送低8位地址(通过地址锁存器锁存)和高8位数据信息。3)控制总线(ControlBus,CB):控制总线由P3口的第二功能(P3.6)、(P3.7)和3根独立的控制线、ALE、组成。2.3单片机时钟电路及时钟时序单位1)时钟电路单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。而时钟电路就用于产生单片机工作所需要的时钟信号。MCS-52单片机时钟电路示意图如图4所示。图5MCS-52单片机时钟振荡电路示意图在MCS-52芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率范围通常是1.2~12MHz。晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。振荡脉冲在片内通过一个时钟发生电路二分频后才作为系统的时钟信号。片内时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为fosc/2;状态时钟三分频后为ALE信号,其频率为fosc/6;状态时钟六分频后为机器周期,其频率为fosc/12。在图4中,使用晶体振荡器时,C1、C2取值30±10pF;使用陶瓷振荡器时,C1、C2取值40±10pF。C1、C2的取值虽然没有严格的要求,但电容的大小影响振荡电路的稳定性和快速性,通常取值20~30pF。在设计印制电路板时,晶振和电容等应尽可能靠近芯片,以减少分布电容,保证振荡器振荡的稳定性。也可以由外部时钟电路向片内输入脉冲信号作为单片机的振荡脉冲。这时外部脉冲信号是经XTAL1引脚引入的,而XTAL2引脚悬空或接地。对外部信号的占空比没有要求,但高低电平持续的时间不应小于20ns。这种方式常用于多块芯片同时工作,便于同步。其外部脉冲接入方式如图5所示。图6MCS-52单片机外部时钟输入接线图所谓时序,是指在指令执行过程中,CPU的控制器所发出的一系列特定的控制信号在时间上的先后关系。CPU发出的控制信号有两类:一类是用于单片机内部的,用户不能直接接触此类信号,不必对它作过多了解;另一类是通过控制总线送到片外的,人们通常以时序图的形式来表示相关信号的波形及出现的先后次序。为了说明信号的时间关系,需要定义时序单位。89C52的时序单位共有四个,从小到大依次是拍节、状态、机器周期和指令周期。如图4所示。2.4单片机的复位2.4.1复位状态复位是单片机的初始化操作,其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化外,当程序运行出错或操作错误使系统处于死锁状态时,也须重新启动单片机,使其复位。单片机复位后,除P3~P0的端口锁存器被设置成FFH、堆栈指针SP设置成07H和串行口的SBUF无确定值外,其它各专用寄存器包括程序计数器PC均被设置成00H。片内RAM不受复位的影响,上电后RAM中的内容是随机的。记住这些特殊功能寄存器的复位状态,对熟悉单片机操作,简短应用程序中的初始化部分是十分必要的。2.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分压决定,由于R2<<R1,因此,RST引脚为高电平,单片机进入复位状态,松开按键后,电容充电,RST上的电位降低,经过一定的延时,单片机就脱离复位状态,进入正常工作模式。R2的作用在于限流,避免按键按下的瞬间电容C放电产生火花,保护按键的触点。图7手动按键复位电路系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电自动复位结合。复位电路虽然简单,但其作用十分重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。初步检查可用示波器探头监视RST引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路阻容值的方法进行检测。3.KeilC51开发系统基本知识KeilC51开发系统基本知识系统概述KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍KeilC51开发系统各部分功能和使用。2.KeilC51单片机软件开发系统的整体结构C51工具包的整体结构,如图(1)所示,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。4电路及程序设计4.1电路原理图设计按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C52单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C52单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。设计原理图如图8所示:图8流水灯硬件原理图总结本次课程设计我的课题是花样流水灯的设计,开始的几个星期我针对这个课题的任务要求从图书馆、上网等渠道获取相关信息,查找相关的参考资料,然后设定了本课题的设计方案。经过近多日的努力,终于将本次课程设计做完了,但由于水平有限,肯定有很多不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。在本次课程设计过程中,我增强了自己的动手能力和分析能力。在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论和实际联系的重要性。在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。参考文献[1]胡汉才.单片机原理与接口技术[M].北京:清华大学出版社,1995.6.[2]楼然苗等.51系列单片机设计实例[M].北京:北京航空航天出版社,2003.3.[3]何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2001.[4]赵晓安.MCS-51单片机原理及应用[M].天津:天津大学出版社,2001.3.[5]肖洪兵.跟我学用单片机[M].北京:北京航空航天大学出版社,2002.8.[6]夏继强.单片机实验与实践教程[M].北京:北京航空航天大学出版社,2001.[7]于凤明.单片机原理及接口技术[M].北京:中国轻工业出版社.1998.附录程序如下#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar //延时voiddelay(uintk){ uinti,j; for(i=k;i--;i>0) for(j=100;j--;j>0);}voidmain()//主函数{ uchartemp0,temp1; ucharyi; ucharyi0,yi1; uinti,j,k,a,b; j=k=a=b=3; //全部亮 P1=P2=0x00; delay(700); P1=P2=0xff; //每个io口独自亮 for(i=2;i--;i>0) { P1=0x00; delay(500); P1=0xff; P2=0x00; delay(500); P2=0xff; } //全部亮,闪三次 for(i=2;i--;i>0) { P1=P2=0x00; delay(100); P1=P2=0xff; delay(100); } //P1、P2亮 for(i=3;i--;i>0) { P1=0x00,P2=0x00; delay(500); P1=0xff,P2=0xff, delay(500); } //四个点的流水 while(j>0) { temp0=0xfe,temp1=0x7f; P1=temp0,P2=temp1; delay(100); for(i=7;i--;i>0) { temp0=_crol_(temp0,1),temp1=_cror_(temp1,1); P1=temp0,P2=temp1; delay(100); } j--; } //全部亮,闪三次 for(i=3;i--;i>0) { P1=P2=0x00; delay(300); P1=P2=0xff; delay(300); } //四个IO口同样跟踪流水 while(k>0) { temp0=0xfe,temp1=0x7f; P1=temp0,P2=temp1; delay(60); for(i=7;i--;i>0) { temp0=temp0<<1,temp1=temp1>>1; P1=temp0,P2=temp1; delay(60); } k--;` } P1=P2=0xff; while(k<3) { temp0=0x7f,temp1=0xfe; P1=temp0,P2=temp1; delay(60); for(i=7;i--;i>0) { temp0=temp0>>1,temp1=temp1<<1; P1=temp0,P2=temp1; delay(60); } k++; } P2=0xff; //两边单个从上向下流水 yi=0xfe; P1=yi; delay(50); for(i=7;i--;i>0) { yi=_crol_(yi,1); P1=yi; delay(50); } P1=0xff; yi=0xfe; P2=yi; delay(50); for(i=7;i--;i>0) { yi=_crol_(yi,1); P2=yi; delay(50); } P2=0Xff; //两边单个返回流水 for(i=7;i--;i>0) { yi=_cror_(yi,1); P2=yi; delay(50); } P2=0xff; for(i=7;i--;i>0) { yi=_cror_(yi,1); P1=yi; delay(50); } //全部亮,闪三次 P1=P2=0xff; for(i=3;i--;i>0) { P1=P2=0x00; delay(100); P1=P2=0xff; delay(100); } //流水灯 yi0=0xfe,yi1=0x7f; P2=yi1,P1=yi0; delay(100); for(i=7;i--;i>0) { yi0=yi0<<1,yi1=yi1>>1; P1=yi0,P2=yi1; delay(100); } P1=P2=0xff; delay(200); yi0=0x7f,yi1=0xfe; P1=yi0,P2=yi1; for(i=7;i--;i>0) { yi0=yi0>>1,yi1=yi1<<1; P1=yi0,P2=yi1; delay(100); } //大循环跟踪流水 P2=P1=0xff; for(i=8;i--;i>0) { P1=P1<<1; delay(50); } for(i=8;i--;i>0) { P2=P2>>1; delay(50); //逆向大循环跟踪流水 P2=P1=0xff; for(i=8;i--;i>0) { P2=P2<<1; delay(50); } for(i=8;i--;i>0) { P1=P1>>1; delay(50); } //全部亮,闪三次 P1=P2=0xff; for(i=4;i--;i>0) { P1=P2=0x00; delay(100); P1=P2=0xff; delay(100); } //全部亮,只有一个暗的在流水 temp0=0x01,temp1=0x00; P1=temp0,P2=temp1; delay(100); for(i=7;i--;i>0) { temp0=_crol_(temp0,1); P1=temp0; delay(100); } P1=0x00; temp1=0x01; P2=temp1; delay(100); for(i=7;i--;i>0) { temp1=_crol_(temp1,1); P2=temp1; delay(100); } //全部亮,逆向一个暗在流水 temp0=0x00,temp1=0x80; P1=temp0,P2=temp1; delay(100); for(i=7;i--;i>0) { temp1=_cror_(temp1,1); P2=temp1; delay(100); } P2=0x00; temp0=0x80; P1=temp0; delay(100); for(i=7;i--;i>0) { temp0=_cror_(temp0,1); P1=temp0; delay(100); } //花样 temp0=0xaa,temp1=0x55; P1=temp0,P2=temp1; delay(500); for(;a--;a>0) { for(i=7;i--;i>0) { temp0=_crol_(temp0,1),temp1=_cror_(temp1,1); P1=temp0,P2=temp1; delay(500); } } for(;b--;b>0) { temp0=0xee,temp1=0x77; P1=temp0,P2=temp1; delay(300); for(i=7;i--;i>0) { temp0=_crol_(temp0,1),temp1=_cror_(temp1,1); P1=temp0,P2=temp1; delay(300); } } //环形逐个亮 P1=P2=0xff; for(i=8;i--;i>0) { P2=P2<<1; delay(50); } for(i=8;i--;i>0) { P1=P1>>1; delay(50); } //逐个熄灭 for(i=7;i--;i>0) { P2=~P2<<1; P2=~P2; delay(50); } P2=0xff; for(i=7;i--;i>0) { P1=~P1>>1; P1=~P1; delay(50); } P1=0xff;}基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机关安全教育培训大纲
- 《三维视觉技术》课件
- 《GBT41790-2022智能消费品质量安全改进指南》(2025版)深度解析
- 《GBT40829-2021组织资产管理体系成熟度评价》(2025版)深度解析
- 上进联考2025届广东省高三年级5月联合测评历史课件
- 重要护理案例试题及答案分析
- 《财富管理策略》课件
- 信用证支付流程图详解
- 《物业管理概论》课件
- 《食管癌的早期诊断》课件
- 魏晋南北朝课件好看
- TSG-Z7001-2025《特种设备检验检测机构核准规则》
- 尼康D5200说明书简体中文
- 4.1 树与二叉树(教学课件)-高中《信息技术》选修1数据与数据结构同步高效课堂(浙教版)
- 《职业卫生》专题培训
- 建行个人经营性贷款合同
- 2024年江苏省南通市中考地理试题(含答案)
- 《现代企业管理学》本科教材
- 工业园区消防安全管理制度
- 慢阻肺康复治疗病例汇报
- 氢氧化钠购销
评论
0/150
提交评论