单片机应用技能实训(C语言)教案—项目3项目3电动机正反转控制电路制作任务1项目相关知识学习一、案头任务项目相关知识学习授课时间年月日授课班级教学形式讲授、讨论授课时数2课时教学用具多媒体教学资源项目3制作成品、课件课前准备教学目标1、了解光耦的工作原理,掌握光耦与单片机的连接方法。2、理解直流电动机正反转控制原理。3、掌握MCS-51单片机I/O口的使用方法。4、掌握按键与单片机的连接方法及键开关去抖动方法。5、掌握C语言的使用。教学重点1、单片机与光耦的连接方法。2、直流电动机正反转控制原理。3、指令的使用。教学难点1、电动机正反转控制原理接线。2、相关指令的灵活使用。教学过程1、通过对单片机控制系统的分析,引出项目任务。2、光耦的工作原理。3、光耦与单片机的连接方法。4、直流电动机正反转控制原理。5、MCS-51单片机I/O口的使用。6、按键与单片机的连接方法及键开关去抖动方法。教学后记二、教学实施过程实施环节教学内容导学方法组织教学1、检查学生出勤情况并做好记录。2、调整学生的注意力,为上课作准备。互动交流复习提问1、如何实现单片机控制电路的人机对话?2、他激直流电动机如可完成正反转?本项目就要用单片机对直流电动机进行正反转控制。提问导思导入单片机控制系统一般由三大部分构成,即输入部分(外部信息的采集、向单片机发布控制信息等)、运算处理部分(由单片机系统构成)和输出控制部分(将运算处理结果输出控制相应机构)。单片机系统的电源为+5V电压,而输入输出部分的电源电压经常是不等于+5V的,如果直接通过电阻耦合在一起会导致相互干扰,从而使单片机控制系统的正常工作受到影响,所以常需要进行隔离,目前常用隔离方法是光电隔离和继电器隔离。启发学习积极性讲授新课一、光耦的工作原理光电耦合器也称光电隔离器,简称光耦,如图3-2所示。光耦的种类很多,单片机控制系统常用光耦有两种,其电路符号如图3-3所示。图3-2图3-3图3-4是光耦工作原理示意图。图3-4光耦工作原理示意图光电耦合器的主要优点是:信号单向传输,输入端与输出端完全实现了电气隔离,输出信号对输入端无影响,抗干扰能力强,工作稳定,无触点,使用寿命长,传输效率高。二、光耦与单片机的连接光耦与单片机的连接方法如图3-5所示。图中U1是光耦作为输入隔离器的接线方法,R3为输入限流电阻,R1为负载电阻;U2是光耦作为输出隔离器的接线方法,R2为限流电阻,R4、D1为输出端模拟负载。用多媒体展示图3-2、图3-3。用多媒体展示课件图3-4.将图3-5画用多媒体展示,并作详细讲解。图3-5光耦与单片机的连接图3-6电动机正反转控制三、直流电动机正反转控制原理图3-6是永磁式直流电动机的正反转控制电路示意图,由两个开关SW1、SW2的状态来控制电动机的正转、反转及停止。四、MCS-51单片机输入/输出端口的使用1、从单片机输入/输出端口输出数据的方法通过项目二的制作学习,P0~P3口的结构及工作原理有了基本了解。P0口作为输出口使用时,要外接上拉电阻,而P1~P3口则不需外接上拉电阻,由P1~P3口输出数据的方法与由P0口输出数据的方法相似,即执行以端口为目标操作数的指令。例如:P1=0x66;//将立即数送到P1口输出。P2=a1;//将变量a1的值送到P2口输出。P3_0=0;//将P3.0清0(使用前要先定义)。2、从单片机输入/输出端口输入数据的方法从P0~P1口输入数据前,要先向相应锁存器写1(即执行向端口输出1的指令),端口数据准备好后,执行以端口为源操作数的指令即可完成数据输入(按键的开合状态可以作为数据输入),举例如下:P1=0xff;//输入数据之前先向端口写1。a1=P1;//将P1口数据送给变量a1。3、按键的查询方式查询方式是CPU通过主动查询来获取端口信息的方式,常常通过执行位判断转移指令来查询端口按键的开合信息。按键与单片机的连接如图3-7所示,当开关S1或S2被按下时,相应的引脚与地相连而变成低电平“0”,当S1或S2不被按下时,相应的引脚为高电平“1”。执行位判断指令时,通过判断相应引脚是1还是0来判断按键是开还是合。用多媒体展示电动机正反转控制课件及图3-6。用多媒体展示图3-7并加以讲解。图3-7按键与单片机的连接4、键开关的去抖动方法机械触点开关的闭合和断开瞬间均有抖动过程,一般5~10ms,如图3-8所示。当CPU检测到有键按下时,必须对按键的一次闭合仅作一次处理,因此,必须除去抖动影响。图3-8图3-9通常去抖动有硬件、软件两种方法。用硬件去抖动的方法通常用RS触发器组成的去抖动电路如图3-9所示。当开关闭合时,输出为低电平,在开关抖动期间,弹簧片可能和A、B两点均不接触,RS触发器保持原来状态,因此消除了开关抖动的影响。软件去抖动的办法是CPU检测到有键按下时,延迟5~10ms(让过抖动时间)后,再去检测按键是否按下,若再次检测时无键按下,则不执行键闭合操作,若再次检测时有键按下,则执行相应键闭合操作。课堂小结1、光耦的工作原理。2、光耦与单片机的连接。3、永磁式直流电动机正反转控制电路工作原理。4、MCS-51单片机输入/输出端口的使用。课后作业自我测评1题、2题、4题。任务2电动机正反转控制电路硬件、软件设计一、案头任务电动机正反转控制电路硬件、软件设计授课时间年月日授课班级教学形式讲授、讨论授课时数2课时教学用具教学资源课件、单片机应用制作成品课前准备教学目标1、掌握光耦在单片机控制系统的应用方法。2、掌握电动机正反转控制电路的整体构成。3、掌握C语言指令if语句、switch语句的使用。4、理解应用程序的编程思路。教学重点1、光电隔离输出控制电路的整体构成。2、应用程序的的编程思路及相关指令使用。教学难点1、控制电路的软硬件整体考虑。2、输出驱动电路的理解设计。教学过程1、复习光耦与单片机的连接方法及电动机正反转控制原理。2、根据项目任务由同学讨论设计硬件电路原理图。3、if语句、switch语句的使用。4、应用程序流程图绘制。5、应用程序设计。教学后记二、教学实施过程实施环节教学内容导学方法组织教学1、检查学生出勤情况并做好记录。2、调整学生的注意力,为上课作准备。互动交流复习提问1、光耦的工作原理?2、如何实现永磁式直流电动机的正反转?提问导思导入本项目的任务要求是:P1口作为输入口,外接4个按键用来输入控制命令。P0口作为输出口,P0口低4位直接驱动4发光二极管,P0口高位通过隔离输出控制直流电动机正反转。要求:(1)S1作为控制电路总开关,点按S1之前S2、S3、S4均不起作用,点按S1后,再点按S2(或S3、S4)完成相应控制功能;按键S2、S3的作用是使电动机正反转;按键S4的作用是使电动机停止。(2)用4个发光二极管来指示系统工作状态。启发学习积极性讲授新课一、电动机正反转控制电路设计1、电动机正反转控制电路原理图设计根据项目要求和前面所学相关知识,可分别将电路各部分进行设计。比如按键部分、发光管部分、隔离输出部分、电动机正反转控制部分等。比较难的是隔离输出驱动部分的设计及理解。整机电路原理图如图3-10所示。图3-102、元件选择(1)复习晶振电路元件及复位电路元件的选择。(2)发光二极管电路元件选择。(3)光电隔离电路及电动机正反转控制电路元件的选择。其中:保护二极管:1N4001光耦:TLP521-1继电器:三极管:9013电动机:12V工作电压二、C语言指令---if语句、switch语句1、if语句if语句用来判定所给的条件是否满足来决定执行哪种操作。if语句有3种基本形式---“if…”“if…else”“嵌套的if…else”。老师和同学共同讨论在黑板上绘制各组成部分电路原理图。由同学选择,老师指导。在此可以举例说明if…的使用方法。(1)if…语句格式如下:if(条件表达式){语句;}该语句的执行过程是:如果条件为真则执行下面大括号中的语句,否则(条件不成立)跳过if语句,直接执行if语句的一下条语句。(2)if…else语句格式如下:if(条件表达式){语句1;}else{语句2;}该语句的执行过程是:如果条件为真,执行语句1,否则(条件不成立),执行语句2。(3)嵌套的if…else语句格式如下:if(条件表达式1){语句1;}elseif(条件表达式2){语句2;}…elseif(条件表达式n){语句n;}else{语句n+1;}该形式的if语句的执行过程是:从上向下逐一对if后的条件表达式进行检测,当检测到某一表达式的值为真时,就执行相举例说明if…else语句的使用方法。应的语句。如果所有表达式的值均为假,则执行最后的else语句。这种形式的if语句可以实现多种条件的选择。在后两种if语句中,注意if与else的配对,else总是与最近的if配对。2、switch语句switch语句也称为开关语句,是直接处理多分支的选择语句。虽然用多个if语句可以实现多方向条件分支,但是,使用过多的if语句实现多方向分支会使条件语句嵌套过多,读起来也很不好读。如果使用switch语句,不但可以达到处理多分支选择的目的,而且又可以使程序结构清晰。Switch语句的格式如下:switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;…case常量表达式n:语句n;break;default:break;}运行时,switch后面的表达式的值将会作为条件,与各个case后面的常量表达式的值相对比,如果相等时则执行该case后面的语句,再执行break语句跳出switch语句;如果case没有和条件相等的值时,就执行default后的语句;同时要求在switch语句中所有的常量表达式必须不同。应用举例如下:设S1、S2、S3分别接单片机的P1.0、P1.1、P1.2。当S1按下时,调用函数hs1;当S2按下时,调用函数hs2;当S3按下时,调用函数hs3。程序如下:main(){unsignedchari;while(1){i=P1;switch(i){case0xfe:sh1();break;case0xfd:sh2();break;case0xfb:sh3();break;default:break;}}}三、应用程序流程图绘制及程序设计1、流程图绘制根据项目要求,设计本项目的主程序流程图如图3-12所示。开始初始化是S1按下吗?输出系统状态值是S2按下吗?是S3按下吗?输出系统状态值调用电机正转函数输出系统状态值调用电机反转函数输出系统状态值调用电机停止函数是S4按下吗?YNYNNYYN图3-122、程序设计根据流程图进行程序设计,头文件及定义部分如下:#includereg51.h//包含单片机寄存器的头文件sbitS1=P1^0;//定义S1为P1.0引脚sbitS2=P1^1;sbitS3=P1^2;sbitS4=P1^3;sbitled1=P0^3;sbitled2=P0^2;在老师引导下由同学老师共同完成流程图绘制。由老师介绍程序的开关部分,并讲解电机正转子函数。之后在老师引导下与同sbitled3=P0^1;sbitled4=P0^0;sbitzheng=P0^6;sbitfan=P0^7;/********以下是电机正转函数*******/voiddjzz(){fan=1;zheng=1;//使P2.6,P2.6为1,电机停,为正转准备delay02s();//调用延时zheng=0;//使P2.6=0,电机正转}学一起完成应用程序设计。时间允许时,可由同学对应用程序进行优化设计。课堂小结1、电动机正反转控制电路构成。2、C语言指令---if语句、switch语句使用。3、电动机正反转控制电路应用程序设计。课后作业1、自我测评3题。2、使用switch语句编写电动机正反转控制应用程序。任务3电动机正反转控制电路的计算机仿真一、案头任务电动机正反转控制电路的计算机仿真授课时间年月日授课班级教学形式老师演示、学生练习授课时数2课时教学用具