?? setup.lis
字號:
.module setup.c
.area text
0000 __HC08Setup::
0000 ; /*_HC08Setup:GP32系統初始化子程序----------------------*
0000 ; *功能:系統初始化設置:設置CONFIG1和CONFIG2寄存器 *
0000 ; CGM的寄存器設置:由外部晶振f=32.768kHz,產生內部 *
0000 ; 總線時鐘2.4576MHz *
0000 ; *參數:無 *
0000 ; *返回:無 *
0000 ; *-----------------------------------------------------*/
0000 ; #include "GP32C.h" //映像寄存器地址頭文件
0000 ; void _HC08Setup(void)
0000 ; {
0000 ; //初始化CONFIG2
0000 ; CONFIG2=0b00000001; //SCIBDSRC=1內部總線時鐘用作SCI
0000 A601 lda #1
0002 B71E sta 0x1e
0004 ; //時鐘;OSCSTOPENB=0在stop模式下
0004 ; //禁止振蕩器工作
0004 ; //初始化CONFIG1
0004 ; CONFIG1=0b00111101; //COPD=1 禁止COP模塊
0004 A63D lda #61
0006 B71F sta 0x1f
0008 ; //STOP=0 禁止STOP指令
0008 ; //SSREC=1 32個CGMXCLK周期退出
0008 ; //STOP模式
0008 ; //LVI5OR3=1 LVI工作在5V
0008 ; //LVIPWRD=1 禁止LVI模塊電源
0008 ; //LVIRSTD=1 允許LVI復位信號
0008 ; //LVISTOP=0 在stop模式下禁止LVI
0008 ; //COPRS=0 COP溢出范圍使用長的時間
0008 ; PCTL=0x00; //①禁止PLL:清零PLL控制寄存器PCTL
0008 3F36 clr 0x36
000A ; PCTL=0x01; //②將P、E寫入PTCL,置VCO的參考頻率
000A A601 lda #1
000C B736 sta 0x36
000E ; // 為2
000E ; PMSH=0x01; //③將N寫入PMSH、PMSL,置VCO的倍
000E A601 lda #1
0010 B738 sta 0x38
0012 ; // 頻因子為$12C
0012 ; PMSL=0x2C;
0012 A62C lda #44
0014 B739 sta 0x39
0016 ; PMRS=0b10000000; //④將L寫入PMRS,置VCO的輸出頻率范
0016 A680 lda #-128
0018 B73A sta 0x3a
001A ; // 圍系數為$80
001A ; PRDS=0x01; //⑤將R寫入PRDS
001A A601 lda #1
001C B73B sta 0x3b
001E ; PCTL|=(1<<5); //⑥置PCTL.PLLON=1,啟動PLL電路
001E 1A36 bset #5,0x36
0020 ; PBWC|=(1<<7); //⑦PBWC自動帶寬控制位=1,選擇自動
0020 1E37 bset #7,0x37
0022 ; // 控制方式
0022 ; PCTL|=(1<<4); //⑧PCTL.BCS=1,選擇PLL電路為時鐘源
0022 1836 bset #4,0x36
0024 L1:
0024 .dbline 0 ; func end
0024 81 rts
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -