fsc电车电气设计研究思路和方法方法

开关电源/充电器--LED节能灯驱动电路-电子制作|电子毕业设计|毕业设计|单片机设计|QQ
&&|&&&&|&& &&|&&&&|&&
&&本站承接:
电子类项目设计,计算机毕业设计,毕业设计,电子毕业设计,电子线路设计,难题攻关,单片机设计,电子套件,VHDL编程等 &&&
&● 产品类别
& && 开关电源/充电器
LED节能灯驱动电路
双击自动滚屏
发布者:1fun &&发布时间: &&阅读:
次 【字体:
专做,。熟悉51、ARM、电路设计、电路仿真等,欢迎咨询!
对于一般照明而言,人们更需要白色的光源。作为一种新型的光源,白光LED具有无污染、长寿命、耐震动和抗冲击的鲜明特点。虽然白光LED的发光效率正在逐步提高,但是与LED灯配套的驱动器性能不佳,故障率高,成了LED推广应用的瓶颈。
本文介绍了一种照明用LED高效驱动电路的设计方法。本设计的红、绿、蓝三色各自采用单独的驱动电路,通过脉宽调制方式来调节LED灯的亮度,便于实现颜色的多样化;采用开关电源供电方式,输入电压范围广、抗干扰性好、驱动效率高,保证了该驱动板在不同场合、不同区域内都能正常使用。
[关键词]:LED;照明;高效;驱动
[ABSTRACT]:
&& For general lighting, people need more white light sources. As a new light source, white LED with pollution-free, long-life, vibration and shock resistant to the distinct characteristics. At present, the luminous efficiency white LED is gradually improving, the commercialization of the device has reached the level of the incandescent lamp, but the fact should not be overlooked that the LED lights and supporting the driver did not keep up with a timely manner, the drive circuit poor performance, fault Rate is high and promote the use of LED become the bottleneck, there are many technical issues need to study and solve. &&&&& This paper introduces a highly efficient lighting with LED drive circuit design. Red, green and blue colour of the design use separate drive circuit respectively, through the PWM mode to adjust the brightness LED lights to facilitate realization of the diversity of colors used to switch power supply, input voltage range widely, anti - Interference of the good, high-efficiency drive to ensure that the drive plate on different occasions in different regions, is normally available.
[KeyWords]: LED;Lighting;High-efficiency;Driver
1 绪论&&& 1
1.1课题研究的背景&&&& 1
1.2课题研究的方案&&&& 1
2 系统硬件电路设计&&& 2
2.1系统框图及工作原理简介&&&& 2
2.2系统所用主要芯片介绍& 3
2.3系统硬件电路设计& 15
3 PCB线路板设计 20
3.1 PCB的设计规则&&&& 20
3.2 PCB布线工艺要求 22
3.3本设计的PCB布线规则 23
4 系统程序测试&&& 23
4.1 MPLAB集成开发环境简介&& 23
4.2 测试程序设计 24
5 总结&&& 28
参考文献&&&&&& 29
附录一&&& 30
附录二&&& 34
附录三&&& 37
附录四&&& 40
1 绪论 1.1课题研究的背景
白炽灯时代即将和我们告别了。整个20世纪,爱迪生发明的白炽灯经受住了时间的考验,成为标准的通用照明工具。但新的照明技术-尤其是发光二极管(LED)-必将最终代替白炽灯和荧光灯。
当整个世界都在因为日益上升的能源成本而节省能源预算时,白炽灯照明技术显然站在了错误的一边。一个白炽灯消耗的能源中有97%被浪费。荧光灯虽然稍好一些,但仍然浪费了85%的能量。而且,这两种灯的平均使用寿命都只有大约5000个小时。另外,荧光灯还使用了有毒的汞,发出的光更是颜色粗糙。这两种技术都无法和白光LED相比-它不仅使用寿命是前者的10倍,也不使用有毒物质,而且几乎能发出任何颜色的光。更重要的是,它的光转换效率绝不亚于荧光灯。因此,在通用照明应用领域,向LED技术的过渡将大大降低能源消耗。
尽管白光LED是当今的大规模照明的一个理想方案,但若要把驱动LED的电子设备普及到每一个灯泡中,设计者还面临着不小的挑战。主要问题是目前LED驱动电路的性能还没有实现高效率转换,其中关键的技术问题是驱动电子系统的电子能量转换效率由于离散范围极大、参数难于控制,其高低和稳定性就成了整个LED实用技术与产品参数的重中之重。其次,空间的限制要求LED驱动器必须小巧且高效。另外,还要考虑散热和EMI(电磁干扰)因素,两者对于照明设备的可靠性有重要影响,给设计密度带来了限制。
接触过LED的人都知道:由于LED正向伏安特性非常陡(正向动态电阻非常小),要给LED供电就比较困难。不能像普通白炽灯一样,直接用电压源供电,否则电压波动稍增,电流就会增大到将LED烧毁的程度。为了稳住LED的工作电流,保证LED能正常可靠地工作,各种各样的LED驱动电路就应运而生。1.2课题研究的方案
LED驱动电路中最简单的是串联一只镇流电阻,而复杂的是用许多电子元件构成的“恒流驱动器”。本课题研究的三基色照明用LED高效控制器属于恒流驱动器,它将交流电压转换为恒流电源,同时按照LED器件的要求完成与LED的电压和电流的匹配。本装置在设计上具有以下特点:
(1)采用开关电源供电方式,输入电压范围广、抗干扰性能好、工作电压输出稳定。
(2)采用传统的调光方式--PWM(脉宽调制)技术,系统只需要提供宽、窄不同的数字式脉冲,反复开关LED驱动器,即可实现输出电流的宽范围改变,保证LED的亮度和颜色在不同的应用场合能够作相应的变化。
(3)发光体的红、绿、蓝三色各自具有单独的驱动电路,分别通过微控制器的三个脚来独立准确控制,三种颜色可单独发光,也可按照三基色组合标准发稳定的白光。
2 系统硬件电路设计 2.1系统框图及工作原理简介
图2.1& 系统框图
如图2.1所示,该装置主要由控制系统、交流抗干扰电路、直流电压变换电路、四路驱动电路组成。交流电源输入经差、共模干扰信号抑制电路和整流滤波后成260V直流,再经电压变换电路和三端稳压器得到两个较小的直流电压,分别给四路驱动电路和PIC微控制器供电。照明LED的颜色选择及亮度调节由微控制器来控制;四路驱动电路均采用单级PFC(功率因数校正)技术,通过专用PFC芯片L6562D输出的PWM(脉冲宽度调制)信号控制开关管,将直流加到开关变压器的初级上,并对输入电流进行“调制”,令其与电压尽量同步,提高有效功率;开关变压器的次级感应出高频电压,经整流滤波供给负载;输出部分通过一定的保护电路反馈给控制电路,控制PWM占空比,以达到稳定输出的目的。
本设计主要创新点:
(1)采用开关电源供电方式,输入电压范围广、抗干扰性好、工作电压输出稳定;
(2)增加了火线输入检测功能,增强了安全保护措施;
(3)多种电压输出可选(12V,24V);
(4)控制模块采用智能控制模块。2.2系统所用主要芯片介绍
2.2.1 PIC16F684功能介绍
控制系统电路中的MCU(微控制器)选用了PIC系列中档单片机PIC16F684。
PIC系列8位CMOS单片机具有实用、低价、易学、省电、高速和体积小等特点,特别时期独特的RISC(精简指令集)结构,及独立分开的数据总线和指令总线的哈佛总线(Harvard)结构,使指令具有单字长的特性,且允许指令码的位数可多于8位的数据位数,这与传统的采用CISC结构和冯诺依曼结构的8位单片机相比,可以达到2:1的代码压缩和4:1的速度提高。
PIC16F684属于Microchip公司开发生产的中级产品,仅需学习35条指令,除跳转指令外的所有指令都是单周期的。
• 振荡器/时钟的输入频率为20MHz,指令周期为200ns。
• 高精度内部振荡器,双速启动模式,适用于关键应用的晶振故障检测,在节能模式下工作时可进行时钟模式切换,可用软件选择的频率范围为125 kHz到8MHz。
• 带软件控制选择的欠压复位;带上拉的主复位,可复用为输入引脚。
• 可编程代码保护,高耐用性闪存单元,可经受10万次写操作,保存时间超过40年。
• 节能的休眠模式,宽工作电压范围(2.0V到5.5V)。
• 具有很好的低功耗特性。电压为2.0V时,待机电流典型值为50nA,频率为1MHz、电压为2.0V时,工作电流典型值为220μA。
• 具有独立方向控制的12个I/O引脚,高灌/拉电流可直接驱动LED。
• 引脚电平变化中断,独立的可编程弱上拉,超低功耗唤醒。
• 模拟比较器模块带有两个模拟比较器和可编程的片上参考电(CVREF)模块,可从外部访问的比较器输入和输出。
• A/D转换器有8路通道,分别率达到10位。
• 带8位周期寄存器、预分频器和后分频器的8位定时器/计数器。
• 增强型捕捉、比较和PWM模块中有16位捕捉模块,最大分辨率为12.5 ns;16位比较模块,最大分辨率为200ns。带有1、2或4路输出通道,可编程“死区时间”的10位PWM模块,输出信号的最大频率为20 kHz。
• 通过两个引脚实现的在线串行编程。
• 看门狗定时器利用片内独立振荡器,无需外接元件,看门狗定时器溢出时间有8种选择。
由于单片机PIC16F684的资源丰富且功能强大,在本系统中只使用其中的部分功能。下面对使用的片内外设进行详细的分析。
1、振荡器模块
PIC16F684内部振荡器有多种时钟源和选择功能,从而使其应用非常广泛,并可最大限度地提高性能和降低功耗。图2.2给出了振荡器模块的框图。时钟源可以配置为由外部振荡器、石英晶体谐振器、陶瓷谐振器以及阻容(RC)电路提供。此外,系统时钟源可以配置为由两个内部振荡器中的一个提供,并可以通过软件选择速度。
图2.2& 振荡器模块框图
通过配置字寄存器(CONFIG)的FOSC&2:0& 位来配置时钟源模式。内部时钟可用两个内部振荡器产生。HFINTOSC是经过校准的高频振荡器。LFINTOSC是未经校准的低频振荡器。
振荡器控制(OSCCON)寄存器控制系统时钟和频率选择等选项。OSCCON寄存器包含以下位:
• 频率选择位(IRCF)
• 频率状态位(HTS和LTS)
• 系统时钟控制位(OSTS和SCS)
2、故障保护时钟监控器
故障保护时钟监控器(FSCM)使得器件在出现外部振荡器故障时仍能继续工作。FSCM能在振荡器起振延时定时器(OST)到期后的任一时刻检测振荡器故障。FSCM通过将配置字寄存器(CONFIG)中的FCMEN位置1来使能。FSCM 可用于所有外部振荡模式(LP、XT、HS、EC、RC和RCIO)。
图2.3& FSCM框图
如图2.3所示,FSCM模块通过将外部振荡器与FSCM采样时钟比较来检测振荡器故障。LFINTOSC除以64,就产生了采样时钟。故障检测器内部有一个锁存器。在外部时钟的每个下降沿,锁存器被置1。在采样时钟的每个上升沿,锁存器被清零。如果采样时钟的整个半周期流逝而主时钟依然未进入低电平,就检测到故障。
当外部时钟出现故障时,FSCM将器件时钟切换到内部时钟源,并将PIR2寄存器的OSFIF标志位置1。如果在PIR2寄存器的OSFIE位置1的同时将该标志位置1,将产生中断。器件固件随后会采取措施减轻可能由故障时钟所产生的问题。系统时钟将继续来自内部时钟源,直到器件固件成功重启外部振荡器并切换回外部操作。FSCM所选的内部时钟源由振荡器控制寄存器的&2:0&位决定。这使内部振荡器可以在故障发生前就得以配置。
3、PIC16F684的I/O使用
PIC16F684有2个双向 I/O 端口:PORTA和PORTC。由于PIC16F68X属于8位单片机,因此每个端口都由数量不超过8个的引脚构成。每个端口中的每个引脚都可以用软件的方式单独编程,设定为输出引脚或者输入引脚。其中有些I/O引脚和单片机内部的某些功能部件或其它外围模块的外界信号线进行了复用,也就是说,既可以作为普通I/O引脚,又可以作为某些功能部件或外围模块的外接引脚。
PORTA端口是一个只有6根引脚的双向I/O端口,它在基本输入、输出功能的基础上,复合了A/D转换器的模拟量输入功能、A/D转换器所需的外接参考电压输入功能、定时器、计数器TMR0的外部时钟输入功能、主同步串行端口MSSP的从动选择信号输入功能等。
与PORTA端口模块有关的特殊功能寄存器共有9个,都具有在RAM数据存储器中统一编程的地址。
表2.1& 与PORTA相关的寄存器汇总
上电复位欠压复位
&-- 01& -- qq
&-- 00& 0000
-- 11& 1111
&-- 11& -- 11
PORTA、TRISA 寄存器是两个最常用的寄存器。端口数据寄存器PORTA 是一个可读可写的寄存器,也是一个用户软件与单片机引脚外接电路交换数据的界面。由于该端口只有6个外接引脚,所以,与之对应的数据寄存器也就只有低6位有效,无效的两位读出时将返回0。端口方向控制寄存器TRISA 由它控制端口RA 的每一个引脚的数据传送方向。当把某一位设置为“1”时,则相应的端口引脚被定义为“输入”;当把某一位设置为“0”时,则相应的端口引脚被定义为“输出”。
由于PORTA端口各引脚所复合的功能不尽相同,所以各引脚的内部结构也就不尽一致。RA4引脚是施密特触发缓冲输入和漏极开路输出,而其它的RA 端口引脚都是TTL 逻辑电平输入和CMOS驱动输出。所有的引脚都有数据方向位(TRIS寄存器)来设置输入/输出方向。当TRISA寄存器某位置“1”时,其相应位的输出驱动呈高阻态;当TRISA寄存器某位清零,则输出锁存器中的数据就从相应引脚输出。
PORTC是一个8位的双向端口。利用TRISC寄存器可将各引脚分别设置为输入或输出。PORTC引脚都有施密特触发输入缓冲器。当外设功能使能时,应考虑到每个PORTC引脚的TRIS位方向设置。有些外设使能时,会超越相应引脚的TRIS位方向设置而将引脚直接定义为输出;而另一些外设使能时,也会超越相应引脚的TRIS方向设置,但却将引脚直接定义为输入。
图2.5& PORTC引脚框图
注:要将模拟通道配置为数字输入通道就必须对ANSEL和CMCON0寄存器进行初始化。配置为模拟输入的引脚读为0。
4、看门狗(WDT)
看门狗定时器(WDT)是一个运行在片内的RC振荡器,它不需要任何的外接元件。图2.6为看门狗定时器的结构框图。该RC振荡器独立于OSC1/CL引脚上的RC振荡器。这样,即使器件的OSC1和OSC2引脚上的时钟停振,WDT仍将正常工作。
有一个器件配置位是控制看门狗定时器(WDT)的使能/关闭。如果WDT被使能,就不能通过软件关闭此功能。
图2.6& 看门狗定时器结构框图
在正常操作期间,一次WDT超时溢出将产生一次器件复位。如果器件处于休眠状态,一次WDT超时溢出将唤醒器件,使其继续正常操作(即称作WDT唤醒)。对WDTE设置位清零可以永久性地关闭WDT。WDT的超时溢出周期在不使用后分频器时的典型值为18ms。这个周期随着温度、VDD和制造工艺偏差而不尽相同。如果需要更长的超时溢出周期,可以用软件设置OPTION_REG寄存器,把后分频器分配给WDT;这时最大分频比可达1:128,可以实现2.3s左右的超时溢出周期。
CLRWDT和SLEEP指令将对WDT和后分频器(如果分配给WDT)清零,防止其超时而引起器件复位。
看门狗定时器超时溢出使WDT复位(正常工作状态下)或WDT唤醒(休眠状态下),同时状态寄存器中的TO位将被清零。
为避免发生不可预测的器件复位,当从Timer0预分频器的分配改为WDT后分频器的分配时,必须执行下列指令序列。
BSF &&& &STATUS, RP0 && &&& ;选择存储体1
MOVLW & &B’xx0x0xxx’& &&& ;选择时钟源
MOVWF & &OPTION_REG &&& &&& ;
BCF &&& &STATUS, RP0 && &&& ;选择存储体0
CLRF && &TMR0 &&&&&&&&& &&& ;请Timer0和预分频器
BSF &&& &STATUS, RP0 &&&&&& ;选择存储体1
MOVLW&& B’xxxx1xxx’ ;看门狗使能
MOVWF & &OPTION_REG &&&&&&& ;
CLRWDT &&&&&&&&&&&&&&&& ;清看门狗
MOVLW & &B'xxxx1xxx' &&&&&& ;选择新的预分频值
MOVWF&& OPTION_REG &&&& ;
BCF&&&& STATUS, RP0 &&&&&&& ;
如果需要的预分频比不是1:1,就不需要对OPTION_REG寄存器做初始修改。如果需要的预分频比是1:1,那么先向OPTION_REG设置一个非1:1的临时预分频比,在完成其它操作后,在最后修改OPTION_REG时再设置1:1的预分频比。这样操作,主要是因为无法知道TMR0预分频器的当前计数值,而且分频器更改后,该值将变为WDT后分频器的当前计数值,所以必须遵循示例中的代码顺序。如果没有按照示例中的代码顺序改变OPTION_REG寄存器,那么无法准确得知WDT复位前的时间。
5、比较/捕捉/脉宽调制(CCP)
CCP(捕捉/ 比较/ 脉宽调制)模块有一个16位寄存器,它可以用作16位捕捉寄存器、16位比较寄存器或10位PWM主/从占空比寄存器。除了特殊事件触发器之外,各CCP模块的操作是相同的。
每个CCP模块含有3个寄存器。一个器件中可能有多个CCP模块。下表列出了各种模式下CCP模块的定时器资源。
表2.2& CCP模式与定时器
本系统涉及CCP模块的脉宽调制模式(PWM)的应用,下面就简要地介绍一下PWM设置及操作方法。
在脉冲宽度调制(PWM)模式下,CCPx引脚可输出分辨率高达10 位的PWM 输出。因为CCPx引脚与端口数据锁存器是复用的,所以相应的TRIS位必须清零以使CCPx引脚为输出状态。
一个PWM输出(如图2.7) 包含一个时基(周期)和一段输出高电平的时间(占空比)。PWM的频率是周期的倒数(1/周期)。
图2.7& PWM输出波形
在PIC16F系列单片机中,当CCP模块工作于PWM模式时,确定PWM信号周期所用到的定时器只能是8位宽的时基定时器TMR2,而确定PWM信号脉宽所用到的定时器则是10位宽的时基定时器(由定时器TMR2的8位和其低端扩展的2位共同构成)。
(1) PWM周期可通过写入PR2 寄存器来规定,可用以下公式计算:
PWM周期=[(PR2) + 1] • 4 • TOSC • (TMR2预分频比),用时间单位表示PWM频率(FPWM)。
当TMR2等于PR2时,在下一递增计数周期中将产生下面三个事件:
• TMR2被清零
• CCPx引脚被置1
• PWM占空比从CCPRxL被锁定为CCPRxH
(2) PWM占空比可通过写入CCPRxL寄存器和DCxB1:DCxB0 (CCPxCON&5:4&)位来规定。最高分辨率可达10位:由CCPRxL中的高8位和CCPxCON&5:4&中的低2位组成。这一10位值由DCxB9:DCxB0来表征。计算PWM 占空比的公式如下:
PWM占空比= (DCxB9:DCxB0) • Tosc • (TMR2 预分频比),用时间单位表示DCxB9:DCxB0的值可以在任何时候写入,但直到PR2与TMR2中的值相符(当前周期结束)时,占空比的值才被锁存到CCPRxH。在PWM模式下,CCPRxH是只读寄存器。
CCPRxH寄存器和一个2位的内部锁存器用于为PWM占空比提供双重缓冲。双重缓冲对PWM的无毛刺操作是极其重要的。
当CCPRxH和2位锁存器的值与TMR2和内部2位Q时钟(或TMR2预分频器的2位)串接值相符时,CCPx引脚被清零。此时占空比结束。
对于给定的PWM频率,其最大分辨率(位)为:
注:PWM工作模式的操作步骤
(1) 向周期寄存器PR2中写入预定值,以确定PWM信号周期。
(2) 向寄存器CCPR1L和控制寄存器CCP1CON的bit5、bit4中写入预定值,以确定PWM信号脉宽。
(3) 将相应的TRIS位清零以将CCPx引脚设为输出。
(4) 通过对控制寄存器T2CON的写入,以设定预分频器分频比和启用定时器TMR2,如果有必要,还可同时设定后分频器的分频比。
(5) 通过写入控制寄存器CCP1CON的低4位,来设定CCP模块位PWM模式。
6、系统配置字
器件的配置位允许用户根据应用需要配置器件。当器件上电时,这些位的状态决定了器件的工作模式。这些配置位的程序存储器映射位置为2007H。器件正常运行时,无法对该位置进行存取,只能在编程模式下存取。
可以通过对配置位编程(读为'0') 或不编程(读为'1') 来选择不同的器件配置。对配置位编程后,是否能够更改其设置取决于器件的存储工艺和封装形式。
对于只读存储器(ROM) 器件,这些配置位在ROM代码提交时即被确定,且一旦器件掩膜完成,即无法更改(若要更改,则需新的掩膜代码)。
对闪存器件,这些位可擦除并重新编程。
表2.3& CONFIG寄存器
bit 15&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& bit 8
bit 7&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& bit 0
部分配置位说明如下:
FCMEN:故障保护时钟监视器使能位。当置0时则禁止故障保护时钟监视器。反之,故障保护时钟监视器使能。
IESO:内部外部切换位。该位使能时置为1,反之置为0。
BOREN&1:0&:欠压复位选择位。
11 = 使能BOR
10 = 工作时使能BOR,且休眠时禁止BOR
01 = BOR由PCON,寄存器的SBOREN位控制
00 = 禁止BOR
-CP:代码保护位。PIC16F684有许多功能,旨在最大限度地提高系统可靠性,通过减少外部元件将成本降至最低,并提供省电工作模式和代码保护功能。
WDTE:看门狗定时器使能位。当为1时,使能WDT,为0时禁止WDT,同时它待通过WDTCON寄存器的SWDTEN位使能。
FOSC&2:0&:振荡器选择位,共有8种振荡方式可供选择。
7、定时器/计数器
定时器是单片机的一个很重要的部分,用它可以产生很多不同的定时时间,来满足程序设计的不同需求。PIC16F684有三个定时器,分别是Timer0、Timer1、Timer2。它们的用法不是很相同,下面来分别介绍这三个定时器的用法和设置问题。 &&& Timer0是一个八位的计数器,它有一个八位的计数寄存器TMR0,八位的预分频器(与看门狗共用),可以选择内部或者是外部时钟源,有计数器溢出中断的功能。&&& Timer0可以作为一个定时器或者计数器来使用,与Timer0有关的寄存器有:TMR0,INTCON,OPTION_REG,TRISA。 &&& 当Timer0作为定时器来使用的时候,要设置OPTION_REG的T0CS位为0,表示用的是内部时钟,每一个指令周期TMR0的值会增加(当没有预分频的时候),当TMR0被赋值的时候,会有两个指令周期的延时。预分频器可以和看门狗共用,可以由OPTION_REG的PSA位来设置,当PSA 为0的时候分频器选择Timer0,当PSA为1的时候分频器选择看门狗。同时,与分频器的分频值可以通过寄存器OPTION_REG来设置,设置的值可以由1:2到1:256。当Timer0的计数器TMR0计数从FFH到00H的时候会产生溢出,同时溢出标志位(INTCON寄存器的T0IF位)会置位(无论Timer0的中断是否开启),如果中断已经开启了(INTCON寄存器的T0IE被置位),那么就会产生溢出中断。T0IF位需要软件对其进行清零。&&& 当Timer0作为计数器来使用的时候,就要用外部时钟源(OPTION_REG的T0CS置1),每次当引脚T0CK1的沿到来时Timer0的 TMR0会增加1,上升沿和下降沿可以由OPTION_REG的T0SE来设置。中断和Timer0作为定时器使用时一样。在编程序的时候,可以用 Timer0进行定时或产生定时信息,下面我来解释定时器的定时时间的计算。假设Timer0用的时钟源是内部的4MHZ,那么每条指令的执行时间就是 1us,设Timer0的预分频比是1:256,TMR0的初值是6,那么定时时间为:&&& 256×(256-6)×1us=64ms &&& 在编程的时候需要注意的是Timer0的中断是不能把单片机从SLEEP的状态唤醒的。 &&& Timer1是一个十六位的计数器。它有一个计数寄存器对(TMR1H:TMR1L),时钟源也是内外可选的,具有一个2bit的预分频器,可以同步或者异步操作,具有中断功能,但是溢出中断只能在外部时钟、异步的模式才能将单片机从SLEEP中唤醒,Timer1具有捕获/比较功能,还有被一些特殊事件触发功能(ECCP),比较器的输出可以与Timer1的时钟同步。
在编程的时候也可以按照这样的步骤来进行。设置寄存器T1CON,时钟源可以选择外部或者内部的时钟源,外部时钟源可以选择LP晶体。Timer1在选择内部时钟时。可以运行在定时器的状态,选择外部时钟的时候,可以运行在定时器或者是计数器状态,工作于计数器状态时可以选择门限是高电平还是低电平计数。这些都可以通过寄存器T1CON来设置。 &&& 以下是T1CON每个位的具体功能:
Bit0:Timer1是否开启位(TMR1ON)。当此位设为1时,Timer1开启,设为0时,Timer1关闭。
Bit1:时钟源选择位(TMR1CS)。置1时,选择外部时钟(T1CK1引脚的上升沿),此位置0时,选择的是内部时钟,并且和T1ACS(寄存器CM2CON1中)配合,当 T1ACS位为0时,时钟为FOSC/4,当T1ACS位为1时,时钟为FOSC。
Bit2:定时器1的外部时钟输入同步位(T1SYNC)。当 TMR1CS位为1、T1SYNC位为1,定时器1被设置成与外部时钟不同步,T1SYNC位为0时,定时器1被设置成与外部时钟同步模式。
Bit3:此位为1时Timer1的时钟选择LP,为0时LP晶体被关闭。
Bit5-4:Timer1时钟的预分频系数设置。通过这两位的设置,可以将Timer1设置成1:1、1:2、1:4、1:8几种分频值。
Bit6:只有当TMR1ON位为1时才有效,当此位为 1时,Timer1计数被Timer1的门限控制,此位为0时,Timer1正常计数。
Bit7:此位为1时,Timer1在门限为高时计数,此位为0时,Timer1在门限为低时计数。&&&& Timer1的中断编程:当Timer1的计数产生溢出的时候,如果Timer1中断允许的话,就会产生中断。中断可以这样设置,Timer1的中断允许位TMR1IE(在PIE1寄存器中)置1,寄存器INTCON的PEIE位置1,同时总中断位GIE(位于寄存器INTCON中)要置为1。当定时器产生中断的时候,会把中断标志T1IF置为1(位于寄存器PIR1中),然后PC指针指向0004H地址。T1IF位必须软件清除。 &&&& Timer2的功能与Timer1有些不同,Timer2是一个八位的计数器,有一个八位的计数寄存器TMR2,Timer2具有以下功能:有两个分频器,一个是前分频器,一个是后分频器。下面来介绍Timer2的编程: &&&& Timer2的控制寄存器T2CON作用是设置Timer2的开启关闭和前后分频的分频系数,寄存器T2CON的TOUTPS&3:0& 位设置后分频系数,可以被设置成1:1至1:16;位TMR2ON为1时,Timer2开启,为0时,Timer2关闭;位T2CKPS&1:0&可以设置前分频系数,可以被设置成1、4、16。 &&&& Timer2的中断可以这样控制,允许Timer2中断位TMR2IE(位于PIE1寄存器内)被置1时,Timer2中断被允许,被置0时, Timer2中断禁止。寄存器INTCON的PEIE位置1,同时总中断位GIE(位于寄存器INTCON中)置为1。通过上面的设置,Timer2就可以产生中断了。中断标志位T2IF必须软件清除。
2.2.2 L6562D功能介绍
由于本设计采用的使开关电源供电方式,所以要求装置对电网无污染,主要包括谐波含量、功率因数、波形畸变等。解决这个问题的积极办法是采用功率因数校正技术。为了使电源在满足谐波标准的同时能够实现低成本、高性能,对单级PFC的需求越来越紧迫,特别是在小功率场合。
L6562D是ST微电子有限公司生产的临界导电控制模式的功率因数校正控制芯片,能够有效地减少输入电流畸变,在很大的负载范围内能够实现极低的THD(总谐波畸度)。
L6562D的内部结构框图如下:
图2.8 &L6562D内部结构框图
L6562D的内部乘法器带有THD最低化专门电路,能有效控制AC输入电流的交越失真和误差放大器输出纹波失真,从而提供高功率因数和非常低的THD。结合高线性乘法器中的THD最优化电路,L6562D允许在误差放大器反相输入端INV脚和输出端COMP脚之间连接RC串联补偿网络,以减小误差放大器输出纹波和乘法器输出的高次谐波。另外,L6562D带有源电流/灌电流为-600/800mA的推挽式输出级,并带有欠压锁定(UVLO)下拉和15V的电压钳位,可驱动功率MOSFET(绝缘栅极场效应管),从而可使变换器输出功率高达300W。
2.2.3 HV9922功能介绍
开关型LED灯驱动器芯片HV9922是用于控制在连续导电模式(CCM)工作的降压(Buck)变换器拓扑的PWM峰值电流控制器,它利用85~264VAC的交流输入或20~400VDC的直流输入工作,可提供50mA的恒流驱动高亮度LED灯,为设计紧凑低成本通用离线LED灯驱动器提供了解决方案。
HV9922采用三引脚SOT-89和TO-92封装,引脚排列及其内部结构如图2.9所示:
图2.9& HV9922结构框图
当20~400V的电压输入到漏极(DRAIN)脚时,内部高压线性稳压器产生一个7V的DC电压出现在VDD脚。当VDD脚上的电压超过门限电平(5V)时,内部MOSFET导通。当输入电流超过内部预设置电平时,电流传感比较器复位RS触发器,MOSFET关断。同时,单发(one-shot)电路被激活,确定关断时间(10μS)。只要关断时间结束,RS触发器则置位,新的开关周期再次开始。为防止电流感测比较器虚假触发,一个300ns的“消隐”延迟被提供。2.3系统硬件电路设计
2.3.1 AC-DC变换电路
图2.10& AC-DC变换电路[*1]&
如图所示,AC-DC变换电路由交流抗干扰电路和高压整流滤波电路两部分组成,采取宽电源输入方式,电压输入范围为AC85~265V。
为避免电网中的各种干扰信号影响该装置的正常工作,防止电源开关电路形成高频扰窜,影响电网中的其他电器,所以按照各种电磁、安规认证的要求,在进行交、直流变换时应配有抗干扰电路。&&& &&抗干扰电路也称EMI滤波电路。电磁干扰按噪声干扰源种类来分,可分为尖峰干扰和谐波干扰两种;若按耦合通路来分,可分为传导干扰和辐射干扰两种。任何电源线上传导干扰信号,均可用差模和共模信号来表示。差模干扰是在各相线之间传输,属对称性干扰;共模干扰是在电源线与地之间传输,属非对称性干扰。在一般情况下,差模干扰幅度小,频率低,所造成的干扰较小;共模干扰幅度大,频率高,还可以通过导线产生辐射,所造成的干扰较大。
该电路最左边的接口器件为本系统的强电插头。接口的右边是一个0.25A的保险丝器件,它将起到过流保护的作用。L1、L2是差模扼流电感,C2是差模滤波电容, 也就是安全标准中所谓的X电容, 一般采用聚丙烯金属化薄膜电容,容量范围在0.01uF~4.7uF;T2的初次级匝数相等、极性相反,交流电流在磁芯中产生的磁通相反,因而可有效地抑制共模干扰。
高压整流滤波电路由反向耐压值为800V的四个快恢复型整流二极管接成全桥的形式,把220V、50HZ的工频电网电压或其它的交流输入电压直接引入,进行全波整流,再由后面的滤波电路变成较为稳定的直流电压输出,给直流变换器提供一个峰值约260V的直流电源。
2.3.2 DC-DC变换电路
图2.11& DC-DC变换电路
DC-DC变换电路是基于HV9922和MC78L05而设计的。
在本电路中,HV9922是作为恒流源使用的。峰值为260V的直流输入到1脚后,在2脚输出16V的直流电压,再经后续的稳压、滤波环节便得到了一个相对稳定的+13V直流电,为四个驱动电路中的PFC芯片供电。
PIC微控制器所需要的+5V工作电压由三端稳压器MC78L05提供。为了使输出的电压波纹系数更小,增强系统的抗干扰性能,在其后面追加了一个耐压6.3V,容值10uF的滤波电容。
2.3.3 微控制器及外围电路
图2.12& 微控制器及外围电路[*2]&
在说明该模块的原理之前,我先简要地介绍一下本装置所驱动的LED灯的内部结构。
为了能提高LED发光流明效率,这款LED采用了红、绿、蓝三色组合方式,把红光、绿光、蓝光分成三组,每组分别采用4个1W发光二极管通过矩阵式贴片的排列形式最终组成一个发白光实体,其内部结构如下图所示:
&&&&&&&&&&&
图2.13& LED灯内部结构图
通过这种方式,白光的最大发光功率可达8W,流明效率可达751m/W。
为保证LED灯发光颜色的均匀一致,便于实现多种色彩变化,发光体的红、绿、蓝、白四色各自采用单独的驱动电路,分别通过PIC16F684的四个脚来独立准确控制,四种颜色可单独发光。需要说明的是,白光是按照一定的三基色组合标准发出的,其冷暖色温是可调的。
在设计本模块时,为了加强单片机的抗干扰性,在单片机的电源端口加了一个容值为10uF的去耦电容。由于AC-DC变换电路输出的并不是标准的260V直流电压,它可以看作是一个正弦信号和一个直流信号的叠加,其电压值随时间发生变化,三个220K的电阻串联起来,同C14组成了一个积分电路,260V直流电压通过积分作用之后得到一个锯齿波信号(MULT),该信号一方面通过R9和R76限流之后分别得到两个频率为100HZ的正弦波,作为单片机内置A/D转换器的模拟信号输入,另一方面可作为后面四路驱动电路的控制信号;DC-DC变换电路得到的+13V直流电经R89和R90分压后得到一个2.8V的直流电,送入单片机的8脚;通过编程,单片机的5脚将输出一个频率1kHZ、占空比为50%的方波,经积分电路作用后得到一个三角波控制信号(频率1kHZ,峰-峰值1V,最大值3V);单片机的3脚、12脚和13脚由软件设置为数字I/O,输出频率225HZ、占空比为25%的矩形脉冲,分别作为红、绿、蓝三路驱动电路的点亮信号,白光驱动电路的频率2kHZ、占空比30%的点亮信号由6脚提供。
2.3.4 四路驱动电路
红、绿、蓝三色驱动电路的原理、元件参数基本一致,白光驱动电路部分元件的参数与前者有一定的差别。下面就以绿光驱动电路为例来说明其工作原理。
图2.14& 绿光驱动电路
如图所示,该模块的原理与常见的开关稳压电源类似。
在本电路中,主控芯片L6562D的INV脚是内置电压误差放大器的输入端,COMP脚是输出端,SAW是前级控制电路输出的频率为1KHZ,峰值为3V的三角波信号,RED是微控制器所提供的频率为225HZ的矩形脉冲信号,经C31之后也得到一个三角波,两者叠加作为INV脚的输入信号,
R17跨接在两脚之间,作为反馈电阻使用。从MULT脚输入的信号由前级电路提供,可以控制该芯片是否工作。CS脚接到了开关管Q2的源极,R12为Q2的电流检测电阻,当CS脚电压达到内部乘法器输出时,通过其内部的触发器控制开关管的关断,并一直保持关断状态到脚ZCD检测到反馈电流的过零信号;脚ZCD为L6562D的过零检测端,此过零检测电路为下降沿出发,当该脚的电压下降到1.6V,且GATE脚输出高电平时,开关管开启。在脚ZCD和开关变压器的原级线圈之间连有一个由R24、R31和C13组成的反馈网络,起补偿作用;由于开关管在关断瞬间会在漏极产生一个尖峰脉冲,电压高达上千伏,所以在DC+和开关管的漏极之间连接了一个超快恢复二极管和一个瞬态电压抑制二极管,共同钳制漏极电压,以免污染电网。开关变压器的次级感应出高频电压后,经整流滤波供给负载。
&2.3.5 输出过流保护电路
图2.15& 输出过流保护电路
本部分的电路原理较为简单。如图所示,在系统正常工作时,该部分不起作用,但当系统输出电流过大时,稳压二极管被反向击穿,电路导通,光耦中的光敏三极管受光导通,MULT脚电平被强行拉低,使得各路驱动电路停止工作,起到保护作用。由于光耦的输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。同时,由于光耦的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力,所以将它作为本系统的终端隔离元件可以大大提高信噪比。3 PCB线路板设计 3.1 PCB的设计规则
&一般PCB(印制电路板)基本设计流程如下:前期准备、PCB结构设计、PCB布局、布线、布线优化和丝印、网络检查、DRC(设计规则检查)、结构检查和制板。下面就几个重要环节进行详细地论述。
第一,前期准备。这包括准备元件库和原理图。“工欲善其事,必先利其器”,要做出一块好的板子,除了要有好的设计思想,还要在图纸的绘制方面下大功夫。在进行PCB设计之前,首先要准备好原理图SCH 的元件库和PCB的元件库。元件库可以用PROTEL自带的库,但一般情况下很难找到合适的,最好是自己根据所选元器件的实际尺寸来做元件库。原则上先做PCB的元件库,再做SCH元件库。PCB元件库的制作非常重要,它直接影响到板子的安装,而对SCH元件库的要求相对较低,只要定义好所选元器件的管脚属性和与PCB元件之间的对应关系就可以了。另外,若使用标准库中的元件,其隐藏管脚也要注意。在原理图设计完毕之后,就开始做PCB的设计了。
在本次设计中,由于使用了大量的贴片元件,所以我在绘制原理图时,对于国际通用的常用元器件,都是用PROTEL中的标准库(Miscellaneous Devices.intLib),而对于其它非常用元器件都是自己亲手做的库。
第二,PCB结构设计。这一步根据已经确定的电路板尺寸和各项机械定位,在PCB设计环境下绘制PCB设计面,并按定位要求放置所需的接插件、贴片元件、螺丝孔、装配孔等等,经充分考虑之后,确定布件区域和布线区域(如螺丝孔周围多大范围属于非布线区域)。
第三,PCB布局。所谓布局就是将所用元器件封装摆放到板图上。此时,如果前面讲到的准备工作都做好了,就可以在原理图上生成网络表(Design-&Create Netlist),之后在PCB图上导入网络表(Design-&Load Nets),这样各种元器件就呼拉一下全堆上去了,并且各管脚之间还有飞线提示连接,接下来就可以对元器件布局了。一般布局按如下原则进行:
1、按电气性能合理分区,一般分为:数字电路区(即怕干扰、又产生干扰)、模拟电路区(怕干扰)、功率驱动区(干扰源);而且强弱电应该分开。
2、对完成同一功能的电路元件,应尽量靠近放置,并调整各元器件以保证连线最为简洁;同时,调整各功能模块之间的相对位置尽量使连线简洁、美观。
3、对于重量较大的元器件应考虑安装位置和安装强度;发热元件应与温度敏感元件分开放置,必要时还应考虑热对流措施。
4、I/O的驱动器件应尽量靠近印刷板边或引出接插件。
5、时钟产生器(如:晶振或钟振)要尽量靠近用到该时钟的器件。
6、在每个集成电路的电源输入脚和地之间,需加一个去耦电容(一般采用高频性能好的独石电容);电路板空间较密时,也可在几个集成电路周围加一个钽质电容。
7、继电器线圈处要加放电二极管(1N4148即可)。
8、布局要均衡,疏密有序,不能头重脚轻或一头沉。
需要特别注意的是,在放置元器件时,一定要考虑元器件的实际尺寸大小(所占面积和高度)和元器件之间的相对位置,以保证电路板的电气性能和生产安装的可行性和便利性,同时,应该在保证上面原则能够体现的前提下,适当调整元器件的摆放位置,使之整齐美观,比如同样的元器件要摆放整齐、方向一致,不能摆得“错落有致”。这个步骤关系到板子整体形象和下一步布线的难易程度,所以一定要花大力气去考虑。布局时,对不太肯定的地方可以先作初步布线,以后再仔细斟酌,慢慢调整,直到符合要求为止。
第四,布线。布线是整个PCB设计中最重要的环节,这将直接影响到PCB板的性能好坏。在PCB设计过程中,布线一般可以划分为以下三种境界:首先是布通,这是PCB设计的最基本的要求。如果线路都没布通,弄得到处是飞线,那么这样的板子肯定是不合格的。其次,在布通之后,要认真调整连接线,使其能达到最佳的电器性能,这是衡量一块印刷电路板是否合格的标准。再者就是美观。布线要整齐划一,不能纵横交错毫无章法。假如你的线布通了,也没有什么影响电器性能的地方,但是看上去却显得杂乱无章,那么即便是你的电器性能再好,在别人眼里也是垃圾一块,而且这样会给测试和维修带来极大的不便。当然,这些都要在保证电器性能和满足其他个别要求的情况下实现,否则就是舍本逐末了。布线时主要按以下原则进行:
1、一般情况下,首先应对电源线和地线进行布线,以保证电路板的电气性能。在条件允许的范围内,应尽量加宽电源、地线宽度,最好是地线比电源线宽,信号线、电源线、地线的宽度依次加大,通常信号线宽为:0.2~0.3mm,最细宽度可达0.05~0.07mm,电源线一般为1.2~2.5mm。对数字电路的PCB 可用宽的地导线组成一个回路,即构成一个地网来使用,但模拟电路的地线则不能采用这种布置方式。
2、预先对要求比较严格的线(如高频线)进行布线,输入端与输出端的边线应避免相邻平行,必要时应加地线隔离,以免产生反射干扰。两相邻层的布线要互相垂直,平行容易产生寄生耦合。
3、振荡器外壳接地,时钟线要尽量短,且不能引得到处都是。时钟振荡电路下面和特殊高速逻辑电路部分要加大地的面积,而不应该走其它信号线,以使周围电场趋近于零。
4、尽可能采用45度折线布线,不可使用90度线,以减小高频信号的辐射(要求高的线还要用双弧线)。
5、信号线最好不要形成环路,若不可避免,环路应尽量小;信号线的过孔要尽量少。
6、关键的线要尽量短而粗,并在两边加上保护地。
7、通过扁平电缆传送敏感信号和噪声场带信号时,要用“地线―信号―地线”的方式引出。
8、关键信号应预留测试点,以方便生产和维修检测用。
9、原理图布线完成后,应对布线进行优化;同时,经初步网络检查和DRC检查无误后,对未布线区域进行地线填充,用大面积铜层作地线用,在印制板上把没有用到的地方都与地相连接作为地线用,或是做成多层板,电源,地线各占一层。3.2 PCB布线工艺要求
结合电路相关原理,PCB布线一般有如下规则:
1、线一般情况下,信号线宽为0.3mm,10mil,电源线宽为40mil或更宽;线与线之间和线与焊盘之间的距离大于等于10mil。实际应用中,条件允许时应考虑加大距离;
2、焊盘(PAD)与过孔(VIA)的基本要求是:盘的直径比孔的直径要大于25mil.例如,通用插脚式电阻、电容和集成电路等,采用盘/孔尺寸, 60mil/30mil,插座、插针和二极管1N4007等,采用 71mil/39mil。实际应用中,应根据实际元件的尺寸来定,有条件时,可适当加大焊盘尺寸;PCB板上设计的元件安装孔径应比元件管脚的实际尺寸大10mil左右。过孔(VIA)一般为50mil/30mil。当布线密度较高时,过孔尺寸可适当减小,但不宜过小,可考虑采用40mil/24mail。
布线优化和丝印。“没有最好的,只有更好的”!不管你怎么挖空心思的去设计,等你画完之后,再去看一看,还是会觉得很多地方可以修改的。一般的设计经验是:优化布线的时间是初次布线时间的两倍。感觉没什么地方需要修改之后,就可以铺铜了。铺铜一般铺地线(注意模拟地和数字地的分离),多层板时还可能需要铺电源线。对于丝印,要注意不能被器件挡住或被过孔和焊盘去掉。同时,设计时正视元件面,底层的字应做镜像处理,以免混淆层面。
网络和DRC检查和结构检查。首先,在确定电路原理图设计无误的前提下,将所生成的PCB网络文件与原理图网络文件进行物理连接关系的网络检查(NETCHECK),并根据输出文件结果及时对设计进行修正,以保证布线连接关系的正确性;网络检查正确通过后,对PCB设计进行DRC检查,并根据输出文件结果及时对设计进行修正,以保证PCB布线的电气性能。最后需进一步对PCB的机械安装结构进行检查和确认。3.3本设计的PCB布线规则
本驱动电路板为双面板,兼有模拟信号线和数字信号线。PCB顶层所放置的元器件均为体积较大的插件式元件。顶层强电流使用的是60mil宽的铜符线,一般信号线使用的线宽为10mil。地平面布在电路板的顶层,以降低电磁干扰。当地平面被信号线隔断时,应将信号走线与地平面垂直。布线采用45度折线,以减小高频信号的辐射。
4 系统程序测试 4.1 MPLAB集成开发环境简介
众所周知,不同种类的单片机都有其相应的集成开发环境(IDE),而且互不相同,那么PIC单片机也不例外。MPLAB 集成开发环境是综合的编辑器、项目管理器和设计平台,适用于使用美国微芯科技公司(Microchip)的PIC系列单片机进行嵌入式设计的应用开发。
MPLAB IDE对系统的要求不高,安装和运行过程简单快捷。为了生成可由目标PICmicro单片机执行的代码,需要将源文件放入同一个项目中,然后用所选择的语言工具(汇编器、编译器和链接器等)编译代码。
调试项目的一般步骤如下:
&SHAPE& \* MERGEFORMAT
图4.1& 项目调试步骤
与其他集成开发环境不同的是,MPLAB IDE同时使用工作区和项目来帮助用户对其应用代码开发进行管理。MPLAB IDE工作区是MPLAB IDE 应用程序窗口的桌面区域。工作区记录打开了哪些窗口,选择了哪一种PICmicro单片机,使用了哪一种调试器和编程器,以及硬件工具是如何连接到计算机上的。一般来说,在开始建立一个项目前需要先设置工作区。
项目是在MPLAB IDE 工作区中打开的,包括源文件、以及关于如何编译项目和使用哪些工具编译项目的信息。项目是可移植的,可以移动到不同的目录或不同的计算机上。4.2测试程序设计
4.2.1 项目实现功能
使四路驱动电路同时工作,点亮LED灯具内所有的发光二极管,此时LED发白光且冷暖色温达到最佳。通过编程,单片机将提供各种参数不同的控制信号。根据需求,单片机的3脚、12脚和13脚将提供频率225HZ、占空比25%的矩形脉冲信号,6脚将提供频率2kHZ、占空比30%的矩形脉冲信号,而频率1kHZ、占空比50%的主控信号将由5脚提供。
4.2.2 软件设计思路
本设计以振荡频率为8MHZ的内部时钟作为振荡源,采用定时中断方式和反复装载初始值的方式来得到所需要的各种控制信号。具体方法是,将各种控制信号周期乘以其对应的占空比,所得到的时间将作为定时器的定时时间。以上述第一种信号为例,将4.44ms(频率225HZ)乘以25%得1.11ms,用Timer0定时1.11ms,相应的I/O口置1,待Timer0超时溢出时,中断处理程序将预先设置的计数变量寄存器(初值为0)加1,退出中断后由主程序通过计数值和占空比来判定I/O口是否取反,这样在一个周期时间内,Timer0将产生4次中断,从而完成了一个完整波形的输出。上述第二种信号的产生由Timer1配合中断方式完成,方法与第一种相同,这里不再赘述。而第三种信号则利用了CCP模块的PWM模式来提供。
需要说明的是,在执行中断处理程序时需要一定的时间,这样必然会导致定时器的定时时间产生误差,系统运行一段时间后,输出波形的占空比将发生变化,不能满足原先的要求,为此,我在编程是将大量的工作交由主程序完成,以缩短中断处理程序的工作量,使误差降到最低。
4.2.3 汇编程序流程
为增强程序的可读性,特将整个程序划分为三个部分:硬件资源的初始化程序、主程序和中断处理程序。由于单片机的 SFR (特殊功能寄存器)区被分成不同的存储区。在这些存储区间切换时,需要设置状态(STATUS )寄存器的 RP0、 RP1位来选择所需存储区。
1、硬件资源的初始化
初始化程序包括定时/计数器初始化、PWM模式初始化和I/O端口初始化四部分。Timer0和Timer1的初始化方法类似,都是先将相应的计数寄存器清零,然后再对预分频器进行设置,选则合适的分频比,以便计算定时初值。所不同的是,Timer1是16位的定时器,所以要分别对其计数寄存器的高字节和低字节赋初值。PWM模式初始化方法是固定的,输出信号的周期和占空比都有专门的公式进行计算。在I/O端口的初始化中,根据需要将
将RA2、RC2、RC3和RC5设置为模拟输入,RA0、RA1、RA4和RC4设置为数字输出。
Timer0初始化程序流程:&&&&&&&&&&&&& Timer1初始化程序流程:
PWM模式初始化程序流程:&&&&&&&&& I/O端口初始化程序流程:
2、主程序部分
在主程序中,先将看门狗定时器清零,以免产生不必要的复位,然后关闭所有的中断,对所需各种寄存器的控制字进行设置,最后再使能全局中断,启动定时器等待中断。
主程序流程:
&SHAPE& \* MERGEFORMAT
3、中断处理部分
当某个定时器超时产生中断后,中断处理程序先判断是哪个定时器产生的中断,然后再进行相应的处理,实现各种功能。
中断处理子程序流程:
&SHAPE& \* MERGEFORMAT
本论文主要论述本设计的硬件部分,并结合软件进行结构优化设计。使得本硬件设计的到很好的简化,同时也提高了本系统设计的抗干扰性能。同时,结合PCB检查设计技术以及一些设计规范,再一步提升系统的电气特性。
值得高兴的是,该设计的样品已经做出,现处于测试阶段。本产品由于采用了PWM(脉宽调制)技术,使得系统只需要提供宽、窄不同的数字式脉冲,即可简单地实现改变输出电流,从而调节LED的亮度。同时,开关稳压电源的供电方式,也使得系统的稳定性大大提高。但是,该产品有一个致命的缺点,那就是容易产生电磁干扰,有时甚至会产生人耳能听见的噪声。另外,由于时间有限,软件部分只写了一个白光亮度可调的简单的测试程序,所以还需要不断的完善才能使该产品投放市场。
此次毕业设计是大学学习过程中一个非常重要的环节。通过这个环节的训练,我逐步掌握了一个电子产品的基本开发流程,学到了很多书本上学不到的知识,提高了自己理论联系实际和动手实践的能力。在此期间,我深深地体会到产品研发是一个不断配合和取舍的过程,包括电子与结构的配合、电子硬件与软件的配合,而每一种配合中都需要一些数据进行参考与验证,最后再综合考虑各方面的因素来优化产品的成本、质量和研发时间。同时,我也懂得了基础知识的重要性,试想,一个连元件类别和性能都不清楚的人又怎能设计出现实中可用的产品呢。所以,一个人要想真正搞出点东西来,就必须脚踏实地,从一点一滴做起。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&参考文献
[1] 杨恒.LED照明电路设计与实例精选.北京:中国电力出版社,2008.1[2] 李学海. PIC单片机使用教程――提高篇. 北京:北京航空航天大学出版社,2007.2
[3] 方大千,鲍俏伟. 实用电源及其保护电路. 北京:人民邮电出版社,2003.2
[4] Microchip. 14-Pin, Flash-Based 8-Bit CMOS Microcontrollers with nanoWatt Technology -- PIC16F684. Microchip Technology Inc.,MAY.2007
[5] 三恒星科技. PIC单片机易学通.北京:科学出版社,2004.5
[6] ST semiconductors. L6562D Transition-Mode PFC Controller. ST Microelectronics Group of Companys,MAR.2002
[7] 王水平,付敏江. 开关稳压电源―原理、设计与实用电路. 西安:西安
电子科技大学出版社,1997 .1
[8] 赵广林. 常用电子元器件识别/检测/选用一读通. 北京:电子工业出版社,2007.7
[9] 童诗白,华成英. 模拟电子技术基础 (第三版).& 北京:高等教育出版社 ,2004
How Light Emitting Diodes Work
Light emitting diodes, commonly called LEDs, are real unsung heroes in the electronics world. They do dozens of different jobs and are found in all kinds of devices. Among other things, they form the numbers on digital clocks, transmit information from remote controls, light up watches and tell you when your appliances are turned on. Collected together, they can form images on a jumbo television screen or illuminate a traffic light. Basically, LEDs are just tiny light bulbs that fit easily into an electrical circuit. But unlike ordinary incandescent bulbs, they don't have a filament that will burn out, and they don't get especially hot. They are illuminated solely by the movement of electrons in a semiconductor material, and they last just as long as a standard transistor. In this article, we'll examine the simple principles behind these ubiquitous blinkers, illuminating some cool principles of electricity and light in the process.
What is a Diode? A diode is the simplest sort of semiconductor device. Broadly speaking, a semiconductor is a material with a varying ability to conduct electrical current. Most semiconductors are made of a poor conductor that has had impurities (atoms of another material) added to it. The process of adding impurities is called doping. In the case of LEDs, the conductor material is typically aluminum-gallium-arsenide. In pure aluminum-gallium-arsenide, all of the atoms bond perfectly to their neighbors, leaving no free electrons (negatively-charged particles) to conduct electric current. In doped material, additional atoms change the balance, either adding free electrons or creating holes where electrons can go. Either of these additions make the material more conductive. A semiconductor with extra electrons is called N-type material, since it has extra negatively-charged particles. In N-type material, free electrons move from a negatively-charged area to a positively charged area. A semiconductor with extra holes is called P-type material, since it effectively has extra positively-charged particles. Electrons can jump from hole to hole, moving from a negatively-charged area to a positively-charged area. As a result, the holes themselves appear to move from a positively-charged area to a negatively-charged area. A diode comprises a section of N-type material bonded to a section of P-type material, with electrodes on each end. This arrangement conducts electricity in only one direction. When no voltage is applied to the diode, electrons from the N-type material fill holes from the P-type material along the junction between the layers, forming a depletion zone. In a depletion zone, the semiconductor material is returned to its original insulating state -- all of the holes are filled, so there are no free electrons or empty spaces for electrons, and charge can't flow. To get rid of the depletion zone, you have to get electrons moving from the N-type area to the P-type area and holes moving in the reverse direction. To do this, you connect the N-type side of the diode to the negative end of a circuit and the P-type side to the positive end. The free electrons in the N-type material are repelled by the negative electrode and drawn to the positive electrode. The holes in the P-type material move the other way. When the voltage difference between the electrodes is high enough, the electrons in the depletion zone are boosted out of their holes and begin moving freely again.As a result, the depletion zone disappears.When the negative end of the circuit is hooked up to the N-type layer and the positive end is hooked up to P-type layer, electrons and holes start moving. If the P-type side is connected to the negative end of the circuit and the N-type side is connected to the positive end, current will not flow. No current flows across the junction because the holes and the electrons are each moving in the wrong direction. When the positive end of the circuit is hooked up to the N-type layer and the negative end is hooked up to the P-type layer, the depletion zone gets bigger. The interaction between electrons and holes has an interesting effect -- it generates light! In the next section, we'll find out exactly why this is.
&How Can a Diode Produce Light? Light is a form of energy that can be released by an atom. It is made up of many small particle-like packets that have energy. These particles, called photons, are the most basic units of light. Photons are released as a result of moving electrons. In an atom, electrons move in orbitals around the nucleus. Electrons in different orbitals have different amounts of energy. Generally speaking, electrons with greater energy move in orbitals farther away from the nucleus. For an electron to jump from a lower orbital to a higher orbital, something has to boost its energy level. Conversely, an electron releases energy when it drops from a higher orbital to a lower one. This energy is released in the form of a photon. A greater energy drop releases a higher-energy photon, which is characterized by a higher frequency. As we saw in the last section, free electrons moving across a diode can fall into empty holes from the P-type layer. This involves a drop from the conduction band to a lower orbital, so the electrons release energy in the form of photons. This happens in any diode, but you can only see the photons when the diode is composed of certain material. The atoms in a standard silicon diode, for example, are arranged in such a way that the electron drops a relatively short distance. As a result, the photon's frequency is so low that it is invisible to the human eye -- it is in the infrared portion of the light spectrum. This isn't necessarily a bad thing, of course: Infrared LEDs are ideal for remote controls, among other things. Visible light-emitting diodes (VLEDs), such as the ones that light up numbers in a digital clock, are made of materials characterized by a wider gap between the conduction band and the lower orbitals. The size of the gap determines the frequency of the photon -- in other words, it determines the color of the light. While all diodes release light, most don't do it very effectively. In an ordinary diode, the semiconductor material itself ends up a lot of the light energy. LEDs are specially constructed to release a large number of photons outward. Additionally, they are housed in a plastic bulb that concentrates the light in a particular direction.
LEDs have several advantages over conventional incandescent lamps. For one thing, they don't have a filament that will burn out, so they last much longer. Additionally, their small plastic bulb makes them a lot more durable. They also fit more easily into modern electronic circuits. But the main advantage is efficiency. In conventional incandescent bulbs, the light-production process involves generating a lot of heat. This is completely wasted energy, unless you're using the lamp as a heater. LEDs generate very little heat, relatively speaking. A much higher percentage of the electrical power is going directly to generating light, which cuts down on the electricity demands considerably. Up until recently, LEDs were too expensive to use for most lighting applications. The price of semiconductor devices has plummeted over the past decade, however, making LEDs a more cost-effective lighting option for a wide range of situations. While they may be more expensive than incandescent lights up front, their lower cost in the long run can make them a better buy. In the future, they will play an even bigger role in the world of technology.
TRANSIENT VOLTAGE SUPPRESSOR(TVS) Diode PRESENTATION
• High protection on sensitive mobile electronic devices
• Follow strictly to the IEC
ESD test standard
• Using the behavior of diode P/N junction to achieve ESD protection
What are Transient Voltages?
• These are faults which cause the voltage to go outside normal limits for a period& of time. Transient voltages are characterized by three things:
VeryHigh Voltage, Occur For A Very Short Period of time (in nanoseconds) and High Occurrence. Many transients cause damage to micro-semiconductor chipsets by degra ding their performance. This damage is cumulative and eventually reaches apoint where& sudden and complete failure of the component results. Moreover, some transients are capable of causing immediate equipment failures. Equipment failures caused by transients are hard to detect and are often incorrectly blamed on other ‘perceived’ causes. Micro semiconductor chipsets damaged by transients often require sophisticated instrument to replace them which make them expensive to repair. The only cure is to clamp transients to a safe level where the protected load can withstand.
TVS diode’s Advantages
• TVS Diode vs. Zener Diode
Compared with the traditional Zener diode, TVS diode has a larger P/N cross section. TVS diode component is constructed and designed to absorb larger amounts of energy, joules, with a faster response time than Zener diode. Zener diode has a higher clamping voltage and heat dissipation is slower.
• TVS Diode vs. Multilayer Metal oxide Varistor, MLV
A major difference between TVS diode and MLV is, as MLV absorbs transient energy, its electrical parameters such as Leakage current and Breakdown voltage tend to drift away from their original specifications which exhibits an inherent wear out mechanism within the structure. Because of its high impedance, its clamping ratio can
reach as high as 3. Therefore MLV is more suitable to be applied on less sensitive lines where its high clamping voltage can be tolerated.
• TVS Diode vs. Ceramic Capacitor
Ceramic capacitor is not able to withstand a high transient voltage. A 10kV transient voltage will destroy about 60% of the component of the ceramic capacitor while TVS diode is able to withstand up to 15Kv transient voltage. Ceramic capacitor is also not able to dissipate heat efficiently like what TVS diode does when transient occurs.
• TVS Diode vs. Gas Discharge Tubes, GDTs
TVS diode limits voltage spike to acceptable level by clampingwhile GDT limits voltage spike by crowbar action. GDT conducts when its threshold voltage is exceeded and then trigger to an on-state voltage of only a few volts. A drawback of GDT protection is that the trigger on state voltage is below the operating voltage of the protected load. The protected load will be shut down temporarily.
LED是如何工作的
通常被称为LED的发光二极管,使电子世界中真正的无名英雄。LED的功能多达几十种,被广泛的应用于各种装置之中。在其他应用场合,LED可以作为数字钟的数码显示、传送来自遥控装置的数据、手表的背光灯以及指示各种器械何时开启。归纳起来,LED可以在巨大的电视荧屏上形成各种图像或者点亮交通灯。从本质上讲,LED就是一些小灯泡,所以很适合用于电子线路中。但与普通白炽灯泡不同的是,LED没有能烧尽的灯丝,而且使用过程中也不会变得很热。它们仅仅依靠半导体材料的电子运动来发光照明,并且其寿命和标准晶体管的一样长。在这篇文章里,我们将一起来探究一下这些普遍存在的有色眼镜后面的简单原则,对于揭示该过程中电气光学方面的潜规则具有一定的启发。
那么什么是二极管呢?二极管是最简单的一种半导体元件。一般来说,半导体是在电流传导方面特性不唯一的一种材料。多数半导体是由内含杂质(其他材料的原子)的导体制成的。添加杂质的过程被称为掺杂。在LED中,传导材料通常选用铝―镓―砷化物(AIGaAs)。在纯净的铝―镓―砷化物中,所有的原子和相邻原子间都非常完美地结合在一起,没有能自由运动的电子(带负电的粒子)传导电流。在掺杂过的材料中,添加的原子改变了原有的平衡,产生了自由电子或空穴。增加的这两种粒子都能增强该材料的传导性。因为电子带负电,故有多余电子的半导体被称为N型半导体。在N型半导体中,自由电子从负电, 区域移向正电区域。因为空穴带正电,故有多余空穴的半导体被称为P型半导体。电子可以在两个空穴之间来回移动,从负电区域移向正电区域。这样,从表面上看空穴是从正电区域移向负电区域。二极管是由制作在同一硅片上的P型半导体和N型半导体所组成,电极在两端引出。这种制作工艺使得二极管具有单向导电性。二极管两端不加电压是,N区的自由电子和P区的空穴在两层的结合处进行复合形成耗尽层。在耗尽层中,半导体材料还原为绝缘状态―所有的空穴都和电子发生复合,所以没有自由移动的电子或存有电子的空间,电荷便不再流动。要去除耗尽,就必须获得由N区移向P区的自由电子和向相反方向移动的空穴。要达到这个目的,可以把二极管N区一端和P区一端分别和电路的负极和正极相连接。N区的自由电子被负极所排斥并推向正极。P区的空穴沿另一路径移动。当电极之间的电位差足够大时,耗尽层的电子和空穴分离又开始自由移动。结果,耗尽层消失。如果电路的负极连到N区,正极连到P区,那么电子和空穴就开始移动。如果P区一端连到电路的负极,N区一端连到电路的正极,则电流将停止流动。因为空穴和电子都向相反的方向移动,所以没有电流穿过PN结。当电路的正极和负极分别连接到二极管的N区和P区时,耗尽层加宽。有趣的是,在电子和空穴相互作用的过程中产生了光!接下来,我们将讨论一下其中的奥妙。
二极管是怎样发光的呢?光是原子释放能量的一种形式。光有许多像存有能量的包裹一样的小微粒组成。这些微粒被称为光子,是光的基本单元。光子由移动的电子所释放。在一个原子中,电子沿特定的轨迹绕原子核作圆周运动。处于不同轨道的电子所含能量有所不同。一般而言,具有较高能量的电子在离核较远的轨道中运行。如果一个电子从低轨道进入高轨道,则一定有外界因素促使其能级发生变化。相反,电子从高轨道跃迁到低轨道时会释放能量。这种能量是以光子的形式释放出来的。能级差越大,跃迁时释放的光子能量越高,即频率越高。正如前面一段提及的那样,穿越二极管的自由电子能进入P区的空穴。这相当于一个微粒从传送通道落入较低的轨道,所以电子以光子的形式释放能量。事实上,任何二极管都存在这种现象,但只有特殊材料制成的二极管才能发出可见光。比如,在一个标准硅二极管中的原子按某种方式方式排列起来,这种方式使得电子跃迁的距离相对较短。结果,光子的频率就很低以至于人眼无法看到,这种频率的光子处于光谱中的红外线区域。当然,这未必很糟糕:和其他元器件相比,红外LED是遥控装置的首选。用于数字钟的数码显示的能发出可见光的二极管是由一种特殊材料制成,其特点是传导通道和低轨道间的沟道较宽。沟道的尺寸决定了光子的频率―换句话说,它决定了光的颜色。虽然所有的二极管能发光,但大多数并非有效。对于一个普通的二极管,半导体材料自身会消耗许多光能。LED特殊的构造使其易于向外射放大量的光子。再者,它们被封装在塑胶球状物中使得光子集中到一个特定的方向。
同传统的白炽灯相比,LED有以下几点优势。首先,LED内没有回烧尽的灯丝,所以其寿命要长得多。其次,小体塑胶球形封装使LED更耐用。对于传统的白炽灯而言,在其工作过程中会产生大量的热。这完全是一种能源浪费,除非你想用灯泡作发热器。相对而言,LED产生的热量非常少。大部分电功率将直接用于发光,这在很大程度上降低了电力需求。以前,LED的成本较高以至于无法将其广泛地用于照明。但在过去的十年里,半导体元件的成本急剧下降,使得LED在许多情况之下的照明元件选择上很划算。虽然到现在为止,LED的造价仍比白炽灯的高,但从长远来看其应用前景非常广阔。在不久的将来,LED会在技术领域里发挥更大的作用。
瞬态电压抑制二极管介绍
• 有效保护高感应可携式设备
• 根据及通过IEC国际静电测试标淮
• 应用二极管P/N结面的特性来达到静电保护原理
什么是瞬态电压?
瞬态电压是交流电路上电流与电压的一种瞬时态的畸变。浪涌、谐波为主要的表现形式。瞬态电压最主要的特点有三个:
超高压, 瞬时态, 高频次。超高压是指通常的瞬态电压尖峰,高出正常电路电压幅值的好几倍。瞬时态是指瞬态电压持续的时间非常之短,它可以在数亿分之一秒内完成迸发到消失的过程。高频次是指瞬态电压的活动十分频繁,可以说无时不有、无处不在。瞬态电压是会对微电子半导体芯片造成损坏的。虽然有些微电子半导体芯片受到瞬态电压侵袭后,它的性能没有明显的下降,但是多次累积的侵袭会给芯片器件造成内伤而形成隐患。瞬态电压对芯片器件造成的损伤难以与其它原因造成的损伤加以区别, 从而不自觉地掩盖了失效的真正原因。由于微电子半导体芯片的精、细、结构, 如要替换或修理需要使用高度精密仪器,是非常费财的。为一的有效方法就是把瞬态电压抑制在被保护元件能承受的安全水平。
瞬态电压抑制二极管的优势
• 瞬态电压抑制二极管与齐纳二极管
与传统的齐纳二极管相较,瞬态电压抑制二极管的P/N结面积更大。这一结构上的改进使瞬态电压抑制二极管具更强的高压承受力和更快的效率。相较之下齐纳二极管也有较高的抑制电压和较慢的散热速度。
• 瞬态电压抑制二极管与多层金属氧化物突波吸收器
瞬态电压抑制二极管与多层金属氧化物突波吸收器最大的不同是多层金属氧化物突波吸收器的功能会在瞬态电压的冲击下衰退。当瞬态电压侵袭时,多层金属氧化物突波吸收器的相关参数如漏电电流值和中止电压值都会偏离原来的参数而变得不准确。还有多层金属氧化物突波吸收器有较高的阻抗所以它的抑制电压可达最初中止电压的3倍,这种特性只m合用于对电压不太感应的线路和元件的保护。
• 瞬态电压抑制二极管与陶瓷电容器
陶瓷电容器这类元件对高压的承受力比较弱。如有10kV的瞬态电压冲击时,会对陶瓷电容器造成约60%的损坏,而瞬态电压抑制二极管能承受到15kV的瞬态电压。在瞬态电压侵袭时所产生的热量,陶瓷电容器也没有办法象瞬态电压抑制二极管那样很有效的把它散去。
• 瞬态电压抑制二极管与离子气体放电管
瞬态电压抑制二极管是以抑制电压的方式来达到瞬态电压保护,而离子气体放电管是以铁橇动作的方式来达到瞬态电压保护。离子气体放电管的缺点是在启动后保持在非常低的电压壮态,电压低于负载的正常工作电压。在这种情形下,负载没有办法绩续工作,会暂时的关闭。
1.1 照明用LED驱动电路原理顶层图
1.2 绿光驱动电路原理图
1.3 蓝光驱动电路原理图
1.4 红光驱动电路原理图
1.5 白光驱动电路原理图
1.6 驱动板TopOverlayer
1.7驱动板Toplayer
1.8 驱动板BottomOverlayer
1.9 驱动板Bottomlayer
测试程序清单
LIST&&& P=16F684,F=INHX8M&& &&& ;列表伪指令
INCLUDE &p16F684.inc&&&&&&& &&& ;将头文件含入源文件中
&;---------------------------------------------------------
COUNT0&&& EQU&& 0x20&&&&&&&&&& ;计数变量寄存器定义
COUNT1&&& EQU&& 0x21&&&&&&& &&& ;
TMR0A&&&& EQU&& 0BBH&&&&&&&&&& ;TMR0寄存器初始值定义
TMR1LB&&& EQU&& 9CH&&&&&&&&&&& ;TMR1低字节寄存器初始值定义
TMR1HB&&& EQU&& 0FFH&&&&&&&&&& ;TMR1高字节寄存器初始值定义
RA0&&&&&& EQU&& 0&&&&&&&&&&& && ;I/O端口位定义
RA1&&&&&& EQU&& 1&&&&&&&&&&&&&& ;
RA4&&&&&& EQU&& 4 &&&&&&&&&&&&& ;
RC4&&&&&& EQU&& 4&&& &&&&&&&&&& ;
;----------------------------------------------------------
&&&&& ORG&&&& 0&&&&&&&&&&&&&& & ;设置复位向量地址
&&&&& NOP&&&&&&&&&&&&&&&&&& &&& ;用ICD调试时需要加入NOP指令
&&&&& GOTO&&& INITIALIZE&&&& && ;跳转到初始化程序入口处
&&&&& ORG&&&& 0x04&&&&&&&&&& && ;中断矢量
&;----------------------------------------------------------
&&&&& BCF&&&& STATUS,RP0&&&& && ;Bank 0
&&&&& BTFSC&& PIR1,TMR1IF&&& && ;TMR1溢出中断否?
&&&&& GOTO&&& TMR1INT&&&& &&&&& ;是!转入TMR1中断处理子程序
&&&&& BTFSC&& PIR1,TMR2IF& &&&& ;否!TMR2溢出中断否?
&&&&& GOTO&&& TMR2INT&&&&&& &&& ;是!转入TRM2中断处理子程序
&&&&& BCF&&&& INTCON,T0IF& &&&& ;清除TMR0中断标志位
&&&&& BCF&&&& INTCON,T0IE&&& && ;关闭TMR0计数器
&&&&& INCF&&& COUNT0,1&&&&&& && ;COUNT0+1
&&&&& MOVLW&& TMR0A&&&&&&& &&&& ;TMRO重新赋初值
&&&&& MOVWF&& TMR0
&&&&& BSF&&&& INTCON,T0IE&&&& & ;重新启动TMR0
&&&&& RETFIE&&&&&&&&&&&&&&&&& & ;返回
&&&&& BCF&&&& PIR1,0&&&&&&&&& & ;清除TMR1中断标志位
&&&&& BCF&&&& T1CON,0& &&&&&&&& ;关闭TMR1计数器
&&&&& INCF&&& COUNT1,1&&&&&& && ;COUNT1+1
&&&&& MOVLW&& TMR1LB&&&&&& &&&& ;TMR1低字节赋初值
&&&&& MOVWF&& TMR1L&&&&&&&&& && ;
&&&&& MOVLW&& TMR1HB&&&&&& &&&& ;TMR1高字节赋初值
&&&&& MOVWF&& TMR1H& &&&&&&&&&& ;
&&&&& BSF&&&& T1CON,0&&&&&&&& & ;重新启动TMR1
&&&&& RETFIE&&&&&&&&&&&&&&&&&& ;返回
&&&&& BCF&&&& PIR1,TMR2IF& &&&& ;清除TMR2中断标志位
&&&&& RETFIE&&&&&&&&&&&&&&&&&& ;返回
&;----------------------------------------------------------&&&&&&&&&&&
INITIALIZE&
&;*****Timer0初始化,定时1.11ms*****
&&& && BCF&&&& STATUS,RP0&&&& & ;Bank 0
CLRF&&& TMR0 &&&&&&&&&&&& ;清TMR0
BSF&&&& STATUS,RP0&&&&&&& ;Bank 1
MOVLW&& 0C4H&&&& &&&&&&&& ;将预分频器分配给Timer0模块,
&&&&& MOVWF&& OPTION_REG&&&&&&& ;预分频比设为"1:32"
&&&&& BCF&&&& STATUS,RP0&&&&& & ;Bank 0
&&&&& MOVLW&& TMR0A&&&&&&&&& && ;TMRO赋初值
&&&&& MOVWF&& TMR0
&;*****Timer1初始化,定时50us*****
&&&&& BCF&&&& STATUS,RP0&&&&& & ;Bank 0
&&&&& CLRF&&& TMR1L&&&&&&&&&&& ;
&&&&& CLRF&&& TMR1H&&&&&&&&&&& ;
&&&&& MOVLW&& 04H&&&&&&&&& &&&& ;设置控制寄存器内容:
&&&&& MOVWF&& T1CON& & &&&&&&&;暂不打开TMR1,预分频比"1:1"
&&&&& MOVLW&& TMR1LB&&&&&&&& && ;TMR1低字节赋初值
&&&&& MOVWF&& TMR1L&&&&&&&&&&& ;&&&&&&&&&&&&&&&&&&&&&&
&&&&& MOVLW&& TMR1HB&&&&&&&& && ;TMR1高字节赋初值
&&&&& MOVWF&& TMR1H&&&&&&&&&&& ;
&&&&& BSF&&&& STATUS,RP0&&&& && ;Bank 1
&&&&& BSF&&&& PIE1,0&&&&&&&& && ;开放TMR1中断使能位
&;*****PWM模式初始化,周期1ms,占空比50%*****
&&&&& BCF&&&& STATUS,RP0&&&& && ;Bank 0
&&&&& CLRF&&& CCP1CON & &&&&&&& ;CCP模块关闭
&&&&& CLRF&&& TMR2 &&&&&&&& &&& ;清Timer2
&&&&& BSF&&&& STATUS,RP0&&&& && ;Bank 1
&&&&& MOVLW&& 7CH&&&&&& &&&& && ;PWM周期设置
&&&&& MOVWF&& PR2 &&&&& &&&&&&& ;
&&&&& BCF&&&& STATUS,RP0&&&&&& ;Bank 0
&&&&& MOVLW&& 2CH &&&&& &&&&&&& ;PWM模式选择,占空比低两位设置
&&&&& MOVWF&& CCP1CON & &&&&&&& ;&&
&&&&& MOVLW&& 3EH &&&&& &&&&&&& ;占空比高8位设置
&&&&& MOVWF&& CCPR1L &&&&&& &&& ;
&&&&& MOVLW&& 02H&&&&&&&&&&& && ;TMR2设定:后分频比1:1,
&&&&& MOVWF&& T2CON&&&&&&&&& && ;预分频比1:16,暂时不开启
&&&&& BSF&&&& STATUS,RP0&&&& && ;Bank 1
&&&&& BSF&&&& PIE1,1&&&&&&&& && ;开放TMR2中断使能位
&&&&& CLRF &PIR1 &&&&&&&&&&&&& ;清外设中断标志位
&;*****PORTA初始化*****
&&&&& BCF&&&& STATUS,RP0&&&& && ;Bank 0
&&&&& CLRF&&& PORTA&&&&&&&&& && ;PORTA输出数据寄存器清零
&&&&& MOVLW&& 07H&&&&&&&&&&& && ;RA&2:0&配置为数字I/O
&&&&& MOVWF&& CMCON0&&&&&&& &&& ;
&&&&& BSF&&&& STATUS,RP0&&&& && ;Bank 1
&&&&&& CLRF &&& &&ANSEL&&&& && ;引脚被分配给端口
&&&&&& MOVLW&& 0CH&&&& &&&&&&&& ;RA&3:2&设置为输入
&&&&&&& MOVWF&& TRISA&&& &&&&&&&&&& ;RA&5:4,1:0&设置为输出
&;*****PORTC初始化*****
&&&&& BCF&&&& STATUS,RP0&& &&&& ;Bank 0
&&&&& CLRF&&& PORTC&& & &&&&&&& ;PORTC输出数据寄存器清零
&&&&& MOVLW&& 07h&&&& & &&&&&&& ;Set RC&4,1:0& to digital I/O
&&&&& MOVWF&& CMCON0& & &&&&&&& ;
&&&&& BSF&&&& STATUS,RP0&&&& && ;Bank 1
&&&&& CLRF&&& ANSEL&&&&&&&&& && ;引脚被分配给端口
&&&&& MOVLW&& 0Ch&&&&&&&&&&& && ;RC&3:2&设置为输入
&&&&& MOVWF&& TRISC&&&&&&&&& && ;RC&5:4,1:0&设置为输出
&;----------------------------------------------------------
&&&&&& BCF&&&& STATUS,RP0&&&& & ;Bank 0
&&&&& CLRWDT&&&&&&&&&&&&&&&& && ;清零看门狗定时器
&&&&& CLRF&&& INTCON&&&&&&&& && ;关闭所有中断
&&&&& BSF&&&& STATUS,RP0&&&& && ;Bank 1
&&&&& MOVLW&& 77H&&&&&&&&&&& && ;选用振荡频率为8MHZ的内部时钟
&&&&& MOVWF&& OSCCON &&&&&&&&&& ;
&&&&& BSF&&&& STATUS,C&&&&&& && ;计数标志检测位设置
& &&&&BCF&&&& STATUS,RP0&&&& && ;Bank 0&&&&&&&&&&
&&&&& CLRF&&& COUNT0&&&&&&&&&&&&&&& ;计数变量寄存器清零
&&&&& CLRF&&& COUNT1&&&&&&&&&&&&&&& ;
&&&&& BSF&&&& PORTA,RA0& && &&& ;RA0置1
&&&&& BSF&&&& PORTA,RA1&&&&& && ;RA1置1
&&&&& BSF&&&& PORTA,RA4&&&&& && ;RA4置1
&&&&& BSF&&&& PORTC,RC4&&&&& && ;RC4置1
&&&&& MOVLW&& 0C0H&&&& &&&&&&&& ;使能全局中断
&&&&& MOVWF&& INTCON&&&&&&&&&&&&&&& ;
BSF&&&& INTCON,T0IE&&& && ;启动TMR0
&&&&& BSF&&&& T1CON,0&&&&&&& && ;启动TMR1
&&&&& BSF&&&& T2CON,2&&&&&&& && ;启动TMR2
&&&&& BTFSC&& COUNT0,0&&&&&& && ;检查COUNT0是否等于1
&&&&& GOTO&&& RESET&&&&&&&&& && ;是!跳转
&&&&& BTFSS&& COUNT0,2&&&&&& && ;否!检查COUNT0是否等于4
&&&&& GOTO&&& CHECK1&&&&&&&& && ;否!跳转
&&&&& CLRF&&& COUNT0&&&&&&&& && ;是!COUNT0清零
&&&&& BSF&&&& PORTA,RA0&&&&& && ;PORTA的三个I/O口重新置1
&&&&& BSF&&&& PORTA,RA1&&&&& && ;
&&&&& BSF&&&& PORTA,RA4&&&&& && ;
&&&&& GOTO&&& CHECK1&&&&&&&& && ;转向COUNT1检查
&&&&& BCF&&&& PORTA,RA0&&&&& && ;PORTA的三个I/O口清零
&&&&& BCF&&&& PORTA,RA1&&&&& && ;
&&&&& BCF&&&& PORTA,RA4&&&&& && ;
&&&&& MOVF&&& COUNT1,0&&&&&& && ;将COUNT1中的值存入W寄存器
&&&&& SUBLW&& 02H&&&&&&&&&&& && ;检查COUNT1是否等于3
&&&&& BTFSC &&STATUS,0&&&&&& && ;
&&&&& GOTO&&& NEXT&&&&&&&&&& && ;否!跳转
&&&&& BCF&&&& PORTC,RC4&&&& &&& ;是!RC4清零
&&&&& BSF&&&& STATUS,0&&&&&& && ;进/借位标志位还原
&&&&& MOVF&&& COUNT1,0&&&&&& && ;将COUNT1中的值存入W寄存器
&&&&& SUBLW&& 09H&&&&&&&&&&& && ;检查COUNT1是否等于10
&&&&& BTFSC&& STATUS,0&&& &&&&& ;
&&&&& GOTO&&& NEXT&&&&&&&&&& && ;否!跳转
&&&&& CLRF&&& COUNT1&&&&&&&& && ;是!COUNT1清零
&&&&& BSF&&&& PORTC,RC4&&&&& && ;RC4重新置1
&&&&& BSF&&&& STATUS,0&&&&&& && ;进/借位标志位还原
&&&&& GOTO&&& CHECK0&&&&&&&& && ;等待各定时器超时溢出中断
&;----------------------------------------------------------
&&&&& END&&&
上一条新闻:
下一条新闻:
 ?&&?&&? &?&&?&&?&&?&&? &? & ?&&? &? &?&&?&&?&&?&& ?&&? &? &?&&?&&?&&& ?&&&? &? &? &? &?  友情链接交换:|||||||||
     
--------------------------------------------------------------------广告位---------------------------------------------------------

我要回帖

更多关于 洛阳新思路电气 的文章

 

随机推荐