版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-作者xxxx-日期xxxx机车刮雨刷控制程序【精品文档】/*WXQ20160714 用于刮雨刷电机控制*/#include #include #include #include /数据类型定义#define uchar unsigned char#define uint unsigned int#define ulong unsigned long/试验模式#define TingZhi 0#define JianXie 1#define DiSu 2#define GaoSu 3#define NOP2 _nop_(); _nop_();#define NOP4 _nop_(); _nop
2、_(); _nop_(); _nop_();/输入引脚定义sbit dog = P30; /喂狗信号sbit J_X = P31; /间歇位sbit Z_X = P32; /正向脉冲检测sbit F_X = P33; /负向脉冲检测sbit T_Z = P34; /停止位sbit D_S = P35; /低速位sbit G_S = P37; /高速位/输出引脚定义sbit HX_KZ = P10; /换向控制sbit TJ_DD = P11; /停机断电sbit GS_KZ = P12; /高速控制sbit DS_KZ = P13; /低速控制sbit ResetPLC = P14; /复位P
3、LC编码器sbit L_R = P15; /电机复位时在左OR右 默认1=左sbit KG2_KZ = P16; /开关2 IRF840sbit V110_KZ = P17; /110V开关1 IRF840uchar data t1s; /1秒钟计时寄存器uint data Work_Mode; /工作模式寄存器uchar data Y_zt,X_zt; /原状态,新状态uchar bdata flg;sbit zxmc = flg0; /正向脉冲标志位sbit fxmc = flg1; /负向脉冲标志位sbit reset = flg6; /复位编码器标志位sbit t1sflg = flg
4、7; /1s定时标志/*以下为子程序*/延时10ms/*void delay10ms(void) uchar i,j; for(i=0;i24;i+) dog = dog; for(j=0;j=20) t1sflg = 1; t1s = 0 ; /延时N秒函数void delNs(uchar s) do t1sflg = 0; while(t1sflg=0); s-; while(s);/*void timer1() interrupt 3 /50ms定时中断 TH1=0x4C; TL1=0x00;*/外中断0,用来检测正向脉冲void int0() interrupt 0 zxmc = 1;
5、 /正向到位 /fxmc = 0; /清楚负向脉冲 /if(Work_Mode0) / /V110_KZ = 1; /关闭MOS / /外中断1,用来检测反向脉冲void int1() interrupt 2 fxmc = 1; /负向到位 /zxmc = 0; /清楚正向脉冲 /if(Work_Mode0) / /V110_KZ = 1; /关闭MOS / /高低速控制void GDS_KZ(uchar gds) uchar jc=0; zxmc = 0; fxmc = 0; /高低速判断 V110_KZ = 1;/MOS关闭 if(gds) GS_KZ = 0; DS_KZ = 1; el
6、se GS_KZ = 1; DS_KZ = 0; HX_KZ = 0; /切换为正向 TJ_DD = 0; /停机开关闭合 V110_KZ = 0; /接通110V电源 while(zxmc=0); /等待正向到位信号 zxmc = 0; HX_KZ = 1; /切换为负向 V110_KZ = 0; /反向动作 while(fxmc=0); /等待反向到位信号 fxmc = 0; /间歇控制程序void JianX_KZ(void) uchar jc=0; zxmc = 0; /标志位清零 fxmc = 0; /高低速判断 V110_KZ = 1;/MOS关闭 GS_KZ = 1; DS_KZ
7、 = 0; HX_KZ = 1; /切换为正向 TJ_DD = 0; /停机开关闭合 delNs(3); zxmc = 0; /标志位清零 do V110_KZ = 0; /接通110V电源 while(zxmc=0); /等待正向到位信号 V110_KZ = 1; /接通110V电源 zxmc = 0; HX_KZ = 0; /切换为负向 delNs(3); zxmc = 0; /标志位清零 do V110_KZ = 0; while(fxmc=0); /等待正向到位信号 V110_KZ = 1; fxmc = 0;/*主程序代码*/void main(void) uchar key =0;
8、 Init_Mcu(); Y_zt = 0; X_zt = 0; Work_Mode = 0; ResetPLC = 0; / 复位PLC编码器 delay10ms(); / delay10ms(); / ResetPLC = 1; / zxmc = 0; /标志位清零 fxmc = 0; delNs(2); /延时1秒 EX0 = 0; EX1 = 0; while(1) if(J_X) GS_KZ = 1; DS_KZ = 0; HX_KZ = 0; /切换为正向 TJ_DD = 0; /停机开关闭合 delNs(1); /延时1秒 V110_KZ = 0; /接通110V电源 else
9、V110_KZ = 1; /接通110V电源 /=KEY检测= /key = P3&0xB2; /if(key!=0) / /delay10ms(); /延时10MS去抖动,判断开关位置 /key = P3&0xB2; /if(key!=0) /工作模式判断 / if(J_X) Work_Mode = 1; if(reset=0) ResetPLC = 0; / 复位PLC编码器 delay10ms(); / delay10ms(); / ResetPLC = 1; reset = 1; if(D_S) Work_Mode = 2; if(reset=0) ResetPLC = 0; / 复位
10、PLC编码器 delay10ms(); / delay10ms(); / ResetPLC = 1; reset = 1; if(G_S) Work_Mode = 3; if(reset=0) ResetPLC = 0; / 复位PLC编码器 delay10ms(); / delay10ms(); / ResetPLC = 1; reset = 1; if(T_Z) Work_Mode = 0; reset = 0; ResetPLC = 0; / 复位PLC编码器 / / dog = dog; /=工作模式实现部分= switch(Work_Mode) case JianXie: /间歇模式1 /JianX_KZ(); Work_Mode = 0; break; case DiSu: /低速模式2 /GDS_KZ(0); Work_Mode = 0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防触电课程设计
- 防疫海报鉴赏课程设计
- 防火分隔课程设计
- 防溺水微课程设计
- 2024电影(电视)剧版权转让合同
- 《胸痛中心的概念》课件
- 2024摩托车销售合同
- 2024买卖合同模板(版本)
- 2024软装供货合同
- 2024自然人借款合同书
- 中频电治疗仪操作培训课件
- 建设工程施工项目合伙制实施方案
- 《大学英语》复习题专升本
- 新机场考试通行证模拟试题知识讲解
- 2022年新疆克拉玛依金龙国民村镇银行招聘16名人员模拟试题3套(含答案解析)
- 三度房室传导阻滞护理查房课件
- 讲课比赛精品PPT-全概率公式贝叶斯公式-概率论与数理统计
- 药理学39人工合成抗菌药课件
- 工期定额计算表格
- 小学一年级上册口算练习题(可打印)
- 老年人情绪状态测评忧郁量表
评论
0/150
提交评论