找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7516|回復: 15
打印 上一主題 下一主題
收起左側(cè)

STC12C5A60S2單片機AD按鍵程序(節(jié)約io口)

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:261025 發(fā)表于 2020-7-8 20:06 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機用的是STC12C5A60S2  晶振12M
AD判斷部分我自己琢磨的  穩(wěn)定性還可以吧  只要別快速輪換按不同按鍵就沒事    最大顯示數(shù)是255

基準電源用的是5V 所以電壓必須穩(wěn)定沒有波動     也可以用431做一個穩(wěn)定的基準電源   
串聯(lián)的分壓電阻隨意選擇 只要能拉開電壓差距就行  按下按鍵看顯示屏顯示的數(shù)  在到程序里修改該按鍵值的數(shù)據(jù)范圍
比如顯示的是20   程序里對應按鍵的最小數(shù)填15 最大數(shù)填25    這兩個數(shù)及它們之間的數(shù)都屬于該按鍵的   
對地電容我是隨便選的 不知道是多少  能用就行  

電路原理圖如下:


制作出來的實物圖如下:



MA:
    MOV        ADC_CONTOR,#0C8H        ;開啟P1.0的AD轉(zhuǎn)換        電壓  #11001000B
        LCALL AD        ;調(diào)用AD子程序
        MOV        A,ADC_RES
        MOV 33H,A;           電壓數(shù)據(jù)放入33H
        MOV  B,#100           ;100放入B
    DIV  AB                   ;ADC_RES除以B
    MOV  36H,A           ;A余數(shù)放入36H
    MOV  A,B           ;B余數(shù)放入A
    MOV  B,#10           ;10放入B
    DIV  AB                   ;A除以B
    MOV  37H,A           ;A放入37H
    MOV  38H,B           ;B放入38H
        MOV A,33H;           取出電壓數(shù)據(jù)放入A 用于按鍵對比
        RET;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;AD轉(zhuǎn)換子程序
AD:         MOV        A,ADC_CONTOR
     LCALL DELAY30MS
         JNB        0E4H,AD
         CLR        0E4H
         MOV        ADC_CONTOR,A
         RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ADDAT:            
;按鍵0                                                                                 0~05等于按鍵0按下
V_KEY0:                                 CJNE A,#0,V_KEY0_2;
V_KEY0_1:                          CLR OUT0;                 
                                         LCALL DIP;                                 調(diào)用顯示
                                         LCALL MA;                                 調(diào)用AD檢測
                                         CJNE A,#255,V_KEY0;         判斷按鍵釋放
                                         LJMP V_KEY0_4
V_KEY0_2:                         CJNE A,#05,V_KEY0_3;
                                         LJMP V_KEY0_1;
V_KEY0_3:                          JC V_KEY0_1;
V_KEY0_4:            MOV P3,#0FFH;                         P3輸出高電位                 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;按鍵1                                                                                 18~27等于按鍵1按下
V_KEY1:              CJNE A,#18,V_KEY1_2;
V_KEY1_1:            CLR OUT1;
                                         LCALL DIP;
                     LCALL MA;
                                         CJNE A,#255,V_KEY1;         
                                         LJMP V_KEY1_4               
V_KEY1_2:            CJNE A,#27,V_KEY1_3;
                     LJMP V_KEY1_1;
V_KEY1_3:            JC V_KEY1_1;
V_KEY1_4:            MOV P3,#0FFH;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;按鍵2                                                               38~46等于按鍵2按下
V_KEY2:              CJNE A,#38,V_KEY2_2;
V_KEY2_1:            CLR OUT2;
                                         LCALL DIP;
                     LCALL MA;
                                         CJNE A,#255,V_KEY2;
                                         LJMP V_KEY2_4                 
V_KEY2_2:            CJNE A,#46,V_KEY2_3;
                     LJMP V_KEY2_1;
V_KEY2_3:            JC V_KEY2_1;
V_KEY2_4:            MOV P3,#0FFH;

