??? 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 |