This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

software uart for 89c51

i got this code from a site, but i cant assemble it in keil
which assembler whould i use??
or is there some fault with the code itself??
the '*' are giving some problem

"djnz r1,*" for instance

TXD EQU P1.0 Transmit on this pin
RXD EQU P1.1 Receive on this pin
* The serial baud rate is determined by the processor crystal, and
* this constant which is calculated as: (((crystal/baud)/12) - 5) / 2
BITTIM EQU 45 (((11059200/9600)/12) - 5) / 2
* * Transmit character in A via TXD line
* putc CLR TXD Drop line for start bit MOV R0,#BITTIM Wait full bit-time DJNZ R0,* For START bit MOV R1,#8 Send 8 bits
putc1 RRC A Move next bit into carry MOV TXD,C Write next bit MOV R0,#BITTIM Wait full bit-time DJNZ R0,* For DATA bit DJNZ R1,putc1 write 8 bits SETB TXD Set line high RRC A Restore ACC contents MOV R0,#BITTIM Wait full bit-time DJNZ R0,* For STOP bit RET
* * Receive a character from the RXD line and return in A
* getc JB RXD,* Wait for start bit MOV R0,#BITTIM/2 Wait 1/2 bit-time DJNZ R0,* To sample in middle JB RXD,getc Insure valid MOV R1,#8 Read 8 bits
getc1 MOV R0,#BITTIM Wait full bit-time DJNZ R0,* For DATA bit MOV C,RXD Read bit RRC A Shift it into ACC DJNZ R1,getc1 read 8 bits RET go home

i need 2 uarts, one is hardware the other one is software

2 uarts microcontrollers are not readily available in my city

which assembler should i use to assemble it??

0