51hei截圖20200708200955.jpg (38.73 KB, 下載次數(shù): 196)

51hei截圖20200708200955.jpg

51hei截圖20200708201001.jpg (31.87 KB, 下載次數(shù): 210)

51hei截圖20200708201001.jpg

STC12C5A60S2 - 1602 - AD按鍵.rar

29.71 KB, 下載次數(shù): 54, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:285380 發(fā)表于 2020-7-24 10:54 | 只看該作者
說老實話   這種程序語言我就沒看懂。
回復

使用道具 舉報

板凳
ID:241423 發(fā)表于 2020-7-24 13:35 | 只看該作者
caifei9280 發(fā)表于 2020-7-24 10:54
說老實話   這種程序語言我就沒看懂。

那是匯編語言,執(zhí)行效率最高,最難讀懂的語言
回復

使用道具 舉報

地板
ID:69310 發(fā)表于 2020-8-16 10:46 | 只看該作者
大神啊,膜拜了,謝謝
回復

使用道具 舉報

5#
ID:224782 發(fā)表于 2020-8-22 22:52 | 只看該作者
STC12的話單獨驗證是可以的,加進系統(tǒng)里使用要考慮好參考電壓的問題。電壓不穩(wěn)對AD按鍵來說是災難,實用的話為了省事最好用STC15或者STC8
回復

使用道具 舉報

6#
ID:126173 發(fā)表于 2020-8-29 07:49 | 只看該作者
謝謝,有自己的思想。
回復

使用道具 舉報

7#
ID:65956 發(fā)表于 2020-9-1 11:45 | 只看該作者
首先為你還在用匯編的點贊,曾幾何時我也是從匯編過來的,現(xiàn)在已改為C了,會匯編的來學改用C的很好學的,但前提是要有人幫指導一二,然后通過自己不斷的實踐,從實踐中不斷的改進,會學得更快的,支持你
回復

使用道具 舉報

8#
ID:375228 發(fā)表于 2020-10-22 01:40 | 只看該作者
匯編好,學習學習
回復

使用道具 舉報

9#
ID:832512 發(fā)表于 2020-10-22 22:36 | 只看該作者
caifei9280 發(fā)表于 2020-7-24 10:54
說老實話   這種程序語言我就沒看懂。

沒看懂那就學唄哈哈
回復

使用道具 舉報

10#
ID:675767 發(fā)表于 2021-2-5 23:43 來自手機 | 只看該作者
又是位匯編大佬,這兩天在琢磨這個ADC檢測多個按鍵的事,只會C,還沒想好怎么寫
回復

使用道具 舉報

11#
ID:99987 發(fā)表于 2021-2-12 17:10 | 只看該作者
匯編不錯,代碼寫的不錯。
回復

使用道具 舉報

12#
ID:856401 發(fā)表于 2021-3-28 22:03 來自手機 | 只看該作者
匯語言,實在不了好移植。樓主寫C語言吧
回復

使用道具 舉報

13#
ID:468209 發(fā)表于 2021-3-29 11:01 來自手機 | 只看該作者
舊時老式彩色電視就會這樣的原理 但有一個很大的缺點 一但回南天按鍵受潮 按鍵本身就會產(chǎn)生電阻值 AD就會判斷錯誤 比如說你想按加音量 結(jié)果給你直接換臺了 這也是老式電視通病
回復

使用道具 舉報

14#
ID:976070 發(fā)表于 2022-2-12 22:07 | 只看該作者
沒有參數(shù)設置?
回復

使用道具 舉報

15#
ID:200844 發(fā)表于 2023-7-1 10:39 | 只看該作者
用匯編寫的程序真的很少了,我也只能看的懂匯編,C一直覺得復雜看不懂。
回復

使用道具 舉報

16#
ID:731755 發(fā)表于 2023-7-4 08:18 來自手機 | 只看該作者
這個方法,在電視機上早就有了,從2002年電視機芯片開始用單片機,里面的按鍵就是采用這種方法
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表