单片机编程高手进

来源:百度知道 编辑:UC知道 时间:2024/05/21 16:53:48
请看图片
通过单片机控制一个汽缸汽缸的上下移动通过一个上升电磁阀和一个下降电磁阀控制单片机通电以后 按一下 按钮1 不管汽缸在什么位置,先下降到最低下也就是位置感应开关S3的位置,然后再上升到位置感应开关S2的位置停下这时候按一下按钮2,汽缸在下降到S3的位置,然后延时大概1秒后上升到S1的位置,再延时1秒后回到S2的位置,这样完成一个循环再按按钮2的时候又下降到S3然后上升到S1,延时后回到S2就是这样 最好用C语言并且加上注释多谢了~~
补充一下,单片机用的是8051系列的

说实话。这个程序太简单了。

这种工作本来是应该PLC做才对。。
工业用的东西用单片机来做。汗死了。
sbit s1 = P1^0;//高表示开
sbit s2 = P1^1;//高表示开
sbit s3 = P1^2;//高表示开
sbit key1 = P1^3;//高表示开
sbit key2 = P1^4;//高表示开
sbit switch_down= P1^5;//下降地磁发
sbit switch_up= P1^6;//上升电磁阀
//大概的流程图,键盘消抖,延时1s的函数什么的自己写
//这个整个流程是中途效应其他的,如果实际应用应该不是这样,
//

void main()

while(key1 == 0); //等待按键1 按下
switch_down = 1; //开始下降电磁阀
while(s3 == 0); //等待到s3的位置
switch_down = 0; //关闭下降电磁阀
switch_up = 1; //开启上升电磁阀
while(s2 == 0); //等待到s2位置
switch_up = 0; //关闭上升电磁阀

while(1) { //主循环
if (key2 == 1) { //等待按键2 按下
switch_down = 1; //开启下降电磁阀
while(s3 == 0); //等待到s3的位置
switch_down = 0; //关闭下降电磁阀
delay_1s(); //延时1s钟
switch_up = 1; //开始上升电磁阀
while(s1 == 0); //等待到s1位置
switch_up = 0; //关闭上升电磁阀
delay_1s(); //延时1s钟
switch_down = 1; //开启下降电磁阀