单片机控制可控硅调光不闪电路+程序

发布者:创新之星最新更新时间:2012-11-24 来源: 21ic 关键字:单片机控制  可控硅  调光不闪电路 手机看文章 扫描二维码
随时随地手机看文章

单片机控制可控硅调光,是件比较麻烦的事情,开始是没加过零检测,结果不管怎么做pwm频率多高,都很闪,用了下面这个后就不闪了.在51hei单片机开发板上测试成功。 要调光的话,moc3063是不行的,3063是过零导通的,对交流电源的控制结果只能是对半波,而不能斩波,通常要调光,调压的话用3052,配合交流过零信号硬件,也可用变压器+二极管做过零检测电路.过零信号边沿触发中断,在过零后延时输出控制信号给光藕,使可控硅导通,过零前边沿关闭控制信号,使可控硅自然关断,完成一个半波的斩波控制,调整延时值就可以调节输出电压了,当然,延时值根据电源频率及定时器分频比不同,有相应的取值范围,一般可以用外中断负责过零边沿触发,一个边沿(至于哪个边沿与过零信号硬件结构有关)负责关闭可控硅,一个边沿负责延时计算,并写入定时器,由定时器中断来打开可控硅 .

点击浏览下一页 
单片机驱动可控硅调光电路

'改变INT1中断中的"移相值",即可改变输出电压,这里T2分频比为1024,可根据主频计算出移相值取值范围
'程序采用电平触发,脉冲触发可作相应修改
'若主频12M,电源50Hz,则移相值计算约为0--117,但实际使用0-105就可以了,太大了会移相到过零位置,使可控硅不能关断
'单片机类型atmege16,开发者:http://www.51hei.com email:372xcom1@21cn.com 下面是主要的程序
'主程序:
'略
ldi r16,4                   'INT1上升,下降沿都中断
Out Mcucr,R16
ldi r16,128              'INT1中断允许,INT0,INT2中断禁止
Out Gicr,R16

ldi r16,7
Out Tccr2,R16        'T2开始循环计数
in r17,timsk
andi r17,127           '暂时禁止T2比较匹配中断(T2比较匹配中断在中断程序中启闭)
Out Timsk,R17

sei
'-------------------------中断服务程序------------------------------------------
Int_comp2:      '移相中断
push r17
in r17,sreg
push r17
   cbi porta,5       '触发信号输出
in r17,timsk
andi r17,127       '禁止T2比较匹配中断
out timsk,r17
pop r17
out sreg,r17
pop r17
reti


Int1_isr:            '电源同步中断
push r17
in r17,sreg
push r17
sbis pind,3       'int1引脚(电源同步)状态=1则跳行,上升沿中断
rjmp falling
'上升沿中断
sbi portA,5         '关触发
rjmp isr_over
Falling:
'下降沿中断
   ldi r17,0
   Out Tcnt2,R17          'T2清零
   lds r17,移相值
   Out Ocr2,R17
'清中断标志,确保中断正确执行
in r17,tifr
ori r17,128            '清T2匹配标志
Out Tifr,R17
in r17,timsk
ori r17,128
Out Timsk,R17         '允许T2比较匹配中断
Isr_over:
pop r17
Out Sreg,R17
pop r17
Reti

上面的是的是AVR的汇编程序,51的也可以实现的,就是用定时器的溢出中断啦,溢出值-移相值=初始值触发可控硅用脉冲方式,计算好触发脉冲宽度对应的计数初值
同步信号输入--下沿中断写计数初值,开始计数--计数器溢出中断,判标志=0,打开可控硅,写触发脉冲初值,写标志=1---再次溢出中断,判标志=1,关可控硅,清零标志--------再次同步中断

关键字:单片机控制  可控硅  调光不闪电路 引用地址:单片机控制可控硅调光不闪电路+程序

上一篇:单片机C语言精确延时值的计算
下一篇:单片机制作媚眼激活仪的c代码

推荐阅读最新更新时间:2024-03-16 13:13

