1 / 9
文档名称:

cc2530常用寄存器讲解.docx

格式:docx   大小:39KB   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

cc2530常用寄存器讲解.docx

上传人:jiyudian11 2022/10/18 文件大小:39 KB

下载得到文件列表

cc2530常用寄存器讲解.docx

文档介绍

文档介绍:该【cc2530常用寄存器讲解 】是由【jiyudian11】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【cc2530常用寄存器讲解 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。CC2530控制外设的基本方法(通用I/O口)
CC2530的I/O控制口一共有21个,分成3组,分别是P0、P1和P2;由上面的对照表可以看出LED1所对应的I/O口为P1_0,LED2所对应的I/O口为P1_1,LED3所对应的I/O口为P1_4,LED4所对应的I/O为P0_1。
相对应的常用SFR有:
P1DIR(P1方向寄存器,P0DIR同理):°:输入1输出
D7
D6
D5
D4
D3
D2
D1
D0
P0_7方

P0_6方

P0_5方

P0_4方

P0_3方

P0_2方

P0_1方

P0_0方

P1SEL(P1功能选择寄存器,P0SEL同理):
D7
D6
D5
D4
D3
D2
D1
D0








台匕
台匕
能匕
能匕
能匕
能匕
能匕
能匕
能匕
能匕
0:普通
0:普通
0:普通
0:普通
0:普通
0:普通
0:普通
0:普通
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
1:外设功
1:外设功
1:外设功
1:外设功
1:外设功
1:外设功
1:外设功
1:外设功
台匕
台匕
能匕
能匕
能匕
能匕
能匕
能匕
能匕
能匕
P0SEL(P1SEL相同):各个I/O口的功能选择,0为普通I/O功能,1为外设功能
D7
D6
D5
D4
D3
D2
D1
D0
P2SEL: (D0到D2位)端口2功能选择和端口1外设优先级控制
什么是外设优先级:当PERCFG分配两个外设到相同的引脚时,需要设置这两个外设的优先级,确定哪一个外设先被响应
D7
D6
D5
D4
D3
D2
D1
D0
未用
0:USART0:USART
0优先 1优先
1:USART1:定时器
1优先 3优先
0:定
时器1优

