任务引入
在生活中电器通电后,往往需要操作按键后才能启动相应的工作,按键的作用就是将人们的主令信号转换成电的工作信号。这次任务就是单个独立式按键安装与调试。
任务目标
知识目标:1.掌握独立式按键的结构及工作原理。
2.掌握单个独立式按键控制程序工作设计思路和步骤。
3.理解JB、JNB等相关指令意义及应用。
技能目标:1.能使用相关仪表检测按键结构、判断元器件的性能。
2.进一步掌握各电子元器件的焊接方法。
3.会编写单个独立式按键控制的程序。
4.会调试单片机单个独立式按键控制软硬件。
情感目标:1.在制作任务过程中养成严谨的工作态度。
2.在任务实施过程中加强沟通,团队合作。
3.逐步培养学生建立工作的质量意识、安全意识。
任务描
1.利用开发板,设计单个独立式按键控制流水灯的工作,绘制相关程序流程图。
2.对本任务中的相关元器件进行检测和安装,并完成联机调试,如图3-2所示为单个独立式按键电路。
图3-2 单个独立式按键电路
任务实施
图3-3 程序流程图
一、任务分析
在项目二中学习了灯光的控制过程,LED在工作过程中不受外部指令信号控制,只要我们输入程序,灯光就自动循环工作。本次任务中,要求在输入程序后,LED流水灯不工作,当按下外部控制按键(P3.7)时,LED流水灯循环显示工作(P2口)。
二、画程序流程图
根据任务画出程序流程图,如图3-3所示。
三、编写程序
根据流程图和相关指令编写程序
四、硬件制作
1.器材准备
本任务所需硬件包含有:已安装基本电路、限流电阻排、8个LED灯,独立式按键。
1)元器件表如表3-1所示。
表3-1 元器件表
2)单个独立式按键电路如图3-4所示。
图3-4 单个独立式按键电路
2.工具准备
安装基本电路的焊接工具有:电烙铁、镊子、焊锡、松香等,如图1-58所示。
3.制作要求
(1)按元器件表清点所需安装元器件
(2)检测所有元器件的特性、好坏
(3)焊接要求
1)焊接元器件整体美观、分布均匀、焊接过程先焊接大件,再焊接小件。
2)要求焊接的焊点光滑、饱满、无毛刺,导电性能良好。
3)注意按键焊接的方向。
4.电路安装
五、联机调试
1)将编写程序输入Keil中,进行程序检查,编译及下载。
2)将hex文件通过双龙下载器烧入单片机并调试。
知识链接
一、相关指令学习
1.位传送指令
指令功能:位传送指令有两条,只能在位地址表示的位单元和位累加器Cy之间传送。两个位存储单元之间不能直接进行传送,必须通过位累加器Cy作为桥梁。执行该指令后,对A中的内容进行清除,相当于A的内容为00H。(www.daowen.com)
2.位控制转移指令
(1)位累加器判1转移指令JC
指令功能:执行该指令后,对特殊位寄存器C中的内容进行实时判别:如果C中内容为1,就执行JC指令后面的地址指令;如果C中内容为0,就执行JC指令后面的指令。
(2)位累加器判0转移指令JNC
指令功能:执行该指令后,对特殊位寄存器C中的内容进行实时判别:如果C中内容为0,就执行JC指令后面的地址指令;如果C中内容为1,就执行JC指令后面的指令。
执行过程与位累加器判1转移(JC)应用相反。
(3)位判1转移指令JB指令功能:执行该指令后,对某一位实时判别:如果该位为1,就执行JB指令后跟的地址指令;如果该位中内容为0,就执行JB指令后面的指令。
例如:JBP2.2,LL1执行该指令时,如果P2.2=1时,就转移到地址为LL1的指令运行;如果是P2.2=0时,就顺序执行该指令后面的指令。
(4)位判0转移指令JNB
指令功能:执行该指令后,对某一位实时判别:如果该位为0,就执行JB指令后面的地址指令;如果该位中内容为1,就执行JB指令后面的指令。
例如:JBP2.2,LL1执行该指令时,如果P2.2=0时,就转移到地址为LL1的指令运行,如果是P2.2=1时,就顺序执行该指令后面的指令。
注意:JB,JNB位判断指令常常用于检测并行口中某一引脚输入信号。
二、相关硬件学习
1.单片机的输入电路
P0~P3在作为输出口时,结构有所不同,但是在作为输入口时,结构几乎完全相同,都是通过一个三态的寄存器连接到CPU内部的数据总线的,如图3-5示。其内部“读引脚”必须为1,外部数据才会通过寄存器送到内部数据总线。这也是在输入之前,必须要送1到该I/O口,且将该I/O口设计成输入功能的原因。
图3-5 P0口输入功能
2.输入设备
输入设备可分为两类:按钮开关和扳键开关,如图3-6所示。
电子电路或计算机中所使用的按钮开关大多采用TACKSwitch,如图3-6a所示。
电子电路或计算机中所使用的单刀开关大多采用扳键开关(DIPSwitch),如图3-6b所示,若为4P的DIPSwitch,则有4组单刀开关;若为8P则有8组单刀开关。通常会在DIP Switch上标有记号或ON,若将开关拨到记号或者ON的一边,则接通(on);反之,拨到另一边则为断开(off)。
3.输入电路连接
单片机并行口接收的信号为高电平(1)或低电平(0),若输入为开关指令信号,通常会接一个电阻到电源正极或地。
如图3-7a所示,平时按钮开关为开路状态,其中10kΩ的电阻连接到电源,使输入引脚保持为高电平;若按下按钮开关则经由开关接地,输入引脚将变为低电平;当松开开关时,输入引脚将恢复为高电平信号,如此可产生一个负脉冲。反之,在图3-7b中平时按钮开关为开路状态,其中470Ω的电阻接地,使输入引脚保持为低电平;若按下按钮开关则经由开关接电源,输入引脚将变为高电平;当放开开关时,输入引脚将恢复低电平信号,如此可产生一个正脉冲。
图3-6 开关外部形状及符号
图3-7 输入信号的输入方式
在输入信号的使用中,由于单片机采用高电平复位信号,为了避免信号使程序误动作,通常按钮开关使用负脉冲信号图3-7b。
4.去抖电路
在前面所介绍的输入电路中,开关的操作是理想状态,如果仔细分析开关的真实操作,将会发现许多非预期的状态。由于开关的触点面积小、机械式设计、产品老化等原因,使得在实际应用中不可能像数字系统所期望的那样产生干净的数字信号输出,而是在开关闭合或断开过程中出现许多毫秒级的状态变化,这种现象通称为开关的“抖动(bounce)”,抖动时间长短与机械按键的特性有关,一般为5~20ms,如图3-8所示。它是系统中不可回避的问题。按键按下的抖动可以近似为多次按键操作,造成重复输入。因此按键操作中必须进行防抖处理。常用的防抖方法有硬件方法和软件方法。
(1)硬件防抖
要避免抖动的现象,可使用一个双联开关及互锁电路,组成去抖电路,如图3-9所示。这种电路可降低抖动所产生的噪声,但所需元器件较多,所占的电路面积较大,会增加成本和电路的复杂性,现在已经很少使用了。
图3-8 按键抖动示意图
图3-9 去抖电路
(2)软件防抖
不管怎么样,利用硬件来抑制抖动的噪声,一定会增加电路的复杂性和成本。若在软件上考虑,在程序执行时,避开产生抖动的那段时间(5~20ms),即可达到去抖的效果。延时方法:当检测到有按键按下时,延时一段时间,这个时间大于抖动时间,延时后再检测是否有按键按下,如果再有按键处于闭合状态,说明有键按下。如果检测没有键按下,则重新检测。如果有键按下,读键值,随后再检测按键是否释放,如果检测到按键释放,转入相应的执行程序,从而完成按键的检测处理。
如图3-10所示为软件防抖程序流程图。
下面是防抖程序。
图3-10 软件防抖程序流程图
任务拓展
根据已有硬件设计完成任务并调试:
1)按下启动按键,执行D1D2亮→D3D4亮→D5D6亮→D7D8亮→D1D2亮→……
2)按下启动按键,执行D1D2D3D4亮→D5D6D7D8亮→D1D2D3D4亮→……
3)按下启动按键,执行D1D3D5D7亮→D2D4D6D8亮→D1D3D5D7亮→……
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。