(三)任务实施
本任务通过各步骤的实施过程,可以深入了解按键的工作原理,在此基础上编写并测试程序。
步骤一:按键硬件连接
用2根杜邦线连接功能板上的VCC、GND和核心板上的VCC、GND。
用1根杜邦线连接功能板上的D0和核心板上的P1.0。
用1根杜邦线连接功能板上的K1和核心板上的P3.0。
连接效果如图4-1所示。
图4-1 硬件连接效果图
硬件连接效果图
步骤二:绘制流程图
绘制流程图,如图4-2所示。
图4-2 单键控制流程图
步骤三:创建C语言工程文件
① 在D盘下创建文件夹,命名为“按键测试”。
② 启动Keil,创建工程,命名为“按键测试”,并把工程存放至“D:\按键测试”文件夹下。
③ 设置CPU数据的参考文件,如图4-3所示。
④ 创建主程序文件main.c,并将其添加至工程文件组,如图4-4和图4-5所示。
图4-3 CPU数据的参考文件选择
图4-4 创建主程序文件
图4-5 添加主程序至工程文件组
步骤四:程序编写与测试
小贴士
一行代码只做一件事情,例如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且便于写注释。if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少,都要加{ },这样可以防止书写失误。
程序的分界符“{”和“}”应独占一行并且位于同一列,同时与引用它们的语句左对齐。{ }之内的代码块在“{”右边数格处左对齐。
步骤五:程序编译
编译程序,如果有警告、错误,则修改程序,重新编译。程序编写初期容易出现括号不配对、缺少“;”结束符及拼写错误等常见问题,请仔细检查。编译前,勾选“产生HEX文件”,如图4-6所示;若编译输出如图4-7所示信息,则表示编译成功。
步骤六:程序下载及功能验证
程序下载(图4-8)完成后,按压K1键,观察LED灯D0是否点亮,如果点亮,则表示该实验成功;若未按要求点亮LED灯,则表示实验失败,需先检查各连接线是否正确、是否存在接触不良等问题,排除以上问题后,若故障依旧,需检查编写的程序,直至故障解决。
图4-6 勾选“产生HEX文件”
图4-7 编译结果
图4-8 程序下载
步骤七:修改按键硬件连接
用2根杜邦线连接功能板上的VCC、GND和核心板上的VCC、GND。
用8根杜邦线连接功能板上的D0~D7和核心板上的P10~P17。
用8根杜邦线连接功能板上的K1~K8和核心板上的P30~P37。
连接效果如图4-9所示。
图4-9 8按键控制连接图
键控制连接图
图4-10 8按键控制流程图
步骤八:流程图绘制
绘制流程图,如图4-10所示。
步骤九:程序修改
小贴士
在C语言中,最容易产生混淆的操作符为“ = ”与“ = = ”。其中,“ = ”并不是“等于” 符号,而是赋值操作符,例如x = 3,是将整数值3赋予变量x,而非判断变量x是否等于数值3。除此之外,还可以在一个语句中向多个变量赋同一个值,即多重赋值。例如,在下面代码中把0同时赋给x、y与z。
相对于只有一个等号的赋值操作符,关系操作符中的等于操作符采用两个等号“ = = ” 表示。正因如此,导致了一个潜在的问题:出于习惯,我们可能经常将需要等于操作符的地方写成赋值操作符,如下面的代码:
在上面的代码中,if语句看起来好像是要检查变量x是否等于变量y,实际上并非如此,此时if语句将变量y的值赋给变量x,并检查结果是否为非零,因此,虽然这里的x不等于y,但是y的值为1,if语句还是会返回真。
步骤十:程序编译
编译程序,如果有警告、错误,则修改程序,重新编译。程序编写初期容易出现括号不配对、缺少“;”结束符及拼写错误等常见问题,请仔细检查。
步骤十一:程序下载及功能验证
程序下载完成后,依次按压K1~K8键,观察LED灯D0~D7是否点亮,如点亮,则表示该实验成功;若未按要求点亮LED灯,则表示实验失败,需先检查各连接线是否正确,是否存在接触不良等问题,排除以上问题后,若故障依旧,则检查编写的程序,直至故障解决。