基于单片机实现的调光控制器方案设计书1.docx
《基于单片机实现的调光控制器方案设计书1.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的调光控制器方案设计书1.docx(12页珍藏版)》请在冰豆网上搜索。
![基于单片机实现的调光控制器方案设计书1.docx](https://file1.bdocx.com/fileroot1/2022-12/8/cbbf4fee-d5a9-4c7a-856a-11a9f93e71fd/cbbf4fee-d5a9-4c7a-856a-11a9f93e71fd1.gif)
基于单片机实现的调光控制器方案设计书1
1.实验要求:
用单片机控制一个普通灯泡的亮度,一路开关控制普通灯泡电源的通断,另外两路开关分别控制普通灯泡亮度的增加和减小。
2.调光控制器设计思想
在日常生活中,我们常常需要对灯光的亮度进行调节。
本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。
双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。
所以需要在交流电的每个半波期间都要产生触发信号,触发信号产生时间的长短(触发角的大小)就决定了灯泡的亮度。
调光的实现方式就是在交流电源信号过零点后一段时间触发双向可控硅开关的导通,称这段时间为双向可控硅的触发角。
触发角越大,导通时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。
这就要求确定交流电源同步信号的过零点,并以此为基础,控制触发信号触发角的大小,达到白炽灯亮度调节的目的。
3.实验过程:
3.1硬件设计
3.1.1I/O通道的设计:
(1)同步信号采集电路
a、查明图中所用元器件的参数;
b、画出图中1、3、syn三点的信号波形。
(2)可控硅触发电路:
a、查明图中所用元器件的参数;
b、画出图中L1_D、4两点的信号波形。
3.1.2硬件电路部分
单片机控制电路原理图
(1)设计时钟电路
(2)设计上电复位电路
(3)设计开关量信号控制电路
(4)电位器电压给定及电压采样电路
3.2画出控制原理总图
并给出总图中所用元器件的选型清单(清单中应包含序号、元器件名称、规格、单位、数量、单价、合计及总价等)
本调光控制器的框图如下:
控制部分:
为了便于灵活设计,选择可多次写入的可编程器件,本设计方案中选用的是ATMEL公司生产的AT89C51单片机。
驱动部分:
由于驱动的对象是交流负载,且为了实现连续调节的目的,本电路中采用了无触点开关元件双向可控硅。
双向可控硅能够对交流电源的导通进行无触点连续控制,以小电流控制大电流,且动作快、寿命长、可靠性高。
负载部分:
本电路的负载是白炽灯(纯阻负载)。
4.软件部分
要控制的对象是50Hz的正弦交流信号,通过同步信号检测电路,将同步信号送至单片机的中断口。
单片机接收到同步信号后就启动一个延时程序,延时的具体时间由按键来改变。
延时结束后,单片机立即产生触发信号。
触发信号可使可控硅导通,电流经过可控硅流过白炽灯,使灯发光。
延时越长,亮的时间就越短,灯的亮度越暗。
由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。
理论上讲,延时时间应该可以是0~10ms内的任意值。
在程序中,将一个周期均分成N等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。
可控硅的触发脉冲宽度要根据具体的光耦结合示波器观察而定,在本设计中取20μs。
程序中使用T1来控制这个时间。
对两个调光按键的处理的方式是:
短按只调整一个台阶,长按可以连续调整。
4.1软件设计:
(1)电位器电压给定及电压采样
(2)开关量(I/O端口)输入输出
(3)定时器结构定义及延时
(4)触发脉冲产生
(5)单片机中断及定时器初始化
(6)中断子程序
(7)主程序
4.2交流电源同步信号
交流电源同步信号的产生如图2电路所示,图中的同步信号就是我们需要的交流电压过零点信号。
各部分波形如图3所示。
图中整流后波形中的水平虚线表示光藕P52l输入二极管的门限电压。
P521是TLP521的简称,下图是其引脚图。
引脚图中器件名的后缀“-1”表示包含一组光藕。
2、程序编写
(三)系统软硬件联调
4.3单片机控制部分:
主控单元以AT89C51单片机为核心,交流电压过零点信号提取电路中产生的同步信号SYN接到AT89C5l的INT0,此信号的下降沿将使AT89-C51产生中断,以此为延时时间的起点。
三个按键只用于控制一路灯:
一个为开关,另外两个分别为提高亮度和降低亮度。
74HC573用于输出控制可控硅的导通的触发信号。
220V交流主电源导通区间、同步信号和触发信号的时序关系如图6所示。
图中的阴影部分表示可控硅的导通区间,它的大小决定了灯的亮度。
改变延时时间可改变触发信号和同步信号的相位关系,也改变了可控硅的导通区间的大小,达到调光的目的。
1、编写程序流程图
4.4驱动单元:
图中,L1_D是单片机输出的触发信号,该信号通过光控可控硅MOC3022去驱动可控硅T435。
受控的白炽灯接在Ll和零线(图中未画出)之间。
MOC3022是DIP-6封装的光控可控硅。
其1、2脚分别为二极管的正、负极:
4、6脚为输出回路的两端;3、5脚不用连接。
如图8所示。
T435-400是可控硅,“4”表示主回路电流是4A;“35”表示触发端的最大电流是35mA,一般该端有最大电流的5%就可保证可靠地触发。
T435-400外型图如图9所示。
5、硬件和软件设计过程中存在的问题及改进方法
6、程序
ORG0000H
LJMPINIT
ORG000BH;定时器0用于设定触发角的大小
LJMPTIMER
ORG001BH;定时器1用于按键消抖延时
LJMPDELAY2MS
ORG0030H
//初始化程序
INIT:
MOVR3,#13H;灯光亮度级别寄存器
MOVTMOD,#11H;定时器的工作模式
SETBET1;允许定时器1中断
SETBEA;允许全局中断
SETBET0;允许计时器0中断
MOVTH1,#0B1H
MOVTL1,#0E0H;定时器1赋初值
MOVR0,#00H;增量键状态寄存器
MOVR1,#00H;减量键状态寄存器
MOVR2,#00H;开机键计数
CLR20;开机状态寄存器
//主程序
MAIN:
JBP2.2,COUNTPOWER;判断开机键
MAIN1:
JBP2.0,MAIN;判断开机状态
JBP2.1,OPENTIMER;判断过零点,如果过零点就开定时器0
JNBP2.3,COUNTADD;判断减量键
JNBP2.5,COUNTDEC;跳到增量子程序
LJMPMAIN
//开机键消抖程序
COUNTPOWER:
SETBTR1
CJNER2,#8,MAIN
MOVR2,#00H
LJMPONOFF
//增量键消抖子程序
COUNTADD:
SETBTR1
CJNER0,#10,MAIN
MOVR0,#00H
LJMPTURNADD
//减量键消抖子程序
COUNTDEC:
SETBTR1
CJNER1,#10,MAIN
MOVR1,#00H
LJMPTURNDEC
//开机或关机
ONOFF:
CPL20
CPLP2.2
MOVR5,#0E4HMOVR6,#0DAH
MOVTH0,R6
MOVTL0,R5
MOVR3,#13H
LJMPMAIN1
//过零点开定时子程序
OPENTIMER:
SETBTR0
LJMPMAIN
//增量子程序
TURNADD:
CJNER3,#01H,TURNADD1;判断是不是最亮级别(最高级别1)
LJMPMAIN
TURNADD1:
DECR3;亮度级别加1
MOVA,R5
SUBBA,#0CH
MOVR5,A
MOVA,R6
ADDA,#2
MOVR6,A
LJMPMAIN
//减量子程序
TURNDEC:
CJNER3,#13H,TURNDEC1;判断是不是亮度最低级别(最低级别9)
LJMPMAIN
TURNDEC1:
INCR3;亮度级别加1
MOVA,R5
ADDA,#0CH
MOVR5,A
MOVA,R6
SUBBA,#2
MOVR6,A
LJMPMAIN
//定时器子程序
TIMER:
CLRTR0
MOVTL0,R5
MOVTH0,R6
CLRP2.0;给晶闸管出发信号
LCALLDELAY100uS
SETBP2.0;关闭晶闸管出发信号
RETI
//100us延时程序,确保触发信号有效
DELAY100uS:
MOVR7,#100
DJNZR7,$
RET
//消抖定时子程序
DELAY2MS:
CLRTR1
MOVTH1,#0B1H
MOVTL1,#0E0H
JNBP2.4,DELAY1
JNBP2.5,DELAY2
JNBP2.3,DELAY3
RETI
DELAY1:
INCR0
SETBRETI
DELAY2:
INCR1
SETBTR1
RETI
DELAY3:
INCR2
SETBTR1
RETI
6、结束语
本控制器使用了三个开关控制一路灯,主要是为了在教学过程中降低难度。
也可改为一个开关控制一路灯,比如短按为开、关,第一次长按为降低亮度,连续的第二次长按为提高亮度等。
电路不用改动,只需修改程序即可。
学生通过制作该调光控制器,可以掌握单片机、光藕和可控硅等方面的知识和使用技能。
由于该调光控制器调光的效果比较好,对提高学生的学习兴趣有很大帮助,教学效果良好。