;[MCUInit.asm]AW60芯片初始化子程序---------------------*
;功  能:                                               *
;    系统初始化设置,设置ICGC1和ICGC2寄存器,SOPT的寄存器*
;    设置,由外部晶振f = 4MHz,产生内部总线时钟f = 20MHz *           
;入  口:无                                             *
;出  口:无                                             *
;------------------------------------------------------*
 
    INCLUDE 'MC9S08AW60.inc'    ;MCU映像寄存器名  

;声明外部函数
    XDEF MCUInit            ;芯片初始化
    
MCUInit:
    PSHA    ;A进栈(保护寄存器A)
    LDA   #%01100000
    ;       |||
    ;       |||
    ;       |||
    ;       ||+------STOPE --- 允许STOP
    ;       |+-------COPT ---- long timeout 2^18
    ;       +--------COPE ---- 关看门狗
    STA   SOPT                 ;系统选项寄存器(只写一次)
    MOV   #%00110000,ICGC2
    ;       ||||||||            应该在设置ICGC1之前写MFDx
    ;       |||||||+-RFD0 \
    ;       ||||||+--RFD1  --- 分频因子 R=1
    ;       |||||+---RFD2 /
    ;       ||||+----LOCRE --- 丢失时钟信号后产生一个中断信号
    ;       |||+-----MFD0 \
    ;       ||+------MFD1  --- 锁频环倍乘因子 N = 10
    ;       |+-------MFD2 /
    ;       +--------LOLRE --- 锁频环失锁后产生一个中断信号(不复位)
    MOV   #%01111000,ICGC1
    ;       |||||||x     
    ;       ||||||+--LOCD ---- 允许检测时钟信号丢失 Lost of Clock
    ;       |||||+---OSCSTEN - 在OFF模式下允许晶振电路
    ;       ||||+----CLKS0 \ - 选择 FLL engaged external reference(FEE)
    ;       |||+-----CLKS1 /   使用锁频环的外时钟模式
    ;       ||+------REFS ---- 使用晶振(0表示使用外时钟信号)
    ;       |+-------RANGE --- 使用高频晶振(4MHz p=1) (1-1;0-64)
    ;       +--------HGO ----- 低功耗
    ;等待FLL稳定
    PULA    ;A出栈(恢复寄存器A)
 RTS
       
 