[請益] 8051與8051溝通...

看板ASM (組合語言)作者 (JING)時間16年前 (2008/07/18 01:15), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
最近遇到了一個問題... 我們希望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
訊號直接從8051 bypass過去比較快 XD
07/18 10:54, 2F

07/18 11:03, , 3F
程式看起來是用 UART 來傳資料,but...怪怪的
07/18 11:03, 3F
文章代碼(AID): #18VtuWPM (ASM)
文章代碼(AID): #18VtuWPM (ASM)