BJ2C004ANB

Similar documents
OTP-Based 8-Bit Microcontroller Series

33023A.book(31026A_cn.fm)

2 PIC PIC 1 / CPU PIC MCU PIC RC

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

FM1935X智能非接触读写器芯片

untitled

DPJJX1.DOC

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

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

untitled

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

文件名

DESCRIPTION

Microsoft Word - BL5372_UMAN_V1.1.doc

A (QFP-48-12x ) RANGE IF70K AL-OUT AL-SIG VSS CLKFREQ-SEL HR-SET MIN-SET AM/FM-SEL AL-DISP A AL-

HS2303-P

目录

Microsoft Word - EM78P156K Product Spec v1[1].3 _ _.doc

USB解决方案.ppt

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

ICD ICD ICD ICD ICD

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

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集

Tel:

目录 1 产品简介 功能特性 引脚图 引脚描述 中央处理器 (CPU) 存储器 程序存储器 (OTP ROM) 通用数据存储器 (RAM) 特殊功

T stg -40 to 125 C V cc 3.8V V dc RH 0 to 100 %RH T a -40 to +125 C -0.3 to 3.6V V -0.3 to VDD+0.3 V -10 to +10 ma = 25 = 3V) VDD

PIC16F F MPLAB 08 16F LED 15 LED

Microsoft Word - AP1515V02

untitled

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

33023A.book(31031A_cn.fm)

行业

mdt1030

单片机应用编程技巧(专家:邓宏杰)

Applications

untitled

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax)

untitled

DATASHEET SEARCH SITE |

Section1_16bit Arc.ppt

SPMC75F2413A_EVM_使用说明_V1.2.doc

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

额定规格 / 性能 单相 标准认证 UL CSA. NO. EN-- 额定规格输入 环境温度 项目电压电平额定电压使用电压范围输入电流型号动作电压复位电压 - B ma 以下 DC~V DC.~V DC.V 以下 DC.V 以上 - BL ma 以下 输出 项目 * 根据环境温度的不同而不同 详情请

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

untitled

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

Microsoft Word - 專題封面.doc

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC

行业



DATASHEET SEARCH SITE ==

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

行业

Microsoft Word - TM1621.doc

投影片 1

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D

1 TPIS TPIS 2 2

MDT10F630/ MDT10F676

untitled

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x

bingdian001.com

MSP430单片机简介

目 录

Cost_Effective C Handbook

目录 1 产品概要 产品特性 芯片模式 订购信息 引脚排列 端口说明 电气特性 极限参数 直流电气特性 交流电气特性 CPU

四位微控制器ML64168_ _.doc

Transcription:

BJ2C004A 规 格 书 (v1.0) 1

目录 1. 概叙... 4 2. 功能特性... 4 3. 功能框图...5 4. 管脚图... 5 4.1 管脚功能描述...6 5 存储器结构... 7 5.1 程序存储器...7 5.2 数据存储器... 7 6 功能介绍... 9 6.1 寄存器操作... 9 6.1.1 INDF ( 间接寻址寄存器 )... 9 6.1.2 TMR0 ( 定时 / 计数器 )... 9 6.1.3 PCL & Stack...10 6.1.4 STATUS ( 状态字寄存器 )... 11 6.1.5 FSR ( 间接寻址指针 )... 12 6.1.6 PORTA, PORTB (Port 寄存器 )... 12 6.1.7 PCON ( 电源控制寄存器 )...13 6.1.8 WUCON (Port B 输入改变 / 唤醒控制寄存器 )... 13 6.1.9 PCHBUF (PC 指针高位缓冲区 )... 14 6.1.10 PDCON (I/O 下拉控制寄存器 )...14 6.1.11 ODCON (I/O 开路控制寄存器 )... 15 6.1.12 PHCON (I/O 上拉控制寄存器 )...16 6.1.13 INTEN ( 中断屏蔽寄存器 )... 17 6.1.14 INTFLAG ( 中断标志寄存器 )... 18 6.1.15 ACC (Accumulator)... 18 6.1.16 OPTION Register( 选项寄存器 )...18 6.1.17 IOSTA & IOSTB (I/O 口控制寄存器 )... 19 6.2 I/O Ports... 20 6.3 定时器 0/ 看门狗定时器 & 预置器... 23 6.3.1 Timer0...23 6.3.1.1 使用内部时钟 : 定时模式... 23 6.3.1.2 使用外部时钟 : 计数模式... 23 6.3.2 看门狗定时器 (WDT)... 24 6.3.3 预置器... 24 6.4 中断...25 6.4.1 外部中断...25 6.4.2 Timer0 中断... 25 6.4.3 Port B 输入改变中断...25 6.5 省电模式...25 6.5.1 睡眠唤醒...26 6.6 复位...26 6.6.1 上电复位计数器...26 2

6.6.2 振荡启动计数器...27 6.6.3 复位顺序...27 6.7 十六进制转化为十进制...29 6.8 振荡器配置... 30 6.9 EEPROM 的操作...32 6.9.1 MCU 与 EEPROM 的连接...32 6.9.2 EEPROM 的器件地址...33 6.9.3 具体使用方法, 我司有标准的范例程序, 可向 FAE 部门索取... 33 6.10 配置选项...33 7 绝对最大额定值... 36 8 操作条件... 37 9 电气特性... 37 9.1 BJ2C004A 电气特性...37 10 封装...46 10.1 sop 8 封装尺寸与外形图... 46 11 版本说明... 46 3

1. 概叙 BJ2C004A 是一款低功耗, 高速, 高噪声容限, 利用 IC 封装技术, 将 BJ8P508E 和 BJ24C02 整合而成的 MCU,BJ2C004A 编程方法同 BJ8P508E 完全一样, 包含了上电复位, 掉电复位, 上电复位计数器, 振荡启动计数器, 看门狗定时器, EPROM/ROM, SRAM, 双向三态 I/O 口, ( 可以设置为上拉 / 下拉 开路 ), 省电睡眠模式, 一个带 8 位预置器的 8 位定时 / 计数器, 独立中断, 睡眠唤醒模式和可靠的代码保护 2. 功能特性 只有 42 个单字指令 除分支指令为两个周期指令以外其余为单周期指令 PC 寻址范围为 13-bit GOTO 指令能跳转到所有的 ROM/EPROM 地址空间 子程序能返回到所有的 ROM/EPROM 地址空间 能处理 8 位数据 5 级硬件堆栈 I2C 时钟频率为 1 MHz (5V), 400 khz (1.8V, 2.5V, 2.7V) 运行速度 : DC-20 MHz 工作频率 内置 BJ24C02 支持直接与间接数据寻址方式 一个带 8 位预置器的 8 位定时 / 计数器 (Timer0)) 内部上电复位 内含一个低电压检测电路供掉电复位使用 上电复位计数器 (PWRT) 和振荡启动计数器 (OST) 内部振荡器集成了一个看门狗保证了可靠的操作同时软件使能看门狗操作 两类双向输入输出 I/O 口 IOA 和 IOB 通过编程控制 I/O 端口的上拉 / 下拉 开路等状态 一个内部计数中断源 ; 两个外部中断源 :INT 管脚,PortB 的输入改变 通过 INT 管脚或者 PortB 的输入改变来实现睡眠唤醒 省电睡眠模式 内部有 8MHz, 4MHz, 1MHz, 和 455KHzRC 振荡器 4

有可靠的保证使得程序代码不被读出 内部 RC 振荡器 提供以下振荡源的选择 : - ERC: 外部的 RC 振荡器 - IRC/ERIC: 内部电阻内部的电容 RC 振荡器或外部的电阻内部的电容 RC 振荡器 HF: 高频率的晶体协振器 LF: 低频率的晶体振荡器 工作电压范围 : - EPROM : 2.3V - 5.5V - ROM : 2.3V- 5.5V 型号管脚 I/O 个数 EPROM/ROM 空间 (Byte) RAM (Byte) BJ2C004ANB 8 6 1K 49 3. 功能框图 4. 管脚图 5

4.1 管脚功能描述 BJ2C004ANB 管脚名称 I/O 说明 IOB0/INT IOB1 I/O I/O 双向 I/O 口同时具有系统唤醒功能软件设置为上拉 / 下拉和开路外部中断输入脚双向 I/O 口同时具有系统唤醒功能软件设置为上拉 / 下拉和开路 IOB2/T0CKI IOB3/RSTB IOB4/OSCO IOB5/OSCI I/O I I/O I/O 双向 I/O 口同时具有系统唤醒功能软件设置为上拉 / 下拉和开路外部计数输入脚 IOB3 作为输入只能具备系统唤醒功能 i 系统复位输入脚. 底电平复位. 设置为复位输入时上拉双向 I/O 口同时具有系统唤醒功能 (RCOUT 可选择 IRC/ERIC, ERC 模式 ) 软件设置为上拉 / 开路晶体振荡器输出脚 (XT, LP 模式 ) 基于指令周期晶体振荡器输出 (RCOUT 可选择 IRC/ERIC, ERC 模式 ) 双向 I/O 口同时具有系统唤醒功能 (IRC 模式 ) 软件设置为上拉 / 开路晶体振荡器输入脚 (XT, LP 模式 ) 外部实时时钟输入脚 (ERIC, ERC 模式 ) IOB6 ~ IOB7 IOB6 接内置 BJ24C02 的 SDA 口, 请用户软件开内部上拉未封装 IOB7 接内置 BJ24C02 的 SCL 口, 请用户软件开内部上拉引出 (IIC 协议请参照 BJ24C02 规格书和我司范例代码 ) 6

Vdd - 电源 Vss - 地 Legend: I= 输入, O= 输出, I/O= 输入 / 输出 5 存储器结构 BJ2C004A( 同 BJ8P508E) 存储器包含程序存储器和数据存储器 5.1 程序存储器 BJ2C004A 有一个 10 位 PC 指针能访问 1K 13 的存储空间, 复位地址为 3FFh H/W 中断向量地址 008h., S/W 中断向量地址 002h. CALL/GOTO 能指向在同一个程序页面 ( 一个程序页面为 1K) 的所有存储空间程序存储器分布图和堆栈结构 5.2 数据存储器 数据存储器包含特殊功能器组和通用寄存器组, 所有通用寄存器可以直接寻址或者通过 FSR 寄存器间接寻址 特殊功能寄存器用来控制 CPU 或外围功能模块的工作 表 1 BJ2C004A 寄存器列表 7

表 2 通过 OPTION 或 IOST 指令控制的寄存器 地址 说明 B7 B6 B5 B4 B3 B2 B1 B0 N/A (w) OPTION * INTEDG T0CS T0SE PSA PS2 PS1 PS0 05h (w) IOSTA Port A I/O 控制寄存器 ( 预留 ) 06h (w) IOSTB Port B I/O 控制寄存器 表 3 寄存器列表地址 说明 B7 B6 B5 B4 B3 B2 B1 B0 00h (r/w) INDF 通过 FSR 访问数据区 ( 不是一个实际的物理地址 ) 01h (r/w) TMR0 8 位定时 / 计数器 02h (r/w) PCL 低 8 位 PC 指针 03h (r/w) STATUS RST GP1 GP0TO PD Z DC C 04h (r/w) FSR * * 间接地址访问指针 (RAM 选择寄存器 ) 05h (( 预留 )) PORTA IOA3 IOA2 IOA1 IOA0 06h (r/w) PORTB IOB7 IOB6 IOB5 IOB4 IOB3 IOB2 IOB1 IOB0 07h (r/w) SRAM 通用寄存器 08h (r/w) PCON WDTE EIS LVDTE * * * * * 09h (r/w) WUCON WUB7 WUB6 WUB5 WUB4 WUB3 WUB2 WUB1 WUB0 0Ah (r/w) PCHBUF - - - - - - 2 MSBs Buffer of PC 8

0Bh (r/w) PDCON /PDB2 /PDB1 /PDB0 /PDA3 /PDA2 /PDA1 /PDA0 0Ch (r/w) ODCON ODB7 ODB6 ODB5 ODB4 ODB2 ODB1 ODB0 0Dh (r/w) PHCON /PHB7 /PHB6 /PHB5 /PHB4 /PHB2 /PHB1 /PHB0 0Eh (r/w) INTEN GIE * * * * INTIE PBIE T0IE 0Fh (r/w) INTFLAG - - - - - INTIF PBIF T0IF 图注 : - = 未实现, 读为 '0',*= 未实现, 读为 '1' 6 功能介绍 6.1 寄存器操作 6.1.1 INDF ( 间接寻址寄存器 ) 地址名称 B7 B6 B5 B4 B3 B2 B1 B0 00h (r/w) INDF 通过 FSR 访问数据区 ( 不是一个实际的物理地址 ) INDF 不是一个实际的物理地址, 间接寻址时 INDF 通过 RAM 选择寄存器 (FSR) 来访问其所指向的地址 间接寻址读操作直接读地址 00h(FSR= 0 ), 间接寻址不能对 INDF 直接进行写操作 ( 尽管有些状态会发生改变 ),FSR 的 5-0 位可以用来选择 64 个寄存器 ( 地址 :00h ~ 3Fh) 6.1.2 TMR0 ( 定时 / 计数器 ) 图 1. 直接 / 间接寻址 地址名称 B7 B6 B5 B4 B3 B2 B1 B0 01h (r/w) TMR0 8 位定时 / 计数器 TMR0 是一个 8 位定时 / 计数器寄存器, Timer0 的时钟源可以取值于指令周期或外部实时钟 (T0CKI 脚 ), 使用外部 时钟需要设置 OPTION 的 T0CS(T0CS=5) 位为 1, 使用 TMR0 的预置器需要设置 OPTION 的 PSA (PSA =3) 位为 0, 这种模式下 TMR0 值的改变, 预置器被清零 9

6.1.3 PCL & Stack 地址名称 B7 B6 B5 B4 B3 B2 B1 B0 02h (r/w) PCL 8 位定时 / 计数器 BJ2C004A 的 PC 指针和堆栈的位数为 10 位, 堆栈有 5 级, 低位的 PC 指针为 PCL 寄存器, 该寄存器时可读写的, 高位的 PC 指针为 PCH 寄存器, 该寄存器包含 PC<9:8> 位, 该寄存器不能直接读写. PCH 寄存器的改变是通过 PCHBUF 寄存器来实现的. 每一条指令执行的时候他的 PC 指针包含下一条指令的操作地址 指令没有改变 PC 内容时候 在每一个指令周期 PC 指针自动加 1 对于 GOTO 指令有 PC<9:0>,PCL 映射成 PC<7:0>,PCHBUF 不变 对于 CALL 指令有 PC<9:0>, 下一条指令地址被推进堆栈,PCL 映射成 PC<7:0>,PCHBUF 不变 对于 RETIA, RETFIE, RETURN 指令有 PC<9:0>,PC 的内容更改为出栈信息,PCL 映射成 PC<7:0>,PCHBUF 不变 对于其他指令,PCLj 就是目标信息, PC<7:0> 的内容就是指令地址或 不管怎样, PC<9:8> 来源于 PCHBUF<1:0> 位 (PCHBUF PCH). PCHBUF 不会改变, 从而 PCH 不会改变. 1 GOTO 指令 2 CALL 指令 3 RETIA, RETFIE, RETURN 指令 10

注释 1. PCHBUF 只有在 PCL 内容是目标地址才有效, 当 PCL 是运算结果时候,PCHBUF 不起作用 6.1.4 STATUS ( 状态字寄存器 ) 地址名称 B7 B6 B5 B4 B3 B2 B1 B0 03h (r/w) STATUS RST GP1 GP0 TO PD Z DC C 状态字寄存器包含运算标志, 结果标志指令执行以后可能会影响 STATUS 寄存器的 Z DC C 标志位, 则不能直接对这三个标志位进行写操作, 这些标志位的设置由 MCU 的逻辑自动完成 同时,TO 和 PD 位也是不能通过指令直接改变写操作 Therefore, the result of an instruction with the STATUS Register as destination may be different than intended. 例如 :, 运行 CLRR STATUS 将把 STATUS 的高三位置零和 Z 标志位置 1 同时该寄存器的内容如下 C : 进位标志 ADDAR, ADDIA = 1, 有进位 = 0, 无进位 SUBAR, SUBIA = 1, 无借位 = 0, 有借位注释 : 执行减法通过添加第二个操作数的二进制补码 对于移位 (RRR,RLR) 指令, 该位装入无论是高或低序源寄存器的位 DC : 辅助进位 / 借位标志.( 低四位向高四位进位 / 借位标志 ) ADDAR, ADDIA = 1, 底 4 位有进位 11

= 0, 底 4 位无进位 SUBAR, SUBIA = 1, 底 4 位无借位 = 0, 底 4 位有借位 Z : Zero bit. = 1, 算术或逻辑运算结果为 0 时. = 0, 算术或逻辑运算结果不为 0 时. PD : Power down flag bit. = 1, 当系统上电时或执行 CLRWDT 指令后 = 0, 当执行 SLEEP 指令后. TO : Time overflow flag bit. = 1, 当系统上电时或执行 CLRWDT 或 SLEEP 指令后 = 0, 看门狗定时器溢出 GP1:GP0 : 通用寄存器读 / 写位. RST : 定义系统复位类型位. = 1, 唤醒 SLEEP 或 Port B 脚位变化唤醒 SLEEP = 0, 其他类型唤醒 SLEEP. 6.1.5 FSR ( 间接寻址指针 ) 地址 名称 B7 B6 B5 B4 B3 B2 B1 B0 04h (r/w) FSR * * 间接寻址指针 PD Z DC C Bit5:Bit0 : 用来选择访问间接寻址时目标寄存器地址. 具体描述见 6.1.1 Bit7:Bit6 : 没有使用. Read as 1 s. 6.1.6 PORTA, PORTB (Port 寄存器 ) 12

地址名称 B7 B6 B5 B4 B3 B2 B1 B0 05h (r/w) PORTA IOA3 IOA2 IOA1 IOA0 06h (r/w) PORTB IOB7 IOB6 IOB5 IOB4 IOB3 IOB2 IOB1 IOB0 读端口 (PORTA, PORTB 寄存器 ) 的状态依赖于该端口是输入 / 输出模式, 写端口是向锁存器写数据 PORTA 是一个 4 位端口数据寄存器, 只有低 4 位被使用 (PORTA<3:0>). Bits 7-4 通常作为读 / 写位. PORTB 是一个 8 位端口数据寄存器. IOB3 只能作为输入. 6.1.7 PCON ( 电源控制寄存器 ) 地址名称 B7 B6 B5 B4 B3 B2 B1 B0 08h (r/w) PCON WDTE EIS LVDTE * * * * * Bit4:Bit0 : Not used. 置 1. LVDTE : LVDT ( 低电压检测 ) 使能位. = 0, 关闭 LVDT. = 1, 使能 LVDT. EIS : 定义管脚 B0/INT 功能位 = 0, IOB0 ( 双向 I/O 口 ) is selected. 屏蔽了 INT 功能. = 1, INT ( 外部中断输入脚 ), 在这种模式下,PORTB 的 IOB0 必须置 1. IOB0 作为 I/O 口输入功能通过硬件屏蔽了, 读取 INT 管脚信息的与读 PORTB. 方式相同 WDTE : WDT (watch-dog timer) 使能看门狗定时器 = 0, 关闭 WDT. = 1, 使能 WDT. 6.1.8 WUCON (Port B 输入改变 / 唤醒控制寄存器 ) 地址 名称 B7 B6 B5 B4 B3 B2 B1 B0 09h (r/w) WUCON WUB7 WUB6 WUB5 WUB4 WUB3 WUB2 WUB1 WUB0 WUB0 : = 0, 禁止 IIOB0 输入改变 / 唤醒功能 = 1, 使能 IOB0 输入改变 / 唤醒功能. WUB1 : 13

= 0, 禁止 IIOB1 输入改变 / 唤醒功能 = 1, 使能 IOB1 输入改变 / 唤醒功能. WUB2 : = 0, 禁止 IIOB2 输入改变 / 唤醒功能 = 1, 使能 IOB2 输入改变 / 唤醒功能. WUB3 : = 0, 禁止 IIOB3 输入改变 / 唤醒功能 = 1, 使能 IOB3 输入改变 / 唤醒功能. WUB4 : = 0, 禁止 IIOB4 输入改变 / 唤醒功能 = 1, 使能 IOB4 输入改变 / 唤醒功能. WUB5 : = 0, 禁止 IIOB5 输入改变 / 唤醒功能 = 1, 使能 IOB5 输入改变 / 唤醒功能. WUB6 : = 0, 禁止 IIOB6 输入改变 / 唤醒功能 = 1, 使能 IOB6 输入改变 / 唤醒功能. WUB7 : = 0, 禁止 IIOB7 输入改变 / 唤醒功能 = 1, 使能 IOB7 输入改变 / 唤醒功能. 6.1.9 PCHBUF (PC 指针高位缓冲区 ) Bit1:Bit0 : 见 2.1.3 Bit7:Bit2 : 没有使用, 置 0. 6.1.10 PDCON (I/O 下拉控制寄存器 ) 地址 名称 B7 B6 B5 B4 B3 B2 B1 B0 0Bh (r/w) PDCON /PDB2 /PDB1 /PDB0 /PDA3 /PDA2 /PDA1 /PDA0 /PDA0( 预留 ) : = 0, 使能 IOA0 内部下拉 14

= 1, 禁止 IOA0 内部下拉. /PDA1( 预留 ) : = 0, 使能 IOA1 内部下拉 = 1, 禁止 IOA1 内部下拉. /PDA2( 预留 ) : = 0, 使能 IOA2 内部下拉 = 1, 禁止 IOA2 内部下拉. /PDA3 ( 预留 ): = 0, 使能 IOA3 内部下拉 = 1, 禁止 IOA3 内部下拉. /PDB0: = 0, 使能 IOB 0 内部下拉 = 1, 禁止 IOB0 内部下拉 /PDB1: = 0, 使能 IOB1 内部下拉 = 1, 禁止 IOB1 内部下拉 /PDB2: = 0, 使能 IOB2 内部下拉 = 1, 禁止 IOB2 内部下拉. Bit7 : 一般的读 / 写位 : 6.1.11 ODCON (I/O 开路控制寄存器 ) 地址 名称 B7 B6 B5 B4 B3 B2 B1 B0 0Ch (r/w) ODCON ODB7 ODB6 ODB5 ODB4 ODB2 ODB1 ODB0 ODB0 : = 0, 禁止 IOB0 内部开路 = 1, 使能 IOB0 内部开路. ODB1 : = 0, 禁止 IOB1 内部开路 = 1, 使能 IOB1 内部开路. 15

ODB2 : = 0, 禁止 IOB2 内部开路 = 1, 使能 IOB2 内部开路. Bit3 : 一般的读 / 写位. ODB4 : = 0, 禁止 IOB4 内部开路 = 1, 使能 IOB4 内部开路. ODB5 : = 0, 禁止 IOB5 内部开路 = 1, 使能 IOB5 内部开路. ODB6 : = 0, 禁止 IOB6 内部开路 = 1, 使能 IOB6 内部开路. ODB7 : = 0, 禁止 IOB7 内部开路 = 1, 使能 IOB7 内部开路. 6.1.12 PHCON (I/O 上拉控制寄存器 ) 地址名称 B7 B6 B5 B4 B3 B2 B1 B0 PHB7 PHB6 PHB5 PHB4 PHB2 PHB1 PHB0 0Dh (r/w) PHCON /PHB0 : = 0, 使能 IOB0 内部上拉. = 1, 禁止 IOB0 内部上拉. /PHB1 : = 0, 使能 IOB1 内部上拉. = 1, 禁止 IOB1 内部上拉. /PHB2 : = 0, 使能 IOB2 内部上拉. = 1, 禁止 IOB2 内部上拉. Bit3 : 一般的读 / 写位. 16

/PHB4 : = 0, 使能 IOB4 内部上拉. = 1, 禁止 IOB4 内部上拉. /PHB5 : = 0, 使能 IOB5 内部上拉. = 1, 禁止 IOB5 内部上拉. /PHB6 : = 0, 使能 IOB6 内部上拉.( 在使用内置 BJ24C02 时, 请使能此位 ) = 1, 禁止 IOB6 内部上拉. /PHB7 : = 0, 使能 IOB7 内部上拉.( 在使用内置 BJ24C02 时, 请使能此位 ) = 1, 禁止 IOB7 内部上拉. 6.1.13 INTEN ( 中断屏蔽寄存器 ) 地址名称 B7 B6 B5 B4 B3 B2 B1 B0 0Eh (r/w) INTEN GIE * * * * INTIE PBIE T0IE T0IE : Timer0 溢出中断屏蔽位. = 0, 禁止 Timer0 溢出中断. = 1, 使能 Timer0 溢出中断 PBIE : Port B 输入改变中断屏蔽位. = 0, 禁止 Port B 输入改变中. = 1, 使能 Port B 输入改变中 INTIE : 外部中断屏蔽位 = 0, 禁止外部中断. = 1, 使能外部中断 Bit6:BIT3 : 没有使用. 置 1. GIE : 中断允许总控位 = 0, 禁止所有中断. 对于睡眠唤醒模式的中断事件,MCU 将执行 SLEEP 后的指令. = 1, 使能所有没有屏蔽的中断. 对于睡眠唤醒模式的中断事件,MCU 将跳转到中断地址 (008h) 17

注释 : 在中断事件发生时, GIEB 被硬件清零并禁止一切中断, 所以 GIE 以及与该中断相关的中断屏蔽位需要 重开启 RETFIE 为退出中断程序并重新设置 GIE =1 允许中断 6.1.14 INTFLAG ( 中断标志寄存器 ) 地址 名称 B7 B6 B5 B4 B3 B2 B1 B0 0Fh (r/w) INTFLA G - - - - - INTIF PBIF T0IF T0IF : 溢出中断标志, 发生 Timer0 溢出中断置 1, 软件设置清零. PBIF : Port B 输入改变中断标志 interrupt flag. Port B 输入改变时置 1, 软件设置清零 INTIF : 外部中断标志. 当管脚 INT 上升沿 / 下降沿 ( 是上升沿 / 下降沿由 INTEDG 位 (OPTION<6>) 决定 ) 时置 1, 软 件设置清零. Bit7:BIT3 : 没有使用, 置 0 6.1.15 ACC (Accumulator) Accumulator 是一个内部数据转化 指令操作和存放操作结果的存储单元, 不能被访问 地址 名称 B7 B6 B5 B4 B3 B2 B1 B0 N/A (r/w) ACC Accumulator- - - - PBIF T0IF INTIF 6.1.16 OPTION Register( 选项寄存器 ) 地址 名称 B7 B6 B5 B4 B3 B2 B1 B0 N/A (w) OPTION * INTEDG T0CS T0SE PSA PS2 PS1 PS0 通过 OPTION 指令访问在执行 OPTION 指令时候, 该数据单元由 ACC( 累加器 ) 转化为选项寄存器 (OPTION Register). 选项寄存器是一个 7 位只写寄存器, 它的一些控制位主要用来配置与 Timer0/WDT 分频器, Timer0, 外部中断选项相关信息 除 INTEDG 位以外其他位是只写并可以置 1 PS2:PS0 : 分频率选择控制位. 18

PS2:PS0 Timer0 Rate WDT Rate 0 0 0 1:2 1:1 0 0 1 1:4 1:2 0 1 0 1:8 1:4 0 1 1 1:16 1:8 1 0 0 1:32 1:16 1 0 1 1:64 1:32 1 1 0 1:128 1:64 1 1 1 1:256 1:128 PSA : 分频器选择位. = 1, WDT (watch-dog timer). = 0, TMR0 (Timer0). T0SE : TMR0 触发方式控制位. = 1, T0CKI 脚下降沿触发计数 = 0, T0CKI 脚上升沿触发计数. T0CS : TMR0 时钟源选择控制位. = 1, 外部 T0CKI 脚. 当 IOST IOB2 = 0. 时,IOB2/T0CKI 脚设置为输入 = 0, internal instruction clock cycle. INTEDG : 中断触发方式控制位. = 1, 中断触发方式为 INT 脚上升沿出发 = 0, 中断触发方式为 INT 脚下降沿出发. Bit7 : 没有使用 6.1.17 IOSTA & IOSTB (I/O 口控制寄存器 ) 地址 名称 B7 B6 B5 B4 B3 B2 B1 B0 N/A (w) IOSTA( 预留 ) Port A 口控制寄存器 N/A (w) IOSTB Port B 口控制寄存器 通过 IOST 指令访问 19

通过指令 OST R (05h~06h) i 把累加器 A 的内容加载到 I/O 控制寄存器, 按位将 IOSTA,IOSTB 设为 1 表示该脚为输 入 ( 高阻抗 ) 设为 0 时表示该脚为输出. IOST 寄存器只写, 系统复位以后设置为输入 ( 高阻抗 ) 地址 名称 B7 B6 B5 B4 B3 B2 B1 B0 0Bh (r/w) PDCON /PDB2 /PDB1 /PDB0 /PDA3 /PDA2 /PDA1 /PDA0 /PDA0 ( 预留 ): = 0, 使能 IOA0 内部下拉 = 1, 禁止 IOA0 内部下拉. /PDA1 ( 预留 ): = 0, 使能 IOA1 内部下拉 = 1, 禁止 IOA1 内部下拉. /PDA2( 预留 ) : = 0, 使能 IOA2 内部下拉 = 1, 禁止 IOA2 内部下拉. /PDA3( 预留 ) : = 0, 使能 IOA3 内部下拉 = 1, 禁止 IOA3 内部下拉. /PDB0: = 0, 使能 IOB 0 内部下拉 = 1, 禁止 IOB0 内部下拉 /PDB1: = 0, 使能 IOB1 内部下拉 = 1, 禁止 IOB1 内部下拉 /PDB2: = 0, 使能 IOB2 内部下拉 = 1, 禁止 IOB2 内部下拉. Bit7 : 一般的读 / 写位 : 6.2 I/O Ports Port A 和 port B 为双向三态 I/O 口. Port A 为 4 脚 I/O 口. Port B 为 8 脚 I/O 口. 注意 IOB3 只能作为输入口 除了 20

IOB3 只作为输入和 IOB2 需要通过选项寄存器 (Option) 的 T0CS((OPTION<5>)) 位控制, 所有的 I/O 的输入 / 输出方式. 有 I/O 控制寄存器 (IOSTA, IOSTB) 设置. IOB<7:4> 和 IOB<2:0> 有相应的上拉控制位 (PHCON 寄存器 ) 来设置使能内部上拉, 如果设置为输出模式, 内部上拉功能会自动关闭 ;IOA<3:0> 和 IOB<2:0> 有相应的下拉控制位 (PDCON 寄存器 ) 来设置使能内部下拉, 如果设置为输出模式, 内部下拉功能会自动关闭 ;IOB<7:4> 和 IOB<2:0> 有相应的开路控制位 (ODCON 寄存器 ) 来设置使能开路来设置输出为开路输出. IOB<7:0> 有输入改变中断 / 唤醒功能. 它的每个管脚是否具有该功能通过取决于 WUCON 寄存器的相应位当 EIS(PCON<6>)=1 时, IOB0 作为外部中断输入脚, 在该模式下 IOB0 输入改变中断 / 唤醒功能 i 被硬件屏蔽, 即使软件已经设置为中断 / 唤醒功能可用也不可启用该功能. CONFIGURATION 配置能交替设置 I/O 口的不同功能., 功能交替设置完以后, 读的 I/O 的值为 0. 图 2 I/O 引脚框图 下拉未在图中示出 21

上拉 / 下拉和漏极开路未在图中示出 22

上拉 / 下拉和漏极开路未在图中示出 6.3 定时器 0/ 看门狗定时器 & 预置器 6.3.1 Timer0 Timer0 为 8 位定时 / 计数器, Timer0 的时钟源可以是内部或外部时钟源 (T0CKI 脚 ). 6.3.1.1 使用内部时钟 : 定时模式 T0CS(OPTION<5>)=0 为定时模式, 定时模式在没有预置器的情况下, 定时寄存器每个指令周期自动加 1, 设置 TMR0 以后, 定时器将在两个时钟周期以后开始自增 6.3.1.2 使用外部时钟 : 计数模式 T0CS(OPTION<5>)=1 为计数模式, 是选择通过 T0CK 管脚的上升或下降沿触发 Timer0 寄存器的增加由 T0SE 位 (OPTION<4>) 决定, 外在时钟要求与内部时钟 (Tosc) 同步 同步以后,Timer0 实际增加有一个延迟在没有预置器的情况下, 外部时钟输入同样也可以作为预置器输出 ;T0CKI 与内部时钟同步时能方便处理在 T2 和 T4 周期上的预分频. 因此 T0CKI 为高或低电平必须要保持两个以上时钟周期才有效 有预置分频时器, 外部时钟输入被异步分频器平分, 这种常用来计算波形 因此 : 因此 T0CKI 的一个波形周期至少 4Tosc 才能被预置器平分. 23

6.3.2 看门狗定时器 (WDT) 看门狗定时器 (WDT) 的运行依赖于芯片里的 RC 振荡器, 无需任何额外电路即能工作 不管时钟 OSCI 和 OSCO 管脚是否关闭, 它都能运行, 如在睡眠模式 在一般操作或睡眠模式情况下, 看门狗定时器的溢出都会导致 MCU 复位同时 TO (STATUS<4>) 位被清零. 如 WDTE 位 (PCON<7>) 清零. 看门狗定时器不能工作在没有预置器时看门狗的溢出为 18 ms, 4.5ms, 288ms, 72ms 这个时间可以通过 SUT<1:0> 设置 ; 需要看门狗的 t 溢出周期变长可以通过设置 OPTION 寄存器的看门狗定时器分频大于 1:128., 因此最长的看门狗的 t 溢出周期为 36.8 秒. CLRWDT 指令能使 WDT 和预置器清零, 启用看门狗可以防止超时, 如果超时 MCU 能复位 SLEEP 指令重置 WDT 和预置器, 启用看门狗就给机器分派了一个最大睡眠时间 6.3.3 预置器有一个 8 位的向下计数器作为 Timer0 和看门狗定时器 (WDT) 的预置器 注意该预置器只能分配给 Timer0 或 WDT 使用, 不能两者同时使用 PSA 位 (OPTION<3>) 决定预置器是指派给 Timer0 还是 WDT. PS<2:0> 位 (OPTION<2:0>) 配置分频 当作为 Timer0 的预置器的时候, TMR0 会被预置器清零. 当作为 WDT 的预置器的时候, CLRWD 指令会清除预置器内容 预置器不能读写. 机器复位, 预置器各位全为 1 为了避免机器非正常复位, 当 Timer0 或 WDT 的预置器发生改变的时候, 需要执行 CLRWDT 或 CLRR TMR0 指令, 反之亦然 图 3 TIMER0/WDT 预分频器的框图 24

6.4 中断 BJ2C004A 系统具备有三种中断方式 : 1. INT 管脚的外部中断. 2. TMR0 溢出中断. 3. Port B 输入改变中断 (IOB7:IOB0 脚 ). INTFLAG 为中断标志寄存器, 决定该寄存器机器所发生的中断状态. 中断允许总控位 GIE (INTEN<7>), 能使所有中断被开放 (GIE=1) 或屏蔽所有中断 (GIE=0), 每中断能否启用决定 INTEN 寄存器同时保证 GIE=1 中断发生时 GIE 位 ( 在中断发生前 GIE 位和该中断相关的中断屏蔽位置 1) 被硬件清零从而禁止进一步中断 (BJ2C004A 不区分中断优先级别 ), 同时下条指令跳到 008h 后开始执行 中断标志位在中断允许总控位 GIE 重新置 1 的时候需要被软件清零以防止重复中断 一个中断标志位 (PBIF 除外的 ) 会被它的中断事件置 1, 而不管与它相关的中断屏蔽位是否启用 通过 INTFLAG 和 INTEN 的相应中位来判断是否发生中断以及中断类型 当通过 INT 指令发生软中断时, 下条指令跳到 002 后开始执行 6.4.1 外部中断外部中断 INT 管脚上升沿还是下降沿触发由 INTEDG 位 (OPTION<6>) 决定 ), 当一个有效的跳变发生时标志位 INTIF 置 1, 如 INTIE 位 (INTEN<2>) 清零, 该中断被屏蔽 在睡眠之前 INTIE 位已被置 1,INT 管脚可以作为系统睡眠条件 在睡眠之前 GIE 位已被置 1 机器唤醒以后会执行中断服务程序, 否则会运行睡眠以后的下一条指令 6.4.2 Timer0 中断 TMR0 发生溢出 (FFh 00h) 时 T0IF 标志位置 1 (INTFLAG<0>). T0IE 位 (INTEN<0>) 清零, 该中断被屏蔽. 6.4.3 Port B 输入改变中断输入改变中断触发时 IOB<7:0> PBIF 标志位置 1 (INTFLAG<1>). PBIE 位 (INTEN<1>) 清零, 该中断被屏蔽 在输入改变中断发生之前, 必须读取 port B 信息与 PortB 的管脚相对应的 WUBn 位 (WUCON<7:0>) i 清零或设置为输出或 IOB0 脚设置为外部中断输入脚 INT 都拥有该功能 PBIE 在睡眠之前置 1, port B 输入脚改变中断也可以作为睡眠唤醒条件 在睡眠之前 GIE 位已被置 1 机器唤醒以后会执行中断服务程序, 否则会运行睡眠以后的下一条指令 6.5 省电模式 执行 SLEEP 指令以后机器进入省电模式 执行 SLEEP 指令, PD 位清零 (STATUS<3>),TO 位置 1, 看门狗清零同时保持运行状态, 晶体停振 I/O 维持原状 25

6.5.1 睡眠唤醒在睡眠状态下, 单片机能通过以下方式唤醒 1. RSTB 管脚复位 2. 看门狗复位 ( 机器设置了看门狗 ). 3. RB0/INT 管脚中断, 或 PORTB 输入改变中断. 外部的 RSTB 管脚和看门狗通过设置 PD 和 TO 位都能使机器复位. PD 和 TO 位,PD 位置 1 用于上电复位, 清零用于 SLEEP 复位, TO 位清零用于看门狗溢出复位. 机器通过中断唤醒, 该中断屏蔽位置 1, 中断唤醒不管 GIE 是否置 1. 当 GIE 位被清零, 机器唤醒以后执行 SLEEP 指令以后的指令 ; 当 GIE 位被置 1, 机器唤醒以后跳转到中断复位地址 (008h) 在高频或低频模式机器复位延迟时间为 18/4.5/288/72ms ( 该延迟时间由 SUT<1:0> 设置 ) 加上 16 个振荡周期 在 IRC/ERIC or ERC 模式, 机器复位延迟时间为 140us. 6.6 复位 BJ2C004A 单片机能通过以下方式复位 1. 上电复位 (POR) 2. 掉电复位 (Brown-out Reset BOR) 3. RSTB 管脚复位 4. 看门狗 WDT 溢出复位一些寄存器在一些复位条件下没有影响, 在上电和其他一些复位情况下它们的状态是未知的. 大多数寄存器会回到复位状态在上电复位,RSTB 管脚复位, 看门狗 WDT 溢出复位 对 Vdd 上升信号检测告之芯片是否加上上电复位脉冲信号 要使用这个特点, 用户需要把 RSTB 管脚连接到 Vdd 掉电复位作为一种典型应用主要用在 AC 或重载交换的应用上 芯片上的低电压检测模块到电压低于一个固定的电压也会对使芯片复位, 这样能保证芯片只能在正常电压范围内工作. RSTB 或 WDT 睡眠唤醒也导致芯片复位, 其复位操作的不会在睡眠之前 根据不同的复原状态设置对 TO 和 PD 位 (STATUS<4 :3>) 置 1 或清零 6.6.1 上电复位计数器 上电复位计数器提供一个 18/4.5/288/72ms 延迟时间 ( 该延迟时间由 SUT<1:0> 设置 ) ( 或 140us, 基于不同的振荡源和复位条件 ) 在上电复位, 掉电复位, RSTB 管脚复位或看门狗溢出复位 只要 PWRT 在运行, 设备就一直保持的复位状态 26

Vdd 温度和其他变化而会影响 PWDT 控制的设备延迟时间 表 4 PWRT Period Oscillator Mode Power-on Reset Brown-out Reset RSTB Reset WDT time-out Reset ERC & IRC/ERIC 18/4.5/288/72 ms 140 us HF & LF 18/4.5/288/72 ms 18/4.5/288/72ms 6.6.2 振荡启动计数器在 HF 或 LF 振荡模式下在 PWRT 延迟 (18/4.5/288/72ms) 之后振荡启动计数器会再提供一个 16 个 clock 的延迟 这种延迟晶体谐振器能提供稳定的振荡源, 这段时间内只要 OST 在工作, 设备就一直保持的复位状态. 在 OSCI 信号的振幅到达振荡器输入最大振幅之后, 该计数器只开始增加 6.6.3 复位顺序 BJ2C004A 复位时序如下 : 1. 复位锁存器置 1,PWRT & OST 清零. 2. 当内部的 POR, BOR, RSTB 复位或 WDT 溢出复位脉冲加载完成后, PWRT 开始计数. 3. PWRT 溢出以后, OST 开始计数延迟. 4. OST 延迟完成以后, 复位锁存器清零最后芯片得到一个复位信号. 在高频或低频振荡模式机器复位延迟时间为 18/4.5/288/72ms 加上 16 个振荡周期, 在 IRC/ERIC,ERC 振荡模式单片机会在 Power-on Reset (POR), Brown-out Reset (BOR), 或 RSTB 复位以后在延迟 140us, 看门狗溢出复位后再延迟 18/4.5/288/72ms 的时间 图 4 复位电路结构图 27

表 5 复位以后各个寄存器状态列表 寄存器 地址 上电复位 掉电复位 RSTB 复位 WDT 复位 ACC N/A xxxx xxxx uuuu uuuu OPTION N/A -011 1111-011 1111 IOSTA N/A ---- 1111 ---- 1111 IOSTB N/A 1111 1111 1111 1111 INDF 00h xxxx xxxx uuuu uuuu TMR0 01h xxxx xxxx uuuu uuuu PCL 02h 1111 1111 1111 1111 STATUS 03h 0001 1xxx 000# #uuu FSR 04h 11xx xxxx 11uu uuuu PORTA 05h xxxx xxxx uuuu uuuu PORTB 06h xxxx xxxx uuuu uuuu General Purpose Register 07h xxxx xxxx uuuu uuuu PCON 08h 101 101 WUCON 09h 0000 0000 0000 0000 PCHBUF 0Ah 00 00 PDCON 0Bh 1111 1111 1111 1111 ODCON 0Ch 0000 0000 0000 0000 28

PHCON 0Dh 1111 1111 1111 1111 INTEN 0Eh 0--- -000 0--- -000 INTFLAG 0Fh 000 000 General Purpose Registers 10 ~ 3Fh xxxx xxxx uuuu uuuu 注 : u = 不变, x = 未知, - = 不起作用, # = 参见下表的值 表 6 RST/ TO / PD 复位和唤醒后的状态 RST TO PD 复位方式 0 1 1 上电复位 0 1 1 欠压复位 0 u u 在正常操作期间 RSTB 复位 0 1 0 在休眠状态下 RSTB 复位 0 0 1 在正常工作期间 WDT 复位 0 0 0 在休眠期间 WDT 唤醒 1 1 0 在休眠状态下引脚电平变化唤醒 注 : u = 不变 表 7 TO/PD 状态位影响事件 事件 t TO PD 上电 1 1 WDT 超时 0 u SLEEP 指令 1 0 CLRWDT 指令 1 1 注 : u = 不变 6.7 十六进制转化为十进制 BJ2C004A 具有十进制格式化功能. 当一个寄存器里面的内容需要十进制转化的时候, 在执行操作 ALU 以后必须把结果进行相应的进制转化. 一个数据在处理过程中进行了转化成了十进制, 那么所有对这个数进行的操作 ( 包含存放该数据的 RAM 单元,accumulator (ACC), 立即数, 以及所要查表信息 ) 都的进行十进制转化, 这样的运算结果才正确 DAA 指令能在加法运算完成以后将 ACC 里的数据从十六进制转化为十进制重存给 ACC 转换操作在例子 2.2 中被说明 EXAMPLE 2.2: DAA 转化 MOVIA 90h ; 设立即数为十六进制 90h (ACC 90h) MOVAR 30h ; 把立即数 90 存放到 30H 29

MOVIA 10h ; 设立即数为十六进制 10h (ACC 10h) ADDAR 30h, 0 ;30h 单元存放的数据与 ACC 进行二进制数据相加 (ACC A0h, C 0) DAA 把 ACC 内容转化为十进制 ; 在 Acc 中内容为 00 进位标志为 1, 这表示十进制 100 DAS 指令能在减法运算完成以后将 ACC 里的数据从十六进制转化为十进制重存给 ACC 转换操作在例子 2.3 中被说明. EXAMPLE 2.3: DAS 转化 MOVIA 10h ; 设立即数为十六进制 10h (ACC 10h) MOVAR 30h ; 把立即数 10 存放到 30H MOVIA 20h ; ; 设立即数为十六进制 20h (ACC 20h) SUBAR 30h, 0 ; 30h 单元存放的数据与 ACC 进行二进制数据相减 (ACC F0h, C 0) DAS ; 把 ACC 内容转化为十进制 ; ; 在 Acc 中内容为 90 进位标志为 1, 这表示十进制 -10 T 6.8 振荡器配置 BJ2C004A 有四种不同的振荡模式, 用户可以通过设置两个位 (Fosc<1:0>) 来选择振荡方式 : LF: 低频晶体器 HF: 高频晶体 / 谐振器 IRC/ERIC: 内部电阻内部电容振荡器 / 外部电阻内部电容振荡器 ERC: 外部 RC 振荡器 In LF, 或 HF 模式下, 一台水晶或陶瓷谐振器连接到 OSCI 和 OSCO 管脚建立振荡源 In LF, 或 HF 模式下单片机通过 OSCI 脚接入外部时钟源 使用 ERC 振荡模式为成本节省主要使用在定时无须精确场合下的应用,RC 振荡器频率取决于电阻和电容 (Cext), 操作温度以及其他过程参数 使用 IRC/ERIC 振荡模式为成本节省主要使用在定时无须精确场合下的应用., 单片机具有 4 种不同的振荡频率, 8MHz, 4MHz, 1MHz, and 455KHz, 通过 (RCM<1:0>) 来选择一种. 或则用户改变外部电阻来实现. ERIC 振荡器频率取决于电阻和电容 (Cext), 操作温度以及其他过程参数 图 5 HF, 或 LF 振荡器模式 ( 晶体或陶瓷谐振器 ) 30

图 6 HF, 或 LF 振荡器模式 ( 外部时钟输入操作 ) 图 7 ERC 振荡器模式 ( 外部 RC 振荡器 ) 图 8 ERIC 振荡器模式 ( 外部 R, 内部 C 振荡器 ) 31

图 9 IRC 振荡器模式 ( 内部 R, 内部 C 振荡器 ) 6.9 EEPROM 的操作 6.9.1 MCU 与 EEPROM 的连接 32

1 由于 WP 口直接接地, 读写都是对用户直接开放, 无法禁止写 2 对内置 BJ24C02 操作时, 需要软件使能 IOB6,IOB7 的内部上拉功能 6.9.2 EEPROM 的器件地址 6.9.3 具体使用方法, 我司有标准的范例程序, 可向 FAE 部门索取 6.10 配置选项 表 8 配置选项 0 位名称说明振荡源选择位 = 1, 1, 1 mode ( 外部的 RC 振荡器 ) ( 默认 ) IOB4/OSCO 管脚为取 OSCOUT 功能 2, 1, 0 Fosc<2:0> = 1, 1, 0 HF mode = 1, 0, 1 XT mode = 1, 0, 0 LF mode = 0, 1, 1 IRC mode (internal R & C) 33

IOB4/OSCO 管脚为取 OSCOUT 功能 = 0, 1, 0 ERIC mode (external R & internal C) IOB4/OSCO 管脚为取 OSCOUT 功能低电压检测选择位 = 1, 1, 1 禁止低电压检测 ( 默认 ) = 1, 1, 0 enable, LVDT voltage = 2.0V, 睡眠模式 = 1, 0, 1 enable, LVDT voltage = 2.0V 5, 4, 3 LVDT<2:0> = 1, 0, 0 enable, LVDT voltage = 3.6V = 0, 1, 1 enable, LVDT voltage = 1.8V = 0, 1, 0 enable, LVDT voltage = 2.2V = 0, 0, 1 enable, LVDT voltage = 2.4V = 0, 0, 0 enable, LVDT voltage = 2.6V IRC 选择位 = 1, 1 4MHz ( 默认 ) 7, 6 RCM<1:0> = 1, 0 8MHz = 0, 1 1MHz = 0, 0 455KHz PWRT & WDT 计数周期选择位 ( 其值必须是分频率的倍数 ) = 1, 1, 1 PWRT = WDT prescaler rate = 18ms (default) = 1, 1, 0 PWRT = WDT prescaler rate = 4.5ms = 1, 0, 1 PWRT = WDT prescaler rate = 288ms 10, 9, 8 SUT<2:0> = 1, 0, 0 PWRT = WDT prescaler rate = 72ms = 0, 1, 1 PWRT = 140us, WDT prescaler rate = 18ms = 0, 1, 0 PWRT = 140us, WDT prescaler rate = 4.5ms = 0, 0, 1 PWRT = 140us, WDT prescaler rate = 288ms = 0, 0, 0 PWRT = 140us, WDT prescaler rate = 72ms 34

IRC/ERIC/ERC 模式下 IOB4/OSCO 功能选择位置 11 OSCOUT = 1, OSCO ( 默认 ) = 0, IOB4 IOB3/RSTB 选择位置 12 RSTBIN = 1, IOB3 ( 默认 ) = 0, RSTB 表 9 配置选项 1 位名称说明 看门狗使能位 0 WDTEN = 1, 使能 WDT ( 默认 ) = 0, 禁止 WDT 代码保护选择位 1 PROTECT = 1, 1 代码不加密 EPROM code protection off ( 默认 ) = 0, 0 代码加密 EPROM code protection on 指令运行周期选择位 = 1, 1 4 个振荡周期 ( 默认 ) 3, 2 OSCD<1:0> = 1, 0 2 个振荡周期 = 0, 1 1 个振荡周期 = 0, 0 8 个振荡周期 省电模式控制位 4 PMOD = 1, 非省电模式 ( 默认 ) = 0, 省电模式 IO 作为输出时, 读端口方式控制位 5 RDPORT = 1, 从寄存器读 ( 默认 ) = 0, 从管脚读 35

I/O 输入缓冲控制位 6 SCHMITT = 1, 通过 Schmitt 触发器 ( 默认 ) = 0, 不通过 Schmitt 触发器 12 ~ 7 - 没有使用 表 10 配置选项 2 位名称说明 4 ~ 0 CAL<3:0 IRC 方式选择位 12 ~ 5 - 没有使用 表 11 选择 IOB5/OSCI 和 IOB4/OSCO 引脚 振荡方式 IOB5/OSCI IOB4/OSCO IRC/ERIC ERC HF LF IOB5 (OSCIN=0) OSCI (OSCIN=1) OSCI OSCI OSCI IOB4/OSCO selected by OSCOUT bit IOB4/OSCO selected by OSCOUT bit IOB4/OSCO selected by OSCOUT bit OSCO OSCO 7 绝对最大额定值 操作环境温度 0 到 +70 36

存储器额定温度 -65 到 +150 DC 电源电压 (Vdd) 0V 到 +6.0V 输入电压 ( 对地电压 (Vss)) -0.3V 到 (Vdd + 0.3) V 8 操作条件 DC 供电电压 +2.3V to +5.5V 操作温度 0 到 +70 9 电气特性 9.1 BJ2C004A 电气特性 电气特性是在四时钟指令周期和 WDT & LVDT 禁用情况下 Sym Description Conditions Min. Typ. Max. Unit FHF X tal oscillation rangehf mode, Vdd=5V 1 20 MHz HF mode, Vdd=3V 1 15 FLF X tal oscillation rangelf mode, Vdd=5V 32 4000 KHZ LF mode, Vdd=3V 32 1000 FERC RC oscillation range ERC mode, Vdd=5V DC 15 MHz ERC mode, Vdd=3V DC 7 FIRC/ER RC oscillation range ERIC mode, external R, Vdd=5V DC 15 MHz IC ERIC mode, external R, Vdd=3V DC 7 IRC mode, internal R, Vdd=5V 0.455 8 IRC mode, internal R, Vdd=3V 0.455 8 VIH Input high voltage I/O ports, Vdd=5V 2.0 V RSTB, T0CKI pins, Vdd=5V 2.0 I/O ports, Vdd=3V 1.5 RSTB, T0CKI pins, Vdd=3V 1.5 VIL Input low voltage I/O ports, Vdd=5V 1.0 V RSTB, T0CKI pins, Vdd=5V 1.0 37

I/O ports, Vdd=3V 0.6 RSTB, T0CKI pins, Vdd=3V 0.6 VOH Output high voltage IOH=-5.4mA, Vdd=5V 3.6 V VOL Output low voltage IOL=8.7mA, Vdd=5V 0.6 V IPH Pull-high current Input pin at Vss, Vdd=5V -65 ua IPD Pull-down current Input pin at Vdd, Vdd=5V 45 ua IWDT WDT current Vdd=5V 9 12 ua Vdd=3V 2 4 TWDT WDT period Vdd=3V 20.4 ms Vdd=4V 17.9 Vdd=5V 16.2 ILVDT LVDT current Vdd=5V LVDT = 3.6V 30 40 ua Vdd=5V LVDT = 2V 23 30 Vdd=3V LVDT = 2V 6.8 8.0 BJ24C02 Supply Current Vcc=5.0V, Read @100KHz 0.4 1.0 ma Vcc=5.0V, Write @100KHz 2.0 3.0 Standby Current Vin=Vcc or GND - 1.0 ua InputLeakage Current Vin=Vcc or GND 3.0 OutputLeakage Current Vin=Vcc or GND 0.05 3.0 ISB Power down current Sleep mode, Vdd=5V, WDT enable 21 ua Sleep mode, Vdd=5V, WDT disable 4 Sleep mode, Vdd=3V, WDT enable 3.5 Sleep mode, Vdd=3V, WDT disable 2.1 Sleep mode, Vdd=3V, WDT disable IDD Operating current HF mode, Vdd=5V, 4 clock ma instruction 20MHz 4.04 38

15MHz 3.68 10MHz 3.28 4MHz 2.78 2MHz 2.62 HF mode, Vdd=3V, 4 clock instruction 20MHz 2.92 15MHz 2.72 IDD Operating current 10MHz 2.54 ma 4MHz 2.30 2MHz 2.19 HF mode, Vdd=5V, 2 clock instruction 20MHz 4.94 15MHz 4.34 IDD Operating current 10MHz 3.74 ma 4MHz 2.96 2MHz 2.68 HF mode, Vdd=3V, 2 clock instruction 20MHz 3.38 15MHz 3.07 IDD Operating current 10MHz 2.77 ma 4MHz 2.38 2MHz 2.24 LF mode, Vdd=5V, 4 clock instruction 2MHz 2.290 1MHz 2.208 IDD Operating current 500KHz 2.167 ma 39

100KHz 2.118 32KHz 2.101 LF mode, Vdd=3V, 4 clock instruction 2MHz 2.105 1MHz 2.073 IDD Operating current 500KHz 2.054 ma 100KHz 2.033 32KHz 2.026 LF mode, Vdd=5V, 2 clock instruction 2MHz 2.371 1MHz 2.269 IDD Operating current 500KHz 2.194 ma 100KHz 2.130 32KHz 2.108 LF mode, Vdd=3V, 2 clock instruction 2MHz 2.158 1MHz 2.100 IDD Operating current 500KHz 2.067 ma 100KHz 2.038 32KHz 2.029 IDD Operating current ERC mode, Vdd=5V, 4 clock ma instruction C=3P R=1Kohm F=14.96MHz 6.572 R=3.3Kohm F=11.06MHz 3.845 R=10Kohm F=5.80MHz 2.761 R=100Kohm F=808KHz 2.170 R=300Kohm F=276KHz 2.119 40

R=1Kohm F=11.7MHz 6.226 R=3.3Kohm F=6.35MHz 3.519 C=20P R=10Kohm F=2.73MHz 2.613 R=100Kohm F=320KHz 2.147 R=300Kohm F=108KHz 2.109 R=1Kohm F=5.23MHz 5.429 R=3.3Kohm F=2.05MHz 3.163 C=100PR=10Kohm F=748KHz 2.454 R=100Kohm F=80KHz 2.126 R=300Kohm F=26.4KHz 2.100 R=1Kohm F=2.5MHz 5.024 R=3.3Kohm F=900KHz 3.021 C=300PR=10Kohm F=316KHz 2.403 R=100Kohm F=32KHz 2.119 R=300Kohm F=10.67KHz 2.098 ERC mode, Vdd=3V, 4 clock instruction R=1Kohm F=8.29MHz 5.280 R=3.3Kohm F=7.2MHz 2.913 C=3P R=10Kohm F=4.58MHz 2.396 R=100Kohm F=900KHz 2.071 R=300Kohm F=316KHz 2.040 R=1Kohm F=7MHz 4.214 R=3.3Kohm F=5.1MHz 2.837 C=20P R=10Kohm F=2.71MHz 2.327 R=100Kohm F=374KHz 2.058 IDD Operating current R=300Kohm F=128KHz 2.035 ma R=1Kohm F=4.14MHz 4.060 R=3.3Kohm F=2.11MHz 2.688 C=100PR=10Kohm F=848KHz 2.253 41

R=100Kohm F=96KHz 2.047 R=300Kohm F=32KHz 2.030 R=1Kohm F=2.36MHz 3.890 R=3.3Kohm F=972KHz 2.630 C=300PR=10Kohm F=360KHz 2.226 R=100Kohm F=38KHz 2.043 R=300Kohm F=12.71KHz 2.028 IDD Operating current ERC mode, Vdd=5V, 2 clock ma instruction R=1Kohm F=15.16MHz 7.435 R=3.3Kohm F=11.27MHz 4.358 C=3P R=10Kohm F=5.77MHz 2.986 R=100Kohm F=826KHz 2.183 R=300Kohm F=274KHz 2.108 R=1Kohm F=11.56MHz 6.835 R=3.3Kohm F=6.12MHz 3.808 C=20P R=10Kohm F=2.72MHz 2.701 R=100Kohm F=308KHz 2.137 R=300Kohm F=105KHz 2.092 R=1Kohm F=5.32MHz 5.680 R=3.3Kohm F=1.99MHz 3.234 C=100PR=10Kohm F=722KHz 2.479 R=100Kohm F=77KHz 2.110 R=300Kohm F=25.0KHz 2.081 R=1Kohm F=2.52MHz 5.107 R=3.3Kohm F=892KHz 3.057 C=300PR=10Kohm F=312KHz 2.398 R=100Kohm F=32KHz 2.102 R=300Kohm F=11KHz 2.077 42

IDD Operating current ERC mode, Vdd=3V, 2 clock ma instruction R=1Kohm F=8.306MHz 4.552 R=3.3Kohm F=7.29MHz 2.130 C=3P R=10Kohm F=4.81MHz 2.518 R=100Kohm F=904KHz 2.084 R=300Kohm F=338KHz 2.039 R=1Kohm F=7.08MHz 4.445 R=3.3Kohm F=5.07MHz 2.986 C=20P R=10Kohm F=2.68MHz 2.393 R=100Kohm F=362KHz 2.061 R=300Kohm F=123KHz 2.031 R=1Kohm F=4.11MHz 4.197 R=3.3Kohm F=2.03MHz 2.745 C=100PR=10Kohm F=810KHz 2.270 R=100Kohm F=91KHz 2043 R=300Kohm F=30KHz 2.025 R=1Kohm F=2.37MHz 3.953 R=3.3Kohm F=964KHz 2.648 C=300PR=10Kohm F=354KHz 2.231 R=100Kohm F=38KHz 2.038 R=300Kohm F=13KHz 2.022 IDD Operating current ERIC mode, external R, Vdd=5V, ma 4 clock instruction R=1Kohm R=3.3Kohm R=10Kohm R=100Kohm R=300Kohm F=15.16MHz F=11.27MHz F=5.77MHz F=826KHz F=274KHz IDD Operating current ERIC mode, external R, Vdd=3V, ma 43

4 clock instruction R=1Kohm R=3.3Kohm R=10Kohm R=100Kohm R=300Kohm F=15.16MHz F=11.27MHz F=5.77MHz F=826KHz F=274KHz IDD Operating current ERIC mode, external R,Vdd=5V, ma 2 clock instruction R=1Kohm R=3.3Kohm R=10Kohm R=100Kohm R=300Kohm F=15.16MHz F=11.27MHz F=5.77MHz F=826KHz F=274KHz IDD Operating current ERIC mode, external R,Vdd=3V, ma 2 clock instruction R=1Kohm R=3.3Kohm R=10Kohm R=100Kohm R=300Kohm F=15.16MHz F=11.27MHz F=5.77MHz F=826KHz F=274KHz IDD Operating current IRC mode, internal R, Vdd=5V, ma 4 clock instruction F=8MHz F=4MHz F=1MHz F=455KHz IDD Operating current IRC mode, internal R, Vdd=3V, ma 4 clock instruction F=8MHz F=4MHz 44

F=1MHz F=455KHz IDD Operating current IRC mode, internal R,Vdd=5V, ma 2 clock instruction F=8MHz F=4MHz F=1MHz F=455KHz IDD Operating current IRC mode, internal R,Vdd=3V, ma 2 clock instruction F=8MHz F=4MHz F=1MHz F=455KHz 45

10 封装 10.1 sop 8 封装尺寸与外形图 11 版本说明 版本日期内容 VER 1.0 2014 年 4 月初版 46