| | |
Programming for the SCI interface
![]() |
•
•
Join Date: Nov 2008
Posts: 7
Reputation:
Solved Threads: 0
I'm new to assembly language and have written an instruction sequence for the MC68HC12 ,to input a string of characters using the SCI channel 0. The input character string, will be no more than 20 characters, and will be stored in memory when an EOT character is received.
Port A bit 0 will be used for parity error detection.
The serial data transfer will be performed according as follows;
o 19,200 baud (P clock is 8 MHz)
o one start bit, 8 data bits, one stop bit
o polled output
o idle line wakeup
o short idle line mode
o no loop back
o characters should be encoded using odd parity
Is this the correct approach and how would I add an interrupt driven input?
Port A bit 0 will be used for parity error detection.
The serial data transfer will be performed according as follows;
o 19,200 baud (P clock is 8 MHz)
o one start bit, 8 data bits, one stop bit
o polled output
o idle line wakeup
o short idle line mode
o no loop back
o characters should be encoded using odd parity
Is this the correct approach and how would I add an interrupt driven input?
Assembly Syntax (Toggle Plain Text)
org $800 address rmb 20 movb #$00,SCOBDH ; set baud rate to 19,200 movb #$26,SCOBDL movb #$03,SCOSR1 ; M=0, Wake=0, ILT=0, PE=1 & PT=1 movb #$08,SCOSR2 ; TE=1 movb #$00,DDRB ; initialize Port A as input gets_sc0 jsr getc_sc0 ldx address cmpa #$04 beq exit staa 1,x+ bra gets_sc0 exit clr 0,x swi getc_sc0 brclr SCOSR1, $20,* ; wait until RDRF is set ldaa SCODRL ; read character rts
![]() |
Other Threads in the Assembly Forum
- Previous Thread: byte ptr usage (nasm assembly)
- Next Thread: rs232 and assembly
| Thread Tools | Search this Thread |





