找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 91292|回复: 174
打印 上一主题 下一主题
收起左侧

单片机驱动可控硅无级调光电路及程序

  [复制链接]
跳转到指定楼层
楼主
      下面分享一个单片机无级调光电路给大家。这个电路是在网上看到的,感觉简单适用,只是爱好者在制作过程中,一定注意安全。这个单片机调光电路单片机采用的是STC12C2052AD,晶振采用11.0592M。程序附后,有需要的自己下载。单片机部分除了使用STC12C2052AD,也可以使用AT89系列单片机。程序适合单路可控硅控制,因为程序是利用外部中断来控制定时器参数来完成过零延迟触发可控硅的方式来调功的,如果是一片单片机控制多路可控硅,就必须改一种方式,定时器必须常开而且参数定为10MS(一个过零周期),外部中断用来给定时器做同步调整(外部中断时给定时器置入溢出值),各路可控硅调功参数可以通过预设值和查表方式获得相应的延迟触发时间点。
        下载: 单片机可控硅无级调光程序.zip (86.43 KB, 下载次数: 2006)


视频:



源程序:
  1. /*
  2.         单片机白炽灯调光程序 (晶振:11.0592MHz)
  3. */
  4. #include "reg52.h"

  5. sbit lamp_pwm=P1^0;//可控硅位
  6. sbit key0=P1^1;//降低亮度按键位
  7. sbit key1=P1^2;//增加亮度按键位

  8. unsigned int inc;

  9. void INT0s()interrupt 0        using 0//INT0外部中断,过零检测触发
  10. {
  11.         TR0=0;
  12.         if(!key0)//降低亮度
  13.         {
  14.                 inc+=50;
  15.                 if(inc>=8000)inc=8000;
  16.         }
  17.         if(!key1)//增加亮度
  18.         {
  19.                 inc-=50;
  20.                 if(inc<=800)inc=800;
  21.         }
  22.         TH0=(65536-inc)/256;
  23.         TL0=(65536-inc)%256;
  24.         TR0=1;
  25. }

  26. void timer1()interrupt 1 using 0//可控硅触发中断
  27. {
  28.         unsigned char i;
  29.         lamp_pwm=0;//灯亮
  30.         for(i=0;i<2;i++);//延时2us
  31.         lamp_pwm=1;//灯灭
  32. }

  33. /************STC不断电下载用******************/
  34. sfr ISP_DOWNS=0xe7;//ISP软复位地址
  35. sbit ISP_SW=P3^0;//串口数据接收
  36. void DebugDownISP()//软复位
  37. {
  38.         if(!ISP_SW)ISP_DOWNS=0x60;       
  39. }
  40. /********************************************/

  41. void main()
  42. {
  43.         TMOD|=0x01;
  44.         IT0=1;//INT0下降沿触发
  45.         EX0=1;//外部中断允许
  46.         ET0=1;
  47.         EA=1;//开总中断
  48.         inc=8000;
  49.         while(1)
  50.         {
  51.                 DebugDownISP();
  52.         }
  53. }
复制代码



评分

参与人数 4黑币 +22 收起 理由
catlu + 12
zhangyang123456 + 4
tieq1952 + 5 赞一个!
nihengxianma + 1

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏73 分享淘帖 顶9 踩
回复

使用道具 举报

来自 2#
ID:47933 发表于 2017-4-4 16:33 | 只看该作者
经实验,程序可以运行,只是有可能是我的电阻没找到2x30K,用一个200K电阻代替,最大亮度时加不到完全亮度。找到合适电阻时再试
回复

使用道具 举报

来自 3#
ID:47933 发表于 2017-4-9 09:18 | 只看该作者
lyf898 发表于 2017-4-4 16:33
经实验,程序可以运行,只是有可能是我的电阻没找到2x30K,用一个200K电阻代替,最大亮度时加不到完全亮度 ...

经调测,最大亮度200k电阻完全可以替代,将 inc 数值调到10即可,加上18b20测温电路和代码,已经成功将其改造成温控电风扇系统,夏天来了可以应用了。
回复

使用道具 举报

来自 4#
ID:47933 发表于 2017-4-12 08:50 | 只看该作者
YBZYBZ 发表于 2017-4-10 21:13
楼主能不能把·HEX烧写文件发上来分享一下

楼主很久没回复,其实自己用KILL编译就是了啊,我这有原始的hex文件(运行正常):

tgd.rar

777 Bytes, 下载次数: 154, 下载积分: 黑币 -5

评分

参与人数 1黑币 +70 收起 理由
admin + 70 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

来自 5#
ID:47933 发表于 2017-4-12 18:01 | 只看该作者
lyf898 发表于 2017-4-9 09:27
该电路中没有晶振电路,当然不能正常运行!

我晕,原来stc12内部有时钟啊。
回复

使用道具 举报

来自 6#
ID:47933 发表于 2017-5-1 11:03 | 只看该作者
wjhg1026 发表于 2017-4-15 06:54
可以调光,但是有点闪,怎么解决?

如果闪烁,可能是过零检测电路有问题。过零检测就是防止闪烁的。
回复

使用道具 举报

来自 7#
ID:202824 发表于 2017-6-19 03:37 | 只看该作者
改成双向光藕 会亮一倍

541114231645097.jpg (44.15 KB, 下载次数: 614)

541114231645097.jpg
回复

使用道具 举报

来自 8#
ID:200844 发表于 2017-6-25 09:16 | 只看该作者
黑夜彩虹 发表于 2016-8-4 21:24
整流桥出来后被光藕的二极管短路,不太相信这个电路能正常运行

没看到整流桥前面有两个30K的电阻限流吗,而且都有视频了怎么就说这个电路不能正常运行呢,你是不相信这电路跟实物一样?
回复

使用道具 举报

来自 9#
ID:200844 发表于 2017-6-25 09:22 | 只看该作者
lyf898 发表于 2017-4-9 09:27
该电路中没有晶振电路,当然不能正常运行!

你不知道STC12C2052AD内部有扫荡器啊,可以不用外接晶体用内部扫荡器的。
回复

使用道具 举报

来自 10#
ID:47933 发表于 2017-8-13 08:43 | 只看该作者
tianmaduxing 发表于 2017-6-1 15:15
具体能说说为什么吗? 我查了好多资料 也没搞明白这个电路为什么要加过零保护

不加过零检测不能保证每个周期的触发时间一致,就会闪烁
回复

使用道具 举报

来自 11#
ID:47933 发表于 2017-8-13 08:45 | 只看该作者
hcwlight 发表于 2017-5-17 15:01
楼主 用220V的LED球泡灯试过吗? 可以吗?

led不适合,因为LED的亮度与电压不是线性关系
回复

使用道具 举报

来自 12#
ID:47933 发表于 2017-8-13 08:47 | 只看该作者
linjinqun 发表于 2017-6-19 03:37
改成双向光藕会亮一倍

全波过零检测不需要改动,因为正负都会过零触发
回复

使用道具 举报

来自 13#
ID:237254 发表于 2017-11-14 17:05 | 只看该作者


本人新手.
可以解释一下630v 0.06uf电容作用吗?还有另外几个电阻的作用?
先谢谢你了
回复

使用道具 举报

来自 14#
ID:338171 发表于 2018-8-16 11:42 | 只看该作者
yyg123321a 发表于 2016-6-27 19:55
可简化设计,不必过零检测,用调脉宽即可控制双向可控硅的功率。

可以加个Q吗?  我正在做这个就是想调脉宽控制双向可控硅 之前做过一个点焊机跟这个原理一样 但是没有过零检测  就是用到一个脉宽调节 我程序方面不大懂  请求前辈指点  我的Q1041596749
回复

使用道具 举报

