任务引入
在控制单片机过程中,有时需要有几个输入信号改变系统的工作状态,如洗衣机的起动键、模式键、水量键、自动生产线的正转、反转控制等。完成多个按键信号的采集和相互控制与制约的设计是怎样的呢?本次任务我们来学习吧!
任务目标
知识目标:1.进一步掌握独立式按键的结构及工作原理。
2.熟悉掌握多个独立式按键控制程序工作设计思路和步骤。
3.进一步理解JB、JNB等相关指令意义及应用。
4.能独立编写单片机多个独立式按键控制的流程图和程序。
技能目标:1.能使用相关仪表检测按键结构、判断元器件的性能。
2.进一步掌握各电子元器件的焊接方法。
3.会编写多个独立式按键控制的程序。
4.会调试单片机多个独立式按键控制电路的软硬件。
情感目标:1.在制作任务过程中养成严谨的工作态度。
2.在任务实施过程中加强沟通,团队合作。
3.逐步培养学生建立工作的质量意识、安全意识。
任务描述
1.利用开发板,控制多个独立式按键控制流水灯的工作:
1)按下SW1,流水灯顺序工作,即D1→D2→D3→D4……D8,依次循环。
2)按下SW2,流水灯逆序工作,即D8→D7→D6→D5……D1,依次循环。
2.绘制多个独立式按键控制流水灯工作流程图和编写相关程序。
3.对本任务中相关元器件进行检测和安装,并完成联机调试,如图3-11所示为多个独立式按键控制电路。
任务实施
一、任务分析
根据任务描述,使用P3.2为SW1按键顺序流水灯工作信号,P3.3为SW2按键顺序流水灯工作信号,P2口控制8个流水灯显示。
二、画程序流程图
根据任务要求画出程序流程图,如图3-12所示。
图3-11 多个独立式按键控制电路
三、编写程序
根据流程图和相关指令编写程序。
图3-12 程序流程图
四、硬件制作
1.器材准备
本任务所需硬件包含有:已安装基本电路、限流电阻排、8个LED灯,6个独立式按键。
1)元器件表如表3-2所示。
表3-2 元器件表
2)多个独立式按键电路实物图如图3-13所示。(www.daowen.com)
图3-13 多个独立式按键电路
2.工具准备
安装基本电路的焊接工具有:电烙铁、镊子、焊锡、松香等,如图1-58所示。
3.制作要求
(1)按元器件表清点所需安装元器件
(2)检测所有元器件的特性、好坏
(3)焊接要求
1)焊接元器件整体美观、分布均匀、焊接过程先焊接大件,再焊接小件。
2)要求焊接的焊点光滑、饱满、无毛刺,导电性能良好。
3)注意按键焊接的方向,注意观察按键点的粘焊。
4.电路安装
五、联机调试
1)将编写程序输入Keil中,进行程序检查,编译及下载。
2)将hex文件通过双龙下载器烧入单片机并调试。
知识链接
一、相关指令学习
1.查表指令MOVC
程序存储器是只能读而不能写的,存放着监控程序和用户应用程序,由CPU完成对其程序的读写指令。但我们常用程序存储器存放一些常用的数据表格(例如各种代码表格、立方表、字库),在程序执行过程中对其进行表格数据查询,并将查询结果送累加器A,称为查表。
指令功能:首先将寄存器DPTR的内容与累加器A中的内容相加,两者之和作为程序存储器地址,然后将该地址单元的内容传递到累加器A中,指令执行后DPTR的内容不变,但累加器A原来的内容被新地址的内容取代。指令执行中,只要将DPTR的内容逐一递加,就能将某一表格内容逐个送入A中,如图3-14所示。
指令格式:MOVC A,@A+DPTR; A←(A+DPTR)
图3-14 MOVC指令示意图
例如:若指令执行前A=05H,DPTR=2000H,则执行指令时,首先将DPTR的内容2000H与累加器中内容05H相加,得到地址2005H,然后将该地址的内容传送到A中。累加器A的内容变化成新的内容,A中内容就是2005H中内容。
注意:执行该指令前,一般要执行MOVDPTR,#TAB指令,#TAB为表格的起始地址,首先应将首地址赋给DPTR。这样在执行MOVC A,@A+DPTR时才知道表格的第一个数的地址在哪里,其他根据第一个地址就依次被确定下了。
2.比较条件转移指令CJNE
指令功能:比较条件转移指令是将指令中的两个操作数相比较,两个数不相等则发生转移,相等则顺序执行。共4条指令,助记符CJNE中,C代表“Cy”,J代表“转移”,N代表“不”,E代表“相等”。
比较指令中,两个数据比较后,还会影响进位位Cy值,当Cy=1时,表示操作数1大于操作数2;当Cy=0时,表示操作数1小于操作数2。
例如:CJNE A,#23H,LL1 如果A=23H,则程序顺序执行;如果A≠23H,则程序执行指令后跟的地址LL1处的指令。如下所示:
3.加一指令 INC
指令功能:加一指令功能是把源操作数所规定的RAM单元的内容加1。除了DPTR是对16位数据进行加1,其余都是对8位数进行加1。加一指令不会影响Cy里的值。
4.减一指令 DEC
指令功能:减一指令功能是把源操作数所规定的RAM单元的内容减1。减一指令与加一指令一样不会影响Cy里的值。
任务拓展
根据已有硬件完成下列任务并调试:
在按下SWI流水灯顺序工作或按下SW2流水灯逆序工作时,如何通过另一按键实现工作流水灯的停止,试设计程序并调试。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。