|
老早的买了个坏的时序电源
一直在吃灰,没时间修。
这天心血来潮,打开看看,全部是门电路搭的一个顺序控制电源
板子已经被修过,很多地方补过
现在的情况是直通开关打开能全部输出,不能时序控制
因此说明后面的继电器及其驱动回路是好的
只是时序控制这块有问题,犯懒了,不想查电路
简单查了下电源,两个变压器,一个是直通时的电源,一个是时序时的电源
于是想用单片机做个时序控制应该不错,而且电路简单
直通就不用了,于是拆掉直通的变压器,正好放单片机的板子
解除+5V给门电路IC的供电,保持12V给继电器和驱动的电源,+5V正好给单片机用
详细查了下驱动,如下:
控制部分采用2051,输出本来想直接驱动继电器,但是由于2051P1口输出上拉不给力
见帖子:http://bbs.mydigit.cn/read.php?tid=834875
改用光耦输出,正好隔离继电器,省的干扰单片机
基本想法:
用proteus搭了个电路试了下,keil写了个简单的控制程序,效果还行
单片机真的很多年不动了,发现很多知识都忘了,翻了好几天的书呀!
代码:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code out[]={0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00};
uchar i;
void DelayMS(uint x)
{
uchar i=0;
while(x--)
{
for(i=100;i>0;i--);
}
}
void main()
{
P1 = 0xFF;
P3 = 0x00;
i=0;
while(1)
{
if(P3^7==1)
{
i++;
P1 =out;
if (i>8) i=8;
DelayMS(1000);
}
else if(P1!=0xFF)
{
P1 =out;
i--;
if (i<0) i=0;
DelayMS(1000);
}
}
}
实验中的图片:
完成后:
视频:
http://v.youku.com/v_show/id_XNzAwMzQ4NDMy.html |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|