音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

兩條I/O,接六個按鍵的電路(無附加集成塊),歡迎各位排磚.

作者:啊龍 欄目:單片機
兩條I/O,接六個按鍵的電路(無附加集成塊),歡迎各位排磚.
平時I/O在輸入態(tài),S1按下10,S2按下01,S3按下00,當(dāng)為11時--S4按下,I/O1及I/O2無論誰輸出0,借口均為0.S5按下時,I/O1為0時,I/O2不為0.S6按下,同S5判斷相反.
沒有試過,準備用,從原理上看應(yīng)該可以,各位看一下有什么問題嗎?誰有更好的電路,請指導(dǎo)一下.


2樓: >>參與討論
heloo
第一眼看就不知道S1和S2按下有什么區(qū)別
 
3樓: >>參與討論
HWM
狗屁東西!!!!
 
4樓: >>參與討論
heloo
就算s2
 
5樓: >>參與討論
heloo
就算s2上的節(jié)點放在IO1口,也弄不清楚
如下:
input    OUTPUT    input   OUTPUT    VALUE
IO1       IO2       IO2     IO1

0          0         0       0        S4
0          1         0       0        S5
0          0         0       1        S6
0          0         0       1        S1
0          1         0       0        S2
0          0         0       0        S3

不了解S4與S3,S5與S2,S6與S1如何區(qū)分開來?
事實上,我認為用兩個IO口是不可能區(qū)分6種狀況的,最多只能4種。

6樓: >>參與討論
maychang
樓上各位
這個圖確實有錯,但樓主的意圖很明顯,而且能夠?qū)崿F(xiàn)。
希望樓主繼續(xù)努力。


7樓: >>參與討論
啊龍
對不住各位,圖畫錯了.重傳一下.見諒,見諒.
heloo你好,S3按下,是輸入為00.S4按下,是雙向接通IO1,IO2. S5,S6是單向接通IO1,IO2.

8樓: >>參與討論
啊龍
謝maychang理解支持.
 
9樓: >>參與討論
xwj
行的通的,不管看不看得懂都不要出口成臟哦
 
10樓: >>參與討論
xwj
前提是最多只有一個鍵按下,有多鍵按下就亂套了
 
11樓: >>參與討論
conwh
不按鍵呢?11
 
12樓: >>參與討論
heloo
不好意思
如果只檢測單鍵按下的情況應(yīng)該是行的通的,但是如果想檢測雙鍵同時按下就難了,如我之前所述

13樓: >>參與討論
heloo
不過這個電路還是不錯的
我收下了,謝謝了

14樓: >>參與討論
wangkj
IO 是雙向的
所以狀態(tài)應(yīng)該是2x2 *2 應(yīng)該至少可以判斷8個單鍵。但是,外圍電路的復(fù)雜讀增加太多。

15樓: >>參與討論
xwj
寫了個配套程序,有興趣的可以去看看
To wangkj :

理論上是有8種狀態(tài),但有2種狀態(tài)是無鍵按下

因此實際上可區(qū)分出的狀態(tài)是(2個)無鍵狀態(tài)和6個單獨按鍵共7種狀態(tài)

《兩條I/O,接六個按鍵的電路(無附加集成塊)》配套程序

16樓: >>參與討論
啊龍
xwj好快啊,程序收了。謝各位關(guān)心.
 
17樓: >>參與討論
xxdcq
看看我的程序呵呵!
io1    equ    p1.0
io2    equ    p1.1
.
.
.
keyscan:
    setb io1
    setb io2
    nop
    mov a,p1
    orl a,#11111100b
    cpl a
    jnz keyscan1            ;不為0則可能有s1,s2,s3按下
keyscan0:
    clr io1
    nop
    mov a,p1
    anl a,#00000010b
    jz keyscan2            ;為0則可能有s4,s6按下
keyscan01:
    setb io1
    clr io2
    nop
    mov a,p1
    anl a,#00000001b
    jz keyscan3            ;為0則可能有s5按下
keyscan02:
    ljmp keyscan            ;沒有任何鍵按下
keyscan1:
    lcall dt20ms            ;延時20ms去抖
    mov a,p1
    orl a,#11111100b
    cpl a
    jz keyscan0            ;為0則s1,s2,s3沒有按下
    cjne a,#02h,keyscan11        ;確定有s1,s2,s3按下
    ljmp s1
keyscan11:
    cjne a,#01h,keyscan12
    ljmp s2
keyscan12:
    ljmp s3
keyscan2:
    lcall dt20ms            ;延時20ms去抖
    mov a,p1
    anl a,#00000010b
    jnz keyscan01
    setb io1            ;確定有s4,s6按下
    clr io2
    nop
    mov a,p1
    anl a,#00000001b
    jnz keyscan21
    ljmp s4
keyscan21:
    ljmp s6
keyscan3:
    lcall dt20ms            ;延時20ms去抖
    mov a,p1
    anl a,#00000001b
    jnz keyscan02
    ljmp s5                ;確定有s5按下
s1:                    ;s1鍵處理
    ljmp upkey1
s2:                    ;s2鍵處理
    ljmp upkey1
s3:                    ;s3鍵處理
    ljmp upkey1
s4:                    ;s4鍵處理
    ljmp upkey2
s5:                    ;s5鍵處理
    ljmp upkey3
s6:                    ;s6鍵處理
    ljmp upkey2
upkey1:                    ;松鍵
    mov a,p1
    orl a,#11111100b
    cpl a
    jnz upkey1            ;不為0則未松鍵s1,s2,s3
    lcall dt20ms            ;延時20ms去抖
    mov a,p1
    orl a,#11111100b
    cpl a
    jnz upkey1            ;不為0則未松鍵s1,s2,s3
    ljmp keyscan
upkey2:
    setb io2
    clr io1
    nop
    mov a,p1
    anl a,#00000010b
    jz upkey2            ;為0則未松鍵s4,s6
    lcall dt20ms            ;延時20ms去抖
    mov a,p1
    anl a,#00000010b
    jz upkey2            ;為0則未松鍵s4,s6
    ljmp keyscan
upkey3:
    mov a,p1
    anl a,#00000001b
    jz upkey3            ;為0則未松鍵s5
    lcall dt20ms            ;延時20ms去抖
    mov a,p1
    anl a,#00000001b
    jz upkey3            ;為0則未松鍵s5
    ljmp keyscan

18樓: >>參與討論
hotpower
哈哈,原帖在此呀~~~暈菜~~~
延時消抖都很暈~~~

19樓: >>參與討論
lijay
終于看明白了
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
51新手,求教KEILC51下為啥編譯不認P1,R1???
大家都有開發(fā)板嗎?
Keil軟件仿真串口自動輸入數(shù)據(jù)工具2.0
請問 將串口改USB口用 PDIUSBD12好還是用CH341T
用89c51做ps2口鍵盤
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號