日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀];有個題目,要求記錄按下的鍵的編號。;使用器件:;51單片機,8個編號為“1~8”的數字鍵,1個功能鍵,1個數碼管,其他晶振電阻電容。;實現功能:;按下功能鍵后,10s內,檢測被按下的數字鍵,;10s

;有個題目,要求記錄按下的鍵的編號。



;使用器件:

;51單片機,8個編號為“1~8”的數字鍵,1個功能鍵,1個數碼管,其他晶振電阻電容。

;實現功能:

;按下功能鍵后,10s內,檢測被按下的數字鍵,

;10s后,結束檢測,并用數碼管循環(huán)顯示被按下過的鍵編號。


;做而論道據此畫出的電路如下:

;電路中的數碼管,不僅用于顯示按下過的鍵編號,還能顯示 9~0 的倒計時。


;在電路中,還安裝了一個 LED,用來表示按鍵的狀態(tài)。

;當有鍵按下,10ms 后仍然按下時,LED 將發(fā)光,表示按鍵確實按下了。

;當按鍵釋放后,再令 LED 熄滅。


;另外,在顯示按下的按鍵編號時,也令 LED 持續(xù)發(fā)光。


;當?LED 熄滅后,再次按下 FUNC 鍵,可以重新進行下一輪的按鍵記錄。


;匯編語言編寫的程序如下:


? ? ORG ? 0000H

? ? SJMP ?START

? ? ORG ? 000BH

? ? SJMP ?T0_INT

;---------------------------------------

START:

? ? MOV ? TMOD, #01H

? ? MOV ? IE, #82H

? ? MOV ? DPTR, #D_TAB

WAIT_F:

? ? JB ? ?P3.6, $ ?;等待按下功能鍵

? ? CALL ?DELAY10MS

? ? JB ? ?P3.6, WAIT_F

? ? CLR ? P3.2 ? ? ? ;LED發(fā)光

? ? JNB ? P3.6, $ ? ?;等待釋放

? ? SETB ?P3.2

;----------------------------------

? ? MOV ? R0, #30H

? ? MOV ? TH0, #(65536 - 62500) / 256

? ? MOV ? TL0, #(65536 - 62500) MOD 256

? ? MOV ? R7, #16

? ? MOV ? R6, #9

? ? CALL ?DISPLAY

? ? SETB ?TR0

;----------------------------------

WAIT_N: ? ? ? ? ? ? ?;循環(huán)檢測按鍵

? ? JNB ? TR0, STOP ? ? ;到10s退出

? ? CALL ?KEY_N

? ? JZ ? ?WAIT_N

? ? MOV ? B, A

? ? CALL ?DELAY10MS ? ? ;延時

? ? CALL ?KEY_N

? ? CJNE ?A, B, WAIT_N ?;消抖


? ? MOV ? @R0, A ? ? ;保存按鍵數值

? ? INC ? R0

? ? CLR ? P3.2 ? ? ? ;LED發(fā)光

WAIT_S:

? ? CALL ?KEY_N

? ? JNZ ? WAIT_S ? ? ;等待釋放

? ? SETB ?P3.2

? ? SJMP ?WAIT_N ? ? ;循環(huán)檢測按鍵

;----------------------------------

STOP:

? ? MOV ? A, R0

? ? CLR ? C

? ? SUBB ?A, #30H

? ? MOV ? R2, A

? ? CLR ? P3.2 ? ? ? ;LED發(fā)光

? ? MOV ? R0, #30H

ECHO:

? ? MOV ? A, @R0

? ? INC ? R0

? ? MOV ? R6, A

? ? CALL ?DISPLAY ? ?;回放


? ? MOV ? R3, #100

? ? CALL ?DELAY10MS

? ? DJNZ ?R3, $ - 2

? ? DJNZ ?R2, ECHO ? ;循環(huán)

? ? SETB ?P3.2

? ? MOV ? R6, #0

? ? CALL ?DISPLAY

? ? SJMP ?WAIT_F

;---------------------------------------

T0_INT:

? ? MOV ? TH0, #(65536 - 62500) / 256

? ? MOV ? TL0, #(65536 - 62500) MOD 256

? ? DJNZ ?R7, T0_END

? ? MOV ? R7, #16

? ? DEC ? R6

? ? CJNE ?R6, #255, DISP

? ? CLR ? TR0

? ? RETI

DISP:

? ? CALL ?DISPLAY

T0_END:

? ? RETI

;---------------------------------------

DISPLAY:

? ? MOV ? A, R6

? ? MOVC ?A, @A + DPTR

? ? MOV ? P2, A

? ? RET

D_TAB: ? ? ? ? ? ? ? ? ;共陽段碼

? ? DB ? ?0C0H, 0F9H, 0A4H, 0B0H, 099H

? ? DB ? ?092H, 082H, 0F8H, 080H, 090H

;---------------------------------------

KEY_N:

? ? CLR ? A

? ? JNB ? P1.0, K1

? ? JNB ? P1.1, K2

? ? JNB ? P1.2, K3

? ? JNB ? P1.3, K4

? ? JNB ? P1.4, K5

? ? JNB ? P1.5, K6

? ? JNB ? P1.6, K7

? ? JNB ? P1.7, K8

? ? RET ? ? ? ? ? ? ? ;沒有按鍵,返回0

K8: INC ? A

K7: INC ? A

K6: INC ? A

K5: INC ? A

K4: INC ? A

K3: INC ? A

K2: INC ? A

K1: INC ? A

? ? RET

;---------------------------------------

DELAY10MS:

? ? MOV ? R4, #20

? ? DJNZ ?R5, $

? ? DJNZ ?R4, $ - 2

? ? RET

;---------------------------------------

END


;經過仿真實驗證明,本程序可以穩(wěn)定工作。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