79F161 V0.2

Size: px
Start display at page:

Download "79F161 V0.2"

Transcription

1 带增强型 8051 的电力线载波通信控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:16K 字节 类 EEPROM:2K 字节 RAM: 内部 256 字节, 外部 512 字节 工作电压 : V DD = 3.0V - 5.5V,AV DD = 3.0V - 3.6V 振荡器 : - 晶体谐振器 :8MHz - 16MHz 16 个 CMOS 双向 I/O 管脚 I/O 内建上拉电阻 3 个 16 位定时器 / 计数器 :T0,T1 和 T2 中断源 : - 定时器 0,1,2 - 外部中断 0,1 - EUART,ADC - 载波通信 (PLT) 增强型 UART 看门狗定时器 (WDT)( 代码选项 ) 内建振荡器预热计数器 内建低电压复位功能 (LVR)( 代码选项 ) - LVR 电压 :2.8V 4 通道 10 位模数转换器 (ADC), 内建比较功能 CPU 机器周期 :1 个振荡周期 内建电力线载波通信模块 (PLT) - 集成模拟前端电路 (AFE) - 63 位扩频调制 - 窄带 BPSK 调制 - 首创载波双模通信技术 - 集成前向纠错编解码 - 载波频率可调 :9KHz - 525KHz - 接收双通道分时复用 - 支持 128 个码分信道 - 支持过零传输 - 接收信号强度指示 (RSSI) - 高精度 DAC 输出正弦波 - 灵敏度高达 100uVp-p - 满足各种频谱规范 :FCC,CENELEC - BOM 成本低 低功耗工作模式 : - 空闲模式 - 掉电模式 封装 :28 引脚 TSSOP 封装 2. 概述 01 是一颗高集成度的电力线载波通信 SOC, 内部集成了高速增强型 8051 兼容单片机和高性能电力线载波通信模块 (Powerline Transceiver 简称 PLT) 01 具有标准 8051 芯片的大部分特性 这些特性包括内置 256 字节 RAM 和 2 个 16 位定时器 / 计数器,1 个 UART 和外置中断 INT0 和 INT1 此外,01 还集成了 512 字节 RAM,10 位 ADC, 可兼容 8052 芯片的 16 位定时器 / 计数器 (Timer2) 和适合存储程序和数据的 16K 字节 Flash, 同时, 芯片内部还提供 2K 字节类 EEPROM 用于存放数据 为了达到高可靠性和低功耗,01 内建了看门狗定时器, 低电压复位电路, 并提供了 2 种低功耗省电模式 01 内建 PLT 模块设计为全集成电力线载波通信引擎, 内建模拟前端电路和调制解调电路, 外围电路简洁, 支持高性能的扩频载波通信技术和窄带调制通信技术, 支持过零传输, 并首创了载波双模通信技术, 结合先进的前向纠错编解码算法, 能够最大程度提高载波物理层通信能力, 适应各种低压电力线信道环境 01 面向低压电力线载波应用, 但也支持其他信道的低速控制应用, 其主要应用领域包括 : 载波集抄 (AMR) 路灯远程监控 智能家居控制 安防监控 Power Meter 1 V1.0

2 3. 方框图 V DD AV DD POWER (Regulator) Pipelined 8051 architecture Reset circuit RST Watch Dog 16K Bytes Flash ROM 2K Bytes EEPROM Port 0 Configuration I/O P0.0 ~ P0.7 Internal 256 Bytes External 512 Bytes Data RAM Port 1 Configuration I/O P1.0 ~ P1.7 Timer0 (16bit) Timer1 (16bit) Timer2 (16bit) RSSI External Interrupt (INT0, INT1) EUART PLT Module VOUT 10-bit ADC OSCI OSCO Oscillator (OSC) VIN JTAG ports (for debug) 2

3 4. 引脚配置 28 脚封装 V DD 1 28 AV DD CREG 2 27 VCOM OSCI 3 26 VOUT OSCO 4 25 AGND GND 5 24 VIN RST RXD/P1.0 TXD/P1.1 INT0/P RSSI P0.0/FILI P0.1/FILO P0.2/VINCOM T0/P P0.3/AN1 INT1/P P0.4/AN2 T1/P P0.5/AN3 T2/P P0.6/TPO T2EX/P P0.7/RPO 引脚配置图 总计 28 个管脚 PCB 制图注意 : 引脚 CREG 需要接 47uF 电解电容 为提高抗干扰特性, 电容负端不要直接接地, 而是和 GND 相连, 然后再和 PCB 地线相连, 也即一点接地 Table 4.1 引脚功能 引脚编号引脚命名默认功能引脚编号引脚命名默认功能 1 V DD P0.7/RPO P0.7 2 CREG P0.6/TPO P0.6 3 OSCI P0.5/AN3 P0.5 4 OSCO P0.4/AN2 P0.4 5 GND P0.3/AN1 P0.3 6 RST P0.2/VINCOM P0.2 7 RXD/P1.0 P P0.1/FILO P0.1 8 TXD/P1.1 P P0.0/ FILI P0.0 9 INT0/P1.2 P RSSI T0/P1.3 P VIN INT1/P1.4 P AGND T1/P1.5 P VOUT T2/P1.6 P VCOM T2EX/P1.7 P AVDD

4 5. 引脚描述 I/O 端口 定时器 引脚编号类型说明 P0.0 - P0.7 I/O 8 位双向 I/O 端口 P1.0 - P1.7 I/O 8 位双向 I/O 端口 增强型异步串行口 载波通信 模数转换器 T0 I/O Timer0 外部输入或比较输出 T1 I/O Timer1 外部输入或比较输出 T2 I/O Timer2 外部输入 / 波特率时钟输出 T2EX I Timer2 重载 / 捕捉 / 方向控制 RXD I/O EUART 数据输入 / 输出引脚 TXD O EUART 数据输出引脚 VCOM O 内部共模电压输出, 推荐选用 0.1µF 电容接 AGND VOUT O 发送信号输出 VIN I 主通道接收信号输入 VINCOM I 副通道接收信号输入 FILI I 限幅放大器反馈路径输入, 在 FILI 与 FILO 之间接 0.1µF 电容 FILO O 限幅放大器反馈路径输出, 在 FILI 与 FILO 之间接 0.1µF 电容 RSSI O RSSI 电平输出, 推荐选用 0.1µF 电容接 AGND TPO O 发送信号数字脉冲输出 ( 不经过 AFE 通道 ) RPO O 接收信号数字脉冲输出 ( 从 AFE 通道输入 ) AN1 - AN3 I ADC 输入通道 中断 & 复位 & 时钟 & 功率 INT0 - INT1 I 外部中断 0,1 RST OSCI I 振荡器输入 OSCO O 振荡器输出 GND P 数字接地 I V DD P 数字电源 ( V) AGND P 模拟接地 AV DD P 该引脚上保持 10µs 以上的低电平,CPU 将复位 由于有内建 30kΩ 上拉电阻连接到 V DD, 所以仅接一个 0.1µF 外部电容即可实现上电复位 模拟电源 ( V) 在 V DD = 5.0V 时, 如置 OP_REG33 = 1 使能内部 3.3V 稳压源, 则 AV DD 无需外部供电, 只需外接一 47µF 电解电容至 AGND 即可, 如置 OP_REG33 = 0, 则 AV DD 需外部供电 4

5 续上表 稳压源 编程接口 引脚命名类型说明 CREG TDO(P1.0) O 调试接口 : 测试数据输出 TMS(P1.1) I 调试接口 : 测试模式选择 TDI(P1.2) I 调试接口 : 测试数据输入 TCK(P1.3) I 调试接口 : 测试时钟输入 注意 : 当 P 作为调试接口时,P 的原有功能被限制 内建稳压源滤波电容引脚, 推荐选用 47µF 电容接地 5

6 6. SFR 映像 01 内置 256 字节的直接寻址寄存器, 包括通用数据寄存器和特殊功能寄存器 (SFR),01 的 SFR 有以下几种 : CPU 内核寄存器 : ACC,B,PSW,SP,DPL,DPH CPU 内核增强寄存器 : AUXC,DPL1,DPH1,INSCON 电源时钟控制寄存器 : PCON,SUSLO,CLKCON Flash 寄存器 : IB_OFFSET,IB_DATA,IB_CON1,IB_CON2,IB_CON3,IB_CON4,IB_CON5,FLASHCON 数据页面控制寄存器 : XPAGE 硬件看门狗定时器寄存器 :RSTSTAT 中断寄存器 : IEN0,IPH0,IPL0,IEN1,IPH1,IPL1 I/O 口寄存器 : P0,P1,P0CR,P1CR,P0PCR,P1PCR 定时器寄存器 : TCON,TMOD,TL0,TH0,TL1,TH1,T2CON,T2MOD,RCAP2L,RCAP2H,TL2,TH2,TCON1 EUART 寄存器 : SCON,SBUF,SADDR,PCON ADC 寄存器 : ADCON,ADT,ADCH,ADDL,ADDH PLT 寄存器 : PLSTAT,PLCON,PLADR1,PLBUF,PLADR2,PLREG,PLOCK 6

7 Table 6.1 C51 核 SFRs Table 6.2 功率与时钟控制 SFRs Table 6.3 Flash 控制 SFRs 符号地址名称复位值第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ACC E0H 累加器 ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 B F0H B 寄存器 B.7 B.6 B.5 B.4 B.3 B.2 B.1 B.0 AUXC F1H C 寄存器 C.7 C.6 C.5 C.4 C.3 C.2 C.1 C.0 PSW D0H 程序状态字 CY AC F0 RS1 RS0 OV F1 P SP 81H 堆栈指针 SP.7 SP.6 SP.5 SP.4 SP.3 SP.2 SP.1 SP.0 DPL 82H 数据指针 1 低位字节 DPL0.7 DPL0.6 DPL0.5 DPL0.4 DPL0.3 DPL0.2 DPL0.1 DPL0.0 DPH 83H 数据指针 1 高位字节 DPH0.7 DPH0.6 DPH0.5 DPH0.4 DPH0.3 DPH0.2 DPH0.1 DPH0.0 DPL1 84H 数据指针 2 低位字节 DPL1.7 DPL1.6 DPL1.5 DPL1.4 DPL1.3 DPL1.2 DPL1.1 DPL1.0 DPH1 85H 数据指针 2 高位字节 DPH1.7 DPH1.6 DPH1.5 DPH1.4 DPH1.3 DPH1.2 DPH1.1 DPH1.0 INSCON 86H 数据指针选择 DIV MUL - DPS 符号地址名称复位值第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PCON 87H 电源控制 SMOD SSTAT - - GF1 GF0 PD IDL SUSLO 8EH 电源控制保护字 SUSLO.7 SUSLO.6 SUSLO.5 SUSLO.4 SUSLO.3 SUSLO.2 SUSLO.1 SUSLO.0 CLKCON B2H 系统时钟控制 CLKPS1 CLKPS PLCLKPS 符号地址名称复位值第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_OFF SET FBH 编程地址偏移寄存器 IB_OFF SET.7 IB_OFF SET.6 IB_DATA FCH 编程数据寄存器 IB_DATA.7 IB_DATA.6 IB_DATA.5 IB_DATA.4 IB_DATA.3 IB_DATA.2 IB_DATA.1 IB_DATA.0 IB_CON1 F2H flash 控制寄存器 IB_CON1.7 IB_CON1.6 IB_CON1.5 IB_CON1.4 IB_CON1.3 IB_CON1.2 IB_CON1.1 IB_CON1.0 IB_CON2 F3H flash 控制寄存器 IB_CON2.4 IB_CON2.3 IB_CON2.2 IB_CON2.1 IB_CON2.0 IB_CON3 F4H flash 控制寄存器 IB_CON3.3 IB_CON3.2 IB_CON3.1 IB_CON3.0 IB_CON4 F5H flash 控制寄存器 IB_CON4.3 IB_CON4.2 IB_CON4.1 IB_CON4.0 IB_CON5 F6H flash 控制寄存器 IB_CON5.3 IB_CON5.2 IB_CON5.1 IB_CON5.0 FLASHCON A7H Information 块访问控制寄存器 FAC IB_OFF SET.5 IB_OFF SET.4 IB_OFF SET.3 IB_OFF SET.2 IB_OFF SET.1 IB_OFF SET.0 7

8 Table 6.4 数据页面控制 SFR 符号 地址 名称 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 XPAGE F7H 数据页面控制寄存器 XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 Table 6.5 看门狗定时器 SFR 符号 地址 名称 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 RSTSTAT B1H 看门狗定时器控制寄存器 WDOF - PORF LVRF CLRF WDT.2 WDT.1 WDT.0 Table 6.6 中断控制 SFRs 符号 地址 名称 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 IEN0 A8H 中断允许控制寄存器 EA EADC ET2 ES ET1 EX1 ET0 EX0 IEN1 A9H 中断允许控制寄存器 EPLT IPL0 B8H 中断优先权控制寄存器 0 低位字 PADCL PT2L PSL PT1L PX1L PT0L PX0L IPH0 B4H 中断优先权控制寄存器 0 高位字 PADCH PT2H PSH PT1H PX1H PT0H PX0H IPL1 B9H 中断优先权控制寄存器 1 低位字 PPLTL IPH1 B5H 中断优先权控制寄存器 1 高位字 PPLTH Table 6.7 端口 SFRs 符号 地址 名称 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 P0 80H 8 位端口 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P1 90H 8 位端口 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P0CR E1H 端口 0 输入 / 输出方向控制 P0CR.7 P0CR.6 P0CR.5 P0CR.4 P0CR.3 P0CR.2 P0CR.1 P0CR.0 P1CR E2H 端口 1 输入 / 输出方向控制 P1CR.7 P1CR.6 P1CR.5 P1CR.4 P1CR.3 P1CR.2 P1CR.1 P1CR.0 P0PCR E9H 端口 0 内部上拉允许 P0PCR.7 P0PCR.6 P0PCR.5 P0PCR.4 P0PCR.3 P0PCR.2 P0PCR.1 P0PCR.0 P1PCR EAH 端口 1 内部上拉允许 P1PCR.7 P1PCR.6 P1PCR.5 P1PCR.4 P1PCR.3 P1PCR.2 P1PCR.1 P1PCR.0 8

9 Table 6.8 定时器与外部中断 SFRs 符号 地址 名称 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 TCON 88H 定时器 / 计数器 0 和 1 控制寄存器 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TMOD 89H 定时器 / 计数器 0 和 1 模式寄存器 GATE1 C/T M11 M10 GATE0 C/T M01 M00 TL0 8AH 定时器 / 计数器 0 低位字节 TL0.7 TL0.6 TL0.5 TL0.4 TL0.3 TL0.2 TL0.1 TL0.0 TH0 8CH 定时器 / 计数器 0 高位字节 TH0.7 TH0.6 TH0.5 TH0.4 TH0.3 TH0.2 TH0.1 TH0.0 TL1 8BH 定时器 / 计数器 1 低位字节 TL1.7 TL1.6 TL1.5 TL1.4 TL1.3 TL1.2 TL1.1 TL1.1 TH1 8DH 定时器 / 计数器 1 高位字节 TH1.7 TH1.6 TH1.5 TH1.4 TH1.3 TH1.2 TH1.1 TH1.1 T2CON C8H 定时器 / 计数器 2 控制寄存器 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T CP/R L T2MOD C9H 定时器 / 计数器 2 模式寄存器 T2OE DCEN RCAP2L CAH 定时器 / 计数器 2 重载 / 截获低位字节 RCAP2L.7 RCAP2L.6 RCAP2L.5 RCAP2L.4 RCAP2L.3 RCAP2L.2 RCAP2L.1 RCAP2L.0 RCAP2H CBH 定时器 / 计数器 2 重载 / 截获高位字节 RCAP2H.7 RCAP2H.6 RCAP2H.5 RCAP2H.4 RCAP2H.3 RCAP2H.2 RCAP2H.1 RCAP2H.0 TL2 CCH 定时器 / 计数器 2 低位字节 TL2.7 TL2.6 TL2.5 TL2.4 TL2.3 TL2.2 TL2.1 TL2.0 TH2 CDH 定时器 / 计数器 2 高位字节 TH2.7 TH2.6 TH2.5 TH2.4 TH2.3 TH2.2 TH2.1 TH2.0 TCON1 CEH 定时器 / 计数器 0 和 1 控制寄存器 TC1 TC0 Table 6.9 增强型异步串行口 SFRs 符号 地址 名称 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 SCON 98H 串行控制寄存器 SM0/FE SM1/RXOV SM2/TXCOL REN TB8 RB8 TI RI SBUF 99H 串行数据缓冲器 SBUF.7 SBUF.6 SBUF.5 SBUF.4 SBUF.3 SBUF.2 SBUF.1 SBUF.0 SADDR 9AH 从属地址 SADDR.7 SADDR.6 SADDR.5 SADDR.4 SADDR.3 SADDR.2 SADDR.1 SADDR.0 SADEN 9BH 从属地址屏蔽 SADEN.7 SADEN.6 SADEN.5 SADEN.4 SADEN.3 SADEN.2 SADEN.1 SADEN.0 Table 6.10 模数转换器 SFRs 符号 地址 名称 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 ADCON 93H ADC 控制寄存器 ADON ADCIF EC - - SCH1 SCH0 GO/D ---- Ō NĒ --- ADT 94H ADC 定时控制 TADC2 TADC1 TADC0 - TS3 TS2 TS1 TS0 ADCH 95H ADC 通道配置 CH3 CH2 CH1 ADDL 96H ADC 数据低位字节 A1 A0 ADDH 97H ADC 数据高位字节 A9 A8 A7 A6 A5 A4 A3 A2 9

10 Table 6.11 载波通信 SFRs 符号 地址 名称 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 PLSTAT D8H PLT 状态寄存器 TXINT FEC_DONE CFD_DONE - RXNFA RXFA RXPD RXINT PLCON D9H PLT 控制寄存器 PLTEN CRCEN FECEN FACPR RSSIEN SRST - TRC PLADR1 DAH PLT 数据缓冲器地址 ADR1.4 ADR1.3 ADR1.2 ADR1.1 ADR1.0 PLBUF DBH PLT 数据缓冲器数据 BUF.7 BUF.6 BUF.5 BUF.4 BUF.3 BUF.2 BUF.1 BUF.0 PLADR2 DCH PLT 配置寄存器地址 ADR2.5 ADR2.4 ADR2.3 ADR2.2 ADR2.1 ADR2.0 PLREG DDH PLT 配置寄存器数据 REG.7 REG.6 REG.5 REG.4 REG.3 REG.2 REG.1 REG.0 PLOCK DFH PLT 配置寄存器锁定 LOCK.7 LOCK.6 LOCK.5 LOCK.4 LOCK.3 LOCK.2 LOCK.1 LOCK.0 注意 :- : 保留位, 读为 0 10

11 SFR 映像图 可按位寻址 不可按位寻址 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F F8h IB_OFFSET IB_DATA FFh F0h B AUXC IB_CON1 IB_CON2 IB_CON3 IB_CON4 IB_CON5 XPAGE F7h E8h P0PCR P1PCR EFh E0h ACC P0CR P1CR E7h D8h PLSTAT PLCON PLADR1 PLBUF PLADR2 PLREG PLOCK DFh D0h PSW D7h C8h T2CON T2MOD RCAP2L RCAP2H TL2 TH2 TCON1 CFh C0h C7h B8h IPL0 IPL1 BFh B0h RSTSTAT CLKCON IPH0 IPH1 B7h A8h IEN0 IEN1 AFh A0h FLASHCON A7h 98h SCON SBUF SADDR SADEN 9Fh 90h P1 ADCON ADT ADCH ADDL ADDH 97h 88h TCON TMOD TL0 TL1 TH0 TH1 SUSLO 8Fh 80h P0 SP DPL DPH DPL1 DPH1 INSCON PCON 87h 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F 注意 : 未使用的 SFR 地址禁止读写 11

12 7. 标准功能 7.1 CPU CPU 内核特殊功能寄存器 特性 CPU 内核寄存器 :ACC,B,PSW,SP,DPL,DPH 累加器 B 寄存器 累加器 ACC 是一个常用的专用寄存器, 指令系统中采用 A 作为累加器的助记符 在乘除法指令中, 会用到 B 寄存器 在其它指令中,B 寄存器可作为缓存器来使用 栈指针 (SP SP) 栈指针 SP 是一个 8 位专用寄存器, 在执行 PUSH 各种子程序调用 中断响应等指令时,SP 先加 1, 再将数据压栈 ; 执行 POP RET RETI 等指令时, 数据退出堆栈后 SP 再减 1 堆栈栈顶可以是片上内部 RAM(00H-FFH) 的任意地址, 系统复位后,SP 初始化为 07H, 使得堆栈事实上由 08H 地址开始 程序状态字 (PSW PSW) 寄存器 程序状态字 (PSW) 寄存器包含了程序状态信息 Table 7.1 PSW 寄存器 D0H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PSW CY AC F0 RS1 RS0 OV F1 P 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 数据指针 (DPTR DPTR) CY 6 AC 5 F0 4-3 RS[1:0] 2 OV 1 F1 0 P 进位标志位 0: 算术或逻辑运算中, 没有进位或借位发生 1: 算术或逻辑运算中, 有进位或借位发生 辅助进位标志位 0: 算数逻辑运算中, 没有辅助进位或借位发生 1: 算数逻辑运算中, 有辅助进位或借位发生 F0 标志位用户自定义标志位 R0-R7 寄存器页选择位 00: 页 0( 映射到 00H-07H) 01: 页 1( 映射到 08H-0FH) 10: 页 2( 映射到 10H-17H) 11: 页 3( 映射到 18H-1FH) 溢出标志位 0: 没有溢出发生 1: 有溢出发生 F1 标志位用户自定义标志位 奇偶校验位 0: 累加器 A 中值为 1 的位数为偶数 1: 累加器 A 中值为 1 的位数为奇数 数据指针 DPTR 是一个 16 位专用寄存器, 其高位字节寄存器用 DPH 表示, 低位字节寄存器用 DPL 表示 它们既可以作为一个 16 位寄存器 DPTR 来处理, 也可以作为 2 个独立的 8 位寄存器 DPH 和 DPL 来处理 12

13 7.1.2 CPU 增强内核特殊功能寄存器 特性 扩展的 'MUL' 和 'DIV' 指令 :16 位 *8 位,16 位 /8 位 双数据指针 CPU 增强内核寄存器 :AUXC,DPL1,DPH1,INSCON 01 扩展了 'MUL' 和 'DIV' 的指令 使用一个新寄存器 -AUXC 寄存器保存运算数据的高 8 位, 以实现 16 位运算 在 16 位乘除法指令中, 会用到 AUXC 寄存器, 在其它指令中,AUXC 寄存器可作为缓存器来使用 CPU 在复位后进入标准模式,'MUL' 和 'DIV' 的指令操作和标准 8051 指令操作一致 当 INSCON 寄存器的相应位置 1 后,'MUL' 和 'DIV' 指令的 16 位操作功能被打开 MUL DIV 双数据指针 使用双数据指针能加速数据存储移动 标准数据指针被命名为 DPTR 而新型数据指针命名为 DPTR1 数据指针 DPTR1 与 DPTR 类似, 是一个 16 位专用寄存器, 其高位字节寄存器用 DPH1 表示, 低位字节寄存器用 DPL1 表示 它们既可以作为一个 16 位寄存器 DPTR1 来处理, 也可以作为 2 个独立的 8 位寄存器 DPH1 和 DPL1 来处理 通过对 INSCON 寄存器中的 DPS 位置 1 或清 0 选择两个数据指针中的一个 所有读取或操作 DPTR 的相关指令将会选择最近一次选择的数据指针 寄存器 结果操作 A B AUXC INSCON.2 = 0;8 位模式 (A)*(B) 低位字节高位字节 --- INSCON.2 = 1;16 位模式 (AUXC A)*(B) 低位字节中位字节高位字节 INSCON.3 = 0;8 位模式 (A)/(B) 商低位字节余数 --- INSCON.3 = 1;16 位模式 (AUXC A)/(B) 商低位字节余数商高位字节 Table 7.2 数据指针选择寄存器 86H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 INSCON DIV MUL - DPS 读 / 写 读 / 写读 / 写 - 读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) DIV 2 MUL 0 DPS 16 位 /8 位除选择器 0:8 位除 1:16 位除 16 位 /8 位乘选择器 0:8 位乘 1:16 位乘 数据指针选择器 0: 数据指针 1: 数据指针 1 13

14 7.2 RAM 特性 01 为数据存储提供了内部 RAM 和外部 RAM 下列为内存空间分配: 低位 128 字节的 RAM( 地址从 00H 到 7FH) 可直接或间接寻址 高位 128 字节的 RAM( 地址从 80H 到 FFH) 只能间接寻址 特殊功能寄存器 (SFR, 地址从 80H 到 FFH) 只能直接寻址 外部 RAM 字节可通过 MOVX 指令间接寻址 高位 128 字节的 RAM 占用的地址空间和 SFR 相同, 但在物理上与 SFR 的空间是分离的 当一个指令访问高于地址 7FH 的内部位置时,CPU 可以根据指令的寻址方式来区分是访问高位 128 字节数据 RAM 还是访问 SFR 注意 : 未使用的 SFR 地址禁止读写 01 提供了 256 字节内部 RAM 和 512 字节外部 RAM, 支持高级语言 内部和外部 RAM 配置如下 : Up to 1FFh 0FFh 0FFh Extenal RAM Upper 128 bytes Internal Ram indirect accesses Special Function Register direct accesses 80h 80h 7Fh Lower 128 bytes Internal Ram direct or indirect accesses 内部和外部 RAM 地址 01 支持传统的访问外部 RAM 方法 使用 MOVX A,@Ri 或 MOVX@Ri,A 来访问外部低位 256 字节 RAM; 用 MOVX 或 MOVX@DPTR,A 来访问外部 512 字节 RAM 用户也能用 XPAGE 寄存器来访问外部 RAM, 使用 MOVX A,@Ri 或 MOVX@Ri,A 指令即可, 此时用 XPAGE 来表示高于 256 字节的 RAM 地址 在 Flash SSP 模式下,XPAGE 也能用作分段选择器 ( 详见 SSP 章节 ) 寄存器 Table 7.3 数据存储页寄存器 F7H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 XPAGE XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) XPAGE[7:0] RAM 页选择器,512 字节 RAM 只分成 2 页 14

15 7.3 Flash 程序存储器 特性 Flash 内存包括 16 X 1KB 区块, 总共 16KB 在工作电压范围内都能进行编程和擦除操作 在线编程 (ICP) 操作支持写入 读取和擦除操作 快速整体 / 扇区擦除和编程 编程 / 擦除次数 : 至少 次 数据保存年限 : 至少 10 年 低功耗 01 为存储程序代码内置 16K 可编程 Flash, 可以通过在线编程 (ICP) 模式和扇区自编程 (SSP) 模式对 Flash 存储器操作 在 ICP( 在线编程 ) 模式中, 程序能操作所有 Flash, 例如擦除或写入 Flash 的读取或写入操作以字节为单位, 但擦除只能以扇区 (1K) 为单位, 或者整体擦除 在 ICP 模式中, 扇区擦除操作能擦除任何区块 在自编程模式 (SSP) 中, 包含擦除程序代码的扇区不能擦除 在 ICP 模式下, 还可以整体擦除, 这个操作会擦除整个 Flash 存储器 注意 :01 不支持在系统编程 (ISP) 功能 ICP 模式下的 Flash 操作 ICP 模式即线上编程模式, 即可以在 CPU 焊在用户板上以后编程 ICP 模式下, 用户系统必须关机后编程器才能通过 ICP 编程接口刷新 Flash 内存 ICP 编程接口包括 6 个引脚 (V DD,GND,TCK,TDI,TMS,TDO) 编程器使用 4 个 JTAG 引脚 (TDO,TDI,TCK,TMS) 进入编程模式 只有将特定波形输入 4 个引脚后,CPU 才能进入编程模式 如需详细说明请参考 Flash 编程器用户指南 ICP 模式支持以下操作 : (1) 代码保护控制模式编程 01 的代码保护功能为用户代码提供了高性能的安全措施 每个分区有两种模式可用 代码保护模式 0: 允许 / 禁止任何编程器的写入 / 读取操作 ( 不包括整体擦除 ) 代码保护模式 1: 允许 / 禁止在其它分区中通过 MOVC 指令进行读取操作, 或通过 SSP 功能进行擦除 / 写入操作 用户必须应用 Flash 编程器设置相应的保护位, 以进入所需的保护模式 (2) 整体擦除 无论代码保护控制模式的状态如何, 整体擦除操作都将会擦除所有编程代码, 代码选项, 代码保护位和自定义 ID 码的内容 (Flash 编程器为用户提供自定义 ID 码设置功能以区别他们的产品 ) 在用户程序区, 整体擦除只能由 Flash 编程器操作, 不能通过程序指令完成 (3) 扇区擦除 扇区擦除操作将会擦除所选扇区中内容 用户程序和 Flash 编程器都能执行该操作 若需用户程序执行该操作, 必须禁止所选扇区的代码保护控制模式 1 若需编程器执行该操作, 必须禁止所选扇区的代码保护控制模式 0 注意 :SSP 程序所在扇区自身无法通过用户程序执行扇区擦除功能 (4) 写 / 读代码读 / 写代码操作可以将代码 数据从 Flash 内存中读出或写入 Flash 内存 编程器或用户程序都能执行该操作 若需用户程序执行该操作, 必须禁止所选扇区的代码保护控制模式 1 不管安全位设置与否, 用户程序都能读 / 写程序自身所在扇区 若需编程器执行该操作, 必须禁止所选扇区的代码保护控制模式 0 编程用时钟控制寄存器 操作 ICP SSP 代码保护支持不支持 扇区擦除支持 ( 无安全位 ) 支持 ( 无安全位 ) 整体擦除支持不支持 写 / 读代码支持 ( 无安全位 ) 支持 ( 无安全位或自身扇区 ) 15

16 在 ICP 模式中, 通过 7 线接口编程器能完成所有 Flash 操作 因为编程信号非常灵敏, 所以使用编程器编程时用户需要先用 5 个跳线将编程引脚 (VCC,TCK,TDI,TMS,TDO) 从应用电路中分离出来 如下图所示 01 VCC TCK TDI Flash Programmer TMS To Application Circuit TDO RST GND Jumper 当采用 ICP 模式进行操作时, 建议按照如下步骤进行操作 : (1) 在开始编程前断开跳线 (jumper), 从应用电路中分离编程引脚 ; (2) 将芯片编程引脚连接至编程器编程接口, 开始编程 ; (3) 编程结束后断开编程器接口, 连接跳线恢复应用电路 16

17 7.4 扇区自编程 (SSP SSP) 功能 01 支持 SSP 操作 如果所选扇区未被加密, 利用 SSP 操作, 用户代码可以对程序存储区和客户信息块区 / 类 EEPROM 块区进行擦除 编程操作 一旦某扇区或块区被编程, 则在该扇区或块区被擦除之前不能被再次编程 01 内建一个复杂控制流程以避免误入 SSP 模式导致代码被误修改 为进入 SSP 模式,IB_CON2-5 必须满足特定条件 若 IB_CON2-5 不满足特定条件, 则无法进入 SSP 模式 寄存器 擦除 / 编程用扇区选择和编程用地址偏移量寄存器 此寄存器用来选择待擦除或者待编程扇区的区号, 配合 IB_OFFSET 寄存器来表示待编程字节在扇区内的地址偏移量 对于程序存储区, 一个扇区为 1024 字节, 寄存器定义如下 : Table 7.4 擦除 / 编程用扇区选择和地址偏移寄存器 F7H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 XPAGE XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) Table 7.5 编程用地址偏移寄存器 XPAGE[1:0] 和 IB_OFFSET[7:0] 共 10 位, 可以表示 1 个程序存储扇区内全部 1024 个字节的偏移量 对于客户信息块区 / 类 EEPROM 块区, 一个块区为 256 字节, 寄存器定义如下 : Table 7.6 擦除 / 编程用扇区选择寄存器 XPAGE[7:6 7:6] 无效位, 复位为 XPAGE[5:2] 被擦除 / 编程的存储单元扇区号,0000 代表扇区 0, 依此类推, 共 16 个扇区 1-0 XPAGE[1:0] 被擦除 / 编程的存储单元高 2 位地址 FBH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_OFFSET IB_OFF SET.7 IB_OFF SET.6 IB_OFF SET.5 IB_OFF SET.4 IB_OFF SET.3 IB_OFF SET.2 IB_OFF SET.1 IB_OFF SET.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) IB_OFFSET[7:0] 被编程的存储单元低 8 位地址 F7H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 XPAGE XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) XPAGE[7:3 7:3] 在擦除 / 编程块区时无意义 3-0 XPAGE[2:0 2:0] 被擦除 / 编程的块区号,000 代表块 0, 依此类推, 共 8 个块 类 EEPROM 块区对应 XPAGE[2:0] 为 的块, 每块 256 bytes, 共 2048 bytes 空间 类 EEPROM 块区的访问可通过指令 MOVC A,@A+DPTR 或 MOVC A,@A+PC 实现, 注意 : 需要将 FAC 位 (FLASHCON.0) 置 1 17

18 Table 7.7 编程用地址偏移寄存器 IB_OFFSET[7:0] 共 8 位, 可以表示 1 个块区内全部 256 个字节的偏移量 Table 7.8 编程用数据寄存器 Table 7.9 操作类型选择寄存器 Table 7.10 SSP 流程控制寄存器 1 FBH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_OFFSET IB_OFF SET.7 IB_OFF SET.6 IB_OFF SET.5 IB_OFF SET.4 IB_OFF SET.3 IB_OFF SET.2 IB_OFF SET.1 IB_OFF SET.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) IB_OFFSET OFFSET[7 [7:0] 被擦除 / 编程的块单元地址 FCH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_DATA IB_DATA.7 IB_DATA.6 IB_DATA.5 IB_DATA.4 IB_DATA.3 IB_DATA.2 IB_DATA.1 IB_DATA.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) IB_DATA DATA[7 [7:0] 待编程数据 F2H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_CON1 IB_CON1.7 IB_CON1.6 IB_CON1.5 IB_CON1.4 IB_CON1.3 IB_CON1.2 IB_CON1.1 IB_CON1.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) IB_CON1[7:0] 操作类型选择 E6H: 扇区擦除 ( 擦除时间 < 40ms) 6EH: 编程存储单元 ( 编程时间 < 50µs) AAH: 整体擦除 ( 注意 : 在整体擦除操作中将忽略 FAC 位, 详见 FLASHCON 寄存器 ) 此命令仅在引导扇区内有效 F3H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_CON IB_CON2.3 IB_CON2.2 IB_CON2.1 IB_CON2.0 读 / 写 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) IB_CON2[3:0] 必须为 05H, 否则 Flash 编程将会终止 18

19 Table 7.11 SSP 流程控制寄存器 2 Table 7.82 SSP 流程控制寄存器 3 Table 7.13 SSP 流程控制寄存器 4 Table 7.14 软件复位标志和指令访问控制寄存器 F4H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_CON IB_CON3.3 IB_CON3.2 IB_CON3.1 IB_CON3.0 读 / 写 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) IB_CON3[3:0] 必须为 0AH, 否则 Flash 编程将会终止 F5H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_CON IB_CON4.3 IB_CON4.2 IB_CON4.1 IB_CON4.0 读 / 写 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) IB_CON4[3:0] 必须为 09H, 否则 Flash 编程将会终止 F6H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_CON IB_CON5.3 IB_CON5.2 IB_CON5.1 IB_CON5.0 读 / 写 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) IB_CON5[3:0] 必须为 06H, 否则 Flash 编程将会终止 F7H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 FLASHCON FAC 读 / 写 读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) FAC 执行区域选择位 0:MOVC 指令或 SSP 操作执行区在程序存储区 1:MOVC 指令或 SSP 操作执行区在客户信息块区 / 类 EEPROM 块区 19

20 7.4.2 SSP 编程注意事项 为确保顺利完成 SSP 编程, 用户软件应该遵循以下步骤设置 : (1) 用于代码 / 数据编程 : 1. 关闭中断 ; 2. 如果待编程地址在客户信息块区 / 类 EEPROM 块区, 将 FAC 位 (FLASHCON.0) 置 1; 如果待编程地址在程序存储区, 将 FAC 位 (FLASHCON.0) 清 0; 3. 按相应的待编程扇区号或块区号设置 XPAGE IB_OFFSET; 4. 按编程需要, 设置 IB_DATA; 5. 按照顺序设置 IB_CON1-5; 6. 添加 4 个 NOP 指令 ; 7. 开始编程,CPU 将进入 IDLE 模式 ; 编程完成后自动退出 IDLE 模式 ; 8. 如果需要继续写入数据, 跳转至第 3 步 ; 9. XPAGE 寄存器清 0; 恢复中断设置 ; 根据后续程序需要置 1 或者清 0 FAC 位 (FLASHCON.0) (2) 用于扇区或块区擦除 : 1. 关闭中断 ; 2. 如果待编程地址在客户信息块区 / 类 EEPROM 块区, 将 FAC 位 (FLASHCON.0) 置 1; 如果待编程地址在程序存储区, 将 FAC 位 (FLASHCON.0) 清 0 3. 按相应的扇区或块区设置 XPAGE; 4. 按照顺序设置 IB_CON1-5; 5. 添加 4 个 NOP 指令 ; 6. 开始擦除,CPU 将进入 IDLE 模式 ; 擦除完成后自动退出 IDLE 模式 ; 7. 如果需要继续擦除扇区或块区, 跳转至第 3 步 ; 8. XPAGE 寄存器清 0, 恢复中断设置 ; 根据后续程序需要置 1 或者清 0 FAC 位 (FLASHCON.0) (3) 用于整体擦除 : 整体擦除操作与扇区擦除操作类似 不同之处在于 : 1. 整体擦除操作只能在引导扇区内进行 ; 2. FAC 位 (FLASHCON.0) 的作用将被忽略 注 :01 不支持 ISP, 因此无法实现基于 SSP 的整体擦除操作 注意 : 数据访问可通过指令 MOVC A,@A+DPTR 或 MOVC A,@A+PC 实现 20

21 7.5 系统时钟和振荡器 特性 仅支持 1 种振荡器类型 : 晶体谐振器 支持外部时钟输入 内建系统时钟分频器 内建 PLT 模块时钟分频器 时钟定义 01 几个内部时钟定义如下 : OSCCLK: 晶体谐振器的时钟 f OSC 定义为 OSCCLK 的频率 t OSC 定义为 OSCCLK 的周期 SYSCLK: 系统时钟, 系统频率分频器的输出时钟 这个时钟为 CPU 指令周期的时钟 f SYS 定义为 SYSCLK 的频率 t SYS 定义为 SYSCLK 的周期 PLTCLK:PLT 模块时钟 与系统时钟共享时钟源, 这个时钟为 PLT 模块工作时钟 f PLT 定义为 PLTCLK 的频率 t PLT 定义为 PLTCLK 的周期 JTAG Oscillator Clock OSCCLK TCK CLKPS[1:0] PLCLKPS SYSCLK PLTCLK 概述 01 仅支持 1 种振荡器类型 :8M-16M 晶体谐振器 由振荡器产生的基本时钟脉冲作为系统时钟提供给 CPU 和片上外围模块 ( 包括 PLT 模块 ) 寄存器 Table 7.15 系统时钟控制寄存器 B2H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 CLKCON - CLKPS1 CLKPS PLCLKPS 读 / 写 - 读 / 写读 / 写 读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) CLKPS[1:0] 0 PLCLKPS 系统时钟预分频器 00:f SYS = f OSCS ( 默认 ) 01:f SYS = f OSCS /2 10:f SYS = f OSCS /4 11:f SYS = f OSCS /12 PLT 模块时钟分频器 0:f PLT = f OSCS ( 默认 ) 1:f PLT = f OSCS /2 21

22 7.5.5 振荡器类型晶体谐振器 :8M - 16MHz C1 OSCI Crystal OSCO C 谐振器负载电容选择 晶体谐振器 频率 C1 C2 8M-16M 8-15pF 8-15pF 推荐型号 HC-49U/S 8.000MHz HC-49U/S MHz HC-49U/S MHz 49S-8.000M-F16E 49S M-F16E 49S M-F16E 生产厂 威克创通讯器材有限公司 深圳东光晶博电子有限公司 注意 : (1) 表中负载电容为设计参考数据! (2) 以上电容值可通过谐振器基本的起振和运行测试, 并非最优值 (3) 请注意印制板上的杂散电容, 用户应在超过应用电压和温度的条件下测试谐振器的性能 在应用陶瓷谐振器 / 晶体谐振器之前, 用户需向谐振器生产厂要求相关应用参数以获得最佳性能 请登陆 以取得更多的推荐谐振器生产厂 22

23 7.6 系统电源 01 分模拟和数字两路电源, 分别从 V DD 和 AV DD 输入 其中 V DD 电压范围 3.0V - 5.5V,AV DD 电压范围 3.0V - 3.6V 在 V DD 使用 5V 电源供电时, 可使用内部稳压源产生 3.3V 电源提供给 AV DD, 无需外接 3.3V 电源 内部稳压源通过客户代码 OP_REG33 开启, 开启后 AV DD 需外接 47µF 电解电容至 AGND, 具体应用可参考应用电路 系统供电选项 OP_REG33 内部 3.3V 稳压源 V DD DD 引脚 AV AV DD 引脚 0( 默认 ) 禁止接 3V - 5.5V 电源供电接 3V - 3.6V 电源供电 1 使能接 4V - 5.5V 电源供电接 47µF 电解电容到 AGND 23

24 7.7 I/O 端口 特性 2 组 8 位双向 I/O 端口 I/O 端口可与其它功能共享 01 提供 2 组 8 位位可编程双向 I/O 端口 端口数据在寄存器 Px 中 端口控制寄存器 (PxCRy) 控制端口是作为输入或者输出 当端口作为输入时, 每个 I/O 端口带有由 PxPCRy 控制的内部上拉电阻 (x = 0-1,y = 0-7) 01 的有些 I/O 引脚能与选择功能共享 当所有功能都允许时, 在 CPU 中存在优先权以避免功能冲突 ( 详见端口共享章节 ) 寄存器 Table 7.16 端口控制寄存器 E1H, E2H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 P0CR (E1H E1H) P0CR.7 P0CR.6 P0CR.5 P0CR.4 P0CR.3 P0CR.2 P0CR.1 P0CR.0 P1CR (E2H E2H) P1CR.7 P1CR.6 P1CR.5 P1CR.4 P1CR.3 P1CR.2 P1CR.1 P1CR.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) Table 7.17 端口上拉电阻控制寄存器 Table 7.18 端口数据寄存器 PxCRy x = , y = 0-7 端口输入 / 输出控制寄存器 0: 输入模式 1: 输出模式 E9H, EAH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 P0PCR (E9H E9H) P0PCR.7 P0PCR.6 P0PCR.5 P0PCR.4 P0PCR.3 P0PCR.2 P0PCR.1 P0PCR.0 P1PCR (EAH EAH) P1PCR.7 P1PCR.6 P1PCR.5 P1PCR.4 P1PCR.3 P1PCR.2 P1PCR.1 P1PCR.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN /PIN) PxPCRy x = 0-1, y = 0-7 输入端口内部上拉电阻控制 0: 内部上拉电阻关闭 1: 内部上拉电阻开启 80H, 90H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 P0 (80H 80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P1 (90H 90H) P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) Px.y x = , y = 0-7 端口数据寄存器 24

25 7.7.3 端口模块图 SFEN PxPCRy Output mode Input mode PxCRy V DD V DD Pull high 0 = ON 1 = OFF Write I/O Pad Data Bus Data Register GND Read Port Data Register Read Read Data Register/Pad Selection 0: From Pad 1: From data register Second Function Read Port Pad 注意 : (1) 输入端口读操作直接读引脚电平 (2) 输出端口读操作的输入源有两种, 一种是从端口数据寄存器读取, 另一种是直接读引脚电平 (3 ) 用读取指令来区分 : 读 - 改 - 写指令是读寄存器, 而其它指令读引脚电平 不管端口是否共用为其他功能, 对端口写操作都是针对端口数据寄存器 25

26 7.7.4 端口共享 16 个双向 I/O 端口也能共享作为第二功能, 默认功能和第二功能不会同时使能 当允许端口复用为其它功能时, 用户可以修改 PxCR PxPCR(x = 0-1), 但在复用的其它功能被禁止前, 这些操作不会影响端口状态 当允许端口复用为其它功能时, 任何对端口的读写操作只会影响到数据寄存器的值, 端口引脚值保持不变, 直到复用的其它功能关闭 如果第二功能允许模拟模块例如 ADC, 不论实际引脚的电平或 I/O 状态, 只能读回 0 PORT0: - FILI(P0.0):PLT 模块限幅放大器反馈路径输入 - FILO(P0.1):PLT 模块限幅放大器反馈路径输出 - VINCOM(P0.2):PLT 模块副通道接收信号输入 - AN1(P0.3):ADC 输入通道 1 - AN2(P0.4):ADC 输入通道 2 - AN3(P0.5):ADC 输入通道 3 - TPO(P0.6): 发送信号数字脉冲输出 - RPO(P0.7): 接收信号数字脉冲输出 Table 7.19 PORT0 共享列表 引脚编号功能允许位 P0.0 PLCON 寄存器中 PLTEN 和 RSSIEN 位均为 0 FILI PLCON 寄存器中 PLTEN 位置为 1 或 RSSIEN 位置为 1 P0.1 PLCON 寄存器中 PLTEN 和 RSSIEN 位均为 0 FILO PLCON 寄存器中 PLTEN 位置为 1 或 RSSIEN 位置为 1 P0.2 PLCON 寄存器中 PLTEN 位为 0 或 PLT 内部寄存器 UMR3 中 AFECH 位为 0 VINCOM PLCON 寄存器中 PLTEN 位置为 1 且 PLT 内部寄存器 UMR3 中 AFECH 位置为 1 P0.3 ADCH 寄存器中的 CH1 位为 0 AN1 ADCH 寄存器中的 CH1 位置为 1 P0.4 ADCH 寄存器中的 CH2 位为 0 AN2 ADCH 寄存器中的 CH2 位置为 1 P0.5 ADCH 寄存器中的 CH3 位为 0 AN3 ADCH 寄存器中的 CH3 位置为 1 P0.6 PLT UMR1 寄存器中的 PULSE_OP 位为 0 TPO PLT UMR1 寄存器中的 PULSE_OP 位为 1 P0.7 PLT UMR1 寄存器中的 LIMIT_OP 位为 0 RPO PLT UMR1 寄存器中的 PULSE_OP 位为 1 26

27 PORT ORT1: - RXD(P1.0):EUART 数据输入 - TXD(P1.1):EUART 数据输出 - INT0(P1.2): 外部中断 0 输入 - T0(P1.3): 定时器 0 外部输入或比较输出 - INT1(P1.4): 外部中断 1 输入 - T1(P1.5): 定时器 1 外部输入或比较输出 - T2(P1.6): 定时器 2 外部输入 / 波特率时钟输出 - T2EX(P1.7): 定时器 2 重载 / 捕捉 / 方向控制输入 Table 7.20 PORT1 共享列表 引脚编号功能允许位 P1.0 SCON 寄存器中 REN 位为 0 RXD SCON 寄存器中 REN 位置为 1 P1.1 不写 SBUF 寄存器 TXD 写入 SBUF 寄存器 P1.2 IEN0 寄存器的 EX0 位为 0, 或者 Port1.2 为输出状态 INT0 IEN0 寄存器的 EX0 位置 1, 并且 Port1.2 为输入状态 ( 上拉由软件设置 ) P1.3 TCON 寄存器的 TR0 位为 0 或者 TMOD 寄存器的 C/T 位为 0 T0 TCON 寄存器的 TR0 位和 TMOD 寄存器的 C/T 位都置 1 P1.4 IEN0 寄存器的 EX1 位为 0, 或者 Port1.4 为输出状态 INT1 IEN0 寄存器的 EX1 位置 1, 并且 Port1.4 为输入状态 ( 上拉由软件设置 ) P1.5 TCON 寄存器的 TR1 位为 0 或者 TMOD 寄存器的 C/T 位为 0 T1 TCON 寄存器的 TR1 位和 TMOD 寄存器的 C/T 位都置 1( 自动上拉 ) P1.6 TCON 寄存器的 TR2 位为 0 或者 TMOD 寄存器的 C/T 位为 0 T2 TCON 寄存器的 TR2 位和 TMOD 寄存器的 C/T 位都置 1( 自动上拉 ) P1.7 TCON 寄存器的 TR2 位为 0 或者 TMOD 寄存器的 C/T 位为 0, 或者 T2MOD 寄存器的 EXEN2 位为 0 T2EX TCON 寄存器的 TR2 位,TMOD 寄存器的 C/T 位,T2MOD 寄存器的 EXEN2 位都置为 1 27

28 7.8 定时器 特性 01 有 3 个通用定时器 ( 定时器 0,1,2) 定时器 0 兼容标准的 8051 定时器 1 兼容标准的 8051 定时器 2 兼容标准的 8052, 且有递增递减计数和可编程输出功能 定时器 0/1 增加了比较输出功能 定时器 0 和定时器 1 每个定时的两个数据寄存器 (THx & TLx(x = 0,1)) 可作为一个 16 位寄存器来访问 它们由寄存器 TCON 和 TMOD 控制 IEN0 寄存器的 ET0 和 ET1 位置 1 能允许定时器 0 和定时器 1 中断 ( 详见中断章节 ) 定时器 x 的模式 (x = 0,1) 通过计数器 / 定时器模式寄存器 (TMOD) 的模式选择位 Mx1-Mx0, 选择定时器工作模式 模式 0:13 位计数器 / 定时器 在模式 0 中, 定时器 x 为 13 位计数器 / 定时器 THx 寄存器存放 13 位计数器 / 定时器的高 8 位,TLx 存放低 5 位 (TLx.4-TLx.0) TLx 的高三位 (TLx.7-TLx.5) 是不确定的, 在读取时应该被忽略 当 13 位定时器寄存器递增, 溢出时, 系统置起定时器溢出标 志 TFx 如果定时器 x 中断被允许, 将会产生一个中断 C/Tx 位选择计数器 / 定时器的时钟源 如果 C/Tx = 1, 定时器 x 输入引脚 (Tx) 的电平从高到低跳变, 使定时器 x 数据寄存器加 1 如果 C/Tx 定时器 x 的时钟源 当 GATEx = 0 或 GATEx = 1 且输入信号 INTx = 0, 选择系统时钟为 有效时,TRx 置 1 打开定时器 GATEx 置 1 允许定时器由外部输入信号 INTx 便于测量 INTx的正脉冲宽度 TRx 位置 1 不强行复位定时器, 这意味着如果 TRx 置 1, 定时器寄存器将从上次 TRx 清 0 时的值开始计数 所以在允许定时器之前, 应该设定定时器寄存器的初始值 当作为定时器应用时, 可配置寄存器 TCON1 中的 TC0/1 位使定时器 0 溢出时 T0/T1 脚自动翻转 如果 TC0/1 被置 1,T0/T1 引脚自动设置为输出 控制, System Clock Tx /INTx GATEx = 0 C/Tx = 1 + TLx (5bits) 0:Switch Off 1:Switch On THx (8bits) Overflow from 1FFFH to 00H TFx Overflow Flag Interrupt Request C/Tx=0 TCx=1 Tx TRx & The Block Diagram of mode0 of Timerx (x=0,1) 28

29 模式 1:16 16 位计数器 / 定时器除了使用 16 位定时器 / 计数器之外, 模式 1 的运行与模式 0 一致 打开和配置计数器 / 定时器也如同模式 0 System Clock Tx /INTx GATEx = 0 C/Tx = 1 + & TLx (8bits) 0:Switch Off 1:Switch On THx (8bits) Overflow from FFFFH to 00H TFx Overflow Flag C/Tx=0 TCx=1 Interrupt Request Tx TRx The Block Diagram of mode1 of Timerx (x=0,1) 模式 2:8 位自动重载计数器 / 定时器 模式 2 中, 定时器 x 是 8 位自动重载计数器 / 定时器 TLx 存放计数值,THx 存放重载值 当在 TLx 中的计数器溢出至 0x00 时, 置起定时器溢出标志 TFx, 寄存器 THx 的值被重加载寄存器 TLx 中 如果定时器中断使能, 当 TFx 置 1 时将产生一个中断 而在 THx 中的重载值不会改变 在允许定时器正确计数开始之前,TLx 必须初始化为所需的值 除了自动重载功能外, 模式 2 中的计数器 / 定时器的使能和配置与模式 1 和 0 是一致的 当作为定时器应用时, 可配置寄存器 TCON1 中的 TC0/1 位使定时器 0/1 溢出时 T0/T1 脚自动翻转 如果 TC0/1 被置 1,T0/T1 引脚自动设置为输出 THx (8bits) System Clock Reload Tx /INTx GATEx TRx = 0 C/Tx = 1 + & TLx (8bits) 0:Switch Off 1:Switch On Overflow from FFH to 00H TFx Overflow Flag Interrupt Request C/Tx=0 TCx=1 Tx The Block Diagram of mode2 of Timerx (x=0,1) 29

30 模式 3: 两个 8 位计数器 / 定时器 ( 只限于定时器 0) 在模式 3 中, 定时器 0 用作两个独立的 8 位计数器 / 定时器, 分别由 TL0 和 TH0 控制 TL0 使用定时器 0 的控制 ( 在 TCON 中 ) 和 状态 ( 在 TMOD 中 ) 位 :TR0,C/T0,GATE0 和 TF0 TL0 能用系统时钟或外部输入信号作为时钟源 TH0 只能用作定时器功能, 时钟源来自系统时钟 TH0 由定时器 1 的控制位 TR1 控制使能, 溢出时定时器 1 溢出标志 TF1 置 1, 控制定时器 1 中断 定时器 0 工作在模式 3 时, 定时器 1 可以工作在模式 0 1 或 2, 但是不能置 1 TF1 标志和产生中断, 可以用来产生串口的波特率 TH1 和 TL1 只能用作定时器功能, 时钟源来自系统时钟,GATE1 位无效 T1 输入脚的上拉电阻也无效 定时器 1 由模式控制使能与否, 因为 TR1 被定时器 0 占用 定时器 1 在模式 0 1 或 2 时使能, 在模式 3 时被关闭 当作为定时器应用时, 可配置寄存器 TCON1 中的 TC0 位使定时器 0 溢出时 T0 脚自动翻转 如果 TC0 被置 1,T0 引脚自动设置为输出 System Source T0 /INT0 GATE0 = 0 C/T0 = 1 + TL0 (8bits) 0:Switch Off 1:Switch On Overflow TF 0 Overflow Flag C/T0=0 TC0=1 Interrupt Request T0 & TR0 System Source TH0 (8bits) Overflow TF 1 Interrupt Request 0:Switch Off 1:Switch On Overflow Flag TR1 The Block Diagram of mode3 of Timer0 注意 : 当定时器 0,1 作为计数器时, 输入信号被系统时钟同步, 因此 T0/T1 必须低于系统时钟二分频,/INT0,/INT1 必须低于系统时钟四分频 ; 当定时器 1 作为波特率发生器时, 读取或写入 TH1/TL1 会影响波特率的准确性, 因此也会引起通信出错 30

31 寄存器 Table 7.21 定时器 / 计数器 x 控制寄存器 (x = 0,1) Table 7.22 定时器 / 计数器 x 方式寄存器 (x = 0,1) 88H 8H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) , 5 6, 4 3, 1 2, 0 TFx x = 0, 1 TRx x = 0, 1 IEx x = 0, 1 ITx x = 0, 1 定时器 x 溢出标志位 0: 定时器 x 无溢出, 可由软件清 0 1: 定时器 x 溢出, 由硬件置 1; 若由软件置 1 将会引起定时器中断 定时器 x 启动, 停止控制位 0: 停止定时器 x 1: 启动定时器 x 外部中断 x 请求标志位 外部中断 x 触发方式选择位 89H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TMOD GATE1 C/T1 M11 M10 GATE0 C/T0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) , 3 6, GATEx x = 0, 1 C/Tx x = 0, 1 Mx[1:0] x = 0, 1 定时器 x 门控位 0:TRx 置 1, 定时器 x 即被允许 1: 只有 INTx在高电平期间 TRx 置 1, 定时器 x 才被允许 定时器 / 计数器方式选择位 0: 定时器方式 1: 计数器方式 定时器 x 定时器方式选择位 00: 方式 0,13 位向上计数计数器 / 定时器, 忽略 TLx 的第 7-5 位 01: 方式 1,16 位向上计数计数器 / 定时器 10: 方式 2,8 位自动重载向上计数计数器 / 定时器 11: 方式 3( 只用于定时器 0), 两个 8 位向上计数定时器 M01 M00 31

32 Table 7.23 定时器 x/ 计数器 x 数据寄存器 (x = 0,1) Table 7.24 定时器 / 计数器 x 控制寄存器 1 (x = 0,1) 8AH- AH-8DH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TL0(8AH) TL0.7 TL0.6 TL0.5 TL0.4 TL0.3 TL0.2 TL0.1 TL0.0 TH0(8CH) TH0.7 TH0.6 TH0.5 TH0.4 TH0.3 TH0.2 TH0.1 TH0.0 TL1(8BH) TL1.7 TL1.6 TL1.5 TL1.4 TL1.3 TL1.2 TL1.1 TL1.0 TH1(8DH) TH1.7 TH1.6 TH1.5 TH1.4 TH1.3 TH1.2 TH1.1 TH1.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) TLx.y, THx.y x=0-1, y=0-7 定时器 x 低及高字节计数器 CEH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TCON TC1 TC0 读 / 写 读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) TCx x = 0,1 比较输出功能允许位 0: 禁止定时器 x 比较输出功能 1: 允许定时器 x 比较输出功能 32

33 7.8.3 定时器 2 两个数据寄存器 (TH2 和 TL2) 串联后可作为一个 16 位寄存器来访问, 由寄存器 T2CON 和 T2MOD 控制 设置 IEN0 寄存器中的 ET2 位能允许定时器 2 中断 ( 详见中断章节 ) 定时器 2 的工作模式与定时器 0 和定时器 1 相似 C/T2选择系统时钟 ( 定时器 ) 或外部引脚 T2( 计数器 ) 作为定时器时钟输入 通过所选的引脚设置 TR2 允许定时器 2/ 计数器 2 数据寄存器计数 定时器 2 模式 定时器 2 有 4 种工作模式 : 捕获 / 重载, 带递增或递减计数器的自动重载方式, 波特率发生器和可编程时钟输出 RCLK,TCLK 和 CP/RL2 的组合能选择这些模式 Table 7.25 定时器 2 方式选择 C/T2 T2OE DCEN TR2 CP/RL2 RCLK TCLK X 0 X 位捕获 X 位自动重载定时器 X X X 0 X 1 X 2 波特率发生器 X 只用于可编程时钟 0 1 X 1 X 1 X 3 带波特率发生器的可编程时钟输出 X X 1 X X X X 不推荐使用 X X X 0 X X X X 定时器 2 停止,T2EX 通路仍旧允许 模式 0:16 位捕获 在捕获模式中,T2CON 的 EXEN2 位有两个选项 如果 EXEN2 = 0, 定时器 2 作为 16 位定时器或计数器, 如果 IET2 被允许的话, 定时器 2 能设置 TF2 溢出产生一个中断 如果 EXEN2 = 1, 定时器 2 执行相同操作, 但是在外部输入 T2EX 上的下降沿也能引起在 TH2 和 TL2 中的当前值分别被捕获到 RCAP2H 和 RCAP2L 中, 此外, 在 T2EX 上的下降沿也能引起在 T2CON 中的 EXF2 被设置 如果 IET2 被允许,EXF2 位也像 TF2 一样也产生一个中断 模式 System Clock T2 TR2 =0 C/T2 =1 0:Switch Off 1:Switch On Increment Mode TL2 TH2 TF2 Overflow flag CP / RL2 & + Interrupt Request T2EX EXEN2 0:Switch Off 1:Switch On RCAP2L RCAP2H EXF2 Block Diagram of 16 bit Capcture mode (Mode 0) of Timer2 External falling edge flag 33

34 模式 1:16 16 位自动重载定时器 在 16 位自动重载模式下, 定时器 2 可以被选为递增计数或递减计数 这个功能通过 T2MOD 中的 DCEN 位 ( 递减计数允许 ) 选择 系统复位后,DCEN 位复位值为 0, 定时器 2 默认递增计数 当设置 DCEN 时, 定时器 2 递增计数或递减计数取决于 T2EX 引脚上的电平 当 DCEN = 0, 通过在 T2CON 中的 EXEN2 位选择两个选项 如果 EXEN2 = 0, 定时器 2 递增到 0FFFFH, 在溢出后置起 TF2 位, 同时定时器自动将用户软件写好的寄存器 RCAP2H 和 RCAP2L 的 16 位值装入 TH2 和 TL2 寄存器 如果 EXEN2 = 1, 溢出或在外部输入 T2EX 上的下降沿都能触发一个 16 位重载, 置起 EXF2 位 如果 IET2 被使能,TF2 和 EXF2 位都能产生一个中断 System Clock T2 TR2 =0 C/T2 =1 0:Switch Off 1:Switch On Increment Mode TL2 TH2 RCAP2L RCAP2H TF2 Overflow Flag + Interrupt Request T2EX EXEN2 0:Switch Off 1:Switch On + External Falling Edge flag EXF2 The Block Diagram of Auto Relode Mode ( Mode 1)of Timer2 (DCEN=0) 设置 DCEN 位允许定时器 2 递增计数或递减计数 当 DCEN = 1 时,T2EX 引脚控制计数的方向, 而 EXEN2 控制无效 T2EX 置 1 可使定时器 2 递增计数 定时器递增到 0FFFFH, 在溢出后设置 TF2 位 溢出也能分别引起 RCAP2H 和 RCAP2L 上的 16 位值重加载定时器寄存器 T2EX 清 0 可使定时器 2 递减计数 当 TH2 和 TL2 的值小于 RCAP2H 和 RCAP2L 的值时, 定时器溢出 置起 TF2 位, 同时 0FFFFH 重加载定时器寄存器 无论定时器 2 溢出,EXF2 位都被用作结果的第 17 位 在此工作方式下,EXF2 不作为中断标志 FFH FFH System Clock T2 TR2 =0 C/T2 =1 0:Switch Off 1:Switch On TL2 TH2 TF2 Overflow Flag Interrupt Request T2EX 1.T2EX=1, Timer2 is up counter 2.T2EX=0, Timer2 is down counter RCAP2L RCAP2H Toggle EXF2 The Block Diagram of Auto-Reload Mode ( Mode 1) of Timer2 (DCEN=1) 34

35 模式 2: 波特率发生器 通过设置 T2CON 寄存器中的 TCLK 和 / 或 RCLK 选择定时器 2 作为波特率发生器 请注意如果将定时器 2 作为接收器或发送器而定时器 1 作他用时, 发送和接收的波特率可以是不同的 设置 RCLK 和 / 或 TCLK 使定时器 2 进入波特率发生器模式, 该模式与自动重加载模式相似 定时器 2 的溢出会引起软件将 RCAP2H 和 RCAP2L 寄存器中的 16 位值重加载定时器 2 寄存器, 但不会产生中断 如果 EXEN2 被置 1, 在 T2EX 脚上的下降沿会置起 EXF2, 但不会引起重载 (RCAP2H,RCAP2L 到 TH2,TL2) 因此当定时器 2 作为波特率发生器时,T2EX 可作为一个额外的外部中断 在 EUART 模式 1 和 3 中的波特率由定时器 2 的溢出率根据下列方程式决定 1 SystemClock BaudRate = [RCAP2H,RCAP2L] BaudRate = 1 16 T2 frequency [RCAP2H,RCAP2L] ; C/T2 ; C/T2 = 1 = 0 T2 System Clock TR2 /2 =0 C/ T2 =1 0:Switch Off 1:Switch On Timer1 overflow /2 TL2 RCAP2L TH2 RCAP2H RCLK =1 =0 TCLK =1 =0 SMOD =0 =1 /16 Receiver CLK Transiver CLK /16 EXEN2 T2EX 0:Switch Off 1:Switch On EXF2 Timer2 Interrupt Request The Block Diagram of Baud-Rate Generator ( Mode 2 ) of Timer2 注意 : 当 Timer2 在波特率发生器模式下作为定时器工作时 (TR2 = 1),TH2 或 TL2 不能读取或写入 原因如下 : 定时器在每个状态时间递增, 可能导致读取或写入的结果不精确 RCAP2 寄存器能读取不能写入, 因为写入会覆盖重载而且会引起写入和重载出错 因此, 在访问 TH2/TL2 或 RCAP2H/RCAP2L/ 寄存器之后,Timer2 必须被关闭 ( 清除 TR2) 35

36 模式 3: 可编程时钟输出在这种模式中,T2 输出占空比为 50% 的时钟 : 1 System Clock Clock Out Frequency = [RCAP2H,RCAP2L] 定时器 2 溢出不产生中断 所以定时器 2 可以同时以相同频率用作波特率发生器和时钟输出 System Clock /2 =0 C/ T2 =1 TL2 TH2 TR2 0:Switch Off 1:Switch On C/ T2 RCAP2L RCAP2H T2 /2 T2OE 0:Switch Off 1:Switch On T2EX EXEN2 0:Switch Off 1:Switch On EXF2 Timer2 Interrupt Request The Block Diagram of Programmable Clock output (Mode 3) of Timer2 注意 : (1) TF2 和 EXF2 都能引起定时器 2 的中断请求, 两者有相同的向量地址 (2) 当事件发生时或其它任何时间都能由软件设置 TF2 和 EXF2 为 1, 只有软件以及硬件复位才能使之清 0 (3) 当 EA = 1 且 ET2 = 1 时, 设置 TF2 或 EXF2 为 1 能引起定时器 2 中断 (4) 当定时器 2 作为波特率发生器时, 写入 TH2/TL2, 写入 RCAPH2/RCAPL2 会影响波特率的准确性, 因此也会引起通信出错 36

37 寄存器 Table 7.26 定时器 2 控制寄存器 C8H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 T2CON TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) TF2 6 EXF2 5 RCLK 4 TCLK 3 EXEN2 2 TR2 1 C/T2 0 CP/RL2 定时器 2 溢出标志位 0: 无溢出 1: 溢出 ( 如果 RCLK = 0 和 TCLK = 0, 由硬件设置 ) T2EX 引脚外部事件输入 ( 下降沿 ) 被检测到的标志位 0: 无外部事件输入 ( 必须由软件清 0) 1: 检测到外部输入 ( 如果 EXEN2 = 1, 由硬件设 1) EUART0 接收时钟控制位 0: 定时器 1 产生接收波特率 1: 定时器 2 产生接收波特率 EUART0 发送时钟控制位 0: 定时器 1 产生发送波特率 1: 定时器 2 产生发送波特率 T2EX 引脚上的外部事件输入 ( 下降沿 ) 用作重载 / 捕获触发器允许 / 禁止控制位 0: 忽略 T2EX 引脚上的事件 1: 当定时器 2 不做为 EUART 时钟 (T2EX 始终包括上拉电阻 ) 时, 检测到 T2EX 引脚上一个下降沿, 产生一个捕获或重载 定时器 2 开始 / 停止控制位 0: 停止定时器 2 1: 开始定时器 2 定时器 2 定时器 / 计数器方式选定位 0: 定时器方式,T2 引脚用作 I/O 端口 1: 计数器方式, 内部上拉电阻被打开 捕获 / 重载方式选定位 0:16 位带重载功能的定时器 / 计数器 1:16 位带捕获功能的定时器 / 计数器 37

38 Table 7.27 定时器 2 方式控制寄存器 Table 7.28 定时器 2 重载 / 捕获和数据寄存器 C9H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 T2MOD T2OE DCEN 读 / 写 读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) T2OE 0 DCEN 定时器 2 输出允许位 0: 设置 P1.6/T2 作为时钟输入或 I/O 端口 1: 设置 P1.6/T2 作为时钟输出 ( 波特率发生器方式 ) 递减计数允许位 0: 禁止定时器 2 作为递增 / 递减计数器, 定时器 2 仅作为递增计数器 1: 允许定时器 2 作为递增 / 递减计数器 CAH-CDH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 RCAP2L (CAH) RCAP2L.7 RCAP2L.6 RCAP2L.5 RCAP2L.4 RCAP2L.3 RCAP2L.2 RCAP2L.1 RCAP2L.0 RCAP2H (CBH) RCAP2H.7 RCAP2H.6 RCAP2H.5 RCAP2H.4 RCAP2H.3 RCAP2H.2 RCAP2H.1 RCAP2H.0 TL2 (CCH) TL2.7 TL2.6 TL2.5 TL2.4 TL2.3 TL2.2 TL2.1 TL2.0 TH2 (CDH) TH2.7 TH2.6 TH2.5 TH2.4 TH2.3 TH2.2 TH2.1 TH2.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) RCAP2L.x RCAP2H.x TL2.x TH2.x 定时器 2 重载 / 捕获数据,x = 0-7 定时器 2 高位低位计数器,x =

39 7.9 中断 特性 9 个中断源 4 层中断优先级 程序超范围中断 01 有 9 个中断源 :OVL NMI 中断,2 个外部中断 ( 外部中断 0/1),3 个定时器中断 ( 定时器 0/1/2),EUART 中断,ADC 中断,PLT 中断 程序超范围中断 (OVL OVL) 01 有一个不可屏蔽中断 (NMI) 源 程序超范围中断 (OVL), 其向量定位在 007BH 中, 不可屏蔽中断用以防止 CPU 超出有效程序范围 为应用这个特性, 用户应该用常量 0xA5 填满未使用的 Flash ROM, 如果 PC 超过了用户的有效程序范围, 则运算代码为不存在在 8051 指令集中的 0xA5,CPU 因此获知 PC 已经超出了有效的程序范围, 同时 OVL 中断发生 如果 PC 超过 16K Flash ROM 范围, 不可屏蔽中断 OVL 同样会发生 不可屏蔽中断 OVL 享有最高优先级 ( 除复位外 ), 不会被其它中断源中断 同样不可屏蔽中断 OVL 能自身嵌套, 但堆栈不会因此增加 当 OVL 中断发生后, 其它中断仍旧被允许, 如果满足设定的条件, 其它中断的标志将置 1 由于 OVL 中断是不可屏蔽中断并且具有最高中断优先级, 当产生 OVL 中断时, 其它任何中断都被屏蔽掉, 不能响应, 所以用户必须处理 OVL 中断以保护系统免受不必要的影响 用户可以用 OVL 中断服务程序末端的 RETI 指令来修改压入栈顶的地址 ( 因为进入 OVL 中断时, 压入堆栈顶端的地址是无用的 ), 这样跳出中断服务程序后, 程序可以跳转到用户指定的代码, 诸如复位入口或保护程序入口 OVL_NMI_SERVICE: MOV SP, #Initial_value MOV DPTR, #Start_or_Initial_address PUSH DPL PUSH DPH RETI 特别提示 : 由于 OVL 中断是不可屏蔽中断并且具有最高中断优先级, 当产生 OVL 中断时, 其它任何中断都被屏蔽掉, 不能响应, 所以用户必须处理 OVL 中断以保护系统免受不必要的影响 39

40 7.9.3 中断允许任何一个中断源均可通过对寄存器 IEN0 和 IEN1 中相应的位置 1 或清 0, 实现单独允许或禁止 IEN0 寄存器中还包含了一个全局允许位 EA, 它是所有中断的总开关 一般在复位后, 所有中断允许位设置为 0, 所有中断被禁止 Table 7.29 初级中断允许寄存器 A8H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IEN0 EA EADC ET2 ES ET1 EX1 ET0 EX0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) Table 7.30 次级中断允许寄存器 EA 6 EADC 5 ET2 4 ES 3 ET1 2 EX1 1 ET0 0 EX0 所有中断允许位 0: 禁止所有中断 1: 允许所有中断 ADC 中断允许位 0: 禁止 ADC 中断 1: 允许 ADC 中断 定时器溢出中断允许位 0: 禁止定时器 2 溢出中断 1: 允许定时器 2 溢出中断 EUART 中断允许位 0: 禁止 EUART 中断 1: 允许 EUART 中断 定时器 1 溢出中断允许位 0: 禁止定时器 1 溢出中断 1: 允许定时器 1 溢出中断 外部中断 1 允许位 0: 禁止外部中断 1 1: 允许外部中断 1 定时器 0 溢出中断允许位 0: 禁止定时器 0 溢出中断 1: 允许定时器 0 溢出中断 外部中断 0 允许位 0: 禁止外部中断 0 1: 允许外部中断 0 A9H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IEN EPLT 读 / 写 读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) EPLT PLT 中断允许位 0: 禁止 PLT 中断 1: 允许 PLT 中断 40

41 7.9.4 中断标志 每个中断源都有自己的中断标志, 当产生中断时, 硬件会置起相应的标志位, 在中断汇总表中会列出中断标志位 外部中断源产生外部中断 INTx(x = 0,1) 时, 如果中断为边沿触发,CPU 在响应中断后, 各中断标志位 (TCON 寄存器的 IE0/1 位 ) 被硬件清 0; 如果中断是低电平触发, 外部中断源直接控制中断标志, 而不是由片上硬件控制 定时器 0/1 的计数器溢出时,TCON 寄存器的 TFx(x = 0,1) 中断标志位置 1, 产生定时器 0/1 中断,CPU 在响应中断后, 标志被硬件自动清 0 T2CON 寄存器的 TF2 或 EXF2 标志位置 1 时, 产生定时器 2 中断,CPU 在响应中断后, 标志不能被硬件自动清 0 事实上, 中断服务程序必须决定是由 TF2 或是 EXF2 产生中断, 标志必须由软件清 0 SCON 寄存器的标志 RI 或 TI 置 1 时, 产生 EUART 中断,CPU 在响应中断后, 标志不会被硬件自动清 0 事实上, 中断服务程序必须判断是收中断还是发中断, 标志必须由软件清 0 ADCON 寄存器的 ADCIF 标志位被置 1 时, 产生 ADC 中断 如果中断产生,ADCDH/ADCDL 中的转换结果是有效的 如果 ADC 模块的连续比较功能打开, 在每次转换中, 如果转换结果小于比较值时,ADCIF 标志位为 0; 如果转换结果大于比较值时,ADCIF 标志位置 1,ADCIF 中断标志必须由软件清除 PLSTAT 寄存器的标志 RXINT 或 TXINT 置 1 时, 产生 PLT 中断,CPU 在响应中断后, 标志不会被硬件自动清 0 事实上, 中断服务程序必须判断是接收中断还是发送中断, 标志必须由软件清 0 Table 7.31 定时器 x/ 计数器 x 控制寄存器 (x = 0, 1) 88H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) , 5 6, 4 3, 1 2, 0 TFx (x = 0, 1) TRx (x = 0, 1) IEx (x = 0, 1) ITx (x = 0, 1) 定时器 x 溢出标志 0: 定时器 x 无溢出 1: 定时器 x 溢出 定时器 x 启动, 停止控制 0: 停止定时器 x 1: 启动定时器 x 外部中断 x 请求标志 0: 无中断挂起 1: 中断挂起 外部中断 x 触发方式 0: 低电平触发 1: 下降沿边触发 41

42 7.9.5 中断向量 当一个中断产生时, 程序计数器内容被压栈, 相应的中断向量地址被加载程序计数器 中断向量的地址在中断汇总表中详细列出 中断优先级 每个中断源都可被单独设置为 4 个中断优先级之一, 分别通过清 0 或置 1 IPL0,IPH0,IPL1,IPH1 中相应位来实现 但 OVL 不可屏蔽中断无需 IPH/IPL 控制, 在所有中断源中享有最高优先级 ( 除复位外 ) 中断优先级服务程序描述如下 : 响应一个中断服务程序时, 可响应更高优先级的中断, 但不能响应同优先级或低优先级的另一个中断 响应最高级中断服务程序时, 不响应其它任何中断 如果不同中断优先级的中断源同时申请中断时, 响应较高优先级的中断申请 如果同优先级的中断源在指令周期开始时同时申请中断, 那么内部查询序列确定中断请求响应顺序 IPHx 优先位 IPLx Table 7.32 中断优先级控制寄存器 中断优先级 中断优先级 0 0 等级 0( 最低优先级 ) 0 1 等级 等级 等级 3( 最高优先级 ) B8H, B4H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IPL0 (B8H) - PADCL PT2L PSL PT1L PX1L PT0L PX0L IPH0 (B4H) - PADCH PT2H PSH PT1H PX1H PT0H PX0H 读 / 写 - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) B9H, B5H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IPL1 (B9H) PPLTL IPH1 (B5H) PPLTH 读 / 写 读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) PxxxL/H 相应中断源 xxx 优先级选择 42

43 7.9.7 中断处理 中断标志在每个机器周期都会被采样获取 所有中断都在时钟的上升沿被采样 如果一个标志被置起, 那么 CPU 捕获到后中断系统调用一个长转移指令 (LCALL) 调用其中断服务程序, 但由硬件产生的 LCALL 会被下列任何条件阻止 : 同级或更高级的优先级中断在运行中 当前的周期不是执行中指令的最后一个周期 换言之, 正在执行的指令完成前, 任何中断请求都得不到响应 正在执行的是一条 RETI 或者访问专用寄存器 IEN0\1 或是 IPL\H 的指令 换言之, 在 RETI 或者读写 IEN0\1 或是 IPL\H 之后, 不会马上响应中断请求, 而至少在执行一条其它指令之后才会响应 注意 : 因为更改优先级通常需要 2 条指令, 在此期间, 建议关闭相应的中断以避免在修改优先级过程中产生中断 如果当模块状态改变而中断标志不再有效时, 将不会响应此中断 每一个轮询周期只查询有效的中断请求 轮询周期 /LCALL 次序如下图所示 : C1 C2 C3 C3~Cn Cn~Cn+7 Cn+8 Interrupt Polled Interrupt Signal Generated Interrupt Pending Long Call to Interrupt Vector Service Interrupt service Interrupt Latched 中断响应时间 由硬件产生的 LCALL 把程序计数器中的内容压入堆栈 ( 但不保存 PSW), 然后将相应中断源的向量地址 ( 参照中断向量表 ) 存入程序计数器 中断服务程序从指定地址开始, 到 RETI 指令结束 RETI 指令通知处理器中断服务程序结束, 然后把堆栈顶部两字节弹出, 重加载程序计数器中, 执行完中断服务程序后程序回到原来停止的地方 RET 指令也可以返回到原来地址继续执行, 但是中断优先级控制系统仍然认为一个同一优先级的中断被响应, 这种情况下, 当同一优先级或低优先级中断将不会被响应 中断响应时间 如果检测出一个中断, 这个中断的请求标志位就会在被检测后的每个机器周期被置起 内部电路会保持这个值直到下一个机器周期,CPU 会在第三个机器周期产生中断 如果响应有效且条件允许, 在下一个指令执行的时候硬件 LCALL 指令将调用请求中断的服务程序, 否则中断被挂起 LCALL 指令调用程序需要 7 个机器周期 因而, 从外部中断请求到开始执行中断程序至少需要 3+7 个完整的机器周期 当请求因前述的的三个情况受阻时, 中断响应时间会加长 如果同级或更高优先级的中断正在执行, 额外的等待时间取决于正执行的中断服务程序的长度 如果正在执行的指令还没有进行到最后一个周期, 假如正在执行 RETI 指令, 则完成正在执行的 RETI 指令, 需要 8 个周期, 加上为完成下一条指令所需的最长时间 20 个机器周期 ( 如果该指令是 16 位操作数的 DIV,MUL 指令 ), 若系统中只有一个中断源, 再加上 LCALL 调用指令 7 个机器周期, 则最长的响应时间是 个机器周期 所以, 中断响应时间一般大于 10 个机器周期小于 37 个机器周期 43

44 7.9.9 外部中断输入 01 有 2 个外部中断输入 外部中断 0/1 分别有一个独立的中断源, 可以通过设置 TCON 寄存器的 IT1,IT0 位来选择是电平触发或是边沿触发 当 ITx = 0(x = 0,1) 时, 外部中断 INTx(x = 0,1) 引脚为低电平触发 ; 当 ITx(x = 0,1)= 1, 外部中断 INTx(x = 0,1) 为沿触发, 在这个模式中, 一个周期内 INTx(x = 0,1) 引脚上连续采样为高电平而下个周期为低电平, TCON 寄存器的中断请求标志位置 1, 发出一个中断请求 由于外部中断引脚每个机器周期采样一次, 输入高或低电平应当保持至少 1 个机器周期以确保能够被正确采样到 如果外部中断为下降沿触发, 外部中断源应当将中断脚至少保持 1 个机器周期高电平, 然后至少保持 1 个机器周期低电平 这样就确保了边沿能够被检测到以使 IEx 置 1 当调用中断服务程序后,CPU 自动将 IEx 清 0 如果外部中断为低电平触发, 外部中断源必须一直保持请求有效, 直到产生所请求的中断为止, 此过程需要 2 个系统时钟周期 如果中断服务完成后而外部中断仍旧维持, 则会产生下一次中断 当中断为电平触发时不必清除中断标志 IE x(x = 0,1,2,3), 因为中断只与输入口电平有关 当 01 进入空闲或是掉电模式, 中断会唤醒处理器继续工作, 详见电源管理章节 注意 : 外部中断 0/1 的中断标志位在执行中断服务程序时被自动硬件清 0 1 Machine Cyle High-Level Threshold Low-Level Threshold >1 Machine Cycle Low-Level Threshold >2 Machine Cycle 外部中断检测 中断汇总中断源 向量地址 允许位 标记位 轮询优先级 Reset 0000h - - 0( 最高级 ) INT0 0003h EX0 IE0 2 Timer0 000Bh ET0 TF0 3 INT1 0013h EX1 IE1 4 Timer1 001Bh ET1 TF1 5 EUART 0023h ES RI+TI 6 Timer2 002Bh ET2 TF2+EXF2 7 ADC 0033h EADC ADCIF 8 PLT 003Bh EPLT RXINT+TXINT 9 OVL NMI 007Bh

45 8. 增强功能 8.1 增强型通用异步收发器 (EUART EUART) 特性 01 带有 1 个 EUART, 兼容传统 8051 波特率可选择为系统时钟分频或定时器 1/2 的溢出率 增强功能包括帧出错检测及自动地址识别 EUART 有四种工作方式 EUART 工作方式 EUART 有 4 种工作方式 在通信之前用户必须先初始化 SCON, 选择方式和波特率 如果使用方式 1 或方式 3 应先初始化定时器 1 或定时器 2 在所有四种方式中, 任何将 SBUF 作为目标寄存器的写操作都会启动发送 在方式 0 中由设置 RI = 0 和 REN = 1 初始化接收 这会在 TXD 引脚上产生一个时钟信号, 然后在 RXD 引脚上移 8 位数据 在其他方式中由输入的起始位初始化接收 ( 如果 REN = 1) 通过发送起始位, 外部发送器开始通信 注意 : 由于 TxD 与 P1.1 复用, 因此当有数据写入 SBUF 时,UART 将通过 TxD 发送数据 当发送结束后,TxD 将恢复成作为 I/O 使用 所以当需要使用 UART 时, 用户必须在 UART 初始化程序中将 P1.1 设置成输出高的状态 EUART 模式列表 SM0 SM1 方式类型波特时钟帧长度起始位停止位第 9 位 同步 f SYS /(4 或 12) 8 位无无无 异步定时器 1 或 2 的溢出率 /(16 或 32) 10 位 1 1 无 异步 f SYS /(32 或 64) 11 位 1 1 0, 异步定时器 1 或 2 的溢出率 /(16 或 32) 11 位 1 1 0,1 模式 0: 同步, 半双工通讯 方式 0 支持与外部设备的同步通信 在 RXD 引脚上收发串行数据 TXD 引脚用作发送移位时钟 因此这个模式是串行通信的半双工方式 在这个方式中, 每帧收发 8 位, 低位先接收或发送 通过置 SM2 位 (SCON.5) 为 0 或 1, 波特率固定为系统时钟的 1/12 或 1/4 当 SM2 位为 0 时, 串行端口以系统时钟的 1/12 运行 当置 1 时, 串行端口以系统时钟的 1/4 运行 与标准 8051 唯一不同的是,01 在方式 0 中有可变波特率 功能块框图如下图所示 数据通过 RXD 引脚进入和移出串行端口 移位时钟由 TXD 引脚输出, 用来移位进出 01 的数据 Transmit Shift Register System Clock 12 4 Write to SBUF TX START Internal Data Bus TX SHIFT PARIN LOAD CLOCK SOUT RXD 0 1 TX CLOCK SERIAL CONTROLLER TI RI Serial Port Interrupt RI REN RX CLOCK RX START SHIFT CLOCK LOAD SBUF RX SHIFT TXD P1.1 Alternate Output Function Read SBUF RXD CLOCK PAROUT SIN SBUF SBUF Internal Data Bus Receive Shift Register 45

46 任何将 SBUF 作为目标寄存器的写操作都会启动发送 下一个系统时钟 Tx 控制块开始发送 数据转换发生在移位时钟的下降沿, 移位寄存器的内容逐次从左往右移位, 空位置 0 当移位寄存器中的所有 8 位都发送后,Tx 控制模块停止发送操作, 然后在下一个系统时钟的上升沿将 TI 置 1(SCON.1), 并且 RxD 引脚保持高电平 Write to SBUF RxD TxD D0 D1 D2 D3 D4 D5 D6 D7 TI Send Timing of Mode 0 REN(SCON.4) 置 1 和 RI(SCON.0) 清 0 初始化接收 下一个机器周期启动接收, 在移位时钟的上升沿锁存数据, 接收转换寄存器的内容逐次向左移位 当所有 8 位都移入接收移位寄存器中后,Rx 控制块停止接收, 然后在下一个机器周期的上升沿上 RI 置 1, 直到被软件清 0 才允许接收 RxD TxD D0 D1 D2 D3 D4 D5 D6 D7 RI 模式 1:8 位 EUART, 可变波特率, 异步全双工 Receive Timing of Mode 0 模式 1 提供 10 位全双工异步通讯,10 位由一个起始位 ( 逻辑 0),8 个数据位 ( 低位为第一位 ), 和一个停止位 ( 逻辑 1) 组成 在接收时, 这 8 个数据位存储在 SBUF 中而停止位储存在 RB8(SCON.2) 中 模式 1 中的波特率是可变的, 串行收发波特率可被设置为定时器 1 溢出率的 1/16 或 1/32, 或是定时器 2 溢出率的 1/16( 详见波特率章节 ) 功能块框图如下图所示 : Timer 1 Overflow Timer 2 Overflow (for Serial Port 0 only) Transmit Shift Register STOP SMOD= (SMOD_1) Write to SBUF Internal Data Bus PARIN START LOAD CLOCK SOUT TXD TCLK RCLK TX START TX SHIFT TX CLOCK TI SERIAL CONTROLLER RI Serial Port Interrupt SAMPLE RX CLOCK LOAD SBUF 1-TO-0 DETECTOR RX START RX SHIFT Read SBUF CLOCK PAROUT SBUF RXD BIT DETECTOR SIN D8 RB8 Receive Shift Register 46

47 任何将 SBUF 作为目标寄存器的写操作都会启动发送, 实际上发送是从 16 分频计数器中的下一次跳变之后的系统时钟开始的, 因此位时间与 16 分频计数器是同步的, 与对 SBUF 的写操作不同步 起始位首先在 TXD 引脚上移出, 然后是 8 位数据位 在发送移位寄存器中的所有 8 位数据都发送完后, 停止位在 TXD 引脚上移出, 在停止位发出的同时 Tl 标志置 1 Write to SBUF TxD Start D0 D1 D2 D3 D4 D5 D6 D7 Stop Shift CLK TI Send Timing of Mode 1 只有 REN 位置 1 时才允许接收 当 RXD 引脚检测到下降沿时串行口开始接收串行数据 为此,CPU 对 RXD 不断采样, 采样速率为波特率的 16 倍 当检测下降沿时,16 分频计数器立即复位, 这有助于 16 分频计数器与 RXD 引脚上的串行数据位同步 16 分频计数器把每一位的时间分为 16 个状态, 在第 状态时, 位检测器对 RXD 端的电平进行采样 为抑制噪声, 在这 3 个状态采样中至少有 2 次采样值一致数据才被接收 如果所接收的第一位不是 0, 说明这位不是一帧数据的起始位, 该位被忽略, 接收电路被复位, 等待 RXD 引脚上另一个下降沿的到来 若起始位有效, 则移入移位寄存器, 并接着移入其它位到移位寄存器 8 个数据位和 1 个停止位移入之后, 移位寄存器的内容被分别装入 SBUF 和 RB8 中,RI 置 1, 但必须满足下列条件 : 1. RI = 0 2. SM2 = 0 或者接收的停止位 = 1 如果这些条件被满足, 那么停止位装入 RB8,8 个数据位装入 SBUF,RI 被置 1 否则接收的帧会丢失 这时, 接收器将重新去探测 RXD 端是否另一个下降沿 用户必须用软件清除 RI, 然后才能再次接收 RxD Start D0 D1 D2 D3 D4 D5 D6 D7 Stop Bit Sample Shift CLK RI Receive Timing of Mode 1 47

48 模式 2:9 位 EUART, 固定波特率, 异步全双工 这个模式使用异步全双工通信中的 11 位 一帧由一个起始位 ( 逻辑 0),8 个数据位 ( 低位为第一位 ), 一个可编程的第 9 数据位和一个停止位 ( 逻辑 1) 组成 模式 2 支持多机通信和硬件地址识别 ( 详见多机通讯章节 ) 在数据传送时, 第 9 数据位 (SCON 中的 TB8) 可以写 0 或 1, 例如, 可写入 PSW 中的奇偶位 P, 或用作多机通信中的数据 / 地址标志位 当接收到数据时, 第 9 数据位进入 RB8 而停止位不保存 PCON 中的 SMOD 位选择波特率为系统工作频率的 1/32 或 1/64 功能块框图如下所示 Transmit Shift Register SMOD= (SMOD_1) System Clock Write to SBUF TX START Internal Data Bus TX SHIFT TB8 D8 STOP PARIN START LOAD CLOCK SOUT TXD TX CLOCK SERIAL CONTROLLER TI RI Serial Port Interrupt SAMPLE RX CLOCK LOAD SBUF 1-TO-0 DETECTOR RX START RX SHIFT Read SBUF RXD BIT DETECTOR CLOCK SIN PAROUT D8 SBUF RB8 Internal Data Bus Receive Shift Register 任何将 SBUF 作为目标寄存器的写操作都会启动发送, 同时也将 TB8 加载到发送移位寄存器的第 9 位中 实际上发送是从 16 分频计数器中的下一次跳变之后的系统时钟开始的, 因此位时间与 16 分频计数器是同步的, 与对 SBUF 的写操作不同步 起始位首先在 TXD 引脚上移出, 然后是第 9 数据位 在发送转换寄存器中的所有 9 位数据都发送完后, 停止位在 TXD 引脚上移出, 在停止位发出的同时 Tl 标志置 1 Write to SBUF TxD Start D0 D1 D2 D3 D4 D5 D6 D7 D8 Stop Shift CLK TI Send Timing of Mode 2 48

49 只有 REN 位置 1 时才允许接收 当 RXD 引脚检测到下降沿时串行口开始接收串行数据 为此,CPU 对 RXD 不断采样, 采样速率为波特率的 16 倍 当检测下降沿时,16 分频计数器立即复位 这有助于 16 分频计数器与 RXD 引脚上的串行数据位同步 16 分频计数器把每一位的时间分为 16 个状态, 在第 状态时, 位检测器对 RXD 端的电平进行采样 为抑制噪声, 在这 3 个状态采样中至少有 2 次采样值一致数据才被接收 如果所接收的第一位不是 0, 说明这位不是一帧数据的起始位, 该位被忽略, 接收电路被复位, 等待 RXD 引脚上另一个下降沿的到来 若起始位有效, 则移入移位寄存器, 并接着移入其它位到移位寄存器 9 个数据位和 1 个停止位移入之后, 移位寄存器的内容被分别装入 SBUF 和 RB8 中,RI 置 1, 但必须满足下列条件 : 1. RI = 0 2. SM2 = 0 或者接收的第 9 位 = 1, 且接收的字节符合实际从机地址 如果这些条件被满足, 那么第 9 位移入 RB8,8 位数据移入 SBUF,RI 被置 1 否则接收的数据帧会丢失 在停止位的当中, 接收器回到寻找 RXD 引脚上的另一个下降沿 用户必须用软件清除 RI, 然后才能再次接收 RxD Start D0 D1 D2 D3 D4 D5 D6 D7 D8 Stop Bit Sample Shift CLK RI Receive Timing of Mode 2 模式 3:9 位 EUART, 可变波特率, 异步全双工模式 3 使用模式 2 的传输协议以及模式 1 的波特率产生方式 Timer 1 Overflow Timer 2 Overflow (for Serial Port 0 only) Transmit Shift Register STOP SMOD= (SMOD_1) Internal 2 PARIN Data Bus SOUT TXD 0 TCLK RCLK Write to SBUF TX START TX CLOCK SERIAL CONTROLLER TX SHIFT TB8 TI RI D8 START LOAD CLOCK Serial Port Interrupt SAMPLE RX CLOCK LOAD SBUF 1-TO-0 DETECTOR RX START RX SHIFT Read SBUF RXD BIT DETECTOR CLOCK SIN PAROUT D8 SBUF RB8 Internal Data Bus Receive Shift Register 49

50 波特率 在模式 0 中, 波特率可编程为系统时钟的 1/12 或 1/4, 由 SM2 位决定 当 SM2 为 0 时, 串行端口在系统时钟的 1/12 下运行 当 SM2 为 1 时, 串行端口在系统时钟的 1/4 下运行 在模式 1 和模式 3 中, 波特率可选择来至定时器 1 或定时器 2 的溢出率 分别置 TCLK(T2CON.4) 和 RCLK(T2CON.5) 位为 1 来选择定时器 2 作为 TX 和 RX 的波特时钟源 ( 详见定时器章节 ) 无论 TCLK 还是 RCLK 为逻辑 1, 定时器 2 都为波特率发生器方式 如果 TCLK 和 RCLK 为逻辑 0, 只有定时器 1 作为 Tx 和 Rx 的波特时钟源 模式 1 和模式 3 波特率公式如下所示, 其中 TH1 是定时器 1 的 8 位自动重载寄存器,SMOD 为 EUART 的波特率二倍频器 (PCON.7),[RCAP2H, RCAP2L] 是定时器 2 的 16 位重加载寄存器 定时器 1 时钟源频率为 f T1, 定时器 2 时钟源频率为 f T2 2SMOD f BaudRate = T1 用定时器 1 作为波特率发生器, 定时器 1 工作在方式 TH1 1 ft 2 BaudRate = 用定时器 2 作为波特率发生器, 定时器 2 时钟源为系统时钟 [ RCAP2H, RCAP2L] 1 ft 2 BaudRate = 用定时器作为波特率发生器, 定时器 2 时钟源为 T2 输入引脚时钟 [ RCAP2H, RCAP2L] 在模式 2 中, 波特率固定为系统时钟的 1/32 或 1/64, 由 SMOD 位 (PCON.7) 决定 当 SMOD 位为 0 时,EUART 以系统时钟的 1/64 运行 当 SMOD 位为 1 时,EUART 以系统时钟的 1/32 运行 fsys BaudRate = 2 SMOD ( ) 多机通信 软件地址识别 模式 2 和模式 3 有一个专门的适用于多机通讯的功能 在这两个方式下, 接收的是 9 位数据, 第 9 位移入 RB8 中, 然后再来一位停止位 EUART 可以这样来设定 : 当接收到停止位时, 只有在 RB8 = 1 的条件下, 串行口中断才会有效 ( 请求标志 RI 置 1) 可以通过将 SCON 寄存器的 SM2 位置 1 使 EUART 具有这个功能 在多机通讯系统中, 以如下所述来利用这一功能 当主机要发送一数据块给几个从机中的一个时, 它先送出一地址字节, 以辨认目标从机 地址字节与数据字节可用第 9 数据位区别, 地址字节的第 9 位为 1, 数据字节的第 9 位为 0 如果从机 SM2 为 1, 则不会响应数据字节中断 地址字节可以中断所有从机, 这样, 每一个从机都检查所接收到的地址字节, 以判别自己是不是目标从机 被寻到的从机清 0 SM2 位, 并准备接收即将到来的数据字节, 当接收完毕时, 从机再一次将 SM2 置 1 没有被寻址的从机, 则维持它们的 SM2 位为 1, 忽略到来的数据字节, 继续做自己的事情 注意 : 在模式 0 中,SM2 用来选择波特率加倍 在模式 1 中,SM2 用来检测停止位是否有效, 如果 SM2 = 1, 接收中断不会响应直到接收到一个有效的停止位 自动 ( 硬件 ) 地址识别在模式 2 和模式 3 中,SM2 置 1 将使 EUART 在如下状态下运行 : 当 1 个停止位被接收时, 如果加载 RB8 的第 9 数据位为 1( 地址字节 ) 并且接收到的数据字节符合 EUART 的从机地址,EUART 产生一个中断 接着, 从机应该将 SM2 清零, 以接收后续的数据字节 在 9 位方式下要求第 9 位为 1 以表明该字节是地址而非数据 当主机要发送一组数据给几个从机中的一个时, 必须先发送目标从机的地址 所有从机在等待接收地址字节时, 为了确保仅在接收地址字节时产生中断,SM2 位必须置 1 自动地址识别的特点是只有地址匹配的从机才能产生中断, 地址比较通过硬件完成而不是软件 中断产生后, 地址相匹配的从机清零 SM2, 继续接收数据字节 地址不匹配的从机不受影响, 将继续等待接收和它匹配的地址字节 一旦全部信息接收完毕, 地址匹配的从机应该再次把 SM2 置 1, 忽略所有传送的非地址字节, 直到接收到下一个地址字节 使用自动地址识别功能时, 主机可以通过调用给定的从机地址选择与一个或多个从机通信 使用广播地址可以联系所有的从机 有两个特殊功能寄存器用来定义从机地址 (SADDR) 和地址屏蔽 (SADEN) 从机地址是一个 8 位的字节, 存于 SADDR 寄存器中 SADEN 用于定义 SADDR 内位的有效与否, 如果 SADEN 中某一位为 0, 则 SADDR 中相应位的被忽略, 如果 SADEN 中某一位置 1, 则 SADDR 中相应位的将用于得到给定的从机地址 这可以使用户在不改变 SADDR 寄存器中的从机地址的情况下灵活地寻址多个从机 使用给定地址可以识别多个从机而排除其它的从机 50

51 从机 1 和从机 2 给定地址的最低位是不同的 从机 1 忽略了最低位, 而从机 2 的最低位是 1 因此只与从机 1 通讯时, 主机必须发送最低位为 0 的地址 ( ) 类似地, 从机 1 的第 1 位为 0, 从机 2 的第 1 位被忽略 因此, 只与从机 2 通讯时, 主机必须发送第 1 位为 1 的地址 ( ) 如果主机希望同时与两从机通讯, 则第 0 位为 1, 第 1 位为 0, 第 2 位被两从机都忽略, 此时有两个不同的地址用于选定两个从机 ( 和 ) 主机可以通过广播地址与所有从机同时通讯 这个地址等于 SADDR 和 SADEN 的逻辑或, 结果中的 0 表示该位被忽略 多数情况下, 广播地址为 0xFFh, 该地址可被所有从机应答 系统复位后,SADDR 和 SADEN 两个寄存器初始化为 0, 这两个结果设定了给定地址和广播地址为 XXXXXXXX( 所有位都被忽略 ) 这有效地去除了多处机通讯的特性, 禁止了自动寻址方式 这样的 EUART 将对任何地址都产生应答, 兼容了不支持自动地址识别的 8051 控制器 用户可以按照上面提到的方法实现软件识别地址的多机通讯 帧出错检测 记忆码从机 1 从机 2 SADDR SADEN(0 屏蔽 ) 给定地址 10100x0x 10100xx1 广播地址 ( 或 ) x 当寄存器 PCON 中的 SSTAT 位为逻辑 1 时, 帧出错检测功能才有效 3 个错误标志位被置 1 后, 只能通过软件清零, 尽管后续接收的帧没有任何错误也不会自动清零 注意 :SSTAT 位必须为逻辑 1 是访问状态位 (FE0,RXOV0 和 TXCOL0),SSTAT 位为逻辑 0 时是访问方式选择位 (SM0,SM1 和 SM2) 发送冲突如果在一个发送正在进行时, 用户软件写数据到 SBUF 寄存器时, 发送冲突位 (SCON 寄存器中的 TXCOL 位 ) 置 1 如果发生了冲突, 新数据会被忽略, 不能被写入发送缓冲器 接收溢出如果在接收缓冲器中的数据未被读取之前,RI 清 0 又有新的数据存入接收缓冲器, 那么接收溢出位 (SCON 寄存器中的 RXOV 位 ) 置 1 如果发生了接收溢出, 接收缓冲器中原来的数据将丢失 帧出错如果检测到一个无效 ( 低 ) 停止位, 那么帧出错位 ( 寄存器 SCON 中的 FE) 置 1 暂停检测当连续检测到 11 个位都为低电平位时, 则认为检测到一个暂停 由于暂停条件同样满足帧错误条件, 因此检测到暂停时也会报告帧错误 一旦检测到暂停条件,UART 将进入空闲状态并一直保持, 直至接收到有效停止位 (RXD 引脚上出现上升沿 ) 51

52 8.1.6 寄存器 Table 8.1 电源控制寄存器 87H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PCON SMOD SSTAT SSTAT1 SIDL GF1 GF0 PD IDL 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) SMOD 6 SSTAT 5 SSTAT1 3-2 GF[1:0] 1 PD 0 IDL 波特率加倍器若使用定时器 1 作为波特率发生器, 在模式 1 和 3 中置 1,EUART 的波特率会加倍如果在模式 2 中置 1,EUART 的波特率会加倍 SCON[7:5] 功能选择 0:SCON[7:5] 工作方式作为 SM0,SM1,SM2 1:SCON[7:5] 工作方式作为 FE,RXOV,TXCOL SCON1[7:5] 功能选择 0:SCON1[7:5] 工作方式如同 SM10,SM11,SM12 1:SCON1[7:5] 工作方式如同 FE1,RXOV1,TXCOL1 用于软件的通用标志位 掉电模式控制位 空闲模式控制位 52

53 EUART 相关 SFR Table 8.2 EUART 控制及状态寄存器 98H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SCON SM0 /FE SM1 /RXOV SM2 /TXCOL REN TB8 RB8 TI RI 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) SM[0:1] 7 FE 6 RXOV EUART 串行方式控制位,SSTAT = 0 00: 模式 0, 同步方式, 固定波特率 01: 模式 1,8 位异步方式, 可变波特率 10: 模式 2,9 位异步方式, 固定波特率 11: 模式 3,9 位异步方式, 可变波特率 EUART 帧出错标志, 当 FE 位被读时,SSTAT 位必须被设置为 1 0: 无帧出错, 由软件清除 1: 发生帧出错, 由硬件置 1 EUART 接收完毕标志位, 当 RXOV 位被读时,SSTAT 位必须被设置为 1 0: 无接收完毕, 由软件清除 1: 接收完毕, 由硬件置 1 5 SM2 5 TXCOL 4 REN 3 TB8 2 RB8 1 TI 0 RI EUART 多处理机通讯允许位 ( 第 9 位 1 校验器 ),SSTAT = 0 0: 在模式 0 下, 波特率是系统时钟的 1/12 在模式 1 下, 禁止停止位确认检验, 停止位将置 RI 为 1 产生中断在模式 2 和 3 下, 任何字节都会置 RI 为 1 产生中断 1: 在模式 0 下, 波特率是系统时钟的 1/4 在模式 1 下, 允许停止位确认检验, 只有有效的停止位 (1) 才能置 RI 为 1 产生中断在模式 2 和 3 下, 只有寻址字节 ( 第 9 位 = 1) 能置 RI 为 1 产生中断 EUART 发送冲突标志位, 当 TXCOL 位被读时,SSTAT 位必须被设置为 1 0: 无发送冲突, 由软件清除 1: 有发送冲突, 由硬件置 1 EUART 接收器允许位 0: 接收禁止 1: 接收允许 第 9 位在 EUART 的模式 2 和 3 下发送, 由软件置 1 或清 0 发送器,EUART 的第 8 位在模式 0 下, 不使用 RB8 在模式 1 下, 如果接收中断发生,RB8 的停止位会收到信号在模式 2 和 3 下, 由第 9 位接收 EUART 的传送中断标记 0: 由软件清 0 1: 由硬件置 1, 在模式 0 下的第 8 位最后, 或在其它模式下的停止位开始 EUART 的接收中断标记 0: 由软件清 0 1: 由硬件置 1, 在模式 0 下的第 8 位最后, 或在其它模式下的停止位开始 53

54 Table 8.3 EUART 数据缓冲器寄存器 Table 8.4 EUART 从属地址及地址屏蔽寄存器 99H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SBUF SBUF.7 SBUF.6 SBUF.5 SBUF.4 SBUF.3 SBUF.2 SBUF.1 SBUF.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) SBUF[7-0] SFR 访问两个寄存器 : 一个移位寄存器和一个接收锁存寄存器 SBUF 的写入将发送字节到移位寄存器中, 然后开始传输 SBUF 的读取返回接收锁存器中的内容 9AH-9BH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SADDR (9AH) SADDR.7 SADDR.6 SADDR.5 SADDR.4 SADDR.3 SADDR.2 SADDR.1 SADDR.0 SADEN (9BH) SADEN.7 SADEN.6 SADEN.5 SADEN.4 SADEN.3 SADEN.2 SADEN.1 SADEN.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) SADDR[7:0] 7-0 SADEN[7:0] SADDR 定义 EUART 从机地址 SADEN 是一个位屏蔽寄存器, 决定检验 SADDR 的哪些位对应接收地址 0: 在 SADDR 中的相应位被忽略 1:SADDR 中的相应位被检验是否对应接收地址 54

55 8.2 模 / 数转换器 (ADC ADC) 特性 10 位分辨率 内建基准电压 可选外接或内建基准电压 4 模拟通道输入 01 包括一个单端型 10 位逐次逼近型数 / 模转换器,ADC 内建的基准电压 V REF 和 V OUT 相连,4 个 ADC 通道都可以独立 输入模拟信号, 但是每次转换只能使用一个通道 GO/DONE信号控制开始转换, 提示转换结束 当转换完成时, 更新 ADC 数据寄存器与此同时, 设置 ADCON 寄存器中的 ADCIF 位, 并且产生一个中断 ( 如果允许 ADC 中断 ) ADC 模块整合数字比较功能可以比较 ADC 中的模拟输入的值与数字值 如果允许数字比较功能 ( 在 ADCON 寄存器中的 EC 位置 1), 并且 ADC 模块使能 ( 在 ADCON 寄存器中的 ADON 位置 1), 只有当相应的模拟输入的数字值大于寄存器中的比较值 (ADDH/L) 时, 才会产生 ADC 中断 当 GO/DONE置 1 时, 数字比较功能会持续工作, 直到 GO/DONE清 0 这一点与模数转换工作方式不同 带数字比较功能的 ADC 模块能在 Idle 模式下工作, 并且 ADC 中断能够唤醒 Idle 模式 但是, 在 Power-Down 模式下,ADC 模块被禁止 通道 0 内部与 RSSI 模块输出连接, 在 RSSI 模块使能时 ( 详见 RSSI 章节 ), 通道 0 只用于测量 RSSI 输出电压 在 RSSI 模块禁止时, 通道 0 可用于其它模拟量的采集, 此时内部 RSSI 输出呈现高阻状态,RSSI 引脚可输入待测模拟信号 ADC 模块图 RSSI SCH1, SCH0 00 CH3-CH1 RSSI 10 bit SAR ADC Input voltage AN1 AN2 AN3 AD 转换器模块图 55

56 寄存器 Table 8.5 ADC 控制寄存器 93H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADCON ADON ADCIF EC - - SCH1 SCH0 GO/DONE 读 / 写读 / 写读 / 写读 / 写 - - 读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) ADON 6 ADCIF 5 EC 2-1 SCH[1:0] GO/DONE ADC 允许 0: 禁止 ADC 模块 1: 允许 ADC 模块 ADC 中断标志 0: 无 ADC 中断 1: 由硬件置 1, 表示已完成 AD 转换或者模拟输入大于 ADDATH/L ( 如果允许数字比较模块 ) 比较功能允许 0: 禁止比较功能 1: 允许比较功能 ADC 通道选择 00:ADC 通道 AN0 01:ADC 通道 AN1 10:ADC 通道 AN2 11:ADC 通道 AN3 ADC 状态标记 0: 当完成 AD 转换时, 由硬件自动清 0 在转换期间清 0 这个位会中止 AD 转换 如果允许数字比较功能, 该位不会由硬件清 0 只能由软件清 0 1: 设置开始 AD 转换或者启动数字比较功能 56

57 Table 8.6 ADC 定时控制寄存器 注意 : (1) 请确保 t AD 1µs; (2) 即使 TS[3:0] = 0000, 最小采样时间为 2t AD ; (3) 即使 TS[3:0] = 1111, 最大采样时间为 15t AD ; (4) 在设置 TS[3:0] 前, 请估算连接到 ADC 输入引脚的串联电阻 ; (5) 选择 2*t AD 为采样时间时, 请确保连接到 ADC 输入引脚的串联电阻小于 10kΩ; (6) 总共转换时间 = 12t AD + 采样时间 Table 8.7 ADC 通道设置寄存器 94H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADT TADC2 TADC1 TADC0 - TS3 TS2 TS1 TS0 读 / 写读 / 写读 / 写读 / 写 - 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) TADC[2:0] 3-0 TS[3:0] ADC 时钟周期选择位 000:ADC 时钟周期 t AD = 2 t SYS 001:ADC 时钟周期 t AD = 4 t SYS 010:ADC 时钟周期 t AD = 6 t SYS 011:ADC 时钟周期 t AD = 8 t SYS 100:ADC 时钟周期 t AD = 12 t SYS 101:ADC 时钟周期 t AD = 16 t SYS 110:ADC 时钟周期 t AD = 24 t SYS 111:ADC 时钟周期 t AD = 32 t SYS 采样时间选择位 2 t AD 采样时间 = (TS[3:0]+1) * t AD 15 t AD 95H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADCH CH3 CH2 CH1 读 / 写 读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) CH[3:1] 通道配置 0:P0.3-P0.5 作为 I/O 端口 1:P0.3-P0.5 作为 ADC 输入口 57

58 Table 8.8 AD 转换数据寄存器 ( 比较值寄存器 ) 启动 ADC 转换步骤 : (1) 选择模拟输入通道 (2) 使能 ADC 模块 (3) GO/DONE置 1 开始 ADC 转换 (4) 等待 GO/DONE = 0 或者 ADCIF = 1, 如果 ADC 中断使能, 则 ADC 中断将会产生, 用户需要软件清 0 ADCIF (5) 从 ADDH/ADDL 获得转换数据 (6) 重复步骤 3-5 开始另一次转换 启动数字比较功能步骤 : (1) 选择模拟输入通道 (2) 写入 ADDH/ADDL, 设置比较值 (3) EC 置 1 使能数字比较功能 (4) 使能 ADC 模块 96H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADDL A1 A0 读 / 写 读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) (5) GO/DONE置 1 开始数字比较功能 (6) 如果模拟输入的值比设置的比较值大,ADIF 会被置 1 如果 ADC 中断使能, 则 ADC 中断将会产生, 用户需要软件清 0 ADCIF (7) 数字比较功能会持续工作, 直到 GO/DONE清 H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADDH A9 A8 A7 A6 A5 A4 A3 A2 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) A9-A0 ADC 数据寄存器采样模拟电压的数字值 当完成转换后, 这个值会更新 如果 ADC 数字比较功能使能 (EC = 1), 这个值将与模拟输入进行比较 58

59 8.3 低电压复位 (LVR LVR) 特性 LVR 去抖动时间 T LVR 为 30-60µs 当供电电压低于设定电压 V LVR 时, 将产生内部复位 低电压复位 (LVR) 功能是为了监测供电电压, 当供电电压低于设定电压 V LVR 时,01 将产生内部复位 LVR 去抖动时间 T LVR 大约为 30µs-60µs LVR 功能打开后, 具有以下特性 (t 表示电压低于设定电压 V LVR 的时间 ): 当 V OUT V LVR 且 t T LVR 时产生系统复位 当 V OUT > V LVR 或 V OUT < V LVR, 但 t < T LVR 时不会产生系统复位 通过代码选项, 可以选择 LVR 功能的打开与关闭 注意 : 在交流电或大容量电池应用中, 接通大负载后容易导致 01 供电暂时低于定义的工作电压 低电压复位可以应用于此, 保护系统在低于设定电压下产生有效复位 59

60 8.4 看门狗定时器 (WDT WDT), 程序超范围溢出 (OVL OVL) 复位及其它复位状态 特性 程序超范围溢出后硬件自动检测, 并产生 OVL 复位 看门狗可以工作在掉电模式下 看门狗溢出频率可选 程序超范围溢出复位 01 为进一步增强 CPU 运行可靠性, 内建程序超范围溢出检测电路, 一旦检测到程序计数器的值超出 ROM 最大值, 或者发现指令操作码 ( 不检测操作数 ) 为 8051 指令集中不存在的 A5H, 便认为程序跑飞, 产生 CPU 复位信号, 同时将 WDOF 标志位置 1 为应用这个特性, 用户应该将未使用的 Flash ROM 用 0xA5 填满 注意 : 由于 01 是流水线结构单片机, 当在程序存储器边界处 ( 如地址 0x3FFC) 安排长周期指令时 ( 如 JMP 指令 ), 虽然程序空间未超出范围, 但由于指令预取指, 同样会产生 OVL 中断 因此, 需检查存储器边界处的指令, 或预留足够的空间 看门狗 看门狗定时器是一个递减计数器, 独立内建 RC 振荡器作为时钟源, 因此可以通过代码选项选择在掉电模式下仍持续运行 当定时器溢出时, 将芯片复位 通过代码选项可以打开或关闭该功能 WDT 控制位 ( 第 2-0 位 ) 用来选择不同的溢出时间 定时器溢出后,WDT 溢出标志 (WDOF) 将由硬件自动置 1 通过读写 RSTSTAT 寄存器, 看门狗定时器在溢出前重新开始计数 其它一些复位标志列举如下 : 60

61 寄存器 Table 8.9 复位状态寄存器 B1H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 RSTSTAT WDOF - PORF LVRF CLRF WDT.2 WDT.1 WDT.0 读 / 写读 / 写 - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR POR) 复位值 (WDT WDT) 1 - u u u 复位值 (LVR LVR) u - u 1 u 复位值 (PIN PIN) u - u u WDOF 5 PORF 4 LVRF 3 CLRF 2-0 WDT[2:0] 看门狗溢出或程序超范围溢出标志位看门狗溢出时由硬件置 1, 可由软件或上电复位清 0 0: 未发生 WDT 溢出或程序超范围溢出 1: 发生 WDT 溢出或程序超范围溢出 上电复位标志位上电复位后硬件置 1, 只能由软件清 0 0: 没有发生上电复位 1: 发生过上电复位 低压复位标志位低压复位后置 1, 可由软件或上电复位清 0 0: 没有发生低压复位 1: 发生过低压复位 Reset 引脚复位标志位引脚复位后置 1, 由软件或上电复位清 0 0: 没有发生引脚复位 1: 发生过引脚复位 WDT 溢出周期控制位 000:WDT RC Clock/2 13 ( 典型值. = 4096ms) 001:WDT RC Clock/2 11 ( 典型值 = 1024ms) 010:WDT RC Clock/2 9 ( 典型值 = 256ms) 011:WDT RC Clock/2 8 ( 典型值 = 128ms) 100:WDT RC Clock/2 7 ( 典型值 = 64ms) 101:WDT RC Clock/2 5 ( 典型值 = 16ms) 110:WD TRC Clock/2 3 ( 典型值 = 4ms) 111:WDT RC Clock/2 1 ( 典型值 = 1ms) 注意 : 内建 WDT RC 的频率不是很精确, 因此需留有一定裕量 61

62 8.5 电源管理 特性 空闲模式和掉电模式两种省电模式 发生中断和复位可退出空闲 (Idle) 掉电(Power-Down) 模式 为减少功耗,01 提供两种低功耗省电模式 : 空闲 (Idle) 模式和掉电 (Power-Down) 模式, 这两种模式都由 PCON 和 SUSLO 两个寄存器控制 空闲模式 空闲模式能够降低系统功耗, 在此模式下, 程序中止运行,CPU 时钟停止, 但外部设备时钟继续运行 空闲模式下,CPU 在确定的状态下停止, 并在进入空闲模式前所有 CPU 的状态都被保存, 如 PC,PSW,SFR,RAM 等 两条连续指令 : 先设置 SUSLO 寄存器为 55H, 随即将 PCON 寄存器中的 IDL 位置 1, 使 01 进入空闲模式 如果按顺序要求的连续指令不被满足,CPU 在下一个机器周期清除 SUSLO 寄存器或 IDL/SIDL 位,CPU 也不会进入空闲模式 IDL 位置 1 是 CPU 进入空闲模式之前执行的最后一条指令 两种方式可以退出空闲模式 : (1) 产生一个中断 这些中断可以是定时器中断, 外部中断,ADC 中断或 PLT 中断 在预热定时结束之后, 恢复 CPU 时钟, 硬件清除 SUSLO 寄存器和 PCON 寄存器的 IDL 位 然后执行中断服务程序, 随后跳转到进入空闲模式指令之后的指令 (2) 复位信号产生后 ( 复位引脚上出现低电平,WDT 复位 ( 如果被允许 ),LVR 复位 ( 如果被允许 )). 在预热定时结束之后,CPU 恢复时钟,SUSLO 寄存器和在 PCON 寄存器中的 IDL 位被硬件清除, 最后 01 复位 然后程序从地址位 0000H 开始执行 RAM 保持不变而 SFR 的值根据不同功能模块改变 掉电模式 掉电模式可以使 01 进入功耗非常低的状态 掉电模式将停止 CPU 和外围设备的所有时钟信号, 通过 OP_WDT 选项决定 WDT 功能是否有效 在进入掉电模式前所有 CPU 的状态都被保存, 如 PC,PSW,SFR,RAM 等 两条连续指令 : 先设置 SUSLO 寄存器为 55H, 随即将 PCON 寄存器中的 PD 位置 1, 使 01 进入掉电模式 如果按顺序要求的连续指令不被满足,CPU 在下一个机器周期清除 SUSLO 寄存器或 PD 位,CPU 也不会进入掉电模式 PD 位置 1 是 CPU 进入掉电模式之前执行的最后一条指令 注意 : 如果同时将 IDL 和 PD 位置 1,01 将进入掉电模式, 不会进入空闲模式 当从掉电模式唤醒后, 硬件会自动清除 IDL 和 PD 位 有两种方式可以退出掉电模式 : (1) 有效外部中断 ( 如 INT0,INT1) 能使 01 退出掉电模式 在中断发生后振荡器启动, 在预热计时结束之后 CPU 时钟和外部设备时钟恢复,SUSLO 寄存器和 PCON 寄存器中的 PD 位会被硬件清除, 然后程序运行中断服务程序 在完成中断服务程序之后, 跳转到进入掉电模式之后的指令继续运行 (2) 复位信号 ( 复位引脚上出现低电平,WDT 复位 ( 如果被允许 ),LVR 复位 ( 如果被允许 )) 在预热计时之后会恢复 CPU 时钟,SUSLO 寄存器和 PCON 寄存器中的 PD 位会被硬件清除, 最后 01 会被复位 然后程序会从 0000H 地址位开始运行 RAM 将保持不变, 而根据不同功能模块 SFR 的值可能改变 注意 : 如要进入这两种低功耗模式, 必须在置位 PCON 中的 IDL/PD 位后增加 3 个空操作指令 62

63 寄存器 Table 8.10 电源控制寄存器 Table 8.11 省电模式控制寄存器 程序举例 : 87H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PCON SMOD SSTAT - - GF1 GF0 PD IDL 读 / 写读 / 写读 / 写 - - 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) SMOD 6 SSTAT 3-2 GF[1:0] 1 PD 0 IDL UART 波特率加倍器 SCON[7:5] 功能选择位 用于软件的通用标志 掉电模式控制位 0: 当一个中断或复位产生时由硬件清 0 1: 由软件置 1 激活掉电模式 空闲模式控制位 0: 当一个中断或复位产生时由硬件清 0 1: 由软件置 1 激活空闲模式 8EH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SUSLO SUSLO.7 SUSLO.6 SUSLO.5 SUSLO.4 SUSLO.3 SUSLO.2 SUSLO.1 SUSLO.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) SUSLO[7:0] 此寄存器用来控制 CPU 进入省电模式 ( 空闲或掉电 ) 只有像下面的连续指令才能使 CPU 进入省电模式, 否则在下个周期中 SUSLO,IDL 或 PD 位将被硬件清 0 IDLE_MODE: MOV SUSLO, #55H ORL PCON, #01H NOP NOP NOP POWERDOWN_MODE: MOV SUSLO, #55H ORL PCON, #02H NOP NOP NOP 63

64 8.6 预热计数器 特性 内建电源预热计数器消除电源的上电的不稳定状态 内建振荡器预热计数器消除振荡器起振时的不稳定状态 01 内建有电源上电预热计数器, 主要是用来消除上电电压建立时的不稳定态, 同时完成内部一些初始化序列, 如读取内部客户代码选项等 01 内建振荡器预热计数器, 它能消除振荡器在下列情况下起振时的不稳定状态 : 上电复位, 引脚复位, 从低功耗模式中唤醒, 看门狗复位和 LVR 复位 上电后,01 会先经过电源上电预热计数过程 ( 约 6ms), 等待溢出后再进行振荡器的预热计数过程过程, 溢出后开始运行程序 电源上电预热计数时间 上电复位 / 引脚复位 / 低电压复位 电源上电预热计数时间 振荡器上电预热计数时间 看门狗复位 ( 不包含掉电模式 ) 电源上电预热计数时间 振荡器上电预热计数时间 看门狗复位 ( 唤醒掉电模式 ) 电源上电预热计数时间 振荡器上电预热计数时间 掉电模式下中断唤醒 电源上电预热计数时间 振荡器上电预热计数时间 11ms CKs 无 1000CKs CKs 2 17 注意 : 对于 8M - 16M 晶体谐振器, 总的振荡器预热时间低于 20ms 看门狗复位 ( 包括上述两种情况 ) 预热时间中需额外加上约 1ms 时间, 因此对于 CKs 为 2MHz, 看门狗复位 ( 不含掉电模式 ) 实际预热时间约 0.5ms+1ms=1.5ms 64

65 8.7 代码选项 OP_LVREN[4] [4]: 0: 禁止低电压复位 (LVR) 功能 ( 默认 ) 1: 允许低电压复位 (LVR) 功能 OP_WDT[3] [3]: 0: 禁止看门狗 (WDT) 功能 ( 默认 ) 1: 允许看门狗 (WDT) 功能 OP_REG33[2] REG33[2]: 0: 禁止内部 3.3V 稳压器 (REG33) 功能 ( 默认 ) 1: 允许内部 3.3V 稳压器 (REG33) 功能 65

66 9. 载波通信 载波通信是 01 的核心模块 包括数字调制解调和模拟前端的单片解决方案, 采用全数字结构实现了扩频载波 (SSC) 和窄带相位调制解调, 具有极强的抗噪声性能 01 支持双载波, 双模式, 过零传输等增强传输模式, 具有极大的灵活性和适用性, 并可有效提高应对各种复杂电力线环境的稳健性 9.1 特性 接收灵敏度 :0.1mVpp 帧长 :0-31 字节 扩频载波调制数据速率 :300bps - 1.6kbps 窄带相位调制 (normal) 数据速率 :1.2kbps - 7.5kbps 窄带相位调制 (high speed) 数据速率 :2.4kbps - 15kbps 带 8051 内核的片上系统 (SOC) 集成模拟前端电路 半双工突发传输 63 位扩频码的扩频载波调制技术 三组扩频码序列, 支持 128 个码分信道 窄带相位调制技术 首创扩频和窄带双模通信方式 集成前向纠错编解码 9.2 框图 集成 RS 码和交织, 抗脉冲干扰强 硬件 16 位循环冗余校验 载波频率可调, 调整范围覆盖 9KHz - 525KHz ( 依赖于硬件 ) 接收双通道, 支持双载波传输 提供超短帧功能, 支持过零传输 ( 依赖于硬件 ) 集成 10 位高速 DAC, 输出正弦波和方波脉冲可选 内建发送端预放大器, 带三态控制和 4 级增益可调 支持外部驱动电路的直接关断 接收端低噪声放大器, 总增益达 90dB 提供接收信号强度指示 (RSSI), 动态范围达 70dB 兼容世界范围频谱规范, 包括 CENELEC EN 和 FCC 规范 TXBUF FEC Coder Narrowband BPSK Mod DAC Filter&Amplifier VOUT SFR CRC16 SSC Mod 8051 core PLT INT PLT Registers RSSI RSSI SSC Demod VIN RXBUF FEC Decoder ADC Filter&Amplifier VINCOM Narrowband BPSK Demod 66

67 9.3 数字调制解调 数据缓冲区 数据缓冲区包括独立的发送缓冲区 (TXBUF) 和接收缓冲区 (RXBUF), 每个缓冲区都有 32 字节的存储空间, 地址从 00H-1FH 数据缓冲区通过 PLADR1 和 PLBUF 这两个 SFR 存取, 其中读取操作自动映像到 RXBUF, 写入操作自动映像到 TXBUF, 用户无法对 RXBUF 写入和对 TXBUF 读取 数据缓冲区地址具有自加功能, 每次读取或写入后地址自动加 1, 当对 1FH 地址读写后自动返回到 00H, 用户可从 PLADR1 读到当前地址 用户也可以指定地址读写 当用户设定 PLT 数据帧长为 31 字节时, 有效数据存放在 00H-1EH 地址 ; 当用户设定 PLT 数据帧长为 20 字节时, 有效数据存放在 00H-13H 地址 ; 当用户设定 PLT 数据帧长为 9 字节时, 有效数据存放在 00H-08H 地址 ; 当用户设定 PLT 数据帧长为 0 字节时, 无有效数据存放到缓冲区中 数据缓冲区在上电复位和系统复位后被初始化为 0, 其它时刻数据不会被清除, 后续数据直接覆盖原数据,PLT 软件复位不会影响数据缓冲区内容 注意 : 当设定数据帧长为 x 字节 (x < 32) 长度时, 读写到 x 地址后地址不会自动返回到 00H, 自动返回只在读写 1FH 地址后发生, 由于数据帧长最长 31 字节, 因此正常应用中不会读写到 1FH 地址 建议用户以指定地址的方式读写数据缓冲区 循环冗余校验 循环冗余校验 (CRC) 用于检测数据传输是否发生错误, 当接收方检测到数据传输错误时可要求发送方重新发送该数据 01 选择误检概率极低的 16 位 CRC 校验 (CRC16) CRC16 是可选模块, 使能 CRC 校验时, 接收端在 CRC 校验正确后才置位 RXINT, 并送出 PLT 中断 ( 中断使能情况下 ) 禁止 CRC 校验时, 接收端在完整接收完一帧数据后即置位 RXINT 并申请中断 接收到的 16 位校验码存放在 CRCH,CRCL CRCL 寄存器中 注意 : 无论是否使能 CRC 模块, 发送端都会把 16 位 CRC 校验码添加在数据帧的末端并发送 前向纠错编译码 前向纠错编译码 (FEC) 用于纠正数据传输错误, 当传输错误在一定范围以内时, 接收方可直接把错误修正, 无需重新发送数据, 提高了抗噪声性能 01 使用了包括 RS 码和交织技术在内的多种措施以抵抗电力线上普遍存在的突发脉冲干扰 FEC 是一个可选模块 使能 FEC 后数据帧长只能通过 UMR2 寄存器中 MPKG1/0 来指定, 共有三种长度选择 :9 字节,20 字节, 31 字节 禁止 FEC 时, 数据帧长通过 UMR2 寄存器中 LPKG4-0 来指定, 可设为 0 字节到 31 字节的任一长度 扩频载波调制 扩频的目的是通过增加信号带宽来增强抗噪声能力,01 使用 63 位扩频码, 能够提供 18dB 的处理增益 01 提供三个扩频码组, 每个码组内含 64 个扩频码序列, 共计 192 个扩频码序列, 其中可最多提供 128 个码分信道 扩频码组通过 SSCI 寄存器中的 SSCS1/0 位来选择, 扩频码序列通过 SSCI5-0 和 SSCQ5-0 位来选择 扩频捕获门限可通过 TACQ 寄存器调节 注意 : 各个扩频码码和码序列性能会有差异, 我们推荐使用扩频码组 3 的 0 号码作为常用码 载波频率 载波频率计算公式如下 : 8*( N +1)* fsamp f (N = 0,1,2,,254) C = 212 其中 N 为频率调整索引, 可通过 TXFC,RXFC 两个寄存器指定, 通信时要求收发端设定相同的频率 f samp 为 PLT 模块时钟 ( 见系统时钟和振荡器 ) 的十分之一 67

68 9.3.6 窄带 BPSK 调制 窄带 BPSK 具有较高的传输速率, 适用于对传输速率有要求的应用 根据传输速率不同, 窄带还分为 high speed 模式和 normal 模式, 通过 SPEED 位选择 High speed 模式比 normal 模式速率提高一倍, 但抗噪声能力相应会降低约 3dB 通过 UMR1 寄存器的 MODE1/0 位可选择调制方式 超短帧调制 超短帧调制是一种特殊的调制方式, 通过把用户数据帧分解成多个超短帧来传输, 每个超短帧可以穿过电力线过零间隙 如图所示 : Zero Cross (10ms) Super Short Package User Payload 超短帧调制默认不使用 FEC 此时超短帧长度由 LPKG 设定 每个超短帧只传送 LPKG 长的数据, 其发送和接收与其他调制方式相同, 即数据加载到 TXBUF 中, 或者从 RXBUF 中读取, 用户数据帧会分成多个超短帧发送 此时不能直接使用内建的 CRC16 校验, 需用户自行设计校验方式 注意 : 每个超短帧都包含独立的同步头和数据, 但不会添加 CRC16 校验字 超短帧调制下可使能 FEC, 此时操作和其他调制方式有较大区别 发送端把用户数据帧加载到 TXBUF 中, 设置 FEC_ENC = 1 开启一次 FEC 编码操作 ( 同时在数据帧末尾会添加 CRC16 校验字 ), 编码完成后 FEC_ENC 自动返回 0, 并置位 FEC_DONE 编码完成后的数据 ( 称为用户 FEC 编码数据帧 ) 存放在内部 FEC RA M 中, 每次发送, 从 FEC RAM 取 LPKG 长数据, 地址偏移由 FRAM_OFFSET 指定 接收端完整接收一个用户 FEC 编码数据帧, 存放在 FEC RAM 中, 设置 FEC_DEC = 1 开启一次 FEC 译码操作, 译码完成后 FEC_DEC 自动返回 0, 同时置位 FEC_DONE, 译码以后的数据恢复为用户数据帧, 存放在 RXBUF 中供读取, 其中接收到的 CRC16 校验字自动存放在 CRCH/CRCL 中 超短帧调制过零传输需外部过零检测电路支持, 具体参考 应用电路 载波频率检测 01 提供了载波频率检测功能 当使能 UMR4 中 CFD_OP 时, 开启频率检测功能, 使用 PLT 时钟二分频作为检测时钟, CFD_UP 和 CFD_DOWN 两个门限寄存器控制检测结果 检测到符合要求的载波以后, 送出 PLT 中断 ( 假如开启 ), 同时置位 PLSTAT 中 CFD_DONE 标记 68

69 9.4 模拟前端 发送预放大器 发送预放大器用于外部线路驱动器 (Line Driver) 的前端预放大, 具有三态输出功能, 在待机和接收时呈现高阻状态, 在发送时能提供至少 10mA 的驱动能力 发送预放大器为单端电压输出, 具有低输出阻抗, 具有 AV DD /2 的直流输出偏置 发送预放大器具有 4 级输出幅度, 通过 UMR3 寄存器的 AMPS1/0 位调节 输出幅度调节 幅度控制字 (AMPS1/0) 输出状态 接收信号强度指示 接收信号强度指示 (RSSI) 为可选模块, 通过 PLCON 寄存器的 RSSIEN 位选择 RSSI 模块具有线性对数特性, 具有真实有效值检测能力 (True RMS) RSSI 模块提供 70dB 检测动态范围 输入信号范围 :44dBuV - 114dBuV 输出电压范围 :650mV - 3.0V 传输曲线 : 如图所示 发送预放大器输出幅度调节 内部增益 (db) 输出幅度 (Vp-p) 00 ( 默认 ) 发送预放大器输出状态表 载波模块工作状态接收 / 发送输出状态 待机无效高阻 工作发送输出 工作接收高阻 待机无效高阻 RSSI Transfer Function A Fin=120KHz 2.5 RSSI Output Voltage V RSSI (V) B Input Signal Level V IN (dbuv) V RSSI,mV = -33.6mV/dB * V IN,dBuV mV RSSI 传输曲线 69

70 A 点 :V IN = 44dBuV,V RSSI = 3.0V B 点 :V IN = 114dBuV,V RSSI = 650mV RSSI 输出在 AFE 内部直接连接到 ADC 通道 0( 详见模数转换器章节 ), 此时外部 RSSI 引脚可接一电容到 AGND 注意 : RSSI 引脚外接电容可根据输出纹波与响应时间选择, 默认选择 100nF 电容, 要求快速响应时可减小电容值 RSSI 使用寄存器 PLRSSIL,PLRSSIH PLRSSIH 两个寄存器进行 RSSI 曲线校准, 上电时直接从此两寄存器中读取校准参数, 根据校 准算法进行幅度校准, 详见 01 载波模块应用说明 RSSI 工作状态表 RSSI 工作状态表 载波模块使能 (PLTEN) 接收 / 发送 (TRC) RSSI 使能 (RSSIEN) RSSI 模块状态 禁止 无效 禁止 关闭 禁止 无效 使能 开启 使能 接收 禁止 关闭 使能 接收 使能 开启 使能 发送 禁止 关闭 使能 发送 使能 开启 带通滤波器 AFE 内建一个开关电容带通滤波器, 此滤波器为可选模块, 通过 UMR3 寄存器的 AFEBPF 位选择, 如置 AFEBPF 为 1, 则带 通滤波器被旁路掉, 同时电路也处于关闭状态 带通滤波器中心频率固定为 PLT 模块时钟的一百分之一 接收通道二选一 AFE 内建一个模拟二选一电路, 用于选择两路接收信号, 通过 UMR3 寄存器的 AFECH 位选择 输入通路选择 控制位 (AFECH) 信号输入引脚 0 ( 默认 ) VIN 1 VINCOM 70

71 9.5 操作描述 PLT 模块工作时主要有三个状态 : 待机 (Standby), 接收 (Receiving) 和发送 (Transmitting) 待机状态是 PLT 模块的初始状态, 此时 PLTEN = 0,PLT 模块关闭 建议用户在待机状态完成通信寄存器配置 用户要使用 PLT 模块进行通信, 按以下过程进行操作 : (1) 系统复位后, 配置 PLT 通信寄存器, 置位 PLTEN 使能 PLT 模块, 进入接收状态 注意 : 应避免在发送期间和接收期间配置 PLT 通信寄存器, 建议在 PLT 模块关闭状态下, 或者在等待接收期间配置通信寄存器 (2) 如用户要求发送, 则加载发送数据进入 TXBUF, 查询 RXINT 是否置位, 如未置位, 则置 TRC 位为 1 开始发送, 发送期间 TRC 位保持为 1 表示发送忙, 如发送前查询到 RXINT 置位, 则需先处理接收数据再进行发送 注意 : 如查询到 RXINT 置位而未处理, 直接置 TRC 为 1, 则不会进入发送流程, 无信号发送 必须清除 RXINT 位后才能启动发送 (3) 发送期间查询 TRC 位以确认是否发送完, 发送完成后会置位 TXINT 标记, 同时申请 PLT 中断 ( 中断使能情况下 ), 如未开启中断, 则通过查询 TRC 位或 TXINT 标记以确定发送完成 发送完成后需清除 TXINT 标记 (4) 接收端在完整接收一帧数据以后, 如使能 CRC 校验, 并且校验正确, 则置位 RXINT 标记, 同时申请 PLT 中断 ( 中断使能情况下 ), 如未开启中断, 则通过查询 RXINT 标记以确定接收成功 如 CRC 校验错误, 则不会置位 RXINT 标记 如未使能 CRC 校验, 接收端在完整接收一帧数据后即置位 RXINT 标记 同时申请 PLT 中断 ( 中断使能情况下 ), 如未开启中断, 则通过查询 RXINT 标记以确定接收成功 此时数据帧的校验须由用户完成 注意 :RXPD 标记和 RXFA 标记分别在帧前导检测和帧同步检测阶段置位, 可查询此两标记以确认信号接收所处阶段 例如, 用户可在检测到 RXFA 标记以后启动 RSSI 电压采样操作, 以用于获取接收信号强度 (5) 用户从 RXBUF 中读取接收数据, 清除 RXINT 标记, 使能接收 注意 :RXINT 置位后如未清除则无法再次接收数据, 因此必须及时处理 RXINT 标记 (6) 用户可用查询 TXINT 和 RXINT 标记的方式来控制载波的收发, 也可用中断方式来控制载波的收发, 开启 PLT 中断后需在中断服务程序中查询 TXINT 和 RXINT 标记以确认是发送完成中断还是接收完成中断 (7) 如不需 PLT 通信, 可关闭 PLT 模块以降低功耗 /*PLT 通信配置寄存器配置实例 */ Void Plt_SettingRegister() { PLCON ^= 0x04; // PLT 模块软复位 PLADR2 = UMR1; PLREG = 0x00; // 模式配置为扩频调制 ( 默认, 可略 ) PLADR2 = UMR2; PLREG = 0x9F; // 帧长设置为 31 字节 PLADR2 = UMR3; PLREG = 0x41; // 关闭内部 DBPF, 关闭 ABPF, 使用 VIN 通道 PLADR2 = TXFC; PLREG = 0x5C; // 发送载频点设置为 290KHz PLADR2 = RXFC; PLREG = 0x5C; // 接收载频点设置为 290KHz PLADR2 = SSCI; PLREG = 0x80; // 选择 3 号码组, 选择 0 号序列 PLADR2 = SSCQ; PLREG = 0x00; // 选择 0 号序列 ( 必须与 SSCI 序列号相同 ) PLADR2 = TACQ; PLREG = 0x08; // 扩频捕获门限 PLADR2 = TFA; PLREG = 0x0A; // 帧同步门限 ( 默认, 可略 ) PLCON = 0xE8; //PLT 使能, CRC 使能, FEC 使能, RSSI 使能 CLKCON = 0x00; // PLT 模块时钟不分频 PLOCK = 0x5A // 加锁, PLT 通信配置寄存器设置写保护 } 71

72 /*PLT 中断方式控制收发实例 */ EA = 1; // 允许所有中断 EPLT =1; // 允许 PLT 中断 void PLT_ISR() interrupt 7 //PLT 中断处理子程序 { if(rxint) // 判断是发送完成还是接收完成 { RXINT = 0; // 接收完成, 清除标记, 返回接收状态 for(i=0; i<31; i++ ) { PLADR1 = i; data_rcv[i ] = PLBUF ; } // 从 RXBUF 读取接收数据, 存放 data_rcv 中 rx_flag = 1; // 置接收完成标记 } else if(txint) { TXINT = 0; // 发送结束, 清 TXINT, 返回接收状态 tx_flag = 1; // 置发送完成标记 } } /*PLT 查询方式控制收发实例 */ whilie(1) { if(rxint) { RXINT = 0; } for(i=0; i<31; i++ ) { PLADR1 = i; data_rcv[i ] = PLBUF ; // 判断是发送完成还是接收完成 // 接收完成, 清除标记, 返回接收状态 } // 从 RXBUF 读取接收数据, 存放 data_rcv 中 rx_flag = 1; // 置接收完成标记 } else if(txint) { } TXINT = 0; tx_flag = 1; // 程序其他操作 // 发送结束, 清 TXINT, 返回接收状态 // 置发送完成标记 72

73 9.6 寄存器 PLT 模块包括 SFR 控制寄存器以及内部通信配置寄存器 (SR), 内部通信寄存器通过 PLADR2 和 PLREG 读写, 通信时需要收发双方匹配通信设置 为避免误操作和被干扰,PLT 提供了通信配置寄存器锁定机制, 一旦锁定, 通信配置信息不能被修改, 但能够读出 Table 9.1 PLT 状态寄存器 (PLSTAT) D8H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PLSTAT TXINT FEC_DONE CFD_DONE - RXNFA RXFA RXPD RXINT 读 / 写读 / 写读 / 写读 / 写 - 读读读读 / 写 复位值 TXINT 6 FEC_DONE 5 CFD_DONE 3 RXNFA 2 RXFA 1 RXPD 0 RXINT 发送完成标记 ( 默认为 0, 硬件置位, 软件复位 ) 0: 未发送完成 1: 发送完成, 请求 PLT 中断 ( 如 PLT 中断使能 ), 需软件清零在 Standby 和 Soft Reset 状态下被清零 FEC 编解码完成标记 ( 默认为 0, 硬件置位, 软件复位 ) 0: 未完成 FEC 1: 编解码完成, 需软件清零在 Standby 和 Soft Reset 状态下被清零 载频检测成功标记 ( 默认为 0, 硬件置位, 软件复位 ) 0: 未完成检测 1: 检测成功, 请求 PLT 中断 ( 如 PLT 中断使能 ), 需软件清零在 Standby 和 Soft Reset 状态下被清零 反极性帧同步检测标记 ( 默认为 0, 硬件置位和复位 ) 0: 无反极性帧同步标记 1: 检测到反极性帧同步, 随 RXINT 清除而自动清零, 在接收时间溢出时自动清零在 Standby 和 Soft Reset 状态下被清零 正极性帧同步检测标记 ( 默认为 0, 硬件置位和复位 ) 0: 无正极性帧同步标记 1: 检测到正极性帧同步, 随 RXINT 清除而自动清零, 在接收时间溢出时自动清零在 Standby 和 Soft Reset 状态下被清零 分组检测成功标记 ( 默认为 0, 硬件置位和复位 ) 0: 无分组检测成功标记 1: 成功检测到分组, 随 RXINT 清除而自动清零, 在接收时间溢出时自动清零在 Standby 和 Soft Reset 状态下被清零 接收完成标记 ( 默认为 0, 硬件置位, 软件复位 ) 0: 未接收完成 1: 接收完成, 请求 PLT 中断 ( 如 PLT 中断使能 ), 需软件清零在 Standby 和 Soft Reset 状态下被清零 73

74 Table 9.2 PLT 控制寄存器 (PLCON) Table 9.3 PLT 数据缓冲区地址 (PLADR1) D9H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PLCON PLTEN CRCEN FECEN FACPR RSSIEN SRST - TRC 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 - 读 / 写 复位值 PLTEN 6 CRCEN 5 FECEN 4 FACPR 3 RSSIEN 2 SRST 0 TRC PLT 使能 ( 默认为 0, 软件置位和复位 ) 0: 禁止 PLT 1: 开启 PLT 在 Soft Reset 状态下被清零 CRC16 校验使能 ( 默认为 0, 软件置位和复位 ) 0: 禁止 CRC16 校验 1: 开启 CRC16 校验在 Soft Reset 状态下被清零,Standby 状态下不影响 FEC 使能 ( 默认为 0, 软件置位和复位 ) 0: 禁止 FEC 1: 开启 FEC 在 Soft Reset 状态下被清零,Standby 状态下不影响 反极性帧同步字使能 ( 默认为 0, 软件置位和复位 ) 0: 禁止反极性帧同步字, 发送正极性帧同步字 1: 开启反极性帧同步字, 发送反极性帧同步字在 Soft Reset 状态下被清零,Standby 状态下不影响 RSSI 使能 ( 默认为 0, 软件置位和复位 ) 0: 禁止 RSSI 1: 开启 RSSI 在 Soft Reset 状态下被清零,Standby 状态下不影响 PLT 软件复位 ( 默认为 0, 软件置位, 硬件复位 ) 置位 SRST 将开启一次软件复位操作, 将复位内部控制信号和标记, 通信配置寄存器, 但不影响 SFR 控制寄存器其它内容, 也不影响数据缓冲区, 复位无需等待时间, 完成后 SRST 自动返回 0 PLT 收发控制 ( 默认为 0, 软件置位, 软件复位或硬件复位 ) 0: 接收使能 1: 发送使能, 发送完成后自动返回 0 在 Standby 和 Soft Reset 状态下被清零 DAH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PLADR ADR1.4 ADR1.3 ADR1.2 ADR1.1 ADR1.0 读 / 写 读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 ADR1.4-0 PLT 数据缓冲区读写地址寄存器, 范围 :00H - 1FH 74

75 Table 9.4 PLT 数据缓冲区数据 (PLBUF) Table 9.5 PLT 配置寄存器地址 (PLADR2) Table 9.6 PLT 配置寄存器数据 (PLREG) Table 9.7 PLT 通信配置寄存器锁定 (PLOCK) DBH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PLBUF BUF.7 BUF.6 BUF.5 BUF.4 BUF.3 BUF.2 BUF.1 BUF.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 BUF.7-0 PLT 数据缓冲区读写数据寄存器 DCH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PLADR2 - - ADR2.5 ADR2.4 ADR2.3 ADR2.2 ADR2.1 ADR2.0 读 / 写 - - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 ADR2.5-0 PLT 通信配置寄存器读写地址寄存器, 范围 :00H - 3FH DDH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PLREG REG.7 REG.6 REG.5 REG.4 REG.3 REG.2 REG.1 REG.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 REG.7-0 PLT 通信配置寄存器读写数据寄存器 DFH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PLOCK LOCK.7 LOCK.6 LOCK.5 LOCK.4 LOCK.3 LOCK.2 LOCK.1 LOCK.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 LOCK.7-0 PLT 通信配置寄存器锁定 ( 默认值 , 软件设置 ) : 解锁状态其它 : 锁定状态 ( 写保护 ), 推荐设为

76 Table 9.8 PLT 通信配置寄存器 ( 通过 PLADR2,PLREG 读写 ) 名称地址说明读 / 写默认值 UMR1 00H 用户模式寄存器 1 读 / 写 UMR2 01H 用户模式寄存器 2 读 / 写 UMR3 02H 用户模式寄存器 3 读 / 写 TXFC 03H 发送端载波频率配置读 / 写 RXFC 04H 接收端载波频率配置读 / 写 SSCI* 05H I 通道扩频码序列选择和扩频码组选择读 / 写 SSCQ* 06H Q 通道扩频码序列选择读 / 写 TACQ* 07H 扩频捕获门限读 / 写 TFA 08H 帧同步门限读 / 写 CRCH 09H 接收到 16 位 CRC 校验字高字节读 CRCL 0AH 接收到 16 位 CRC 校验字低字节读 SNR* 0BH 扩频信号质量估计读 NACQDT** 0CH 窄带調制同步捕获门限下限读 / 写 NACQUT** 0DH 窄带調制同步捕获门限上限读 / 写 NACQCT** 0EH 窄带調制同步捕获计数门限读 / 写 NTRKST** 0FH 窄带調制同步跟踪门限读 / 写 PLRSSIL 10H RSSI 曲线校准控制字低字节读 PLRSSIH 11H RSSI 曲线校准控制字高字节读 FRAM_OFFSET 12H FRAM 读写地址偏移, 每个偏移代表 1 byte 数据读 / 写 UMR4 13H 用户模式寄存器 4 读 / 写 CFD_CNT 14H 载波频率检测电路输出计数值读 CFD_UP 15H 载波频率检测电路门限上限读 / 写 CFD_DOWN 16H 载波频率检测电路门限下限读 / 写 注意 : -: 保留位, 读为 0 *:SSCI/SSCQ/TACQ/SNR 为扩频调制特有寄存器, 在窄带调制中没有意义 **:NACQDT/NACQUT/NACQCT/NTRKST 为窄带调制特有寄存器, 在扩频调制中没有意义 76

77 Table 9.9 UMR1 寄存器 Table 9.10 UMR2 寄存器 00H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 UMR1 MODE1 MODE0 SPEED LIMIT_OP PULSE_OP FEC_ENC FEC_DEC SCRM_OP 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 MODE1/0 5 SPEED 4 LIMIT_OP 3 PULSE_OP 2 FEC_ENC 1 FEC_DEC 0 SCRM_OP PLT 模式选择 ( 默认为 00, 软件置位和复位 ) 00: 扩频载波调制 01: 保留 10: 窄带 BPSK 调制 11: 超短帧调制 窄带模式速度选择 ( 默认为 0, 软件置位和复位 )( 包括窄带 BPSK 调制与超短帧调制 ) 0:normal 模式 1:high speed 模式 RX 波形输出选择 ( 默认为 0, 软件置位和复位 )( 宽带窄带下都有效 ) 0: 正常模式,RX 波形不输出,P0.7 作为普通 I/O 口 1:RX 波形输出模式,P0.7 输出接收波形 TX 脉冲输出选择 ( 默认为 0, 软件置位和复位 )( 宽带窄带下都有效 ) 0: 正常模式,DAC 输出,P0.6 作为普通 I/O 口 1: 方波脉冲输出模式,P0.6 输出调制方波 FEC 编码选择 ( 默认为 0, 软件置位和复位 )(FEC 未使能时也有效 ) 0: 不做编码动作 1: 开启一次 FEC 编码动作 FEC 译码选择 ( 默认为 0, 软件置位和复位 )(FEC 未使能时也有效 ) 0: 不做译码动作 1: 开启一次 FEC 译码动作 扰码关闭选择 ( 默认为 0, 软件置位和复位 )( 仅 FEC 使能时有效 ) 0: 正常模式, 扰码不关闭 1: 扰码关闭模式 01H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 UMR2 MPKG1 MPKG0 - LPKG.4 LPKG.3 LPKG.2 LPKG.1 LPKG.0 读 / 写读 / 写读 / 写 - 读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 MPKG1/0 4-0 LPKG.4-0 FEC 使能时帧长选择 ( 默认为 0, 软件设置 ) 00:9 字节 01:20 字节 10:31 字节 11: 保留 FEC 禁止时帧长选择 ( 默认为 9, 软件设置 ) LPKG.4-0:0-31 字节,0 字节表示无数据传输 77

78 Table 9.11 UMR3 寄存器 Table 9.12 TXFC 寄存器 02H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 UMR3 WAVE_OP DBPF DBPFS1 DBPFS0 AMPS1 AMPS0 AFECH AFEBPF 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 WAVE-OP 6 DBPF 5-4 DBPFS1/0 3-2 AMPS1/0 1 AFECH 0 AFEBPF 输出波形选择 ( 默认为 0, 软件置位和复位 )( 仅窄带下有效 ) 0: 正常模式 1: 恒包络模式 PLT 内部数字带通滤波器旁路选择 ( 默认为 0, 软件置位和复位 )( 仅窄带方案 ) 0: 滤波器使能 1: 滤波器旁路 PLT 内部数字带通滤波器参数选择 ( 默认为 00, 软件设置 ) 00: 宽带滤波器, 中心频点匹配载频参数 N = 50 01: 窄带滤波器, 中心频点匹配载频参数 N = 50 10: 窄带滤波器, 中心频点匹配载频参数 N = 63 11: 窄带滤波器, 中心频点匹配载频参数 N = 89 发送预放大器增益选择 ( 默认为 00, 软件设置 ) 00:0dB 01:-3dB 10:-6dB 11:-9dB 模拟前端输入通道选择 ( 默认为 0, 软件设置 ) 0: 接收信号从 VIN 脚输入 1: 接收信号从 VINCOM 脚输入 模拟前端带通滤波器旁路选择 ( 默认为 0, 软件置位和复位 ) 0: 滤波器使能 1: 滤波器旁路 03H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TXFC TXFC.7 TXFC.6 TXFC.5 TXFC.4 TXFC.3 TXFC.2 TXFC.1 TXFC.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 TXFC.7-0 发送端载波频率设置, 从 0-254, 默认 50 78

79 Table 9.13 RXFC 寄存器 Table 9.14 SSCI 寄存器 Table 9.15 SSCQ 寄存器 Table 9.16 TACQ 寄存器 04H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 RXFC RXFC.7 RXFC.6 RXFC.5 RXFC.4 RXFC.3 RXFC.2 RXFC.1 RXFC.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 RXFC.7-0 接收端载波频率设置, 从 0-254, 默认 50 05H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SSCI SSCS1 SSCS0 SSCI.5 SSCI.4 SSCI.3 SSCI.2 SSCI.1 SSCI.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 SSCS1/0 扩频码组选择 ( 默认为 0, 软件设置 ) 00: 扩频码组 1 01: 扩频码组 2 10: 扩频码组 3 11: 保留 5-0 SSCI.5-0 I 通道扩频码序列选择, 从 0-63, 默认 0 06H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SSCQ - - SSCQ.5 SSCQ.4 SSCQ.3 SSCQ.2 SSCQ.1 SSCQ.0 读 / 写 - - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 SSCQ.5-0 Q 通道扩频码序列选择, 从 0-63, 默认 0 07H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TACQ - - TACQ.5 TACQ.4 TACQ.3 TACQ.2 TACQ.1 TACQ.0 读 / 写 - - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 TACQ.5-0 扩频捕获门限, 默认 16 79

80 Table 9.17 TFA 寄存器 08H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 TFA TFA.3 TFA.2 TFA.1 TFA.0 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 复位值 位编号 位符号 说明 3-0 TFA.3-0 帧同步门限, 默认 10 Table 9.18 CRCH 寄存器 09H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 CRCH CRCH.7 CRCH.6 CRCH.5 CRCH.4 CRCH.3 CRCH.2 CRCH.1 CRCH.0 读 / 写 读 读 读 读 读 读 读 读 复位值 位编号 位符号 说明 7-0 CRCH.7-0 接收到 CRC 校验字高字节 Table 9.19 CRCL 寄存器 0AH 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 CRCL CRCL.7 CRCL.6 CRCL.5 CRCL.4 CRCL.3 CRCL.2 CRCL.1 CRCL.0 读 / 写 读 读 读 读 读 读 读 读 复位值 位编号 位符号 说明 7-0 CRCL.7-0 接收到 CRC 校验字低字节 Table 9.20 SNR 寄存器 0BH 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 SNR SNR.7 SNR.6 SNR.5 SNR.4 SNR.3 SNR.2 SNR.1 SNR.0 读 / 写 读 读 读 读 读 读 读 读 复位值 位编号 位符号 说明 7-0 SNR.7-0 接收端信噪比估计值 80

81 Table 9.21 NACQDT 寄存器 Table 9.22 NACQUT 寄存器 Table 9.23 NACQCT 寄存器 Table 9.24 NTRKST 寄存器 0CH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 NACQDT NACQDT.7 NACQDT.6 NACQDT.5 NACQDT.4 NACQDT.3 NACQDT.2 NACQDT.1 NACQDT.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 NACQDT.7-0 窄带 normal 模式同步捕获门限下限, 默认 120 窄带 high speed 模式下需设置为 60 0DH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 NACQUT NACQUT.7 NACQUT.6 NACQUT.5 NACQUT.4 NACQUT.3 NACQUT.2 NACQUT.1 NACQUT.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 NACQUT.7-0 窄带 normal 模式同步捕获门限上限, 默认 200 窄带 high speed 模式下需设置为 100 0EH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 NACQCT NACQCT.3 NACQCT.2 NACQCT.1 NACQCT.0 读 / 写 读 / 写读 / 写读 / 写读 / 写 复位值 NACQCT.3-0 窄带調制同步捕获计数门限, 默认 6 normal 模式和 high speed 模式无需修改 0FH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 NTRKST NTRKST.7 NTRKST.6 NTRKST.5 NTRKST.4 NTRKST.3 NTRKST.2 NTRKST.1 NTRKST.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 NTRKST.7-0 窄带 normal 模式同步跟踪门限, 默认 240 窄带 high speed 模式下需设置为

82 Table 9.25 PLRSSIL 寄存器 Table 9.26 PLRSSIH 寄存器 Table 9.27 FRAM_OFFSET 寄存器 Table 9.28 UMR4 寄存器 10H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PLRSSIL RSSIL.7 RSSIL.6 RSSIL.5 RSSIL.4 RSSIL.3 RSSIL.2 RSSIL.1 RSSIL.0 读 / 写读读读读读读读读 复位值 PLRSSIL.7-0 RSSI 曲线校准控制字低字节 11H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PLRSSIH RSSIH.7 RSSIH.6 RSSIH.5 RSSIH.4 RSSIH.3 RSSIH.2 RSSIH.1 RSSIH.0 读 / 写读读读读读读读读 复位值 PLRSSIH.7-0 RSSI 曲线校准控制字高字节 12H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 FRAM_OFFSET - OFFSET.6 OFFSET.5 OFFSET.4 OFFSET.3 OFFSET.2 OFFSET.1 OFFSET.0 读 / 写 - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 OFFSET.6-0 FRAM 读写地址偏移, 每个偏移代表 1 byte 数据 13H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 UMR4 CFD_OP 读 / 写读 / 写 复位值 CFD_OP 载波频率检测电路选择 ( 默认为 0, 软件置位和复位 ) 0: 检测电路关闭 1: 检测电路开启 82

83 Table 9.29 CFD_CNT 寄存器 14H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 CFD_CNT CNT.7 CNT.6 CNT.5 CNT.4 CNT.3 CNT.2 CNT.1 CNT.0 读 / 写 读 读 读 读 读 读 读 读 复位值 位编号 位符号 说明 7-0 CFD_CNT.7-0 载波频率检测电路输出计数值 Table 9.30 CFD_UP 寄存器 15H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 CFD_UP UP.7 UP.6 UP.5 UP.4 UP.3 UP.2 UP.1 UP.0 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 复位值 位编号 位符号 说明 7-0 CFD_UP.7-0 载波频率检测电路门限上限 Table 9.31 CFD_DOWN 寄存器 16H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 CFD_DOWN DOWN.7 DOWN.6 DOWN.5 DOWN.4 DOWN.3 DOWN.2 DOWN.1 DOWN.0 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 复位值 位编号 位符号 说明 7-0 CFD_DOWN.7-0 载波频率检测电路门限下限 83

84 10. 指令集 算术操作指令 指令功能描述代码字节周期 ADD A, Rn 累加器加寄存器 0x28-0x2F 1 1 ADD A, direct 累加器加直接寻址字节 0x ADD 累加器加内部 RAM 0x26-0x ADD A, #data 累加器加立即数 0x ADDC A, Rn 累加器加寄存器和进位位 0x38-0x3F 1 1 ADDC A, direct 累加器加直接寻址字节和进位位 0x ADDC 累加器加内部 RAM 和进位位 0x36-0x ADDC A, #data 累加器加立即数和进位位 0x SUBB A, Rn 累加器减寄存器和借位位 0x98-0x9F 1 1 SUBB A, direct 累加器减直接寻址字节和借位位 0x SUBB 累加器减内部 RAM 和借位位 0x96-0x SUBB A, #data 累加器减立即数和借位位 0x INC A 累加器加 1 0x INC Rn 寄存器加 1 0x08-0x0F 1 2 INC direct 直接寻址字节加 1 0x 内部 RAM 加 1 0x06-0x DEC A 累加器减 1 0x DEC Rn 寄存器减 1 0x18-0x1F 1 2 DEC direct 直接寻址字节减 1 0x 内部 RAM 减 1 0x16-0x INC DPTR 数据指针加 1 0xA3 1 4 MUL AB 8 X 8 16 X 8 DIV AB 8 / 8 16 / 8 累加器乘寄存器 B 0xA4 1 累加器除以寄存器 B 0x84 1 DA A 十进制调整 0xD

85 逻辑操作指令 指令 功能描述 代码 字节 周期 ANL A, Rn 累加器与寄存器 0x58-0x5F 1 1 ANL A, direct 累加器与直接寻址字节 0x ANL 累加器与内部 RAM 0x56-0x ANL A, #data 累加器与立即数 0x ANL direct, A 直接寻址字节与累加器 0x ANL direct, #data 直接寻址字节与立即数 0x ORL A, Rn 累加器或寄存器 0x48-0x4F 1 1 ORL A, direct 累加器或直接寻址字节 0x ORL 累加器或内部 RAM 0x46-0x ORL A, #data 累加器或立即数 0x ORL direct, A 直接寻址字节或累加器 0x ORL direct, #data 直接寻址字节或立即数 0x XRL A, Rn 累加器异或寄存器 0x68-0x6F 1 1 XRL A, direct 累加器异或直接寻址字节 0x XRL 累加器异或内部 RAM 0x66-0x XRL A, #data 累加器异或立即数 0x XRL direct, A 直接寻址字节异或累加器 0x XRL direct, #data 直接寻址字节异或立即数 0x CLR A 累加器清零 0xE4 1 1 CPL A 累加器取反 0xF4 1 1 RL A 累加器左环移位 0x RLC A 累加器连进位标志左环移位 0x RR A 累加器右环移位 0x RRC A 累加器连进位标志右环移位 0x SWAP A 累加器高 4 位与低 4 位交换 0xC

86 数据传送指令 指令 功能描述 代码 字节 周期 MOV A, Rn 寄存器送累加器 0xE8-0xEF 1 1 MOV A, direct 直接寻址字节送累加器 0xE5 2 2 MOV 内部 RAM 送累加器 0xE6-0xE7 1 2 MOV A, #data 立即数送累加器 0x MOV Rn, A 累加器送寄存器 0xF8-0xFF 1 2 MOV Rn, direct 直接寻址字节送寄存器 0xA8-0xAF 2 3 MOV Rn, #data 立即数送寄存器 0x78-0x7F 2 2 MOV direct, A 累加器送直接寻址字节 0xF5 2 2 MOV direct, Rn 寄存器送直接寻址字节 0x88-0x8F 2 2 MOV direct1, direct2 直接寻址字节送直接寻址字节 0x MOV 内部 RAM 送直接寻址字节 0x86-0x MOV direct, #data 立即数送直接寻址字节 0x A 累加器送内部 RAM 0xF6-0xF7 1 2 direct 直接寻址字节送内部 RAM 0xA6-0xA7 2 3 #data 立即数送内部 RAM 0x76-0x MOV DPTR, #data16 16 位立即数送数据指针 0x MOVC 程序代码送累加器 ( 相对数据指针 ) 0x MOVC 程序代码送累加器 ( 相对程序计数器 ) 0x MOVX 外部 RAM 送累加器 (8 位地址 ) 0xE2-0xE3 1 5 MOVX 外部 RAM 送累加器 (16 位地址 ) 0xE0 1 6 A 累加器送外部 RAM(8 位地址 ) 0xF2-F3 1 4 A 累加器送外部 RAM(16 位地址 ) 0xF0 1 5 PUSH direct 直接寻址字节压入栈顶 0xC0 2 5 POP direct 栈顶弹至直接寻址字节 0xD0 2 4 XCH A, Rn 累加器与寄存器交换 0xC8-0xCF 1 3 XCH A, direct 累加器与直接寻址字节交换 0xC5 2 4 XCH 累加器与内部 RAM 交换 0xC6-0xC7 1 4 XCHD 累加器低 4 位与内部 RAM 低 4 位交换 0xD6-0xD

87 控制程序转移指令 指令功能描述代码字节周期 ACALL addr11 2KB 内绝对调用 0x11-0xF1 2 7 LCALL addr16 64KB 内长调用 0x RET 子程序返回 0x RETI 中断返回 0x AJMP addr11 2KB 内绝对转移 0x01-0xE1 2 4 LJMP addr16 64KB 内长转移 0x SJMP rel 相对短转移 0x 相对长转移 0x JZ rel ( 不发生转移 ) ( 发生转移 ) JNZ rel ( 不发生转移 ) ( 发生转移 ) JC rel ( 不发生转移 ) ( 发生转移 ) JNC rel ( 不发生转移 ) ( 发生转移 ) JB bit, rel ( 不发生转移 ) ( 发生转移 ) JNB bit, rel ( 不发生转移 ) ( 发生转移 ) JBC bit, rel ( 不发生转移 ) ( 发生转移 ) CJNE A, direct, rel ( 不发生转移 ) ( 发生转移 ) CJNE A, #data, rel ( 不发生转移 ) ( 发生转移 ) CJNE Rn, #data, rel ( 不发生转移 ) ( 发生转移 ) #data, rel ( 不发生转移 ) ( 发生转移 ) DJNZ Rn, rel ( 不发生转移 ) ( 发生转移 ) DJNZ direct, rel ( 不发生转移 ) ( 发生转移 ) 累加器为零转移 0x60 2 累加器为非零转移 0x70 2 C 置位转移 0x40 2 C 清零转移 0x50 2 直接寻址位置位转移 0x20 3 直接寻址位清零转移 0x30 3 直接寻址位置位转移并清该位 0x10 3 累加器与直接寻址字节不等转移 0xB5 3 累加器与立即数不等转移 0xB4 3 寄存器与立即数不等转移 0xB8-0xBF 3 内部 RAM 与立即数不等转移 0xB6-0xB7 3 寄存器减 1 不为零转移 0xD8-0xDF 2 直接寻址字节减 1 不为零转移 0xD5 3 NOP 空操作

88 位操作指令 指令 功能描述 代码 字节 周期 CLR C C 清零 0xC3 1 1 CLR bit 直接寻址位清零 0xC2 2 3 SETB C C 置位 0xD3 1 1 SETB bit 直接寻址位置位 0xD2 2 3 CPL C C 取反 0xB3 1 1 CPL bit 直接寻址位取反 0xB2 2 3 ANL C, bit C 逻辑与直接寻址位 0x ANL C, /bit C 逻辑与直接寻址位的反 0xB0 2 2 ORL C, bit C 逻辑或直接寻址位 0x ORL C, /bit C 逻辑或直接寻址位的反 0xA0 2 2 MOV C, bit 直接寻址位送 C 0xA2 2 2 MOV bit, C C 送直接寻址位 0x

89 11. 电气特性 极限参数 * 数字供电电压 V to +5.5V 模拟供电电压 V to +3.6V 数字输入 / 输出电压 GND-0.3V to V DD +0.3V 模拟输入 / 输出电压 AGND-0.3V to AV DD +0.3V 工作环境温度 C to +85 C 存储温度 C to +125 C Flash 内存写 / 擦除操作 C to +85 C * 注释 如果器件的工作条件超过左列 极限参数 的范围, 将造成器件永久性破坏 只有当器件工作在说明书所规定的范围内时功能才能得到保障 器件在极限参数列举的条件下工作将会影响到器件工作的可靠性 直流电气特性 (V DD = V, GND = AGND = 0V, AV DD = V, f OSC =12MHz, T A = 25 C, 除非另有说明 ) 参数符号最小值典型值 最大值单位条件 数字供电电压 V DD V f OSC = 8MHz - 16MHz 模拟供电电压 AV DD V f OSC = 8MHz - 16MHz 工作电流 待机电流 ( 空闲模式 : IDLE) 待机电流 ( 掉电模式 : Power-Down) I OP1-4 6 ma I OP ma I OP ma I OP ma I OP ma I SB1-2 5 ma I SB µa f SYS = f PLT = 12MHz,V DD = 3.3V,AV DD = 3.3V 所有输出引脚无负载, 所有输入引脚不悬空 ; CPU 开 ( 执行 NOP 指令 ),WDT 关,LVR 关,PLT 关,RSSI 关, 关闭其它所有功能 f SYS = f PLT = 12MHz,V DD = 3.3V,AV DD = 3.3V 所有输出引脚无负载, 所有输入引脚不悬空 ; CPU 关 (idle 模式 ),WDT 关,LVR 关,PLT 开 ( 接收状态 ),RSSI 关, 关闭其它所有功能 f SYS = f PLT = 12MHz,V DD = 3.3V,AV DD = 3.3V 所有输出引脚无负载, 所有输入引脚不悬空 ; CPU 关 (idle 模式 ),WDT 关,LVR 关,PLT 开 ( 发送状态, 空载 ),RSSI 关, 关闭其它所有功能 f SYS = f PLT = 12MHz,V DD = 3.3V,AV DD = 3.3V 所有输出引脚无负载, 所有输入引脚不悬空 ; CPU 关 (idle 模式 ),WDT 关,LVR 关,PLT 开 ( 发送状态,260 欧电阻负载 ),RSSI 关, 关闭其它所有功能 f SYS = f PLT = 12MHz,V DD = 3.3V,AV DD = 3.3V 所有输出引脚无负载, 所有输入引脚不悬空 ; CPU 关 ( idle 模式 ),WDT 关,LVR 关,PLT 关,RSSI 开, 关闭其它所有功能 f SYS = f PLT = 12MHz,V DD = 3.3V,AV DD = 3.3V 所有输出引脚无负载, 所有输入引脚不悬空 ; CPU 关 ( idle 模式 ),WDT 关,LVR 关,PLT 关,RSSI 关, 关闭其它所有功能 OSC off,v DD = 3.3V,AV DD = 3.3V 所有输出引脚无负载, 所有输入引脚不悬空 ; CPU 关 ( power down 模式 ),WDT 关,LVR 关,PLT 关,RSSI 关, 关闭其它所有功能 89

90 续上表 参数 符号 最小值 典型值 最大值 单位 条件 LVR 电流 I LVR µa 所有输出引脚无负载,V DD = 3.3V,LVR 开 WDT 电流 I WDT µa 所有输出引脚无负载,V DD = 3.3V,WDT 开 输入低电压 1 V IL1 GND X V DD V I/O 端口 输入高电压 1 V IH1 0.7 X V DD - V DD V I/O 端口 输入低电压 2 V IL2 GND X V DD V 输入高电压 2 V IH2 0.8 X V DD - V DD V RESET,T0,T1,T2,T2EX,INT0,INT1,RXD ( 施密特触发器 ) RESET,T0,T1,T2,T2EX,INT0,INT1,RXD ( 施密特触发器 ) 输入漏电流 I IL -1-1 µa 输入, 无上拉,V IN = V DD 或者 GND 上拉电阻 R PH kω V DD = 3.3V,V IN = GND 输出高电压 V OH V DD V I/O 端口,I OH = -10mA,V DD = 3.3V 输出低电压 V OL1 - - GND V I/O 端口,I OL = 15mA,V DD = 3.3V 注意 : 1. 表示典型值下的数据是在 3.3V,25 C 下测得的, 除非另有说明 2. 流过 V DD 的最大电流值须小于 80mA 3. 流过 GND 的最大电流值须小于 100mA 4. 流过 AV DD 的最大电流值须小于 80mA 5. 流过 AGND 的最大电流值须小于 100mA 模 / 数转换器电气特性 (AV DD = V, AGND = 0V, T A = 25 C, f OSC = f SYS = 12MHz, ADC 使能, 除非另有说明 ) 注意 : 参数符号最小值典型值 最大值单位条件 供电电压 V AD V V AD = AV DD 精度 N R bit GND V AIN V REF A/D 输入电压 V AIN GND - V REF V V REF = V AD A/D 输入电阻 R AIN MΩ V IN = V AD A/D 转换电流 I AD ma ADC 模块工作, AV DD = 3.3V A/D 输入电流 I ADIN µa AV DD = 3.3V 模拟电压源推荐阻抗 Z AIN kω AV DD = 3.3V 微分非线性误差 D LE - - ±1 LSB AV DD = 3.3V 积分非线性误差 I LE - - ±2 LSB AV DD = 3.3V 满刻度误差 E F - ±1 ±3 LSB AV DD = 3.3V 偏移误差 E Z - ±0.5 ±2 LSB AV DD = 3.3V 总绝对误差 E AD - - ±3 LSB AV DD = 3.3V 总转换时间 ** T CON t AD AV DD = 3.3V 表示 典型值 下的数据是在 3.3V, 25 C 下测得的, 除非另有说明 90

91 载波通信模拟前端电气特性 (AV DD = V, AGND = 0V, T A = 25 C, R L = 260Ω, f OSC = f PLT = 12MHz, PLT 使能, 除非另有说明 ) 参数符号最小值典型值 最大值单位条件 模拟前端供电电压 V AFE V V AFE = AV DD 发送信号幅度 V OUT V V AFE = 3.3V 发送通道建立时间 t TXSU ms 从接收切换到发送 t TXSU ms 从待机切换到发送 发送输出阻抗 Z VOUT Ω PLT 使能并 TRC = 1 发送高阻阻抗 Z VOUT MΩ PLT 关闭或 TRC = 0 发送通带纹波 R P db 频率范围 : 50KHz - 300KHz 发送带外衰减 R S db 频率范围 : >1300KHz 发送总谐波失真 THD db 发送二次谐波失真 HD db 发送三次谐波失真 HD db 接收信号范围 V IN mvpp 接收输入阻抗 Z IN KΩ RSSI 动态范围 DR RSSI db RSSI 对数一致性 LER RSSI - ±6 - db RSSI 温度一致性 AER RSSI - - ±3 db RSSI 输出电压 1 V RSSI mv RSSI 输出电压 2 V RSSI V RSSI 输出阻抗 Z RSSI KΩ RSSI 响应时间 ( 纹波 < 5%) T RSSI µs f PLT = 12MHz Fin = KHz f PLT = 12MHz Fin = KHz f PLT = 12MHz Fin = KHz AV DD = 3.3V 温度 : 25 C Fin = 120KHz 输入信号范围 : 0.45mVpp - 1.4Vpp AV DD = 3.3V 温度 : 25 C Fin = 120KHz 输入信号范围 : 0.45mVpp - 1.4Vpp AV DD = 3.3V 温度范围 : -40 C C Fin = 120KHz 输入信号范围 : 0.45mVpp - 1.4Vpp AV DD = 3.3V 温度 : 25 C Fin = 120KHz 输入信号电平 : 0.45mVpp AV DD = 3.3V 温度 : 25 C Fin = 120KHz 输入信号电平 : 1.4Vpp AV DD = 3.3V 温度 : 25 C Fin = 120KHz 输入信号电平 : 200mVpp AV DD = 3.3V 温度 : 25 C Fin = 120KHz 输入信号范围 : 0.45mVpp - 1.4Vpp, 接 0.1uF 电容 91

92 交流电气特性 (V DD = 3.0V - 5.5V, GND = 0V, T A = +25 C, f OSC = f SYS = 12MHz, 除非另有说明 ) 参数 符号 最小值 典型值 最大值 单位 条件 复位脉冲宽度 t RESET µs 复位低电平有效 复位引脚上拉电阻 R RPH KΩ V DD = 3.3V, V IN = GND WDT 周期 T WDT ms 对应 WDT RC 频率低于 1.25KHz 振荡器频率范围 F OSC MHz 占空比 D OSC % F OSC : 8MHz - 16MHz 负载电容 C L PF F OSC : 8MHz - 16MHz 振荡器起振时间 T OSC ms F OSC : 8MHz - 16MHz 低电压复位电气特性 (V DD = 3.0V - 5.5V, GND = 0V, T A = +25 C, f OSC = f SYS = 12MHz, LVR 使能, 除非另有说明 ) 参数 符号 最小值 典型值 最大值 单位 条件 LVR 电压 V LVR V LVR 低电压复位宽度 T LVR µs 内部 3.3V 稳压源电气特性 (V DD = 3.6V - 5.5V, GND = 0V, T A = +25 C, REG33 使能, AV DD 引脚接 47µF 电容, 除非另有说明 ) 参数 符号 最小值 典型值 最大值 单位 条件 供电电压 V IN V V IN = V DD 输出电压 V OUT V AV DD 不加负载 掉电压 V DROP mv I OUT = 0-15mA 工作损耗 I OP µa 开启 REG33, AV DD 不加负载 待机损耗 I SB µa 关闭 REG33, AV DD 不加负载 92

93 12. 应用电路 10uF/ 16V V DD 47uF 12pF 12pF RESET V DD 0.1uF CRY/ 16MHz 0.1uF V DD GND CREG OSCI OSCO RESET 100uF/ 25V V HH 0.1uF 01 AV DD AGND VCOM VOUT VIN FILI FILO NOTE6 0 NOTE3 47uF uF 10K IN uF 0.1uF 0.1uF V HH IN nF 33uH 2SC2655 1/ 0.5W 1/ 0.5W 2SA uF NOTE4 680pF 470uH 470 P6KE22CA NOTE1 TCK/P1.3 TDI/P1.2 TMS/P1.1 TDO/P1.0 RST NOTE2 TXD/P1.1 RXD/P uF/275V(X2) 15:10 425uH V DD 1M/ 0.25W JTAG Interface UART Interface PTC/C RAV/ 14D471K L N AC RSSI INT1/P uF V DD 10K 2K NOTE 5 0.1uF 0.01uF/275V(X2) 5.1V 3.3K / 1W 470K/ 0.25W 0.01uF OPTO/ NEC K/ 0.25W 470K/ 0.25W 8050 IN4007 注意 : (1) 请参考 章节 JTAG 管脚连接图 (2) 可选接口电路, 用于需提供 UART 接口的应用 (3) 请参考 7.6 章节系统电源叙述 (4) 接收前端滤波, 中心频点设置为 290KHz, 适用于载频点设计为 290KHz 应用 (5) 可选过零检测电路, 用于过零传输模式或使用到过零传输功能的模式 (6) 系统模拟地和数字地在靠近 01 的一点连接 93

94 13. 订购信息 产品编号 01X/028XU 封装 28 TSSOP 94

95 14. 封装信息 TSSOP SOP 28 外形尺寸单位 : 英寸 / 毫米 Symbol 注意 : Dimensions in inches MIN NOM MAX MIN 1. 尺寸 D 的最大值包括末端毛边 2. 尺寸 E 不包括树脂凸缘 3. 尺寸 e 1 为 PC 板接口的引脚间距设计的, 仅供参考 4. 尺寸 S 包括末端毛边 Dimensions in mm NOM MAX A A A b C D E E e 0.026BSC BSC --- L θ L REF REF

96 15. 规格更改记录版本 记录 日期 1.0 初始版本 2010 年 4 月 96

97 目录 1. 特性 概述 方框图 引脚配置 引脚描述 SFR 映像 标准功能 CPU CPU 内核特殊功能寄存器 CPU 增强内核特殊功能寄存器 寄存器 RAM 特性 寄存器 FLASH 程序存储器 特性 ICP 模式下的 Flash 操作 扇区自编程 (SSP) 功能 寄存器 SSP 编程注意事项 系统时钟和振荡器 特性 时钟定义 概述 寄存器 振荡器类型 谐振器负载电容选择 系统电源 I/O 端口 特性 寄存器 端口模块图 端口共享 定时器 特性 定时器 0 和定时器 定时器 中断 特性 程序超范围中断 (OVL) 中断允许 中断标志 中断向量 中断优先级 中断处理 中断响应时间 外部中断输入 中断汇总 增强功能 增强型通用异步收发器 (EUART) 特性 EUART 工作方式 波特率 多机通信

98 8.1.5 帧出错检测 寄存器 模 / 数转换器 (ADC) 特性 ADC 模块图 寄存器 低电压复位 (LVR) 特性 看门狗定时器 (WDT), 程序超范围溢出 (OVL) 复位及其它复位状态 特性 寄存器 电源管理 特性 空闲模式 掉电模式 寄存器 预热计数器 特性 代码选项 载波通信 特性 框图 数字调制解调 数据缓冲区 循环冗余校验 前向纠错编译码 扩频载波调制 载波频率 窄带 BPSK 调制 超短帧调制 载波频率检测 模拟前端 发送预放大器 接收信号强度指示 带通滤波器 接收通道二选一 操作描述 寄存器 指令集 电气特性 应用电路 订购信息 封装信息 规格更改记录

W77E58中文手册

W77E58中文手册 W77E58 77E58 8051 8051 8051 77E58 8051 1.5 3 COMS 32K EEPROM 1K SRAM 1 8 2 40M 4 3 8051 4 8051 5 4 8 I/O 6 4 I/O 44 PLCC QFP 7 16 / 8 12 9 10 11 1K 12 13 16 DPTR 14 15 DIP40 W77E58 25/40 PLCC44 W77E58P

More information

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

More information

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe   Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L 1 SH88F516 8051 64K FLASH 1024 EEPROM SH88F516 JET51 S-Lab Keil µ vision ISP51 Keil µ vision ISP51 ISP51 PC RS232 MCU SH88F516 SH88F516 1.1 SH88F516 1.1 SH88F516 SH88Fxx: QFP44, DIP40 RAM Flash E2 ADC

More information

SH79F161B I/O 1. SH79F161B SH79F161B IO 30 I/O I/O 4 I/O SH79F161B 30 I/O Px I/O PxCRy I/O PxPCRy x = 0-3 y = IO PxCRy IO x=0-3 y=0-7

SH79F161B I/O 1. SH79F161B SH79F161B IO 30 I/O I/O 4 I/O SH79F161B 30 I/O Px I/O PxCRy I/O PxPCRy x = 0-3 y = IO PxCRy IO x=0-3 y=0-7 SH79F161B - 10 ADC 8051 V 1.0 SH79F161B I/O 1. SH79F161B 8051 8051 SH79F161B IO 30 I/O I/O 4 I/O SH79F161B 30 I/O Px I/O PxCRy I/O PxPCRy x = 0-3 y = 0-7 2. IO PxCRy IO x=0-3 y=0-7 PxPCRy IO x=0-3 y=0-7

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

128K Flash EPROM 的程序?\(Bank=64K\) 切?

128K Flash EPROM 的程序?\(Bank=64K\) 切? 应用说明 华邦 8 位单片机 (8051 内核 ) 应用说明 华邦 8 位单片机 (8051 内核 ) ANSC-UC08-0007 目录 - 1. 应用说明 :...4 1.1...4 1.2 相关寄存器介绍...4 1.2.1 串行口控制寄存器 (SCON)... 4 1.2.2 串行数据缓冲寄存器 (SBUF)... 5 1.2.3 串行口控制 1 (SCON1)... 5 1.2.4 串行数据接收缓冲

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

Microsoft Word - 專題封面.doc

Microsoft Word - 專題封面.doc 逢 甲 大 學 資 訊 工 程 學 系 專 題 研 究 報 告 8051 小 遊 戲 -21 點 指 導 教 授 : 陳 德 生 學 生 : 許 博 益 中 華 民 國 九 十 六 年 六 月 I 目 錄 第 一 章 緒 論 1 1-1 研 究 背 景 1 1-2 研 究 動 機 2 1-3 研 究 目 的 3 1-3-1 21 點 源 起 3 1-3-2 21 點 規 則 3 第 二 章 微 電

More information

79F161 V0.2

79F161 V0.2 带 10 位 ADC 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:16K 字节 RAM: 内部 256 字节, 外部 512 字节 工作电压 : - f OSC = 400kHz - 16MHz,V DD = 3.6V - 5.5V 振荡器 ( 代码选项 ): - 晶体谐振器 :400kHz - 16MHz - 陶瓷谐振器 :400kHz

More information

79F161 V0.2

79F161 V0.2 SH88F2051 / 带 10 位 ADC 的 2051/4051 微控制器 1. 特性 基于 8051 兼容流水指令的 8 位单片机 Flash ROM:4K/8K 字节 RAM: 内部 256 字节, 外部 256 字节 片上 512 字节类 EEPROM 存储空间 工作电压 : fosc = 30kHz - 16.6MHz,VDD = 2.8V - 5.5V 振荡器 ( 代码选项 ): -

More information

7688使用手冊V10.doc

7688使用手冊V10.doc TP-7688 . 2 2. 3 3. 5 4. 5 5. 6 6. 7 7. 8 8. 9 9.. 4. 7 2 2., 7x9 / 6x9 7x9.3() x 3.()mm 6x9 2.84() x 3.()mm 3 ASCII 7x9 95 ASCII 6x9 95 6x9 7 BIG5 6x9 3973 6x9 28 7x9 24 24 55 6x9 2 2 27 4.23mm (/6 inch)

More information

79F161 V0.2

79F161 V0.2 集成 8 路触摸按键,12 位 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:32K 字节 ( 烧写次数 1 万次 ) RAM: 内部 256 字节, 外部 1280 字节,LED RAM 28 字节, 触摸按键 RAM 16 字节 类 EEPROM:1024 字节 ( 烧写次数 10 万次 ) 工作电压 : - f OSC =

More information

79F161 V0.2

79F161 V0.2 SH79F16 1611 11 集成 ADC 和 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 集成单周期执行时间 16 X 16bit 硬件乘法器 集成 8 周期执行时间 32 / 16bit 硬件除法器 集成 1 周期 32bit 硬件移位单元 Flash ROM:16K 字节 RAM:1.5K 字节 工作电压 : f OSC = 400k -

More information

G80F915

G80F915 VER1.2 2014.5 选型指南 订购型号 FLASH ROM RAM I/O MAX TIMER INT LCD LED PWM EUART 其他温度范围封装 G80F915U 32K 1.5K 46 4*16 5 8*24/6*26 1*12 3~8*8 5*27/4*28 1*8 G80F915F 32K 1.5K 42 4*16 5 8*20/6*22 1*12 3~8*8 5*23/4*24

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

1

1 W7E65 1. W7E65 ISP Flash EPROM ISP Flash EPROM 52 W7E65 64K Flash EPROM 4K Flash EPROM 4K Flash EPROM loader 64K ROM 1K RAM 4 I/O 4 I/O P4 3 16 / 2 W7E65 Flash EPROM W7E65 2 2 2. CMOS 12 64K ISP Flash

More information

at89S52.doc

at89S52.doc 主要性能 与 MCS-51 单片机产品兼容 8K 字节在系统可编程 Flash 存储器 1000 次擦写周期 全静态操作 :0Hz~33Hz 三级加密程序存储器 32 个可编程 I/O 口线 三个 16 位定时器 / 计数器 八个中断源 全双工 UART 串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 8 位微控制器 8K 字节在系统可编程 Flash R 功能特性描述

More information

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD2 1...2 1.1...2 1.2...2 1.3 /...2 2 SoftICE...2 3 SoftICE MCU...2 4 SoftICE...3 4.1 SST BootLoader SOFTICE...3 4.2 SoftICE SST MCU...6 5 SoftICE...7

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 [email protected] C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

5. P0.0 P0.7 P0 4 2 P0.3~P0.6 ADC P1.0 P P1.2(SCL) P1.3(SDA) P1.5 RST P1.5 2 XTAL1(P2.1) 1 XTAL0(P2.0) 2 XTAL1 I/O VDD VSS 6. H5815 4T 16K Flas

5. P0.0 P0.7 P0 4 2 P0.3~P0.6 ADC P1.0 P P1.2(SCL) P1.3(SDA) P1.5 RST P1.5 2 XTAL1(P2.1) 1 XTAL0(P2.0) 2 XTAL1 I/O VDD VSS 6. H5815 4T 16K Flas H5815 1. H5815 H5815 3 H5815 8052 16K Flash EPROM 256 NVM Flash EPROM 256 RAM 2 8 1 2 I/O 16-2 / 4 10 AD 4 10 PWM 1 I2C 1 UART 13 4 H5815 2. 4T 51 20MHZVDD=2.7V~ 16K Flash EPROM 256 RAM 256 NVM FLASH EPROM

More information

79F161 V0.2

79F161 V0.2 集成 24 路触摸按键输入和 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:32K 字节 RAM: 内部 256 字节, 外部 1280 字节,LCD RAM28 字节 touchkey RAM 48 字节 类 EEPROM: 最大 4096 字节 ( 代码选项可选 ) 工作电压 : - f OSC = 32.768kHz -

More information

µPSD3000 系列

µPSD3000 系列 8032 FLASH MCU µpsd3251f-40t6 µpsd3251 8032 FlashPSD Flash SRAM I/O I 2 C, ADC and PWM 8032, 16 / FlashPSD µpsd32 JTAG ISP 2K SRAM Flash - 64K Flash - 16K Flash - Flash 8032 12 I2C ADC 6 I/O 37 I/O 16

More information

1 TPIS TPIS 2 2

1 TPIS TPIS 2 2 1 1 TPIS TPIS 2 2 1. 2. 3. 4. 3 3 4 5 4 TPIS TPIS 6 5 350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6 8 (TPIS) TPIS 9 7 IC AT89C2051 AT89C2051 CMOS8

More information

STC90C51RC-cn.pdf

STC90C51RC-cn.pdf STC90.STC90C5RC/RD+ STC90C5RC/RD+ 805 5.5V - 3.3V 3.6V - 2.0V V 040MHz080MHz48MHz 4K / 8K / 3K / 6K / 32K / 40K/ 48K/ 56K/ 6K 28052RAM I/O35/39P/P2/P3/P4805I/OP0 I/O ISP/ IAP RxD/P3.0, TxD/P3. EEPROM MAX80

More information

四位微控制器ML64168_ _.doc

四位微控制器ML64168_ _.doc SSSC /4168P 2005 8 4 4, (ADC), LCD Driver, (Buzzer), 1 3 CPU17 CPU 26 33 42 45 48 73 79 85 89 A/D 92 111 125 128 131 SSU4168P 133 143 A: / 153 B: 156 C: 158 D: 160 E: 161 F: 163 G: PAD 167 2 ,, 11 4 CMOS

More information

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc EEPROM 应用说明 1 适用产品 :SM59D03G2 SM59D04G2 series 2 应用范围 : 针对需使用 EEPORM 功能替换 STC 89C5X 的应用及汇编语言之范例程序 ( 使用内部扩充内存为暂存区 ) 3 功能说明 : 3.1 本公司上述产品 EEPORM 功能皆可替换 STC89C5X, 仅需对特殊功能缓存器定义 ( 详见表 1) 及 ISP 命令定义 ( 详见表 2)

More information

xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结!

xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结! xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结! 以下是串口的时序 : 在设计中, 耽误时间最长的问题就是数据老是出错, 为了找出问题的所在, 用示波器观察了

More information

第十四章 STC单片机比较器原理及实现

第十四章 STC单片机比较器原理及实现 第 14 章 STC 单片机比较器 原理及实现 何宾 2015.02 1 本章主要内容 STC 单片机比较器结构 STC 单片机比较器寄存器组 STC 单片机比较器应用 2 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系 列单片机的比较器内部结构 3 STC 单片机比较器结构 S T C 15W

More information

MPC89LE51_52_53_54_58_515

MPC89LE51_52_53_54_58_515 5 8 bit micro controller 1 特性...2 2 引脚...3 2.1 引脚图...3 2.1 引脚定义...4 3 方框图...6 4 特殊功能寄存器...7 辅助寄存器 AUXR 和 AUXR1...8 5 存储器...9 5.1 RAM...9 MPC89x54/58/515 RAM 空间 (00 7F 可直接或间接寻址 )...9 MPC89x51/5 2/53 RAM

More information

单片机原理及应用实验指导书.doc

单片机原理及应用实验指导书.doc 1 2 3 4...2...4...9...9 AEDK598 MCS51...9 MCS51...10...10...10...10...10...10...11 P1...12...12...12....12...12...13 P3...14...14...14...14...14...14 I/O...15...15...15...15...15...16...17...17...17...17...17...18...19...19

More information

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi MICROCHIP EVM Board : APP001 1-1. APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pin 16 I/O Extension Interface 1-2. APP001 Block_A Block_B

More information

USB解决方案.ppt

USB解决方案.ppt USB USB? RS232 USB USB HID U modem ADSL cable modem IrDA Silabs USB CP210x USB UART USB RS-232 USB MCU 15 USB 12 FLASH MCU 3 USB MCU USB MCU C8051F32x 10 ADC 1.5%, Vref CPU 25MIPS 8051 16KB Flash -AMUX

More information

CH559指令周期.doc

CH559指令周期.doc CH55X 汇编指令周期表 CH55X 汇编指令概述 : 型号包含 : a. 指令单周期型号 :CH557 CH558 CH559; b. 指令 4 周期型号 :CH551 CH552 CH553 CH554; c. 非跳转指令的指令周期数与指令字节数相同 ; d. 跳转指令含 MOVC/RET/CALL 通常比字节数多若干个周期 ; e.movc 指令多 4 或 5 个周期 ( 下条指令地址为奇数时多

More information

untitled

untitled EDM12832-08 : 25-1 : 116600 : (0411)7612956 7632020 7631122 : (0411)7612958 Model No.: Editor: LCD 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc 可程序计数数组 (PCA) 功能使用方法 1 适用产品 :SM59D04G2,SM59D03G2 2 应用说明 : PCA 共有五组, 每组皆可工作于以下七种模式 : 捕获模式 - 正缘捕获模式 (Positive edge capture mode) 捕获模式 - 负缘捕获模式 (Negative edge capture mode) 捕获模式 - 正缘及负缘捕获模式 (Both positive

More information

SPHE8202R Design Guide Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provi

SPHE8202R Design Guide Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provi SPHE8202R Design Guide V2.0 JUN, 2007 19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 Web: www.sunplus.com SPHE8202R Design Guide Important Notice

More information

12232A LED LED LED EL EL CCFL EL CCF

12232A LED LED LED EL EL CCFL EL CCF 12232A 0 50-20 +70-30 +85 LED LED LED EL EL CCFL EL CCF 122 x 32 1/32Duty 1/5Bias 6:00 STN( ), EL LED EL/100VAC 400HZ LED/4.2VDC 1 / VDD-VSS 0 6.5 V Ta=25 LCD VDD-V0 0 12.0 V V1 0 VDD V VDD-VSS - 4.75

More information

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1 TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT 588 4 1 0571-85121224 85121742 85121304(f) 639 2A095 0571-88256346 89902095 f B1618 010-62051209 62000662 62568913 82036512 f http://www.tsingtek.com

More information

中文手册

中文手册 PCC-3428 PC/104 1. PCC-3428 1.1 PCC-3428 90mm 96mm ST CPU STPC Atlas Atlas CPU 486 DX/DX2 CPU DX2 133MHz Atlas 2D LCD/CRT 100MHz SDRAM 64MBytes PCC-3428 10/100Mbps DOC EIDE USB PC/104 ST STPC Atlas STPC

More information

ICD ICD ICD ICD ICD

ICD ICD ICD ICD ICD MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc 1 适用产品 : 1.1 SM59R16A5/ SM59R09A5/ SM59R05A5/ SM59R16A3/ SM59R09A3/ SM59R05A3 1.2 SM59R16G6/ SM59R09G6/ SM59R05G6 1.3 SM59R04A2/ SM59R04A1/ SM59R03A1/ SM59R02A1 1.4 SM59R16A2/ SM59R08A2 2 UART 差异如下说明 :

More information

Microsoft Word - Delta Controller ASCII_RTU_SC

Microsoft Word - Delta Controller ASCII_RTU_SC Delta Controller ASCII/RTU ( 适用台达变频器 伺服驱动器 PLC 温度控制器 ) 人机默认值通讯速率 :9600, 7, None, 2 (ASCII); 9600, 8, None, 2 (RTU) 控制器站号 :1 控制区 / 状态区 :None/None 控制器接线的说明 Delta Servo a. RS-232(DOP-A/AE/AS, DOP-B 系列适用 )

More information

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2 Terminal Mode No User User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2 Mon1 Cam-- Mon- Cam-- Prohibited M04 Mon1 Cam03 Mon1 Cam03

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica CP Chip Power ARM Cortex-M3 (STM32F) ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplication and hardware

More information

SinOne SC92F7252/7251/7250 高速 1T 8051 内核 Flash MCU,256 bytes SRAM,4 Kbytes Flash,128 bytes 独立 EEPROM,12 位 ADC,6 路 8 位 PWM,3 个定时器,UART 1 总体描述 SC92F725X

SinOne SC92F7252/7251/7250 高速 1T 8051 内核 Flash MCU,256 bytes SRAM,4 Kbytes Flash,128 bytes 独立 EEPROM,12 位 ADC,6 路 8 位 PWM,3 个定时器,UART 1 总体描述 SC92F725X ,256 bytes SRAM,4 Kbytes Flash,128 bytes 独立 EEPROM,12 位 ADC,6 路 8 位 PWM,3 个定时器,UART 1 总体描述 SC92F725X 系列是一颗增强型的 1T 8051 内核工业级 Flash 微控制器, 指令系统完全兼容传统 8051 产品系列 SC92F725X 集成有 4 Kbytes Flash ROM 256 bytes

More information

DATASHEET SEARCH SITE ==

DATASHEET SEARCH SITE == 1K 一次性编程, 10 位 ADC 型 4 位单片机 特性 基于 SH6610C, 10 位 ADC 型 4 位单片机 OTP ROM: 1K X 16 位 RAM: 124 X 4 位 - 28 系统控制寄存器 - 96 数据存储器 工作电压 : - fosc = 16MHz, VDD = 3.3V - 5.5V 6 个双向 I/O 端口 4 层堆栈 ( 包括中断 ) 一个 8 位自动重载定时

More information

MPC82G516

MPC82G516 8051 内核 - 单片机 MPC82G516 規格书 北京菱电科技有限公司 TEL:010-82674978 版本 : A1.0 This document contains information on a new product under development by Megawin. Megawin reserves the right to change or discontinue this

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

untitled

untitled XZL024 http://item.taobao.com/item.htm?id=6321822194 1 1 1.1 1.2 1.3 1.4 2 2.1 2.2 2.3 3 USBee Suite 3.1 3.2 3.3 3.4 4 RS232 RS485 RS422 CAN http://item.taobao.com/item.htm?id=6321822194 2 1 XZL024 PC

More information

Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc

Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc 自定义下载应用说明 一 适用产品 :SM59XX 系列 SM59D XX 系列 SM59R XX 系列二 应用方式 : 可以让使用者自定义 command 作为进入 ISP 刻录的通关指令, 透过 UART 连接 ISAP 软件做联机更新三 操作说明 ( 使用 SM59D04G2 为例 ): 1. ISAP 操作方式 : 1.1 先将主程序及 ISP 服务程序烧进 MCU 中 1.2 将 MCU 放至系统版上,

More information

R/W

R/W (HD44780 KS0066 ) 3 3 5 6 10 14 HD44780/KS0066 16 2 LCM 8 1 40 4 LCD HD44780/KS0066 HD44100 IC PCB 0.1 CMOS 1. 2. 3. 4. 5. RH60% 6. 1. 2. 3. PCB 3 4. 5. 6. 1. 280 C 2. 3 4s 3. 4. 5. 3 5 1. 2. IC 3. DC-DC

More information

untitled

untitled EDM16080-01 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3

More information

2 PIC PIC 1 / CPU PIC MCU PIC RC

2 PIC PIC 1 / CPU PIC MCU PIC RC 2 PIC PIC 1 /... 2-2 2... 2-3 3... 2-4 4... 2-4 5... 2-4 6 CPU... 2-5 7 PIC MCU... 2-6 8 PIC16... 2-6 9... 2-7 10... 2-7 11 RC... 2-7 12... 2-8 13... 2-8 14 NOP... 2-9 15 PMD... 2-9 16... 2-10 17 WDTWDT...

More information

Ch03_嵌入式作業系統建置_01

Ch03_嵌入式作業系統建置_01 Chapter 3 CPU Motorola DragonBall ( Palm PDA) MIPS ( CPU) Hitachi SH (Sega DreamCast CPU) ARM StrongARM CPU CPU RISC (reduced instruction set computer ) CISC (complex instruction set computer ) DSP(digital

More information

untitled

untitled XILINX Platform Cbale USB www.hseda.com ...... Platform Cable USB Compatible.................. impact.........1 platform Cable USB Compatible.........1...1...1...1...1...1 Platform Cable USB Compatible

More information

PCM-3386用户手册.doc

PCM-3386用户手册.doc PCM-3386 BBPC-4x86 10/100M PC/104 (Lanry technology Co. Ltd. Zhuhai) 38 1012836 (Address: Room 1012,Linhai Building,No. 38,west of Shihua Road,Zhuhai City,Guangdong Province,China) (post code)519015 (phone)0756-3366659

More information

DL1621-1

DL1621-1 General Description: DL1621-1, 含 LCD 的控制线路, 搭配 MCU 来使用, 将使使用者的成本降低, 以及应用更加. 宽广 Features: 工作电压 2.4V-5.5V 系统频率 : - 内建 RC 振荡器 (256Khz) - 外挂 32768Hz 晶振 - 外灌 256Khz 输入 ( 由 OSCI 脚 ) 提供简单 3 pins 串接接口 (CKRB/ CKWB/

More information

Microsoft Word - MSP430 Launchpad 指导书.docx

Microsoft Word - MSP430 Launchpad 指导书.docx Contents 3... 9... 14 MSP430 LAUNCHPAD 指导书 3 第一部分第一个工程 New Project File > New > CCS Project Project name: ButtonLED Device>Family: MSP430 Variant: MSP430G2553 Project templates and examples : Empty Project

More information

General Description: Preliminary TTP916 Consumer IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC

General Description: Preliminary TTP916 Consumer IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC General Description: IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC 15K 300pF 256KHZ default on 32 function key Built-in TT6221/TT6222 decoder Provide

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用

More information

GW2A 系列 FPGA 产品 GW2A-18 器件 Pinout Version History 日期 版本 2016/8/ /9/ /11/ /2/ /6/ /6/ /8

GW2A 系列 FPGA 产品 GW2A-18 器件 Pinout Version History 日期 版本 2016/8/ /9/ /11/ /2/ /6/ /6/ /8 Version History 日期 版本 2016/8/4 1.00 2016/9/2 1.01 2016/11/29 1.02 2017/2/16 1.03 2017/6/9 1.04 2018/6/27 1.05 2018/8/8 1.06 新增 MG196 PBGA256S 封装信息 ; 修改 SSPI 模式的配置功能 ; 增加 QN88 封装信息 2019/3/27 1.07 增加电源供电要求

More information

Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15 LM361 LM361 Zlg

Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15 LM361 LM361 Zlg 1 1 a. 0.5V 5V 1Hz 1MHz b. 0.1% 2 : a. 0.5V 5V 1Hz 1MHz b. 0.1% (3) a. 0.5V 5V 100 s b. 1% 4 1 10 5 1MHz 6 1 2 1 0.1Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15

More information

() () () () () () () () DDRAM () II

() () () () () () () () DDRAM () II 液晶模块说明书 SPEC NO YM2232A REV NO. 液晶显示模块产品说明书 产品类型 : 产品型号 : 产品描述 : 标准产品 YM2232A 22x32 图形点阵模块, 控制器 :SED52,LED 背光 客户名称 : 客户确认 : 编写 : Dexun Zou 审核 : HCC 批准 : Jingxi Yang 发行日期 : 22.8 大连佳显电子有限公司 地址 : 大连市沙河口区工华街

More information

第 卷 第 期 年 月 半 导 体 学 报! " # $%&'%' $!&' #% #$1 /#1 $'! / ?/ ?/ / 3 0,?/ ) * +!!! '!,!! -. & ' $! '! 4% %&1)/1(7%&)03 (% )

第 卷 第 期 年 月 半 导 体 学 报!  # $%&'%' $!&' #% #$1 /#1 $'! / ?/ ?/ / 3 0,?/ ) * +!!! '!,!! -. & ' $! '! 4% %&1)/1(7%&)03 (% ) 第 卷 第 期 年 月!"# $%&'%' $!&'#%#$1/#1 $'! /18103 2?/03101?/18103 /3 0,?/0301.13 )*+!!! '!,!! -.&' $!'! 4%%&1)/1(7%&)03(%)%&,%*(1&0)%$-0*,%30)17*1*)0(+1(1+&1*+*),)1; &113(%44(10&.0701&0-&00*/)%;()1%-1+%&0)0*1*)%

More information

79 SZ/SH/SM ONOFF SET/RST SZSHSM SET SET RST RESET ( ) ( ) SET XXXX SET XXXX XXXX RST XXXX RST XXXX XXXX 1(2) SZ3 SZ4 SH SM I000~I177 I000~I477 I000~I

79 SZ/SH/SM ONOFF SET/RST SZSHSM SET SET RST RESET ( ) ( ) SET XXXX SET XXXX XXXX RST XXXX RST XXXX XXXX 1(2) SZ3 SZ4 SH SM I000~I177 I000~I477 I000~I 78 SZ/SH/SM 55 ON OUT/ZOUT OUT OUT AOUT ZOUT SZ3 SZ4 SH SM SZSHSM I000~I177 I000~I477 I000~I077 I000~I077 1 Q000~Q177 Q000~Q477 Q000~Q077 Q000~Q077 M000~M377 M000~M377 M000~M377 M000~M377 1. ON OFF 2.OUT

More information

微處理機期末專題

微處理機期末專題 微 處 理 機 期 末 專 題 自 動 鋼 琴 組 員 :b92611004 羅 鈞 瑋 b92611008 吳 妍 儂 b92611038 吳 韋 靜 b92611042 林 佳 穎 一 簡 介 本 組 的 主 題 是 自 動 鋼 琴 在 播 放 音 樂 的 同 時, 鋼 琴 會 自 動 按 下 琴 鍵, 被 按 下 的 琴 鍵 所 對 應 到 的 音 階, 就 是 正 在 撥 放 的 樂 曲 的

More information

System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and se

System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and se 8051 8051 System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and setup. This type of robot uses two kinds of

More information