| ??? 02/17/05 19:56 Read: times |
#87830 - OK Responding to: ???'s previous message |
first it is /pre not pre
your LD_8802: needs to be a subroutine like SEND_SERIAL just add a RET after it. Didn't you have a program where the RS232 was OK? more like this
; configure the UART ADuC812
MOV SCON,#52h ; configure UART for 9600baud..
MOV TMOD,#20h ; ..assuming 11.0592MHz crystal
MOV TH1,#-3
SETB TR1 ; ok this works
MAINLOOP:
;... THIS THE RIGHT PLACE FOR THIS?.....................
JNB RI,$ ; Recive serial data
MOV 40H,SBUF ; Store data in IN MEMORY
JNB RI,$ ; Recive serial data
MOV 42H,SBUF ; Store data in IN MEMORY
;.........................................................
;Do Check SUM
AJMP MAINLOOP ; Start over if bad
;CSUM GOOD
; move address and data into R0,R1
ACALL LD_8802;
; repeat for all DACs
AJMP MAINLOOP ; Start over
LD_8802:
ORL P2,#11110000B ;SET CLK,CS,SHDN HIGH
CLR P2.5 ;SET CHIP SELECT LOW
MOV LOOPCOUNT,#4 ;ADDRESS IS 4 BITS
MOV A,R0 ;GET DAC ADDRESS
RR A ;ROTATE THE DAC
RR A ;ADDRESS TO MOST
RR A ;SIGNIFCANT BIT (MSB)
RR A
ACALL SEND_SERIAL ;SEND THE ADDRESS
MOV LOOPCOUNT,#8 ;DO 8 BIT OF DATA
MOV A,R1
ACALL SEND_SERIAL ;SEND THE DATA
SETB P2.5 ;SET CS HIGH
RET ;DONE
SEND_SERIAL: RLC A ;MOVE NEXT BIT TO CARRY
CPL LED ;BLINK LED
MOV P2.7,C ;MOVE DATA TO SDI
CLR P2.6 ;PULSE THE
SETB P2.6 ;CLK INPUT
DJNZ LOOPCOUNT,SEND_SERIAL ;LOOP IF NOT DONE
RET ;DONE
END
|
| Topic | Author | Date |
| ADcu812 question fixed (: now can...... | 01/01/70 00:00 | |
| OK | 01/01/70 00:00 | |
| thank you neil..but? | 01/01/70 00:00 | |
| Checksum | 01/01/70 00:00 | |
| Your Origional code | 01/01/70 00:00 | |
| Try as i might......now it does not work | 01/01/70 00:00 | |
| OK | 01/01/70 00:00 | |
| answer to neil | 01/01/70 00:00 | |
| OK | 01/01/70 00:00 | |
| What do you know it's working but one... | 01/01/70 00:00 | |
| Not Sure | 01/01/70 00:00 | |
THANK YOU NEIL | 01/01/70 00:00 |



