很基礎(chǔ)的兩個(gè)單片機(jī)通信,p0口控制鍵盤,p2位選p1字選,注意兩個(gè)單片機(jī)要用同樣的晶振,并且用相同的電源供電
程序如下
ORG 00H
LJMP MAIN
ORG 0023H
LJMP SBR
MAIN:MOV SP,#60H
MOV R7,#08H
MOV TMOD,#20H//定時(shí)器1設(shè)為模式2
MOV TH1,#0F3H//設(shè)初值
MOV TL1,#0F3H
CLR ET1 //禁止定時(shí)器1中斷
SETB TR1
MOV SCON,#50H//串行口設(shè)置為方式1,REN=1
SETB ES //允許串口中斷
SETB EA //開放總中斷
MOV DPTR,#LED
LOOP:CALL Key
MOV A,R7
LCALL OLED
MOV A,R7
MOV SBUF,A
JB TI,$
AJMP LOOP
SBR:PUSH ACC
JB TI,SEND //TI=1,為發(fā)送中斷
ACALL SIN //RI=1,為接受中斷
SJMP BACK_1
SEND:ACALL SOUT //調(diào)用發(fā)送子程序
BACK_1:POP ACC
RETI
SOUT:CLR TI
RET
SIN:CLR RI //接收子程序
MOV A,SBUF
MOV R7,A //讀出接收緩沖區(qū)的內(nèi)容
LCALL OLED
RET
Key:MOV A,P0
K1:CJNE A,#07FH,K2
MOV R7,#00H
K2:CJNE A,#0BFH,K3
MOV R7,#01H
K3:CJNE A,#0DFH,K4
MOV R7,#02H
K4:CJNE A,#0EFH,K5
MOV R7,#03H
K5:CJNE A,#0F7H,K6
MOV R7,#04H
K6:CJNE A,#0FBH,K7
MOV R7,#05H
K7:CJNE A,#0FDH,K8
MOV R7,#06H
K8:CJNE A,#0FEH,BACK
MOV R7,#07H
BACK:RET
OLED:MOV P2,#0FEH
MOVC A,@A+DPTR //顯示
MOV P1,A
RET
LED:DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;
END
|