1.访问模式
符号 | 访问模式 |
R/W | 可读写 |
R | 只读 |
R0 | 读0 |
R1 | 读1 |
W | 只写 |
W0 | 写0 |
W1 | 写1 |
H0 | 硬件清除 |
H1 | 硬件设置 |
2.端口寄存器(P0,P1,P2)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0 | 7:0 | P0[7:0] | 0XFF | R/W | 端口0,通用I/O端口,可以位寻址。 XDATA (0x7080). |
P1 | 7:0 | P1[7:0] | 0XFF | R/W | 端口1,通用I/O端口,可以位寻址。 XDATA (0x7090). |
P2 | 7:5 | --- | 000 | R0 | 未使用 |
P2 | 4:0 | P2[4:0] | 0x1F | R/W | 端口2,通用I/O端口,可以位寻址。 XDATA (0x70A0). |
3.方向寄存器(P0DIR,P1DIR,P2DIR)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0DIR | 7:0 | DIRP0_[7:0] | 0x00 | R/W | P0.7--P0.0的方向(0:输入 1:输出) |
P1DIR | 7:0 | DIRP1_[7:0] | 0x00 | R/W | P1.7--P1.0的方向(0:输入 1:输出) |
P2DIR | 7:6 | PRIP0[1:0] | 00 | R/W | 端口0外设优先级控制,当PERCFG分配给一些外设相同引脚的时候,这些位将确定优先级。优先级从前到后如下:00:USART 0,USART 1,Timer 1; 01:USART 1,USART 0,Timer 1; 10:Timer 1 channels 0-1,USART 1,USART 0,Timer 1 channels 2-3; 11:Timer 1 channels 2-3,USART 0,USART 1,Timer 1 channels 0-1 |
P2DIR | 5 | --- | 0 | R0 | 未使用 |
P2DIR | 4:0 | DIRP2_[4:0] | 00000 | R/W | P2.4—P2.0的方向(0:输入 1:输出) |
4.外设控制寄存器(PERCFG)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
PERCFG | 7 | --- | 0 | R0 | 未使用 |
PERCFG | 6 | T1CFG | 0 | R/W | 计时器1的I/O位置:0:位置1; 1:位置2 |
PERCFG | 5 | T3CFG | 0 | R/W | 计时器3的I/O位置:0:位置1; 1:位置2 |
PERCFG | 4 | T4CFG | 0 | R/W | 计时器4的I/O位置:0:位置1; 1:位置2 |
PERCFG | 3:2 | --- | 00 | R/W | 未使用 |
PERCFG | 1 | U1CFG | 0 | R/W | USART 1的I/O位置:0:位置1; 1:位置2 |
PERCFG | 0 | U0CFG | 0 | R/W | USART 0的I/O位置:0:位置1; 1:位置2 |
5.模拟外围I/O配置(ADC输入配置)(APCFG):Analog peripheral I/O configuration
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
APCFG | 7:0 | APCFG[7:0] | 0x00 | R/W | 模拟外围I/O配置(ADC输入配置),APCFG[7:0]选择P0.7—P0.0作为模拟输入口。0:模拟输入(ADC输入)禁止; 1:模拟输入(ACD输入)使能 |
6.功能选择寄存器(P0SEL,P1SEL,P2SEL)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0SEL | 7:0 | SELP0_[7:0] | 0x00 | R/W | P0.7--P0.0的功能选择(0:通用I/O 1:外设功能) |
P1SEL | 7:0 | SELP1_[7:0] | 0x00 | R/W | P1.7--P1.0的功能选择(0:通用I/O 1:外设功能) |
P2SEL | 7 | --- | 0 | R0 | 未使用 |
P2SEL | 6 | PRI3P1 | 0 | R/W | 端口1外设优先级控制,当PERCFG分配USART0和USART1相同引脚的时候,这些位将确定优先级。0:USART 0 优先; 1:USART 1 优先 |
P2SEL | 5 | PRI2P1 | 0 | R/W | 端口1外设优先级控制,当PERCFG分配USART1和TIMER3相同引脚的时候,这些位将确定优先级。0:USART 1 优先; 1:TIMER 3 优先 |
P2SEL | 4 | PRI1P1 | 0 | R/W | 端口1外设优先级控制,当PERCFG分配TIMER1和TIMER4相同引脚的时候,这些位将确定优先级。0:TIMER 1 优先; 1:TIMER 4 优先 |
P2SEL | 3 | PRI0P1 | 0 | R/W | 端口1外设优先级控制,当PERCFG分配USART0和TIMER1相同引脚的时候,这些位将确定优先级。0:USART 0 优先; 1:TIMER 1 优先 |
P2SEL | 2:0 | SELP2_[2:0] | 000 | R/W | P2.2--P2.0的功能选择(0:通用I/O 1:外设功能) |
7.输入模式寄存器(P0INP,P1INP,P2INP)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0INP | 7:0 | MDP0_[7:0] | 0x00 | R/W | P0.7--P0.0的输入模式: 0:上拉/下拉(具体看PDUP0设置); 1:三态 |
P1INP | 7:2 | MDP1_[7:2] | 000000 | R/W | P1.7—P1.2的输入模式:0:上拉/下拉(具体看PDUP1设置);1:三态 |
P1INP | 1:0 | --- | 00 | R0 | 未使用 |
P2INP | 7 | PDUP2 | 0 | R/W | 端口2上拉/下拉选择,对所有端口2引脚设置为上拉/下拉输入:0:上拉;1:下拉 |
P2INP | 6 | PDUP1 | 0 | R/W | 端口1上拉/下拉选择,对所有端口1引脚设置为上拉/下拉输入:0:上拉;1:下拉 |
P2INP | 5 | PDUP0 | 0 | R/W | 端口0上拉/下拉选择,对所有端口0引脚设置为上拉/下拉输入:0:上拉;1:下拉 |
P2INP | 4:0 | MDP2_[4:0] | 00000 | R/W | P2.4—P2.0的输入模式: 0:上拉/下拉(具体看PDUP2设置);1:三态 |
8.中断状态标志寄存器(P0IFG,P1IFG,P2IFG)
端口 | Bit位 | 名称 | 初始化 | 读/写 | 描述 |
P0IFG | 7:0 | P0IF[7:0] | 0x00 | R/W0 | 端口0,位7至位0输入中断状态标志。当某引脚上有中断请求未决信号时,其相应标志为设1。 |
P1IFG | 7:0 | P1IF[7:0] | 0x00 | R/W0 | 端口1,位7至位0输入中断状态标志。当某引脚上有中断请求未决信号时,其相应标志为设1。 |
P2IFG | 7:5 | --- | 000 | R0 | 未使用 |
P2IFG | 4:0 | P2IF[4:0] | 0x00 | R/W0 | 端口2,位4至位0输入中断状态标志。当某引脚上有中断请求未决信号时,其相应标志为设1。 |
9.端口中断控制(PICTL)(上升沿或下降沿)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
PICTL | 7 | PADSC | 0 | R/W | 强制引脚在输出模式。选择输出驱动能力,由DVDD引脚提供。0:最小驱动能力;1:最大驱动能力 |
PICTL | 6:4 | --- | 000 | R0 | 未使用 |
PICTL | 3 | P2ICON | 0 | R/W | 端口2,引脚4至0输入模式下的中断配置,该位为端口2的4-0脚的输入选择中断请求条件。0:输入的上升沿引起中断;1:输入的下降沿引起中断 |
PICTL | 2 | P1ICONH | 0 | R/W | 端口1,引脚7至4输入模式下的中断配置,该位为端口1的7-4脚的输入选择中断请求条件。0:输入的上升沿引起中断;1:输入的下降沿引起中断 |
PICTL | 1 | P1ICONL | 0 | R/W | 端口1,引脚3至0输入模式下的中断配置,该位为端口1的3-0脚的输入选择中断请求条件。0:输入的上升沿引起中断;1:输入的下降沿引起中断 |
PICTL | 0 | P0ICON | 0 | R/W | 端口0,引脚7至0输入模式下的中断配置,该位为端口0的7-0脚的输入选择中断请求条件。0:输入的上升沿引起中断;1:输入的下降沿引起中断 |
10.中断屏蔽寄存器(P0IEN,P1IEN,P2IEN)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0IEN | 7:0 | P0_[7:0]IEN | 0x00 | R/W | 端口0,位7至位0中断使能。0:中断禁止;1:中断使能 |
P1IEN | 7:0 | P1_[7:0]IEN | 0x00 | R/W | 端口1,位7至位0中断使能。0:中断禁止;1:中断使能 |
P2IEN | 7:6 | --- | 00 | R0 | 未使用 |
P2IEN | 5 | DPIEN | 0 | R/W | USB D+ 中断使能。 |
P2IEN | 4:0 | P2_[4:0]IEN | 00000 | R/W | 端口2,位4至位0中断使能。0:中断禁止;1:中断使能 |
11.串口和SPI相关
11.1.U0CSR (0x86) -USART 0 控制和状态
Bit位 | 名称 | 初始化 | 读写 | 描述 |
7 | MODE | 0 | R/W | USART模式选择: 0:SPI模式;1:UART模式 |
6 | RE | 0 | R/W | UART接收器使能。注意在UART完全配置之前不使能接收。0:禁用接收器;1:接收器使能 |
5 | SLAVE | 0 | R/W | SPI主或者从模式选择.0:SPI主模式;1:SPI从模式; |
4 | FE | 0 | R/W0 | UART帧错误状态.0:无帧错误检测;1:字节收到不正确停止位级别 |
3 | ERR | 0 | R/W0 | UART奇偶错误状态.0:无奇偶错误检测;1:字节收到奇偶错误 |
2 | RX_BYTE | 0 | R/W0 | 接收字节状态。URAT模式和SPI从模式。当读U0DBUF该位自动清除,通过写0清除它,这样有效丢弃U0DBUF中的数据 。0:没有收到字节;1:准备好接收字节 |
1 | TX_BYTE | 0 | R/W0 | 传送字节状态。URAT模式和SPI主模式.0:字节没有被传送;1:写到数据缓存寄存器的最后字节被传送 |
0 | ACTIVE | 0 | R | USART传送/接收主动状态、在SPI从模式下该位等于从模式选择。0:USART空闲;1:在传送或者接收模式USART忙碌 |
11.2.U0UCR (0xC4)–USART 0 UART 控制
Bit位 | 名称 | 初始化 | 读写 | 描述 |
7 | FLUSH | 0 | R0/W1 | 清除单元。当设置时,该事件将会立即停止当前操作并且返回单元的空闲状态。 |
6 | FLOW | 0 | R/W | UART硬件流使能。用RTS和CTS引脚选择硬件流控制的使用。0:流控制禁止.1:流控制使能. |
5 | D9 | 0 | R/W | UART奇偶校验位。当使能奇偶校验,写入D9的值决定发送的第9位的值,如果收到的第9位不匹配收到字节的奇偶校验,接收时报告ERR。如果奇偶校验使能, 那么该位设置以下奇偶校验级别。0:奇校验;1:偶校验. |
4 | BIT9 | 0 | R/W | UART 9位数据使能。当该位是1时, 使能奇偶校验位传输(即第9位)。如果通过PARITY使能奇偶校验,第9位的内容是通过D9给出的。0:8位传送;1:9位传送 |
3 | PARITY | 0 | R/W | UART奇偶校验使能。除了为奇偶校验设置该位用于计算,必须使能9位模式。0:禁用奇偶校验;1:奇偶校验使能 |
2 | SPB | 0 | R/W | UART停止位的位数。选择要传送的停止位的位数.0:1位停止位;1:2位停止位 |
1 | STOP | 1 | R/W | UART停止位的电平必须不同于开始位的电平.0:停止位低电平;1:停止位高电平 |
0 | START | 0 | R/W | UART起始位电平。闲置线的极性采用选择的起始位级别的电平的相反的电平。0:起始位低电平;1:起始位高电平 |
11.3.U0GCR (0xC5)–USART 0 通用控制
Bit位 | 名称 | 初始化 | 读写 | 描述 |
7 | CPOL | 0 | R/W | SPI的时钟极性.0:负时钟极性;1:正时钟极性; |
6 | CPHA | 0 | R/W | SPI时钟相位.0:当SCK从CPOL倒置到CPOL时数据输出到MOSI,并且当SCK从CPOL倒置到CPOL时数据输入抽样到 MISO。1:当SCK从CPOL倒置到CPOL时数据输出到MOSI,并且当SCK从CPOL倒置到 CPOL 时数据输入抽样到 MISO 。 |
5 | ORDER | 0 | R/W | 传送位顺序.0:LSB先传送;1:MSB先传送; |
4:0 | BAUD_E[4:0] | 0 | 0000 | R/W 波特率指数值。BAUD_E 和 BAUD_M 决定了 UART 波特率 和 SPI 的主 SCK 时 |
钟频率。
11.4.U0BUF (0xC1) – USART 0 接收/传送数据缓存
Bit位 | 名称 | 初始化 | 读写 | 描述 |
7:0 | DATA[7:0] | 0x00 | R/W | USART接收和传送数据 。 当写这个寄存器的时候数据被写到内部,传送数据寄存 |
器。当读取该寄存器的时候,数据来自内部读取的数据寄存器。
11.5.U0BAUD (0xC2) – USART 0 波特率控制
Bit位 | 名称 | 初始化 | 读写 | 描述 |
7:0 | BAUD_M[7:0] | 0x00 | R/W | 波特率小数部分的值。 BAUD_E和 BAUD_M决定了UART的波特率和SPI的主SCK |
时钟频率。
12.时钟相关
12.1.CLKCONCMD (0xC6) –时钟控制命令
Bit位 | 名称 | 初始化 | 读写 | 描述 |
7 | OSC32K | 1 | R/W | 32kHz时钟振荡器选择。设置该位只能发起一个时钟源改变。CLKCONSTA.OSC32K 反映当前的设置。当要改变该位必须选择16MHz RCOSC作为系统时钟。0:32 kHz XOSC;1:32 kHz RCOSC; |
6 | OSC | 1 | R/W | 系统时钟 源选择 。设置该位只能发起一个时钟源改变。CLKCONSTA.OSC 反映当前的设置。0:32 MHz XOSC;1:16 MHz RCOSC; |
5:3 | TICKSPD[2:0] | 001 | R/W | 定时器标记输出设置。不能高于通过 OSC 位设置的系统时钟设置。000:32 MHz;001:16 MHz;010:8 MHz;011:4 MHz;100:2 MHz;101:1 MHz;110:500 kHz;111:250 kHz;注意 CLKCONCMD.TICKSPD 可以设置为任意值,但是结果受CLKCONCMD.OSC 设置的限制,即如果 CLKCONCMD.OSC=1且 CLKCONCMD.TICKSPD=000,CLKCONCMD.TICKSPD 读出001 且实际 TICKSPD 是 16 MHz。 |
2:0 | CLKSPD | 001 | R/W | 时钟速度。不能高于通过 OSC 位设置的系统时钟设置 。 表示当前系统时钟频率。000:32MHz;001:16MHz;010:8MHz;011:4MHz;100:2MHz;101:1MHz;110:500 kHz;111:250 kHz;注意CLKCONCMD.CLKSPD可以设置为任意值,但是结果受CLKCONCMD.OSC设置的限制,即如果CLKCONCMD.OSC=1且CLKCONCMD.CLKSPD=000 , CLKCONCMD.CLKSPD读出001且实际CLKSPD是16MHz。还要注意调试器不能和一个划分过的系统时钟一起工作。当运行调试器,当CLKCONCMD.OSC=0,CLKCONCMD.CLKSPD的值必须设置为000,或当CLKCONCMD.OSC=1设置为001。 |
12.2.CLKCONSTA (0x9E) –时钟控制状态
Bit位 | 名称 | 初始化 | 读写 | 描述 |
7 | OSC32K | 1 | R | 当前选择的 32 kHz 时钟源。0:32kHz XOSC;1:32kHz RCOSC; |
6 | OSC | 1 R 当前选择的系统时钟。0:32MHz XOSC;1:16MHz RCOSC | ||
5:3 | TICKSPD[2:0] | 001 | R | 当前设置的定时器标记输出。000:32MHz;001:16MHz;010:8MHz;011:4MHz;100:2MHz;101:1MHz;110:500kHz;111:250 kHz; |
2:0 | CLKSPD | 001 | R | 当前时钟速度。000:32MHz;001:16MHz;010:8MHz;011:4MHz;100:2MHz;101:1MHz;110:500k |