??? 07/07/08 04:40 Read: times |
#156447 - Printing a string Responding to: ???'s previous message |
I use the following to send out strings of characters for messages. The routine 'pstring' is immediately followed by the text to be sent which is embedded in the code using the db pseudo-operator in the assembler. The string is terminated in 00 which tells the routine that the string is ended, and execution resumes in the location following the location of 00. pstring calls pbyte which is a trvial routine to send a character to the serial port which poll TI until set before sending a new character. Note A, PSW and dptr are corrupted using pstring. There is an alternative to this method using movc A,@A+dptr which would work, but I have never bothered to develop it since this works. Hope this helps. Best regards, Roger Blott example lcall pstring db 'This is a test string',13,0 lcall pstring db 'This is another string',13,0 ;sends string ending in $00 to serial port pstring pop DPH ;get the address of data pop DPL ;string into DPTR pstring1 clr A ;ensure A is zero for fetch movc A,@A+DPTR ;fetch data from memory jz pstring2 ;terminates when charactor is $00 acall pbyte ;output character inc DPTR ;next location sjmp pstring1 pstring2 mov A,#1 jmp @A+DPTR ;sends a character to the serial port and waits for it to go pbyte jnb TI,pbyte ;wait here for buffer access clr TI ;clear TI mov SBUF,A ;send data ret ...replace this with your code... |