找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5616|回复: 4
打印 上一主题 下一主题
收起左侧

STC12C5A60S2如何用C语言写按键程序

[复制链接]
跳转到指定楼层
楼主
各位大神,本人初学单片机,现在想写一个按键程序,望指点,不胜感激。要求如下:
有2个按键,分别为+和-,当长按+键超过3秒时,如果此时仍不释放,+值会连续增加,当此时释放+键,改成点击+键,+值会+1。长按+键超过3秒后释放,紧接着长按-键,-键值会连续减小,点击-键,值-1。并且要求设置好的值断电后能保存。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2017-6-16 08:06 | 只看该作者
你说自己是初学者,那么提出的要求可是很高很高啊。我学了半年才能做到你说全部要求!第一:按键问题。其实很简单。它在单片机中的与生活中的是不一样的。生活中的按键,就是开关,而单片机中的,也是开关,但时间上就不一样了。你得找点资料看看。
第二:按键的多功能问题。按键的按时间长短,得到不同的功能,需要程序判断,这个还不难,但我没有做过。
第三:保存数据。这个,可以有两个方法:一是用外部存贮器,我目前会这种,二是用单片机自己的内存,我还没试验过,但网上有相关资料。可以自己查一下。
给你分享一个例程,是用外部存贮器的,没有一键多功能,但可以加减、保存、读回。
例子适用于:普中HC6800-ES-V2.0开发板:STC89C52RC单片机、24C02外部存贮器。

1.jpg (27.94 KB, 下载次数: 70)

1.jpg

2.jpg (12.18 KB, 下载次数: 72)

2.jpg

3.jpg (17.14 KB, 下载次数: 106)

3.jpg

4.jpg (34.07 KB, 下载次数: 75)

4.jpg

24C02.rar

44.4 KB, 下载次数: 25

评分

参与人数 1黑币 +80 收起 理由
admin + 80 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:123289 发表于 2017-6-16 11:50 | 只看该作者
设置三个计时器,J1、J2、J3,当键松开时全部复位。
设置三个开关,K1、K2、K3,分别控制J1、J2、J3,当K1=1时起动J1,当K1=0时停止J1计时但不清0。K2,K3类同。当键松开时K全部清0。
当键按下时置K1=1,K3=1。
J1:长按计时,范围0-10秒,K1=1时计时,计满=10停止但不回0。
J2:连加计时,范围0-0.5秒,当J1>3秒后,置K2=1,J2开始计时,计到0.5秒后键值+1,J2回0再计。即每0.5秒键值+1,只要K2=1就键值就会一直加下去。
J3:短按计时,范围0-10秒,K3=1时计时,计满=10停止但不回0。当键松开后,如果J3在0.1秒至2.5秒之间,键值就+1,否则不加。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:123289 发表于 2017-6-16 11:57 | 只看该作者
如何做-,请如楼主自便。
如何保存,建议键值每变动一次,就保存一次,存入EEPROM。
回复

使用道具 举报

5#
ID:47286 发表于 2017-6-16 13:12 | 只看该作者
楼上前辈回的挺全面了 你这要求真不算简单 按键看着容易实际做起来挺麻烦的 要各种判断
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表