
MOTOROLA
INITIALIZATION AND PROGRAMMING EXAMPLES
M68HC16 Z SERIES
E-16
USER’S MANUAL
BEQ
SEND_CH
;if TDR is not empty, go back to check it
again
CLRA
STD
SCDR
;transmit one ASCII character to the screen
TC_LOOP:
LDAB
SCSR+1
ANDB
#$80
;test the TC bit (transfer complete)
BEQ
TC_LOOP
;continue to wait until TC is set
RTS
;finish sending out one character
*****
Exceptions/Interrupts
*****
BDM:
BGND
;exception vectors point here
;and put the user in background mode
*****
The string
*****
ORG
$0310
STRING
DC 'I LIKE MY NEW MEMORY!!!',0A,0D,00
E.2.1.3 Example 3 - Changing Clock Frequencies
*
Description : This program demonstrates the ability of the
*
M68HC16 to change clock frequencies on the fly.
*
In this particular case, we alternate between
*
a frequency of 16.78MHz and 4.194MHz.
Note
*
that because we are writing to the screen,
*
we also need to correct the BAUD rate (1200)
*
each time we change the frequency.
Make sure
*
that your terminal has been set up to receive
*
at 1200 baud.
An oscilloscope may be connected
*
to the CLKOUT pin on the EVB to observe the
*
frequency change.
***************************************************************************
INCLUDE
'EQUATES.ASM'
;table of EQUates for common registers
INCLUDE
'ORG00000.ASM'
;initialize reset vectors
INCLUDE
'ORG00008.ASM'
;initialize interrupt vectors
ORG
$0200
;start program after the exception
;vector table
*****
Initialize
*****
INIT:
INCLUDE
'INITSYS.ASM'
;initially set EK=F, XK=0, YK=0, ZK=0
;set sys clock at 16.78 MHz, disable
COP
INCLUDE
'INITRAM.ASM'
;turn on internal 1K SRAM at $10000
;set stack in bank 1 (SK=1, SP=03FE)
LDD
#$000C