来自 15#
ID:338171 发表于 2018-8-17 09:49 | 只看该作者
diydz 发表于 2016-11-29 14:20
和楼主一模一样的电路,实验是不行的,灯根本不亮,请楼主指点,谢谢

还要做一个给单片机供电的电源电路
回复

使用道具 举报

来自 16#
ID:338171 发表于 2018-8-17 09:53 | 只看该作者
diydz 发表于 2016-11-29 14:20
和楼主一模一样的电路,实验是不行的,灯根本不亮,请楼主指点,谢谢

加一个220V变压器 12V输出通过整流桥 整流滤波  再进过稳压块7805 滤波之后微波  之后输出一个5V的电源给单片机供电  这个电路就活啦   你直接一模一样的电路怎么行 单片机都没有供电 根本不会工作啦  楼主那接的是单片机开发板直接接出来的  所以省略掉了5V电源部分  
回复

使用道具 举报

来自 17#
ID:338171 发表于 2018-8-17 09:54 | 只看该作者
未来的技术女 发表于 2017-3-14 14:12
楼主,程序是怎么实现控制灯变亮变暗的?刚刚看了程序怎么没看懂

通过PWM 脉宽调制
回复

使用道具 举报

18#
ID:76753 发表于 2015-4-12 16:23 | 只看该作者
厉害 把可控硅换成继电器可以么
回复

使用道具 举报

19#
ID:1 发表于 2015-4-12 17:29 | 只看该作者
wzy1994413 发表于 2015-4-12 16:23
厉害 把可控硅换成继电器可以么

这个不能换 继电器的动作和可控硅 不是一个级别的 慢n倍
回复

使用道具 举报

20#
ID:74529 发表于 2015-4-12 19:06 | 只看该作者
学习学习 ,感谢分享
回复

使用道具 举报

21#
ID:77173 发表于 2015-4-16 16:33 | 只看该作者
谢谢分享,菜鸟围观!
回复

使用道具 举报

22#
ID:76892 发表于 2015-5-5 22:09 来自手机 | 只看该作者
这个不错,学习了
回复

使用道具 举报

23#
ID:80278 发表于 2015-5-17 20:03 | 只看该作者
牛逼  把开关换成旋钮的就更赞
回复

使用道具 举报

24#
ID:3666 发表于 2015-8-7 13:31 | 只看该作者
楼主,下面这句话怎么理解
如果是一片单片机控制多路可控硅,就必须改一种方式,定时器必须常开而且参数定为10MS(一个过零周期),外部中断用来给定时器做同步调整(外部中断时给定时器置入溢出值),各路可控硅调功参数可以通过预设值和查表方式获得相应的延迟触发时间点。

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

25#
ID:89158 发表于 2015-8-31 19:26 | 只看该作者
楼主方便加个qq吗?
287367319
回复

使用道具 举报

26#
ID:89386 发表于 2015-9-13 09:38 | 只看该作者
学习!  我想改成红外的 不知道可行否
回复

使用道具 举报

27#
ID:89420 发表于 2015-9-23 19:16 | 只看该作者
写得很详细,学习了.
回复

使用道具 举报

28#
ID:100182 发表于 2015-12-23 18:09 | 只看该作者
好东西,正想要的资料
回复

使用道具 举报

29#
ID:110949 发表于 2016-3-27 09:40 | 只看该作者
weiqiang19885 发表于 2015-4-12 19:06
学习学习 ,感谢分享

房主能详细的程序给我吗,我正在弄个三相的研究下1481779326@qq.com
回复

使用道具 举报

30#
ID:110949 发表于 2016-3-27 10:31 | 只看该作者
房主能详细的程序给我吗,我正在弄个三相的研究下1481779326@qq.com
回复

使用道具 举报

31#
ID:113848 发表于 2016-4-13 00:55 | 只看该作者
太厉害了,改一下程序可以做个软起动吗?
回复

使用道具 举报

32#
ID:114613 发表于 2016-4-16 19:39 来自手机 | 只看该作者
想下来看看,51黑有你更精彩
回复

使用道具 举报

33#
ID:116570 发表于 2016-4-26 08:56 | 只看该作者
楼主能详细聊一下吗?qq1289220424
回复

使用道具 举报

34#
ID:116803 发表于 2016-4-26 14:17 | 只看该作者
想下来看看
回复

使用道具 举报

35#
ID:116803 发表于 2016-4-26 14:26 | 只看该作者
这个不错,学习了
回复

使用道具 举报

36#
ID:116803 发表于 2016-4-26 14:43 | 只看该作者
太厉害了,!!!!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

37#
ID:120214 发表于 2016-5-12 09:02 | 只看该作者
这个正是我需要的,太好了,谢谢!
回复

使用道具 举报

38#
ID:116803 发表于 2016-5-31 20:14 | 只看该作者
我用你的程序在proteus怎么仿真不了?请楼主发个仿真的
回复

使用道具 举报

39#
ID:116803 发表于 2016-6-2 15:42 | 只看该作者
用proteus仿真不了,是什么原因?
回复

使用道具 举报

40#
ID:127014 发表于 2016-6-16 16:54 | 只看该作者
太谢谢了,刚好有用
回复

使用道具 举报

41#
ID:127014 发表于 2016-6-16 16:58 | 只看该作者
真的很有用,下来看看!
回复

使用道具 举报

42#
ID:119239 发表于 2016-6-27 19:55 | 只看该作者
可简化设计,不必过零检测,用调脉宽即可控制双向可控硅的功率。
回复

使用道具 举报

43#
ID:108931 发表于 2016-7-21 10:29 | 只看该作者
220V的电同上,楼主不怕被电到呀。
回复

使用道具 举报

44#
ID:135581 发表于 2016-8-4 21:24 | 只看该作者
整流桥出来后被光藕的二极管短路,不太相信这个电路能正常运行
回复

使用道具 举报

45#
ID:136794 发表于 2016-8-15 15:47 | 只看该作者
非常有用的资料,谢谢啦!
回复

使用道具 举报

46#
ID:137573 发表于 2016-8-25 13:47 | 只看该作者
我想下载下来看看
回复

使用道具 举报

47#
ID:75280 发表于 2016-8-26 06:48 来自手机 | 只看该作者
学习学习
回复

使用道具 举报

48#
ID:7209 发表于 2016-10-14 09:24 | 只看该作者
正在学习,谢谢楼主的帖子,
回复

使用道具 举报

49#
ID:7209 发表于 2016-10-14 15:52 | 只看该作者
通过实验,无法到到要求,楼主希望看到后持续更新下,补全资料,写清楚,要不后面小兄弟通过实验不通过。
回复

使用道具 举报

50#
ID:150812 发表于 2016-11-29 13:37 | 只看该作者
这程序绝对有问题......
回复

使用道具 举报

51#
ID:81192 发表于 2016-11-29 14:20 | 只看该作者
和楼主一模一样的电路,实验是不行的,灯根本不亮,请楼主指点,谢谢
回复

使用道具 举报

52#
ID:109730 发表于 2016-11-29 18:20 | 只看该作者
最近正找可控硅的驱动呢,
回复

使用道具 举报

53#
ID:155975 发表于 2016-12-19 17:17 | 只看该作者
学习学习 ,感谢分享
回复

使用道具 举报

54#
ID:77523 发表于 2016-12-19 17:21 | 只看该作者

谢谢分享,菜鸟围观!
回复

使用道具 举报

55#
ID:157262 发表于 2016-12-25 11:54 来自手机 | 只看该作者
调光为何要放到外部中断里呢
回复

使用道具 举报

56#
ID:158589 发表于 2016-12-29 11:44 | 只看该作者
谢谢楼主,学习下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表