|
|
| | -文章搜索 - 最新文章 - | |
飞利浦51LPC系列单片机用于控制交流电机 |
| 发布时间:2006年5月19日 点击次数:1040 |
| 来源: 作者:西安电子科技大学201教研室(710071) 徐秀红 |
摘要:飞利浦公司研制的51LPC系列单片机是采用两倍速80C51内核,具有低成本、低功耗、低电磁干扰(EMI)、高抗干扰性及内建电源Brownout侦测、模拟功能、UART、I2C和片内RC振荡器的新一代单片机。本文介绍51LPC系列单片机控制交流电机的原理电路和源程序。 关键词:P87LPC761 Brownout侦侧 模拟比较器 EMI 电流过零检测 半波整流 双向可控硅 1 概述 PHILIPS 51LPC系列单片机目前已包括P87LPC760/1/2/4/7/8/9共七个型号。51LPC提供高速和低速的晶振和RC振荡方式,可编程选择;具有较宽的操作电压范围2.7~6.0V,可编程I/O口线输出模式选择,可选择施密特触发输入,LED驱动输出;有内部看门狗定时器及提供掉电检测模拟功能,最大限度地减少了外部元件的使用。这些特性和改进的C51结构结合在一起,使得在设计高集成度、低成本和低功耗控制电路时具有更多的选择。该系列主要用于对系统成本有严格要求,且系统具有高抗干扰性能的低功耗应用领域,已广泛用于电子阳性能表、IC卡水表、电子称、消毒碗柜、LED显示屏、煤气表等工业控制领域。
2 原理 2.1 负载电压的过零控制——单输入检测 方框图1和2为该应用的总体框图。电路直接通过市电进行供电,相位控制时序取决于市电电压过零检测(Voltage Zero Crossing)(见图1)或负载电流过零检测(Current ZeroCrossing)(见图2)。采用哪种检测方式取决于实际应用的情况。控制模块计算机发时刻,LPC可直接吸收多个Triac的门电流。为了降低EMI,保证安全操作并控制相位,有必要在电流过零或一个特定的相位角时触发Triac。对于阻性负载,电流和电压过零是一致的;对于感性负载,电流滞后于电压。负载的状态决定了Triac是根据电压过零还是电流过零进行可控硅的触发。 检测电压过零最简单的方法就是测量市电电压极性的变化。LPC的+5V端连接到电源线(或中性点),而中性点(或电源线)通过限流电阻连接到任意一个I/O口。I/O口的电压被内部钳位二极管钳制0V和+5V之间,如图3所示。微控制器可读入输入口的输入状态,并且当状态从1变为0或从0变为1时,检测到过电压的过零点。电平跳变点取决于I/O口的模式(TTL或施密特触发),过零点到检测点的延迟时间取决于电源电压的变化率(例如230V或110V系统), 2.2 电流过零检测——电流过零窗口比较器 电流过零(CZC)是Triac的换流点。在非线性负载时,由于电流过零点和电压过零(VZC)点不一致,CZC检测尤其重要;但是,监控CZC并不像监控VZC那么容易,因为,通常检测方式需要在负载上串联一个电阻,这就分离了负载电路且浪费了电能。通常方法是通过放大和电平变换,然后和微控制器相连,这至少需要一个额外的运算放大器及其相关元件。LPC检测电流过零采用了一种全新的方法:监控Triac门极(VG)到阳极(T1)的电压。VG-T1给出了Triac即将换流的一个信号,因为VG-T1在CZC时过零,根据负载电流和Triac的特性,VG-T1可低至0.1V或大于1.2V。如图4所示电路,使用窗口比较器监控该电压即能完成CZC功能。图4窗口比较器用于门电压和电流过零检测器,VG-T1相对于线电压可正可负,取决于负载电流的方向。也就是说VG-T1相对于VCC+5V而言可正可负。因此在LPC可监控之前,必须通过R4和R5分压,以使其低于VCC并处于比较器的操作电压范围,R1、R2和R3将电压限制在过零点附近。 3 完整的LPC+Triac+Motor(AC)电路实现 在P87LPC761和Triac的控制应用中,整个系统对电源消耗很低并具有高抗干扰性能,故可以通过阻容降压和单相半波整流由市电直接供电,而不需要昂贵且体积大的变压器,外部零件极少。此方案成本低。图5所示是一个感性负载的通用电路,同时适合阻性负载。Triac可使用BTA216 600E。像图4那样,通过查询P87LPC761的比较器来检测负载电流过零,并重新触发Triac。也可用中断驱动。启动电机时用电压过零测量并触发Triac的门级脉冲,以减少电磁干扰,并可从主循环的开始进行控制和重定义在启负载之间软件等待整个半周期。本例在复位后通过用户按键开启负载,通过按键可进行相角控制以控制电机的不同转速。如图5所示,LED发光管闪烁的快慢能体现电机转速,LED闪烁越快电机转动越快,反之则越慢;电机停转,LED熄灭。此电路稍经修改就可以用于其它许多类似的场合。 源程序清单: 该软件在Keil C51 V6.02上编译通过,在目标板上运动正常。如果用其它编译器必须稍加修改。 #include<reg761.h> #define uchar unsigned char #define uint unsigned int uchar s,x,y=0; void timer0(void)interrupt 1 using 1 {/*T0中断服务程序*/ x=x+1; if(x/10>s){ if(y= =0){P1=P1&0xfb; /*LED点亮*/ x=0;y=1;} else {P1=P1 0x04; /*LED熄灭*/ y=0;x=0;}} TF0=0;TH0=-(28/256); TL0=-(28%256); } void speed(s){ /*电机转换控制子程序*/ uchar pulsecount, pulseduration=0; uint i=0; uint j=0; if (((CMP1&0x02))&&!(CMP2&0x02)/*查询比较器*/ {for (i=0;i<s;i++) {for(j=0;j<210;j++) ;} /*延时触发*/ CMP1=CMP1&0xfc; CMP2=CMP2&0xfc; pulsecount=1; {P1=P1&0xfe; pulseduration=12; /*触发脉冲宽度*/ while(pulseduration){pulseduration- -;} P1=P1 0x01; pulsecount- -; } } } void Initcomparatior(void){ //初始化P87LPC761// PT0AD=0x6f; /*禁止P0口的数字功能*/ P0=0xff; P0M1=0x2a; /*P01,P03,P05设为高阻输入*/ P0M2=0xd5; /*P00,P04,P06设为推挽方式*/ P1=0xff; P1M1=0x82; /*P17用于VZC检测*/ P1M2=0x05; CMP1=0x34; CMP2=0x34; } void main(void) {uchar pulsecount ,pulseduration=0x00; uint j;i=0; SP=0x5f;EA=0; TH0=-(28/256); TL0=-(28%256); TF0=0;EA=0;TR0=0; ET0=1;CMP1=CMP2=0; Initcomparator(); CMP1=CMP1&0xfc; CMP2=CMP2&0xfc;s=0; while(P1_1) {;} while(!P1_1){;} while(P1&0x80){}; while(!(P1&0x80)){}; while(P1&0x80){} while(!(P1&0x80)){}; while(P1&0x80){}; P1=P1&0xfe; //启动电机 while(1) {if(P1_1= =0) { x=0; while (!x){;} if(P1_1=0) {P1=0xff;s=s+1;} //停止电机 if(s= =8){s=0;} while(!P1_1){;} //等待释放按键 while(!(P1&0x80)){}; while(P1&0x80)(); whie(!(P1&0x80)){}; while(P1&0x80){}; P1=P1&0xfe;} //启动电机 EA=1;TR0=1; speed(s); } } //结束 |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
[自动控制] 相关文章: 智能化键盘的设计及其在便携式产品中的应用简介:
摘要: 介绍一种利用GMS97C2051单片机设计的智能化键盘系统,给出其硬件电路及软件设计,并简要阐述其在便携式产品设计中的应用。 关键词: 智能化键盘 单片机 键值 I2C 便携式产品 GMS97C2051 ...... 基于AT90S8515单片机的瞬变信号捕获与存储器
P89C51RD2的BootROM与ISP功能的实现
DS80C320在高速数据采集中的应用
87C196MC与IPM模块组成的变频调速系统
KeilMonitor-51仿真板的制作与使用
单片机程序设计中运用事件驱动机制
汉芯公司低调发布新品 飞思卡尔回避侵权案
基于IIC1.0的时钟芯片应用程序设计
ST9+系列单片机I2C总线驱动程序实现 |
|
|
|