资源目录
压缩包内文档预览:(预览前20页/共49页)
编号:512511
类型:共享资源
大小:290.58KB
格式:RAR
上传时间:2015-11-11
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计
- 资源描述:
-
湖北经济学院单片机控制的循环彩灯系统设计,毕业设计
- 内容简介:
-
存档编号: 毕业论文(设计) 题目: 单片机控制的循环彩灯系统设计 专 业: 计算机科学与技术 院 系: 计算机科学与技术学院 年 级: 计科 Q0245 学 号: 02014104 姓 名: 叶 朋 指导 教师: 桂 超 职 称: 副 教 授 湖北经济学院教务处 制 2006届普通本科毕业论文(设计) nts湖北经济学院本科毕业(设计)论文 2 目 录 前 言 1 绪 论 . 摘 要 1 第 1 章 设计概述 2 1.1 引 言 2 1.2 彩灯功能描述 2 第 2 章 彩灯原理与系统框架设计 3 2.1 彩灯原理介绍 3 2.2 系统设计框架 4 2.3 系统技术方案 7 第 3 章 彩灯硬件设计实现 12 3.1 系统电源 12 3.2 交流检测电路 13 3.3 LED 控制电路 14 第 4 章 彩灯软件设计实现 16 4.1 编程语言的选择 16 4.2 系统总流程 17 4.3 状态内部流程 19 4.4 系统编程实现 19 第 5 章 系统调试 35 5.1 电源的调试 35 5.2 单片机调试 36 5.3 系统软件调试 37 5.4 综合调试 38 结束语 39 致 谢 40 参考文献 41 nts湖北经济学院本科毕业(设计)论文 3 前 言 单片机技术的出现给现代工业测控领域带来了一次技术革命。目前,单片机仍以其高可靠性、高性价比,在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等诸多领域得到了广泛的应用。作为将要从事单片机应用系统开发方面的技术人员,掌握单片机的应用技术是必要的。 在单片机的应用过程中,单片机只是应用系统的一个核心部件,为把单片机系统应用于不同的领域,只掌握单片机的基础知识是远远不够的,要想构成一个完善的应用系统,还要熟悉执行机构及硬件接口电 路的应用特性,同时,还应该掌握系统的结构布局、印刷电路板的结构布局及软件的设计技巧这些书本上学不到的知识,因此为设计出完善的应用系统,必须在实际工作中勤于实践,逐步积累这方面的经验。 本设计就是以此为出发点,以构建单片机应用系统来展开的。本设计主要介绍了单片机应用系统的设计思路,并简要的介绍了硬件电路设计及软件编程技巧。同时对51 系列单片机 EM78P153 的特点及其各引脚特性做了详尽地阐述。整个设计共分五章。 第一章讲解了该设计的设计概要 第二章讲解了该设计的彩灯原理与系统框架设计 第三章讲解了该 设计的硬件实现方案 第四章讲解了该设计的软件设计方案与编程实现 第五章讲解了该设计的调试问题 由于个人水平所限,设计中的缺点和不妥之处在所难免,请指导老师指正。 nts湖北经济学院本科毕业(设计)论文 4 绪 论 单片微型计算机( Sing Chip Microcomputer)简称单片机,又称微控制器( Microcontroller Unit)或嵌入式控制器( Embedded Controller)。它是将计算机的基本部件微型化,使之集成在一块芯片上的微机。片内含有 CPU、 ROM、 RAM、并行 I/O、串行 I/O、定时器 /计数器、 中断控制、系统时钟及系统总线等。 单片机有着体积小、攻耗底、功能强、性能价格比高、易于推广应用等显著优点,在工业、农业、国防、科研、机关、教育、商业以及家电、生活、娱乐、玩具等各个领域之中得到日益广泛的应用。 从国内开发应用单片机的情况看,我国目前和今后相当长的一段时间内, 8 位单片机仍然是实际应用中的主导品种,大多数单片机的应用仍会以 51 系列单片机为主。尽管 16 位和 32 位单片机已为人们所熟悉和了解。 本篇主要讲解以 51系列单片机 EM78P153这款单片机为主线来开发实现单片机控制的循环彩灯系统的设计与实 现。现就此款单片机作如下的简单介绍: EM78P153是一款由台湾义隆公司在基于美国微芯公司生产的 PCI芯片的基础上开发出来的一种采用低攻耗、高速 CMOS工艺制造的 8位单片机。同时它还在构架上应用了与众不同的设计手法 哈佛体系及哈佛总线结构。 EM78P153单片机的外观如图 1所示, 图 1 EM78P153单片机的外观 其管脚说明如下: /RST:人工复位信号输入端 /施密特出发输入,当该脚保持低电平时单 片机复位。不接地其他电路时,可将该脚接 VDD。 nts湖北经济学院本科毕业(设计)论文 5 TCC:定时器 /计数器输入脚,施密特触发输入, 当该脚不用时,必须接 地或 VCC /INT:外部中断输入脚,下降沿触发中断 OSCI:晶体振荡器的输入脚。为单片机工作提供时钟脉冲信号 OSCO:晶体振荡器的输出脚。通常在 OSCI和 OSCO之间外接一只晶振 VDD:电源正极 VSS:电源负极或地 P50P53: P50P53为双向 I/O端口。 P60P67: P60P67为双向 I/O端口。 具有下面的性能特点: a) 工作频率范围: DC20MHZ b) 工作电压范围; 2.35.5V c) 工作温度范围: 0 70 d) 底功耗: 5V/4M 工作条件下电流小于 1.5mA 5V/32K 条件下电流为 15 A 在休眠模式下电流低于 1 A e) 自带 1024 13 位的片内 ROM f) 具有程序加密措施,可以保护程序不能够被非法读出 g) 32 8 位的片内数据寄存器组(即静态存储器, SRAM 一般寄存器) h) 两族双向 I/O 端口 P5x 和 P6x,其各条引脚可以独立编程 i) 具有一个 8 位宽的定时器 /计数器,其 信号源、触发边缘可编程选择,溢出产生中断 j) 具有两种节电模式(休眠模式),以利于延长供电电池的使用寿命 k) 具有 3 种中断模式 TCC 益处中断、输入变化中断和外部中断 l) 7 个可编程上拉和漏极开路 I/O 管脚 P6x m) 6 个可编程下拉管脚 n) 其端口带有推挽功能 o) 指令系统中的全部指令采用统一长度,也就是全都整齐划一为 13bit 长 nts湖北经济学院本科毕业(设计)论文 6 的指令字 p) 具有一个自由运行的看门狗定时器 q) 采用共有 5 级的硬件堆栈结构,方便于堆栈的操作 r) 采用精简指令集( RISC)技术,其指令系统只有 57条指令共 5总寻址方式 s) 每个指令周期内部仅包含两个时钟周期 t) 绝大多数的指令为单指令周期的指令 u) 该单片机为 14管脚双列直插封装型号 v) 外围电路简洁。该单片机片内集成了上电复位、 I/O引脚的上位、漏极开路、看门狗等功能电路,能够最大程度减少或免用外接电路 ,从而便于实现单片机在嵌入系统中的“纯单片”应用 nts湖北经济学院本科毕业(设计)论文 7 摘 要 本系统 介绍了一种新型的 LED彩灯控制系统的设计方法,它以价格低廉的 51系列单片机 EM78P153为主控核心,是基于计数器和 PWM调试的,并与按键、拨码开关等较少的辅助硬件电路相结合而实现的。此设计利用 PWM技术控制各基色 LED灯泡的亮度,利用系统计数器实现彩灯色彩的变换,利用中断转换实现色彩状态子程序的连续调用(即利用软件实现对基色 LED彩灯进行控制)。本系统具有体积小、硬件少、电路结构简单及容易操作等优点。 关键词: LED彩灯; EM78P153单片机 ;彩灯控制器;模块设计。 nts湖北经济学院本科毕业(设计)论文 8 ABSTRACT The system introduced design methodology of a new type of LED Lantern controlling system.EM78P153 of cheap 51 series Microcontroller Unit is used as its core, and is based on counter and PWM debugging,And ancillary hardware circuits such as click, monitor less combined with. This design uses PWM technology LED dwell in the brightness control, the use of the system counter achieves Lantern color changing, the use of the state library was converted to color continuous use( use software to control the base color LED Lantern ) .With the small size of the system, less hardware, circuit structure simple , easy operation advantages and so on. Keyword : LED Lantern; EM78P153 single-chip microcomputer; lantern signal controllers; Modular design. nts湖北经济学院本科毕业(设计)论文 9 第 1章 设计概述 1.1 引 言: 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。 LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。用彩灯来装街道和城市建筑物已经成为一种时尚。但目前市场上各式样的 LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外,从功能 效果上看,彩光模式少而且样式单调, 缺乏用户可操作性,影响灯光效果。因此有必要对现有的彩灯控制器进行改进。 1.2 彩灯功能描述: 彩灯可以通过定时或随用户要求来变换不同的颜色。传统的彩灯一般只有 3种颜色,分别对应 3种颜色的灯泡,当需要其中某种颜色的时候,点亮该颜色的灯泡,熄灭其他颜色的灯泡;先进的彩灯利用三基色原理做简单的混合,其控制系统则只是几个开关或按钮。在本设计中则采用三基色原理,利用价格低廉的 51系列单片机 EM78P153来控制基色 LED灯泡,从而实现丰富的色彩变化。 利用三基色原理的艺术彩 灯的功能如下: ( 1)实现七彩颜色变化 利用 3个独立的单色 LED灯泡进行组合搭配,应用三基色原理,利用价格低廉的 51系列单片机控制基色 LED灯泡来实现丰富的色彩变化。在此例中则使单个彩灯可有 7种不同的颜色。 ( 2)设置色彩变换的快慢 可利用拨码开关来自行设定彩灯色彩的变换快慢,并可随时修改这种设置。同时也可利用拨码开关来设定彩灯点亮时的初始状态。此外,系统自我缺省地设置了一组节奏。 nts湖北经济学院本科毕业(设计)论文 10 第 2章 彩灯原理与系统框架设计 2.1 彩灯原理介绍: 系统根据三基色原理,以红、绿、蓝 3种 基本颜色组成一个可变的单 元,将红绿蓝 3种基色 LED灯泡放到磨沙的玻璃罩内, 3种基色光经混合后,便可对外呈现 7种颜色。系统则利用单片机 I/O口的 PWM调制来调节 LED亮度,使各种颜色之间的变化柔和;还可以应用拨码开关来进行外部设置,如设置颜色变化的周期、起始状态的颜色以及呈现不同的景象。 1.1 彩灯实现原理 系统使用 3个具有独立颜色的 LED灯泡,根据三基色原理,这 3个 LED的发光颜色为红、绿、蓝。这 3个具有独立发光颜色的 LED将按照颜色搭配能发出不同颜色光彩的特性进行组合,使彩灯呈现不同的色彩。 三基色原理的基本公式如下: 红色 + 蓝色 + 绿色 = 白色 红色 + 蓝色 = 紫色 蓝色 + 绿色 = 青色 绿色 + 红色 = 黄色 1.2 色彩转换分析 系统利用单片机控制连接红、绿、蓝 3个 LED的 I/O口,使其产生不同的波形即 可得到相应的颜色。假设通过接口电路在单片机 I/O口连接好基色 LED, I/O口输出 PWM波形控制 LED的灯光亮度,其亮度波形如图 2-1: 图 2-1 亮度波形 图 2-1显示了红( r) LED、绿( g) LED和蓝色( B) LED在单片机控制下的nts湖北经济学院本科毕业(设计)论文 11 亮度波形。 000、 001这样的二进制编 码为三基色的联合状态值, 3位编码分别表示红、绿、蓝。其中, 0表示熄灭; 1表示亮度达到最大值。该波形是一个时序图,例如蓝色 LED在 T0T3时段熄灭;在 T3T4时间段渐渐亮起来,直到最亮;在 T4T7时间段保持最亮;在 T7T8时间段渐渐暗下。同时为了亮度的需要,可以通过外部电路取反使不需要的 3个熄灭的状态转为全亮的状态。 1.3 色彩变换的实现 LED灯泡发光恒定,若要达到色彩变换的效果还需利用单片机控制各色 LED发出不同亮度的灯光。控制 LED亮度需要利用单片机 I/O口的 PWM来实现数字 /模拟转换, D/A转换的实质是对某一固定频率的脉冲进行占空比调节。假设 LED灯泡的工作电压为 Uo,单片机 I/O口的输出占空比为 a, LED的平均工作电压为 Uavg,它可以有公式 Uavg=a*Uo计算得到。由此公式可知,只要改变 LED的平均工作电压 Uavg,就能使发光亮度有所改变。然而工作电压 Uo是 220V市电经过整流后的恒定电压,不可随意变更,因此只能通过改变占空比 a来改变 Uavg的值。及色彩变换可以转变为通过调节占空比 a来调节 LED灯光亮度,进而利用三基色原理调出所需色彩。 2.2 系统设计框架 彩灯需要定时变换灯光色彩,也可以 根据需要设定色彩的变换方式。这使系 统必须具备一定的控制功能,并提供可操作的接口。另外,还需要选用特殊的灯泡 来变换色彩;最后,系统还将留出功能接口,便于扩展。 2.1 单片机控制 单片机主要完成定时控制和彩灯色彩变换控制,它不负责驱动彩灯。由于单片 机是弱电系统,它只能给出控制使能信号,而使能过后的动作则由具体电路来实现。下图 2-2为单片机控制模块和基本功能的划分结果。 nts湖北经济学院本科毕业(设计)论文 12 图 2-2 单片机控制模块 单片机控制模块图 2-2说明了单片机的控制模块和基本功能划分。具体实现的功能描述如下: 系统利用单片机内部的计数 /计时器来实现计时,完成灯泡色彩的变换。 计时信号分为两个,利用两者的比较来调节灯泡的亮度,实现色彩的平滑转换。同时,这两个计时器可用于协调多个彩灯之间的同步 /异步变化,由单片机的计时控制实现。 利用单片机产生 PWM波形,实现交流控制。 彩灯采用的是交流电,单片机使用直流电,这种情况下,通常利用单片机产生PWM波形来控制彩灯。 利用交流检测实现多个基色 LED灯泡的亮度的同步变化。 单片机 I/O连接交流检测电路,利用它来检测交流过零,利用采集的检测值实现多个基色 LED灯泡的亮度的同步变化。 响应并保存用户的自行 设置。 本系统允许用户自行设置,因此单片机要能够保存设定参数,然后单片机根据相应的参数循环执行程序。 2.2 灯泡的选定 基于实际开发的考虑,本系统选择了具有高亮特性的 LED灯泡。它具有发热 量低(冷光特性)、耗电量少、寿命长的特点,可平面封装用于各式灯饰照明,配合不同灯罩后适用于各种场所。 LED亮度恒定、无闪烁感、能耗小、不发热,所以选择这种 LED灯泡可以让彩灯的色彩变换比较柔和,灯光色彩稳定。所以用 3个 LED灯泡nts湖北经济学院本科毕业(设计)论文 13 并通过三基色原理搭配出不同的色彩。 2.3 系统框架设计 系统的 电路原理图 2-3如下所示: 图 2-3:系统电路原理图 本系统的规模较小,按照单片机选型的总原则,本系统选用的单片机型号为EM78P153,它不仅可以满足系统功能实现的要求,同时可使本应用系统有比较高的可靠性,较高的性能价格比,拥有较长的使用寿命,并提供了升级换代的可能。它的指令与 51单片机相兼容,属于 51系列。该单片机内部集成了可编程 RC振荡器和复位电路。具体的端口定义如图 2-4所示: 图 2-4 EM78P153单片机端口定义 这款 EM78P153单片机为 14管脚封装的系统,其特征参数如下: nts湖北经济学院本科毕业(设计)论文 14 工作电压范围 2.35.5V 功耗 5v/4MHZ时低于 1.5mA;5v/32MHZ时为 15 A;在休眠模式时低于 1 A。 1024*13位片内 ROM。 4个内建校准 IRC振荡器 8MHZ、 4MHZ、 1MHZ和 45Khz。 32*8位片内寄存器组( SRAM,一般寄存器)。 两族双向 I/O端口 P5x和 P6x。 8位实时计时 /计数器( TCC),其信号源、触发边缘可编程选择,益处产生中断。 3种中断模式 TCC益处中断、输入变化中断和外部中断。 7个可编程上拉和漏极开路 I/O管脚 P6x。 6个可编程下拉管脚。 LED灯泡一般选用高亮 LED,由于红色 LED的亮度相对较弱,所以蓝色和绿色LED比红色少一个。正常工作状态下,绿色和蓝色 LED的工作电压为 3.2v,而红色 LED的工作电压为 2.0v。红、绿、蓝 3种 LED的工作电流相同,一般设定为 18mA。 由电路原理图 2-3可知,单片机利用 I/O口直接驱动和控制基色 LED灯泡,并采用PWM波形调节脉冲宽度,从而改变 LED的占空比,使其平均工作电压发生变化,调节基色 LED的亮度。这样,彩灯内部的 3种基色 LED即可混色出不同的色彩。 2.3 系统技术方案 本方案中的技术方 案包括 PWM实现技术、系统计数器的使用和系统中断转换。其中,利用 PWM技术控制各 LED灯泡的亮度;利用系统计数器实现彩灯色彩的变换;利用中断转换实现色彩状态子程序的连续调用。 ( 1) PWM实现技术 PWM调制是实现系统功能的关键之一,在次采用两个计数 /计时器,通过比较它们的状态来调节基色 LED的亮度。设两个计数器的范围均为 0256,记为 CNT1和CNT2,他们向上生长的速度(计数器累加的速度)快慢不一: CNT1快速的向上计数,计到 256后又开始从 0计数; CNT2则每 10ms向上计数一次。如果 CNT1的值 小于 CNT2,则输出高电平,点亮基色 LED;如果 CNT1的值大于 CNT2,则输出低电平,基色 LED熄灭;如果两个计数器都从 0开始变化,则单片机控制平均电压从大到小变化, CNT2nts湖北经济学院本科毕业(设计)论文 15 计数满一次为 256*10ms=2.56s,即经过 2.56s后,基色 LED由暗到亮变化。 ( 2) PWM编程描述 以蓝色 LED的控制为例,利用 c语言伪代码描述 PWM的实现过程。 a) 函数功能描述 本函数利用 PWM调节单片机 I/O口的波形,控制其输出高 /低电平;根据相应的输出电平点亮 /熄灭 LED灯泡。 b) 函数实现描述 如上 系统电路原理图 2-3所 示, P51P53是单片机的 I/O口,它们连接基色 LED。本函数利用计数器状态比较来实现 PWM,函数没有输入,输出, CNT1和 CNT2的初始状态可进行需要的相应设置。 伪码如下: Bool LED(void) for(;cnt1+) if(cnt1cnt2) red=1; /点亮蓝色 LED else red=0; /熄灭蓝色 LED /flms为定时器中断产生的 10ms时间标志 if(flms) flms=0; /清楚 10ms标志 cnt2+; /计数器 2加 1 if(cnt2=255) return 0; /2.5s时间到则退出,返回 return 1; ( 3) 系统中断转换 系统可呈现 7种彩色灯光,分别对应图 2-1中 T2T8状态。 T1状态为系统保留,nts湖北经济学院本科毕业(设计)论文 16 它代表白色光。因此,系统主要由这 8种状态的模块组成,每 一种状态对应于设定的中断号。当彩灯的色彩发生变换时,一定会进入某个中断子程序,并且由此中断的中断点开始按顺序进入下一中断子程序;否则,系统中断不发生转换,彩灯固定在一种色彩灯光下。 系统中断转换由主流程控制,主流程包括主程序模块和各中断模块。下图 2-5表示的系统状态转换图则说明了若系统由 T1状态开始,发生顺序转换的过程。 图 2-5 系统状态转换 各中断模块的程序实现以及中断实现由后面 T1T8的程序实现来进行详细的介绍。为了便于控制各中断的执行,使得每一次中断调用能保证最终态的稳定,在此nts湖北经济学院本科毕业(设计)论文 17 将中断转换嵌入 至各中断模块内部。如: T1至 T2的状态转换程序代码如下: JBS FLAG,DIRECT_F ;状态是否跳转 JMP LOOP_T1 ;否!回到本状态 BC FLAG,DIRECT_F JMP LOOP_T20 ;进入 T2,红灯亮 LT1: BC PORT5,3 ;输出,红灯亮 JBS FLAG,DIRECT_F ;状态是否跳转 JMP LOOP_T1 ;维持 T1 BC FLAG,DIRECT_F ;再次判断跳转 ( 4) 系统计数器的使用方法 PWM的 实现过程中使用了两个计数器 CNT1和 CNT2,通过技术比较来判定 LED灯泡是否点亮:若 CNT1 CNTT2, LED灯泡由熄灭状态进入点亮状态;若 CNT1CNT2, LED灯泡的状态进入熄灭状态。各基色 LED灯泡是串行连接的,并且只需改变一种基色 LED灯泡的状态便能实现色彩的变换,因此,系统计数器 CNT1和 CNT2只设立一组。如果当前改变的是红色 LED灯泡的亮度,那么绿色和蓝色 LED灯泡的亮度保持原状态不变。 系统计数器的另一个作用是控制色彩变换的频率,它可以由系统的初值设定,也可以由用户来设定。 系统计数器 的实现代码将在 4.4.3和 4.4.4中进行详细的代码分析。 ( 5) 本系统采用了 EM78P153型号的单片机,用来检测交流信号,产生色彩变 化的 PWM信号输出。 EM78P153内部集成频率可编程的 RC振荡器和复位电路,大大减小了电路的体积,可使电路能够容纳在一个灯泡里面。 图 2-6 EM78P153单片机外观 nts湖北经济学院本科毕业(设计)论文 18 ( 6) EM78P153单片机的外观如上图 2-6,其管脚说明如下 /RST:人工复位信号输入端 /施密特出发输入,当该脚保持低电平时单片机复位。不接地其他电路时,可将该脚接 VDD。 TCC:定时器 /计数器输入脚,施密特触发输入,当该脚不用时,必须接地或 VCC /INT:外部中断输入脚,下降沿出发中断 OSCI:晶体振荡器的输入脚。为单片机工作提供时钟脉冲信号 OSCO:晶体振荡器的输出脚。通常在 OSCI和 OSCO之间外接一只晶振 VDD:电源正极 VSS:电源负极或地 P50P53: P50P53为双向 I/O端口。 P60P67: P60P67为双向 I/O端口。 本系统中单片机的外部接线和端口接线较为简单, 其详细的端口的定义 如图 2-4所示。其中 P51接红 LED, P52接绿色 LED, P53接蓝色 LED。此外,系统还预留了用户端口 P61P67,它们连接了一个如下图 2-7所示的拨码装置,用来设置系统状态值。 图 2-7 拨码装置的连接 nts湖北经济学院本科毕业(设计)论文 19 第 3章 彩灯硬件设计实现 系统的实际布线包括 3个部分;单片机系统、电源电路和 LED控制。具体电路图如图 3-1所示: 图 3-1 系统电路图 3.1 系统电源 本系统中的彩灯要求电路体积较小,且直接利用 220v的市电供电。因此,电源部分要采用电容降压、全桥整流,如图 3-2所示。交流市电经过 5v稳压管即可得到单片机所需的 5v直流工作电压。在本系统设计中采用全桥整流, 它提供的电流比半波整流电流大 1倍。在电容降压回路上,串联一个 300的电阻,主要防止上电时大电流的冲击。 nts湖北经济学院本科毕业(设计)论文 20 3.2 交流检测电路 图 3-2 系统电源电路 此应用不需要严格的过零检测,所以如图 3-1交流检测电路利用一个 1M的电阻与单片机的 I/O口连接,检测交流过零。(从电路技术来说,利用弱电系统检测交流强电的原理是利用晶振脉冲的上升沿和下降沿检测此刻的交流电状态。如果两次采样的交流点状态没有变化,那么此时没有发生交流过零;如果两次采样的交流电状态发生变化,那么一定发生交流过零。)这样连接的 目的是当很多灯泡同时变化时,可以起到同步的作用。系统完全依靠单片机内部的 RC振荡器,由于它会受温度的影响,一致性不好,长时间运行会使色彩变化不一致,所以通过检测同一交流电,能保证所有同时上电的彩灯同步变化。交流检测电路连接了一个 0.01 F的电容,如图 3-2所示的电容 C5,它能很好地起到抗干扰的作用。 单片机从外部电路得到交流电压,并对其进行交流过零检测,这部分功能必须对单片机编程才能实现。交流检测电路的实现过程,首先保存 I/O口的初始状态,在系统运行时利用时钟脉冲间隔不断检测 I/O的状态,如果状态发生改变 ,则发生交流过零。为说明此算法原理,在此利用 C语言伪代码描述这一过程。 ( 1)函数功能描述 函数 Dectec_Ac()完成交流电的过零检测。它的设计思路是利用函数的输出状nts湖北经济学院本科毕业(设计)论文 21 态确定是否交流过零。 ( 2)函数实现描述 如图 3-1所示, P60/INT是单片机的 I/O口,用它连接交流检测电路。本函数无输入,函数输出为交流过零检测的结果: 1( TRUE)表示交流过零; 0( FALSE)表示交流电没有过零。函数设计两个交流的状态值: s0为交流输入初始状态值; s1为当前状态值;执行该函数时,只需要比较 s0和 s1的值即可。 实 现伪代码如下: Bool Dctect_Ac(void) Bit Ac_flag; If(s0=!s1) /s0为交流输入初始状态值; s1为当前状态值 .s0=s1;/一次过零后,更改初始值,等待下一过零出现 Ac_flag=TRUE; /过零标志置 1 Return Ac_flag; Ac_flag=FALSE; /过零标志置 0 Return Ac_flag; 3.3 LED控制电路 LED控制电路如下图 3-3所示: nts湖北经济学院本科毕业(设计)论文 22 图 3-3 LED控制电路 蓝色 LED和绿色 LED由两个三极管控制,当与单片机 I/O口连接的 NPN截止时,控制 LED的 PNP三极管也截止, LED导通点亮;相反,如果单片机 I/O口输出高电平,PNP三极管的基极电位为地, PNP三极管的基极电位为地, PNP的 CE极间导通,接在PNP间的 LED被短路、熄灭。两个 PNP三极管间的电 阻要选得恰当,截止的时候要求在电阻上产生的压降小于几个 LED的电亮电压。 一般说来, PNP管和 NPN管的选取原则是:放大系数、截止特性曲线应保证基本一致;尽量选择同一厂家的产品;产品型号若能接近则最近。 nts湖北经济学院本科毕业(设计)论文 23 第 4章 彩灯软件设计实现 4.1 编程语言的选择 根据系统设计的分工,硬件系统设计完成后,下一步工作就是应用系统的软件编制。所谓软件,是指完成各种功能的计算机程序的综合,如:操作、监控、管理、控制、计算和自诊断程序等。所以软件可以说是微机系统的神经中枢,整个系统的动作都是在软件的指挥 下协调和完成的。然而软件是由语言来实现的,且语言并非一种,按使用语言的类别来区分,语言大致可分为机器语言,汇编语言和高级语言 3种,所以选择语言要视具体情况而定。 因为本设计要实现的功能具有比较强的实时性,同时为了节约成本,提高其性价比。又由单片机选型原则可知其要尽可能的利用自身所带的资源,充分发挥自身的功能。考虑到汇编语言具有这两方面的特性,所以在设计中我选择了用汇编语言来实现软件功能。 下图 4-1所示是系统的总体流程以及各状态内的实现流程。( a)系统主流程 ( b)状态内部程序流程 图 4-1 系统流程图 nts湖北经济学院本科毕业(设计)论文 24 4.2 系统总流程 由系统流程图 4-1( a)可以看出,系统加电后首先完成初始化过程,给内部寄存器赋值,然后从单片机外部读入各参数值和用户设定值。完成上述初始化步骤后,系统进入循环,由一个状态进入到另一个状态。系统总共定义了 8种状态,每进到一个状态,执行相应代码,这种状态的连续变化就使得彩灯的色彩不断变化。 系统总的流程描述如下: ( 1)单片机上电后,初始化寄存器。 单片机上电后,主函数模块将调用 CALL指令进入初始 化函数模块,初始化工作包括 4个方面: 1. 定义全部寄存器和单片机端口。 2. 初始化片内寄存器和 P5、 P6端口状态。 3. 关闭中断,初始化中断标志位。 4. 设定用于实现 PWM调制的片内计数器 CNT1和 CHT2的初始值。 ( 2)完成初始化后,系统读取外部状态,初始变化周期并散转至各状态分支程序。 完成初始化后,系统将利用 P6端口读取用户的设置值(即拨码开关设置的变化周期),同时设定变化的状态值。这部分的操作在编程过程中与寄存器初始化过程统称INIT模块,利用 CALL指令调用。 ( 3)根据外部状态值,进入相应状态的分支程序并执行 。 系统总共定义了 8种状态,分别实现了不同的颜色变化。 状态 1:红色 LED灯泡渐亮 进入状态 1之前,红色 LED灯泡为熄灭状态,绿色和蓝色 LED灯泡可为任意状态;进入状态 1之后,系统将点亮红色 LED灯泡,逐渐熄灭蓝色和绿色 LED灯泡,最终红色 LED灯泡亮度达到最大值,彩灯呈现红色。 状态 2:绿色 LED灯泡渐亮 进入状态 2之前,绿色 LED灯泡为熄灭状态,红色 LED灯泡亮度达到最大值,蓝色 LED灯泡可为任意状态;进入状态 2之后,系统将点亮绿色 LED灯泡,红色 LED灯泡保持亮度,逐渐熄灭蓝色灯泡,最终绿色 LED灯泡 亮度达到最大值。彩灯的颜色变化为红色 橙色 黄色,并最终稳定在黄色。 状态 3:红色 LED灯泡渐暗 nts湖北经济学院本科毕业(设计)论文 25 进入状态 3之前,红色和绿色 LED灯泡亮度达到最大值,蓝色 LED灯泡熄灭,彩灯呈现黄色;进入状态 3之后,系统将逐渐熄灭红色灯泡,而绿色 LED灯泡保持亮度,最终红色 LED灯泡熄灭。彩灯的颜色变化为黄色 黄绿色 绿色,并最终稳定在绿色。 状态 4:蓝色 LED灯泡渐亮 进入状态 4之前,绿色 LED灯泡亮度达到最大值,红色和蓝色 LED灯泡保持熄灭状态,彩灯呈现绿色;进入状态 4之后,系统将点亮蓝色 LED灯泡,绿色 LED灯泡保持亮度,而红色 LED灯泡保持熄灭状态,最终蓝色 LED灯泡亮度达到最大值。彩灯的颜色变化为绿色 绿蓝色 青色,并最终稳定在青色。 状态 5:绿色 LED灯泡渐暗 进入状态 5之前,蓝色和绿色 LED灯泡亮度达到最大值,红色 LED灯泡保持熄灭态,彩灯呈现青色;进入状态 5之后,系统将逐渐熄灭绿色 LED灯泡,蓝色 LED灯泡保持亮度,而红色 LED灯泡保持熄灭态,最终绿色 LED灯泡熄灭。彩灯的颜色变化为青色 蓝绿色 蓝色,并最终稳定在蓝色。 状态 6:红色 LED灯泡渐亮 进入状态 6之前,蓝色 LED灯泡亮度达到最大值 ,红色和绿色 LED灯泡保持熄灭态,彩灯呈现蓝色;进入状态 6之后,系统将点亮红色灯泡,蓝色 LED灯泡保持亮度,而绿色 LED灯泡保持熄灭态,最终红色 LED灯泡亮度达到最大值。彩灯的颜色变化为蓝色 蓝紫色 紫色,并最终稳定在紫色。 状态 7:蓝色 LED灯泡渐暗 进入状态 7之前,蓝色和红色 LED灯泡亮度达到最大值,绿色 LED灯泡保持熄灭态,彩灯呈现紫色;进入状态 7之后,系统将逐渐熄灭蓝色 LED灯泡,红色 LED灯泡保持亮度,而绿色 LED灯泡保持熄灭态,最终蓝色 LED灯泡熄灭。彩灯的颜色变化为紫色 紫红色 红色, 并最终稳定在红色。 状态 8:红色 LED灯泡渐暗 进入状态 8之前,红色 LED灯泡亮度达到最大值,绿色和蓝色 LED灯泡保持熄灭态,彩灯呈现红色;进入状态 8之后,系统将逐渐熄灭红色灯泡,蓝色和绿色 LED灯泡保持熄灭状态,最终红色 LED灯泡熄灭。为了避免出现所有灯泡熄灭的状态出现,在设计中将状态 8的最终结果定义为彩灯发出白色的光,即红色、绿色和蓝色 LED灯nts湖北经济学院本科毕业(设计)论文 26 泡熄灭后同时发光,并达最大值,最终稳定在白色。 ( 4)完成单个状态的执行,按照系统流程顺序跳转至下一状态,不断循环。 4.3 状态内部流程 系统循环进入不同的状 态,每一个状态都类似一个单片机中断程序,它有独立的动作流程。上图 3-2( b) 所示抽象了状态内容的流程利用通用的形式描述了不同状态的内部流程。流程的核心是 PWM调制,利用两个计数器的比较来控制各个基色 LED的点亮 /熄灭。 状态内部流程描述如下: i. 进入状态内部流程后,用于 PWM调制的片内计数器 CNT1计数器开始增加。计数器 CNT1的计数操作是利用 CALL指令调用独立的计数字程序模块来完成的。 ii. 计数器 CNT1完成计数后,进行交流检测,并在检测中利用 CNT2计数检测的周期数。通过交流检测技术,可调节各基色 LED灯泡 的工作电压,使它们的亮度同步变化,实现色彩的柔和变化。 iii. 比较 CNT1和 CNT2的计数值,如果 CNT1大于 CNT2,该状态的目标 LED灯泡将被点亮;如果 CNT1小于 CNT2,目标 LED灯泡将熄灭。 iv. 检查状态的执行时间是否超时,若末超时,系统将重新执行一次上述流程;否则系统将退出当前状态,并进入下一状态。 4.4 系统编程实现 4.4.1 变量定义与初始化程序模块 1变量定义 本设计中用到的变量不多,大部分用于定义端口和寄存器的地址。 专用寄存器定义: R0 EQU 0X00 ;定义 RAM间接寻址寄存器地址 TCC EQU 0X01 ;定义定时器 /计数器 0寄存器地址 PC EQU 0X02 ;定义程序计数器地址 R3 EQU 0X03 ;定义状态寄存器地址 PORT5 EQU 0X05 ;定义端口 5在 RAM内的统一编址 PORT6 EQU 0X06 ;定义端口 6在 RAM内的统一编址 nts湖北经济学院本科毕业(设计)论文 27 I/OCF EQU 0X0F ;定义中断屏蔽寄存器地址 I/OCE EQU 0X0E ;定义 WDT控制寄存器 I/OCD EQU 0X0D ;定义上拉控制寄存器 ISR EQU 0X3F ;定义中断标志寄存器地址 C EQU O ;定义进位 /借位在 R3中的位地址为 0 程序所需通用寄 存器定义,主要用来比较 CNT1和 CNT2,实现 PWM调制控制。 DLY_C1 EQU 0X10 ;计数延时 COUNT1 EQU 0X12 ; PWM计数器 1 COUNT2 EQU 0X13 ; PWM计数器 2 FLAG EQU 0X14 ;定义一个亮灭标志位(仅用寄存器末位) BX EQU 0X15 ;临时寄存器 BA3 EQU 0X16 ;临时寄存器 T_PARA EQU 0X17 ;变化周期 I_PARA EQU 0X18 ;状态值 下面是临时标志信号。 DIRECT_F EQU 0 ;状态跳转标志 COMP_F EQU 1 ; PWM计数器比较 AC_FLAG EQU 2 ;交流检测标志 TIME_PARA1 EQU 1 ;可修改的时间参数 2初始化程序模块 系统加电后,首先要完成寄存器的初始化,然后由 P61P67端口读入拨码开关的状态,决定颜色变化的周期及基色 LED开始
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。