LED花样灯控制系统的设计与制作.doc_第1页
LED花样灯控制系统的设计与制作.doc_第2页
LED花样灯控制系统的设计与制作.doc_第3页
LED花样灯控制系统的设计与制作.doc_第4页
LED花样灯控制系统的设计与制作.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业设计LED花样灯控制系统的设计与制作系 (部): 专 业: 学 号: 学生姓名: 指导教师: 2011 年 05月摘 要近年来,彩灯对于美化、亮化城市有着不可轻视的重要作用。因此作为城市装饰的彩灯需求量越来越大,对于彩灯技术和花样的要求也越来越高。目前市场上各种式样的LED彩灯多半是采用全硬件电路实现,存在电路结构复杂、功能单一等局限性,因此有必要对现有的彩灯控制器进行改进。本文设计了一种简易LED彩灯控制系统的软硬件设计过程,以AT-89C52单片机作为主控核心与辅助硬件电路相结合,利用软件实现对LED彩灯进行控制。本系统具有电路结构简单、操作容易、硬件少、成本低等特点。本方案以AT89S52单片机作为主控核心,与键盘、显示、驱动等模块组成控制系统。本控制系统设有3个按键和1位七段码LED显示器,根据设计要求编写10种亮灯模式,利用单片机内部定时器T2实现一个基本单位时间为1 ms的定时中断,根据各亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各灯亮或灭,形成不同的花样。关键词:LED彩灯,AT-89C52单片机,彩灯控制器ABSTRACTIn recent years, the lights for landscaping, lighting city has underestimates the important role. Accordingly, as the city of lights decorate, growing demand for lantern technology and figure demands more and more is also high. The various styles on the market at present LED lights mostly adopts full hardware circuit implementation, existing circuit structure iscomplex, single function etc limitations, so it is necessary to improve the existing lights controller. This paper introduces a kind of simple LED lights control system with thehardware and software design process, 89C52 microcontroller as the master AT - core and auxiliary hardware circuit and the software realize combining of LED lights for control. This system has a circuit is simple in structure, easy for operation, hardware and low costs less.This scheme AT89S52 SCM as the master in core, with the keyboard, display, drivers, module control system. This control system has three buttons and a seven bit code LED display, according to the design requirements write 10 kinds of light mode, internal microcontroller timer T2 achieve a basic unit time for 1 ms timing interrupt, according to the different needs of light time, in different time lights or lamp output, then drive the control signal lights or destroy all, forming different pattern. Keywords: LED lights,AT-89C52 microcontroller,Lantern controller 目 录摘 要IABSTRACTII第1章 绪论11.1 概述1第2章 总体方案设计与论证22.1 设计要求与思路22.1.1 设计要求22.1.2 设计思路22.2 设计方案论证2第3章 硬件电路设计43.1 AT89C52单片机简介43.1.1 单片机工作原理43.1.2 单片机设计原理53.2 各功能模块分析与设计53.2.1 显示模块53.2.2脉冲震荡模块63.2.3 复位电路模块73.2.4 单片机最小系统73.2.5 单片机I/O分配93.3 单片机硬件原理图103.4 PCB图11第4章 系统软件设计124.1 编程语言的选择124.2程序设计思路134.3 程序设计流程图134.4 子程序的设计144.4.1 按键定义与扫描处理144.4.2 控制LED程序164.4.3 显示程序164.4.4 中断延时程序17第5章 系统模拟运行结果及分析185.1 程序调试185.1.1 硬件调试185.1.2 软件调试185.1.3 软硬联调18结 论21参考文献22附 录23致 谢33IV 长沙学院毕业设计 第1章 绪论1.1 概述近年来,彩灯对于美化、亮化城市有着不可轻视的重要工作。因此作为城市装饰的彩灯需求量越来越大,对与彩灯的技术和花样也越来越高。但传统的彩灯控制电路一般是由数字电路组成,这种彩灯控制器电路结构复杂、成本较高、功率损耗大,此外从功能效果上看,彩灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。而单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。LED彩灯具有成本低、发光纯度高、发光热量小、耗电量低、超长寿命的特点。所以利用单片机作LED彩灯控制,不仅是使控制花样、路数大大增加,成本也很低,而且对环境能源没有污染,有着很大的发展前景。本方案是一种基于AT89C52单片机的彩灯控制方案,实现对LED彩灯的控制。主要以AT89C52单片机作为主控核心与发光二极管、晶振、复位、电源等组成电路,利用软件编辑实现彩灯流水灯的效果。本文提出了一种基于AT89C52单片机的LED灯控制方案,实现对LED灯的控制,其电路简单,软硬件结构模块化,易于实现。本方案以AT89C52单片机作为主控核心,与键盘、显示、驱动等模块组成控制系统。本控制系统设有3个按键和1位七段码LED显示器,根据设计要求编写10种亮灯模式,利用单片机内部定时器T2实现一个基本单位时间为1 ms的定时中断,根据各亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各灯亮或灭。设计一种基于AT89C52单片机的LED花样灯控制电路,实现了对LED灯的控制。方案以AT89C52单片机作为主控核心,与键盘、显示、驱动等模块组成控制系统。在本系统中设有3个按键和1个七段码显示器,根据要求编写10种不同的显示状态,在功能键3秒没有按下情况下,10种不同的状态自动循环,如果有功能键按下,则通过功能键切换。第2章 总体方案设计与论证2.1 设计要求与思路2.1.1 设计要求本课题设计的LED花样要求如下:(1)让16个LED能产生10种不同的显示状态,在功能键3秒没有按下情况下,10种不同的状态自动按循环,如果有功能按键下,则通过功能键切换; (2) 从16个LED中取8个LED,让8个LED的闪烁速度都不一样,并且可以过功能按键进入闪烁速度调整(每个灯都可以调); (3)定义一个功能按键、一个加键、一个减键。通过加、减键控制16个LED灯的渐亮、渐暗;(4)在要求3上再加一个状态:从16个LED灯中取8个LED,其8个LED亮分别为:1/8、2/8、3/8、4/8、5/8、6/8、7/8、8/8; (5)在要求4的前提下,能让这个8个LED在16个LED上来回显示,其8个LED亮度保持不变,加入按键控制其来回速度。2.1.2 设计思路设计一种基于AT89C52单片机的LED花样灯控制电路,实现了对LED灯的控制。方案以AT89C52单片机作为主控核心,与键盘、显示、驱动等模块组成控制系统。在本系统中设有3个按键和1个七段码显示器,根据要求编写10种不同的显示状态,在功能键3秒没有按下情况下,10种不同的状态自动循环,如果有功能键按下,则通过功能键切换。2.2 设计方案论证方案一、采用矩阵式分布。以控制128个LED为例,利用单片机的p1口做行选信号,p2和p0口做列选信号,128个LED构成8行,16列的矩阵。此方案能单独控制每一个LED,也可单独控制每行或每列的LED,适合LED数量较多的场合。方案二、采用HD7279智能芯片。HD7279是一片具有串行接口的可同时驱动8位共阴式数码管或64只独立LED的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成显示、键盘接口的全部功能。使用时必须了解其内部指令,编程较为复杂。方案三、采用单片I/O口直接一对一控制LED灯。通过控制单片机的I/O口直接实现对每个LED的控制,电路简单,易于实现。适合LED数量较少的场合。综上所述,考虑到本设计要求控制的LED数量不多,从节约成本,及减轻编程难度角度出发,本设计选择方案三。第3章 硬件电路设计3.1 AT89C52单片机简介3.1.1 单片机工作原理AT89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89C52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89C52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。AT89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89C52单片机共有4个8位并行I/O口:P0、P1、P2、P3端口,共32个引脚。P0口是一个8位漏极开路的双向I/O口,作为输出口,每位能驱动8个TTL逻电平(TTL电平标准 输出 L: 2.4V。 输入 L: 2.0V);P1 口是一个具有内部上拉电阻的8位双向I/O口,P1口输出缓冲器能驱动4个TTL逻辑电平,引脚号有第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制),P1.5 MOSI(在系统编程用),P1.6 MISO(在系统编程用),P1.7 SCK(在系统编程用);P2 口是一个具有内部上拉电阻的8位双向I/O 口,P2 输出缓冲器能驱动4个TTL逻辑电平;P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL 逻辑电平,P3口亦作为AT89C52特殊功能(第二功能)使用,P3.0 RXD(串行输入),P3.1 TXD(串行输出),P3.2 INT0(外部中断0),P3.3 INT0(外部中断0),P3.4 T0(定时器0外部输入),P3.5 T1(定时器1外部输入),P3.6 WR(外部数据存储器写选通),P3.7 RD(外部数据存储器读选通)。3.1.2 单片机设计原理基于AT89C52单片机的彩灯控制方案,实现对LED彩灯的控制。本方案以AT89C52单片机作为主控核心,与显示、驱动等模块组成核心主控制模块。在主控模块上设有晶振电路和16个LED显示二极管,根据用户需要可以编写若干种亮灯模式,利用其内部定时器T2实现一个基本单位时间为5 ms的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,结构框图如图3-1所示。复位电路AT-89S51核心部件闪烁系统震荡脉冲图3-1 硬件系统方框图3.2 各功能模块分析与设计3.2.1 显示模块发光二极管显示器简称LED或数码管。这种显示器具有线路简单、耗电少、成本低、寿命长等优点,本系统输出结果选用16个LED显示。数码管有共阴共阳之分,本系统采用16段共阴型LED,每端有8个发光二极管,公共端由8个发光二极管的阴极并接而成,正常显示时公共端接低电平(GND),各发光二极管是否点亮取决于各引脚上是否是高电平。彩灯闪烁由+5V电源和八个LED发光二极管,八个限压电阻组成如下图所示是彩灯闪烁系统的主要的外部可视部件。LED显示器由16个发光二极管组成。其中每个发光二极管的颜色是不相同的LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。事实上,数码管、符号管、米字管及矩阵管中的每个发光单元都是一个发光二极管。它们做了许多不同工作和在各种各样的设备都可以看见它们的存在。 由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。LED花样灯显示电路如图3-2所示,设计采用共阳接法,图中选用红色,直径为5mm的LED,直接由VCC驱动,限流电阻采用470欧姆的电阻,LED被点亮时,LED两端电压约为1.67V(实验测得),流过的电流I(5-1.67)/ 470=7mA。图3-2 LED 花样灯显示电路3.2.2脉冲震荡模块为彩灯循环系统提供稳定频率波在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,引入唯一的外部脉冲信号作为各单片机的振荡脉冲。这时外部的脉冲信号是经单片机AT89C52的XTAL2引脚注入的;如图3-3所示: 图3-3 震荡电路3.2.3 复位电路模块复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除PC之外,复位操作还对其它一些专用寄存器有影响,它们的复位状态如表3-1所示:表 3-1PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0P30FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD 00H单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。单片机的复位方式可由手动复位方式完成。RSTA端接至单片机的第9引脚RST,电路的电解电容10uf/25V,电阻R1阻值为10K,在电容两端并上一个常开按键开关,使得系统可以实现上电复位及按键复位功能。此外RST的第二功能是作备用电源输入端。当主电源VCC发生故障而降低到规定低电平时,RST线上的备用电源自动投入,以保证片RAM中的信息不丢失。3.2.4 单片机最小系统AT89C52单片机最小系统,由AT89C52单片机芯片,OSC的晶振电路,复位电路,程序下载口等组成。通常OSC的晶振电路输出时钟频率fOSC为0.516MHz,其典型值为12MHz和11.0592MHz。本设计中选用12MHz的晶振,电容CY1和CY2均为39pf, 程序下载口APROM用于系统编程。使用单片机下载软件和ISP下载线可以对单片机方便快捷下载程序。3.2.5 单片机I/O分配单片机P0.1P0.7、P1.0 P1.7口作为LED控制信号输出口,其中P0.1P0.7接上拉电阻,是因为P0口输出高电平时只有3.5V左右,为了提高P0口高电平时的值必须接上拉电阻,这里采用是2K*8的排阻;P2.0P2.2口作为三个功能按键输入口;P2.6口接蜂鸣器;P3.0P3.6口接1位共阳七段码LED作为显示器的输入口。3.3 单片机硬件原理图图3-4 原理图3.4 PCB图图3-5 PCB图第4章 系统软件设计4.1 编程语言的选择目前,单片机编程常见的是使用C语言和汇编语言,AT89C52上的C语言的代码长度,已经做到了汇编水平的1.21.5倍。4K字节以上的程度,C语言的优势更能得到发挥。至于执行速度的问题,只要有好的仿真器的帮助,找出关键代码,进一步用人工优化,就可很简单地达到十分美满的程度。如果谈到开发速度、软件质量、结构严谨、程序坚固等方面的话,则C语言的完美绝非汇编语言编程所可比拟的。今天,确实已经到MCU开发人员拿起C语言利器的时候了。下面介绍单片机C语言的优越性:1、不懂得单片机的指令集,也能够编写完美的单片机程序;2、无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;3、不同函数的数据实行覆盖,有效利用片上有限的RAM空间;4、程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;5、C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;6、提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;7、提供small、compact、large等编译模式,以适应片上存储器的大小;8、中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;9、提供常用的标准函数库,以供用户直接使用;10、头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;11、有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;12、可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。基于C语言的优越性及本人对C语言熟悉比汇编语言的高,本设计采用C语言编程。4.2程序设计思路本LED灯控制系统的最大特点在于所有亮灯模式均由软件控制完成。系统中软件可以分为主程序和中断服务子程序。上电后3秒后仍在缺省状态时以顺序调用Model_i花样亮灯模式流程为主程序,从第Model_0模式开始工作,自Model_0到Model_2到Mod el_9为一个亮灯周期,然后再回到Model_0循环继续工作,同样如果想进入设定模式状态,只需按下功能切换键即可。整个系统软件由主程序( Main)、各个子程序、1 ms中断服务子程序(T2 Interrupt)、键盘扫描处理子程序(KeyDispose)、显示子程序(Display)等程序组成。除了T2定时中断之外,程序的大部份时间是在处理按键的查询和LED显示的延时。3个功能按键分别为:1个模式选择按键,1个加速键,一个减速键。主程序除了调用各种子模式子程序(Model_i),调用LED显示子程序(Display)和延时子程序(Delay)之外,还一直保持查询是否有功能键按下,一旦有功能键按下,就会进入相应的按键处理。4.3 程序设计流程图主程序流程如图4-1所示。亮灯模式子程序Model_i可以编写若干(10种), Model_i程序流程如图4-2所示。 图4-1 主程序流程 图4-2 Model_i程序流程4.4 子程序的设计4.4.1 按键定义与扫描处理GetKey函数为定义三个按键的键值,其中模式键为0x01,加速键为0x02,减速键为0x04.具体函数如下:unsigned char GetKey(void)unsigned char KeyTemp,CheckValue,Key = 0x00;CheckValue = P2&0xc0;if(CheckValue=0xc0)return 0x00;Delay1ms(10);KeyTemp = P2&0xc0;if(KeyTemp=CheckValue)return 0x00;if(!(CheckValue&0x20)Key|=0x01;if(!(CheckValue&0x40)Key|=0x02;if(!(CheckValue&0x80)Key|=0x04;return Key;KeyDispose按键处理子程序void KeyDispose(unsigned char Key)if(Key&0x01)LEDDirection = 1;LEDIndex = 0;LEDFlag = 1;RunMode = (RunMode+1)%10;Display(RunMode);if(Key&0x02)if(SystemSpeedIndex0)-SystemSpeedIndex;SetSpeed(SystemSpeedIndex);elseLEDFlash(6);if(Key&0x04)if(SystemSpeedIndex8)&0x00FF);unsigned int LEDIndex = 0;bit LEDDirection = 1,LEDFlag = 1;void Mode_0(void) LEDShow(0x0001LEDIndex); LEDIndex = (LEDIndex+1)%16;4.4.3 显示程序数码显示程序采用查表法,数码管显示的编码如数组LEDDisplayCode定义所示,0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,对应数码管显示的数字07。通过函数Display将编码值送P3口,接在P3口的数码管完成对应编码的数字显示。Unsigned char code LEDDisplayCode = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, /070x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF;void Display(unsigned char Value)P3 = LEDDisplayCodeValue;4.4.4 中断延时程序彩灯延时闪烁的实现,延时子程序的调用实际上就是寄存器在单片机中,从中断请求发生到被响应,从中断响应到转到执行中断服务程序,采样是中断出理的第一步他是针对外中断请求信号进行的。如图4-3所示图4-3 中断程序流程图 图4-4 主程序调用子程序图第5章 系统模拟运行结果及分析5.1 程序调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试,包括对:键盘操作功能调试,声音输出功能调试,指示灯功能调试等。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。最后将各模块组合后整体测试,使系统的所有功能得以实现。5.1.1 硬件调试电路安装完成后,首先进行检查,即确认电路无虚焊,无短路,无断路,集成元件安装是否正确,之后进行电路功能模块的分级调试,根据电路功能逐级进行:(1)按键功能调试(2)LED灯功能调试5.1.2 软件调试本系统的软件系统很大,全部用AT89C52来编写,选用一般的伟福仿真器对AT89C52进行调试。除了语法差错外,当确认程序没问题时,通过直接下载到单片机来调试。采取的是自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。主要是液晶显示屏实时显示功能的调试。5.1.3 软硬联调系统做好后,进行系统的完整调试。主要任务是检验实现的功能及其效果并校正数值。根据实测数据,逐步校正数据,使测量结果更准确。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。打开protues仿真电路图,进行仿真, 部分结果截图如下:图5-1 花样一左移图5-2 花样二右移图5-3 花样三左右移图5-4 花样四图5-5 花样五图5-6 花样六图5-7 花样七图5-8 花样八图5-9 花样九图5-10 花样十结 论随着科学技术的不断发展,单片机应用越来越广泛。本文采用AT89C52单片机做主控芯片,并配上相应的外部接口电路,设计了一款简易LED灯控制系统的设计与制作过程。该LED控制系统实现简单、功能稳定、使用方便,适用于以此为模型开发大型的LED彩灯控制系统。通过这次毕业设计,我又学到了很多实际应用方面的知识,使理论与实践真正的联系了起来,通过设计、制作图、制作PCB图、焊接、编程、调试等一个个的实际动手过程,是我专业方面的又一次锻炼。尤其是在整个调试过程当中,对电路的分析,主要是程序调试,对问题的解决都充分用到了以前所学的知识,都大大提高了我的分析能力。参考文献1 唐颖,程菊花,任条娟.单片机原理与应用及C51程序设计M.北京:北京大学出版社,20082 胡汉才. 单片机原理及其接口技术(第2版)M.北京:清华大学出版社,20043 范立南,谢子殿.单片机原理及应用教程M.北京:北京大学出版社,20064 三恒星科技. MCS-51单片机原理与应用实例M.北京:电子工业出版社,20085 沈红卫.单片机应用系统析设计实例与分M.北京:北京航空航天大学出版社,20036 楼然苗,李光飞.单片机课程设计指导M.北京北京航空航天大学出版社,20077 陈明荧. 8051单片机课程设计实训教材M.北京: 清华大学出版社, 20048 楼然苗,李光飞51系列单片机设计实例M.北京:京航空航天大学出版社,20049 靳 达.机应用系统开发实例导航M.北京:人民邮电出版社,200310 胡汉才.单片机原理及其接口技术M.北京:清华大学出版社, 199511 徐淑华, 程退安, 姚万生. 单片机微型机原理及应用M. 黑龙江: 哈尔滨工业大学出版社, 199412 高海生.片机应用技术大全M.西南交通大学出版社,200413 合庆. 单片机开发调试应注意的问题J.电子产品世界, 2000, 5: 43-4815 赵亮,候国锐.单片机C语言编程与实例M.人民邮电出版社, 200316 李兰友,王勇才、傅景义单片机应用开发实例M.电子工业出版社,199517 谭浩强.C语言程序设计(第三版) M.北京:清华大学出版社,200518 龙佑嘉,彭三城.C语言程序设计教程M.湖南:湖南教育出版社,200619 马忠梅,籍顺心单片机的C语言应用程序设计M电子工业出版社,2004附 录程序清单#include unsigned char RunMode;bit key_flag=0;/*System Fuction*void Delay1ms(unsigned int count)/延时1msunsigned int i,j;for(i=0;icount;i+)for(j=0;j120;j+);Unsigned char code LEDDisplayCode = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF;void Display(unsigned char Value) /数码显示函数P3 = LEDDisplayCodeValue;void LEDFlash(unsigned char Count)unsigned char i;bit Flag;for(i = 0; i8)&0x00FF);/P0显示LEDStatus的高8位取反void InitialCPU(void)RunMode = 0x00;Timer0Count = 0;SystemSpeedIndex = 9;P1 = 0x00;P0 = 0x00;P2 = 0xFF;P3 = 0x00;Delay1ms(500);P1 = 0xFF;P0 = 0xFF;P2 = 0xFF;P3 = 0xFF;SetSpeed(SystemSpeedIndex);/SystemSpeed =SpeedCodeSpeed;Display(RunMode); /P3 = LEDDisplayCodeValue;/Mode 0unsigned int LEDIndex = 0;/声明16位变量LEDIndex,用来指示16个/LED中哪个被点亮,初始值为0bit LEDDirection = 1,LEDFlag = 1;/声明位变量LEDDirection,用来指、/示点亮的方向,初始值为1void Mode_0(void)LEDShow(0x0001LEDIndex);LEDIndex = (LEDIndex+1)%16;/Mode 2void Mode_2(void)if(LEDDirection)LEDShow(0x0001LEDIndex);if(LEDIndex=15)LEDDirection = !LEDDirection; LEDIndex = (LEDIndex+1)%16;/Mode 3void Mode_3(void)if(LEDDirection)LEDShow(0x0001LEDIndex);if(LEDIndex=15)LEDDire

温馨提示

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

评论

0/150

提交评论