當前位置:編程學習大全網 - 編程語言 - 51單片機匯編語言按鍵掃描部分,請解釋以下哪些功能?必須被采用。求詳細評論

51單片機匯編語言按鍵掃描部分,請解釋以下哪些功能?必須被采用。求詳細評論

Rd_key: lcall getk //re_key是行號,lcall是長調用指令,跳轉到行號getk。

JNB鍵_push,rdk1

//判斷按鍵是否被按下。如果按下,會跳轉到rdk1。KEY_PUSH是您設置的微控制器引腳上的按鍵。

Jnz RDK0

Lcall延遲10毫秒//延遲

lcall getk

jnz rdk9

CLR KEY_PUSH //清除

SETB p 3.2;清除蜂鳴聲

RET //程序結束

如果rdk0: cjnea、key_back和rdk9//a的值不等於key _ back的值,則跳轉到rdk9。

Lcall延遲10毫秒//延遲

l呼叫獲取//延遲

Cjne a,key_back,rdk9 //重新判斷是否相等。

mov a的值key_ctl //key_ctl給a。

Jnz rdk01 //根據結果,如果不是0,跳轉到rdk01。

mov a,key_back //key_back的值給a。

Movkey,a//a的值給key。

Ret //子程序返回

Rdk0程序:

rdk 01:deckey _ CTL//key _ CTL的值減去1。

Sjmp rdk9 //跳轉到rdk9

Rdk01程序統計擊鍵次數,然後介紹程序。

Rdk1: jz rdk9 //等於0跳轉到rdk9。

Movkey,a//a的值給key。

lcall delay 10ms;按鍵、延遲、抖動消除

Lcall getk // call getk

cjne a,key,rdk2 //

mov key_back,a

clr p3.2密鑰確認

Setb key_push //設置1。

Mov key_ctl,#20 //賦值#20

Ret //子程序返回

Rdk2: mov鍵,#00h //清除鍵。

Rdk9: RET //中斷程序返回,程序到此結束。

Getk: clr p2.4 // clear引腳2.4。

Mov p0,#0ffh //設置1,p0的八個引腳。

Nop //清空操作

not otherwise provided 除非另有規定

mov a的值p0 //P0給a。

Cpl a //a反轉

Anl a,#1fh //邏輯AND,把值給a。

Setb p2.4 //P2.4設置為1。

Ret //子程序返回

上面的getk程序,密鑰信息取自P0端口的低5端口,

Delay10ms:推送00 //延時程序,10ms。

按01

mov r0,#00

mov r1,#24

D10ms1: djnz r0,$ //延時程序

djnz r1,d10ms1

pop 01

流行00

浸水使柔軟

  • 上一篇:寧波中秋有什麽活動時間+地點+活動信息
  • 下一篇:英國劍橋840c-cd機搭配什麽功放和音箱
  • copyright 2024編程學習大全網