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


;头文件
 INCLUDE "MCUInit.inc"    ;芯片初始化头文件

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 --- 锁频环失锁后产生一个中断信号(不复位)
            ; after FLL init, LOCRE will be set to force reset on clock loss
            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