单片机控制12864液晶显示屏静态显示
显示屏幕说明图: 仿真电路图: 仿真结果展示: 汉字取模软件设置: (取模软件下载链接在文章结尾) C语言程序代码: #include reg51.h #define LCDLCDDisp_Off 0x3e// 程序中 的 LCD_OFF (LCD 断开/不亮) 的值 是 16进制 0x3E #define LCDLCDDisp_On 0x3f// 程序中 的 LCD_ON (LCD 合上/亮) 的值 是 16进制 0x3F #define Page_Add 0xb8// 页地址 #define LCDCol_Add 0x40// 列地址 #define Start_Line 0
[单片机]
<font color='red'>单片机控制</font>12864液晶显示屏静态显示
基于ADS1293及单片机控制的便携式低功耗心电信号采集系统设计
心电信号是一种由心肌收缩而产生,并可提供心脏生理功能变化信息的生物电信号,将测量电极放在身体的不同部位,把不同体表的电位差变化记录下来,就得到了心电图(ElectroCardioGram,ECG)。由于易于检测且直观性较好,在临床医学中得到较为广泛的应用)。然而传统心电信号采集设备体积较大,不便于实时获取心电信号。因此研究便携式、低功耗的心电信号采集系统有重要意义。本文以低功耗模拟前端ADS1293为基础,结合MSP430系列低功耗单片机设计了一种可用于超低功耗和微型化的心电信号采集系统。   1系统硬件设计   心电信号采集系统主要由信号采集前端ADS1293和MSP430单片机控制电路组成。工作原理如下:电极提取的人体心
[医疗电子]
基于ADS1293及<font color='red'>单片机控制</font>的便携式低功耗心电信号采集系统设计
可控硅数字相位控制电路TC790A及其应用
0 引言 三相可控硅触发电路需要对三相电进行同步采样,因而需要同步变压器,同时考虑到主回路的接法,还要注意同步变压器的相应接入。且不说同步变压器对钢和铜的消耗,就是6个绕组的绕制和接入也是很麻烦的。若在安装时出错,系统工作就会不正常。 众所周知,50 Hz三相电的三相位互差120°,那么,能不能只对一相电进行同步采样来获得三相电信号,从而产生6路移相触发脉冲呢?实际上,答案是肯定的。而且这样将省去沉重的同步变压器,电路也将更加绿色环保和简洁,控制精度也能得到提高,而且系统接入十分方便。 1 TC790A的主要特点 TC790A是一种单同步三相数字触发电路,适用于三相半控全控桥可控硅整流触发和三相交流调压反并联与双向可控硅触
[电源管理]
如何借助万用表检测可控硅
可控硅分单向可控硅和双向可控硅两种,都是三个电极。单向可控硅有阴极(K)、阳极(A)、控制极(G)。双向可控硅等效于两只单项可控硅反向并联而成。即其中一只单向硅阳极与另一只阴极相边连,其引出端称T2极,其中一只单向硅阴极与另一只阳极相连,其引出端称T2极,剩下则为控制极(G)。 1、单、双向可控硅的判别:先任测两个极,若正、反测指针均不动(R×1挡),可能是A、K或G、A极(对单向可控硅)也可能是T2、T1或T2、G极(对双向可控硅)。若其中有一次测量指示为几十至几百欧,则必为单向可控硅。且红笔所接为K极,黑笔接的为G极,剩下即为A极。若正、反向测批示均为几十至几百欧,则必为双向可控硅。再将旋钮拨至R×1或R×10挡复测,其中必
[测试测量]
PIC单片机控制LED点阵显示屏
本实验在proteus软件上模拟完成。 实验器件:20片8X8LED点阵显示屏,10片74LS164移位寄存器,10片74LS273数据锁存器,2片74LS138译码器,1片PIC16F877A单片机。 proteus元件库中中没有16X80点阵显示屏,所以用20片8X8LED点阵屏拼装而成。 10片74LS164移位寄存器和10片74LS273数据锁存器用于传送和保存一行数据。 2片74LS138构成4选16译码器用于行选。 实验截图: 源程序: list p=16f877A ; list directive to define processor #include p16f87
[单片机]
PIC<font color='red'>单片机控制</font>LED点阵显示屏
单片机控制的简易定时报警器电路设计
设计一个单片机控制的简易定时报警器。要求根据设定的初始值(1-59秒)进行倒计时,当计时到0时数码管闪烁“00”(以1Hz闪烁),按键功能如下: (1)设定键:在倒计时模式时,按下此键后停止倒计时,进入设置状态;如果已经处于设置状态则此键无效。 (2)增一键:在设置状态时,每按一次递增键,初始值的数字增1。 (3)递一键:在设置状态时,每按一次递减键,初始值的数字减1。 (4)确认键:在设置状态时,按下此键后,单片机按照新的初始值进行倒计时及显示倒计时的数字。如果已经处于计时状态则此键无效。 3.1.2 模块1:系统设计 (1)任务分析与整体设计思路 根据题目的要求,需要实现如下几个方面的功能。 计时功能:要实现计时功能则需要使用
[单片机]
<font color='red'>单片机控制</font>的简易定时报警器<font color='red'>电路</font>设计
单片机控制LCD1602显示屏动态显示字符串
仿真电路图: 仿真实验结果: C语言程序代码: //------------------------------------------------*/ #include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include intrins.h sbit RS = P2^4; //定义端口 sbit RW = P2^5; sbit EN = P2^6; #define RS_CLR RS=0 #define RS_SET RS=1 #define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0
[单片机]
<font color='red'>单片机控制</font>LCD1602显示屏动态显示字符串
51单片机控制LCD1602模块
(1)LCD1602概述 先来看看LCD1602什么意思?Liquid Crystal Display(LCD)表示液晶显示,1602 表示一行可以显示16个字符,一共有两行。 现在我们来看看如何使用简单的IO控制和延时来实现操作LCD1602液晶模块。既然是用单片机控制LCD1602,那么根据前面的分析,首先要搞清楚谁是控制对象,谁是被控制对象。很显然,LCD1602是被控制对象,那么我们就先从LCD1602开始分析。所谓控制也可以理解为沟通,比如你与室友沟通,希望他帮你买瓶绿茶,那么就表示至少你的室友能听懂你的“指令”,能知道绿茶是什么,如何去买等等信息。好了,那么如何与LCD1602沟通呢?可以想一想,平时人与人是如何沟通
[单片机]
51<font color='red'>单片机控制</font>LCD1602模块
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved