- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机控制技术项目训练教任务三 键控流水灯控制器制作
参考程序: 项目实施 1.硬件电路的连接。 按照键控流水灯硬件模块接线图,选择所需的模块并进行合理的布局,然后将MCU01主机模块、MCU02电源模块、MCU06指令模块和MCU04显示模块通过连线和排线来进行连接。 2.打开KEIL软件,通过“项目管理/新建项目”菜单,建立一个工程项目Key.uv2,然后再建立一个文件名称为key.c的C语言程序文件,将上面所列的参考程序输入并保存。 3.对源程序进行编译和链接,如果有错误则必须修改错误,直到编译成功,设置生成目标代码。 4.将目标代码通过编程器写入到单片机中。 5.接通电源,让单片机运行,观察结果是否正确。 6.正常后进行扎线,整理。 * * * * * * * (1)if语句的使用 if语句的使用有三种形式 ?if 当程序执行到if语句时,先判断if括号里的表达式,如果为真,则会执行后面的语句;如果为假,跳过if语句,向下继续执行。 ? if else 当程序执行到if语句时,先判断if括号里的表达式,如果为真,则会执行后面的语句1;如果为假,则会转而执行else后面的语句2。 ? if(表达式1) else if(表达式2) {语句2};else {语句n}; 如果表达式1为真,就执行语句1;如果表达式1为假,就去判断表达式2是否为真,为真则执行语句2,为假就去判断表达式3,...... 最后,如果前面的表达式均不成立,就执行最后一个else后面的语句n。但值得注意的是,最后面的else是可以省略的。 在应用if语句的时候,请注意if与else的关系。else总是与它上面最近的一个if语句相对应。在书写程序代码的时候,最好使用缩进排写的形式,这样能很方便的看出其对应的关系。另外,还可以用大括号将不对称的if括起来,这样以便确定它们之间的对应关系。 * 任务二中定义的延时函数void delay( ),精简了我们程序中需要重复延时的代码,但是它延时的时间是固定的。虽然它可以通过修改函数中的数值来改变延时效果,但是不能在每次被调用的时候,实现不同时间的延时。为了解决这个问题,我们可以使用带参数的函数形式。如:定义一个新的延时函数如下: void delay_ms( unsigned int t) { unsigned int x; for(x=t;x0;x--) ; } 此处,函数名称后面的圆括号中有了参数unsigned int t,在定义带参数函数的时候,参数变量t只是一个名称,并没有具体的数值,称为函数的形参。在调用该函数时,我们可以用一个真实的数据代替此形参,这个真实的数据称为实参。形参在被实参代替后,在该函数的内部所有与形参相同的变量都被实参代替了,即相当于给参数变量t传递一个值。调用该函数的应写为:void delay_ms(10000) ;其中10000为实参。由此可见,参数的具体值是在调用时才被确定的,如果对函数传入不同的初值,即能实现不同的延时效果。参数的使用,使得延时的时间长短可以由程序动态的修改,从而变得灵活可控了。 * * * 由于按键在接通或断开的瞬间,会产生触点抖动,消除按键抖动最常用的方法为延时。通过延时,避开抖动期,称为消键的抖动。具体的做法是:当某按键按下后,延时5~20ms,再判断一次;如果两次判断均是按下状态,才确认为按键被“按下”。因此,我们将按键识别的五个步骤总结为:? 首次判断按键是否按下;? 延时消除按键抖动;? 再次判断按键是否按下;④ 等待按键释放;⑤ 实现控制功能。 * * 项目一 乒乓球游戏控制器制作 任务三键控流水灯控制器制作 任务三 键控流水灯控制器制作 任务要求 任务分析 硬件电路的设计与搭建 软件编写 任务实施 任务要求: 键控流水灯控制器要求能使用按键控制LED流水灯的工作:开机时,8个LED灯均呈熄灭状态;点按按键K一次后,以连续3个LED灯从左至右流动点亮,当亮着的灯从右边流出时,循环从左边流入;流动速度要求适中。 任务分析: 前面一个任务我们已经完成了LED流水灯的制作,本任务与前一任务相比仅是增加了按键的控制,即点按一次按键K后立即执行“流水灯程序”。“点按按键一次”通常的理解是先按下按键,然后又放开,所以编程时,首先要判断按键是否真正的按下,
文档评论(0)