基于单片机实现的调光控制器设计Word下载.docx
《基于单片机实现的调光控制器设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的调光控制器设计Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
(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:
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
//减量子程序
TURNDEC:
CJNER3,#13H,TURNDEC1;
判断是不是亮度最低级别(最低级别9)
TURNDEC1:
INCR3;
亮度级别加1
ADDA,#0CH
SUBBA,#2
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、结束语
本控制器使用了三个开关控制一路灯,主要是为了在教学过程中降低难度。
也可改为一个开关控制一路灯,比如短按为开、关,第一次长按为降低亮度,连续的第二次长按为提高亮度等。
电路不用改动,只需修改程序即可。
学生通过制作该调光控制器,可以掌握单片机、光藕和可控硅等方面的知识和使用技能。
由于该调光控制器调光的效果比较好,对提高学生的学习兴趣有很大帮助,教学效果良好。