📄 gp32init.asm
字号:
*------------------------------------------------------*
*[系统初始化子程序(GP32Init)] *
*功能:系统初始化设置:设置CONFIG1和CONFIG2寄存器 *
* CGM的寄存器设置:由外部晶振f=32.768KHz,产生内部 *
* 总线时钟2.4576MHz *
*入口:无 *
*出口:无 *
*------------------------------------------------------*
GP32Init:
PSHA ;[A进栈](保护寄存器A)
;初始化CONFIG2
LDA #%00000001
; ||_SCIBDSRC=1内部总线时钟用作SCI时钟
; |__OSCSTOPENB=0 在stop模式下禁止
; 振荡器工作
STA CONFIG2
;初始化CONFIG1
LDA #%00111101
;||||||||_COPD=1 禁止COP模块
;|||||||__STOP=0 禁止STOP指令
;||||||___SSREC=1 32个CGMXCLK周期退出STOP模式
;|||||____LVI5OR3=1 LVI工作在5V
;||||_____LVIPWRD=1 禁止LVI模块电源
;|||______LVIRSTD=1 允许LVI复位信号
;||_______LVISTOP=0 在stop模式下禁止LVI
;|________COPRS=0 COP溢出范围使用长的时间
STA CONFIG1
;[PLL编程]
CLR PCTL ;①禁止PLL:清零PLL控制寄存器PCTL
MOV #$01,PCTL ;②将P、E写入PTCL
MOV #$01,PMSH ;③将N写入PMSH、PMSL
MOV #$2C,PMSL
MOV #$80,PMRS ;④将L写入PMRS
MOV #$01,PRDS ;⑤将R写入PRDS
BSET 5,PCTL ;⑥置PTCL.PLLON=1,启动PLL电路
BSET 7,PBWC ;⑦PBWC自动带宽控制位=1
BSET 4,PCTL ;⑧PTCL.BCS=1
PULA ;[A出栈](恢复寄存器A)
RTS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -