七、I/O端口结构及工作模式
最多支持26个可位寻址通用I/O引脚,分4组,P0到P三、端口控制寄存器(Px)
端口控制寄存器的写读意义不同,端口控制寄存器设置输出锁逻辑值,
读端口引脚的逻辑状态
四种I/O模式:准双向模式(标准8051端口结构)、推拉输出、输入和泄漏模式。(P2.0不能配置)
特殊端口寄存器PxM1和PxM2选择端口Px的I/O模式:
复位后,默认配置为高阻输入模式
PxM1.nPxM2.nI/O类型x:0、1、2、3
00准双向
01推挽输出
10输入(高阻)
11开漏
PxS寄存器TTL电平输入或施密特触发输入(抗干扰能力更好)
PxSR寄存器 默认情况下,输出斜率控制寄存器 慢斜率
配置RPD(CONFIG0.2)为0,P2.通过输入引脚(输入模式和施密特触发模式)P20UP(P2S.7)
内部上拉电阻);RPD为编程,P2.0是外部复位引脚(内部上拉电阻有效,读取P2.0的值为0)
**准双向模式
**推挽模式
推拉输出模式用于需要从端口输出大电流时的应用
**输入高阻模式
**开漏模式
常用于I2C输出线,泄漏引脚需要增加外部上拉电阻,通常连接一个电阻VDD
**读-修改-写 指令
ANLORLXRLJBCCPLINCDECDJNZMOVbit,CCLR bit SETB bit
**管脚控制寄存器
1.输入输出数据控制
I/O输入输出数据缓存,可位寻址
2.控制输出模式
标准双向模式(标准8051端口结构)
对P2.0.上拉电阻控制位 P2S.7
P0M1 -端口0模式选择1P1M1 -端口1模式选择1P3M1 -端口3模式选择1
P0M2 -端口0模式选择2P1M2 -端口1模式选择1P3M2 -端口3模式选择2
P2S -P定时器0/1输出20设置
位70-P2.0上拉功能关闭;1-上拉打开(仅当RPD=0有效)
3.输入类型
每一个I/O引脚可独立配置TTL注意所有输入或施密特触发输入
PxS通过切换寄存器SFR访问页到页1
P0S 端口0施密特触发输入0-TTL电平,1-施密专用输入
P1S 端口1施密特触发输入
P2S 端口2施密特触发输入
位00-P2.0TTL电平输入;1-P2.0施密特输入
P3S 端口3 特触发施密输入
位00-P3.0TTL电平输入;1-P3.0施密特触发输入
4.输出斜率控制
P0SR -端口0斜率控制P1SR -端口1斜率控制P3SR -端口3斜率控制
位n PxSR.n:0-普通输出;1-高速输出;
-------------------------------------------------------------------------------------------
八、定时器/计数器 0和1
2个16位,每个16位技术寄存器由两个8位寄存器组成
定时器/计数器0高8位寄存器,TH0;低8位,TL0
定时器/计数器1高8位寄存器,TH1;低8位,TL01
TCON和TMOD配置0和1的工作模式
1.TMODC/T第二位选择定时器/计数器0功能,第六位选择定时器/计数器1功能
2.定时器功能时,设置定时器0T0M(CKCON.3)位置,定时器设置T1M(CKCON.4)位置,选择定时器时钟
是系统时钟(Fsys)或Fsys的12分频
3.设置P2S寄存器的T0OE和T1OE可实现定时器溢出时,引脚T0/T自动翻转输出
(C/T清除并选择位置Fsys时钟源作为定时器)
4.TH0(TH1)和TL0(TL1)在模式0或模式1下独立单独访问,读写TH0(TH1)和TL0(TL1)之前
必须清除TR0(TR1)停止计时(TCON 定时器0和1控制寄存器)
**定时器寄存器
1.TMOD 定时器0和1模式寄存器
2.TCON 定时器0和1控制寄存器(可位搜索)
3.TL0 定时器0低字节
4.TH0 定时器0高字节
5.TL1 定时器1低字节
6.TH1 定时器1高字节
7.CKCON 时钟控制寄存器 [6]PWM[4]定时器1,[3]定时器0,[1]系统时钟输出
8.P2S P20设置和定时器0/1输出
位3 T1OE 定时器1输出-T关闭引脚输出,1-打开)
位2 T0OE 定时器0输出使能(0-T关闭0引脚输出,1-打开)
**模式013位定时器
**模式1 16位定时器
**模式2 8位自动重装定时器
**模式3 两组独立8位定时器
-------------------------------------------------------------------------------------------
九、定时器2及输入捕获
由高8位寄存器组成的16位向上计数器(TH2)低8位寄存器(TL2)组成。
配置寄存器RCMP2H和RCMP2L,设置CM/RL2(T2CON.0)定时器2可以在比较模式和
在自动重载模式下。
定时器2具有3通道输入捕获模块,可用于测量输入脉冲宽度或周期,3通道捕获结果分别存储在
寄存器C0H及C0L,C1H及C1L,C2H及C2L中。
定时器2的时钟来自系统时钟的分频,有8级分频
TR2(T2CON.2)定时器使能,定时器关闭。
**寄存器
T2CON -定时器2控制寄存器
[7] -TF2 定时器2溢出标志,[2] -TR2 ,[0] -CM/RL2 比较定时器2(1)或自动重载功能(0)
T2MOD -选择定时器2模式
RCMP2L -定时器2重装载/比较数据低字节
RCMP2H -定时器2重装载/比较数据高字节
TL2 -低8位字节数据定时器2低字节定时器2
TH2 -定时器2高字节
建议清除软件TR2停止定时器2工作之后再读写这两个寄存器的值
**自动重装功能模式
**比较功能模式
**输入捕获功能模块
通过寄存器依靠定时器2实现输入捕获功能CAPCON支持3组通道输入配置0-2(CAP0,CAP1,CAP2)
9个引脚可以选择(P1.5,P1[2:0],P0.0,P0.1,P0[5:3]).
通过引脚复合功能选择CAPCON3和CAPCON4配置。
**寄存器
CAPCON0 -输入捕获控制寄存器0通道
CAPCON1 -输入捕获控制寄存器1触发边缘
CAPCON2 -2噪声滤波器
C0L -捕获通道0低字节
C0H -捕获通道0高字节
C1L -捕获通道1低字节
C1H -捕获通道1高字节
C2L -捕获通道2低字节
C2H -捕获通道2高字节
CAPCON3 -选择输入捕获控制寄存器3引脚 通道1[7:4] 通道0[3:0]
CAPCON4 -输入捕获控制寄存器4引脚选择 通道2[3:0]
-------------------------------------------------------------------------------------------
十、定时器3
定时器3是16位自动重装载,向上计数定时器
定时器3也用作串口波特率
**寄存器
T3CON -定时器3控制寄存器
RL3 -定时器3自动重装寄存器低字节
RH3 -定时器3自动重装寄存器高字节
--------------------------------------------------------------------------------------------
十七、脉冲宽度调制 PWM
PWM(脉冲宽度调制)信号应用于控制方案。
电机驱动、风扇控制、背光调节LED光源调光或通过低通滤波器电路模拟简单
输出数模转换模块
三对(6个PWM通道)16位精度、可调周期和空比PWM输出。
模块架构适用于驱动单相或三相无刷直流电机(BLDC),或三相交流感应电机。
每个通道PWM输出可配置为独立输出模式、互补模式或同步模式。
设置为互补模式时,插入可配置的死区时间进行保护MOS管同时导通
PWM波形可边缘对齐或中心对齐选择中断响应位置
**脉冲宽度调制发生器
-------------------------------------------------------------------------------------------
六、特殊功能寄存器(SFR)
特殊功能寄存器(SFRs)控制或监视外设和其他模块
位于地址80到FFH地址空间,仅可通过直接寻址访问,
以0H或8H结尾的SFRs可位寻址,其他可字节寻址
所有SFR访问目标都是SFR页0,寄存器SFRS用来切换SFR页地址(SFRS有TA写保护)
SFRS -SFR页选择(TA保护)
位0 0指令访问SFR页0;1指令访问SFR页1
SFR内存分布
SFR Page Addr 0/8 1/92/A 3/B 4/C 5/D 6/E 7/F
0 F8 SCON_1 PDTEN PDTCNT PMEN PMD - EIP1EIPH1
1--
0F0 B CAPCON3CAPCON4SPCR SPSR SPDRAINDIDSEIPH
1SPCR2 - --
0 E8 ADCCON0PICON PINEN PIPEN PIF C2L C2H EIP
1-
0 E0 ACC ADCCON1ADCCON2ADCDLYC0LC0H C1L C1H
1
0D8 PWMCON0PWMPLPWM0L PWM1L PWM2L PWM3L PIOCON0PWMCON1
1
0D0 PSW PWMPH PWM0H PWM1H PWM2H PWM3H PNP FBD
1
0C8 T2CON T2MOD RCMP2L RCMP2H TL2 TH2ADCMPL ADCMPH
1PWM4LPWM5L
0C0 I2CON I2ADDR ADCRL ADCRH T3CONRL3RH3TA
1PWM4HPWM5HPIOCON1
0B8 IP SADEN SADEN_1SADDR_1I2DAT I2STAT I2CLK I2TOC
1
0B0 P3 P0M1P0M2P1M1P1M2 P2S -IPH
1P0S P0SRP1S P1SR PWMINTC
0 A8 IE SADDR WDCON BODCON1 P3M1P3M2IAPFDIAPCN
1P3S P3SR
0A0 P2 - AUXR1 BODCON0IAPTRG IAPUEN IAPAL IAPAH
1
098 SCON SBUF SBUF_1 EIE EIE1 - - CHPCON
1
090 P1 SFRS CAPCON0CAPCON1CAPCON2CKDIV CKSWTCKEN
1
088 TCON TMOD TL0 TL1 TH0 TH1 CKCON WKCON
1
080 P0 SP DPL DPH - - RWK PCON
1
-------------------------------------------------------------------------------------------
二十、中断系统
**中断概念
中断的目的是让软件处理非常规或异步的事件。
4个中断优先级、18个中断源,中断可被全局使能或关闭
中断向量
源中断地址中断号
复位 0000H-
外部中断00003H0
定时器0溢出000BH1
外部中断10013H2
定时器1溢出001BH3
串口0中断0023H4
定时器2事件002BH5
I2C状态/超时中断0033H6
管脚中断003BH7
欠压检测中断0043H8
SPI中断004BH9
WDT中断0053H10
ADC中断005BH11
定时器输入捕获中断0063H12
PWM中断006BH13
故障刹车中断0073H14
串口1中断007BH15
定时器3溢出中断0083H16
WKT自唤醒定时器中断008BH17
**中断延迟
中断标志位在每个系统时钟周期都会被采样
满足特定条件,硬件将执行背部产生的LCALL指令,目标地址是中断向量地址
条件:1没有相同或更高优先级中断服务程序在执行
2当前查询中断标志周期正好是当前执行指令的最后一个周期
3当前指令不是写任何中断使能位或优先级位且也不能是中断返回指令RETI
执行LCALL指令需要4个机器周期,从中断标志位到执行中断服务程序最少需要5个机器周期
不大于16个时钟周期(RETI指令的5个时钟周期、完成最长指令的6个时钟周期、侦测中断1个时钟周
和完成硬件LCALL跳转到中断地址的4个周期)
-------------------------------------------------------------------------------------------
二十二、电源管理
空闲模式
掉电模式
-------------------------------------------------------------------------------------------
十六、管脚中断
每个管脚都有输入中断功能,用于检测管脚电平状态,最多配置8个I/O用于管脚中断
边沿检测或电平触发
管脚中断能使MCU从空闲模式或掉电模式唤醒(不退出空闲模式,退出掉电模式)
PICON设置管脚中断的触发方式
PIF中断标志寄存器,最多8个中断标志,通过硬件置位,通过软件清0
1.PICON-管脚中断控制寄存器 [7:2]-电平0/边沿1触发、[1:0]关键中断端口选择(0 1 2 3)
2.PINEN-管脚中断反相特性使能寄存器0-关闭中断,1-低电平/下降沿触发
3.PIPEN-管脚中断正相特性使能寄存器0-关闭中断,1-高电平/上升沿触发
4.PIF -管脚中断标志寄存器
5.EIE -扩展中断使能寄存器
[7:0]:定时器2,SPI,PWM故障刹车,WDT,PWM,输入捕获,引脚中断,I2C
EIE1扩展中断使能寄存器1
[2:0]:WKT,定时器3,串口1
6.IE -中断使能寄存器
[7:0]:所有中断 EA,ADC(ADCCON0.7),BOD(BODCON0.3),串口0(SCON.1-TI、SCON.0-RI),
定时器1(TCON.7),外部中断1(P1.7),定时器0(TCON.5),外部中断0(P3.0)
-------------------------------------------------------------------------------------------
十二、自唤醒定时器 WKT
用于低功耗模式下的周期唤醒芯片,也可用作通用定时器。
WKT在空闲或掉电模式保持计数。
WKT用作唤醒定时器时,要在进入省电模式之前开启。
WKT只能配置片内10kHz时钟源LIRC,注意系统时钟频率必须大于WKT时钟两倍以上
用户应手动使能选择的时钟源并等待它稳定确保成功(时钟源在掉电模式下也要保持工作)
WKT配备简单的8位自动重载向上计数定时器,预分频从1/1到1/2048
EWKT置1,WKT中断服务程序将被执行(计数器溢出时)
**寄存器
WKCON 自唤醒定时器控制寄存器
RWK 自唤醒定时器重装载数据寄存器
RWK仅在WKT停止(WKTR位为0)的时候可以写入,预分频是1/1时,RWK不能是FFH
-------------------------------------------------------------------------------------------
十三、串口控制器 UART
两个全双工串口,具备自动地址识别和帧错误检测功能
同步工作模式:模式0,三种全双工异步模式:模式1,2和3
串口接收带有接收缓存,接收和发送都是对SBUF进行操作访问
写入SBUF数据将直接传到发送寄存器,而读取SBUF是访问一个具有独立物理地址的接收寄存器
任何一种模式,任何以操作SBUF的指令都将开始一次传输
在使用串口功能前,串口所用管脚P0.7及P0.6(RXD及TXD引脚)或者P0.2及P1.6(RXD_1及TXD_1)
必须先置1
可将串口0的TXD及RXD通过UART0PX(AUXR1.2)更改位置
**寄存器
SCON -串口0控制寄存器(可位寻址) 模式选择,多机通信,接收发送标志,中断标志
SCON_1 -串口1控制寄存器(可位寻址)
PCON -电源控制寄存器
T3CON -定时器3控制寄存器
SBUF -串口0数据缓存寄存器
SBUF_1 -串口1数据缓存寄存器
AUXR1 -辅助寄存器1
**模式描述
串口0
模式 SM0 SM1 描述 帧位数波特率
000同步 8Fsys除以12或2(当SM2(SCON.5)设为1)
101异步 10定时器1/定时器3溢出时间除以32或16(当SMOD(PCON.7)设为1)
210异步 11Fsys除以32或64(当SMOD(PCON.7)设为1)
311异步 11定时器1/定时器3溢出时间除以32或16(当SMOD(PCON.7)设为1)
串口1
模式 SM0 SM1 描述 帧位数波特率
000同步 8Fsys除以12或2(当SM2_1(SCON_1.5)设为1)
101异步 10定时器3溢出时间除以16
210异步 11Fsys除以32或64(当SMOD_1(T3CON.7)设为1)
311异步 11定时器3溢出时间除以16
**模式0
主机模式
串行数据由RXD脚进行收发,TXD脚用于产生移位时钟
半双工通信,每帧接收或发送8位数据
数据的最低位被最先发送或接收
波特率设置为Fsys/12(SM2(SCON.5)为0)或Fsys/2(SM2为1)
串行时钟将一直由MCU产生,串口模式0为主机模式
**模式1
异步全双工的工作方式。异步通讯模式通常用于PC间,调制解调器和其它类似接口间通讯.
10位数据通过TXD发送,通过RXD接收
10位数据组成如下:起始位(逻辑0), 8位数据(最低位在前),停止位(逻辑1)
波特率由定时器1决定, SMOD (PCON.7) 设置为1可使波特率加倍
**模式2
全双工异步通信
11位收发。 数据由起始位(逻辑0), 8位数据(最低位在前),第9位数据(TB8或RB8)
和停止位(逻辑1)组成。
第9位做奇偶校验位或多机通信时用来区分数据和地址
波特率是系统时钟频率的1/32 或1/64,由 SMOD位(PCON.7)来配置
**模式3
除波特率外模式 3与模式 2相同。模式3采用定时器1的溢出率作为波特率时钟
-------------------------------------------------------------------------------------------
十八、12-位模数转换 ADC
12位逐次逼近寄存器型(SAR)的模拟数字转换器(ADC)
模数转换模块负责将管脚上的模拟信号转换为12位二进制数据
支持8通道单端输入模式
内部带隙电压(band-gap voltage)为1.22V,同时也可用作内部ADC输入端
所有模拟电路复用同一组采样电路和同一组采样保持电容
该组采样保持电容为转换电路的输入端
**ADC工作方式
设置ADCEN(ADCCON1.0)位使能ADC电路,激活ADC电路。
一旦ADC转换模块不再使用,建议清零ADCEN位关闭ADC模块节省功耗
ADC转换输入管脚需要特别配置,通过ADCHS[2:0]选择采样所需要的ADC通道连接到采样电路上
通过PxMn寄存器把采样所用的管脚配置为'输入高阻模式'(input-only high impedance)
通过配置AINDIDS寄存器相应位关闭数字输入缓冲区(数字输入电路工作将可能产生漏电流)
如上配置,ADC输入脚将变成纯模拟输入电路
置ADCS位(ADCCON0.6)开启AD转换,转换完成,硬件自动清除该位,同时置ADCF(ADCCON0.7)位
此时ADC中断若已经使能,会产生ADC中断
转换结果存放在ADCRH(高8位)及ADCRL(低4位)中,12位转换结果值为4095*Vain/Vref
注意,内部及外部数字电路,可能影响采样结果的准确度,请参考如下应用,以降低噪声电平干扰
1.模拟输入脚尽量离芯片越近越好,避免管脚附近有告诉数字电路经过,并离高速数字电路
越远越好
2.在转换过程中,将芯片进入空闲模式
3.如果模拟输入脚AIN在系统中同时需要切换做数字管脚,请确保在转换过程中不要做
数字/模拟切换动作
**外部触发ADC
N76E003提供硬件触发方式启动AD转换
ADCEX(ADCCON1.1)置1,选择PWM通道的边沿或周期,STADC管脚边沿自动触发
启动AD转换(由硬件设置自动ADCS信号)。
通过STADCPX(ADCCON1.6)可以灵活配置STADC的输入管脚
通过ETGSEL(ADCCON0[5:4])和ETGTYP(ADCCON1[3:2])设置来选择触发源和触发类型
还可在外部触发信号与启动AD转换之间插入触发延时(触发延时计数器)
注意 在AD模块转换过程中(ADCS=1),任何软件或硬件触发信号都是无效的
**ADC转换结果比较器
提供一组数字比较器
比较AD 12位转换结果与预先填入寄存器ACMPH及ACMPL的内容是否一致
ADC比较器使能位为ADCMPEN(ADCCON2.5),每次AD转换结果都比较
ADCMPO(ADCCON2.4)显示根据ADCMPOP(ADCCON2.6)设定的比较结果
当ADFBEN(ADCCON2.7)设置后,ADC比较结果可触发PWM故障刹车
**寄存器
ADCCON0 -ADC控制寄存器0(可位寻址)[7]ADC标志,[6]AD软启动,[5:4]外部触发源
[3:0]AD转换通道选择
ADCCON1 -ADC控制寄存器1[6]外部触发ADC管脚选择STADC 0-P0.4 1-P1.3
[3:2]外部触发信号类型选择[1]ADCEX ADC触发启动信号选择位[0]ADCEN ADC使能位
ADCCON2 -ADC控制寄存器2
AINDIDS -ADC通道数字输入不连接寄存器
ADCDLY -ADC触发延时计数器
ADCRH -ADC转换结果高位寄存器高8位
ADCRL -ADC转换结果低位寄存器低4位
ADCMPH -ADC比较值高位寄存器高8位
ADCMPL -ADC比较值低位寄存器低4位
-------------------------------------------------------------------------------------------
二十一、在应用编程 (IAP)
IAP 通过软件实现在线电擦除和编程的方法
通过设置IAPEN(CHPCON.0受TA保护)使能IAP,并设置IAPUEN寄存器的相应位,使能需要升级的
FLASH区域(CONFIG,LDROM,APROM),用户将16位操作地址写入IAPAH和IAPAL,数据写入IAPFD,
命令写入IAPCN
然后通过设置触发位IAPGO(IAPTRG.0),执行IAP。此时CPU保持程序计数器,IAP动作完成后,
程序计数器继续运行之后的指令,IAPGO位自动清零
IAPFF(CHPCON.6)是IAP错误标志
IAPTRG也受TA保护
页擦除时间 5ms,字节编程时间 23.5us
**寄存器
CONFIG2 - 配置寄存器2[3]欠压禁止IAP位
CHPCON - 芯片控制寄存器(TA保护)[6]IAPFF IAP错误标志 [0]IAPEN IAP使能
IAPUEN - IAP更新使能寄存器(TA保护)[2]CFUEN CONFIG更新使能[1]LDUEN LDROM更新使能
[0]APUEN APROM更新使能
IAPCN - IAP控制寄存器IAP控制命令
IAPAH - IAP地址高字节寄存器
IAPAL - IAP地址低字节寄存器
IAPFD - IAP内存数据
IAPTRG - IAP触发(TA保护)[0]IAPGO IAP执行在触发IAP动作前,如果中断打开应临时关闭
IAP 模式和命令代码
IAP 模式 IAPCN IAPA[15:0]IAPFD[7:0]
IAPB[1:0] FOEN FCEN FCTRL[3:0] {IAPAH, IAPAL}
读公司ID XX[注1] 0 0 1011 X DAH
读器件ID XX 0 0 1100 低字节 DID: 0000H低字节 DID: 50H
高字节 DID: 0001H高字节 DID: 36H
读96位UID XX 0 0 0100 0000H to 000BH 数据读出
APROM 页擦除 00 1 0 0010 地址 写入[注2] FFH
LDROM 页擦除 01 1 0 0010 地址 写入[2] FFH
APROM 字节编程 00 1 0 0001 地址 写入 数据写入
LDROM 字节编程 01 1 0 0001 地址 写入 数据写入
APROM 字节读 00 0 0 0000 地址 写入 数据读出
LDROM 字节读 01 0 0 0000 地址 写入 数据读出
擦除所有CONFIG 11 1 0 0010 0000H FFH
CONFIG 字节编程 11 1 0 0001 CONFIG0: 0000H数据写入
CONFIG1: 0001H
CONFIG2: 0002H
CONFIG4: 0004H
CONFIG 字节读 11 0 0 0000 CONFIG0: 0000H数据读出
CONFIG1: 0001H
CONFIG2: 0002H
CONFIG4: 0004H
[注1]表示无关项
[注2]每一页是128字节,所以地址应该是目标页的地址
**IAP指南
1.没有IAP操作时,用户必须清IAPEN(CHPCON.0)位。可以防止系统意外触发IAP。
IAP需要使用内部HIRC振荡器。如果选择外部时钟源,禁止IAP将停止内部HIRC,可以省电
2.当LOCK位(CONFIG0.1)被激活,IAP读,写或擦除仍然有效
**使用flash存储器作为数据存储
-------------------------------------------------------------------------------------------
十九、时效访问保护 TA
N76E003的时效访问保护功能,限制对关键SFR的写访问
对被保护的位的访问时受时间限制的,写操作之前必须打开时效访问窗口。
时效访问窗口保持4个时钟周期
打开时效访问窗口:对TA写入AAH,3个时钟周期内再写入55H。
e.g.
(CLR EA);if any interrupt is enabled,disable temporally
MOV TA,#0AAH
MOV TA,55H
(Instruction that writes a TA protected register)
(SETB EA);resume interrupts enabled
所有中断必须关闭,避免随中断产生的延时影响三条指令的有效时间
**寄存器
TA - 时效访问寄存器 [7:0]
-------------------------------------------------------------------------------------------
二十三、时钟系统
3种系统时钟源可选择:
内部振荡器(10kHz、16MHz)、来自XIN引脚的外部时钟,可以通过软件设置选择
内嵌2个内部RC振荡器,一个10kHZ低速、一个16MHz高速RC振荡器
CKDIV除频器可调整N76E003的功耗与性能
**系统时钟源
内部高速/低速振荡器、外部输入时钟
开启不同的时钟源可能会影响到多功能引脚P3.0/XIN
1.内部振荡器
高速16MHz(HIRC)和低速10kHz(LIRC)
设置HIRCEN(CKEN.5)位使能HIRC,设备上电时LIRC被使能
设置OSC[1:0](CKSWT[2:1])为[0,0]选择HIRC作为系统时钟
设置OSC[1:0](CKSWT[1:0])为[1,0]选择LIRC作为系统时钟
N76E003上电后HIRC和LIRC都被使能,并且系统默认HIRC为系统时钟
**系统时钟切换
可软件设置CKSWT和CKEN寄存器切换时钟源(写时效访问控制受TA保护)
切换需保证待切换时钟源已稳定,步骤:
配置CKEN寄存器打开目标时钟源
查询CKSWT寄存器种对应的标志位,确定时钟源是否稳定
写OSC[1:0](CKSWT[2:1])切换到目标四中院
违规操作 CKSWTF(CLKEN.0)硬件置位
**寄存器
CKSWT - 时钟切换寄存器(TA保护)
[5] HIRCST 16M状态,[4] LIRCST,[3] ECLKST 外部时钟输入状态,
[2:1] OSC[1:0] 振荡器选择位00 16M;01 XIN;10 10k;
CKEN - 时钟使能寄存器(TA保护)
[7:6] EXTEN[1:0] 外部时钟源使能 [5] HIRCEN 16M使能 [4] LIRCEN
[0] CKSWTF 时钟切换错误标志位0-成功
**系统时钟除频
除频寄存器CKDIV 最大到1/510
可做到比空闲模式省电,避免需要等待掉电模式下等待振荡器重新起振的时间
CKDIV - 时钟除频寄存器
[7:0] Fsys = Fosc/(2*CKDIV) 0则为Fsys
**系统时钟输出
CLO(P1.1)引脚输出系统时钟
CKCON - 时钟控制寄存器
[1] CLOEN 系统时钟输出使能