APP下载

基于PIC单片机的医用LED手术灯设计

2011-02-20余阿陵陈显彬

陕西科技大学学报 2011年2期
关键词:高亮电源开关程式

余阿陵, 陈显彬

(1.汕头职业技术学院机电工程系, 广东 汕头 515041; 2.汕头高威电子有限公司, 广东 汕头 515041)

0 引 言

在各级政府采购招标网站上,医院手术灯设备中出现了一个新名词:“冷光源手术灯”.医院手术室环境使用的照明灯具过去为白炽灯、卤素灯等发热光源.在国家大力提倡环保节能的今天,医院手术照明也开始了向冷光源方向发展.半导体发光二极管(Light Emitting Diode,LED)以其饱满色光、无限混色、迅速切换、耐振、耐潮、超长寿和少维修等优势成为人们日常生活中最热门、最瞩目的光源.随着LED材料的革新、工艺的改进和生产规模的提高,LED将成为新一代的绿色光源[1].医用手术灯出现的冷光源手术灯,正是引入了绿色光源的概念.而在医院手术环境下的防爆、高效能、易操作、易控制等特殊使用要求上,高亮度LED灯较同为冷光源的日光灯具有更加明显的技术优势.

1 系统设计要求

医院手术环境对手术灯操作要求如下:第一,操作面板应有电源开关键、功能选择键、增大(+)键、减小(-)键;第二,按“电源开关”键,可开或关照明灯.开时初始设定为“亮度设定”第5级,“程式设定”为“程式1”;第三,连续操作“功能选择”键,可在“程式设定”、“亮度设定”中交替选择所需设定方式.其中,选择“亮度设定”,对应有“亮度”功能指示灯亮,操作增大(+)键、减小(-)键,可调手术灯亮度,调节范围分为1~9级;再则,选择“程式设定”,对应有“程式”功能指示灯亮,操作增大(+)键、减小(-)键,可选择4种程式之一,具体见表1.

表1 程式功能号与功能对应表

最后,“程式设定”选定后,操作“功能选择”键,回到“亮度设定”状态下开始以设定的程式运行.

2 硬件设计与工作原理

2.1 系统结构设计

系统结构框图如图1所示,以单片机配合设计要求的电源开关键、功能选择键、增大(+)键、减小(-)键等4个操作键及对应指示“亮度设定”、“程式设定”工作方式指示灯、数码管显示等,其中单片机完成高亮LED恒流驱动的PWM方式控制、定时控制.而高亮LED恒流驱动电路则完成高亮LED阵列的电流供给,同时通过LED电流检测电路自动调整高亮LED阵列电流大小,实现高亮LED阵列所要求的恒流驱动要求[2].

图1 系统结构框图

2.2 硬件电路设计

硬件电路分为2个部分:第一部分为主控电路,由PIC16F627与PT4115组成,如图2所示;第二部分为高亮LED阵列电路,如图3所示.

图2 PIC16F627控制的PT4115驱动电路

在第一部分中,单片机采用Microchip Technology Inc.的单片机PIC16F627,其带有PWM工作模式[3].利用其PB口的高四位设置为输入方式,连接电源开关键、功能选择键、增大(+)键、减小(-)键等4个操作键,按键操作低电平有效;使用其PA口完成静态LED数码管的显示;通过其PIN⑨CCP1脚产生PWM信号送高亮LED阵列恒流驱动PT4115的PIN③DIM端,实现亮度控制与定时控制;其PIN⑦、⑧分别接到指示“亮度设定”、“程式设定”工作方式指示灯D1、D2,便于在按键操作时,配合数码管LED完成相应功能设置指示;PIN⑥外接蜂呜器,产生按键操作时的提示音.而高亮LED驱动电路选用华润矽威科技(上海)有限公司新推出的PT4115绿色照明LED灯驱动电路,电路采用其数据手册所介绍的典型电路[4-6],其PIN①引脚所接L1、D3分别为续流电感、续流二极管,其作用为恒定高亮LED阵列的稳定电流;电流取样电阻R9将高亮LED阵列工作电流取样后送入PT4115的PIN④,由设定流过LED 的电流IF,R9=0.1/IF;1 W 的白光LED的标准工作电流应为350 mA,考虑到延长LED寿命和降低光衰、PT4115的电流驱动能力等,由图3 19个1 W高亮LED组成LED阵列,选设IF=1 A,则R9取0.1 Ω;PT4115 的开关频率采用抖频技术有效降低EMI,省略了抗EMI电路[4].由连接端J2连接高亮LED阵列电路;电阻R14、R15为将单片机PIC16F627输出电平转换为PT4115 DIM端电平的分压,可依电路实测调整其大小.图2中的U3 LM78L05部分为单片机PIC16F627提供+5 V工作电源.

