?? setup.s
字號:
.module setup.c
.area text
__HC08Setup::
; /*_HC08Setup:GP32系統初始化子程序----------------------*
; *功能:系統初始化設置:設置CONFIG1和CONFIG2寄存器 *
; CGM的寄存器設置:由外部晶振f=32.768kHz,產生內部 *
; 總線時鐘2.4576MHz *
; *參數:無 *
; *返回:無 *
; *-----------------------------------------------------*/
; #include "GP32C.h" //映像寄存器地址頭文件
; void _HC08Setup(void)
; {
; //初始化CONFIG2
; CONFIG2=0b00000001; //SCIBDSRC=1內部總線時鐘用作SCI
lda #1
sta 0x1e
; //時鐘;OSCSTOPENB=0在stop模式下
; //禁止振蕩器工作
; //初始化CONFIG1
; CONFIG1=0b00111101; //COPD=1 禁止COP模塊
lda #61
sta 0x1f
; //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溢出范圍使用長的時間
; PCTL=0x00; //①禁止PLL:清零PLL控制寄存器PCTL
clr 0x36
; PCTL=0x01; //②將P、E寫入PTCL,置VCO的參考頻率
lda #1
sta 0x36
; // 為2
; PMSH=0x01; //③將N寫入PMSH、PMSL,置VCO的倍
lda #1
sta 0x38
; // 頻因子為$12C
; PMSL=0x2C;
lda #44
sta 0x39
; PMRS=0b10000000; //④將L寫入PMRS,置VCO的輸出頻率范
lda #-128
sta 0x3a
; // 圍系數為$80
; PRDS=0x01; //⑤將R寫入PRDS
lda #1
sta 0x3b
; PCTL|=(1<<5); //⑥置PCTL.PLLON=1,啟動PLL電路
bset #5,0x36
; PBWC|=(1<<7); //⑦PBWC自動帶寬控制位=1,選擇自動
bset #7,0x37
; // 控制方式
; PCTL|=(1<<4); //⑧PCTL.BCS=1,選擇PLL電路為時鐘源
bset #4,0x36
L1:
.dbline 0 ; func end
rts
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -