[請益] 8051與8051溝通...
最近遇到了一個問題...
我們希望8051能夠與8051作溝通,
意即
2顆8051都分別接上4*4鍵盤及7段顯示器,
當我們按下第1顆8051所接的4*4鍵盤上的數字鍵後,
第2顆8051的七段顯示器會顯示我們所按下的數字,
反之,
按下第2顆8051所接的4*4鍵盤上的數字後,
第1顆的8051的七段顯示器也會顯示出所按的數字。
有找到是用C語言寫成的程式,
(C語言的程式我們有成功)
但我們希望能夠用組語完成,
因為這樣的之後要修改比較好修改。
我們有試著自己打過一個組語的程式,
可是 失敗了,
所以想請大家可以幫我們修改看看哪裡有問題...
ORG 0000H
MOV TMOD,#00100000B ;令計時器1工作於模式2
MOV TH1,#253 ;┐設定計數值,令鮑率為9600BPS
MOV TL1,#253 ;┘
SETB TR1
MOV SCON ,#01110000B
LOOP:
MOV P2,#01111111B ;令P2.7=0
JNB P2.3,KEY0 ;0鍵有閉合嗎?
JNB P2.2,KEY1 ;1鍵有閉合嗎?
JNB P2.1,KEY2 ;2鍵有閉合嗎?
JNB P2.0,KEY3 ;3鍵有閉合嗎?
MOV P2,#10111111B ;令P2.6=0
JNB P2.3,KEY4 ;4鍵有閉合嗎?
JNB P2.2,KEY5 ;5鍵有閉合嗎?
JNB P2.1,KEY6 ;6鍵有閉合嗎?
JNB P2.0,KEY7 ;7鍵有閉合嗎?
MOV P2,#11011111B ;令P2.5=0
JNB P2.3,KEY8 ;8鍵有閉合嗎?
JNB P2.2,KEY9 ;9鍵有閉合嗎?
AJMP LOOP ;重覆檢測鍵盤
KEY0: MOV P0,#11000000B ;0鍵被壓下時之對應程式
MOV A,#30H
ACALL SENDOUT
AJMP LOOP
KEY1: MOV P0,#11111001B ;1鍵被壓下時之對應程式
MOV A,#31H
ACALL SENDOUT
AJMP LOOP
KEY2: MOV P0,#10100100B ;2鍵被壓下時之對應程式
MOV A,#32H
ACALL SENDOUT
AJMP LOOP
KEY3: MOV P0,#10110000B ;3鍵被壓下時之對應程式
MOV A,#33H
ACALL SENDOUT
AJMP LOOP
KEY4: MOV P0,#10011001B ;4鍵被壓下時之對應程式
MOV A,#34H
ACALL SENDOUT
AJMP LOOP
KEY5: MOV P0,#10010010B ;5鍵被壓下時之對應程式
MOV A,#35H
ACALL SENDOUT
AJMP LOOP
KEY6: MOV P0,#10000010B ;6鍵被壓下時之對應程式
MOV A,#36H
ACALL SENDOUT
AJMP LOOP
KEY7: MOV P0,#11111000B ;7鍵被壓下時之對應程式
MOV A,#37H
ACALL SENDOUT
AJMP LOOP
KEY8: MOV P0,#10000000B ;8鍵被壓下時之對應程式
MOV A,#38H
ACALL SENDOUT
AJMP LOOP
KEY9: MOV P0,#10010000B ;9鍵被壓下時之對應程式
MOV A,#39H
ACALL SENDOUT
AJMP LOOP
SENDOUT:CLR TI
MOV SBUF,A
JNB TI,$
CALL DELAY
RET
DELAY:
MOV R6,#50
DL1: MOV R7,#200
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
END
或者
有相關的程式的書籍可以推薦給我們嗎?
先謝過大家的幫忙...
如果這不適合在這詢問的話,
那我會自刪的...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.88.178
※ 編輯: chung017 來自: 118.170.88.178 (07/18 01:17)
推
07/18 10:17, , 1F
07/18 10:17, 1F
→
07/18 10:54, , 2F
07/18 10:54, 2F
推
07/18 11:03, , 3F
07/18 11:03, 3F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章