1、抢答器电子教案教学实施方案课题名称单片机系统的键盘实训部审批任务名称抢答器的应用年月曰学时6学时授课时间授课班级授课教师一、教学分析教材分析本课程为专业中的专业技能课,在专业中起着重要的支撑作用;该教材的教学设置由易至难,让学生更好的学习掌握知识;此任务课题也结合了较为新颖的教学方式,为学生后续内容学习作铺垫。二、教学目标Ea知识目标掌握常见按键的程序设计,掌握通过按键与显示界面实现单片机系统的输入输出功能。技能目标能根据按键计数器的设计要求在实验箱上正确连接导线,编写单片机汇C语言程序实现其功能,并完成软硬件联合调试。烈情感目标锻炼学生表达与沟通能力、分析能力;激发学生对单片机编程调试的动手
2、操作和课程的学习兴趣。三、重点难点i教学重点单片机编程基础知识、独立按键的工作原理,按键程序的编写。圜教学难点单片机C语言程序的编写规范、独立按键软硬件联合调试技巧。四、教学方法一、实施建议1 .将学生人数平均分组,明确任务组长2 .适时组织小组讨论分工、信息学习、编程思路、评价学习等教学活动。二、课堂互动1 .说说使用单片机开发电子产品有什么优缺点?2 .说一说常见的电子产品嵌入了单片机有什么特点?3 .说一说常见的电子产品使用按键的有哪些产品?三、任务实施表17任务实施过程步骤步骤1了解掌握独立按键的工作原理完成者教师、全体学生说明:教师引导学生进行广告灯功能的分析、教师用仿真软件展示广告
3、灯效果。步骤2按键计数器延时消抖的实现完成者教师、全体学生说明:教师指导学生把LED广告灯硬件电路确定好,学生绘画电路原理。步骤3硬件电路的确定,确定编程思路完成者教师、全体学生说明:教师绘画程序流程图引导学生确定编程思路。步骤4连接硬件电路完成者学生说明:教师指导学生焊接广告灯硬件电路。步骤5编写单片机C语言程序完成者学生说明:教师指导学生编写单片机汇编程序。步骤6按键计数器软硬件联合调试完成者学生说明:教师指导学生进行按键计数器软硬件联合调试,在遇到学习调试不成功时,可根据其电路的现象引导他找出问题所在,指导学生完成任务,达到设计要求。五、学习内容一、设计任务导入学生接到设计按键计数器的生
4、产任务,首先明确按键计数器的设计要求,确定硬件电路,绘画电路原理图,准备施工材料及工具、焊接硬件电路、编写程序、软硬件调试,最后展示效果和验收。在项目实施过程中,应遵循电气安全工作规程、电气工程安装规程、电工手册。二、设计任务分析本次任务是使用YL236装置的模块搭建一个按键计数系统,要求具有以下功能:使用8个独立按键,按下任意键,计数值加1,计数值范围是000999”;八位数码管的右3位显示计数值,最左边的1位数码管显示按下的键值,其余数码管显示-。本次任务其中包括程序流程分析、硬件电路的确定、操作工具准备、程序流程分析、编写控制程序、注意事项等作为准备,如表1所示。表1完成按键计数器必须进
5、行的准备内容序号内容1编程基础知识及编程软件下载软件使用2硬件电路的确定及绘画3操作工具准备4程序流程分析5注意事项教学内容:(一)项目描述1、使用8个独立按键,按下任一键,计数值加1,计数值范围是“000999”2、八位数码管的右3位显示计数值,最左边的1位数码管显示按下的键值,其余数码管显示a_O(二)项目分析通过项目描述,实现本项目需完成以下工作:L硬件电路的设计(1)键盘输入部分将8个按键与单片机连接,使单片机能检测按键的状态。(2)数码管显示部分将单片机与数码管显示器连接,通过数据总线、控制总线来控制数码管的显示。(三)程序设计(1)按键扫描函数利用延时消除按键抖动影响,两次确认有效
6、按键后,翻译键值;该函数还要处理同一个按键的连按问题。(2)主程序开机后,8位数码管全部显示“一二扫描按键判断是否有键按下:有键按下,则返回有效键值;无按键按下,则返回无效键值。若返回键值有效,根据键值更新显示缓冲区的a7,计数值加1,根据计数值更新显示缓冲区a0a7;调用数码管动态显示。(四)了解独立式按键的工作原理独立式按键是直接用VO口线构成的按键检测电路,其特点是每个按键单独占用一个I/O口,每个按键的工作不会影响其他I/O线的状态。独立式按键的典型应用如图1所示。图1独立按键典型应用1、独立按键优缺点优点:电路配置灵活,软件结构简单。缺点:按键较多时,占用较多UO口O2、独立按键的抖
7、动过程目前常用的按键大部分都是机械式按键,机械式开关的闭合与断开的瞬间均有抖动过程,抖动过程如下图所示,抖动时间的长短与开关的机械特性相关,一般为525ms0按下键,11松开键M抖*键盘稳国中后沿抖尴图2按键抖动过程在触点抖动期间检测按键的通断状态,可能导致判断出错,即按键的一次按下或释放被错误地判别为多次按下。为了克服按键触点机械抖动所致的误判,必须采取硬件或软件方法消除抖动。硬件消抖:可在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图3-4(八)是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。3、硬件电路设计本项目主要使用YL-
8、236装置中的四个模块:MCUOl主机模块、MCU02电源模块、MeU04显示模块、MeU06指令模块,接线图如图3所示。(四)程序的设计本项目程序设计主要完成两部分:按键扫描函数,主函数。按键扫描函数使用延时去抖来实现,其程序流程图如图4所示。其中连按标志用于现别某按键的按下是否已经得到系统响应,避免对一次按键操作做出多次响应。图3键盘显示硬件接线图按键计数器主函数的流程图如图4所示。=:技键扫描程序流程图a技键计激器主函数的通程国a图4按键计数器的程序流程图(五)“按键计数器”的程序清单:ftinclude包含89x52头文件ftinclude包含intrins.h头文件ftdefineu
9、intunsignedint无符号整型定义#defineucharunsignedchar无符号字符型定义ftdefineoutOPO定义out0为PO口WdefinekeyP3sbitLED-CSPO;sbitLED-CS2=P1;sbitLED-WR=P2;uchara8;ucharcodeTAB=数码管段选信号端/数码管位选信号端数码管写信号端/数码管八位显示缓冲区共阳极数码管字模OxcO,0fx9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,/01234567890x88,0x83,0xc6,0xal,0x86,0x8e,/abcdefOxff,Ox
10、bf/熄灭-);ucharIiar1;/连按标志位voiddelayms(uintx)函数省略,请参考任务2-1-2voidWriteDuan(ucharx)写段码函数省略,请参考任务2-2TvoidwriteWei(ucharx)写位码函数省略,请参考任务2-2Tvoiddisplay()显示函数省略,请参考任务2-2-1ucharscankey()(ucharkeyPress;ucharkeynum;keymum=0xff;键盘函数,/临时键值返回键值健值无效key=0xff;输出8个1,准备读_nop_();keyPress=key;/读出临时键值if(keyPress!=Oxff)/是
11、否有键按下(If(Iian=O)连按标志:0为第一次按下;否则为连按delayms(10);去抖keyPress=key;/读出临时键值if(keyPress!=Oxff)再次判断是否有键按下Iian=I;连按标志位置位switch(keyPress)/删译键值caseOxfe:keynum=l;case0xfd:keynum=2;break;break;caseOxfb:keynum=3;break;case0xf7:keynum=4;break;caseOxef:keynum=5;break;caseOxdf:keynum=6;break;caseOxbf:keynum=7;break;case0x7f:keynum=8;break;default:Iian=O;break;else若无键按下Han=O;连按标志位复位return(keynum);返回键值voidmain()主函数(uintnumber=0;uchari,keydata;for(i=0;i999)number=0;a2=number100;al=number/10%10;a0=number%10;Display();调用显示函数八、教学后记