在第二部分电路中,D1~D19为19只1 W高亮LED灯组成的四串五并组合阵列,R20~R24为各串间平衡电阻,可视需要调整其阻值大小;R1C2、R2C3、R3C5、R4C7为第一串LED组合的串内动态平衡网络,R5C1~R18C19同理;二极管D00~D03为代替最后一串LED组合中所减少的一只LED等效电路.

图3 19个1 W高亮LED组成的LED阵列

3 软件设计

3.1 PWM产生及调整、定时、电源开关功能

由PT4115数据手册技术要求,其DIM端通过PWM调光,LED的亮度是由PWM信号的占空比决定的.当PWM信号有25%占空比,LED的平均电流为(0.1/RS)的25%.建议设置PWM调光频率在100 Hz以上,以避免人的眼睛可以看到LED的闪烁.PWM调光比模拟调光的优势在于不改变LED的色度.PT4115调光频率最高可超过20 kHz[4].本电路中,因定时要求精准度不高,而PWM调光重点在于其占空比要求,因此单片机PIC16F627没有使用外接晶振,而是采用芯片内部自带4 MHz的RC振荡,将PWM信号周期通过程序设定在1 kHz左右,能够满足上述PT4115的调光要求.由如下程序段[7]实现单片机CCP1初始化设置:

/////ccp1初始设置

setup_ccp1(ccp_pwm); //将CCP1给PWM

setup_timer_2(T2_DIV_BY_1,0xFF,1); //定时器2进行全计数

由设计要求中要求调光亮度分为9个等级,通过如下程序语句,改变其中的b值大小就可实现占空比大小调整:

set_pwm1_duty(b); //设定PWM信号占空比

在程序中,利用数学关系:b=b±90,由初始亮度设定为第5级时,对应b=632,而从第1级到第9级亮度对应的b值为272~992,由参考文献[7、8]知,对应占空比为:

在程序中定时设定功能采用软件延时产生一个10 ms的标准信号,为产生标准1 h、2 h时间段控制,分别通过2个变量c、e进行软件减计数完成.

若要关断LED阵列电源,只需将PWM信号停止,在PIC16F627的PIN○9CCP1脚输出低电平信号.

3.2 C程序中单片机配置字设定与全局数据定义

以下为在MPLAB IDE环境下,使用CSS公司的C语言编译器编写的C程序时的单片机配置字设定、全局数据定义及数码管显示段码表数组:

#include<16f627a.h>

#fuses=0x1F10 //设置使用片内振荡电路为系统时钟、上电延时等

#use delay(CLOCK=4000000) //设置片内振荡电路为4MHz

unsigned int a=5; //亮度等级初始级显示设定

unsigned long b=632; //占空比设定,初始设置在62%

unsigned long c=7200; //7200代表两小时运行设定值

unsigned long e=3600; //一小时运行设定值 3600

short PON; //电源开关标志位设置

short mod=1; //程式、亮度标志位设置

unsigned int d=1; //4个程式方式初值

int const LED_SEG[10]={0x80,0x0C,0x97,0x9E,0xCC,0xDA,0xDB,0x0E,0xDF,0xDE};

//数码管显示段码表

3.3 主函数

主函数是运行方式自动运行的主体.在其前段部分,分别完成单片机各引脚输入输出的初始设定;按键工作的中断条件允许;前3.1所述的PWM信号初始设置.对应该部分的C程序如下:

void main()

{ setup_comparator(NC_NC_NC_NC);

set_tris_a(0); //单片机PA口设为输出方式

set_tris_b(0xF0); //单片机PB口,高四位设为输入、低四位设为输出

port_b_pullups(TRUE); enable_interrupts(INT_RB); //中断允许

enable_interrupts(GLOBAL); setup_ccp1(ccp_pwm); //ccp1初始设置

setup_timer_2(T2_DIV_BY_1,0xFF,1);

其后是依条件运行部分,这部分要依表1的要求分别实现4种程式功能,同时为方便使用,要求有按键操作时应有蜂鸣器发声等.对应该部分的实现程序如下,这里只给出在d=3时的运行方式部分,其他类似.

if(d==3) //判定是否是程式方式3

{ delay_ms(1000); //定时标下完成一小时的设定亮度HBLED工作

e--;

if(e==0) //一小时,计时满后,亮度递增一级

{ a++;b=b+90;

if(a==10) //判定是否到达最高亮度级,是则不在递增

{ a=9;b=992;e=3600;} //重置e值为3600

而在PON=0时,将单片机的PWM输出停止并置于睡眠状态,显示设置为待机状态.

{ output_A(LED_SEG[0]);set_pwm1_duty(0);output_bit(PIN_B1,1);

output_bit(PIN_B2,1);output_bit(PIN_B0,0);sleep();}

3.4 按键操作函数

按键操作函数为单片机PB口高四位操作识别处理的中断函数,分别有PIN_B7对应的电源开关键(在开操作时,重新初始化全局数据);PIN_B6对应的程式、亮度标志交换选择;PIN_B5对应的程式、亮度数增;PIN_B4对应的程式、亮度数减操作.对应简化的C程序如下:

void isr_cos()

{ if(!input(PIN_B7))

{ PON=~PON;

if(PON==1) //如重新开启PWM到PT4115

{…… ;} //省略重置a、b、c、d、e、mod、PON部分内程序内容

}

if((!input(PIN_B6))&&(PON==1)) //若在开启PWM后在PIN_B6按键操作

{ mod=~mod;} //程式、亮度标志交换选择

if((mod==0)&&(PON==1)) //若在开启PWM,且为程式选择下

{ output_bit(PIN_B1,1);output_bit(PIN_B2,0); //置对应指示灯

if(!input(PIN_B5)) //若有加操作,d值加1,最大到4

……; //省略,同理在PIN_B4有减操作时,d值减1,最小到1

output_A(LED_SEG[d]);} //数码管显示所选程式功能号

if((mod==1&&(PON==1))) //若为开启PWM,且为亮度选择下

{ ……… //此处省略加减操作部分,原理同前程式选择

output_A(LED_SEG[a]);}} //数码管显示所选亮度级

4 测试结果

对上述电路与程序的验证采用实物与在PROTEUS ISIS仿真环境下测试,分别用PROTEUS下的VSM示波器与实物波形测试其PWM波形.如图4、图5为分别在“亮度设定”第1级、第9级所测的波形.

图4 最低亮度下PWM仿真波形 图5 最高亮度下PWM仿真波形

从波形上可以看出其占空比与设计内容是一致的.在实物测试上,通过操作键:电源开关键、功能选择键、增大(+)键、减小(-)键等电路均正常完成相应“亮度设定”、“程式设置”、功能切换等功能,高亮度LED阵列的亮度变化范围等都很好的达到了设计要求,同时实现了前述表1中的各项程式方式运行要求.

参考文献

[1] 孙宏亮,杨晓光.LED照明设计与选型若干问题的探讨[J].电气应用,2009,12:14-17 .

[2] 陈 琍, 贾沛德.医用手术灯微机控制系统设计[J].微型电脑应用,2009,7:17-18.

[3] PIC16F627A/628A/648A data Manual[Z].Microchip Technology Inc,2005.

[4] PT4115-EN-BRIEF[Z].Crpowtech (Shanghai) Co.,Ltd,2007.

[5] 王志远,霍彦明,谭俊庭.LED灯具智能驱动系统设计[J].灯与照明,2010,1:25-28.

[6] 郑久云,韩志刚,罗胜钦.白光LED的应用与驱动[J].现代显示,2009,8:43-46.

[7] [日]后闲哲也.PIC单片机C程序设计与实践[M].常晓明译.北京:北京航空航天大学出版社,2008:293-303.

[8] 江 和.PIC16系列单片机C程序设计与PROTEUS仿真[M].北京:北京航空航天大学出版社,2010:137-153.

猜你喜欢

高亮电源开关程式
增程式电动汽车续驶里程的延长优化
英语程式语可学性的语言模因论解读
基于Motor-CAD的增程式电动车发电机设计
高亮燃橙
关于双电源自动切换装置在水电站应用的探讨
中央高亮企业家精神
高亮国画作品
冬天里的一桶水
Fairchild发布1000 V 集成电源开关
关于继电保护开关电源的电容器使用寿命探讨