电子产品制作教案(8)
更新时间:2023-03-11 19:52:01 阅读量: 教育文库 文档下载
浙江工业职业技术学院实习教案
课题名称 授课班级 项目3 浆泵液位控制器设计(2) 12电子信息工程技术(1) 课题号 授课日期 No.8 5.7 目的与要求: 1. 理解浆泵液位控制器的软件要求 2. 掌握逻辑控制信号输入输出的配合方法 3. 掌握根据要求在图书馆,互联网上查询资料的能力 课时安排: 5.7 1-2节 浆泵液位控制器软件设计要求讲解 5.7 3-5.8 6 查询相关资料,完成浆泵液位控制器软件的设计工作。 检测手段: 1. 课堂提问 2. 设计成果检查 安全与注意事项: 1. 正确操作电脑 2. 注意数据的及时保存 3. 注意机房的卫生 课后分析: 项目3 浆泵液位控制器设计(2) 一、知识点: 1、理解浆泵液位控制器的软件要求 2、掌握逻辑控制信号输入输出的配合方法 3、掌握根据要求在图书馆,互联网上查询资料的能力 二、软件设计要求 基本要求: ① 控制信号包括自动挡、手动挡、运行信号、液位信号、正转、反转等 ② 自动挡信号需要与运行信号、液位信号配合 a)接入自动挡后,需要判断是否有运行信号 b)如果有运行信号,则逐路判断是否有液位信号 i. 如果没有液位信号,对应路的正转工作 ii. 如果有液位信号,对应路的正转停止工作 c)在自动挡里面,正反转信号无效,反转继电器也不工作,仅控制 正传继电器。 ③ 手动挡信号需要与正转、反转信号配合,以及其它条件 a)接入手动挡后,无论是否有正反转信号预先接入,正反转继电器都不工作 只有在手动挡后,确定没有正反转信号接入(已接入的需要离开)后,新接入的正转(或者反转)信号才会有效,而且任何时刻仅只有一种信号有效。 b)在手动挡后,运行信号无效、液位信号无效 三、参考程序 #include
} /* */ CoreData.delay = a*4+b*2+c;//max 7,min 0 CoreData.delay = CoreData.delay *2;//?a1?1?μ???200ms?μD? CoreData.signal_running = Work_Signal;// ′??è?èííí?·? CoreData.PortData[0].input_YeWei = K1_Signal; CoreData.PortData[0].input_hand_auto = K2_Signal; CoreData.PortData[0].input_Zheng = K3_Signal; CoreData.PortData[0].input_Fan = K4_Signal; CoreData.PortData[1].input_YeWei = K5_Signal; CoreData.PortData[1].input_hand_auto = K6_Signal; CoreData.PortData[1].input_Zheng = K7_Signal; CoreData.PortData[1].input_Fan = K8_Signal; CoreData.PortData[2].input_YeWei = K9_Signal; CoreData.PortData[2].input_hand_auto = K10_Signal; CoreData.PortData[2].input_Zheng = K11_Signal; CoreData.PortData[2].input_Fan = K12_Signal; CoreData.PortData[3].input_YeWei = K13_Signal; CoreData.PortData[3].input_hand_auto = K14_Signal; CoreData.PortData[3].input_Zheng = K15_Signal; CoreData.PortData[3].input_Fan = K16_Signal; modify date 2013.6.26 first create , refer to CoreData & CoreData_save note 2013.7.13 how to deal with running signal....... void inputsignal_deal() { char channel=0; CoreData_save.delay =CoreData.delay ;//max 7,min 0 CoreData_save.signal_running =CoreData.signal_running ; for(channel=0; channel<4; channel++) { if(CoreData.PortData[channel].input_YeWei { } else { } //4 channels' hand-auto if(CoreData.PortData[channel].input_hand_auto!= { if(CoreData.PortData[channel].flag_hand_auto==1) { CoreData_save.PortData[channel].input_hand_auto = //if(CoreData.PortData[channel].flag_yewei==1)//?????¢ìó//{ CoreData.PortData[channel].flag_yewei =0; //} if(CoreData.PortData[channel].flag_yewei==1) { } else{ } CoreData.PortData[channel].flag_yewei =1; CoreData_save.PortData[channel].input_YeWei= CoreData.PortData[channel].flag_yewei =0;//???òa±ó? != CoreData_save.PortData[channel].input_YeWei) CoreData.PortData[channel].input_YeWei; a?2????èó3Dè??2?ó3??ó?£??′??±ùa±ó? CoreData_save.PortData[channel].input_hand_auto) CoreData.PortData[channel].input_hand_auto; } } CoreData.PortData[channel].flag_hand_auto =0; else { } CoreData.PortData[channel].flag_hand_auto =1; else { } //4 channels' zheng if(CoreData.PortData[channel].input_Zheng!= { if(CoreData.PortData[channel].flag_zheng==1) { } CoreData_save.PortData[channel].input_Zheng CoreData.PortData[channel].flag_zheng =0; //2013.7.30 if(CoreData_save.PortData[channel].input_Zheng CoreData.PortData[channel].hand_zheng_fan == = = //if(CoreData.PortData[channel].flag_hand_auto==1) //{ CoreData.PortData[channel].flag_hand_auto =0; //} CoreData_save.PortData[channel].input_Zheng) CoreData.PortData[channel].input_Zheng; MOTOR_STOP) hand_is_no; else if(CoreData_save.PortData[channel].input_Zheng == CoreData.PortData[channel].hand_zheng_fan = MOTOR_ZHUAN) hand_is_zheng; } else { CoreData.PortData[channel].flag_zheng =1; //2013.7.30 NEW ADD if(CoreData_save.PortData[channel].input_hand_auto==HAND_STATE } && //&& CoreData.PortData[channel].hand_zheng_fan == hand_is_fan) CoreData_save.PortData[channel].input_Zheng==MOTOR_STOP CoreData.PortData[channel].flag_zheng =0; else { } //4 channels' fan if(CoreData.PortData[channel].input_Fan!= { if(CoreData.PortData[channel].flag_fan==1) { CoreData_save.PortData[channel].input_Fan CoreData.PortData[channel].flag_fan =0; //2013.7.30 if(CoreData_save.PortData[channel].input_Fan== CoreData.PortData[channel].hand_zheng_fan = = //if(CoreData.PortData[channel].flag_zheng==1) //{ CoreData.PortData[channel].flag_zheng =0; //} CoreData_save.PortData[channel].input_Fan) CoreData.PortData[channel].input_Fan; MOTOR_STOP) hand_is_no; } /* } } } else if(CoreData_save.PortData[channel].input_Fan== = MOTOR_ZHUAN) CoreData.PortData[channel].hand_zheng_fan hand_is_fan; else { CoreData.PortData[channel].flag_fan =1; //2013.7.30 NEW ADD if(CoreData_save.PortData[channel].input_hand_auto==HAND_STATE } && //&& CoreData.PortData[channel].hand_zheng_fan == hand_is_zheng) CoreData_save.PortData[channel].input_Fan==MOTOR_STOP) CoreData.PortData[channel].flag_fan =0; else { } //if(CoreData.PortData[channel].flag_fan==1) //{ CoreData.PortData[channel].flag_fan =0; //} date:2013-7-1 this function is used to deal with 16 channels signal and to modify <
*/ void state_deal() { char channel=0; for(channel=0;channel<4;channel++) { CoreData_save.PortData[channel].flag_timeover=NO_TIMEOVER_STATE;/ } else//??′ˉá£?o { //??′ˉá£?oì?£??2?a°??¤??£?ó??1??òù?a??ó? CoreData_save.PortData[channel].output_Fan CoreData_save.PortData[channel].output_Zheng ==//input-->output CoreData_save.PortData[channel].output_Fan CoreData_save.PortData[channel].output_Zheng ==if(CoreData_save.PortData[channel].input_hand_auto { //need clear time CoreData_save.PortData[channel].time=0;//???? == HAND_STATE)//?ó′ˉá£?o /???? CoreData_save.PortData[channel].input_Fan; CoreData_save.PortData[channel].input_Zheng; MOTOR_STOP;//?T????·?£?o÷?è??′ˉá£?o·μì?????ì? MOTOR_STOP; if(CoreData_save.signal_running==RUNNING_STATE)//????2{ ¥Dú?èíí?2é? if(CoreData_save.PortData[channel].input_YeWei==ARRIVE_STATE )//? { ????·????3o if(CoreData_save.PortData[channel].flag_timeover != { } else//?D?a?a1?3o?è { if(CoreData_save.PortData[channel].time { < TIMEOVER_STATE)//?????D?a?a1?à?3o CoreData_save.delay )// CoreData_save.PortData[channel].time++;//100ms=1 CoreData_save.PortData[channel].output_Zheng=MOTOR_ZHUAN; CoreData_save.PortData[channel].flag_timeover=TIMEOVER_STATE; CoreData_save.PortData[channel].time=CoreData_save.delay;//avoid } else//?????a1????-3o?è { } delay to be changed when time add CoreData_save.PortData[channel].output_Zheng=MOTOR_STOP; CoreData_save.PortData[channel].output_Zheng=MOTOR_STOP;//Dí3?′-D } -£?à???ì3 } { CoreData_save.PortData[channel].time=0; else//?????·??à?Dí3o£?á??ì??òù?a,?a1??a0 CoreData_save.PortData[channel].flag_timeover=NO_TIMEOVER_STATE;/ /???? } /* è3à?: 2013.8.15 ??±ù--?¤′′--?¥áü 1′?ˉ?ˉ1?è1?? */ void inputsignal_deal2()// inputsignal_deal2ó??a??ìè??3? \\?¥áü { char channel=0; CoreData_save.delay =CoreData.delay ;//max 7,min 0 CoreData_save.signal_running =CoreData.signal_running ; for(channel=0; channel<4; channel++) } else//????°?2¥Dú?èíí?2é?£??′??aò·ü′-?2é? { } CoreData_save.PortData[channel].output_Zheng=MOTOR_ZHUAN; CoreData_save.PortData[channel].flag_timeover=NO_TIMEOVER_STATE;/ CoreData_save.PortData[channel].time=0; /???? CoreData_save.PortData[channel].output_Fan=MOTOR_STOP;//??±??a?? } } } CoreData_save.PortData[channel].output_Zheng aò£?°?áü?è?a =MOTOR_STOP;//??±??a??aò£?°?áü?è?a { CoreData_save.PortData[channel].input_hand_auto CoreData_save.PortData[channel].input_Zheng CoreData_save.PortData[channel].input_Fan = = = CoreData_save.PortData[channel].input_YeWei //íˉ?a12°a??ì???????2D??′ˉa?±??ó′ˉ£???????£??′íˉ?a?ˉóà??μ?//3a??′ˉa??ó′ˉ·μ£?°??????è???°à2£???±?′1à?Dí?£ //è3à?:3a?ì3?·μ£?á??ì????′ˉ?2é?£?è·????±?ìó??μ?ìóìμ: // 12?????ì3????ê?????ú?ó′ˉ?2é?£??ì3?·μ?°a??ì?a??2D??′ˉ?//ó?Dí3a???è2Dê£ó?a?±??èíí£???±?°???Díí§μ?è?a??ˉ?£ //a?ó??ê????′ˉa??ó′ˉ·μ£???±?′1ê£ó?£??T?????è???°à2if(CoreData.PortData[channel].input_hand_auto==HAND_STATE && CoreData_save.PortData[channel].hand_auto_switch_f = 2; = CoreData.PortData[channel].input_YeWei; a±ó? 2é??í??3o?ó′ˉ?2é??è?£8??21?ò £?ó?Dí???èó?í?2Dê£ó?a??a?èíí?2é?£???±?°??a?1Díí§?£ CoreData_save.PortData[channel].input_hand_auto==AUTO_STATE) CoreData.PortData[channel].input_hand_auto; CoreData.PortData[channel].input_Zheng; CoreData.PortData[channel].input_Fan; //??3á′¨????:?????ú??′ˉá£?oì?£?à?Día??a?ˉóàòaμ?ó3£???±//?????ú?ó′ˉá£?oì?£?Dí?èòaμ?ó3£?ó?Dí3aòù?2?a′12′?a?è£???′¨//???è?a?1Díí§?è?£ ù3?£? ?a??±ù£?a3à? if( CoreData_save.PortData[channel].input_hand_auto==AUTO_STATE) CoreData_save.PortData[channel].hand_auto_switch_f = 0; if(CoreData_save.PortData[channel].input_hand_auto==HAND_STATE) { } /* } if(CoreData_save.PortData[channel].input_Fan== MOTOR_STOP CoreData_save.PortData[channel].hand_auto_switch_f = 0; && CoreData_save.PortData[channel].input_Zheng==MOTOR_STOP) } 2013.8.15 o33ê?ˉ1?á?′? */ void state_deal2() { char channel=0; for(channel=0;channel<4;channel++) { CoreData_save.PortData[channel].flag_timeover=NO_TIMEOVER_STATE;/if(CoreData_save.PortData[channel].input_hand_auto { //1μóó±??1o÷?è?2é? // 1, óaoDo÷?è?ó′ˉ£?òù?2?a?2é??a:0 0; 1 0; 0 1; // 2£?óaoDo÷?è?ó′ˉ£?òù?2?a?2é??a:1 1£??′??Dà?èá??ì?2é?:??// 3£?2D??′ˉ?a???ù?2£?òù?2?a?2é??§í§ // // //need clear time CoreData_save.PortData[channel].time=0;//???? == HAND_STATE)//?ó′ˉá£?o ?óa???3á0ó3 /????
if(CoreData_save.PortData[channel].hand_auto_switch_f==2) { } //input-->output // ?????ú?ó′ˉá£?oì?£?Díòù?a·ê?2?aê??a???è£????èa?????//3???±??a£??a?í′ì2è?°?? //??±óó???°???ê??a???è3á?2é?£?a??? //òù1 ?20 //òù0 ?21 //òù0 ?20 //òù1 ?21---->2è?a°????¢??òù?2?a′1?èíí3á??±?£??′?if(!(CoreData_save.PortData[channel].input_Fan && CoreData_save.PortData[channel].output_Fan CoreData_save.PortData[channel].output_Zheng continue; ==MOTOR_STOP; MOTOR_STOP; ??a£2?£? a?¢ìóòù1?21?a£???±???±ó?ú?ì??μ??2é? ==MOTOR_ZHUAN CoreData_save.PortData[channel].input_Zheng==MOTOR_ZHUAN)) } else//??′ˉá£?o { //??′ˉá£?oì?£??2?a°??¤??£?ó??1??òù?a??ó? CoreData_save.PortData[channel].output_Fan CoreData_save.PortData[channel].output_Zheng =={ } CoreData_save.PortData[channel].output_Fan CoreData_save.PortData[channel].output_Zheng ==CoreData_save.PortData[channel].input_Fan; CoreData_save.PortData[channel].input_Zheng; MOTOR_STOP;//?T????·?£?o÷?è??′ˉá£?o·μì?????ì? MOTOR_STOP; if(CoreData_save.signal_running==RUNNING_STATE)//????2{ ¥Dú?èíí?2é? if(CoreData_save.PortData[channel].input_YeWei==ARRIVE_STATE )//? { if(CoreData_save.PortData[channel].flag_timeover != { } else//?D?a?a1?3o?è { if(CoreData_save.PortData[channel].time { < ????·????3o TIMEOVER_STATE)//?????D?a?a1?à?3o CoreData_save.delay )// CoreData_save.PortData[channel].time++;//100ms=1 CoreData_save.PortData[channel].output_Zheng=MOTOR_ZHUAN; CoreData_save.PortData[channel].flag_timeover=TIMEOVER_STATE; CoreData_save.PortData[channel].time=CoreData_save.delay;//avoid } else//?????a1????-3o?è { } delay to be changed when time add CoreData_save.PortData[channel].output_Zheng=MOTOR_STOP; CoreData_save.PortData[channel].output_Zheng=MOTOR_STOP;//Dí3?′-D -£?à???ì3 } /* */ void output_control() date :2013-7-1 this function control output signal according to the } } { CoreData_save.PortData[channel].time=0; else//?????·??à?Dí3o£?á??ì??òù?a,?a1??a0 CoreData_save.PortData[channel].flag_timeover=NO_TIMEOVER_STATE;/ } else//????°?2¥Dú?èíí?2é?£??′??aò·ü′-?2é? { } /???? CoreData_save.PortData[channel].output_Zheng=MOTOR_ZHUAN; CoreData_save.PortData[channel].flag_timeover=NO_TIMEOVER_STATE;/ CoreData_save.PortData[channel].time=0; /???? CoreData_save.PortData[channel].output_Fan=MOTOR_STOP;//??±??a?? } } } CoreData_save.PortData[channel].output_Zheng aò£?°?áü?è?a =MOTOR_STOP;//??±??a??aò£?°?áü?è?a <<
} k = 195; do { do { while (--k); } while (--j); } while (--i); void dog_init() { } void feed_dog() { } void main() { IO_Output_Init(); Delay100ms(); Delay100ms(); dog_init(); while(1) { } Delay100ms(); Delay100ms(); feed_dog(); read_input(); state_deal2(); output_control(); WDT_CONTR = 0x3c; WDT_CONTR = 0x3c;//?a?2à???£?′¨?a1.1377S inputsignal_deal2(); } 四、小结 本次课主要进行浆泵控制器软件的设计,工作量相对比较大,需要同学们认真对待。
正在阅读:
电子产品制作教案(8)03-11
煤气中毒的预防与急救04-23
对情人分手说的话02-11
二级建造师内部押题《建筑工程实务》05-26
吉林省地方税务局关于印发吉林省地方税务局税收规范性文件管理12-25
在2021年县三级干部会议暨优化营商环境工作会议上的讲话08-22
怎么提高U盘的安全性能避免数据丢失03-13
中考数学答题技巧总结07-21
合作方案12-31
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 教案
- 电子产品
- 制作
- 组织他人偷越国边境罪既遂与未遂的认定
- 3101顺槽运输斜巷、联巷掘进安全技术措施
- 第七届全区中小学方正杯信息技术与学科教学
- 2014-2019年中国新能源产业基地市场调研与投资方向研究报告 - 图文
- 流程银行建设和事业部改革:基于战略作业管理的分析框架及启示
- 任丘一中135自主课堂教学模式实施方案(试行)最终稿201305261039
- MATLAB实验报告(5-9)
- 新中国的革命外交思想与实践
- 2016-2022年中国岩土工程产业发展现状及发展前景报告
- 桥面系施工样板工程
- 理综练习题一
- 英语基础写作之地点介绍
- 利用Excel批量快速发送电子邮件
- 高中地理研究性学习课题
- 普通逻辑学综合练习题及其答案
- 学生顶岗实习周记40篇
- 中国民用航空运输销售代理资格认可须知
- 增补党支部委员的选举办法
- 广告创意部副经理岗位实习报告
- 机械原理试卷及答案B