??? 08/03/11 12:42 Modified: 08/03/11 13:26 Read: times |
#183173 - only 3 'U's are commingout of 100 Responding to: ???'s previous message |
i made the code as modular as i could...
i have given 100 in R0 in order to send 100 U's but i am only getting a total of 4 characters, 3 U's and a character corresponding to 0ffh and if i replace U by any other character nothing is coming in the terminal even 0AAh is also not coming // bit banging to transmit at 1200 baud rate // crystal freq is 11.0592MHz DAT equ R2 org 00h jmp main ; timer 0 interrupts here org 0Bh T0int: rrc A mov P3^1,C inc R1 reti ; main routine org 100h main: setb P3^1 mov IE,#82h ; timer 0 interrupt enable mov TH0,#0E8h ; timer 0 mode 2 is enabled here mov TL0,#0E8h ; at 1200 baud rate mov TMOD,#02h ; mov R0,#100 ; transmit a character 100 times mov DAT,#'U' repeat: call byte_out djnz R0,repeat over: jmp over ; routine to send out a byte byte_out: setb TR0 ; start timer mov A,#0x00 ; send start bit mov R1,#00 wait1: cjne R1,#01,wait1 ; wait till 1 bit is sent mov R1,#0 mov A,DAT ; send the character wait2: cjne R1,#8,wait2 ; wait till 8 bits is sent mov A,#0x01 ; send stop bit mov R1,#00 wait3: cjne R1,#01,wait3 ; wait till 1 bit is sent clr TR0 ret end |