با سلام.من برنامه ای برای ارسال اعداد از یک میکرو به میکرو دیگه و نمایش اون در seven-segment در طرف دیگه نوشتم.مشکل اینجاست که اون میکرویی که باید بگیره و نمایش بده کار نمی کنه.من مطمئن هستم اون میکرویی که باید اعداد را بفرسته درست می فرسته......حالا کمک کنید.....
sender ic:
#include <Sfr51.inc>
ORG 00H
MOV SCON,#00H
start:ACALL getkey
CJNE A,#0FFH,snd
sjmp start
snd:MOV SBUF,A
sjmp start
getkey:MOV A,#0FEH
MOV R6,#3
MOV DPTR,#400H
test:MOV P1,A
MOV R7,A
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,keyhit
MOV A,R7
RL A
INC DPTR
INC DPTR
INC DPTR
INC DPTR
DJNZ R6,test
mov acc,#0ffh
SJMP exit
keyhit:XRL A,#0FFH
ANL A,#0F0H
RR A
RR A
RR A
RR A
CHECK:CJNE A,#1H,over
MOV A,#0H
MOVC A,@A+DPTR
SJMP exit
over:RR A
INC DPTR
SJMP CHECK
exit:RET
org 400h
db 01h,04h,07h,0ffh,02h,05h,08h,00h,03h,06h,09h,0ffh
END
reciver ic:
#include <Sfr51.inc>
ORG 00H
MOV DPTR,#500H
mov p1,#00h
acall delay
mov p1,#0ffh
acall delay
ACALL DELAY
MOV SCON,#00010000
START:JNB RI,$
MOV ACC,SBUF
MOVC A,@A+DPTR
MOV P1,acc
CLR RI
SJMP start
delay:mov R1,#255
d1:acall delay1
djnz R1,d1
ret
delay1:mov R2,#255
djnz R2,$
ret
ORG 500H
db 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,98H
end
sender ic:
#include <Sfr51.inc>
ORG 00H
MOV SCON,#00H
start:ACALL getkey
CJNE A,#0FFH,snd
sjmp start
snd:MOV SBUF,A
sjmp start
getkey:MOV A,#0FEH
MOV R6,#3
MOV DPTR,#400H
test:MOV P1,A
MOV R7,A
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,keyhit
MOV A,R7
RL A
INC DPTR
INC DPTR
INC DPTR
INC DPTR
DJNZ R6,test
mov acc,#0ffh
SJMP exit
keyhit:XRL A,#0FFH
ANL A,#0F0H
RR A
RR A
RR A
RR A
CHECK:CJNE A,#1H,over
MOV A,#0H
MOVC A,@A+DPTR
SJMP exit
over:RR A
INC DPTR
SJMP CHECK
exit:RET
org 400h
db 01h,04h,07h,0ffh,02h,05h,08h,00h,03h,06h,09h,0ffh
END
reciver ic:
#include <Sfr51.inc>
ORG 00H
MOV DPTR,#500H
mov p1,#00h
acall delay
mov p1,#0ffh
acall delay
ACALL DELAY
MOV SCON,#00010000
START:JNB RI,$
MOV ACC,SBUF
MOVC A,@A+DPTR
MOV P1,acc
CLR RI
SJMP start
delay:mov R1,#255
d1:acall delay1
djnz R1,d1
ret
delay1:mov R2,#255
djnz R2,$
ret
ORG 500H
db 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,98H
end
دیدگاه