找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6313|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

STC12C5A60S2如何用C語言寫按鍵程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:161033 發(fā)表于 2017-6-15 23:46 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大神,本人初學(xué)單片機,現(xiàn)在想寫一個按鍵程序,望指點,不勝感激。要求如下:
有2個按鍵,分別為+和-,當(dāng)長按+鍵超過3秒時,如果此時仍不釋放,+值會連續(xù)增加,當(dāng)此時釋放+鍵,改成點擊+鍵,+值會+1。長按+鍵超過3秒后釋放,緊接著長按-鍵,-鍵值會連續(xù)減小,點擊-鍵,值-1。并且要求設(shè)置好的值斷電后能保存。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

沙發(fā)
ID:164602 發(fā)表于 2017-6-16 08:06 | 只看該作者
你說自己是初學(xué)者,那么提出的要求可是很高很高啊。我學(xué)了半年才能做到你說全部要求!第一:按鍵問題。其實很簡單。它在單片機中的與生活中的是不一樣的。生活中的按鍵,就是開關(guān),而單片機中的,也是開關(guān),但時間上就不一樣了。你得找點資料看看。
第二:按鍵的多功能問題。按鍵的按時間長短,得到不同的功能,需要程序判斷,這個還不難,但我沒有做過。
第三:保存數(shù)據(jù)。這個,可以有兩個方法:一是用外部存貯器,我目前會這種,二是用單片機自己的內(nèi)存,我還沒試驗過,但網(wǎng)上有相關(guān)資料?梢宰约翰橐幌。
給你分享一個例程,是用外部存貯器的,沒有一鍵多功能,但可以加減、保存、讀回。
例子適用于:普中HC6800-ES-V2.0開發(fā)板:STC89C52RC單片機、24C02外部存貯器。

1.jpg (27.94 KB, 下載次數(shù): 76)

1.jpg

2.jpg (12.18 KB, 下載次數(shù): 77)

2.jpg

3.jpg (17.14 KB, 下載次數(shù): 116)

3.jpg

4.jpg (34.07 KB, 下載次數(shù): 82)

4.jpg

24C02.rar

44.4 KB, 下載次數(shù): 25

評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:123289 發(fā)表于 2017-6-16 11:50 | 只看該作者
設(shè)置三個計時器,J1、J2、J3,當(dāng)鍵松開時全部復(fù)位。
設(shè)置三個開關(guān),K1、K2、K3,分別控制J1、J2、J3,當(dāng)K1=1時起動J1,當(dāng)K1=0時停止J1計時但不清0。K2,K3類同。當(dāng)鍵松開時K全部清0。
當(dāng)鍵按下時置K1=1,K3=1。
J1:長按計時,范圍0-10秒,K1=1時計時,計滿=10停止但不回0。
J2:連加計時,范圍0-0.5秒,當(dāng)J1>3秒后,置K2=1,J2開始計時,計到0.5秒后鍵值+1,J2回0再計。即每0.5秒鍵值+1,只要K2=1就鍵值就會一直加下去。
J3:短按計時,范圍0-10秒,K3=1時計時,計滿=10停止但不回0。當(dāng)鍵松開后,如果J3在0.1秒至2.5秒之間,鍵值就+1,否則不加。

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

地板
ID:123289 發(fā)表于 2017-6-16 11:57 | 只看該作者
如何做-,請如樓主自便。
如何保存,建議鍵值每變動一次,就保存一次,存入EEPROM。
回復(fù)

使用道具 舉報

5#
ID:47286 發(fā)表于 2017-6-16 13:12 | 只看該作者
樓上前輩回的挺全面了 你這要求真不算簡單 按鍵看著容易實際做起來挺麻煩的 要各種判斷
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表