本帖最后由 tyw 于 2013-5-17 13:37 编辑
smartdog_1 发表于 2013-5-17 12:09
老师您好,由于我学习不认真,您的代码和原理图我没能完全理解,想请教您一下其中的疑惑。
1、利用Timer ...
1、利用Timer在P3.7引脚周期性产生方波来控制T11进而达到调相的作用。
调相是改变输入电源的相位,对于LED1来说,这种控制可控硅周期性导通的方式,怎么样做到改变相位的?
(俺对可控硅的原理也是一知半解,不对的地方请您多指教)
2、P3.7和P3.3都是周期性的脉冲,但是P3.3您描述的是调功。
我初略的理解为,调功是周期性的斩断电源通路,达到控制通断比,进而降低功耗。但是原理图上貌似没能做到周期性的通断电源通路
(如有不对的地方,请您多指教)
3、调功的话,对于LED会不会出现闪烁。如果通断比高于100Hz是不是就不会有闪烁了?
如果用调功方式控制白炽灯的话,是不是也有这样的问题?
4、过零检测是不是为了检测当前灯的电源已经切断了 ?
5、过零检测能不能使用18楼(cjseng)建议的LM393电压比较器?交流电周期性变化,能用这个芯片做吗 ?
1.
;**********************************************
;* 调相触发滞后时间调整 *
;*-----------------------------------------------------------------------*
;* 动作原理: 每个20mS周期一开始就触发, 导通角度最大 *
;* 每个20mS周期到,再延时几个mS触发,导通角度就减小 *
;* 每个20mS周期到,延时=20mS, 导通角度最小,即关闭了 *
;* 在一个20mS周期中,用延时触发方法来实现调相控制 *
;* 每20ms调整一档,每档0.1ms *
;* 半周期共调整10ms÷0.1ms=100档 *
;* 20msX100=2s调完半程,4s调完全程 *
;**********************************************
TT8: JNB 20H,DY5 ;20H="0",调相关,转DY5不调整
;*********************
;* 检查20mS定时是否到 *
;*********************
INC 56H ;5ms计数器加一
MOV A,56H ;取出5ms计数器值
CJNE A,#12,DY5 ;20ms未到,转DY5出口
MOV 56H,#00
;*******************
;* 20mS未到,禁止调相 *
;*******************
JNB 06H,DY5 ;06H="0",20mS未到,禁止调相,转DY5不调整
;*****************
;* 20mS到,允许调相 *
;*****************
JNB 21H,DY6 ;21H="0",已调到最高了,转DY6电压调低
;**************
;* 电压调高处理 *
;**************
MOV A,30H ;取出当前调相触发滞后时间值
CJNE A,#08,DY7 ;30H="02",电压最高值
SJMP DY5 ;30H="0",电压已调到最高了,转DY5出口
;
DY7: DEC 30H ;每20ms调相触发延时减一档(每档0.1ms),电压调高
SJMP DY5
;**************
;* 电压调低处理 *
;**************
DY6: MOV A,30H ;取出当前调相触发滞后时间值
INC 30H ;每20ms调相触发延时加一档(每档0.1ms),电压调低
CJNE A,#85,DY5 ;100usX100=10ms未到,转DY5出口
MOV 30H,#85 ;30H="97",电压已调到最低了,不再增加
;
DY5: POP ACC ;ACC出栈
POP PSW ;PSW出栈【恢复进栈前寄存器区】
RETI ;定时中断返回
2.
对于调功控制,打个比方, 在1秒内,要是50个周期(20mS x 50 = 1S) 都导通了,则平均功率最大, 要是只有25周期让其导通,则平均功率减半,以此类推.
控制方法: 在过零时触发可硅,根据设定值,在规定时间内触发,其余时间不触发.例如需要半功率,1秒内只需触发25次即可.
3.
调功只适用于热惯性较大的加热器之类负载,用热惯性来平衡断续的供电.灯泡之类在低于20Hz时会闪烁.
4.
过零检测是检测50Hz正弦波什么时刻幅值为0.
5.
可以的. 运放,比较器都能用,目标就是把工频电源采样信号与0电平进行比较,等于0则有输出脉冲. 分别用同相比较与反相比较,就能检测正向过0与反向过0了.
|