您的位置:首页 > 其它

Tiny4412裸机程序,按键检测(轮询方式)

2018-03-01 16:30 253 查看

Tiny4412裸机程序,按键检测(轮询方式)

2014年10月25日 ⁄ 裸机程序 ⁄ 共 1842字 ⁄ 字号 小 中 大 ⁄ 评论 7 条 ⁄ 阅读 1,736 次由于前几天出差,博客没有更新,今天看了看Tiny4412的原理图,把按键扫描程序写了一下,用的是轮询方式,后面会有中断方式的实现,闲话少说,进入正题,程序由前一个实验Tiny4412之C语言实现流水灯更改而来:

一、控制原理说明

先看一下原理图:

按键原理图首先把按键对应的GPIO设置为输入模式,修改GPX3CON寄存器(板子不同,可能对应的GPIO管脚不同),通过上图可知当没有按下按键时,对应的GPIO状态为高电平,当有按键被按下时,对应的GPIO变为低,我们在程序一直检测这几个GPIO状态即可;

二、程序说明

其中Start.s文件同上一个实验完全相同;链接脚本key.lds的内容和led.lds完全相同,只把名字改了改;Makefile的内容也大部分一样,也只是改了改里边文件的名字,key.c的文件需要重新编写,代码如下:
其中注释也比较详细,控制原理上边也说得很清楚了,这里就不多说了,有问题可以留言。

三、程序编译及烧写

1.编译通过FTP或者其他工具将Start.s、Makefile、key.lds 、key.c四个文件上传到服务器上去,输入make命令进行编译将得到key.bin文件。2.烧写将SD卡插入电脑,并让VmWare里的Ubuntu识别出来,然后执行如下命令:
如下图所示:

将程序烧到SD卡

四、上电实验



程序运行图一

程序运行图二上图所示,图一是没有按键被按下,四个LED全都被点亮,图二是有两个键被我同时按下 完整的程序下载地址(解压密码:WWW.techbulo.Com):下载地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: