Serial Interface
M68HC12B Family Data Sheet, Rev. 9.1
210
Freescale Semiconductor
PUPS1 — Pullup Port S Enable PS3 and PS2 Bit
0 = No internal pullups on port S bits 3 and 2
1 = Port S input pins for bits 3 and 2 have an active pullup device. If a pin is programmed as output,
the pullup device becomes inactive.
PUPS0 — Pullup Port S Enable PS1 and PS0 Bit
0 = No internal pullups on port S bits 1 and 0
1 = Port S input pins for bits 1 and 0 have an active pullup device. If a pin is programmed as output,
the pullup device becomes inactive.
14.5 Serial Character Transmission using the SCI
Code is intended to use SCI1 to serially transmit characters using polling to the LCD display on the
UDLP1 board: when the transmission data register is empty a flag will get set, which is telling us that
SC1DR is ready so we can write another byte. The transmission is performed at a baud rate of 9600.
Since the SCI1 is only being used for transmit data, the data register will not be used bidirectionally for
received data.
14.5.1 Equipment
For this exercise, use the M68HC912B32EVB emulation board.
14.5.2 Code Listing
NOTE
A comment line is deliminted by a semi-colon. If there is no code before
comment, an
“;”
must be placed in the first column to avoid assembly
errors.
INCLUDE 'EQUATES.ASM' ; Equates for registers
; User Variables
; Bit Equates
; ----------------------------------------------------------------------
; MAIN PROGRAM
; ----------------------------------------------------------------------
ORG
$7000
; 16K On-Board RAM, User code data area,
;
; start main program at $4000
MAIN:
BSR
INIT
; Subroutine to Initialize SCI0 registers
BSR
TRANS
; Subroutine to start transmission
DONE:
BRA
DONE
; Always branch to DONE, convenient for breakpoint
; ----------------------------------------------------------------------
; SUBROUTINE INIT:
; ----------------------------------------------------------------------
INIT:
TPA
ORAA
TAP
; Transfer CCR to A accumulator
; ORed A with #$10 to Set I bit
; Transfer A to CCR
#$10
MOVB
#$34,SC1BDL
; Set BAUD =9600, in SCI1 Baud Rate Reg.
MOVB
#$00,SC1CR1
; Initialize for 8-bit Data format,
; Loop Mode and parity disabled,(SC1CR1)
;