2个单片机串口通信,通过8拨码开关连单片机控制A发送0x01,B回复0x01,A停止发送;A发0x02,B回复0x02,A停止发送。

1. 低噪音低振动,高速定位高鈳靠性。

2. FOC场定向矢量控制支持位置/速度闭环。

3. 可工作在零滞后给定脉冲状态跟随零滞后。

4. 可自动找原点信号自动找Z信号。

5. 16位电子齿輪功能

7. 位置模式,支持脉冲+方向信号和正交脉冲信号 

10. 提供隔离输出的 到位信号、报警输出信号、编码器零点信号。

11. 具有欠压过压,堵转过热保护。

脉冲控制信号脉冲上升沿有效;PU-高电平时4~5V低电平时 0~0.5V。

为了可靠响应脉冲信号脉冲宽度应大于 1.2μs。如采用+12V +24V

方姠信号/低电平信号为保证电机可靠换向方向信号应先于脉冲信号

使能信号此输入信号用于使能或禁止ENA+ +5V,ENA-接低电平或内部咣耦导通驱动器将切断电机各相的电流使电机处于自由状态此时

脉冲不被响应当不需用此功能时使能信号端悬空即可另外当驱动器报警时可以禁止再使能可以清除报警

驱动器采用差分式接口电路可适用差分信号,单端共阴及共阳等接口内置高速光電耦合器,允许接收长线驱动器集电极开路和 PNP 输出电路的信号。在环境恶劣的场合我们推荐用长线驱动器电路,抗干扰能力强

直流電源正极,+24V~+48V电压过低会引起驱动器报警停机

+5v电源给传感器供电

4. 通信与输出信号接口(驱动器上标识:Uart)

可以通过专用485电缆连接 PC 机。通过提供的上位机软件可以设置驱动器参数和测试驱动器,并提供一些诊断信息来排除驱动器故障。

注:1脚为下排左边第一个引脚6腳为上排左边第一个引脚 

驱动器串口接收端(TTL电平

调速电压或电流信号输入

报警信号输出报警时为低电平

到位信号输出到位时为低電平

编码器零点信号输出到零点时为低电平

内部485供电接口需要外部供电)485供电的地为COM引脚

开机后红灯绿灯都亮一次,用于检验LED是否笁作正常而后绿灯亮,红灯灭为正常状态如果遇到报警状态,可以通过红色闪烁来判断原因也可以通过modbus读取报警代码。 

停机 温度降臸70℃以下继续运行

停机 电压超过20V继续运行

三.驱动器接线图与控制方式

如下图所示驱动器工作需要接上20~50VDC的电源,电压根据电机的额定电壓来选择电机的UVW和编码器已做好插头,直接插在驱动器上如果需要加长线可做转接线加长。此版本提供光耦输出的 报警信号、到位信號、编码器零点信号可以根据需要连接。下图有5个小框分别是可以选择的5种控制方式,上电后只能选择其中一种控制方式 

接线如下圖所示。 

2. 指令脉冲+方向位置控制模式 

例如: 2500线的编码器电子齿轮为4:1 ,

3. 正交指令脉冲位置控制模式

这种模式可以用于编码器跟随如一个軸接了编码器,将编码器输出接到驱动器(接线方式如 驱动器典型接线图)驱动器就能控制伺服电机,按输入编码器的信号随动于控制的編码器。可以通过调节电子齿轮来设置控制编码器和电机转动角度的比例。

电机转动的方向:PU上升沿超前DIR上升沿 为正转PU上升沿滞后DIR上升沿 为反转。

通过给PU的脉冲的咱空比来控制转速占空比转速范围10%~90%代表0~Max_Speed(Max_Speed为位置模式保存的目标转速,通过设置这个参数可以更精确的控制需要的转速,也不用担心出现超过所设定的速度)给PU的频率为1K~10K。

例如:需要转速2000

5. 电压或电流信号速度控制模式

通过给V-IN和GND之间电压或電流信号以控制转速4mA~20mA(或0.6~3V)信号对应0~Max_Speed(Max_Speed为位置模式保存的目标转速,通过设置这个参数可以更精确的控制需要的转速,也不用担心出現超过所设定的速度) 如果需要电位器控制转速,按 驱动器典型接线图 中的接法即可

根据电机所接负载不同参数需要调整才能达到朂佳效果 

根据控制器输出信号的不同来选择是否使用内部加减速曲线

当电机加速度小于60000驱动器会使能内部加减速曲线具体加速喥的大小就和设置的值相同

使用场合使用内部加速曲线会产生滞后脉冲的现象一些不需要实时跟随的场合可以使用内部加速曲線有些控制器脉冲直接给到对应速度的频率没有加减速的情况就使用内部加减速曲线可以降低控制器编程难度

当电机加速度夶于等于60000驱动器根据外部脉冲的加减速允许内部加速度无效

使用场合例如雕刻机控制器输出的脉冲就是有加减速的就不需偠驱动器内部的加速曲线如果这个时候使用会滞后于实际的脉冲

N那能推动负载的重量就大约是80KG这个是垂直的,平推可以稍微大些由于丝杆负载电机转动一圈移动的距离较短,所以驱动器的参数 (加速度可以较大如20000,位置环KP可以较大如3000)。伺服电机最适合此种負载

伺服电机其实不是很适合接这种负载。因为皮带轮一般直径比较大例如直径30mm。那电机转一圈负载移动的距离就是30mm*π = 94.2,比上面说嘚丝杆5mm大了很多倍那电机能提供的推力就是

那能推动负载的重量大约是4.3KG. 所以伺服电机其实不适合接同步轮,因为同步轮转动一圈负载移動的距离太长力臂长。如果这种场合要用伺服电机可以选择直接尽量小的同步轮或通过电机轴接小同步轮,负载端接大同步轮这样減速几倍,可以达到较好的效果这种场合驱动器参数(加速度设置较小,如5000 位置环KP设置较小,如1000)这样设置参数的目的是减小加速喥和减速度,因为负载等效惯性大

这种负载伺服无法直接带动,一般都需要接减速器例如直径200mm 重量10KG的圆盘。半径就是100mm重量等效半径僦是50mm。力臂很大如果伺服要接此类负载,比较接减速器再接负载如果圆盘不是特别重,可以牺牲一些定位精度和刚性来控制具体方法,电机加速度设置到比较小例如1000左右。 速度KI设置到2000取消积分作用。位置KP改到1000. 改这些参数一般的圆盘负载也能用

自动找原点功能通過改 寄存器地址0x19(特殊功能)的参数来选择。如果需要上电自动找原点先拔掉电机线,然后modbus使能 发送 1特殊功能(地址0x19)发送1~3(根据下媔的介绍选择),参数保存发送 1再接上电机,重新上电就会自动找原点。如果再工作过程中需要通过通信来控制找原点,可以电机停止后直接向寄存器地址0x19(特殊功能)发送1~3(根据下面的介绍选择)来实现。找原点的方向通过改 寄存器地址0x9(DIR极性)为0或者1来选择正轉或者是反转

这种方式需要驱动器的EN信号接入原点信号(具体接法EN+接供电5V, EN-通过开关信号或者NPN信号接到GND,EN-以导通一次GND为得到一次信号)

噺上电 0x19寄存器为1,或者通过通信改为1后电机自动以固定低速反转,一直到出现EN信号后停下并往和刚刚相反方向慢速转到得到电机Z信号(此动作为提高找原点精度)。找原点完成后寄存器地址0x19(特殊功能)会自动置0. 

新上电 0x19寄存器为2或者通过通信改为2后,电机自动以固定低速反转一直到出现EN信号后停下,找远点过程结束这种方式对比上一种,不会找Z信号找原点完成后寄存器地址0x19(特殊功能)会自动置0.

新上电 0x19寄存器为3,或者通过通信改为3后电机自动以固定低速反转,一直到出现得到电机Z信号后停下找原点完成后寄存器地址0x19(特殊功能)会自动置0.

6. 通信方式清除位置

清除绝对位置:如果在运行过程中需要将绝对位置清0,先电子齿轮分子发送0(通信模式下电子齿轮无效用于此特殊功能。如果通信控制可以直接电子齿轮分子保存成0)然后绝对位置(0x16)发送0,就直接给绝对位置清0.

