欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 19301|回復: 1
打印 上一主題 下一主題
收起左側

51單片機矩陣鍵盤控制程序 匯編語言 帶詳細注釋

[復制鏈接]
跳轉到指定樓層
#
ID:169706 發表于 2017-3-10 19:03 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
ORG 0000H ;偽指令,指定一下程序匯編后代碼在入程序存儲器0000H單元開始的連續單元中,不占有內存
AJMP MAIN ;短轉移指令,轉到主程序開始處

ORG 0050H ;偽指令,指定一下程序是從0050H之后連續單元存儲
MAIN:
MOV P1,#0F0H ;給P1口賦值,使得低四位為低電平,所有行為低電平,全掃描 高四位列
ONE:MOV A,P1  ;將P1口值賦值給寄存器A,讀取列值
XRL A,#0F0H ;將A中的值與11110000異或
JZ ONE  ;判斷A的值是否為0,為0則沒有鍵按下,繼續判斷,有則進行下面程序
ACALL DELAY  ;延時20ms去除按壓時的抖動
MOV A,P1 ;再將P1口的值賦值給寄存器A
XRL A,#0F0H ;與11110000異或
JZ ONE  ;判斷若A=0則PC+ONE的地址跳轉
MOV A,#00H ;若不為0,PC值繼續向下運行,給A賦值0
JNB P1.4,TWO ;判斷P1.4引腳是否為0,若不為0跳轉TWO,繼續下面的判斷鍵值
INC A  ;若為0,將A 值加1
JNB P1.5,TWO ;繼續判斷P1.5位是否為0,舨晃?跳轉TWO,繼續下面的判斷鍵值
INC A  ;若為0,將A 值加1
JNB P1.6,TWO ;繼續判斷P1.6位是否為0,舨晃?跳轉TW,繼續下面的判斷鍵值
INC A  ;若為0,將A 值加1
JNB P1.7,TWO ;繼續判斷P1.7位是否為0,舨晃?跳轉TW,繼續下面的判斷鍵值
TWO:MOV R1,A  ;將判斷列值的A賦值與R1,暫存于此
MOV R2,#00H ;R2賦值0將作為行值
MOV R3,#0FEH ;R3賦值為11111110,作為后面提取行
FOUR:
MOV A,R3 ;將R3的值賦給寄存器A
MOV P1,A ;將A賦值給P1口,將第一行給低電平
MOV A,P1 ;再將P1口的值賦值給A
XRL A,R3 ;與R3做異或,若某一位不一樣,則該位賦值于1
JNZ THREE ;判斷A是否不為0,若不為0則證明該行有鍵按下,若為0 ,繼續下一行的判斷
MOV A,R3 ;將R3的值給A
RL A  ;循環左移一位,將第二行賦于低電平
MOV R3,A ;將A的值給R3,暫存
MOV A,R2 ;將R2的值給R2
INC A  ;由于上一行無鍵按下,則自加1
MOV R2,A ;再將A 的值賦值給R2暫存
AJMP FOUR ;挑戰FOUR循環判斷
THREE:
MOV A,R2 ;判斷到具體的某行時,將暫存行數的R2值,賦值給A
MOV B,#04H ;給寄存器B賦值4
MUL AB  ;A*B=A,兩者相乘賦值給A
ADD A,R1 ;再將列值相加就得到了該鍵所對應的具體值
MOV P2,#0FEH ;將P2口賦值0FE,喚醒數碼管第一位,作為顯示
MOV DPTR,#TAB ;寄存器間接尋址,采用數據指針(DPTR)作為間接尋址寄存器,將表TAB賦值于DPTR,以查表方式賦值
MOVC A,@A+DPTR ;以查表的方式將DPTR中數值賦值于A
MOV P0,A ;將P0口賦值A中的所查值,P0口控制數碼管段選
AJMP MAIN ;跳轉至MAIN,繼續下一次判斷
DELAY:   ;延遲程序20ms
MOV R6,#40 ;該語句占1個機器周期
D1: MOV R5,#246 ;該語句占1個機器周期
D2: DJNZ R5,D2 ;該語句占2個機器周期共執行246*40次
DJNZ R6,D1 ;該語句占2個機器周期共執行40次
RET  ;該語句占2個機器周期
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
;表,偽指令DB,通知匯編程序從當前ROM地址開始保留一字節或字節串的存儲單元,并存入DB后面的數據
END   ;偽指令,表示END后面所有的匯編語言指令均不予以匯編
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

樓主
ID:460287 發表于 2019-12-31 10:00 | 只看該作者
這個注釋 太強了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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