求助单片机控制继电器程序。
51单片机,K1=1,K2=1;Q1吸合2s后=0(k1合k2同时=1,继电器吸合2s后断开)。K3=1;Q2=1.K4=1;Q2=0.(K3合K4组成互锁开关)。K5/K6=1,Q3/Q4=1(K5K6与Q3Q4组成自锁开关).求高手帮忙写段完整程序用于学习,本人刚起步只知道一些量的定义。谢谢。 智商太低,没看明白啥意思 {:sweat:}{:sweat:} 你还是看学校里的教程吧 plc不懂的飘过 Lavion 发表于 2013-1-22 17:53 static/image/common/back.gif你还是看学校里的教程吧
未进学校的,手上只有一些开发板的例程。 alengend 发表于 2013-1-22 17:50 static/image/common/back.gif
智商太低,没看明白啥意思
就是K1K2同时按下Q1输出2s高电平,K1K2再同时按下Q1再输出2s高电平。K3按下Q2输出高电平,K4按下Q2输出低电平。K5按下Q3输出高电平,K5再按下Q3输出低电平。k6同k5。麻烦给个程序谢谢。
迷糊了.天书阿 {:sweat:}{:sweat:}{:sweat:} 貌似关系还蛮复杂的。转的头有点晕晕。 这个需要初始化一下定时器会效果更好些,定时器用标计位产生一秒基准 shiy 发表于 2013-1-22 20:08 static/image/common/back.gif
这个需要初始化一下定时器会效果更好些,定时器用标计位产生一秒基准
有请赐教,用12m晶振。
貌似是PLC的程序………………
不过我是考试时候才开始学的这玩意 出rmb吧,我给你写 单片机plc都可,没有rmb没有动力!!!!{:lol:}{:lol:}{:lol:} #include<reg52.h>
unsigned int tt;
sbit K1=P0^0;
sbit K2=
sbit K3=
sbit K4=
sbit K5=
sbit Q1=
sbit Q2=
sbit Q3=
sbit Q4=
void INIT0(void)
{
TMOD=0X01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
EA=1;
ET0=1;
}
void delayms(unsigned int x)
{
unsigned int i,j;
for(i=x;i<0;i--)
for(j=110;j<0;j--);
}
void main(void)
{
INIT0();//定时器初始化
while(1)
{
if((K1==1)&&(K2==1))
{
delayms(30);//消抖
if((K1==1)&&(K2==1))
{
FLAG_Q1=2; tt=0; TR0=1;
}
}
if((k3==1)&&(k4!=1))Q2=1;
if((k4==1)&&(K3!=1))Q2=0;
if(k5==1)
{
delayms(30);
if(k5==1) Q3=~Q3;
}
if(k6==1)
{
delayms(30);
if(k5==6) Q4=~Q4;
}
if(FLAG_Q1==0) { Q1=0; TR0=0;}
else Q1=1;
}
}
void TIME0()interrupt 1 //序列号
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
tt++;
if(tt==200)
{
tt=0;
FLAG_Q1--;
}
} 这个最好自己琢磨。 本帖最后由 axe1 于 2013-1-22 20:42 编辑
shiy 发表于 2013-1-22 20:34 static/image/common/back.gif
#include
unsigned int tt;
你好,这里是延时用的吗?(FLAG_Q1=2; tt=0; TR0=1;
)谢谢!
{
delayms(30);
if(k5==6) Q4=~Q4;
}
这个应该是这样吧!
{
delayms(30);
if(k6==1) Q4=~Q4;
}
axe1 发表于 2013-1-22 20:25 static/image/common/back.gif
有请赐教,用12m晶振。
对 那个代码就是12M的,你这个用梯形图看着会更容易理解些。你所说的自锁互锁都是梯形图里的术语。写的程序不知道能编译过去不,写的匆忙可能有不恰当地地方 axe1 发表于 2013-1-22 20:39 static/image/common/back.gif
你好,这里是延时用的吗?(FLAG_Q1=2; tt=0; TR0=1;
)谢谢!
{
对 shiy 发表于 2013-1-22 20:45 static/image/common/back.gif
对
谢谢,明天安装编译软件试试。 weichao4808335 发表于 2013-1-22 20:30 static/image/common/back.gif
出rmb吧,我给你写 单片机plc都可,没有rmb没有动力!!!!
plc的我写不了单片机。谢谢! shiy 发表于 2013-1-22 20:45 static/image/common/back.gif
对
你好!请帮忙不能编译。请看图!谢谢! axe1 发表于 2013-1-22 21:07 static/image/common/back.gif
plc的我写不了单片机。谢谢!
很好弄滴,那个公司的plc啊 什么型号的啊? axe1 发表于 2013-1-23 11:48 static/image/common/back.gif
你好!请帮忙不能编译。请看图!谢谢!
把K的大小写改一致就行了 weichao4808335 发表于 2013-1-23 11:52 static/image/common/back.gif
很好弄滴,那个公司的plc啊 什么型号的啊?
我没设备,只有51开发板。 zgxcom123 发表于 2013-1-23 12:00 static/image/common/back.gif
把K的大小写改一致就行了
谢谢,请看看还有2个。 axe1 发表于 2013-1-23 12:58 static/image/common/back.gif
谢谢,请看看还有2个。
这几个变量没有定义,定义成char类型就行了…………
想请问一句,你没学过C语言吗??? axe1 发表于 2013-1-23 12:54 static/image/common/back.gif
我没设备,只有51开发板。
{:funk:}无语 zgxcom123 发表于 2013-1-23 13:44 static/image/common/back.gif
这几个变量没有定义,定义成char类型就行了…………
想请问一句,你没学过C语言吗??? ...
请帮忙。确实没学,现在在自学(也就是模仿高人的代码,从中学到一些。)。是这样吗?(#define uchar unsigned char) sbit那段代码看见了吧,在那后面另起一行
char FLAG_Q1;
zgxcom123 发表于 2013-1-23 15:00 static/image/common/back.gif
sbit那段代码看见了吧,在那后面另起一行
char FLAG_Q1;
谢谢,编译通过了。请问这是什么意思? axe1 发表于 2013-1-23 15:54 static/image/common/back.gif
谢谢,编译通过了。请问这是什么意思?
变量声明啊╮(╯▽╰)╭
使用之前需要先告诉编译器,你需要用到哪些变量,各是什么类型的
页:
[1]