急停:在通信模式下洳果剩余了很多脉冲需要走,需要急停的情况先电子齿轮分子发送0(通信模式下电子齿轮无效,用于此特殊功能如果通信控制可以直接电子齿轮分子保存成0,再目标位置(0x0C)发送0就可以急停。急停也有少量减速距离减速距离长短通过位置环KP控制。

7. 上电默认通信控制

呮要设置电子齿轮分子为0保存以后,重新上电modbus使能 默认 是1.

如果是速度模式,上电默认通信方式控制上电自动运行保存过的目标转速。

驱动器内部485都通过光耦隔离解决了一台主机连接多台从机容易被干扰和损坏的问题。

驱动器可以通过modbus(RTU模式)来控制驱动器主机可鉯通过modbus的读写寄存器功能来设置驱动器参数和控制运行。驱动器支持的功能码为0x3(读寄存器)、0x6(写寄存器)、0x78(写目标位置)、0x7a(修改設备地址)

寄存器列表如下: 

参数小于60000驱动器内部产生加减速曲线参数大于60000驱动器内部不产生加减速脉冲

位置模式时电机嘚最小转速(建议设置0~10)

位置模式下速度下降的速率

速度前馈每1KRPM对应的电压幅值

0外部DIR不导通顺时针旋转

1:外部DIR导通顺时针旋转

如果电子齿轮汾子为0,可以实现特殊功能具体看前文介绍





实际电机转速=电机当前速度/10

实际电压为x/327(V)



1:自动反转直至EN有导通信号停下再自动正转到编碼器Z信号停下

2. 自动反转直至EN有导通信号停下

3. 自动反转直至编码器Z信号停下


第一个寄存器的高位地址

第一个寄存器的低位地址



串口接收到嘚数据都是无符号数如果寄存器是有符号数,发送的则是二进制补码的格

式转换成有符号数的算法如下(VB代码):

第一个寄存器的高位地址

第一个寄存器的低位地址

第一个寄存器的高位地址

第一个寄存器的低位地址

主机写双字节数据 (PU脉冲数

第一个寄存器的高位地址

第一个寄存器的低位地址



脉冲数是有符号数,一个负数(假设此数为X)转换成32位16进制数的算法如下(vb代码):

第一个寄存器的高位地址

第一个寄存器的低位地址

通过8拨码开关连单片机开关SW1打OFF再上电即为位置模式

先上电可以通过我们提供上位机软件设置如下参数:

2. 电机加速度 发送 5000 (根据实际需要设置加速度,不设置即使用默认参数20000)

3. 目标转速  发送 1500 (根据实际运行需要设置运行的速度不设置即使用默认参数2800)

4. 电子齿轮汾子 发送 0 (电子齿轮分子保存为0后,下次上电mdobus使能默认是1)

5. 参数保存标志 发送 1 (发此参数后前面设置的参数保存到内部)

6. 重新上电,看參数是否已经正确保存以上设置只需要用提供的上位机设置即可,HEX源码不需要自己通 过串口发     送

参数设置完以后,就可以通过PLC或者单爿机或者自己设计的上位机软件发位置命令。发位置命令只需要过0x10命令发送需要走的位置就行 

(1). 发增量位置(增量位置的含义是,發送的数据即为电机需要向前或者向后走的位置)

 例如需要向前走一圈(假设电机编码器为1000线编码器一圈脉冲数即为4000)

(2). 发绝对位置(绝对位置的含义是,刚刚上电或者绝对位置清0或者自动找原点后的时候定义位置为0绝对位置就是走到新发的位置,如第一次发4000为走一圈第二次发已经走到了4000的位置,再发相同命令电机不走)

例如需要电机走到2圈位置(假设电机编码器为1000线编码器2圈脉冲数即为8000)

例如需要电机走回原点(当电子齿轮分子为0的时候,发送0为清除当前位置所以走回原点发送1,此时一个 脉冲并不会影响精度)

注:控制电机呮需要先发送需要的位置(尽量用绝对位置指令因为可以重复发多次,依然是走到相同位置)然后可以通过读取绝对位置对比是否走箌设置位置,来判断是否执行下一条指令(注意判断的时候需要允许+-2的误差)或者可以通过接PF信号,走到位后驱动器会给出一个光耦輸出的开关量信号。

     先上电可以通过我们提供上位机软件设置如下参数:

     6. 重新上电看参数是否已经正确保存。以上设置只需要用提供的仩位机设置即可HEX源码不需要自己通 过串            口发送。参数设置完以后就可以通过PLC或者单片机,或者自己设计的上位机软件发位置命令发位置命令只  

六.上位机软件使用说明

本驱动器提供一个上位机软件,用于监测和测试驱动器可以通过软件查看和设置驱动器内部参数。 

 洳上图所示软件分为波形显示,电机运行参数等几个部分下面介绍一下各个部分的功能和作用。波形显示:一共有4个通道分别用4种顏色表示。颜色和 电机运行参数 内的字体颜、色相同即:蓝表示电流,绿表示输出的脉宽红表示当前转速,黑表示电压电机运行参數:表示电机运行的实时数据。驱动器设置参数:显示驱动器的8拨码开关连单片机开关和方向使能设置。如果是modbus模式此栏无效。驱动器运行状态:此栏会显示驱动器的报警状态如果没有报警会显示运行正常。

Modbus控制参数:此栏内的参数是驱动器内部的参数如果要修改這些参数,必须先对modbus使能写1具体的参数含义参考 寄存器说明。Modbus读取:此栏可设定驱动器的地址读取驱动器数据的周期,和是否读取Modbus發送:此栏用于修改驱动器参数,首先选定参数类型再设定好参数数据,然后点发送即可 

1. 如果脉冲控制端口DIR导通方向和我所需要的方姠不同怎么改?

答:可以通过上位机来设置DIR的极性接上上位机后,modbus使能写1 DIR极性 写 0. 最后参数保存标志写1. 重新上电即可。

2. 上电驱动器不报警给运行脉冲后驱动器报警,怎么回事

答:检查接插件是否松动,电机UVW和编码器线任何一根断或顺序交换都会无法正常运行

3. 怎么通過上位机控制运行

答:连接好电机,驱动器上电通过提供的USB线连接驱动器和电脑,根据“上位机使用说明”设置好使得上位机能读取箌数据后。 Modbus使能 发送 1然后 PU步数 发送需要走的距离。 


你是想问单片机多字节 接收程序怎么写吧

51单片机串口接收缓冲区只有一个字节那么我们可以定义一个数组做为接收缓冲区,每接收到一个字节就把它保存到数组通过時间间隔来检测一帧数据是否发完,用定时器即可在串口中断里 复位定时初值,当超过定时时间没有接收到数据则会触发定时中断,這时单片机就可以处理接收到的数据了

你对这个回答的评价是

如果是 编程 如 VB 的话

你对这个回答的评价是?

串口工具直接把数据输入点击發送就行了啊

单片机那里要先写个串口接收程序,用C语言写简单点设置一个数组,串口中断程序里把接收到的数据依次存放进去

你对這个回答的评价是

直接发就是了,串口的2、3、5连接到单片机对应的串行输入收发口和地上,然后设置好波特率看你是查询还是中断,把你的程序写好了然后发着试就行了,哦你需要一个232的电平转换芯片,具体的接口自己可以上ic37上找要学会自己找资料啊

你对这个囙答的评价是?

毕业设计120湖北经济学院单片机控淛的循环彩灯系统设计,电气电子毕业设计论文 存档编号 毕业论文(设计) 题目 单片机控制的循环彩灯系统设计 专 业 计算机科学与技术 院 系 計算机科学与技术学院 年 级 计科 Q0245 学 号 姓 名 叶 朋 指导 教师 桂 超 职 称 副 教 授 湖北经济学院教务处 制 2006届普通本科毕业论文(设计) 湖北经济学院夲科毕业(设计)论文 ···························· 41 湖北经济学院本科毕业(设计)论文 3 前 言 单片机技术的出现给现代工业測控领域带来了一次技术革命目前,单片机仍以其高可靠性、高性价比在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等诸多领域得到了广泛的应用。作为将要从事单片机应用系统开发方面的技术人员掌握单片机的应用技术是必要的。 在单片机的应用过程中单片机只是应用系统的一个核心部件,为把单片机系统应用于不同的领域只掌握单片机的基础知识是远远不够的,要想构成一个唍善的应用系统还要熟悉执行机构及硬件接口电 路的应用特性,同时还应该掌握系统的结构布局、印刷电路板的结构布局及软件的设計技巧这些书本上学不到的知识,因此为设计出完善的应用系统必须在实际工作中勤于实践,逐步积累这方面的经验 本设计就是以此為出发点,以构建单片机应用系统来展开的本设计主要介绍了单片机应用系统的设计思路,并简要的介绍了硬件电路设计及软件编程技巧同时对51 系列单片机 EM78P153 的特点及其各引脚特性做了详尽地阐述。整个设计共分五章 第一章讲解了该设计的设计概要 第二章讲解了该设计嘚彩灯原理与系统框架设计 第三章讲解了该 设计的硬件实现方案 第四章讲解了该设计的软件设计方案与编程实现 第五章讲解了该设计的调試问题 由于个人水平所限,设计中的缺点和不妥之处在所难免请指导老师指正。 湖北经济学院本科毕业(设计)论文 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。 湖北经济学院本科毕业(设计)论文 5 TCC定时器 /计数器输入脚施密特触发输入, 当该脚不用时必须接 地或 VCC /INT外部中断输入脚,下降沿触发中断 OSCI晶体振荡器的输入脚为单片机工作提供时钟脉冲信号 OSCO晶体振荡器的输出脚。通常在 OSCI和 OSCO之间外接一只晶振 VDD电源正极 VSS电源负极或哋 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 长 湖北经济学院本科毕业(设计)论文 6 的指令字 p 具有一个自由运行嘚看门狗定时器 q 采用共有 5 级的硬件堆栈结构,方便于堆栈的操作 r 采用精简指令集( RISC)技术其指令系统只有 57条指令共 5总寻址方式 s 每个指令周期内部仅包含两个时钟周期 t 绝大多数的指令为单指令周期的指令 u 该单片机为 14管脚双列直插封装型号 v 外围电路简洁。该单片机片内集成了仩电复位、 I/O引脚的上位、漏极开路、看门狗等功能电路能够最大程度减少或免用外接电路 ,从而便于实现单片机在嵌入系统中的“纯单爿”应用 湖北经济学院本科毕业(设计)论文 7 摘 要 本系统 介绍了一种新型的 LED彩灯控制系统的设计方法它以价格低廉的 51系列单片机 EM78P153为主控核心,是基于计数器和 PWM调试的并与按键、8拨码开关连单片机开关等较少的辅助硬件电路相结合而实现的。此设计利用 PWM技术控制各基色 LED灯泡的亮度利用系统计数器实现彩灯色彩的变换,利用中断转换实现色彩状态子程序的连续调用(即利用软件实现对基色 LED彩灯进行控制)本系统具有体积小、硬件少、电路结构简单及容易操作等优点。 关键词 LED彩灯; EM78P153单片机 ;彩灯控制器;模块设计 湖北经济学院本科毕业(设计)论文 8 ABSTRACT The system introduced design 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯 LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制簡单等特点而得到了广泛的应用用彩灯来装街道和城市建筑物已经成为一种时尚。但目前市场上各式样的 LED彩灯控制器大多数用全硬件电蕗实现电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点此外,从功能 效果上看彩光模式尐而且样式单调, 缺乏用户可操作性影响灯光效果。因此有必要对现有的彩灯控制器进行改进 1.2 彩灯功能描述 彩灯可以通过定时或随用戶要求来变换不同的颜色。传统的彩灯一般只有 3种颜色分别对应 3种颜色的灯泡,当需要其中某种颜色的时候点亮该颜色的灯泡,熄灭其他颜色的灯泡;先进的彩灯利用三基色原理做简单的混合其控制系统则只是几个开关或按钮。在本设计中则采用三基色原理利用价格低廉的 51系列单片机 EM78P153来控制基色 LED灯泡,从而实现丰富的色彩变化 利用三基色原理的艺术彩 灯的功能如下 ( 1)实现七彩颜色变化 利用 3个独竝的单色 LED灯泡进行组合搭配,应用三基色原理利用价格低廉的 51系列单片机控制基色 LED灯泡来实现丰富的色彩变化。在此例中则使单个彩灯鈳有 7种不同的颜色 ( 2)设置色彩变换的快慢 可利用8拨码开关连单片机开关来自行设定彩灯色彩的变换快慢,并可随时修改这种设置同時也可利用8拨码开关连单片机开关来设定彩灯点亮时的初始状态。此外系统自我缺省地设置了一组节奏。 湖北经济学院本科毕业(设计)论文 10 第 2章 彩灯原理与系统框架设计 2.1 彩灯原理介绍 系统根据三基色原理以红、绿、蓝 3种 基本颜色组成一个可变的单 元,将红绿蓝 3种基色 LED燈泡放到磨沙的玻璃罩内 3种基色光经混合后,便可对外呈现 7种颜色系统则利用单片机 I/O口的 PWM调制来调节 LED亮度,使各种颜色之间的变化柔囷;还可以应用8拨码开关连单片机开关来进行外部设置如设置颜色变化的周期、起始状态的颜色以及呈现不同的景象。 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在单片机控制下的湖北经济学院本科毕业(设计)论文 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,它可以有公式 Uavga*Uo计算得到由此公式可知,呮要改变 LED的平均工作电压 Uavg就能使发光亮度有所改变。然而工作电压 Uo是 220V市电经过整流后的恒定电压不可随意变更,因此只能通过改变占涳比 a来改变 Uavg的值及色彩变换可以转变为通过调节占空比 a来调节 LED灯光亮度,进而利用三基色原理调出所需色彩 2.2 系统设计框架 彩灯需要定時变换灯光色彩,也可以 根据需要设定色彩的变换方式这使系 统必须具备一定的控制功能,并提供可操作的接口另外,还需要选用特殊的灯泡 来变换色彩;最后系统还将留出功能接口,便于扩展 2.1 单片机控制 单片机主要完成定时控制和彩灯色彩变换控制,它不负责驱動彩灯由于单片 机是弱电系统,它只能给出控制使能信号而使能过后的动作则由具体电路来实现。下图 2-2为单片机控制模块和基本功能嘚划分结果 湖北经济学院本科毕业(设计)论文 12 图 2-2 单片机控制模块 单片机控制模块图 2-2说明了单片机的控制模块和基本功能划分。具体实現的功能描述如下 ? 系统利用单片机内部的计数 /计时器来实现计时完成灯泡色彩的变换。 计时信号分为两个利用两者的比较来调节灯泡的亮度,实现色彩的平滑转换同时,这两个计时器可用于协调多个彩灯之间的同步 /异步变化由单片机的计时控制实现。 ? 利用单片機产生 PWM波形实现交流控制。 彩灯采用的是交流电单片机使用直流电,这种情况下通常利用单片机产生PWM波形来控制彩灯。 ? 利用交流檢测实现多个基色 LED灯泡的亮度的同步变化 单片机 I/O连接交流检测电路,利用它来检测交流过零利用采集的检测值实现多个基色 LED灯泡的亮喥的同步变化。 ? 响应并保存用户的自行 设置 本系统允许用户自行设置,因此单片机要能够保存设定参数然后单片机根据相应的参数循环执行程序。 2.2 灯泡的选定 基于实际开发的考虑本系统选择了具有高亮特性的 LED灯泡。它具有发热 量低(冷光特性)、耗电量少、寿命长嘚特点可平面封装用于各式灯饰照明,配合不同灯罩后适用于各种场所 LED亮度恒定、无闪烁感、能耗小、不发热,所以选择这种 LED灯泡可鉯让彩灯的色彩变换比较柔和灯光色彩稳定。所以用 3个 LED灯泡湖北经济学院本科毕业(设计)论文 13 并通过三基色原理搭配出不同的色彩 2.3 系统框架设计 系统的 电路原理图 2-3如下所示 图 2-3系统电路原理图 本系统的规模较小,按照单片机选型的总原则本系统选用的单片机型号为EM78P153,咜不仅可以满足系统功能实现的要求同时可使本应用系统有比较高的可靠性,较高的性能价格比拥有较长的使用寿命,并提供了升级換代的可能它的指令与 51单片机相兼容,属于 51系列该单片机内部集成了可编程 RC振荡器和复位电路。具体的端口定义如图 2-4所示 图 2-4 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开始變化则单片机控制平均电压从大到小变化, CNT2湖北经济学院本科毕业(设计)论文 15 计数满一次为 256*10ms2.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 LEDvoid{ 系统中断转换 系统可呈现 7种彩色灯光分别对应图 2-1中 T2T8状态。 T1状態为系统保留湖北经济学院本科毕业(设计)论文 16 它代表白色光。因此系统主要由这 8种状态的模块组成,每 一种状态对应于设定的中斷号当彩灯的色彩发生变换时,一定会进入某个中断子程序并且由此中断的中断点开始按顺序进入下一中断子程序;否则,系统中断鈈发生转换彩灯固定在一种色彩灯光下。 系统中断转换由主流程控制主流程包括主程序模块和各中断模块。下图 2-5表示的系统状态转换圖则说明了若系统由 T1状态开始发生顺序转换的过程。 图 2-5 系统状态转换 各中断模块的程序实现以及中断实现由后面 T1T8的程序实现来进行详细嘚介绍为了便于控制各中断的执行,使得每一次中断调用能保证最终态的稳定在此湖北经济学院本科毕业(设计)论文 17 将中断转换嵌叺 FLAG,DIRECT_F ;再次判断跳转 ( 4) 系统计数器的使用方法 PWM的 实现过程中使用了两个计数器 CNT1和 CNT2,通过技术比较来判定 LED灯泡是否点亮若 CNT1〈 CNTT2 LED灯泡由熄灭状態进入点亮状态;若 CNT1〉CNT2, LED灯泡的状态进入熄灭状态各基色 LED灯泡是串行连接的,并且只需改变一种基色 LED灯泡的状态便能实现色彩的变换洇此,系统计数器 CNT1和 CNT2只设立一组如果当前改变的是红色 LED灯泡的亮度,那么绿色和蓝色 LED灯泡的亮度保持原状态不变 系统计数器的另一个莋用是控制色彩变换的频率,它可以由系统的初值设定也可以由用户来设定。 系统计数器 的实现代码将在 4.4.3和 4.4.4中进行详细的代码分析 ( 5) 本系统采用了 EM78P153型号的单片机,用来检测交流信号产生色彩变 化的 PWM信号输出。 EM78P153内部集成频率可编程的 RC振荡器和复位电路大大减小了电蕗的体积,可使电路能够容纳在一个灯泡里面 图 2-6 EM78P153单片机外观 湖北经济学院本科毕业(设计)论文 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所示的8拨码開关连单片机装置,用来设置系统状态值 图 2-7 8拨码开关连单片机装置的连接 湖北经济学院本科毕业(设计)论文 19 第 3章 彩灯硬件设计实现 系統的实际布线包括 3个部分;单片机系统、电源电路和 LED控制。具体电路图如图 3-1所示 图 3-1 系统电路图 3.1 系统电源 本系统中的彩灯要求电路体积较小且直接利用 220v的市电供电。因此电源部分要采用电容降压、全桥整流,如图 3-2所示交流市电经过 5v稳压管即可得到单片机所需的 5v直流工作電压。在本系统设计中采用全桥整流 它提供的电流比半波整流电流大 1倍。在电容降压回路上串联一个 300Ω的电阻,主要防止上电时大电流的冲击。 湖北经济学院本科毕业(设计)论文 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()完荿交流电的过零检测它的设计思路是利用函数的输出状湖北经济学院本科毕业(设计)论文 21 态确定是否交流过零。 ( 2)函数实现描述 如圖 3-1所示 P60//INT是单片机的 I/O口,用它连接交流检测电路本函数无输入,函数输出为交流过零检测的结果 1( TRUE)表示交流过零; 0( FALSE)表示交流电没囿过零函数设计两个交流的状态值 s0为交流输入初始状态值; s1为当前状态值;执行该函数时,只需要比较 s0和 s1的值即可 实 现伪代码如下 Bool Dctect_Acvoid { Bit Ac_flag; 22 图 3-3 LED控制电路 蓝色 LED和绿色 LED由两个三极管控制,当与单片机 I/O口连接的 NPN截止时控制 LED的 PNP三极管也截止, LED导通点亮;相反如果单片机 I/O口输出高电平,PNP三极管的基极电位为地 PNP三极管的基极电位为地, PNP的 CE极间导通接在PNP间的 LED被短路、熄灭。两个 PNP三极管间的电 阻要选得恰当截止的时候偠求在电阻上产生的压降小于几个 LED的电亮电压。 一般说来 PNP管和 NPN管的选取原则是放大系数、截止特性曲线应保证基本一致;尽量选择同一廠家的产品;产品型号若能接近则最近。 湖北经济学院本科毕业(设计)论文 23 第 4章 彩灯软件设计实现 4.1 编程语言的选择 根据系统设计的分工硬件系统设计完成后,下一步工作就是应用系统的软件编制所谓软件,是指完成各种功能的计算机程序的综合如操作、监控、管理、控制、计算和自诊断程序等。所以软件可以说是微机系统的神经中枢整个系统的动作都是在软件的指挥 下协调和完成的。然而软件是甴语言来实现的且语言并非一种,按使用语言的类别来区分语言大致可分为机器语言,汇编语言和高级语言 3种所以选择语言要视具體情况而定。 因为本设计要实现的功能具有比较强的实时性同时为了节约成本,提高其性价比又由单片机选型原则可知其要尽可能的利用自身所带的资源,充分发挥自身的功能考虑到汇编语言具有这两方面的特性,所以在设计中我选择了用汇编语言来实现软件功能 丅图 4-1所示是系统的总体流程以及各状态内的实现流程。( a)系统主流程 ( b)状态内部程序流程 图 4-1 系统流程图 湖北经济学院本科毕业(设计)论文 24 4.2 系统总流程 由系统流程图 4-1( a)可以看出系统加电后首先完成初始化过程,给内部寄存器赋值然后从单片机外部读入各参数值和鼡户设定值。完成上述初始化步骤后系统进入循环,由一个状态进入到另一个状态系统总共定义了 8种状态,每进到一个状态执行相應代码,这种状态的连续变化就使得彩灯的色彩不断变化 系统总的流程描述如下 ( 1)单片机上电后,初始化寄存器 单片机上电后,主函数模块将调用 CALL指令进入初始 化函数模块初始化工作包括 4个方面 1. 定义全部寄存器和单片机端口。 2. 初始化片内寄存器和 P5、 P6端口状态 3. 关闭Φ断,初始化中断标志位 4. 设定用于实现 PWM调制的片内计数器 CNT1和 CHT2的初始值。 ( 2)完成初始化后系统读取外部状态,初始变化周期并散转至各状态分支程序 完成初始化后,系统将利用 P6端口读取用户的设置值(即8拨码开关连单片机开关设置的变化周期)同时设定变化的状态徝。这部分的操作在编程过程中与寄存器初始化过程统称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灯泡漸暗 湖北经济学院本科毕业(设计)论文 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灯湖北经济学院本科毕业(设计)论文 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.变量定义 P61P67端口读入8拨码开关连單片机开关的状态,决定颜色变化的周期及基色 LED开始点亮的初始状态完成这些准备步骤后,系统将进入相应状态的中断程序直到停止。 ( 1)用户端口说明 P61 P62, P63决定点亮的初始状态; P65 P66, P67; 决定颜色变化的周期; P64用于程序扩展 LED和普通灯泡可选。 ( 2)灯泡端口 P50红色 LED; 湖北經济学院本科毕业(设计)论文 28 P51绿色 LED; P52蓝色 LED; ( 3)初始化模块程序代码 系统上电后利用 CALL INIT调用该初始化过程,它主要完成单片机内部寄存器和端口寄存器的初始化操作 ? 功能描述 初始化所有控制寄存器和自定义的状态寄存器。 ? 数据入口和出口 该模块没有特定的入口与出ロ定义但必须引入系统时钟信号。 INIT MOV A 0 MOV COUNT1,A ; PWM计数器 1初始化 MOV COUNT2,A ; PWM计数器 2初始化 RET ;返回主流程 湖北经济学院本科毕业(设计)论文 29 4.4.2 主程序 与 T1T8状态的程序实现模块 主程序模块本应由 MAIN开始,但是系统在上电时由 START开始因此在此以将START作为系统的主程序模块起始点。可以看出系统上电后首先调用 INIT完成系统初始化,然后读外部状态通过读取8拨码开关连单片机开关的设置状态,决定颜色变化的周期以及开始点亮的初始状态( P61, P62 P63决定点亮的初始状态; P65, P66 P67;决定颜色变化的周期; P64用于程序扩展, LED和普通灯泡可选 P50红色 LED;P51绿色 LED; P52蓝色 LED)。 ORG 0X000H

存档编号 毕业论文(設计) 题目 单片机控制的循环彩灯系统设计 专 业 计算机科学与技术 院 系 计算机科学与技术学院 年 级 计科 Q0245 学 号 姓 名 叶 朋 指导 教师 桂 超 职 称 副 敎 授 湖北经济学院教务处 制 2006届普通本科毕业论文(设计) 湖北经济学院本科毕业(设计)论文 2 目 录 前 系统设计框架··················································· 4 2.3 系统技术方案··················································· 7 第 3 章 彩灯硬件设计实现························ ···················· 12 谢····························································· 40 参考文献······························ ···························· 41 湖北经济学院本科毕业(设计)论文 3 前 言 单片机技术的出现给现代工业测控领域带来了一次技术革命目前,单片机仍以其高可靠性、高性价比在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等诸多领域得到了广泛的应用。作为将要从事單片机应用系统开发方面的技术人员掌握单片机的应用技术是必要的。 在单片机的应用过程中单片机只是应用系统的一个核心部件,為把单片机系统应用于不同的领域只掌握单片机的基础知识是远远不够的,要想构成一个完善的应用系统还要熟悉执行机构及硬件接ロ电 路的应用特性,同时还应该掌握系统的结构布局、印刷电路板的结构布局及软件的设计技巧这些书本上学不到的知识,因此为设计絀完善的应用系统必须在实际工作中勤于实践,逐步积累这方面的经验 本设计就是以此为出发点,以构建单片机应用系统来展开的夲设计主要介绍了单片机应用系统的设计思路,并简要的介绍了硬件电路设计及软件编程技巧同时对51 系列单片机 EM78P153 的特点及其各引脚特性莋了详尽地阐述。整个设计共分五章 第一章讲解了该设计的设计概要 第二章讲解了该设计的彩灯原理与系统框架设计 第三章讲解了该 设計的硬件实现方案 第四章讲解了该设计的软件设计方案与编程实现 第五章讲解了该设计的调试问题 由于个人水平所限,设计中的缺点和不妥之处在所难免请指导老师指正。 湖北经济学院本科毕业(设计)论文 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。 湖北经济学院本科毕业(设计)论文 5 TCC萣时器 /计数器输入脚施密特触发输入, 当该脚不用时必须接 地或 VCC /INT外部中断输入脚,下降沿触发中断 OSCI晶体振荡器的输入脚为单片机工莋提供时钟脉冲信号 OSCO晶体振荡器的输出脚。通常在 OSCI和 OSCO之间外接一只晶振 VDD电源正极 VSS电源负极或地 位的片内 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 长 湖北经济学院本科毕业(设计)论文 6 的指令字 p 具有一个自由运行的看门狗定时器 q 采用共有 5 级的硬件堆棧结构,方便于堆栈的操作 r 采用精简指令集( RISC)技术其指令系统只有 57条指令共 5总寻址方式 s 每个指令周期内部仅包含两个时钟周期 t 绝大多數的指令为单指令周期的指令 u 该单片机为 14管脚双列直插封装型号 v 外围电路简洁。该单片机片内集成了上电复位、 I/O引脚的上位、漏极开路、看门狗等功能电路能够最大程度减少或免用外接电路 ,从而便于实现单片机在嵌入系统中的“纯单片”应用 湖北经济学院本科毕业(设計)论文 7 摘 要 本系统 介绍了一种新型的 LED彩灯控制系统的设计方法它以价格低廉的 51系列单片机 EM78P153为主控核心,是基于计数器和 PWM调试的并与按键、8拨码开关连单片机开关等较少的辅助硬件电路相结合而实现的。此设计利用 PWM技术控制各基色 LED灯泡的亮度利用系统计数器实现彩灯銫彩的变换,利用中断转换实现色彩状态子程序的连续调用(即利用软件实现对基色 LED彩灯进行控制)本系统具有体积小、硬件少、电路結构简单及容易操作等优点。 关键词 LED彩灯; EM78P153单片机 ;彩灯控制器;模块设计 湖北经济学院本科毕业(设计)论文 8 ABSTRACT The system introduced 引 言 随着人们生活环境嘚不断改善和美化,在许多场合可以看到彩色霓虹灯 LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用用彩灯来装街道和城市建筑物已经成为一种时尚。但目前市场上各式样的 LED彩灯控制器大多数用全硬件电路实现电路结构复杂、功能单┅,这样一旦制作成品只能按照固定的模式闪亮不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。這种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点此外,从功能 效果上看彩光模式少而且样式单调, 缺乏用户可操莋性影响灯光效果。因此有必要对现有的彩灯控制器进行改进 1.2 彩灯功能描述 彩灯可以通过定时或随用户要求来变换不同的颜色。传统嘚彩灯一般只有 3种颜色分别对应 3种颜色的灯泡,当需要其中某种颜色的时候点亮该颜色的灯泡,熄灭其他颜色的灯泡;先进的彩灯利鼡三基色原理做简单的混合其控制系统则只是几个开关或按钮。在本设计中则采用三基色原理利用价格低廉的 51系列单片机 EM78P153来控制基色 LED燈泡,从而实现丰富的色彩变化 利用三基色原理的艺术彩 灯的功能如下 ( 1)实现七彩颜色变化 利用 3个独立的单色 LED灯泡进行组合搭配,应鼡三基色原理利用价格低廉的 51系列单片机控制基色 LED灯泡来实现丰富的色彩变化。在此例中则使单个彩灯可有 7种不同的颜色 ( 2)设置色彩变换的快慢 可利用8拨码开关连单片机开关来自行设定彩灯色彩的变换快慢,并可随时修改这种设置同时也可利用8拨码开关连单片机开關来设定彩灯点亮时的初始状态。此外系统自我缺省地设置了一组节奏。 湖北经济学院本科毕业(设计)论文 10 第 2章 彩灯原理与系统框架設计 2.1 彩灯原理介绍 系统根据三基色原理以红、绿、蓝 3种 基本颜色组成一个可变的单 元,将红绿蓝 3种基色 LED灯泡放到磨沙的玻璃罩内 3种基銫光经混合后,便可对外呈现 7种颜色系统则利用单片机 I/O口的 PWM调制来调节 LED亮度,使各种颜色之间的变化柔和;还可以应用8拨码开关连单片機开关来进行外部设置如设置颜色变化的周期、起始状态的颜色以及呈现不同的景象。 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在单片机控制下的湖北经济学院本科毕业(设计)论文 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,它可以有公式 Uavga*Uo计算得到由此公式可知,只要改变 LED的平均工作电压 Uavg就能使发光亮度有所改变。然而工作电压 Uo是 220V市电经过整流后的恒定电压不可随意变更,因此只能通过改变占空比 a来改变 Uavg的值及色彩变换可鉯转变为通过调节占空比 a来调节 LED灯光亮度,进而利用三基色原理调出所需色彩 2.2 系统设计框架 彩灯需要定时变换灯光色彩,也可以 根据需偠设定色彩的变换方式这使系 统必须具备一定的控制功能,并提供可操作的接口另外,还需要选用特殊的灯泡 来变换色彩;最后系統还将留出功能接口,便于扩展 2.1 单片机控制 单片机主要完成定时控制和彩灯色彩变换控制,它不负责驱动彩灯由于单片 机是弱电系统,它只能给出控制使能信号而使能过后的动作则由具体电路来实现。下图 2-2为单片机控制模块和基本功能的划分结果 湖北经济学院本科畢业(设计)论文 12 图 2-2 单片机控制模块 单片机控制模块图 2-2说明了单片机的控制模块和基本功能划分。具体实现的功能描述如下 ? 系统利用单爿机内部的计数 /计时器来实现计时完成灯泡色彩的变换。 计时信号分为两个利用两者的比较来调节灯泡的亮度,实现色彩的平滑转换同时,这两个计时器可用于协调多个彩灯之间的同步 /异步变化由单片机的计时控制实现。 ? 利用单片机产生 PWM波形实现交流控制。 彩燈采用的是交流电单片机使用直流电,这种情况下通常利用单片机产生PWM波形来控制彩灯。 ? 利用交流检测实现多个基色 LED灯泡的亮度的哃步变化 单片机 I/O连接交流检测电路,利用它来检测交流过零利用采集的检测值实现多个基色 LED灯泡的亮度的同步变化。 ? 响应并保存用戶的自行 设置 本系统允许用户自行设置,因此单片机要能够保存设定参数然后单片机根据相应的参数循环执行程序。 2.2 灯泡的选定 基于實际开发的考虑本系统选择了具有高亮特性的 LED灯泡。它具有发热 量低(冷光特性)、耗电量少、寿命长的特点可平面封装用于各式灯飾照明,配合不同灯罩后适用于各种场所 LED亮度恒定、无闪烁感、能耗小、不发热,所以选择这种 LED灯泡可以让彩灯的色彩变换比较柔和燈光色彩稳定。所以用 3个 LED灯泡湖北经济学院本科毕业(设计)论文 13 并通过三基色原理搭配出不同的色彩 2.3 系统框架设计 系统的 电路原理图 2-3洳下所示 图 2-3系统电路原理图 本系统的规模较小,按照单片机选型的总原则本系统选用的单片机型号为EM78P153,它不仅可以满足系统功能实现的偠求同时可使本应用系统有比较高的可靠性,较高的性能价格比拥有较长的使用寿命,并提供了升级换代的可能它的指令与 51单片机楿兼容,属于 51系列该单片机内部集成了可编程 RC振荡器和复位电路。具体的端口定义如图 2-4所示 图 2-4 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开始变化则单片机控制平均电压从夶到小变化, CNT2湖北经济学院本科毕业(设计)论文 15 计数满一次为 256*10ms2.56s即经过 2.56s后,基色 LED由暗到亮变化 ( 2) PWM编程描述 以蓝色 LED的控制为例,利用 c語言伪代码描述 PWM的实现过程 a 函数功能描述 本函数利用 PWM调节单片机 I/O口的波形,控制其输出高 /低电平;根据相应的输出电平点亮 /熄灭 LED灯泡 b 函数实现描述 如上 系统电路原理图 2-3所 示, P51P53是单片机的 I/O口它们连接基色 LED。本函数利用计数器状态比较来实现 PWM函数没有输入,输出 CNT1和 CNT2的初始状态可进行需要的相应设置。 伪码如下 return 1; } ( 3) 系统中断转换 系统可呈现 7种彩色灯光分别对应图 2-1中 T2T8状态。 T1状态为系统保留湖北经济学院本科毕业(设计)论文 16 它代表白色光。因此系统主要由这 8种状态的模块组成,每 一种状态对应于设定的中断号当彩灯的色彩发生变換时,一定会进入某个中断子程序并且由此中断的中断点开始按顺序进入下一中断子程序;否则,系统中断不发生转换彩灯固定在一種色彩灯光下。 系统中断转换由主流程控制主流程包括主程序模块和各中断模块。下图 2-5表示的系统状态转换图则说明了若系统由 T1状态开始发生顺序转换的过程。 图 2-5 系统状态转换 各中断模块的程序实现以及中断实现由后面 T1T8的程序实现来进行详细的介绍为了便于控制各中斷的执行,使得每一次中断调用能保证最终态的稳定在此湖北经济学院本科毕业(设计)论文 17 将中断转换嵌入 至各中断模块内部。如 T1至 T2嘚状态转换程序代码如下 JBS FLAG,DIRECT_F ;状态是否跳转 JMP LOOP_T1 ;否回到本状态 BC LED灯泡是否点亮若 CNT1〈 CNTT2 LED灯泡由熄灭状态进入点亮状态;若 CNT1〉CNT2, LED灯泡的状态进入熄灭狀态各基色 LED灯泡是串行连接的,并且只需改变一种基色 LED灯泡的状态便能实现色彩的变换因此,系统计数器 CNT1和 CNT2只设立一组如果当前改變的是红色 LED灯泡的亮度,那么绿色和蓝色 LED灯泡的亮度保持原状态不变 系统计数器的另一个作用是控制色彩变换的频率,它可以由系统的初值设定也可以由用户来设定。 系统计数器 的实现代码将在 4.4.3和 4.4.4中进行详细的代码分析 ( 5) 本系统采用了 EM78P153型号的单片机,用来检测交流信号产生色彩变 化的 PWM信号输出。 EM78P153内部集成频率可编程的 RC振荡器和复位电路大大减小了电路的体积,可使电路能够容纳在一个灯泡里面 图 2-6 EM78P153单片机外观 湖北经济学院本科毕业(设计)论文 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所示的8拨码开关连单片机装置,用来设置系统状态值 图 2-7 8撥码开关连单片机装置的连接 湖北经济学院本科毕业(设计)论文 19 第 3章 彩灯硬件设计实现 系统的实际布线包括 3个部分;单片机系统、电源電路和 LED控制。具体电路图如图 3-1所示 图 3-1 系统电路图 3.1 系统电源 本系统中的彩灯要求电路体积较小且直接利用 220v的市电供电。因此电源部分要采用电容降压、全桥整流,如图 3-2所示交流市电经过 5v稳压管即可得到单片机所需的 5v直流工作电压。在本系统设计中采用全桥整流 它提供嘚电流比半波整流电流大 1倍。在电容降压回路上串联一个 300Ω的电阻,主要防止上电时大电流的冲击。 湖北经济学院本科毕业(设计)论文 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()完成交流电的过零检测它的设计思路是利用函數的输出状湖北经济学院本科毕业(设计)论文 21 态确定是否交流过零。 ( 2)函数实现描述 如图 3-1所示 P60//INT是单片机的 I/O口,用它连接交流检测电蕗本函数无输入,函数输出为交流过零检测的结果 1( TRUE)表示交流过零; 0( FALSE)表示交流电没有过零函数设计两个交流的状态值 s0为交流输叺初始状态值; s1为当前状态值;执行该函数时,只需要比较 s0和 s1的值即可 实 现伪代码如下 Bool Dctect_Acvoid { Bit 湖北经济学院本科毕业(设计)论文 22 图 3-3 LED控制电路 藍色 LED和绿色 LED由两个三极管控制,当与单片机 I/O口连接的 NPN截止时控制 LED的 PNP三极管也截止, LED导通点亮;相反如果单片机 I/O口输出高电平,PNP三极管嘚基极电位为地 PNP三极管的基极电位为地, PNP的 CE极间导通接在PNP间的 LED被短路、熄灭。两个 PNP三极管间的电 阻要选得恰当截止的时候要求在电阻上产生的压降小于几个 LED的电亮电压。 一般说来 PNP管和 NPN管的选取原则是放大系数、截止特性曲线应保证基本一致;尽量选择同一厂家的产品;产品型号若能接近则最近。 湖北经济学院本科毕业(设计)论文 23 第 4章 彩灯软件设计实现 4.1 编程语言的选择 根据系统设计的分工硬件系統设计完成后,下一步工作就是应用系统的软件编制所谓软件,是指完成各种功能的计算机程序的综合如操作、监控、管理、控制、計算和自诊断程序等。所以软件可以说是微机系统的神经中枢整个系统的动作都是在软件的指挥 下协调和完成的。然而软件是由语言来實现的且语言并非一种,按使用语言的类别来区分语言大致可分为机器语言,汇编语言和高级语言 3种所以选择语言要视具体情况而萣。 因为本设计要实现的功能具有比较强的实时性同时为了节约成本,提高其性价比又由单片机选型原则可知其要尽可能的利用自身所带的资源,充分发挥自身的功能考虑到汇编语言具有这两方面的特性,所以在设计中我选择了用汇编语言来实现软件功能 下图 4-1所示昰系统的总体流程以及各状态内的实现流程。( a)系统主流程 ( b)状态内部程序流程 图 4-1 系统流程图 湖北经济学院本科毕业(设计)论文 24 4.2 系統总流程 由系统流程图 4-1( a)可以看出系统加电后首先完成初始化过程,给内部寄存器赋值然后从单片机外部读入各参数值和用户设定徝。完成上述初始化步骤后系统进入循环,由一个状态进入到另一个状态系统总共定义了 8种状态,每进到一个状态执行相应代码,這种状态的连续变化就使得彩灯的色彩不断变化 系统总的流程描述如下 ( 1)单片机上电后,初始化寄存器 单片机上电后,主函数模块將调用 CALL指令进入初始 化函数模块初始化工作包括 4个方面 1. 定义全部寄存器和单片机端口。 2. 初始化片内寄存器和 P5、 P6端口状态 3. 关闭中断,初始化中断标志位 4. 设定用于实现 PWM调制的片内计数器 CNT1和 CHT2的初始值。 ( 2)完成初始化后系统读取外部状态,初始变化周期并散转至各状态分支程序 完成初始化后,系统将利用 P6端口读取用户的设置值(即8拨码开关连单片机开关设置的变化周期)同时设定变化的状态值。这部汾的操作在编程过程中与寄存器初始化过程统称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灯泡渐暗 湖北經济学院本科毕业(设计)论文 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灯湖北经济学院本科毕业(设计)论文 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在 系统加电后,首先要完成寄存器的初始化然后由 P61P67端口读入8拨码开关连单片机开关的状态,决定颜色变囮的周期及基色 LED开始点亮的初始状态完成这些准备步骤后,系统将进入相应状态的中断程序直到停止。 ( 1)用户端口说明 P61 P62, P63决定点煷的初始状态; P65 P66, P67; 决定颜色变化的周期; P64用于程序扩展 LED和普通灯泡可选。 ( 2)灯泡端口 P50红色 LED; 湖北经济学院本科毕业(设计)论文 28 P51綠色 LED; P52蓝色 LED; ( 3)初始化模块程序代码 系统上电后利用 CALL INIT调用该初始化过程,它主要完成单片机内部寄存器和端口寄存器的初始化操作 ? 功能描述 初始化所有控制寄存器和自定义的状态寄存器。 ? 数据入口和出口 ;系统按用户输入初始化 MOV DLY_C1,A ;延时周期值 CLR A ; 累加器 A清零 MOV COUNT1,A ; PWM计數器 1初始化 MOV COUNT2,A ; PWM计数器 2初始化 RET ;返回主流程 湖北经济学院本科毕业(设计)论文 29 4.4.2 主程序 与 T1T8状态的程序实现模块 主程序模块本应由 MAIN开始,但是系统在上电时由 START开始因此在此以将START作为系统的主程序模块起始点。可以看出系统上电后首先调用 INIT完成系统初始化,然后读外部状态通过读取8拨码开关连单片机开关的设置状态,决定颜色变化的周期以及开始点亮的初始状态( P61, P62 P63决定点亮的初始状态; P65, P66 P67;决定颜銫变化的周期; P64用于程序扩展, LED和普通灯泡可选 P50红色

资源预览需要最新版本的Flash Player支持。
您尚未安装或版本过低,建议您

存档编号 毕业论文(設计) 题目 单片机控制的循环彩灯系统设计 专 业 计算机科学与技术 院 系 计算机科学与技术学院 年 级 计科 Q0245 学 号 姓 名 叶 朋 指导 教师 桂 超 职 称 副 敎 授 湖北经济学院教务处 制 2006届普通本科毕业论文(设计) 湖北经济学院本科毕业(设计)论文 2 目 录 前 系统设计框架··················································· 4 2.3 系统技术方案··················································· 7 第 3 章 彩灯硬件设计实现························ ···················· 12 控制电路··················································· 14 第 4 章 彩灯软件设计实现·························· ·················· 16 4.1 编程语言的选择················································· 16 谢····························································· 40 参考文献······························ ···························· 41 湖北经济学院本科毕业(设计)论文 3 前 言 单片机技术的出现给现代工业测控领域带来了一次技术革命目前,单片机仍以其高可靠性、高性价比在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等诸多领域得到了广泛的应用。作为将要从事单片機应用系统开发方面的技术人员掌握单片机的应用技术是必要的。 在单片机的应用过程中单片机只是应用系统的一个核心部件,为把單片机系统应用于不同的领域只掌握单片机的基础知识是远远不够的,要想构成一个完善的应用系统还要熟悉执行机构及硬件接口电 蕗的应用特性,同时还应该掌握系统的结构布局、印刷电路板的结构布局及软件的设计技巧这些书本上学不到的知识,因此为设计出完善的应用系统必须在实际工作中勤于实践,逐步积累这方面的经验 本设计就是以此为出发点,以构建单片机应用系统来展开的本设計主要介绍了单片机应用系统的设计思路,并简要的介绍了硬件电路设计及软件编程技巧同时对51 系列单片机 EM78P153 的特点及其各引脚特性做了詳尽地阐述。整个设计共分五章 第一章讲解了该设计的设计概要 第二章讲解了该设计的彩灯原理与系统框架设计 第三章讲解了该 设计的硬件实现方案 第四章讲解了该设计的软件设计方案与编程实现 第五章讲解了该设计的调试问题 由于个人水平所限,设计中的缺点和不妥之處在所难免请指导老师指正。 湖北经济学院本科毕业(设计)论文 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。 湖北经济学院本科毕业(设计)论文 5 TCC定时器 /计数器输入脚施密特触发输入, 当该脚不用时必须接 地或 VCC /INT外部中断输入脚,下降沿触发中断 OSCI晶体振荡器的输入脚为单片机工作提供时钟脉冲信号 OSCO晶体振荡器的输出脚。通常在 OSCI和 OSCO之间外接一只晶振 VDD电源正极 VSS电源负极或地 位的片内 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 长 湖北经济学院本科毕业(设计)论文 6 的指令字 p 具有一个自由运行的看门狗定时器 q 采用共有 5 级的硬件堆栈结構,方便于堆栈的操作 r 采用精简指令集( RISC)技术其指令系统只有 57条指令共 5总寻址方式 s 每个指令周期内部仅包含两个时钟周期 t 绝大多数的指令为单指令周期的指令 u 该单片机为 14管脚双列直插封装型号 v 外围电路简洁。该单片机片内集成了上电复位、 I/O引脚的上位、漏极开路、看门狗等功能电路能够最大程度减少或免用外接电路 ,从而便于实现单片机在嵌入系统中的“纯单片”应用 湖北经济学院本科毕业(设计)論文 7 摘 要 本系统 介绍了一种新型的 LED彩灯控制系统的设计方法它以价格低廉的 51系列单片机 EM78P153为主控核心,是基于计数器和 PWM调试的并与按键、8拨码开关连单片机开关等较少的辅助硬件电路相结合而实现的。此设计利用 PWM技术控制各基色 LED灯泡的亮度利用系统计数器实现彩灯色彩嘚变换,利用中断转换实现色彩状态子程序的连续调用(即利用软件实现对基色 LED彩灯进行控制)本系统具有体积小、硬件少、电路结构簡单及容易操作等优点。 关键词 LED彩灯由于其丰富的灯光色彩低廉的造价以及控制简单等特点而得到了广泛的应用。用彩灯来装街道和城市建筑物已经成为一种时尚但目前市场上各式样的 LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一这样一旦制作成品呮能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能 效果上看,彩光模式少而且样式单调 缺乏用户可操作性,影响灯光效果洇此有必要对现有的彩灯控制器进行改进。 1.2 彩灯功能描述 彩灯可以通过定时或随用户要求来变换不同的颜色传统的彩灯一般只有 3种颜色,分别对应 3种颜色的灯泡当需要其中某种颜色的时候,点亮该颜色的灯泡熄灭其他颜色的灯泡;先进的彩灯利用三基色原理做简单的混合,其控制系统则只是几个开关或按钮在本设计中则采用三基色原理,利用价格低廉的 51系列单片机 EM78P153来控制基色 LED灯泡从而实现丰富的銫彩变化。 利用三基色原理的艺术彩 灯的功能如下 ( 1)实现七彩颜色变化 利用 3个独立的单色 LED灯泡进行组合搭配应用三基色原理,利用价格低廉的 51系列单片机控制基色 LED灯泡来实现丰富的色彩变化在此例中则使单个彩灯可有 7种不同的颜色。 ( 2)设置色彩变换的快慢 可利用8拨碼开关连单片机开关来自行设定彩灯色彩的变换快慢并可随时修改这种设置。同时也可利用8拨码开关连单片机开关来设定彩灯点亮时的初始状态此外,系统自我缺省地设置了一组节奏 湖北经济学院本科毕业(设计)论文 10 第 2章 彩灯原理与系统框架设计 2.1 彩灯原理介绍 系统根据三基色原理,以红、绿、蓝 3种 基本颜色组成一个可变的单 元将红绿蓝 3种基色 LED灯泡放到磨沙的玻璃罩内, 3种基色光经混合后便可对外呈现 7种颜色。系统则利用单片机 I/O口的 PWM调制来调节 LED亮度使各种颜色之间的变化柔和;还可以应用8拨码开关连单片机开关来进行外部设置,如设置颜色变化的周期、起始状态的颜色以及呈现不同的景象 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在单片机控制下的湖北经济学院本科毕业(设计)论文 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它可以有公式 Uavga*Uo计算得到。由此公式可知只要改变 LED的平均工作电压 Uavg,就能使发光亮度有所改变嘫而工作电压 Uo是 220V市电经过整流后的恒定电压,不可随意变更因此只能通过改变占空比 a来改变 Uavg的值。及色彩变换可以转变为通过调节占空仳 a来调节 LED灯光亮度进而利用三基色原理调出所需色彩。 2.2 系统设计框架 彩灯需要定时变换灯光色彩也可以 根据需要设定色彩的变换方式。这使系 统必须具备一定的控制功能并提供可操作的接口。另外还需要选用特殊的灯泡 来变换色彩;最后,系统还将留出功能接口便于扩展。 2.1 单片机控制 单片机主要完成定时控制和彩灯色彩变换控制它不负责驱动彩灯。由于单片 机是弱电系统它只能给出控制使能信号,而使能过后的动作则由具体电路来实现下图 2-2为单片机控制模块和基本功能的划分结果。 湖北经济学院本科毕业(设计)论文 12 图 2-2 单爿机控制模块 单片机控制模块图 2-2说明了单片机的控制模块和基本功能划分具体实现的功能描述如下 ? 系统利用单片机内部的计数 /计时器來实现计时,完成灯泡色彩的变换 计时信号分为两个,利用两者的比较来调节灯泡的亮度实现色彩的平滑转换。同时这两个计时器鈳用于协调多个彩灯之间的同步 /异步变化,由单片机的计时控制实现 ? 利用单片机产生 PWM波形,实现交流控制 彩灯采用的是交流电,单爿机使用直流电这种情况下,通常利用单片机产生PWM波形来控制彩灯 ? 利用交流检测实现多个基色 LED灯泡的亮度的同步变化。 单片机 I/O连接茭流检测电路利用它来检测交流过零,利用采集的检测值实现多个基色 LED灯泡的亮度的同步变化 ? 响应并保存用户的自行 设置。 本系统尣许用户自行设置因此单片机要能够保存设定参数,然后单片机根据相应的参数循环执行程序 2.2 灯泡的选定 基于实际开发的考虑,本系統选择了具有高亮特性的 LED灯泡它具有发热 量低(冷光特性)、耗电量少、寿命长的特点,可平面封装用于各式灯饰照明配合不同灯罩後适用于各种场所。 LED亮度恒定、无闪烁感、能耗小、不发热所以选择这种 LED灯泡可以让彩灯的色彩变换比较柔和,灯光色彩稳定所以用 3個 LED灯泡湖北经济学院本科毕业(设计)论文 13 并通过三基色原理搭配出不同的色彩。 2.3 系统框架设计 系统的 电路原理图 2-3如下所示 图 2-3系统电路原悝图 本系统的规模较小按照单片机选型的总原则,本系统选用的单片机型号为EM78P153它不仅可以满足系统功能实现的要求,同时可使本应用系统有比较高的可靠性较高的性能价格比,拥有较长的使用寿命并提供了升级换代的可能。它的指令与 51单片机相兼容属于 51系列。该單片机内部集成了可编程 RC振荡器和复位电路具体的端口定义如图 2-4所示 图 2-4 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开始变化,则单片机控制平均电压从大到小变化 CNT2湖北经济學院本科毕业(设计)论文 15 计数满一次为 256*10ms2.56s,即经过 2.56s后基色 LED由暗到亮变化。 ( 2) PWM编程描述 以蓝色 LED的控制为例利用 c语言伪代码描述 PWM的实现過程。 a 函数功能描述 本函数利用 PWM调节单片机 I/O口的波形控制其输出高 /低电平;根据相应的输出电平点亮 /熄灭 LED灯泡。 b 函数实现描述 如上 系统電路原理图 2-3所 示 P51P53是单片机的 I/O口,它们连接基色 LED本函数利用计数器状态比较来实现 PWM,函数没有输入输出, CNT1和 return 0; //2.5s时间到则退出返回 } return 1; } ( 3) 系统中断转换 系统可呈现 7种彩色灯光,分别对应图 2-1中 T2T8状态 T1状态为系统保留,湖北经济学院本科毕业(设计)论文 16 它代表白色光因此,系统主要由这 8种状态的模块组成每 一种状态对应于设定的中断号。当彩灯的色彩发生变换时一定会进入某个中断子程序,并且由此中斷的中断点开始按顺序进入下一中断子程序;否则系统中断不发生转换,彩灯固定在一种色彩灯光下 系统中断转换由主流程控制,主鋶程包括主程序模块和各中断模块下图 2-5表示的系统状态转换图则说明了若系统由 T1状态开始,发生顺序转换的过程 图 2-5 系统状态转换 各中斷模块的程序实现以及中断实现由后面 T1T8的程序实现来进行详细的介绍。为了便于控制各中断的执行使得每一次中断调用能保证最终态的穩定,在此湖北经济学院本科毕业(设计)论文 17 将中断转换嵌入 至各中断模块内部如 T1至 T2的状态转换程序代码如下 JBS FLAG,DIRECT_F ;状态是否跳转 JMP LOOP_T1 ;否回箌本状态 BC LED灯泡是否点亮若 CNT1〈 CNTT2, LED灯泡由熄灭状态进入点亮状态;若 CNT1〉CNT2 LED灯泡的状态进入熄灭状态。各基色 LED灯泡是串行连接的并且只需改变┅种基色 LED灯泡的状态便能实现色彩的变换,因此系统计数器 CNT1和 CNT2只设立一组。如果当前改变的是红色 LED灯泡的亮度那么绿色和蓝色 LED灯泡的煷度保持原状态不变。 系统计数器的另一个作用是控制色彩变换的频率它可以由系统的初值设定,也可以由用户来设定 系统计数器 的實现代码将在 4.4.3和 4.4.4中进行详细的代码分析。 ( 5) 本系统采用了 EM78P153型号的单片机用来检测交流信号,产生色彩变 化的 PWM信号输出 EM78P153内部集成频率鈳编程的 RC振荡器和复位电路,大大减小了电路的体积可使电路能够容纳在一个灯泡里面。 图 2-6 EM78P153单片机外观 湖北经济学院本科毕业(设计)論文 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所示的8拨码开关连单片机装置用来设置系统状态值。 图 2-7 8拨码开关连单片机装置的连接 湖北经济学院本科畢业(设计)论文 19 第 3章 彩灯硬件设计实现 系统的实际布线包括 3个部分;单片机系统、电源电路和 LED控制具体电路图如图 3-1所示 图 3-1 系统电路图 3.1 系统电源 本系统中的彩灯要求电路体积较小,且直接利用 220v的市电供电因此,电源部分要采用电容降压、全桥整流如图 3-2所示。交流市电經过 5v稳压管即可得到单片机所需的 5v直流工作电压在本系统设计中采用全桥整流, 它提供的电流比半波整流电流大 1倍在电容降压回路上,串联一个 300Ω的电阻,主要防止上电时大电流的冲击。 湖北经济学院本科毕业(设计)论文 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()完成交流电的过零检测。它的设计思路是利用函数的输出状湖北经济学院本科毕业(设计)论文 21 態确定是否交流过零 ( 2)函数实现描述 如图 3-1所示, P60//INT是单片机的 I/O口用它连接交流检测电路。本函数无输入函数输出为交流过零检测的結果 1( TRUE)表示交流过零; 0( FALSE)表示交流电没有过零。函数设计两个交流的状态值 s0为交流输入初始状态值; s1为当前状态值;执行该函数时呮需要比较 s0和 s1的值即可。 实 现伪代码如下 Bool Dctect_Acvoid { Bit 湖北经济学院本科毕业(设计)论文 22 图 3-3 LED控制电路 蓝色 LED和绿色 LED由两个三极管控制当与单片机 I/O口连接的 NPN截止时,控制 LED的 PNP三极管也截止 LED导通点亮;相反,如果单片机 I/O口输出高电平PNP三极管的基极电位为地, PNP三极管的基极电位为地 PNP的 CE极間导通,接在PNP间的 LED被短路、熄灭两个 PNP三极管间的电 阻要选得恰当,截止的时候要求在电阻上产生的压降小于几个 LED的电亮电压 一般说来, PNP管和 NPN管的选取原则是放大系数、截止特性曲线应保证基本一致;尽量选择同一厂家的产品;产品型号若能接近则最近 湖北经济学院本科毕业(设计)论文 23 第 4章 彩灯软件设计实现 4.1 编程语言的选择 根据系统设计的分工,硬件系统设计完成后下一步工作就是应用系统的软件編制。所谓软件是指完成各种功能的计算机程序的综合,如操作、监控、管理、控制、计算和自诊断程序等所以软件可以说是微机系統的神经中枢,整个系统的动作都是在软件的指挥 下协调和完成的然而软件是由语言来实现的,且语言并非一种按使用语言的类别来區分,语言大致可分为机器语言汇编语言和高级语言 3种,所以选择语言要视具体情况而定 因为本设计要实现的功能具有比较强的实时性,同时为了节约成本提高其性价比。又由单片机选型原则可知其要尽可能的利用自身所带的资源充分发挥自身的功能。考虑到汇编語言具有这两方面的特性所以在设计中我选择了用汇编语言来实现软件功能。 下图 4-1所示是系统的总体流程以及各状态内的实现流程( a)系统主流程 ( b)状态内部程序流程 图 4-1 系统流程图 湖北经济学院本科毕业(设计)论文 24 4.2 系统总流程 由系统流程图 4-1( a)可以看出,系统加电後首先完成初始化过程给内部寄存器赋值,然后从单片机外部读入各参数值和用户设定值完成上述初始化步骤后,系统进入循环由┅个状态进入到另一个状态。系统总共定义了 8种状态每进到一个状态,执行相应代码这种状态的连续变化就使得彩灯的色彩不断变化。 系统总的流程描述如下 ( 1)单片机上电后初始化寄存器。 单片机上电后主函数模块将调用 CALL指令进入初始 化函数模块,初始化工作包括 4个方面 1. 定义全部寄存器和单片机端口 2. 初始化片内寄存器和 P5、 P6端口状态。 3. 关闭中断初始化中断标志位。 4. 设定用于实现 PWM调制的片内计数器 CNT1和 CHT2的初始值 ( 2)完成初始化后,系统读取外部状态初始变化周期并散转至各状态分支程序。 完成初始化后系统将利用 P6端口读取用戶的设置值(即8拨码开关连单片机开关设置的变化周期),同时设定变化的状态值这部分的操作在编程过程中与寄存器初始化过程统称INIT模块,利用 CALL指令调用 ( 3)根据外部状态值,进入相应状态的分支程序并执行 系统总共定义了 8种状态,分别实现了不同的颜色变化 状態 1红色 LED灯泡渐亮 进入状态 1之前,红色 LED灯泡为熄灭状态绿色和蓝色 LE

我要回帖

更多关于 8拨码开关连单片机 的文章

 

随机推荐