作业帮 > 综合 > 作业

51单片机 求C编程 ,接三个按钮开关 控制两个继电器控制两个电磁阀在控制气缸动作

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 00:36:26
51单片机 求C编程 ,接三个按钮开关 控制两个继电器控制两个电磁阀在控制气缸动作
一个气缸从左往右装 A,B,C,三个开关,接P1.0,P1.2,P1.3 ;两个继电器a1,a2接P0.0,P0.1,接电磁阀b1,b2;b1为进气总开关,b2为汽缸控制开关;b1通电b2通电气缸的在起点B点 往C点运动,到达C点b2断电200ms再次通电再到达c点b2再次断电经过B点(不停)到达A点b2再次通电到B点b1断电,气缸停止运动.
这个不难的,没有现成的,要临时写
再问: 能帮我写下吗 我才开始学写不出来。
再答: 你把“b1通电b2通电气缸的在起点B点 往C点运动, 到达C点b2断电200ms再次通电再到达c点b2再次断电经过B点(不停)到达A点b2再次通电到B点b1断电,气缸停止运动。“这句话断好句,说清楚点,我看起来很是吃力,既然你也学这个,那就给你起个头,你完善程序吧。 #include #define uchar unsigned char #define uint unsigned int sbit switch_A=P1^0; sbit switch_B=P1^2; sbit switch_C=P1^3; sbit relay_a1=P0^0; sbit relay_a2=P0^1; uint count; void main() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1; while(1) { //我写的部分就是你那个精确的200毫秒的部分,你的那句话看起来吃力,你自己写完吧 } } void timeadd() { if(count==4) { count=0; //接下来写你那个精确的200ms的动作,单片机的晶振用12MHZ的 } } void interrupt_0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++; timeadd(); }