1:定时
器4优先
0:USART
0优先
1:定时器
1优先
P2_4功
能选择
P2_3功
能选择
P2_0功
能选择
P0DIR(P1DIR相同八设置各个I/O的方向,0为输入,1为输出
D7
D6
D5
D4
D3
D2
D1
D0
P0_7方

P0_6方

P0_5方

P0_4方

P0_3方

P0_2方

P0_1方

P0_0方

P2DIR:DO~D4设置P2_0到P2_4的方向
D7、D6位作为端口0外设优先级的控制
D7
D6
D5
D4
D3
D2
D1
D0
X
X
未使用
P2_4方向
P2_3方向
P2_2方向
P2_1方向
P2_0方向
D7D6
意义
00
第1优先级:USART0
第2优先级:USART1
第3优先级:定时器1
01
第1优先级:USART1第2优先级:USART0第3优先级:定时器1
10
第1优先级:定时器1通道0-1
第2优先级:USART1
第3优先级:USART0第4优先级:定时器1通道2-3
11
第1优先级:定时器1通道2-3
第2优先级:USART0
第3优先级:USART1第4优先级:定时器1通道0-1
寄存器的设置:
将控制寄存器的某一位置1:
例:P1DIR|=0X02;
解释:”匸“表示按位或运算,0X02为十六进制数,转换成二进制数为00000010,若P1DIR原来的值为00110000,或运算后P1DIR的值为00110010。根据上面给出的取值表可知,按位与运算后P1_1的方向改为输出,其他I/O口方向保持不变。
将控制寄存器某一位清0:
例:P1DIR&=~0X02;
解释:”&=“表示按位与运算运算符表示取反,0X02为00000010,SP~0X02为11111101。若P1DIR原来的值为00110010,与运算后P1DIR的值为00110000。
二通过中断控制LED,如何捕获-个外部中断和CC2530捕获外部中断后的处理
流程
P0IEN(P1IEN相同):各个控制口的中断使能,0为中断禁止,1为中断使能。
D7
D6
D5
D4
D3
D2
D1
D0
P07
P06
P05
P04
P03
P02
P01
P00
P0INP(P1INP意义相似):设置各个I/O口的输入模式,0为上拉/下拉,1为三态模式
D7
D6
D5
D4
D3
D2
D1
DO
需要注意的是:P1INP中,只有D7~D2分别设置对应1/0口的输入模式。D1D0两位无作用。
PICTL:D0~D3设置各个端口的中断触发方式,0为上升沿触发,1为下降沿触发。
D7控制I/O引脚在输出模式下的驱动能力。选择输出驱动能力增强来补偿引脚DVDD的低I/O电压,确保在较低的电压下的驱动能力和较高电压下相同。0为最小驱动能力增强。1为最大驱动能力增强。
D7
D6
D5
D4
D3
D2
D1
DO
I/O驱动能力
未用
未用
未用
P20~P24
P14~P17
P10~P13
PO0~P07
IEN0:中断使能0,0为中断禁止,1为中断使能
D7
D6
D5
D4
D3
D2
D1
D0
总中
断EA
未用
睡眠定时器中断
AES加密/
解密中断
USART1RX
中断
USART0RX
中断
ADC
中断
RFTX/RFFIFO中断
IEN1:中断使能1,0为中断禁止,1为中断使能
D7
D6
D5
D4
「D3
D2
D1
D0
未用
未用
端口0
定时器4
定时器3
「定时器2
定时器1
DMA传输
P0IFG(P1IFG相同):中断状态标志寄存器,当输入端口有中断请求时,相应的标志位将置1。
D7
D6
D5
D4
D3
D2
D1
D0
P07
P06
P05
P04
P03
P02
P01
P00
P2INP:D0~D4控制P2_0~P2_4的输入模式,0为上拉/下拉,1为三态;
D5~D7设置对P0、P1和P2的上拉或下拉
的选择。0为上拉,1为下拉;
D7
D6
D5
D4
D3
D2
D1
D0
端口2选端口1选择 择
端口0选择
P2_4模

P2_3模

P2_2模

P2_1模

P2_0模

P2IFG:D0~D4为P2_0~P2_4的中断标志位
D5为USBD+中断状态标志,当D+线有一个中断请求未决时设置该标志,用于检测USB挂起状态下的USB恢复事件。当USB控制器没有挂起时不设置该标志。
D7
D6
D5
D4
D3
D2
D1
DO
未用
未用
USBD+
P24
P23
P22
P21
P20
P2IEN:D0~D4控制P2_0~P2_4的中断使能
D5控制USBD+的中断使能
D7
D6
D5
D4
D3
D2
D1
「D0
未用
未用
USBD+
P24
P23
P22
P21
P20
IEN2:中断使能2,0为中断禁止,1为中断使能
D7
D6
D5
D4
D3
D2
D1
DO
未用
未用
看门狗定时器
端口1
USART1TX
USARTOTX
端口2
RF一般中断
CC2530中断机制:
当按键S1按下时,因为S1所对应的I/O口为P0_1,所以P0端口将会发出一个中断请求,并自动将P0IFG寄存器对应位(即D1位)置1,等待CPU响应。
CPU在执行完一条指令之后就会检测是否有中断请求,如果检测到中断请求并且IEN1的D5位为1和P0IEN的D1为1时,对应的中断使能位中断使能,则根据中断类型号获得中断向量,根据中断向量得到中断服务子程序的地址,执行终端服务子程序。当中断服务子程序执行完毕后返回执行原来的程序。
中断服务子程序的写法:
#define
T1_VECTOR
VECT(
#define
T2_VECT0R
VECT(
#define
T3_VECTOR
VECT(
#define
T4_VECTOR
VECT(
#define
P0INT_VECTOR
VECT(13,
格式如下:
#pragma
vector=中断向量
__interruptvoid任意函数名(void)
{
头文件中已定义部分代码:
9,0x4B)
0x53)
0x5B)
0x63)
0x6B)•••
//中断处理,处理完成后通常
需要清除中断标志。
,掌握定时器T1的简单用法
T1CTL:定时器1的控制,D1D0控制运行模式,D3D2设置分频划分值
D7
D6
D5
D4
D3D2
D1D0
未用
未用
未用
未用
00:不分

01:8分频
10:32分

11:128
分频
00:暂停运行
01:自由运行,反复从0x0000到0xffff计数
10:模计数,从0x000到T1CC0反复计数
11:正计数/倒计数,从0x0000到T1CC0反复计数并且从T1CC0倒计数到0x0000
T1STAT:定时器1的状态寄存器,D4~D0为通道4~通道0的中断标志,D5为溢出标志位,当计数到最终计数值是自动置1。
D7
D6
D5
D4
D3
D2
D1
D0
未用
未用
溢出中断
通道4中断
通道3中断
通道2中断
通道1中断
通道0中断
T1CCTL0~T1CCTL4:定时器1通道0~通道4的工作方式设置。D1D0为捕捉模式选择:00为不捕捉,01为上升沿捕获,10为下降沿捕获,11为上升或下降沿都捕获。D2位为捕获或比较的选择,0为捕获模式,1为比较模式。D5D4D3为比较模式的选择:000为发生比较式输出端置1,001为发生比较时输出端清
0,010为比较时输出翻转,其他模式较少使用。
D7
D6
D5D4D3
D2
D1D0
未用
未用
比较模式
捕获/比较
捕捉模式
IRC0N:中断标志4,;0为无中断请求。1为有中断请求。
D7
D6
D5
D4
D3
D2
D1
D0
睡眠定时器必须为0
端口0
定时器4
定时器3
定时器2
定时器1
DMA完成
T3CTL/T4CTL:定时器3或定时器4的方式控制寄存器。D7D6D5设置分频:000为无分频、001为2分频、010为4分频、011为8分频、100为16分频、101为32分频、110为64分频,111为128分频。D4为启动位,启动时1,停止工作为0。D3位为中断使能位,0为禁止,1为使能,默认为1;D2为复位,置1时定时器复位。D1D0为计数器模式选择:该位与T1CTL的D1D0位意义相同。
D7D6D5
D4
D3
D2
D1D0
分频
启动定时器
溢出中断
清除计数器
计数模式
T3CCTL0/T3CCTL1/T4CCTL0/T4CCTL1:定时器3或定时器4的通道0和通道1的方式控制,D6为该通道的中断使能位,0为禁止,1为使能,默认为1;D5~D0与T1CCTL0相同
D7
D6
D5D4D3
D1
D0
未用
中断使能
比较模式
捕获/比较
捕捉模式
TIMIF:定时器1的溢出中断屏蔽与定时器3、4的中断标志。D6为定时器1的溢出中断屏蔽,0为屏蔽,1为使能,默认为1・D5~D0为定时器3和4中各个通道的中断标志。
D7
D6
D5
D4
D3
D2
D1
D0
未用
T1溢出中
断使能
T4通道1
中断标志
T4通道0
中断标志
T4溢出标志中断标志
T3通道1
T3通道0
T3溢出中
断标志
定时器1的工作原理:
定时器1工作在自由运行方式下,定时器1开始工作后从0x0000开始做加1计算,一直到0xffff。0xffff再加1则溢出,发生溢出中断。此时定时器将发出一个溢出中断请求并将IRCON的D1为置1。此后,定时器自动重新计数,再次从0x0000计数到0xffff。四・串口基本使用方法,使用串口实现与pc机的通讯。
U0CSR:USART0控制与状态;
D7
D6
D5
D4
D3
D2
D1
D0
模式选择
接收器使

SPI主/从
模式
帧错误状

奇偶错误状态
接受状

传送状态
收发主动状态
D7为工作模式选择,0为SPI模式,1为USART模式
D6为UART接收器使能,0为禁用接收器,1为接收器使能。
D5为SPI主/从模式选择,0为SPI主模式,1为SPI从模式。
D4为帧错误检测状态,0为无错误,1为出现出错。
D3为奇偶错误检测,0为无错误出现,1为出现奇偶校验错误。
D2为字节接收状态,0为没有收到字节,1为准备好接收字节。
D1为字节传送状态,0为字节没有被传送,1为写到数据缓冲区的字节已经被发送。
D0为USART接收/传送主动状态,0为USART空闲,1为USART忙碌。
U0GCR:USART0通用控制寄存器;
D7
D6
D5
D4~D0
SPI时钟极性
SPI时钟相位
传送位顺序
波特率指数值
D7为SPI时钟极性:0为负时钟极性,1为正时钟极性;
D6为SPI时钟相位:
D5为传送为顺序:0为最低有效位先传送,1为最高有效位先传送。
D4~D0为波特率设置:
波特率
指数值
小数部分
2400
6
59
4800
7
59
9600
8
59
14400
8
216
19200
9
59
28800
9
216
38400
10
59
57600
10
216
76800
11
59
115200
11
216
230400
12
216
U0BAUD:波特率控制小数部分。
CLKCONCMD:时钟频率控制寄存器。
D7
D6
D5~D3
D2~D0
32KHZ时间振荡器选择
系统时钟选择
定时器输出标记
系统主时钟选择
D7位为32KHZ时间振荡器选择,,0为32KRC震荡,1为32K晶振。默认为1。
D6位为系统时钟选择。0为32M晶振,1为16MRC震荡。当D7位为0时D6必须为1。D5~D3为定时器输出标记。000为32MHZ,001为16MHZ,010为8MHZ,011为4MHZ,100为2MHZ,101为1MHZ,110为500KHZ,111为250KHZ。默认为001。需要注意的是:当D6为1时,定时器频率最高可采用频率为16MHZ。
D2~D0:系统主时钟选择:000为32MHZ,001为16MHZ,010为8MHZ,011为4MHZ,100为2MHZ,101为1MHZ,110为500KHZ,111为250KHZ。当D6为1时,系统主时钟最高可采用频率为16MHZ。
CLKCONSTA:时间频率状态寄存器。
D7
D6
D5~D3
D2~D0
当前32KHZ时间振荡器
当前系统时钟
当前定时器输出标记
当前系统主时钟
D7位为当前32KHZ时间振荡器频率。0为32KRC震荡,1为32K晶振。
D6位为当前系统时钟选择。0为32M晶振,1为16MRC震荡。
D5~D3为当前定时器输出标记。000为32MHZ,001为16MHZ,010为8MHZ,011为4MHZ,100为2MHZ,101为1MHZ,110为500KHZ,111为250KHZ。
D2~D0为当前系统主时钟。000为32MHZ,001为16MHZ,010为8MHZ,011为4MHZ,100为2MHZ,101为1MHZ,110为500KHZ,111为250KHZ。
PERCFG:设置部分外设的I/O位置,0为默认I位置1,1为默认位置2
D7
D6
D5
D4
D3
D2
D1
D0
未用
定时器1
定时器3
定时器4
未用
未用
USART1
USART0
波特率的设置方法:
波特率由UOGCR中的低5位和UOBAUD决定,例如:
UOGCR|=9;
U0BAUD|=59;
以上代码将波特率设为19200。
,外部中断睡眠唤醒
PCON(0x87)
,置1将强制系统进入SLEEPCMD所指定的电源模式,所有中断信号都可以清除此置位。
SLEEPCMD(0xBE)
Bit1:Bit0系统电源模式设定:00全功能模式01:PM110:PM211:PM3
系统电源管理(工作方式如下):
全功能模式,高频晶振(16M或者32M)和低频晶振()全部工作,数字处理模块正常工作。
PM1:高频晶振(16M或者32M)关闭,低频晶振()工作,数字核心模块正常工作。
PM2:低频晶振()工作,数字核心模块关闭,系统通过RESET,外部中断或者睡眠计数器溢出唤醒。
PM3:晶振全部关闭,数字处理核心模块关闭,系统只能通过RESET或外部中断唤醒。此模式下功耗最低。
PCON=0x01;//进入睡眠模式,通过中断打断