⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcuinit.lis

📁 GP32启动程序
💻 LIS
字号:
                        .module MCUinit.c
                        .area text
 0000                   .dbfile MCUinit.c
 0000                   .dbfunc e MCUinit _MCUinit fV
 0000           _MCUinit::
 0000                   .dbline -1
 0000                   .dbline 16
 0000           ; //MCUinit:芯片初始化-------------------------------------------------------*
 0000           ; //功能:系统初始化设置                                                      *
 0000           ; //    (1)由外部晶振f,通过本程序设置内部总线频率fBUS                        *
 0000           ; //    (2)确定是否禁止看门狗(COP)                                           *
 0000           ; //参数:无                                                                  *
 0000           ; //返回:无                                                                  *
 0000           ; //说明:该程序与芯片具体型号有关                                            *
 0000           ; //    (1)外部晶振f = 32.768kHz,使用内部PLL(锁相环),产生内部总线时钟频率    *
 0000           ; //       fBUS = 2.4576MHz                                                  *
 0000           ; //    (2)禁止COP模块                                                       *
 0000           ; //-------------------------------------------------------------------------*
 0000           ; 
 0000           ; #include "GP32C.h"    //映像寄存器名定义
 0000           ; 
 0000           ; void MCUinit(void)
 0000           ; {
 0000                   .dbline 19
 0000           ;     //1.设置CONFIG2,CONFIG1
 0000           ;     //1.1 设置CONFIG2 
 0000           ;     CONFIG2 = 0b00000001;
 0000 A601              lda #1
 0002 B71E              sta 0x1e
 0004                   .dbline 24
 0004           ;             //        ||_SCIBDSRC   = 1内部总线时钟用作SCI时钟
 0004           ;             //        |__OSCSTOPENB = 0 在stop模式下禁止振荡器工作
 0004           ; 
 0004           ;     //1.2 设置CONFIG1
 0004           ;     CONFIG1 = 0b00111101;
 0004 A63D              lda #61
 0006 B71F              sta 0x1f
 0008                   .dbline 35
 0008           ;               //||||||||_COPD    = 1 禁止COP模块
 0008           ;               //|||||||__STOP    = 0 禁止STOP指令
 0008           ;               //||||||___SSREC   = 1 32个CGMXCLK周期退出STOP模式
 0008           ;               //|||||____LVI5OR3 = 1 LVI工作在5V
 0008           ;               //||||_____LVIPWRD = 1 禁止LVI模块电源
 0008           ;               //|||______LVIRSTD = 1 允许LVI复位信号
 0008           ;               //||_______LVISTOP = 0 在stop模式下禁止LVI
 0008           ;               //|________COPRS   = 0 COP溢出范围使用长的时间
 0008           ; 
 0008           ;     //2.PLL编程
 0008           ;     PCTL  = 0x00;          //(1)禁止PLL:清零PLL控制寄存器PCTL
 0008 3F36              clr 0x36
 000A                   .dbline 36
 000A           ;     PCTL  = 0x01;          //(2)将P,E写入PTCL,置VCO的参考频率为2
 000A A601              lda #1
 000C B736              sta 0x36
 000E                   .dbline 37
 000E           ;     PMSH  = 0x01;          //(3)将N写入PMSH,PMSL,置VCO的倍频因子为$12C
 000E A601              lda #1
 0010 B738              sta 0x38
 0012                   .dbline 38
 0012           ;     PMSL  = 0x2C;
 0012 A62C              lda #44
 0014 B739              sta 0x39
 0016                   .dbline 39
 0016           ;     PMRS  = 0b10000000;    //(4)将L写入PMRS,置VCO的输出频率范围系数为$80
 0016 A680              lda #-128
 0018 B73A              sta 0x3a
 001A                   .dbline 40
 001A           ;     PRDS  = 0x01;          //(5)将R写入PRDS
 001A A601              lda #1
 001C B73B              sta 0x3b
 001E                   .dbline 41
 001E           ;     PCTL |= (1 << 5);      //(6)置PCTL.PLLON = 1,启动PLL电路
 001E 1A36              bset #5,0x36
 0020                   .dbline 42
 0020           ;     PBWC |= (1 << 7);      //(7)PBWC自动带宽控制位 = 1,选择自动控制方式
 0020 1E37              bset #7,0x37
 0022                   .dbline 43
 0022           ;     PCTL |= (1 << 4);      //(8)PCTL.BCS = 1,选择PLL电路为时钟源
 0022 1836              bset #4,0x36
 0024                   .dbline -2
 0024           L1:
 0024                   .dbline 0 ; func end
 0024 81                rts
 0025                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -