Mọi người ơi cho mình hỏi về ds12887.mình đã nối đúng sơ đồ chân với 89c51
RS(CHAN SO 4)-->P2.7
;R/W(CHAN SO 5)-->P2.6
;E(CHAN SO 6)-->P2.5
;DB0...DB7-->P1.0 ...P1.7
/irq với /int0
nhưng mình viết code cách nào cũng không đọc đươc dữ liêu của nó cả.bây giờ mình rối quá không biết phải làm sao đây.p/s hình như mấy lần đầu mình đã đọc đc dữ liệu nhưng khi minh chinh sửa gì đó thi không dc nữa.ai co cach gì thi giup mình với.loại trừ khả năng ds bi hỏng nhé vì minh có mua con khác nhưng cũng vậy.còn nữa mình hay đọc dc dữ liệu giờ phút giây là la 040200.đây là code cua mình nhé
xuất led 7 đoạn p1
p2.0->p2.5 enable led1->led6 tương ứng hh mm ss
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP NGAT0
ORG 0030H
MAIN:
MOV R5,#50
L2:MOV R6,#100
L1:MOV R7,#100
DJNZ R7,$
DJNZ R6,L1
DJNZ R5,L2
MOV DPTR,#TABLE
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV R0,#0BH
MOV A,#82H
MOVX @R0,A
MOV R0,#0BH
MOV A,#42H
MOVX @R0,A
MOV R0,#0AH
MOV A,#2FH
MOVX @R0,A
MOV IE,#81H
SETB IT0
LAP:
MOV A,32H
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV P1,A
SETB P2.0
LCALL DELAY
MOV A,32H
ANL A,#0FH
MOVC A,@A+DPTR
MOV P1,A
CLR P2.0
SETB P2.1
LCALL DELAY
MOV A,31H
ANL A,0F0H
SWAP A
MOVC A,@A+DPTR
MOV P1,A
CLR P2.1
SETB P2.2
LCALL DELAY
MOV A,31H
ANL A,0FH
MOVC A,@A+DPTR
MOV P1,A
CLR P2.2
SETB P2.3
LCALL DELAY
MOV A,30H
ANL A,0F0H
SWAP A
MOVC A,@A+DPTR
MOV P1,A
CLR P2.3
SETB P2.4
LCALL DELAY
MOV A,30H
ANL A,0FH
MOVC A,@A+DPTR
MOV P1,A
CLR P2.4
SETB P2.5
LCALL DELAY
LJMP LAP
DELAY:
MOV R6,#25
TTUC:MOV R5,#100
DJNZ R5,$
DJNZ R6,TTUC
RET
NGAT0:
MOV R0,#00H
MOVX A,@R0
MOV 30H,A
MOV R0,#02H
MOVX A,@R0
MOV 31H,A
MOV R0,#04H
MOVX A,@R0
MOV 32H,A
RETI
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
RS(CHAN SO 4)-->P2.7
;R/W(CHAN SO 5)-->P2.6
;E(CHAN SO 6)-->P2.5
;DB0...DB7-->P1.0 ...P1.7
/irq với /int0
nhưng mình viết code cách nào cũng không đọc đươc dữ liêu của nó cả.bây giờ mình rối quá không biết phải làm sao đây.p/s hình như mấy lần đầu mình đã đọc đc dữ liệu nhưng khi minh chinh sửa gì đó thi không dc nữa.ai co cach gì thi giup mình với.loại trừ khả năng ds bi hỏng nhé vì minh có mua con khác nhưng cũng vậy.còn nữa mình hay đọc dc dữ liệu giờ phút giây là la 040200.đây là code cua mình nhé
xuất led 7 đoạn p1
p2.0->p2.5 enable led1->led6 tương ứng hh mm ss
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP NGAT0
ORG 0030H
MAIN:
MOV R5,#50
L2:MOV R6,#100
L1:MOV R7,#100
DJNZ R7,$
DJNZ R6,L1
DJNZ R5,L2
MOV DPTR,#TABLE
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV R0,#0BH
MOV A,#82H
MOVX @R0,A
MOV R0,#0BH
MOV A,#42H
MOVX @R0,A
MOV R0,#0AH
MOV A,#2FH
MOVX @R0,A
MOV IE,#81H
SETB IT0
LAP:
MOV A,32H
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV P1,A
SETB P2.0
LCALL DELAY
MOV A,32H
ANL A,#0FH
MOVC A,@A+DPTR
MOV P1,A
CLR P2.0
SETB P2.1
LCALL DELAY
MOV A,31H
ANL A,0F0H
SWAP A
MOVC A,@A+DPTR
MOV P1,A
CLR P2.1
SETB P2.2
LCALL DELAY
MOV A,31H
ANL A,0FH
MOVC A,@A+DPTR
MOV P1,A
CLR P2.2
SETB P2.3
LCALL DELAY
MOV A,30H
ANL A,0F0H
SWAP A
MOVC A,@A+DPTR
MOV P1,A
CLR P2.3
SETB P2.4
LCALL DELAY
MOV A,30H
ANL A,0FH
MOVC A,@A+DPTR
MOV P1,A
CLR P2.4
SETB P2.5
LCALL DELAY
LJMP LAP
DELAY:
MOV R6,#25
TTUC:MOV R5,#100
DJNZ R5,$
DJNZ R6,TTUC
RET
NGAT0:
MOV R0,#00H
MOVX A,@R0
MOV 30H,A
MOV R0,#02H
MOVX A,@R0
MOV 31H,A
MOV R0,#04H
MOVX A,@R0
MOV 32H,A
RETI
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
Comment