Please help me in setting the baud rate in 89c51.I am doing project in 8051 which is a message transmitter.What i mean is there are two blocks in my project one is transmitter And other is receiver.
The transmitter consist of 64 keys which is obtained by 8*8 matrix key board.I am aiming for A to Z alphabets & 0 to 9 no.
After decoding which key is pressed i has to transmit the pressed key which will display on the receiver.I am planing to use 433Mhz transmitter & receiver the problem is that the transmitter and receiver has only 20kbps speed so i has to reduce the baud rate considerably.
this is the code i use for the serial
void Send_Character ( unsigned int Array [] ) $(SRC) { PUSH ACC ; store accumulater onto stack MOV P, ACC.3 ; get the bit for later PUSH B ; store the other data } theByte = Array[1]; ; get the data from calling code $(SRC) { MOV ACC, theByte ; get the only byte MOV SBUF2, theByte ; store it to uarter } Array = Array + 3; ; add to next bit for later $(SRC) { POP ACC ; get the accumulater back } return DONE_IT; }
How can i set the serial baud rate
which does not set the baudrate
Erik
As all the actual functional code is in assembler, what on earth is the point of wrapping it all in 'C'?
If you want to write assembler, just do it - don't dress it up as 'C'!
shyam krishnan,
Do not even consider using the code example from natgash slimkersh - Unless you want to examine it to see how not to write code.
There are numerous comments I could write about it, but I think the worst has to be that the assembler pushes ACC and B on entry and only pops ACC on exit.
However, I remember evaluating a very old version of the Keil C compiler which produced very similar code to that - And that was before optimization was enabled!
Glad to see things have improved on that front.
Perhaps you'd like to actually answer the OP's question rather than just stating the obvious?