规格书

Size: px
Start display at page:

Download "规格书"

Transcription

1 上海芯圣电子股份有限公司 Shanghai Holychip Electronic Co.,Ltd. 数据手册 8 位 LCD 型 OTP 单片机

2 目录 1 产品简述 特性 系统框图 引脚图 PAD 坐标信息 引脚说明 引脚电路 电性参数 极限参数 直流特性 交流特性 电气特性曲线图 中央处理器 (CPU) 存储器 寻址模式 堆栈 复位 概述 上电复位 看门狗定时器复位 欠压复位 外部复位 系统时钟 概述 时钟框图 系统高频时钟 系统低频时钟 系统工作模式 概述 模式切换举例 高低频模式切换 唤醒时间 OSCCON 寄存器 中断 内核中断 外设中断 GIE 全局中断

3 7.4 中断保护 TIMER0 定时器中断 INT0 外部中断 PORT 电平变化中断 TIMER1 中断 TIMER2 定时器中断 AD 中断 CCP 中断 UART 中断 SPI 中断 PWM 中断 多中断操作 I/O 口 I/O 口模式 I/O 口上拉控制寄存器 I/O 口下拉控制寄存器 PORT 驱动控制寄存器 I/O 口数据寄存器 管脚配置寄存器 定时器 / 计数器 看门狗定时器 TIMER0 定时器 / 计数器 TIMER1 定时器 / 计数器 TIMER2 定时器 CCP 模块 PWM 模块 概述 PWM 相关寄存器 PWM0 模块 PWM1 模块 PWM2 模块 死区时间 模数转换 (ADC) ADC 概述 A/D 寄存器 A/D 控制寄存器 AD 转换时间 ADC 使用 液晶显示驱动 (LCD) 概述 LCD 相关寄存器

4 12.3 LCD 波形时序图 LED 驱动器 概述 LED 控制寄存器 LED 驱动波形 LED 亮度控制寄存器 说明 串行口通信 概述 UART 相关寄存器 工作方式 波特率发生器 多机通信 帧出错检测 串行外部设备接口 SPI SPI 相关寄存器 SPI 信号描述 SPI 时钟速率 SPI 功能框图 SPI 工作模式 SPI 传送形式 SPI 出错检测 SPI 配置对照表 指令表 开发工具 OTP 烧录器 (PM18-4.0) HC-IDE 封装尺寸 SOP SOP SOP SSOP SOP LQFP 芯片正印命名规则 芯片型号说明 ( 第一行 ) 日期码规则 ( 第二行 ) 生产批号 ( 第三行 ) 修改记录

5 1 产品简述 是一颗采用高速低功耗 CMOS 工艺设计开发的 8 位高性能精简指令单片机, 内部有 8K 16 位一次性编程 ROM(OTP-ROM),512 8 位的数据寄存器 (RAM),6 组双向 I/O 口 三个 Timer 定时器 / 计数器, 两个 CCP 模块, 支持一路 UART 及 SPI 通信, 一个 8 32(4 32) 的液晶显示驱动模块及 8 16LED 驱动模块, 一个 16 通道的 12 位模数转换器, 多个系统时钟, 四种系统工作模式以及多个中断源 这款单片机可以广泛应用于带有显示功能的游戏摇杆 定时器 遥控器等产品 1.1 特性 CPU 特性 3 组 6 路可编程带死区控制的固定相位 PWM 36 条高性能精简指令 其中 1 组 12bit 2 组 8bit 8K 16 位的 OTP 程序存储器 液晶显示驱动 位的数据存储器 最大驱动液晶点阵 8 32(4 32) 8 级堆栈缓存器 1/3 1/4 1/5 1/8 Duty,1/2 1/3 1/4Bias 2T/4T 时钟模式 8 16LED 点阵驱动模块 立即 直接和两组间接寻址模式 LED 点阵驱动模块 16 位 RDT 查表 最大可驱动 8 16LED 点阵 I/O 口 BOR 复位系统 6 组双向 I/O 口 :PORTA,PORTB,PORTC, BOR2.0V/2.4V/3.6V PORTD,PORTE,PORTF UART 模块 最多 48 个双向 I/O 口, 其中有 40 个可用作 SPI 模块 液晶驱动口 模数转换器 高灌 / 高拉电流能力, 可直接驱动 LED 12 位转换分辨率 (IOH/IOL:16mA/25mA@ 4.4V/0.6V) 最多 16 个模拟输入通道 (15 个外部 ADC 最多 47 个可编程弱上拉 / 下拉口 (PA PB 输入,1 个内部 1/4VDD 检测 ) PC PD PE PF) 内部参考电压 (VDD 4V 3V 2V) 所有 IO 驱动电流可配置 (IOH/IOL: 外部参考电压 5mA/8mA@ 4.4V/0.6V) 双系统时钟 PORTF 大灌电流 与 LCD COM 口复用 高频系统时钟 (IOH/IOL:17mA/65mA@ 4.4V/0.6V) - 高频晶体振荡器 : 最高 20MHz 最多 48 个具有唤醒功能的电平变化中断 - 内部 RC 振荡器 : 高达 32MHz 端口 (PA PB PC PD PE PF) 低频系统时钟 三个 Timer 定时器 / 计时器 - 低频晶体振荡器 : KHz Timer0: 带有 8 位预分频器的 8 位定时器 / - 低频 RC 振荡器 : 32K(5V 典型值 ) 计数器 系统工作模式 Timer1: 带有预分频器的 16 位定时器 / 计 高频模式 数器 低频模式 Timer2: 带有 8 位周期寄存器的 8 位定时 休眠模式 器 绿色模式 两个 CCP 模块 中断源 16 位捕捉 16 位比较 最高 12 位 PWM 定时器中断 :Timer0 Timer1 和 Timer2-5 -

6 INT0 外部中断 所有 IO 电平变化中断 CCP1/CCP2 中断 ADC 中断 UART 中断 SPI 中断 PWM 中断 复位 上电复位 (POR) 外部复位 (MCLRB Reset) 欠压复位 (BOR) 看门狗定时器复位 (WDT Reset) 选型表 产品型号 ROM RAM 堆栈定时器 I/O PWM LCD ADC UART /SPI HC18P232L 8K*16 512* * SOP16 HC18P233L 8K*16 512* * SOP20 HC18P233L 8K*16 512* * SSOP24 HC18P233L 8K*16 512* * SOP24 HC18P234L 8K*16 512* * SOP28 HC18P235L 8K*16 512* HC18P235L 8K*16 512* *30/ 8*30 4*32/ 8*32 PKG LQFP Dice 使用注意事项 : 1 在系统对功耗要求较高时 ADC 推荐使用 2M 及以下采样时钟 ; 2 为提高 ADC 检测精度, 建议在 VDD 和 GND 之间并一个电容 (104 电容即可 ) 3 使用 LCD 时, 相应的 COM 口及 SEG 口需禁止上拉电阻及下拉电阻功能, 且不能外接 VDD 及 GND, 防止 LCD 波形异常 4 使用 LCD 时, 需根据 LCD Pannel 尺寸选择合适的偏置电阻, 避免由于驱动不够造成显示效果不佳 5 在使用 1/3Duty 时,COM3(PORTF3) 端口为 NC, 请勿使用 - 6 -

7 1.2 系统框图 程序存储器 ROM ROM 8K 16 4K 14 程序计数器 PORTA0/AN0/PWM0/PGC PORTA0/RFC0/PGC PORTA1/AN1/PWM01/PGD PORTA1/RFC1/PGD PORTA2/AN2/PWM1/PCK PORTA2/RFC2/PCK PORTA3/AN3/SEG31/PWM11 PORTA3/RFCI PORTA4/AN4/SEG30/PWM2/VREF PORTA4/RFCOUT PORTA5/AN8/SEG29/PWM21 PORTA6/AN6/SEG28 PORTA7/AN7/SEG27 指令寄存器 88 级堆栈 数据存储器 RAM RAM Addr Addr MUX MUX PORTB0/AN9/SEG24 PORTB0/INT0 PORTB1/AN10/SEG25 PORTB2 PORTB2/AN11/INT0/SEG26/CCP1 PORTB1 LOSCI/PORTB3/AN12/TxCKI/CCP2 LOSCO/PORTB4/AN13 PORTB4/T1G FLT/MCLRB/VPP/PORTB5 OSCO/PORTB6/AN14 OSCI/CLKI/PORTB7/AN15 指令译码与控制时钟发生器 上电复位外部复位欠压复位 WDT WDT 复位复位 FSR FSR 寄存器 STATUS 寄存器 PORTC0/LOSCO MUX MUX ALU ALU W 寄存器 PORTC0/SEG16 PORTC1/SEG17 PORTC0/LOSCO PORTC1/T0CKI/T1CKI/LOSCI PORTC2/SEG18/TX PORTC2/CCP1 PORTC3/SEG19/RX PORTC3/CCP2 PORTC4/SEG20/MOSI PORTC4/COM0 PORTC5/SEG21/MISO PORTC5/COM1 PORTC6/SEG22/SCK PORTC6/COM2 PORTC7/SEG23/SS PORTC7/COM3 PORTD0/SEG8 PORTD0/SEG0 PORTD1/SEG9 PORTD1/SEG1 PORTD2/SEG10 PORTD2/SEG2 PORTD3/SEG11 PORTD3/SEG3 PORTD4/SEG12 PORTD4/SEG4 PORTD5/SEG13 PORTD5/SEG5 PORTD6/SEG14 PORTD6/SEG6 PORTD7/SEG15 PORTD7/SEG7 PORTE0/SEG0 PORTE0/SEG8 PORTE1/SEG1 PORTE1/SEG9 PORTE2/SEG2 PORTE2/SEG10 PORTE3/SEG3 PORTE3/SEG11 PORTE4/SEG4 PORTE4/SEG12 PORTE5/SEG5 PORTE5/SEG13 PORTE6/SEG6 PORTE6/SEG14 PORTE7/SEG7 PORTE7/SEG15 OSCI, OSCO Timer0 LOSCI, LOSCO Timer1 MCLRB Timer1 VDD, VSS VSS Timer2 Timer2 PWM SPI PORTF0/COM0 PORTF0/SEG16 PORTF1/COM1 PORTF1/SEG17 PORTF2/COM2 PORTF2/SEG18 PORTF3/COM3 PORTF3/SEG19 PORTF4/COM4 PORTF4/SEG20 PORTF5/COM5 PORTF5/SEG21 PORTF6/COM6 PORTF6/SEG22 PORTF7/COM7 PORTF7/SEG23 UART CCP2 CCP1 RFC LCD/LED LCD ADC - 7 -

8 引脚图 HC18P232L 引脚图 PORTA0/AN0/PWM0/PGC PORTB2/AN11/SEG26/INT0/CCP1 VDD PORTA2/AN2/PWM1/PCK FLT/MCLRB/PORTB5/VPP PORTB1/AN10/SEG25 VSS PORTA1/AN1/PWM01/PGD PORTA4/AN4/SEG30/PWM2/VREF PORTA6/AN6/SEG28 PORTA7/AN7/SEG27 COM3/PORTF3 COM0/PORTF0 HC18P232L PORTB0/AN9/SEG24 COM1/PORTF1 COM2/PORTF HC18P233L 引脚图 PORTB2/AN11/SEG26/CCP2 SEG3/PORTE3 PORTA7/AN7/SEG27 PORTB0/AN9/SEG PORTA1/AN1/PWM01/PGD PORTA0/AN0/PWM0/PGC PORTA2/AN2/PWM1/PCK PORTA4/AN4/SEG30/PWM2/VREF PORTA5/AN8/SEG29/PWM21 PORTB1/AN10/SEG25 GND VDD HC18P233L SEG2/PORTE2 FLT/MCLRB/PORTB5/VPP SEG1/PORTE1 COM4/PORTF4 COM3/PORTF3 COM2/PORTF2 COM1/PORTF1 COM0/PORTF0

9 PORTA4/AN4/SEG30/PWM2/VREF VSS SEG15/PORTD7 PORTA3/AN3/SEG31/PWM11 VDD LOSCI/PORTB3/AN12/T1CKI/T0CKI/CCP2 LOSCO/PORTB4/AN13 PORTA0/AN0/PWM0/PGC PORTA1/AN1/PWM01/PGD PORTA2/AN2/PWM1/PCK COM4/PORTF4 COM3/PORTF3 SEG11/PORTD3 SEG12/PORTD4 SEG13/PORTD5 COM5/PORTF5 SEG14/PORTD6 PORTA5/AN8/SEG29/PWM21 PORTA7/AN7/SEG27 PORTA6/AN6/SEG COM2/PORTF2 COM1/PORTF1 FLT/MCLRB/VPP/PORTB5 COM0/PORTF0 HC18P233L HC18P234L 引脚图 COM5/PORTF5 PORTA2/AN2/PWM1/PCK PORTA3/AN3//SEG31/PWM11 COM6/PORTF6 COM1/PORTF HC18P234L-SOP SEG10/PORTD2 SEG11/PORTD3 SEG9/PORTD1 SEG8/PORTD0 COM7/PORTF7 SEG13/PORTD5 SEG12/PORTD4 PORTA7/AN7/SEG27 PORTA6/AN6/SEG28 PORTA5/AN8/SGE29/PWM21 SEG14/PORTD6 PORTA4/AN4/SEG30/PWM2/VREF COM4/PORTF4 PORTA1/AN1/PWM01/PGD COM0/PORTF PORTA0/AN0/PWM0/PGC LOSCI/PORTB3/AN12/T1CKI/T0CKI COM3/PORTF3 COM2/PORTF VSS PORTB4/LOSCO/AN13 FLT/MCLRB/PORTB5/VPP VDD

10 HC18P235L 引脚图 VSS OSCI/CLKI/PORTB7/AN15 OSCO/PORTB6/AN14 VDD FLT/MCLRB/PORTB5/VPP SEG20/PORTC4/MOSI COM7/PORTF7 COM5/PORTF5 COM1/PORTF1 COM0/PORTF0 COM2/PORTF2 COM3/PORTF3 COM4/PORTF4 COM6/PORTF6 SEG0/PORTE0 SEG1/PORTE1 SEG2/PORTE2 SEG3/PORTE3 SEG4/PORTE4 SEG5/PORTE5 SEG6/PORTE6 SEG7/PORTE7 SEG12/PORTD4 SEG13/PORTD5 SEG11/PORTD3 SEG10/PORTD2 SEG9/PORTD1 SEG8/PORTD0 SEG14/PORTD6 SEG15/PORTD7 SEG16/PORTC0 PORTA0/AN0/PWM0/PGC PORTA1/AN1/PWM01/PGD PORTA2/AN2/PWM1/PCK PORTA3/AN3//SEG31/PWM11 PORTA4/AN4/SEG30/PWM2/VREF PORTA5/AN8/SGE29/PWM21 PORTA6/AN6/SEG28 PORTA7/AN7/SEG27 LQFP48 SEG17/PORTC1 SEG18/PORTC2/TX SEG19/PORTC3/RX SEG21/PORTC5/MISO SEG22/PORTC6/SCK SEG23/PORTC7/SS LOSCI/PORTB3/AN12/T1CKI/T0CKI/CCP2 LOSCO/PORTB4/AN13 PORTB2/AN11/SEG26/INT0/CCP1

11 HC18P235L_DICE 引脚图 OSCI/CLKI/PORTB7/AN15 PORTB2/INT0/AN11/SEG26/CCP1 PORTB1/AN10/SEG25 PORTB0/AN9/SEG24 PORTA7/AN7/SEG27 PORTA4/AN4/SEG30/PWM2/VREF SEG23/PORTC7/SS SEG21/PORTC5/MISO SEG20/PORTC4/MOSI SEG22/PORTC6/SCK SEG19/PORTC3/RX SEG18/PORTC2/TX SEG17/PORTC1 SEG16/PORTC0 PORTA3/AN3/SEG31/PWM11 PORTA2/AN2/PWM1/PCK SEG3/PORTE3 SEG2/PORTE2 SEG1/PORTE1 SEG0/PORTE0 COM0/PORTF0 COM1/PORTF1 COM2/PORTF2 COM3/PORTF3 COM4/PORTF4 COM5/PORTF5 COM6/PORTF6 COM7/PORTF7 SEG7/PORTE7 SEG6/PORTE6 SEG4/PORTE4 SEG15/PORTD7 SEG14/PORTD6 SEG13/PORTD5 SEG12/PORTD4 SEG11/PORTD3 SEG10/PORTD2 SEG9/PORTD1 SEG5/PORTE5 SEG8/PORTD0 VDD VSS 40 1 PORTB3/T0CKI/T1CKI/LOSCI/AN12/CCP2 FLT/MCLRB/VPP/PORTB5 OSCO/PORTB6/AN14 PORTB4/LOSCO/AN13 PORTA6/AN6/SEG28 PORTA5/AN8/SEG29/PWM21 PORTA1/AN1/PWM01/PGD PORTA0/AN0/PWM0/PGC VDD VSS VSS

12 1.4 PAD 坐标信息 顶铝厚度 :0.85um Pad NO Pin name Coor-X Coor-Y PAD window 1 pd[7] pd[6] pd[5] pd[4] pd[3] pd[2] pd[1] pd[0] pe[7] pe[6] pe[5] pe[4] VSS pe[3] pe[2] pe[1] pe[0] pf[7] pf[6] pf[5] pf[4] pf[3] pf[2] pf[1] pf[0] vpp pb[6] pb[7] VDD VDD VSS pb[4] pb[3] pa[0] pa[1] pa[2] pa[3] pa[4] pa[5] pa[6]

13 41 pa[7] pb[2] pb[1] pb[0] pc[7] pc[6] pc[5] pc[4] pc[3] pc[2] pc[1] pc[0] VSS 引脚说明 名称类型说明 SEG3 PORTE3 SEG2 PORTE2 SEG1 PORTE1 SEG0 PORTE0 COM7 PORTF7 COM6 PORTF6 COM5 PORTF5 COM4 PORTF4 COM3 PORTF3 COM2 PORTF2 COM1 PORTF1 COM0 PORTF0 MCLRB VPP PORTB5 FLT AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O I P I/O I SEG3 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG2 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG1 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG0 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 COM7 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 COM6 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 COM5 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 COM4 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 COM3 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 COM2 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 COM1 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 COM0 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 复位输入口, 低电平有效编程高压电源输入输入 / 输出口, 只能输出 0, 端口电平变化中断 PWM 故障检测输入口

14 OSCO PORTB6 AN14 OSCI CLKI PORTB7 AN15 AN I/O AN AN I I/O AN VDD P 电源输入 VSS P 电源地 PORTB4 LOSCO AN13 PORTB3 T0CKI T1CKI LOSCI AN12 CCP2 PORTA0 AN0 PWM0 PGC PORTA1 AN1 PWM01 PGD PORTA2 AN2 PWM1 PCK PORTA3 AN3 SEG31 PWM11 PORTA4 AN4 SEG30 PWM2 VREF PORTA5 AN8 SEG29 PWM21 PORTA6 SEG28 AN6 I/O AN AN I/O I I AN AN I/O I/O AN O I I/O AN O I/O I/O AN O O I/O AN AN O I/O AN AN O AN I/O AN AN 0 I/O AN AN 高频晶体振荡器输输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 AD 通道 14 输入口高频晶体振荡器输入口外部时钟输入口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 AD 通道 15 输入口 输入 / 输出口, 带可编程上下拉, 端口电平变化中断低频晶体振荡器输出口 AD 通道 13 输入口 输入 / 输出口, 带可编程上下拉, 端口电平变化中断 Timer0 外部时钟输入口 ( 施密特触发器 ) Timer1 外部时钟输入口 ( 施密特触发器 ) 低频晶体振荡器输入口 AD 通道 12 输入口 CCP2 输入 / 输出口 输入 / 输出口, 带可编程上下拉, 端口电平变化中断 AD 通道 0 输入口 12 位 PWM0 输出口编程时钟输入口 输入 / 输出口, 带可编程上下拉, 端口电平变化中断 AD 通道 1 输入口与 PWM0 有固定相位关系的 12 位 PWM 输出编程数据输入 / 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 AD 通道 2 输入口 8 位 PWM1 输出口测试模式下内部 RC 输出口 输入 / 输出口, 带可编程上下拉, 端口电平变化中断 AD 通道 3 输入口 SEG31 输出口与 PWM1 有固定相位关系的 8 位 PWM 输出输入 / 输出口, 带可编程上下拉, 端口电平变化中断 AD 通道 4 输入口 SEG30 输出口 8 位 PWM2 输出口 ADC 参考电压输入口 输入 / 输出口, 带可编程上下拉, 端口电平变化中断 AD 通道 8 输入口 SEG29 输出口与 PWM2 有固定相位关系的 8 位 PWM 输出输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG28 输出口 AD 通道 6 输入口

15 PORTA7 SEG27 AN7 PORTB2 SEG26 AN11 CCP1 PORTB1 SEG25 AN10 PORTB0 SEG24 AN9 SEG23 PORTC7 SS SEG22 PORTC6 SCK SEG21 PORTC5 MISO SEG20 PORTC4 MOSI SEG19 PORTC3 RX SEG18 PORTC2 TX SEG17 PORTC1 SEG16 PORTC0 SEG15 PORTD7 SEG14 PORTD6 SEG13 PORTD5 SEG12 PORTD4 SEG11 PORTD3 I/O AN AN I/O AN AN IO I/O AN AN I/O AN AN AN I/O I/O AN I/O I/O AN I/O I/O AN I/O I/O AN I/O I AN I/O O AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O SEG10 AN SEG10 输出口 输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG27 输出口 AD 通道 7 输入口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG26 输出口 AD 通道 11 输入口 CCP1 输入 / 输出口 输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG25 输出口 AD 通道 10 输入口 输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG24 输出口 AD 通道 9 输入口 SEG23 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SPI 从机片选口 SEG22 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SPI 时钟口 SEG21 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SPI 的数据口, 主机的输入和从机的输出 SEG20 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SPI 数据输入口, 主机的输出和从机的输入 SEG19 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 UART 接收数据端口 SEG18 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 UART 发送数据端口 SEG17 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG16 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG15 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG14 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG13 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG12 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG11 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断

16 PORTD2 I/O 输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG9 PORTD1 SEG8 PORTD0 SEG7 PORTE7 SEG6 PORTE6 SEG5 PORTE5 SEG4 PORTE4 AN I/O AN I/O AN I/O AN I/O AN I/O AN I/O SEG9 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG8 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG7 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG6 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG5 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 SEG4 输出口输入 / 输出口, 带可编程上下拉, 端口电平变化中断 注 : I = 输入 O = 输出 I/O = 输入 / 输出 P = 电源 AN = 模拟输入输出

17 1.6 引脚电路 图 1-1:PORTA[7:5][3:0] 的等效电路 图 1-2:PORTA4 的等效电路 WPUAx 数据总线写 I/O 口写 TRISA 读 TRISA 数据锁存器 D Q CK TRIS 锁存器 D Q CK ANSEL[8: 6][4:0] VDD 上 P 拉 VDD VSS I/O 引脚 WPUA4 数据总线写 I/O 口写 TRISA4 读 TRISA4 读 I/O 口 数据锁存器 D Q CK TRIS 锁存器 D Q CK ANSEL2 VDD P 上拉 VDD VSS I/O 引脚 读 I/O 口 AN[8:6][4:0] AN4 VREF WPDAx 下拉 WPDA4 P 下拉 VSS VSS 图 1-3:PORTB[7:6][4:0] 的等效电路 图 1-4:PORTB5 口的等效电路 RBPUB WPUBx 数据总线 数据锁存器 D Q VDD P 上拉 VDD 数据总线读 I/O 口 I/O 引脚 写 I/O 口 CK I/O 引脚 TRIS 锁存器 D Q ANSEL[ 14:8] VSS MCLRB 写 TRISBx 读 TRISBx CK MCLRB 选择 读 I/O 口 AN[14:9] WPDBx 下拉 VPP_ACT 高压判别电路 图 1-5:PORTF[7:0] 口的等效电路 图 1-6:PORTC PORTD PORTE 口等效电路 WPUF 数据总线写 I/O 口写 TRIS 数据锁存器 D Q CK TRIS 锁存器 D Q CK DISPON 上拉 I/O 引脚 WPUC~Ex 数据总线写 I/O 口写 TRIS 数据锁存器 D Q CK TRIS 锁存器 D Q CK DISPEN & SEx 弱 P 上拉 I/O 引脚 读 TRIS 读 TRIS 读 I/O 口 COMX WPDFx 下拉 读 I/O 口 SEGx & SEx WPDC~Ex 弱下拉

18 2 电性参数 2.1 极限参数 储存温度. -50 C ~125 C 工作温度 C ~85 C 电源供应电压.....VSS-0.3V~VSS+6.0V 端口输入电压.. VSS-0.3V~VDD+0.3V 2.2 直流特性 符号 参数 测试条件单最小值典型值最大值 VDD 条件 ( 常温 25 C ) 位 VDD 工作电压 Fsys = 8MHz,2T V Fsys = 16MHz,2T V IDD1 工作电流 3V Fsys = 16MHz,4T,LCD 关闭, 1.70 ma 5V 高频模式, WDT 禁止, 无负载 3.00 ma IDD2 工作电流 3V Fsys = 8MHz,4T,LCD 关闭, 1.20 ma 5V 高频模式, WDT 禁止, 无负载 2.20 ma IDD3 工作电流 3V Fsys = 32KHz,4T,LCD 关闭, 3.0 μa 5V 低频模式, WDT 禁止, 无负载 10.0 μa IDD4 工作电流 3V Fsys = 32KHz,4T,LCD 关闭, 2.0 μa 5V 绿色模式, WDT 禁止, 无负载 7.0 μa Isb1 静态电流 3V LCD 关闭, 2.0 μa 5V 休眠模式,WDT 使能, 无负载 7.0 μa Isb2 静态电流 3V LCD 关闭, 休眠模式, 2.0 μa 5V 外部低频晶振计时, 无负载 5.2 μa Isb3 静态电流 3V LCD 打开 (270K 偏置电阻 ), 5 μa 5V 休眠模式,WDT 禁止, 无负载 10 μa Isb3 静态电流 3V LCD 打开 (270K 偏置电阻 ), 14 μa 5V 休眠模式 WDT 禁止全部点亮 36 μa Isb4 静态电流 3V LCD 关闭, 1 μa 5V 休眠模式,WDT 禁止, 无负载 1 μa VIL1 输入低电平 输入口 VSS 0.3VDD V VIH1 输入高电平 输入口 0.7VDD VDD V VIL2 输入低电平 施密特输入口 VSS 0.2VDD V VIH2 输入高电平 施密特输入口 0.8VDD VDD V VBOR1 低电压复位 2.0V 2.0 V VBOR2 低电压复位 2.4V 2.4 V VBOR3 低电压复位 3.6V 3.6 V

19 VLVD0 低电压标志 2.4 V VLVD1 低电压标志 3.6 V IOL1 IOH1 IOL2 IOH2 IOL3 IOH3 IOL4 IOH4 PORTF(LFEN=0) PORTF(LFEN=0) PORTF(LFEN=1) PORTF(LFEN=1) PORTx(LFEN=0) PORTx(LFEN=0) PORTx(LFEN=1) PORTx(LFEN=1) 3V 30 ma VOL=VSS+0.6V 5V 65 ma 3V 11 ma VOH=VDD-0.6V 5V 17 ma 3V 9 ma VOL=VSS+0.6V 5V 20 ma 3V 4 ma VOH=VDD-0.6V 5V 6.5 ma 3V 18 ma VOL=VSS+0.6V 5V 28 ma 3V 9.0 ma VOH=VDD-0.6V 5V 17 ma 3V 5.0 ma VOL=VSS+0.6V 5V 8.0 ma 3V 3.5 ma VOH=VDD-0.6V 5V 5.5 ma RPH 内部上拉电阻 5V 可编程上拉电阻 100 kω RPD 内部下拉电阻 5V 可编程下拉电阻 100 kω VAD ADC 输入电压 VSS V REF V DNL 差分非线性误差 5V AD 时钟频率 2MHz ±1 LSB INL 积分非线性误差 5V AD 时钟频率 2MHz ±1 LSB IADC ADC 工作电流 3V 0.3 ma AD 时钟频率 2MHz 5V 0.5 ma 注 : 表格中 x = A B C D E 五组 PORT 口 2.3 交流特性 测试条件单符号参数最小值典型值最大值 VDD 条件 ( 常温 25 C ) 位 FSYS 1.8V~5.5V 8 MHz 系统时钟 2.6V~5.5V 16 MHz FRCH 高频内部 RC 振荡器 5V 32 MHz FRCL 低频内部 RC 振荡器 5V 32 KHz FOSH 外部高频晶振 2.6~5.5V 1 20 MHz FOSL 外部低频晶振 2.0~5.5V KHz TVDD VDD 上升时间 5V 100 ms TBOR 欠压复位响应时间 5V 100 ns TWDT 看门狗溢出时间 5V 使用预分频 1:1 18 ms 不使用预分频器 72 ms

20 Freq.(MHz) TMCLRB 复位脉冲时间 5V 200 μs 2.4 电气特性曲线图 IHRC 频率 (MHz) VDD(V)

21 3 中央处理器 (CPU) CPU 内核包括 : 2T/4T 时钟模式 8 级堆栈 程序存储器 寻址方式 数据存储器 3.1 存储器 程序存储器 (OTP-ROM) 具有 8K 16 位的程序存储器, 下图给出了程序存储器的映射 访问超出物理地址以外的单元时, 会导致返回到地址最低单元 复位向量是 0000h, 中断向量是 0004h ROM PC[12:0] 13 1 级堆栈 2 级堆栈... 8 级堆栈 复位向量 中断向量 0000h 0004h 0005h 程序存储器 1FFFh 复位向量 (0000h) 复位向量为 0000h 上电复位 (POR=0,BOR=X,TO=1)

22 低电压复位 (POR=1,BOR=0,TO=1) 看门狗复位 (POR=1,BOR=1,TO=0) 外部复位 (POR=1,BOR=1,TO=1) 发生上述任一种复位后, 程序将从 0000h 处重新开始执行, 系统寄存器也都将恢复为默认值 根据 PCON 寄存器中的 POR,BOR 标志及 STATUS 寄存器中的 TO 标志位的内容可以判断系统复位方式 下面 一段程序演示了如何定义 ROM 中的复位向量 例 : 定义复位向量 ORG 0000H ; 复位向量 GOTO MAIN ; 跳转到用户程序... ORG 400H ; 用户程序起始 MAIN: END ; 用户程序结束 例 : 复位源判断 ORG 0000H GOTO RST_JUGE... RST_JUGE: BCF STATUS,RP0 ;Bank0 BTFSS PCON,POR GOTO ISPOR ;POR 标志为 0, 判定为上电复位 BTFSS PCON,BOR GOTO ISBOR ;POR=1,BOR=0, 判定为低电压复位 BTFSS STATUS,TO GOTO ISWDTR ;POR=1,BOR=1,TO=0, 判定为 WDT 复位 EXT_RST:... ;POR=1,BOR=1,TO=1, 判定为外部复位... ISPOR: BSF PCON,POR ; 上电复位处理程序... ISBOR: BSF PCON,BOR ; 低电压复位处理程序... ISWDTR: CLRWDT ;TO 标志置 1,WDT 复位处理程序... ; 其他程序, 注意处理 Bank 中断向量 (0004h) 中断向量地址为 0004h 一旦有中断响应, 程序计数器 PC 的当前值就会存入堆栈缓存器并跳转到 0004H 开始执行中断服务程序 中断服务子程序中需要对相应状态寄存器进行适当的断点保护和恢复 下面的示例程序说明了如何编写中断服务程序 例 : 中断子程序的编写

23 Bank1_Inter: Bank0_Inter: BTFSS STATUS,RP0 GOTO Bank0_Inter ; 判断进中断前在 Bank0 还是 Bank1 ;Bank1 处理程序 MOVWF W_TEMP1 ; 保护 W 寄存器 SWAPF STATUS,W MOVWF STATUS_TEMP1 ; 保护 STATUS 寄存器 MOVF PCLATH,W MOVWF PCLATH_TEMP1 ; 保护 PCLATH 寄存器 BCF STATUS,RP0 BSF Bank_Flag GOTO Interrput_Sev MOVWF W_TEMP0 SWAPF STATUS,W MOVWF STATUS_TEMP0 MOVF PCLATH,W MOVWF PCLATH_TEMP0 BCF Bank_Flag GOTO Interrput_Sev Interrput_Sev: Exit_Int: Bank1_Exit: BCF STATUS,RP0 BTFSC INTCON,INTF GOTO ISR_INT ; 发生 INT0 中断 BTFSC INTCON,T0IF GOTO ISR_T0 ; 发生 T0 中断 BCF STATUS,RP0 BTFSS Bank_Flag GOTO Bank0_Exit BSF STATUS,RP0 MOVF PCLATH_TEMP1,W MOVWF PCLATH ; 恢复 PCLATH SWAPF STATUS_TEMP1,W MOVWF STATUS ; 恢复 STATUS SWAPF W_TEMP1,F SWAPF W_TEMP1,W ; 恢复 W RETFIE ; 退出中断 Bank0_Exit: BCF STATUS,RP0-23 -

24 MOVF PCLATH_TEMP0,W MOVWF PCLATH ; 恢复 PCLATH SWAPF STATUS_TEMP0,W MOVWF STATUS ; 恢复 STATUS SWAPF W_TEMP0,F SWAPF W_TEMP0,W ; 恢复 W RETFIE ; 退出中断 对于编写中断服务程序, 需要以下几个要点需注意 : 1. 中断入口地址为 0x04, 响应中断后, 程序自动跳转到 0x04 开始执行 ; 2. 中断服务程序需首先对相应的寄存器进行保护 ; 3. 保存系统寄存器时注意 Bank, 如示例代码中, 分别定义一组 RAM 保存进入中断前 Bank 的状态 ; 4. 中断服务子程序返回前对保护的寄存器进行恢复, 注意恢复顺序, 对 W 必须使用 SWAPF; 5. 程序中使能两个以上的中断源时, 程序需对发生中断的中断源进行判断, 从而执行相应的服务程序 6. 需要软件清零对应的中断标志 ; 7. RETFIE 指令将自动使能 GIE, 请勿在中断服务子程序中用其它指令使能 GIE, 以免造成中断响应混乱 查表 方式一 : 利用 ADDWF PCL,F 和 RETLW 指令实现数据表, 因为以 PCL 为目的操作数的运算将改变程序 指针 (PC) 值, 其具体操作为 PC 的低 8 位为 ALU 的运算结果,PC 的高 5 位将从 PC 高位缓冲器 PCLATH 中获得 如下是数据表实现的一个例子 例 : 数据查表... MOVLW HIGH TAB1 ; 获得数据表地址高 8 位 ( 内部宏指令 ) MOVWF PCLATH ; 表地址高位赋给 PCLATH MOVF TABBUF,W ; 获得表数据偏移量, 调用前赋值 CALL TAB1 ; 调用数据表... TAB1: ORG 100H ADDWF PCL,F ; 表头运算 RETLW DATA0_TAB1 ;W=0 对应数据 RETLW DATA1_TAB1 ;W=1 对应数据 RETLW DATA2_TAB1 ;W=2 对应数据... RETLW DATAFE_TAB1 ;W=0xFE 对应数据

25 对于数据查表的编程, 需注意 : 1. 数据表宽度 :8 位 ; 2. 数据表无法直接跨页访问, 单页可实现最大长度 :255; 3. 当 PCL 与 W 的加运算有进位时, 进位将被舍弃数据表溢出, 将造成查表混乱 ; 故表头尽量放在数据页前 端, 以免数据表溢出 ; 4. TABBUF 的值不得大于表长, 否则将造成运行混乱 例 : 跳转表 跳转表能够实现多地址跳转功能 由于 PCL 和 W 的值相加即可得到新的 PCL, 同时 PCH 从 PCLATH 中载入, 因此, 可以通过对 PCL 加上不同的 W 值来实现多地址跳转, 可参考以下范例 ORG 0100H MOVLW HIGH TAB2 ; 获得跳转表地址高位 ( 内部宏指令 ) MOVWF PCLATH MOVF TABBUF,W TAB2: ADDWF PCL,F GOTO LABLE0_TAB2 ;TABBUF =0, 跳转 LABLE0_TAB2 GOTO LABLE1_TAB2 ; 以下类推 GOTO LABLE2_TAB2 GOTO LABLE3_TAB2 注 : 如上跳转表, 有 4 个跳转分支,TABBUF 的合法范围为 0x00~0x03 方式二 : 可以通过以下 5 个特殊功能寄存器对 ROM 区中的数据进行查找 寄存器 PMADRH 指向 ROM 区数据地址的高字节 (bit8~bit15), 寄存器 PMADRL 指向 ROM 区数据地址的低字节 (bit0~bit7) 将 PMCON 寄存器的 RDON 位置 1 启动读操作, 使用两条指令来读数据, RDON 位置 1 后的二条指令被自动忽略, 建议用户 RDON 位置 1 后的两条指令为 NOP 执行完读操作后, 所查找的数据保存在 PMDATH:PMDATL 寄存器 例 : 查找 ROM 地址为 TABLE 的值 BCF STATUS,RP0 ;BANK0 MOVF TABLE _ADDR_H, W MOVWF PMADRH ; 设置 TABLE 地址高字节 MOVF TABLE _ADDR_L, W MOVWF PMADRL ; 设置 TABLE 地址低字节

26 BSF PMCON, RDON ; 开始读 NOP NOP ; 等待两条指令 MOVF PMDATL, W MOVWF TABLE _DATAL ;TABLE _DATAL= TABLE 地址数据低字节 MOVF PMDATH, W MOVWF TABLE _DATAH ;TABLE _DATAH= TABLE 地址数据高字节 TABLE: DW 1234H ; 定义数据表 (16 位 ) 数据 DW F178H DW 2123H 9Eh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PMCON RDON R/W R/W POR 的值 bit 0 RDON: 读控制位 0 = 不启动 ROM 存储器读操作 1 = 启动 ROM 读操作 ( 由硬件清零 RDON; 软件只能将 RDON 位置 1, 但不能清零 ) 9Ah Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PMDATL PMD7 PMD6 PMD5 PMD4 PMD3 PMD2 PMD1 PMD0 R/W R/W R/W - R/W R/W R/W R/W R/W R/W POR 的值 x x x x x x x x 9Bh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PMDATH PMD15 PMD14 PMD13 PMD12 PMD11 PMD10 PMD9 PMD8 R/W - R/W - R/W - R/W R/W R/W R/W R/W R/W POR 的值 x x x x x x x x PMDx[15:0]:ROM 存储器读操作后, PMADRH:PMADRL 指向地址的数据 9Ch Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PMADRL PMA7 PMA6 PMA5 PMA4 PMA3 PMA2 PMA1 PMA0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x x x x x x x x 9Dh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PMADRH PMA15 PMA14 PMA13 PMA12 PMA11 PMA10 PMA9 PMA8 R/W - R/W - R/W - R/W R/W R/W R/W R/W R/W POR 的值 x x x x x x x x PMAx[15:0]:ROM 存储器地址

27 3.1.2 芯片配置选择表 提供的配置字可以对多个系统模块做配置选择 详细配置选择见下面表格 系统还提供 了一个4 16bit的器件ID供用户存储校验或其他代码标识号 在程序运行过程中不能访问这些存储单元 但可在编程烧录/校验时对它们进行读写 编译选项 内容 高频系统时钟选 择(OSCHM) 高频晶体振荡器 高频晶体振荡器 OSCI/OSCO 作为高频晶体振荡器输入/输出口 内部 RC 振荡器 内部 16M RC 振荡器 低频系统时钟选 择(OSCLM) 功能说明 32K WDT 振荡器 内部 32K WDT 振荡器 定时器 1 振荡器 低频晶体振荡器 KHz LOSCI/LOSCO 为低频晶体振荡器 输入/输出口 高频内部 RC 振 荡器频率选择 (ROSC) 16MHz 内部高频 RC 振荡器频率配置为 16MHz 8MHz 内部高频 RC 振荡器频率配置为 8MHz 4MHz 内部高频 RC 振荡器频率配置为 4MHz 2MHz 内部高频 RC 振荡器频率配置为 2MHz 1MHz 内部高频 RC 振荡器频率配置为 1MHz 500KHz 内部高频 RC 振荡器频率配置为 500KHz WDT 功能使能 (WDTEN) 使能 WDT 功能 使能看门狗定时器功能 屏蔽 WDT 功能 屏蔽看门狗定时器功能 外部复位使能 (MCLREN) 使能外部复位 使能外部复位引脚 屏蔽 做输入 屏蔽外部复位引脚 外部复位引脚做输入功能 加密使能位 (CP0) 加密 使能用户程序区 CODE 加密功能 不加密 屏蔽用户程序区 CODE 加密功能 启动时钟选择 (SPDS) ADC 使能 高频系统时钟 系统选择高频系统时钟作为启动时钟 低频系统时钟 系统选择低频系统时钟作为启动时钟 打开 ADC 功能 使能 ADC 功能 禁止 ADC 功能 禁止 ADC 功能 PORSEL 选择 SMTENB BORSEL 18ms 上电复位时间选择为 18ms 4.5ms 上电复位时间选择为 4.5ms IO 口施密特使能 使能 IO 口施密特功能 IO 口施密特禁止 禁止 IO 口施密特功能 BOR3.6V 当系统电压低于 3.6V 时 系统复位 BOR2.4V 当系统电压低于 2.4V 时 系统复位 BOR2.0V 当系统电压低于 2.0V 时 系统复位 时钟模式选择 (FCPUT) 4T 4T 模式 1 个指令周期有 4 个系统时钟周期组成 2T 2T 模式 1 个指令周期有 2 个系统时钟周期组成 选择芯片配置字注意事项 1. 在系统允许的情况下 尽量选用较低系统时钟频率 有利于降低系统功耗和提升系统电磁兼容性 2. 时钟模式选择为 2T 时 PWM 模块的最大分辨率降低到 9 位 3. 强干扰情况下 建议开启 WDT 功能

28 3.1.3 通用数据寄存器 (RAM) 共有 512 个通用寄存器 (GPR) 和 182 个特殊功能寄存器 (SFR), 分在 2 个存储区 Bank0 和 Bank1, 每个存储区的低 256 个地址单元保留为特殊功能寄存器,RP0 是存储区的选择位 CORE Register 00-09h& h 00h&200h 01h&201h 02h&202h 03h&203h 04h&204h 05h&205h 06h&206h 07h&207h 08h&208h 09h&209h INDF0 INDF1 PCL STATUS FSR0L FSR0H FSR1L FSR1H PCLATH INTCON 00h 200h 特殊功能寄存器 特殊功能寄存器 FFh 100h 2FFh 300h 通用寄存器 256bytes 通用寄存器 256Byte BANK0 1FFh BANK1 3FFh 特殊功能寄存器 (SFR) 特殊功能寄存器列表 地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位初值 BANK0 010h TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA h TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB h TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC h TRISD TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD h TRISE TRISE7 TRISE6 TRISE5 TRISE4 TRISE3 TRISE2 TRISE1 TRISE h TRISF TRISF7 TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF Ch PORTA PORTA7 PORTA6 PORTA5 PORTA4 PORTA3 PORTA2 PORTA1 PORTA Dh PORTB PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB Eh PORTC PORTC7 PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC Fh PORTD PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD h PORTE PORTE7 PORTE6 PORTE5 PORTE4 PORTE3 PORTE2 PORTE1 PORTE

29 地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位初值 021h PORTF PORTF7 PORTF6 PORTF5 PORTF4 PORTF3 PORTF2 PORTF1 PORTF h WPUA WPUA7 WPUA6 WPUA5 WPUA4 WPUA3 WPUA2 WPUA1 WPUA h WPUB WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB Ah WPUC WPUC7 WPUC6 WPUC5 WPUC4 WPUC3 WPUC2 WPUC1 WPUC Bh WPUD WPUD7 WPUD6 WPUD5 WPUD4 WPUD3 WPUD2 WPUD1 WPUD Ch WPUE WPUE7 WPUE6 WPUE5 WPUE4 WPUE3 WPUE2 WPUE1 WPUE Dh WPUF WPUF7 WPUF6 WPUF5 WPUF4 WPUF3 WPUF2 WPUF1 WPUF h WPDA WPDA7 WPDA6 - WPDA4 WPDA3 WPDA2 WPDA1 WPDA h WPDB WPDB7 WPDB6 WPDB5 WPDB4 WPDB3 WPDB2 WPDB1 WPDB h WPDC WPDC7 WPDC6 WPDC5 WPDC4 WPDC3 WPDC2 WPDC1 WPDC h WPDD WPDD7 WPDD6 WPDD5 WPDD4 WPDD3 WPDD2 WPDD1 WPDD h WPDE WPDE7 WPDE6 WPDE5 WPDE4 WPDE3 WPDE2 WPDE1 WPDE h WPDF WPDF WPDF7 WPDF6 WPDF5 WPDF4 WPDF3 WPDF2 WPDF h IOCA IOCA7 IOCA6 IOCA5 IOCA4 IOCA3 IOCA2 IOCA1 IOCA h IOCB IOCB7 IOCB6 IOCB5 IOCB4 IOCB3 IOCB2 IOCB1 IOCB h IOCC IOCC7 IOCC6 IOCC5 IOCC4 IOCC3 IOCC2 IOCC1 IOCC h IOCD IOCD7 IOCD6 IOCD5 IOCD4 IOCD3 IOCD2 IOCD1 IOCD h IOCE IOCE7 IOCE6 IOCE5 IOCE4 IOCE3 IOCE2 IOCE1 IOCE h IOCF IOCF7 IOCF6 IOCF5 IOCF4 IOCF3 IOCF2 IOCF1 IOCF Ch PORCTR CCPCT SPPCT1 SPPCT0 UAPCT1 UAPCT Dh LAEN LAEN7 LAEN6 LAEN5 LAEN4 LAEN3 LAEN2 LAEN1 LAEN Eh LBEN LBEN7 LBEN6 LBEN5 LBEN4 LBEN3 LBEN2 LBEN1 LBEN Fh LCEN LCEN7 LCEN6 LCEN5 LCEN4 LCEN3 LCEN2 LCEN1 LCEN h LDEN LDEN7 LDEN6 LDEN5 LDEN4 LDEN3 LDEN2 LDEN1 LDEN h LEEN LEEN7 LEEN6 LEEN5 LEEN4 LEEN3 LEEN2 LEEN1 LEEN h LFEN LFEN7 LFEN6 LFEN5 LFEN4 LFEN3 LFEN2 LFEN1 LFEN h PIR1 - ADIF CCP1IF T2IF T1IF h PIR2 PWM2IF PWM1IF PWM0IF - RXIF TXIF SPIF CCP2IF h PIR RFIF REIF RDIF RCIF RAIF h T1L Timer1 计数寄存器低字节 XXXX XXXX 059h T1H Timer1 计数寄存器高字节 XXXX XXXX 05Ah T1CON T1CS1 T1CS0 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC - T1ON Bh T0 Timer0 计数寄存器 XXXX XXXX 05Ch T2 Timer2 计数寄存器 XXXX XXXX 05Dh PR2 Timer 周期寄存器 Eh T2CON - T2CKPS3 T2CKPS2 T2CKPS1 T2CKPS0 T2ON Fh PR1L Timer1 周期寄存器低字节 XXXX XXXX 060h PR1CON PWM1T1 PWM1T0 PWM2T1 PWM2T0 T1CKPS3 T1CKPS2 PWMPR1 PR1EN h PIE1 - ADIE CCP1IE T2IE T1IE

30 地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位初值 071h PIE2 PWM2IE PWM1IE PWM0IE - UARTIE SPIE CCP2IE h PIE RFIE REIE RDIE RCIE RAIE h OPTION RBPUB INTEDG T0CS T0SE PSA PS2 PS1 PS h PCON LVD2EN LVD1EN - WDTENS LVD2F LVD1F POR BOR 00-1 qqqq 07Ah OSCCON T0OSCEN HXEN SCS q 080h CCPR2L CCP2 寄存器低字节 XXXX XXXX 081h CCPR2H CCP2 寄存器高字节 XXXX XXXX 082h CCP2CON - - DC2B1 DC2B0 CCP2M3 CCP2M2 CCP2M1 CCP2M h CCPR1L CCP1 寄存器低字节 h CCPR1H CCP1 寄存器高字节 h CCP1CON - - DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M Ch ANSELL ANSEL7 ANSEL6 - ANSEL4 ANSEL3 ANSEL2 ANSEL1 ANSEL Dh ANSELH ANSEL15 ANSEL14 ANSEL13 ANSEL12 ANSEL11 ANSEL10 ANSEL9 ANSEL h ADRESL ADC 结果寄存器低字节 h ADRESH ADC 结果寄存器高字节 h ADCON0 VHS1 VHS0 CHS3 CHS2 CHS1 CHS0 ADON ADEN h ADCON1 ADFM ADCS2 ADCS1 ADCS ADREF h ADCLK ADCLK2 ADCLK1 ADCLK Ah PMDATL 程序存储器读数据寄存器的低字节 Bh PMDATH 程序存储器读数据寄存器的高字节 Ch PMADRL 程序存储器读地址寄存器的低字节 Dh PMADRH 程序存储器读地址寄存器的高字节 Eh PMCON RDON BANK1 230h SPSTAT RXOV MODF WCOL h SPCTL SSIG SPEN DORD MSTR CPOL CPHA SPR1 SPR h SPDAT SPI 数据寄存器 Ah BRT 波特率发生器寄存器 Bh AUXR - UARTEN UARTM0 BRTR BRTX12 S1BRS SMOD SMOD Ch SCON SM0/FE SM1 SM2 REN TR8 RB8 RXWK Dh SBUF 串行口缓冲寄存器 Eh SADEN 从机地址寄存器 Fh SADDR 从机地址掩码寄存器 h PWM2DT DT2.7 DT2.6 DT2.5 DT2.4 DT2.3 DT2.2 DT2.1 DT h PWM2D PD2.7 PD2.6 PD2.5 PD2.4 PD2.3 PD2.2 PD2.1 PD h PWM2P PP2.7 PP2.6 PP2.5 PP2.4 PP2.3 PP2.2 PP2.1 PP h PWM2C PWM2S1 PWM2S0 CK21 CK h PWM1DT DT1.7 DT1.6 DT1.5 DT1.4 DT1.3 DT1.2 DT1.1 DT h PWM1D PD1.7 PD1.6 PD1.5 PD1.4 PD1.3 PD1.2 PD1.1 PD

31 地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位初值 256h PWM1P PP1.7 PP1.6 PP1.5 PP1.4 PP1.3 PP1.2 PP1.1 PP h PWM1C PWM1S1 PWM1S0 CK11 CK h PWM0DT DT0.7 DT0.6 DT0.5 DT0.4 DT0.3 DT0.2 DT0.1 DT h PWM0DL PD0.7 PD0.6 PD0.5 PD0.4 PD0.3 PD0.2 PD0.1 PD Ah PWM0DH PD0.11 PD0.10 PD0.9 PD Bh PWM0PL PP0.7 PP0.6 PP0.5 PP0.4 PP0.3 PP0.2 PP0.1 PP Ch PWM0PH PP0.11 PP0.10 PP0.9 PP Dh PWM0C - - FLTS FLTC PWM0S1 PWM0S0 CK01 CK Eh PWMEN - EFLT EPWM21 EPWM11 EPWM01 EPWM2 EPWM1 EPWM Fh FLTM - - FLT2M1 FLT2M0 FLT1M1 FLT1M0 FLT0M1 FLT0M B0h LCDCON BIASCT1 BIASCT0 DUTCT - CS1 CS0 RLCD1 RLCD B1h LCDPS LP3 LP2 LP1 LP B2h DISPCTR SLPENB DISPON DISPCT B3h LCDLVD LCDVD3 LCDVD2 LCDVD1 LCDVD B6h SEGSE0 SE7 SE6 SE5 SE4 SE3 SE2 SE1 SE B7h SEGSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE B8h SEGSE2 SE23 SE22 SE21 SE20 SE19 SE18 SE17 SE B9h SEGSE3 SE31 SE30 SE29 SE28 SE27 SE26 SE25 SE C0h SEGDATA0 SEG0/C7 SEG0/C6 SEG0/C5 SEG0/C4 SEG0/C3 SEG0/C2 SEG0/C1 SEG0/C0 XXXX XXXX 2C1h SEGDATA1 SEG1/C7 SEG1/C6 SEG1/C5 SEG1/C4 SEG1/C3 SEG1/C2 SEG1/C1 SEG1/C0 XXXX XXXX 2C2h SEGDATA2 SEG2/C7 SEG2/C6 SEG2/C5 SEG2/C4 SEG2/C3 SEG2/C2 SEG2/C1 SEG2/C0 XXXX XXXX 2C3h SEGDATA3 SEG3/C7 SEG3/C6 SEG3/C5 SEG3/C4 SEG3/C3 SEG3/C2 SEG3/C1 SEG3/C0 XXXX XXXX 2C4h SEGDATA4 SEG4/C7 SEG4/C6 SEG4/C5 SEG4/C4 SEG4/C3 SEG4/C2 SEG4/C1 SEG4/C0 XXXX XXXX 2C5h SEGDATA5 SEG5/C7 SEG5/C6 SEG5/C5 SEG5/C4 SEG5/C3 SEG5/C2 SEG5/C1 SEG5/C0 XXXX XXXX 2C6h SEGDATA6 SEG6/C7 SEG6/C6 SEG6/C5 SEG6/C4 SEG6/C3 SEG6/C2 SEG6/C1 SEG6/C0 XXXX XXXX 2C7h SEGDATA7 SEG7/C7 SEG7/C6 SEG7/C5 SEG7/C4 SEG7/C3 SEG7/C2 SEG7/C1 SEG7/C0 XXXX XXXX 2C8h SEGDATA8 SEG8/C7 SEG8/C6 SEG8/C5 SEG8/C4 SEG8/C3 SEG8/C2 SEG8/C1 SEG8/C0 XXXX XXXX 2C9h SEGDATA9 SEG9/C7 SEG9/C6 SEG9/C5 SEG9/C4 SEG9/C3 SEG9/C2 SEG9/C1 SEG9/C0 XXXX XXXX 2CAh SEGDATA10 SEG10/C7 SEG10/C6 SEG10/C5 SEG10/C4 SEG10/C3 SEG10/C2 SEG10/C1 SEG10/C0 XXXX XXXX 2CBh SEGDATA11 SEG11/C7 SEG11/C6 SEG11/C5 SEG11/C4 SEG11/C3 SEG11/C2 SEG11/C1 SEG11/C0 XXXX XXXX 2CCh SEGDATA12 SEG12/C7 SEG12/C6 SEG12/C5 SEG12/C4 SEG12/C3 SEG12/C2 SEG12/C1 SEG12/C0 XXXX XXXX 2CDh SEGDATA13 SEG13/C7 SEG13/C6 SEG13/C5 SEG13/C4 SEG13/C3 SEG13/C2 SEG13/C1 SEG13/C0 XXXX XXXX 2CEh SEGDATA14 SEG14/C7 SEG14/C6 SEG14/C5 SEG14/C4 SEG14/C3 SEG14/C2 SEG14/C1 SEG14/C0 XXXX XXXX 2CFh SEGDATA15 SEG15/C7 SEG15/C6 SEG15/C5 SEG15/C4 SEG15/C3 SEG15/C2 SEG15/C1 SEG15/C0 XXXX XXXX 2D0h SEGDATA16 SEG16/C7 SEG16/C6 SEG16/C5 SEG16/C4 SEG16/C3 SEG16/C2 SEG16/C1 SEG16/C0 XXXX XXXX 2D1h SEGDATA17 SEG17/C7 SEG17/C6 SEG17/C5 SEG17/C4 SEG17/C3 SEG17/C2 SEG17/C1 SEG17/C0 XXXX XXXX 2D2h SEGDATA18 SEG18/C7 SEG18/C6 SEG18/C5 SEG18/C4 SEG18/C3 SEG18/C2 SEG18/C1 SEG18/C0 XXXX XXXX 2D3h SEGDATA19 SEG19/C7 SEG19/C6 SEG19/C5 SEG19/C4 SEG19/C3 SEG19/C2 SEG19/C1 SEG19/C0 XXXX XXXX 2D4h SEGDATA20 SEG20/C7 SEG20/C6 SEG20/C5 SEG20/C4 SEG20/C3 SEG20/C2 SEG20/C1 SEG20/C0 XXXX XXXX

32 地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 XXXX XXXX 2D5h SEGDATA21 SEG21/C7 SEG21/C6 SEG21/C5 SEG21/C4 SEG21/C3 SEG21/C2 SEG21/C1 SEG21/C0 XXXX XXXX 2D6h SEGDATA22 SEG22/C7 SEG22/C6 SEG22/C5 SEG22/C4 SEG22/C3 SEG22/C2 SEG22/C1 SEG22/C0 XXXX XXXX 2D7h SEGDATA23 SEG23/C7 SEG23/C6 SEG23/C5 SEG23/C4 SEG23/C3 SEG23/C2 SEG23/C1 SEG23/C0 XXXX XXXX 2D8h SEGDATA24 SEG24/C7 SEG24/C6 SEG24/C5 SEG24/C4 SEG24/C3 SEG24/C2 SEG24/C1 SEG24/C0 XXXX XXXX 2D9h SEGDATA25 SEG25/C7 SEG25/C6 SEG25/C5 SEG25/C6 SEG25/C3 SEG25/C2 SEG25/C1 SEG25/C0 XXXX XXXX 2DAh SEGDATA26 SEG26/C7 SEG26/C6 SEG26/C5 SEG26/C4 SEG26/C3 SEG26/C2 SEG26/C1 SEG26/C0 XXXX XXXX 2DBh SEGDATA27 SEG27/C7 SEG27/C6 SEG27/C5 SEG27/C4 SEG27/C3 SEG27/C2 SEG27/C1 SEG27/C0 XXXX XXXX 2DCh SEGDATA28 SEG28/C7 SEG28/C6 SEG28/C5 SEG28/C4 SEG28/C3 SEG28/C2 SEG28/C1 SEG28/C0 XXXX XXXX 2DDh SEGDATA29 SEG29/C7 SEG29/C6 SEG29/C5 SEG29/C4 SEG29/C3 SEG29/C2 SEG29/C1 SEG29/C0 XXXX XXXX 2DEh SEGDATA30 SEG30/C7 SEG30/C6 SEG30/C5 SEG30/C4 SEG30/C3 SEG30/C2 SEG30/C1 SEG30/C0 XXXX XXXX 2DFh SEGDATA31 SEG31/C7 SEG31/C6 SEG31/C5 SEG31/C4 SEG31/C3 SEG31/C2 SEG31/C1 SEG31/C0 XXXX XXXX 注 : x = 未知, u = 不变, q = 取值视条件而定, - = 未实现 累加器 8 位数据寄存器 W 用来执行 ALU 与数据存储器之间数据的传送操作 如果操作结果为零 (Z) 或有进 位产生 (C 或 DC), 程序状态寄存器 STATUS 中相应位会发生变化 W 并不在 RAM 中, 因此不可以用直接寻址和间接寻址模式对其进行读写 例 :W 寄存器的读写操作 立即数写入 W 寄存器操作 : MOVLW H 0FF ; 送十六进制数 MOVLW D 10 ; 送十进制数 MOVLW B ; 送二进制数 将 W 寄存器的数据写入数据寄存器 BUF 中 : MOVWF BUF 将数据寄存器 BUF 中的数读入 W 寄存器 : MOVF BUF,W 将 W 寄存器的数据与 BUF 中的数据加法运算后, 结果存入 BUF 中 : ADDWF BUF,F INDFx 寄存器 INDF0 INDF1 寄存器不是实际存在的寄存器, 寻址 INDF0 INDF1 将实现间接寻址 程序计数器 程序计数器 (PC) 为 13 位宽, 低字节来自可读写的 PCL 寄存器, 高字节 (PC[12:8]) 不可读写, 可通过 PCLATH 寄存器间接写入 02h&202h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PCL PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值

33 08h&208h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PCLATH PCH12 PCH11 PCH10 PCH9 PCH8 R/W R/W R/W R/W R/W R/W POR 的值 程序计数器顺序指令运行时, 每个指令周期程序自动加 1, 以下三种情况将使程序计数器重新装载 分支指令 (GOTO/CALL): PC 指令码 <12:0> 以 PCL 作为目的操作数的指令 : PC PCLATH 4 0 ALU 运算结果 子程序返回指令 (RETURN/RETLW/RETFIE): PC 12 0 堆栈栈顶 (TOS) STATUS 寄存器 STATUS 寄存器包含 ALU 的算术状态 复位状态和寄存器的存储区选择位 03&203h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 STATUS - - RP0 TO PD Z DC C R/W - - R/W R R R/W R/W R/W POR 的值 x x x bit 5 RP0:BANK 选择位 1 = Bank1 0 = Bank0 bit 4 TO: 超时位 1 = 上电 执行了 CLRWDT 指令或 SLEEP 指令 0 = 发生了 WDT 溢出

34 bit 3 PD: 掉电位 1 = 上电或执行了 CLRWDT 指令 0 = 执行了 SLEEP 指令 bit 2 Z: 结果为零位 1 = 算术或逻辑运算的结果为零 0 = 算术或逻辑运算的结果不为零 bit 1 DC: 半进位 / 借位位 1 = 加法运算时低四位有进位 / 减法运算时没有向高四位借位 0 = 加法运算时低四位没有进位 / 减法运算时有向高四位借位 bit 0 C: 进位 / 借位位 1 = 加法运算时有进位 / 减法运算时没有借位发生 / 移位后移出逻辑 1 0 = 加法运算时没有进位 / 减法运算时有借位发生 / 移位后移出逻辑 PCON 寄存器 079h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PCON LVD2EN LVD1EN - WDTENS LVD2F LVD1F POR BOR R/W R/W R/W - R/W R R R/W R/W POR 的值 q q q q 注 : - = 未实现,q = 取值视条件而定 bit 7 LVD2EN:3.6V 低电压检测使能位 1 = 使能 3.6V 低电压检测 0 = 禁止 3.6V 低电压检测 bit 6 LVD1EN:2.4V 低电压检测使能位 1 = 使能 2.4V 低电压检测 0 = 禁止 2.4V 低电压检测 bit 4 WDTENS: 看门狗软件使能位 ( 需要配置字中使能 WDT, 该位使能时才有效 ) 1 = 软件使能看门狗 0 = 软件禁止看门狗 bit 3 LVD2F:3.6V 低电压检测标志位 1 = 电压低于 3.6V 0 = 电压高于 3.6V bit 2 LVD1F:2.4V 低电压检测标志位 1 = 电压低于 2.4V 0 = 电压高于 2.4V bit 1 POR: 上电复位状态位 1 = 非上电复位 0 = 上电复位 ( 需要软件置 1) bit 0 BOR: 欠压复位状态位 1 = 未发生欠压复位 0 = 发生了欠压复位 ( 需要软件置 1)

35 注 : 1 在芯片执行 SLEEP 指令前, 软件关闭看门狗定时器, 可以节省休眠或绿色模式下芯片功耗 ; 2 LVD2EN 和 LVD1EN 检测电平值仅作为设计参考, 不能用作芯片工作电压值得精确检测 3.2 寻址模式 共有三种寻址方式 : 立即寻址 直接寻址和间接寻址模式 立即寻址 立即数参与运算的寻址方式 例 : 立即寻址 ADDLW 06h ; W 的内容加 6, 结果放入 W 直接寻址 寄存器参与运算的寻址方式 例 : 直接寻址 MOVWF OPTION ; W 的内容装入 OPTION 间接寻址 由指针 FSR(FSRxL/FSRxH) 指向的寄存器参与运算的寻址方式 INDFx 寄存器不是物理寄存 器, 对 INDFx 寄存器操作可以实现间接寻址 例 : 利用间接寻址对 100h~1FFh,300h~3FFh 通用数据存储器进行清零 MOVLW 00h ; 清零 0x100~0x1FF MOVWF FSR0L MOVLW 0x01 MOVWF FSR0H ; FSR 指向 100h 地址 NEXTBYTE: CLRF INDF0 ; 对 FSR 指向的数据存储器清零 INCFSZ FSR,F ;FSR0L+1, 指向下一个地址 ; 注意这里的边界值为欲操作 RAM 最大地址 + 1 ; 利用间接寻址, 注意意外指向特殊寄存器的情况 GOTO NEXTBYTE ;FSR0L 的值加一不溢出, 循环清零下一个地址 MOVLW 00h ; 清零 0x300~0x3FF MOVWF FSR1L ;FSR 指向 300h 地址 MOVLW 0x03 MOVWF FSR1H NEXTBYTE_1: CLRF INDF1 ; 对 FSR 指向的数据存储器清零 INCFSZ FSR1L,F ;FSR1L, 指向下一个地址 ; 注意这里的边界值为欲操作 RAM 最大地址 +1 ; 利用间接寻址, 注意意外指向特殊寄存器的情况 GOTO NEXTBYTE_1 ;FSR1L 的值加不溢出, 循环清零下一个地址 CONTINUE: ; 完成清零操作

36 3.3 堆栈 具有一个 8 级深度的硬件堆栈 当执行 CALL 指令或由于中断导致程序跳转时,PC 值会被压入堆栈 ; 当执行 RETURN RETLW 或 RETFIE 指令时,PC 值从堆栈弹出 ROM PC[12:0] 13 1 级堆栈 2 级堆栈... 8 级堆栈 复位向量 0000h 中断向量 0004h 0005h 程序存储器 1FFFh 注 : 压栈级数请勿超过 8 级, 超过 8 级压栈将导致堆栈溢出, 溢出后堆栈指针循环, 新的压栈将覆盖原堆栈内容

37 4 复位 4.1 概述 共有四种复位方式 : 上电复位 (POR) 外部复位 (MCLRB Reset) 欠压复位 (BOR) 看门狗定时器复位 (WDT Reset) 当上述任何一种复位产生时, 系统进入复位状态, 所有的特殊功能寄存器被初始化, 程序停止运行, 同时程序计数器 (PC) 清零 经过上电延时定时器延时后, 系统结束复位状态, 程序从 0000h 地址开始执行 STATUS 寄存器的 bit4(to 位 ) 及 PCON 寄存器的 bit0(bor 位 ) bit1(por 位 ) 显示系统复位状态信息, 可通过 3 个标志位判断复位来源, 从而控制系统的运行路径 复位电路示意图 上电复位 POR_RST VDD 欠压复位 BOR_RST MCLRB 看门狗定时器 滤波器 MCLRB_RST WDT_RST 上电延时定时器 S R SET CLR Q Q 系统复位 特殊功能寄存器复位状态 TO POR BOR 复位方式 说明 1 0 x 上电复位 电源上电 u u 0 欠压复位 电源电压低于 BOR 电压点 u u u 外部复位 外部复位管脚低电平 0 u u 看门狗定时器复位 运行模式下, 看门狗定时器溢出 复位方式 STATUS 寄存器 PCON 寄存器 上电复位 xxx 00-1 qq00 正常工作模式下的外部复位 xxx 00-1 qq0u 休眠模式下的外部复位 uuu 00-1 qquu 欠压复位 uuu 00-1 qqu0 看门狗定时器复位 uuu 00-1 qquu 注 : u = 不变, x = 未知, - = 未使用,q = 取值视条件而定

38 4.2 上电复位 系统上电过程中,VDD 达到系统正常工作电压之前, 上电复位电路产生内部复位信号, 可通过查询 PCON 寄存器来判断是否发生上电复位 VDD 最大上升时间 T VDD 必须满足规格要求 任何一种复位方式都需要一定的响应时间, 系统提供完善的复位流程以保证复位动作的顺利进行 对于不同类型的振荡器, 完成复位所需要的时间也不同 因此,VDD 的上升速度和不同晶振的起振时间都不固定 RC 振荡器的起振时间最短, 晶体振荡器的起振时间则较长 在用户的使用过程中, 应考虑系统对上电复位时间的要求 VDD POR_RST 延时时间 系统复位 注 : 关于上电复位, 请注意以下几点 : 1 VDD 上电必须从 0V 开始, 若 VDD 有残留电压,POR_RST 信号无法稳定产生 ; 2 VDD 上电斜率必须满足大于 500mV/ms, 否则 POR_RST 信号可能无法产生 ; 3 上电复位延时的复位延时时间在配置字里选择, 两个档位 (18ms/4.5ms) 4.3 看门狗定时器复位 在高频和低频模式下, 看门狗定时器溢出会产生 WDT 复位 ; 在绿色和休眠模式下, 看门狗定时器溢 出将唤醒 SLEEP 并使其返回高频或低频模式, 程序从 SLEEP 指令下一条开始执行 WDT 定时器配置字和 WDTENS 都为 1 时, 才能使能看门狗定时器 看门狗复位示意图 : 看门狗定时器 FF WDT_RST 系统复位 延时时间

39 注 : 关于看门狗复位使用时, 请注意以下几点 : 1 看门狗的使能逻辑 : 看门狗使能 = 看门狗配置字使能 & 看门狗软件使能 (WDTENS=1); 2 不能在中断程序中对看门狗进行清零, 否则无法监控主程序跑飞情况 ; 3 程序中应该只在主程序中有一次清看门狗的动作, 这种架构能够最大限度的发挥看门狗的保护功能 ; 4 看门狗复位的延时时间为 2.2ms/1.1ms; 5 使用时注意 : 不论哪种方式复位后, 看门狗软件使能位 (WDTENS) 的值为 欠压复位 欠压复位的产生 当 VDD 电压下降到 VBOR 以下, 且持续时间满足, 系统产生欠压复位 欠压复位示意图 : VDD VBOR BOR_RST 延时时间 系统复位 低电压复位 (BOR) 是单片机内置的掉电复位保护装置, 当 VDD 跌落并低于 BOR 检测电压值时, BOR 被触发, 系统复位 不同的单片机有不同的 BOR 检测电平 因此采用 BOR 依赖于系统要求和环境状况 如果电源跌落剧烈, 远低于 BOR 触发点,BOR 能够起到保护作用, 让系统正常复位 ; 如果电源电压跌落不是很剧烈, 仅仅是接近 BOR 触发点而造成的系统错误, 则 BOR 就不能起到保护作用让系统复位 为避免电源较大的抖动, 采取必要的电源抖动处理电路或其他保护电路, 防止电源抖动超过 1.0V, 导致芯片工作异常 通过配置字 BOR 编译选项控制选择低电压检测档位, 请客户在使用时根据情况选择合适的 BOR 电压 BOR 档位 :BOR3.6V/2.4V/2.0V 工作死区 电压跌落可能会进入系统死区 系统死区意味着电源不能满足系统的最小工作电压要求 下图是一个典型的掉电复位示意图 图中,VDD 受到严重的干扰, 电压值降得非常低 虚线以上区域系统正常工作, 在虚线以下的区域内, 系统进入未知的工作状态, 这个区域称作死区 当 VDD 跌至 V1 时, 系统仍处于正常状态 ; 当 VDD 跌至 V2 时, 系统进入死区, 系统工作在死区时, 可能导致程序的运行紊乱 ; 当电压跌至 V3, 且低于 BOR 电压点, 系统可正常复位, 处于 BOR 电压点的时间过短, 系统仍无法正常产生欠压复位信号, 可能导致程序的运行紊乱

40 VDD V1 系统工作正常区域 BOR 电压点 V2 系统工作死区 V3 BOR 复位区域 0V 工作死区与工作频率的关系 工作死区电压与工作速度相关, 如下图示意了死区与工作频率的关系 : VDD 系统工作死区 系统复位区域 系统工作电压随工作频率的关系 Fcpu 死区防护 注 : 对于死区防护, 有以下几点建议 : 合理使用看门狗复位电路 降低系统的工作频率 合理采用外部复位电路 ( 电压偏移复位电路 外部 IC 复位 ) 二极管 RC 复位电路电压偏移复位电路 外部 IC 复位防止系统进入死区 4.5 外部复位 当外部复位端口 MCLRB 输入一个持续时间超过 TMCLRB 的低电平时, 产生外部复位 MCLRB 选择配置字 ( 编译选项 ) 为 1,MCLRB 口为外部复位输入口 外部复位示意图 :

41 MCLRB TMCLRB MCLRB_RST 延时时间 系统复位 注 : TMCLRB 需大于 200μs( 典型值 ); 外部复位延时时间为 2.2ms/1.1ms 外部 RC 复位电路 由电阻和电容组成的基本 RC 复位电路, 它在系统上电的过程中能够为复位引脚提供一个缓慢上升的复位信号 这个复位信号的上升速度低于 VDD 的上电速度, 为系统提供合理的复位时序, 当复位引脚检测到高电平时, 系统复位结束, 进入正常工作状态 如下图 : VDD VDD 47kΩ 0.1uF MCLRB GND MCU 二极管 RC 复位电路 在基本 RC 复位电路上增加一个二极管 (DIODE), 对于电源异常情况, 二极管正向导通使电容快速 放电并与 VDD 保持一致, 避免复位引脚持续高电平, 系统无法正常复位 VDD VDD DIODE 47kΩ 0.1uF MCLRB GND MCU

42 4.5.3 电压偏置复位电路 电压偏置复位电路是一种简单的电压检测复位电路, 调整电压检测点, 可以解决系统死区问题 电路中,R1 和 R2 构成分压电路, 当 R1 和 R2 的分压值高于三极管的开启电压时, 三极管集电极输出高电平, 单片机正常工作 ; 当 R1 和 R2 的分压值低于三极管的开启电压时, 集电极输出低电平,MCU 复位 对于不同应用需求, 选择适当的分压电阻 分压电阻 R1 和 R2 在电路中要耗电, 此处的功耗必须计入整个系统的功耗中 VDD R1 VDD R2 2KΩ MCLRB MCU GND

43 5 系统时钟 5.1 概述 内带双时钟系统 : 高频时钟和低频时钟 高频时钟的时钟源由高频晶振或内部 RC 振荡电路 (IRC 32MHz) 提供 低频时钟的时钟源则由低频晶振或内部低速 RC 振荡电路 (RC 32KHz@5V) 提供 两种时钟都可作为系统时钟源 Fosc OSCCON 寄存器的 SCS 位控制高频时钟和低频时钟之间切换 高频模式 :Fcpu = Fsys / N,N = 2 或 4, 时钟模式选择决定 N 的值 低频模式 :Fcpu = Fsys / N,N = 2 或 4, 时钟模式选择决定 N 的值 5.2 时钟框图 OSCI / PORTB7 OSCHM[1:0] EN OSCHM[1:0] OSCO/PORTB6 HS ROSC[2:0] SCS 16 M 高频系统时钟 (HOSC) 8 M 32MHz IHRC 分频器 4 M 2 M IRC 系统时钟 1 M 500K LOSCI/PORTB3 T0OSCEN T1OSCEN LOSCO/PORTB4 32K 低频晶体振荡器 32K ILRC 32K 低频 RC 振荡器 低频系统时钟 (LOSC) OSCLM[1:0] WDT 计数时钟 OSCHM[1:0]: 高速系统时钟选择配置字 OSCLM[1:0]: 低速系统时钟选择配置字 ROSC[2:0]: 高速内部 RC 振荡器频率选择配置字 Fosc: 时钟源频率 Fsys: 系统时钟频率 Fcpu: 指令时钟频率

44 5.3 系统高频时钟 系统高频时钟有两种选择, 通过 OSCHM[1:0] 高频系统时钟选择配置字来控制 高频系统时钟选择配置字 : OSCHM[1:0] 说明 00 内部 RC 振荡器 (IRC),OSCI/OSCO 作为普通 IO 口 高频晶体振荡器 (HS),OSCI/OSCO 作为高频晶体振荡器输入 / 输出口 01 外部时钟输入,OSCI 作为外部时钟输入口,OSCO 作为外部时钟输出口 内部高频 RC 振荡器 配置字 OSCHM[1:0] 和 ROSC[2:0] 控制单片机的内置 RC 高速时钟 OSCHM[1:0] 若选择 00, 则内置 RC 振荡器作为系统时钟源,OSCI/OSCO 作为通用 I/O 口 内置 RC 高频时钟有 16M/8M/4M/2M/1M /500K 六种选择 高频内部 RC 振荡器频率选择配置字 ROSC[2:0] 说明 110 内部 RC 振荡器频率选择 16MHz 101 内部 RC 振荡器频率选择 8MHz 100 内部 RC 振荡器频率选择 4MHz 011 内部 RC 振荡器频率选择 2MHz 010 内部 RC 振荡器频率选择 1MHz 001 内部 RC 振荡器频率选择 500KHz 外部高频时钟 外部高频时钟, 由配置字 OSCHM 控制具体模式的选择 高频晶体振荡器 : 最高 20MHz 高频晶体振荡器的频率为 1MHz~20MHz, 推荐的典型值为 4MHz 8MHz 和 16MHz, 电容推荐值为 20pF OSCO OSCI Crystal 注 : OSCI 和 OSCO 引脚与振荡器和起振电容之间距离 10mm 以内

45 5.4 系统低频时钟 高频时钟有两种选择, 通过低频时钟选择配置字来选择 低频晶体振荡器 : KHz 低频 RC 振荡器 : 32KHz(5V 典型值 ) 低频系统时钟选择配置字 OSCLM[1:0] 说明 00 低频 RC 振荡器,32KHz,LOSCI/LOSCO 作为输入 / 输出口 01 低频晶体振荡器,32.768KHz,LOSCI/LOSCO 作为低频晶体振荡器输入 / 输出口 低频晶体振荡器 低频晶体振荡器的频率为 KHz, 电容推荐值为 20pF 低频晶体振荡器电路 LOSCO LOSCI Crystal 系统工作在绿色模式下, 可以使能低频晶体振荡器 注 : 低频 RC 振荡器 外部高频晶振接 OSCO OSCI 端口, 外部低频晶振接 LOSCO LOSCI 端口 系统低频时钟源也可采用 RC 振荡电路 低频内部 RC 振荡电路的输出频率受系统电压和环境温度的影响较大, 通常为 5V 时输出 32KHz( 典型值 ) 输出频率与工作电压之间的关系如下图所示 :

46 Freq.(MHz) 低频内部 RC 频率电压特性 VDD(V) 注 : 低频内部 RC 时钟也用作看门狗定时器的时钟

47 6 系统工作模式 6.1 概述 可在以下四种工作模式之间进行切换 : 高频模式 低频模式 休眠模式 绿色模式 系统复位后, 工作于高频模式还是低频模式, 由系统配置字决定 程序运行过程中, 可以通过设置 SCS 位使系统在高频和低频模式之间切换 绿色模式 复位或中断 Sleep 指令 T0OSCEN=1 & T0CS=1 Sleep 指令 T0OSCEN=1 & T0CS=1 复位或中断 SCS 清零 高频模式 低频模式 SCS 置 1 复位或中断 Sleep 指令 T0OSCEN=0 Sleep 指令 T0OSCEN=0 复位或中断 休眠模式 注 : 1. 从休眠或绿色模式唤醒, 中断使能的情况则进入相应中断, 否则执行下一句 ; 2. 外部复位和 Timer2 中断不能唤醒休眠或绿色模式 ; 3. 进入休眠或绿色模式前, 关闭 WDT 可降低功耗

48 各种模式下振荡器模块及 Timer0/Timer1 的工作状态表 模块 高频模式 低频模式 绿色模式 休眠模式 高频振荡器 运行 由 HXEN 决定 由 HXEN 决定 关闭 低频振荡器 运行 运行 运行 关闭 Timer0 运行 运行 定时唤醒模式下运行 计数器模式下运行 Timer1 运行 运行 异步定时唤醒模式下运行 异步计数器模式下运行 6.2 模式切换举例 例 : 高频 / 低频模式切换到睡眠模式 BCF STATUS,RP0 ;Bank0 BCF OSCCON,T0OSCEN SLEEP 例 : 高频模式切换到低频模式. BCF STATUS,RP0 ;Bank0 BSF OSCCON,SCS ;SCS = 1, 系统进入低频模式 例 : 从低频模式切换到高频模式 BCF STATUS,RP0 ;Bank0 BCF OSCCON,SCS ;SCS = 0, 系统进入高频模式 例 : 从高频 / 低频模式切换到绿色模式 ; T0 定时器定时唤醒 BCF STATUS,RP0 ;Bank0 MOVLW 0x05 MOVWF OPTION BSF OPTION, T0CS BSF OSCCON, T0OSCEN BSF INTCON,T0IE ; 使能 T0 定时器 BSF INTCON,GIE CLRF T0 SLEEP 例 : 从高频 / 低频模式切换到绿色模式 ;T0 定时器定时唤醒,OSCLM=01, 低频晶体振荡器为 KHz, 定时唤醒时间为 0.5s BCF STATUS,RP0 ;Bank0 MOVLW 0x05 MOVWF OPTION BSF OPTION,T0CS BSF OSCCON,T0OSCEN BCF INTCON,T0IF BSF INTCON,T0IE ; 使能 T0 定时器 BSF INTCON,GIE CLRF T0-48 -

49 RTC_MODE: SLEEP BCF STATUS,RP0 ;Bank0 BCF INTCON,T0IF ;0.5s 时间到 GOTO RTC_MODE 6.3 高低频模式切换 HOSC LOSC SCS FOSC Tscs 高低速时钟切换 (HXEN=0) 高低频切换时序 : HOSC LOSC SCS FOSC 高低速时钟切换 (HXEN=1) 时钟切换时间 (Tscs) 计算 : Tscs = 高频振荡器起振时间 + 高频振荡器稳定时间 不同类型高频振荡器的稳定时间表 振荡器类型 高频晶体振荡器 外部 / 内部 RC 振荡器 1024 Clock 16 Clock 高频振荡器稳定时间 6.4 唤醒时间 系统进入休眠模式后, 系统时钟停止运行 外部中断把系统从休眠模式下唤醒时, 系统需要等待振 荡器起振定时器 (OST) 定时结束, 以使振荡电路进入稳定工作状态, 等待的这一段时间称为唤醒时间

50 唤醒时间结束后, 系统进入高频或低频模式 唤醒时间的计算如下 : 唤醒时间 = 起振时间 + OST 定时时间 同类型振荡器 OST 定时时间表 振荡器类型 OST 定时时间 高 / 低频晶体振荡器 1024 Clock 外 / 内部 RC 振荡器 16 Clock 低频 RC 振荡器 4 Clock 注 : 系统进入绿色模式后, 低频时钟正常运行 外部或内部中断将系统从绿色模式中唤醒不需要唤醒时间 6.5 OSCCON 寄存器 07Ah Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 OSCCON T0OSCEN HXEN SCS R/W R/W R/W R/W POR 的值 q 注 : x = 未知, - = 未实现, q = 取值视条件而定 bit 7 T0OSCEN: 低频振荡器使能位 1 = 在低速或绿色模式下使能内部 32K WDT 振荡器 0 = 在低速或绿色模式下禁止内部 32K WDT 振荡器 bit 1 HXEN: 高频振荡器使能位 1 = 在低速或绿色模式下使能高频振荡器 0 = 在低速或绿色模式下禁止高频振荡器 bit 0 SCS: 高低频模式选择位 1 = 系统时钟选择为低频系统时钟 0 = 系统时钟选择为高频系统时钟

51 7 中断 中断源 : Timer0 定时器中断 INT0 外部中断 PORT 口电平变化中断 Timer1 定时器中断 Timer2 定时器中断 CCP1 中断 CCP2 中断 AD 中断 UART 中断 SPI 中断 PWM 中断 系统产生中断时, 程序计数器 (PC) 值压入堆栈, 程序跳转至 0004h, 进入中断服务程序 当程序运行到 RETFIE 指令时, 系统退出中断服务程序, 程序计数器值出栈, 系统执行 PC+1 地址对应的指令 为避免误进入中断, 在使能中断和退出中断服务程序之前, 必须清除相应中断标志位 在中断服务程序中不需要软件使能 GIE, 以免造成程序紊乱 中断示意图 TOIF Timer0 中断 TOIE PORTBX PB 电平变化中断 IOCBX PORTxX Px 电平变化中断 IOCxX 外部中断 PWM 中断 INTF INTE RBIF RBIE RxIF RxIE PWMIF PWMIE 唤醒 到 CPU 的中断 T1IF Timer1 中断 T1IE SPI 中断 SPIF SPIE T2IF Timer2 中断 T2IE PEIE CCP1 中断 CCP2 中断 CCP1IF CCP1IE CCP2IF CCP2IE 注 :x=a/c/de/f TXIF/RXIF UART 中断 UARTIE GIE

52 7.1 内核中断 使能内核中断必须将 GIE 和相应中断的使能位置 1, 使能 PORTB 电平变化中断还需要将相应端口配置为输入并且 IOCB 的相应位置 1 INT0 外部中断和 PORTB 电平变化中断可以唤醒 SLEEP,Timer0 中断在计数器模式和定时唤醒模式下可以唤醒 SLEEP 09h 209h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x 注 : x = 未知 bit 7 GIE: 全局中断使能位 1 = 使能所有未屏蔽的中断 0 = 禁止所有中断 bit 5 T0IE:Timer0 溢出中断使能位 1 = 使能 Timer0 中断 0 = 禁止 Timer0 中断 bit 4 INTE: INT0 外部中断使能位 1 = 使能 INT0 外部中断 0 = 禁止 INT0 外部中断 bit 3 RBIE:PORTB 电平变化中断使能位 1 = 使能 PORTB 电平变化中断 0 = 禁止 PORTB 电平变化中断 bit 2 T0IF:Timer0 溢出中断标志位,Timer0 计数寄存器在 FFh 至 00h 时产生溢出信号 1 = Timer0 计数寄存器溢出 ( 必须由软件清零 ) 0 = Timer0 计数寄存器未溢出 bit 1 INTF:INT0 外部中断标志位 1 = 发生 INT0 外部中断 ( 必须由软件清零 ) 0 = 未发生 INT0 外部中断 bit 0 RBIF:PORTB 电平变化中断标志位 1 = PORTB[7:0] 中至少有一个口的电平状态发生了改变 ( 必须由软件清零 ) 0 = PORTB[7:0] 电平状态没有变化 078h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 OPTION - INTEDG T0CS T0SE PSA PS2 PS1 PS0 R/W - R/W R/W R/W R/W R/W R/W R/W POR 的值 bit 6 INTEDG: 触发 INT0 外部中断的边沿选择位 1 = INT0 引脚上升沿触发中断 0 = INT0 引脚下降沿触发中断

53 7.2 外设中断 使能外设中断必须将 GIE 和 PEIE 置 1, 同时将相应中断的使能位置 1 Timer1 门控事件中断可以唤醒 SLEEP,Timer1 中断在异步计数器模式和异步定时唤醒模式下可以唤醒 SLEEP,CCPx 中断在捕捉模式下可以唤醒 SLEEP 09h 209h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x bit 7 GIE: 全局中断使能位 1 = 使能所有未屏蔽的中断 0 = 禁止所有中断 bit 6 PEIE: 外设中断使能位 1 = 使能所有未屏蔽的外设中断 0 = 禁止所有外设中断 070h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PIE1 RBPUB ADIE CCP1IE T2IE T1IE R/W R/W R/W R/W R/W R/W POR 的值 bit 6 ADIE:ADC 中断使能位 1 = 使能 ADC 中断 0 = 禁止 ADC 中断 bit 2 CCP1IE:CCP1 中断使能位 1 = 使能 CCP1 中断 0 = 禁止 CCP1 中断 bit 1 T2IE:Timer2 计数寄存器与 PR2 匹配中断使能位 1 = 使能 Timer2 匹配中断 0 = 禁止 Timer2 匹配中断 bit 0 T1IE:Timer1 溢出中断使能位 1 = 使能 Timer1 溢出中断 0 = 禁止 Timer1 溢出中断 071h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PIE2 PWM2IE PWM1IE PWM0IE - - UARTIE SPIE CCP2IE R/W R/W R/W R/W - - R/W R/W R/W POR 的值 bit [7:5] PWMxIE:PWM 中断使能位 1 = 使能 PWM 中断 0 = 禁止 PWM 中断 bit 2 UARTIE:UART 中断使能位 1 = 使能 UART 中断 0 = 禁止 UART 中断

54 bit 1 SPIE: SPI 中断使能位 1 = 使能 SPI 中断 0 = 禁止 SPI 中断 bit 0 CCP2IE:CCP2 中断使能位 1 = 使能 CCP2 中断 0 = 禁止 CCP2 中断 072h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PIE RFIE REIE RDIE RCIE RAIE R/W R/W R/W R/W R/W R/W POR 的值 Bit[4:0] RxIE: PORTx 电平变化中断使能位 (x=a/c/d/e/f) 1 = 使能 PORTx 电平变化中断 0 = 禁止 PORTx 电平变化中断 054h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PIR1 - ADIF CCP1IF T2IF T1IF R/W - R/W R/W R/W R/W POR 的值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PIR2 PWM2IF PWM1IF PWM0IF - RXIF TXIF SPIF CCP2IF R/W R/W R/W R/W - R/W R/W R/W R/W POR 的值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PIR RFIF REIF RDIF RCIF RAIF R/W R/W R/W R/W R/W R/W POR 的值 bit 6 ADIF:AD 中断标志位 1 =ADC 转换已完成 ( 必须由软件清零 ) 0 = ADC 转换未完成或尚未开始 bit 2 CCP1IF:CCP1 中断标志位捕捉模式 : 1 = 发生了捕捉事件 ( 必须用软件清零 ) 0 = 未发生捕捉事件比较模式 : 1 = 发生了比较事件 ( 必须用软件清零 ) 0 = 未发生比较事件 PWM 模式 : 在此模式下未使用

55 bit 1 T2IF:Timer2 计数寄存器与 PR2 匹配中断标志位 1 = Timer2 发生匹配 ( 必须用软件清零 ) 0 = Timer2 未发生匹配 bit 0 T1IF:Timer1 溢出中断标志位,Timer1 计数寄存器在 FFFFh 至 0000h 时产生溢出信号 1 = Timer1 计数寄存器溢出 ( 必须由软件清零 ) 0 = Timer1 计数寄存器未溢出 bit [7:5] PWMxIF:PWM 中断标志位 1 = PWM 中断产生中断 ( 必须由软件清零 ) 0 = PWM 中断未产生中断 bit 3 RXIF:UART 接收标志位 1 = UART 接收中断产生中断 ( 必须由软件清零 ) 0 = UART 接收中断未产生中断 bit 2 TXIF:UART 发送中断标志位 1 = UART 发送中断产生中断 ( 必须由软件清零 ) 0 = UART 发送中断未产生中断 bit 1 SPIF:SPI 中断标志位 1 = SPI 中断产生中断 ( 必须由软件清零 ) 0 = SPI 中断未产生中断 bit 0 CCP2IF:CCP2 中断标志位捕捉模式 : 1 = 发生了捕捉事件 ( 必须用软件清零 ) 0 = 未发生捕捉事件比较模式 : 1 = 发生了比较事件 ( 必须用软件清零 ) 0 = 未发生比较事件 PWM 模式 : 在此模式下未使用 bit [4:0] RxIF:PORTx 电平变化中断标志位 (x=a/c/d/e/f) 1 = PORTx[7:0] 中至少有一个口的电平状态发生了改变 ( 必须由软件清零 ) 0 = PORTx[7:0] 电平状态没有变化

56 7.3 GIE 全局中断 只有当全局中断控制位 GIE 置 1 的时候程序才能响应中断请求 一旦有中断发生, 程序计数器入栈, 程序转至中断向量地址 (ORG 0004H), 堆栈层数加 1 例 : 设置全局中断控制位 (GIE) 注 : 在所有中断中,GIE 处于关闭状态 BSF INTCON,GIE ; 使能 GIE 7.4 中断保护 有中断请求发生并被响应后, 程序转至 0004H 执行中断服务程序 中断服务程序开始执行时, 需保存 W 寄存器 STATUS 寄存器 PCLATH 寄存器的内容 ; 结束中断服 务程序时, 恢复 PCLATH 寄存器 STATUS 寄存器 W 寄存器的数值, 注意顺序 注 : 1. 为了使保存系统寄存器的 RAM, 可进行特殊操作, 保证保存相应的系统寄存器 ; 2. 在退出中断时, 由于需要先恢复 STATUS, 再使用 MOVF 指令恢复 W, 可能会改变 STATUS, 因此必须使用 SWAPF 指令恢复 W 注意在中断中共有两句 SWAPF 指令 例 : 对 W PCLATH 和 STATUS 进行入栈保护 ORG 0000H GOTO START ORG 0004H GOTO INT_SERVICE ORG 0010H START: INT_SERVICE: MOVWF W_TEMP ; 保存 W SWAPF STATUS,W MOVWF STATUS_TEMP ; 保存 STATUS MOVF PCLATH, W MOVWF PCLATH_TEMP ; 保存 PCLATH CLRF STATUS ; 切换到 BANK0 MOVF PCLATH_TEMP,W MOVWF PCLATH ; 恢复 PCLATH SWAPF STATUS_TEMP,W MOVWF STATUS ; 恢复 STATUS

57 SWAPF W_TEMP,F SWAPF W_TEMP,W ; 恢复 W RETFIE ; 退出中断 END 7.5 Timer0 定时器中断 T0 溢出时, 无论 T0IE 处于何种状态,T0IF 都会置 1 若 T0IE 和 T0IF 都置 1, 且 GIE 使能, 系 统就会响应 TIMER0 的中断 ; 若 T0IE = 0, 则无论 T0IF 是否置 1, 系统都不会响应 TIMER0 中断 例 :T0 中断请求设置 MOVLW 0xC5 BCF STATUS,RP0 ;Bank0 MOVWF OPTION ;T0 时钟 =Fcpu / 64 MOVLW 0x40 ;T0 初始值 =64H BCF STATUS,RP0 MOVWF T0 BSF INTCON,T0IE ; 置 T0 中断使能标志 BCF INTCON,T0IF ; 清 T0 中断标志 BSF INTCON,GIE ; 使能 GIE 例 :T0 中断服务程序 ORG 0004H GOTO INT_SERVICE INT_SERVICE: MOVWF W_TEMP ; 保存 W SWAPF STATUS, W MOVWF STATUS_TEMP ; 保存 STATUS MOVF PCLATH, W MOVWF PCLATH_TEMP ; 保存 PCLATH BCF STATUS,RP0 ;BANK0 BTFSS INTCON,T0IF ; 检查是否有 T0 中断请求标志 GOTO EXIT_INT ;T0IF = 0, 退出中断 T0ISR: BCF INTCON,T0IF ; 清 T0IF MOVLW 0x40 MOVWF T0 ; 重置 T0 值 ;T0 中断程序 EXIT_INT: MOVF PCLATH_TEMP,W MOVWF PCLATH ; 恢复 PCLATH SWAPF STATUS_TEMP,W MOVWF STATUS ; 恢复 STATUS SWAPF W_TEMP, F

58 SWAPF W_TEMP,W ; 恢复 W RETFIE ; 退出中断 7.6 INT0 外部中断 INT0 被触发, 则无论 INTE 处于何种状态,INTF 都会被置 1 如果 INTF=1 且 INTE=1,GIE 使能, 系统响应该中断 ; 如果 INTF=1 而 INTE=0, 系统并不会执行中断服务 在处理多中断时尤其需要注意 078h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 OPTION RBPUB INTEDG T0CS T0SE PSA PS2 PS1 PS0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 bit 6 INTEDG: 触发 INT0 外部中断的边沿选择位 1 = INT0 引脚上升沿触发中断 0 = INT0 引脚下降沿触发中断 例 :INT0 中断请求设置, 电平触发 BCF STATUS,RP0 ;Bank0 BSF OPTION,INTEG ;INT0 置为上升沿触发 BCF INTCON,INTF ;INT0 中断请求标志清零 BSF INTCON,INTE ; 使能 INT0 中断 BSF INTCON,GIE ; 使能 GIE 例 :INT0 中断 ORG 0004H ; GOTO INT_SERVICE INT_SERVICE: ; 保存 STATUS W 和 PCLATH BTFSS INTCON,INTF ; 检测 INTF GOTO EXIT_INT ;INTF= 0, 退出中断 BCF INTCON,INTF ; INTF 清零 ;INT0 中断服务程序 EXIT_INT: ; 恢复 STATUS W 和 PCLATH RETFIE ; 退出中断 7.7 PORT 电平变化中断 PORTx 电平变化中断时, 则无论 RBIE 处于何种状态,RxIF 都会被置 1 如果 RxIF=1 且 RxIE=1, GIE 使能, 系统响应该中断 ; 如果 RxIF=1 而 RxIE=0, 系统并不会执行中断服务 电平变化中断必须将 PORTx 端口设为输入, 并将寄存器 IOCx 对应位置

59 041h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 IOCB IOCB7 IOCB6 IOCB5 IOCB4 IOCB3 IOCB2 IOCB1 IOCB0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 IOCB[7:0]:PORTB[7:0] 电平变化中断使能控制位 0 = 该端口禁止电平变化中断 ; 1 = 该端口使能电平变化中断 040h~045h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 IOCx IOCx7 IOCx6 IOCx5 IOCx4 IOCx3 IOCx2 IOCx1 IOCx0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 IOCx[7:0]:PORTx[7:0] 电平变化中断使能控制位 0 = 该端口禁止电平变化中断 ; 1 = 该端口使能电平变化中断 x = A C D E F 注 :1. 如要允许 PORTB 口电平变化中断必须将 IOCB 的对应端口的位置 1; 2.PORTB 电平变化中断中, 在清零 RBIF 之前必须执行 PORTB 端口读操作 ; 3.PORTA/C/D/E/F 需使能 PEIE 例 :PORTB1 电平变化中断请求设置 MOVLW 0x02 BCF STATUS,RP0 ;BANK0 IORWF TRISB,F ;PORTB1 端口为输入 MOVLW 0x02 IORWF IOCB,F ; 使能 PORTB1 端口为电平变化中断 MOVF PORTB, W ; 读 PORTB 口 BCF INTCON,RBIF ; PROTB 中断请求标志清零 BSF INTCON,RBIE ; 使能 PROTB 中断 BSF INTCON,GIE ; 使能 GIE 例 :PORTB 中断 ORG 0004H GOTO INT_SERVICE INT_SERVICE: ; 保存 STATUS W 和 PCLATH BCF STATUS,RP0 ;BANK0 BTFSS INTCON,RBIF ; 检测 RBIF GOTO EXIT_INT ;RBIF = 0, 退出中断 MOVF PORTB,W ; 读 PORTB 端口 BCF INTCON,RBIF ; RBIF 清零 ; PORTB 电平变化中断服务程序 EXIT_INT:

60 RETFIE ; 恢复 STATUS W 和 PCLATH ; 退出中断 例 :PORTB 中断唤醒 SLEEP BCF STATUS,RP0 ;BANK0 MOVLW 0x02 IORWF TRISB,F ;PORTB1 端口为输入 MOVLW 0x02 IORWF IOCB,F ; 使能 PORTB1 端口为电平变化中断 MOVF PORTB,W ; 读 PORTB 口 BCF INTCON,RBIF ;PROTB 中断请求标志清零 BSF INTCON,RBIE ; 使能 PROTB 中断 SLEEP BCF INTCON,RBIE MOVF PORTB,W ; 读 PORTB 端口 ; 其他程序 注 :1. 如要允许 PORTx 口电平变化中断必须将 IOCx 的对应端口的位置 1; 2.PORTx 电平变化中断中, 在清零 RxIF 之前必须执行 PORTx 端口读操作 7.8 Timer1 中断 T1 溢出时, 无论 T1IE 处于何种状态,T1IF 都会置 1 若 T1IE 和 T1IF 都置 1, 且 PEIE GIE 均 使能, 系统就会响应 TIMER1 的中断 ; 若 T1IE = 0, 则无论 T1IF 是否置 1, 系统都不会响应 TIMER1 中断 例 :TIMER1 工作于异步计数模式, 并中断唤醒 SLEEP MOVLW 0xA4 BCF STATUS,RP0 ;BANK0 MOVWF T1CON ;T1 时钟源为 T1CKI; 分频比为 1:4; 异步计 数器模式 MOVLW nnh MOVWF T1H MOVLW nnh MOVWF T1L ;Timer1 赋初值 MOVLW 0xC0 MOVWF INTCON ; 使能外设中断 BSF PIE1,T1IE BCF STATUS,RP0 BCF PIR1,T1IF BSF T1CON,T1ON BCF OSCCON,T0OSCEN ; 禁止低频晶体振荡器 SLEEP ; 进入 SLEEP

61 T1INT_SERVICE: EXIT_INT: ; 保存 STATUS W 和 PCLATH BCF STATUS,RP0 ; BANK0 BTFSS PIR1,T1IF ; 检测 T1IF GOTO EXIT_INT ;T1IF = 0, 退出中断 BCF PIR1,T1IF ;T1IF 清零 ;TIMER1 中断服务程序 ; 恢复 STATUS W 和 PCLATH RETFIE ; 退出中断 7.9 Timer2 定时器中断 当 T2 的值和 PR2 的值相同时,TIMER2 中断被触发, 则无论 T2IE 处于何种状态,T2IF 都会被置 1 如果 T2IF=1 且 T2IE=1, 且 PEIE GIE 均使能, 系统响应该中断 ; 如果 T2IF=1 而 T2IE=0, 系统并不会 执行中断服务 例 :TIMER2 中断请求设置 BCF STATUS,RP0 ;BANK0 MOVLW 0xFF MOVWF PR2 ; 设置 T2 周期 MOVLW 0x04 MOVWF T2CON ; 设置分频比 CLRF T2 BSF PIE1,T2IE ; 使能 TIMER2 中断 BSF INTCON,GIE BSF T2CON,T2ON ; 使能 TIMER2 例 :TIMER2 中断 ORG 0004H GOTO T2INT_SERVICE T2INT_SERVICE: ; 保存 STATUS W 和 PCLATH BCF STATUS,RP0 ;BANK0 BTFSS PIR1,T2IF ; 检测 T2IF GOTO EXIT_INT ;T2IF = 0, 退出中断 BCF PIR1,T2IF ;T2IF 清零 ;TIMER2 中断服务程序 EXIT_INT: ; 恢复 STATUS W 和 PCLATH

62 RETFIE ; 退出中断 7.10 AD 中断 当 ADC 完成,ADON 被硬件清零, 无论 ADIE 处于何种状态, 与此同时 ADIF 被置 1 若 ADIE ADIF 为 1, 且 PEIE GIE 均使能, 系统就会相应 ADC 中断 ; 若 ADIE = 0, 则无论 ADIF 是否置 1, 系统都不会响应 ADC 中断 7.11 CCP 中断 当发生 CCPx 中断时, 无论 CCPxIE 处于何种状态,CCPxIF 被置 1 若 CCPxIE CCPxIF 为 1, 且 PEIE GIE 均使能, 系统就会相应 CCPx 中断 ; 若 CCPxIE = 0, 则无论 CCPxIF 是否置 1, 系统都 不会响应 CCPx 中断 7.12 UART 中断 当 UART 接收 发送完成后, 无论 UARTIE 处于何种状态,TXIF RXIF 都被置 1 若 UARTIE TXIF RXIF 为 1, 且 PEIE GIE 均使能, 系统就会相应产生 UART 中断 7.13 SPI 中断 当 SPI 接收 发送完成后, 无论 SPIE 处于何种状态,SPIF 都被置 1 若 SPIE SPIF 为 1, 且 PEIE GIE 均使能, 系统就会相应产生 SPI 中断 7.14 PWM 中断 当 PWMx 周期计数器溢出, 无论 PWMxIE 处于何种状态,PWMxIF 都被置 1 若 PWMxIE 为 1, 且 PEIE GIE 均使能, 系统就会相应产生 PWM 中断 7.15 多中断操作 在同一时刻, 系统中可能出现多个中断请求 此时, 用户必须根据系统的要求对各中断进行优先权的设置 中断请求标志 IF 由中断事件触发, 当 IF 处于有效值 1 时, 系统并不一定会响应该中断 各中断触发事件如下表所示 : 中断有效触发 T0IF T0 溢出 INTF 由 INTEDG 控制

63 RBIF PORTB 电平变化 RxIF 其他 PORT 口电平变化中断 T2IF T2 的值和 PR2 相同 TXIF/RXIF UART 发生发送接收事件 SPIF SPI 发生发送接收事件 PWMxIF PWMx 周期计数溢出中断 多个中断同时发生时, 需要注意的是 : 首先, 必须预先设定好各中断的优先权 ; 其次, 利用 IE 和 IF 控制系统是否响应该中断 在程序中, 必须对中断控制位和中断请求标志进行检测 例 : 多中断条件下检测中断请求 ORG 0004H GOTO INT_SERVICE INT_SERVICE: ; 保存 STATUS W 和 PCLATH INT0CHK: ; 检查是否有 INT0 中断请求 BCF STATUS,RP0 ;BANK0 BTFSS INTCON,INTE ; 检查是否使能 INT0 中断 GOTO INT0CHK ; 跳到下一个中断 BTFSC INTCON,INTF ; 检查是否有 INT0 中断请求 GOTO INT0 ; 进入 INT0 中断 INTT0CHK: ; 检查是否有 T0 中断请求 BTFSS INTCON,T0IE ; 检查是否使能 T0 中断 GOTO INTT2CHK ; 跳到下一个中断 BTFSC INTCON,T0IF ; 检查是否有 T0 中断请求 GOTO INTT0 ; 进入 T0 中断 INTT2CHK: ; 检查是否有 T2 中断请求 BCF STATUS,RP0 ;BANK0 BTFSS PIE1,T2IE ; 检查是否使能 T2 中断 GOTO INTRBCHK ; 跳到下一个中断 BCF STATUS,RP0 ;BANK0 BTFSC PIR1,T2IF ; 检查是否有 T2 中断请求 GOTO INTT2 ; 进入 T2 中断 INTRBCHK: BTFSS INTCON,RBIE ; 检查是否使能 PB 电平变化中断 GOTO INT_EXIT ; 跳到中断结束 BTFSC INTCON,RBIF ; 检查是否有 PB 电平变化中断请求 GOTO INTRB ; 进入 PB 电平变化中断 INTT2: BCF PIR1,T2IF ;T2 中断处理程序 GOTO INT_EXIT INT_EXIT: RETFIE ; 恢复 STATUS W 和 PCLATH ; 退出中断

64 8 I/O 口 共有六组双向端口 : PORTA 口 PORTB 口 PORTC 口 PORTD 口 PORTE 口 PORTF 口 8.1 I/O 口模式 010h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TRISD TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TRISE TRISE7 TRISE6 TRISE5 TRISE4 TRISE3 TRISE2 TRISE1 TRISE0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TRISF TRISF7 TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值

65 TRISx[7:0]:PORTx[7:0] 的输入输出控制位 1 = 输入状态 0 = 输出状态 注 :1. PORTB5 可设置为开漏输出 08Ch Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ANSELL ANSEL7 ANSEL6 - ANSEL4 ANSEL3 ANSEL2 ANSEL1 ANSEL0 R/W R/W R/W - R/W R/W R/W R/W R/W POR 的值 Dh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ANSELH ANSEL15 ANSEL14 ANSEL13 ANSEL12 ANSEL11 ANSEL10 ANSEL9 ANSEL8 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 ANSEL[15:0]:A/D 引脚数模控制位 1: 模拟模式, 作为模拟信号口, 仅可作为 AD 通道的模拟输入 0: 数字模式, 作为数字输入或输出口 注 : ANSEL 上电初始值为 B xxx1 1111, 即作为模拟输入 无论是否应用到 AD, 均需要在上电后, 对 IO 操作之前按需配置, 否则 IO 口可能无法受控于对应的端口寄存器, 状态将不确定 ANSEL[4:0] 对应 AN4~AN0(PA4~PA0), ANSEL[7:6] 对应 AN7 AN6(PA7 PA6); ANSEL[8] 对应 AN8( 即 PA5); ANSEL[13:9] 对应 AN13~AN9(PB4~PB0), ANSEL[15:14] 对应 AN15 AN14(PB7 PB6) 8.2 I/O 口上拉控制寄存器 028~02Dh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 WPUx WPUx7 WPUx6 WPUx5 WPUx4 WPUx3 WPUx2 WPUx1 WPUx0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x = A B C D E F WPUx[7:0]:PORTx[7:0] 的上拉使能位 1 = 上拉禁止 0 = 上拉使能 078h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 OPTION RBPUB INTEDG T0CS T0SE PSA PS2 PS1 PS0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 bit 7 RBPUB:PORTB 上拉使能位 1 = PORTB 上拉由 WPUB 决定 0 = 使能 PORTB 上拉 ( 此时无论 WPUB 为何值 PORTB 都上拉 ) 注 :1. 注意此处上拉控制寄存器逻辑,0 为使能,1 为禁止 ; 2. I/O 禁止悬空状态, 输入状态需设定内部上拉电阻

66 8.3 I/O 口下拉控制寄存器 034h~039h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 WPDx WPDx7 WPDx6 WPDx5 WPDx4 WPDx3 WPDx2 WPDx1 WPDx0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x = A B C D E F WPDx[7:0]:PORTx[7:0] 的下拉使能位 1 = 下拉禁止 0 = 下拉使能注 :1. 注意此处下拉控制寄存器逻辑,0 为使能,1 为禁止 ; 2. 当端口设置为输出时, 下拉无效 ; 3. 当下拉打开时, 上拉无效 8.4 PORT 驱动控制寄存器 04Dh~051h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 LxEN LxEN7 LxEN6 LxEN5 LxEN4 LxEN3 LxEN2 LxEN1 LxEN0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 X=A/B/C/D/E/F LxEN[7:0]:LxEN[7:0]PORT 口驱动电流控制位 0 = 驱动电流不变 1 = 1/3 源电流及漏电流

67 8.5 I/O 口数据寄存器 01Ch Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PORTA PORTA7 PORTA6 PORTA5 PORTA4 PORTA3 PORTA2 PORTA1 PORTA0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x x x x x x x x 01Dh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PORTB PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 R/W R/W R/W R R/W R/W R/W R/W R/W POR 的值 x x x x x x x x 01Eh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PORTC PORTC7 PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x x x x x x x x 01Fh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PORTD PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x x x x x x x x 020h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PORTE PORTE7 PORTE6 PORTE5 PORTE4 PORTE3 PORTE2 PORTE1 PORTE0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x x x x x x x x 021h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PORTF PORTF7 PORTF6 PORTF5 PORTF4 PORTF3 PORTF2 PORTF1 PORTF0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 x x x x x x x x 例 :PORTA0 做 AD 输入,PORTA[4:1] 做输入,PORTB 口输出 0XFF ; 其他初始化 BCF STATUS,RP0 ;Bank0 MOVLW B ;PA0 为模拟信号口, 其他为数字信号口 MOVWF ANSELL CLRF ANSELH ;PB 为数字口 MOVLW 0xFF MOVWF TRISA ;PA 口作为输入口 CLRF PORTA ; 清空 PORTA

68 TEST1: TEST2: MOVLW 0x00 MOVWF TRISB ; 设置 PB 口为输出 MOVLW 0xFF MOVWF PORTB :PB 口输出高电平 ; 下面访问 PORTA 作为输入检测得到的数据 BTFSS PORTA,1 ; 测试 PORTA1 输入电平 GOTO TEST1 ;PORTA1 检测到低电平 GOTO TEST2 ;PORTA1 检测到高电平 ; 其他程序 8.6 管脚配置寄存器 04Ch Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PORCTR CCPCT SPPCT1 SPPCT0 UAPCT1 UAPCT0 R/W R/W R/W R/W R/W R/W POR 的值 bit[1:0] UAPCT[1:0] UART 管脚配置位 00 = RX 配置在 PORTC3,TX 配置在 PORTC2( 默认 ) 01 = RX 配置在 PORTF4,TX 配置在 PORTF5 10 = RX 配置在 PORTB0,TX 配置在 PORTB1 11 = RX 配置在 PORTD7,TX 配置在 PORTD6 bit[3:2] SPPCT[1:0] SPI 管脚配置位 00 = SS/SCK/MISO/MOSI 配置在 PORTC7/ PORTC6/ PORTC5/ PORTC4( 默认 ) 01 = SS/SCK/MISO/MOSI 配置在 PORTF4/PORTF5/PORTF6/PORTF7 10 = SS/SCK/MISO/MOSI 配置在 PORTB0/ PORTB1/ PORTB2/ PORTB3 11 = SS/SCK/MISO/MOSI 配置在 PORTD7/ PORTD6/ PORTD5/ PORTD4 Bit[4]:CCPCT CCP 管脚配置为 0 = CCP1/CCP2 管脚配置在 PORTB2/PORTB3( 默认 ) 1 = CCP1/CCP2 管脚配置在 PORTA6/PORTA7 注 : 管脚复用功能优先级 :SPI > UART > CCP > IO

69 9 定时器 / 计数器 9.1 看门狗定时器 的看门狗定时器与 Timer0 定时器 / 计数器共用一个预分频器 当 PSA 为 0 时, 看门狗定时器 每 72ms( 典型值 ) 产生一个溢出信号 ; 当 PSA 为 1 时,WDT 溢出时间由预分频器 OPTION[2:0] 设置决定, 具体请参考 9.2 节 Timer0 定时器 / 计数器 看门狗定时器 From Timer0 0 1 M U X 8 位预分频器 8 8 选 1MUX PS2:PS0 PSA WDT 配置字 4 分频器 0 1 To Timer0 MUX PSA WDT 溢出 WDTENS 079h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PCON LVD2EN LVD1EN - WDTENS LVD2F LVD1F POR BOR R/W R/W R/W - R/W R R R/W R/W POR 的值 q q q q bit 4 WDTENS: 硬件看门狗软件使能位 ( 需配置字使能看门狗, 否则该位无效 ) 1 = 软件使能硬件看门狗定时器 0 = 软件屏蔽硬件看门狗定时器 注 : 看门狗的使能逻辑看门狗使能 = 芯片配置字使能 (WDTEN) & 软件使能 (WDTENS) 当系统处于休眠或绿色模式, 看门狗定时器溢出将唤醒 SLEEP 并使其返回高频或低频模式, 程序从 SLEEP 指令下一 条开始执行

70 注 : 1. 对看门狗清零之前, 检查 I/O 口的状态和 RAM 的内容可增强程序的可靠性 ; 2. 不能在中断中对看门狗清零, 否则无法侦测到主程序跑飞的状况 ; 3. 程序中应该只在主程序中有一次清看门狗的动作, 这种架构能够最大限度的发挥看门狗的保护功能 例 : 看门狗在主程序中的应用 MAIN: BCF STATUS,RP0 ; Bank 0 BSF PCON,WDTENS ; 软件使能 WDT ; 检查 IO 状态是否正确 ; 检查 RAM 是否正确 GOTO ERR ; 检查 IO/RAM 出错, 进入出错处理程序 CLRWDT ; 在整个程序中, 仅有一条清狗指令 CALL SUB1 CALL SUB2 GOTO MAIN 例 : 在休眠状态下, 屏蔽看门狗功能, 可以节省系统功耗 BCF STATUS,RP0 ; Bank 0 BCF PCON,WDTENS ; 软件屏蔽看门狗功能 BCF OSCCON,T0OSCEN ; 禁止低频晶体振荡器 SLEEP ; 进入休眠模式 BSF PCON,WDTENS ; 唤醒后, 重新使能看门狗功能 例 : 对看门狗定时器操作, 看门狗定时器使能和清零 BCF STATUS,RP0 ; Bank 0 BSF PCON,WDTENS ; 使能看门狗 CLRWDT ; 看门狗定时器清零 9.2 Timer0 定时器 / 计数器 Timer0 定时器 / 计数器模块具有如下功能 : 8 位可编程定时器 外部事件计数器 绿色模式定时唤醒

71 FCPU PORTB31/T0CKI 数据总线 LOSC 0 1 M U X 0 1 M U X 1 0 M U X 8 T0 寄存器 T0SE T0OSCEN T0CS PSA 溢出时将 T0IF 标志位置 1 看门狗定时器 0 1 M U X 8 位预分频器 8 8 选 1MUX PS2:PS0 PSA WDT 配置字 4 分频器 0 1 MUX PSA 注 :T0CS T0SE PSA 和 PS2:PS0 就是 OPTION[5:0] WDT 溢出 WDTENS 07Ah Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 OSCCON T0OSCEN HXEN SCS R/W R/W R/W R/W POR 的值 q 078h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 OPTION RBPUB INTEDG T0CS T0SE PSA PS2 PS1 PS0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 看门狗定时器与 Timer0 定时器 / 计数器共用一个预分频器, 当 PSA=1 预分频器分配给 WDT 时,Timer0 在所选中时钟源的每个周期递增 ; 当 PSA=0 预分频器分配给 Timer0 时,Timer0 根据 PS[2:0] 值选择的预分 频时钟递增 Timer0 的预分频器不可寻址, 当预分频器分配给 Timer0 时, 对 Timer0 计数寄存器的写操作可以对预 分频器清零 1 Timer0 预分频比选择 PS[2:0] Timer0 预分频比 WDT 预分频比 WDT 溢出时间 ( 典型值 ) : 2 1:1 18ms : 4 1:2 36 ms : 8 1:4 72ms : 16 1:8 144ms : 32 1:16 288ms : 64 1:32 576ms

72 110 1 : 128 1: s : 256 1: s 2 Timer0 工作模式选择 T0CS T0OSCEN T0SE Timer0 工作状态 0 x x 定时器模式, 计数时钟 FCPU, 休眠和绿色模式下停止 计数器模式, 计数时钟 T0CKI, 上升沿计数休眠模式下工作, 溢出中断可唤醒 SLEEP 计数器模式, 计数时钟 T0CKI, 下降沿计数休眠模式下工作, 溢出中断可唤醒 SLEEP 定时唤醒模式, 计数时钟 LOSC, 上升沿计数绿色模式下工作, 溢出中断可唤醒 SLEEP 定时唤醒模式, 计数时钟 LOSC, 下降沿计数绿色模式下工作, 溢出中断可唤醒 SLEEP 注 : Timer0 工作模式的选择需符合上表描述, 选择除上表以外情况可能会造成程序运行混乱, 请谨慎操作 例 :Timer0 工作于定时器模式, 计数时钟为 Fcpu,T0 计满到 FF 后溢出进入中断 MOVLW 0x01 BCF STATUS,RP0 ;Bank0 MOVWF OPTION ; 定时器模式, 分频比为 1:4 MOVLW 0x00 MOVWF T0 ;T0 赋初值 BSF INTCON,T0IE BCF INTCON,T0IF BSF INTCON,GIE T0INT_SERVICE: ; 保存 STATUS W 和 PCLATH BCF STATUS,RP0 ;Bank0 BTFSS INTCON,T0IF ; 检测 T0IF GOTO EXIT_INT ;T0IF = 0, 退出中断 BCF INTCON,T0IF ;T0IF 清零 ;TIMER0 中断服务程序 EXIT_INT: ; 恢复 STATUS W 和 PCLATH RETFIE ; 退出中断

73 9.3 Timer1 定时器 / 计数器 Timer1 定时器 / 计数器模块具有如下功能 : 16 位可编程定时器 外部事件计数器, 可编程选择同步 异步功能 绿色模式定时唤醒 T1ON T1IF T1H T1L EN 0 1 T1CS[1:0] T1SYNC T1CKI 0 LOSC T1OSCEN 1 FOSC FCPU 预分频器 1~256 T1CKPS[3:0] 同步 Timer1 控制寄存器 05Ah Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 T1CON T1CS1 T1CS0 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC - T1ON R/W R/W R/W R/W R/W R/W R/W - R/W POR 的值 Timer1 时钟源选择 T1CS1 T1CS0 T1OSCEN 时钟源 0 0 x 指令时钟 (FCPU) 0 1 x 系统时钟 (Fsys) T1CKI 引脚上的外部时钟 低频系统时钟 注 : Timer1 时钟源的选择需符合上表描述, 选择除上表以外情况会造成程序运行不正常, 请谨慎操作 Timer1 输入时钟预分频比选择 T1CKPS[1:0] Timer1 预分频比 00 1 : : :

74 11 1:8 Timer1 的预分频器不可寻址, 可以通过对 Timer1 计数寄存器写操作将预分频器清零 Timer1 工作模式选择 T1ON T1CS[1:0] T1OSCEN T1SYNC Timer1 工作模式 1 00 x x 定时器模式, 休眠和绿色模式下停止 1 01 x x 定时器模式, 休眠和绿色模式下停止 同步计数器模式, 休眠模式下停止 异步计数器模式, 休眠模式下工作, 溢出中断可唤醒 SLEEP 同步定时唤醒模式, 绿色模式下停止, 溢出中断不能唤醒 SLEEP 异步定时唤醒模式, 绿色模式下工作, 溢出中断可唤醒 SLEEP 注 : 1 T1 为 16 位计时器, 在溢出中断重新赋值时应先 T1H, 后 T1L, 避免 T1L 在操作中的进位被覆盖 ; 清空时则应先 T1L 后 T1H, 避免 T1L 进位意外进入 T1H 造成清空失败 ; 2 Timer1 工作于同步计数器模式和同步定时唤醒模式时, 不能唤醒 SLEEP 或绿色模式 ; 3 Timer1 工作模式的选择需符合上表描述, 选择除上表以外情况可能会造成程序运行混乱, 请谨慎操作 9.4 Timer2 定时器 Timer2 定时器具有 8 位预分频器和 8 位周期寄存器 (PR2),Timer2 定时器的输入时钟为指令时钟 FCPU, 输入时钟通过预分频器产生 Timer2 计数时钟, 当计数到与周期寄存器 (PR2) 的值相同时, 在下一指令周期产生 Timer2 溢出信号, 可根据实际需要选择不同的预分频比及设置周期寄存器的值, 产生不同溢出时间 FCPU 预分频器 1:1 1:2 256 定时器 2 复位 T2CKPS[3:0] 比较器 溢出信号 T2IF T2ON 周期寄存器

75 9.4.1 Timer2 定时器 05Eh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 T2CON - T2CKPS3 T2CKPS2 T2CKPS1 T2CKPS0 T2ON - - R/W - R/W R/W R/W R/W R/W - - POR 的值 bit 2 T2ON: Timer2 模块使能位 1 = 使能 Timer2 模块 0 = 禁止 Timer2 模块 Timer2 具有一个 8 位可编程预分频器, 关闭 Timer2 模块和对 Timer2 计数寄存器或 T2CON 寄存器写操作 都将对预分频器清零 T2CKPS[3:0] Timer2 预分频比 : : : : : : : :128 1xxx 1: Timer2 计数寄存器 05Ch Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 T2 Timer2 计数寄存器 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 Timer2 周期寄存器 05Dh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PR2 Timer2 周期寄存器 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 Timer2 定时器的输入时钟为指令时钟 FCPU, 输入时钟通过预分频器产生 Timer2 计数信号, 当计数 到与周期寄存器 (PR2) 的值相同时产生 Timer2 溢出信号 Timer2 溢出时间 = (PR2 + 1) 预分频比 /Fcpu

76 9.5 CCP 模块 具有 2 个独立的 CCP 模块 CCP1 和 CCP2, 每个 CCP 模块具有三种模式 : 捕捉 比较 PWM CCP 模块的时基由 Timer1 和 Timer2 提供 1 CCP 模块的时基 CCP 模式捕捉比较 PWM 时钟源 Timer1 Timer1 Timer2/Timer1 2 CCPxCON 寄存器 082h 085h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CCPxCON - - DCxB1 DCxB0 CCPxM3 CCPxM2 CCPxM1 CCPxM0 R/W - - R/W R/W R/W R/W R/W R/W POR 的值 bit 5~4 DCxB[1:0]:PWM 占空比最低有效位捕捉模式 : 未使用比较模式 : 未使用 PWM 模式 :PWM 占空比的低 2 位, 高 8 位是 CCPRxL 寄存器 bit 3~0 CCPxM[3:0]:CCPx 模式选择位 0000 = 捕捉 / 比较 /PWM 关闭 ( 复位 CCP 模块 ) 0001 = 未使用 ( 保留 ) 0010 = 比较模式, 匹配时输出翻转电平 (PIRx 寄存器的 CCPxIF 位置 1) 0011 = 未使用 ( 保留 ) 0100 = 捕捉模式, 每个下降沿 0101 = 捕捉模式, 每个上升沿 0110 = 捕捉模式, 每 4 个上升沿 0111 = 捕捉模式, 每 16 个上升沿 1000 = 比较模式, 匹配时输出高电平 (PIRx 寄存器的 CCPxIF 位置 1) 1001 = 比较模式, 匹配时输出低电平 (PIRx 寄存器的 CCPxIF 位置 1) 1010 = 比较模式, 匹配时仅产生软件中断 (PIRx 寄存器的 CCPxIF 位置 1,CCPx 引脚不受影响 ) 1011 = 比较模式, 触发特殊事件 (PIRx 寄存器的 CCPxIF 位置 1,Timer1 计数寄存器复位,CCPx 引脚不受影响 ) 11xx = PWM 模式 捕捉模式 在输入捕捉模式, 适合用于测量引脚输入周期性方波信号的周期 频率和占空比等, 也适合用于测量引脚输入的非周期性矩形方波脉冲信号的宽度 到达时刻或消失时刻等参数 当 CCPx 模块工作于捕捉模式时, 一旦有下列事件在引脚 CCPx 上发生,CCPRx 寄存器立即捕捉下这

77 一时刻的 TMR1 计数值 : 每个下降沿 每个上升沿 每 4 个上升沿 每 16 个上升沿 CCPxCON 寄存器的 CCPxM[3:0] 设置的是预分频器, 关闭 CCP 模块或者 CCP 模块不在捕捉模式, 预分频计数器将会被清零 为避免错误中断, 可在改变预分频比前通过清零 CCPxCON 寄存器来关闭 CCP 模块 在捕捉模式下,Timer1 必须运行在定时器模式或同步计数器模式 使用注意 : 1 在捕捉模式下,CCPx 引脚必须由相应的方向控制器设定为输入方式 ; 2 CCPxCON 寄存器的 CCPxM[3:0] 设置的是预分频器, 关闭 CCP 模块或者 CCP 模块不在捕捉模式, 预分频计数器将会被清零 为避免错误中断, 可在改变预分频比前通过清零 CCPxCON 寄存器来关闭 CCP 模块 如果需要中途改变预分频器的分频比, 建议使用以下程序片段 : BCF STATUS,RP0 ;BANK0 CLRF CCPxCON ; 关闭 CCPx 模块 MOVLW NEW_CAPT_PS ; 选取新的分频比 (1:1 1:4 1:16) MOVWF CCPxCON ; 赋予 CCPxCON 寄存器, 并打开 CCPx 模块 3 当一个捕捉事件发生后, 硬件自动将 CCPx 的中断标志位 CCPxIF 置 1, 表示产生了一次 CCPx 捕捉中断 CCPxIF 位必须用软件重新清零 当 CCPRx 寄存器中的值还未被程序读取, 而又发生了另一个新的捕捉事件时, 原先的值将被新的值覆盖掉 ; 4 在捕捉模式下,Timer1 必须运行在定时器模式或同步计数器模式 CCPx 预分频器 1,4,16 将标志位 CCPx1F 置 1 (PIRx 寄存器 ) CCPRxH CCPRxL 和边沿检测 捕捉 使能 CCPxCON[3:0] T1H T1L 系统时钟 (Fosc) CCPx 引脚上发生变化时,CCPRxH:CCPRxL 捕捉 Timer1 计数寄存器的 16 位值,PIRx 寄存器的中断标 志位 CCPxIF 被置 1 如果在 CCPRxH 和 CCPRxL 寄存器的值被读出之前又发生另一次捕捉, 那么原来的捕 捉值会被新捕捉值覆盖

78 9.5.2 比较模式 输出比较模式, 适用于从引脚上输出不同宽度的矩形正脉冲 负脉冲 延时驱动信号 可控硅驱动信号 步进电机驱动信号等 在比较模式下,CCPRxH:CCPRxL 寄存器对成为了 Timer1 的周期寄存器, 一旦 Timer1 计数寄存器对与 CCPRxH 和 CCPRxL 寄存器对发生匹配, Timer1 计数寄存器对在 Timer1 时钟的下一个上升沿复位, CCPx 模块根据 CCPxM[3:0] 控制位的配置进行相应操作 : CCPx 引脚输出翻转电平 CCPx 引脚输出高电平 CCPx 引脚输出低电平 仅产生软件中断 产生特殊事件触发信号所有比较模式都能产生 CCP 中断 使用注意 : 1 当选择产生特殊事件触发信号时, 如果 ADC 被使能, 则启动一次 ADC 转换 ( 仅限于 CCP1) 在此模式下 CCPx 模块不会对 CCPx 引脚进行控制 ; 2 在比较模式下,CCPx 引脚必须由相应寄存器设定为输出模式, 以便作为比较器的输出端使用 ; 3 应该注意的是, 如果对控制寄存器 CCPxCON 进行重新赋值, 将会迫使 CCPx 引脚输出一个默认的低电平, 而这并非是正常的比较输出结果 ; 4 在比较模式下,Timer1 必须运行在定时器模式或同步计数器模式下 CCPxCON[3:0] 模式选择 CCPx 引脚 将 CCPxIF 中断标志位置 1 (PIRx) CCPRxH 4 CCPRxL Q S R 输出逻辑 匹配 比较器 TRIS 输出使能 特殊事件触发信号 T1H T1L 特殊事件触发信号将 : 清零 T1H 和 T1L 寄存器 不会将 PIR1 寄存器的中断标志位 T1IF 置 1 将 ADON 位置 1 以启动 ADC 转换 ( 仅限 CCP1) PWM 模式 脉宽调制,PWM(pulse width modulation) 输出工作模式, 适用于从引脚上输出脉冲宽度随时可调的 PWM 信号 例如, 实现直流电动机调速 简易 D/A 转换器 步进电机的变频控制等

79 PWM 不选择扩展 一 PWM 时钟源为 Timer2 在 PWM 模式下, 当 Timer2 计数寄存器中的值与 PR2 寄存器中的值发生匹配时, 在下一个计数时钟 Timer2 计数寄存器被清零,CCPx 引脚被置 1( 如果 PWM 占空比为 0%,CCPx 引脚将不会被置 1),PWM 占空比值从 CCPRxL 锁存到 CCPRxH ( 在 Timer2 计数寄存器中的值与 PR2 寄存器中的值发生匹配前, 占空比值不会被锁存到 CCPRxH 中 ) 占空比寄存器 CCPxCON[5:4] CCPRxL CCPRxH (2) CCPx 引脚 比较器 R Q T1/T2 寄存器 (1) 扩展逻辑 S TRIS 比较器 扩展 Bit PR2/PR1L 注 1: 8 位定时器 T2 寄存器与 2 位指令时钟 (FCPU) 或预分频器的 2 位一起构成 10 位时基 2: 在 PWM 模式下,CCPRxH 是只读寄存器 周期 CCPx T2 PR PR CCPRxL:CCPxCON[5:4] 以下公式中, 当芯片配置为 4T 模式时,n=1; 当芯片配置为 2T 模式时,n=1/2-79 -

80 PWM 周期 : PWM 周期 = [(PR2) + 1] 4 n Tsys (Timer2 预分频值 ) 注 : Tsys = 1/Fsys PWM 脉冲宽度 : 脉冲宽度 = (CCPRxL:CCPxCON[5:4]) n Tsys (Timer2 预分频值 ) 注 : Tsys = 1/Fsys 如果脉冲宽度值比周期长, 则指定的 PWM 引脚将保持不变 PWM 占空比 : 占空比 = (CCPRxL:CCPxCON<5:4>) 4(PR2 + 1) 当时钟模式选择配置字选择为 2T 时,PWM 占空比由 CCPRxL 寄存器和 CCPxCON 寄存器的 DCxB[1] 位决定 PWM 分辨率 : 分辨率 = Log[ 4 (PR2 + 1)] Log(2) 位 分辨率是 PR2 寄存器值的函数, 当 PR2 为 255 时 PWM 最大分辨率为 10 位 ( 时钟模式选择配置字选择为 2T 时,PWM 最大分辨率为 9 位 ) 关于 PWM 模块的使用, 需注意 1. 当 PWM:T2CON[1:0] = 0 时,PWM 输出波形恒为低电平, 占空比为 0%; 当 PWM:T2CON[1:0] > 4(PR2+1),PWM 输出波形恒为高电平, 占空比为 100%; 2. 当芯片配置为 2T 模式且 Timer2 的预分频比为 1:1 时, 因需保持 PWM0(T2CON 的 BIT0 位 )= 0, 所以以上公式计算出来的分辨率需减 1 PWM 使用 : 1. 设置相关 TRISB 位为 1, 禁止 CCPx 引脚输出 2. 设置 PWM 周期, 输入 PR2 寄存器值 3. 设置 CCPxCON 寄存器, 将 CCP 模块配置为 PWM 模式 4. 设置 PWM 占空比, 输入 CCPRxL 寄存器和 CCPxCON[5:4] 寄存器值 5. 配置和启动 Timer2 将 PIR1 寄存器的 T2IF 中断标志位清零 设置 T2CON 寄存器的 T2CKPS 位, 选择 Timer2 预分频 将 T2CON 寄存器的 T2ON 置 1, 使能 Timer2-80 -

81 6. 设置 PWM 输出 等待 Timer2 溢出,PIR1 寄存器的 T2IF 位置 1 将 TRISB2 或 TRISB3(TRISA6 或 TRISA7) 位清零, 让 CCPx 引脚输出 7. 如何关闭 PWM 输出 将 TRISB2 或 TRISB3(TRISA6 或 TRISA7) 位置 1, 设引脚输入 设置 CCPxCON 寄存器的 CCPxCON[3:0] 设为 0000, 关 PWM 功能,CCPx 用作 I/O 口 根据需要, 设 PB2 或 PB3(PA6 或 PA7) 输出为高电平或者低电平 例 : 配置 PWM 输出 38K 驱动方波, 采用 4M/4T 模式 ORG 0000H ; 复位向量 GOTO MAIN ORG 0004H ; 中断 RETFIE MAIN: BCF STATUS,RP0 ;BANK0 BCF PCON,WDTENS ;DISABLE WDT MOVLW 0x00 MOVWF PORCTR ; 设置端口映射为 PB2 CLRF OPTION ; 使用高频时钟 BSF TRISB,2 ;CCPx 口设为输入 MOVLW D'25' MOVWF PR2 ; 设置 PR2 为 26μs MOVLW H'0D' MOVWF CCPR1L ; 占空比高 8 位 MOVLW B' ' ; 选 PWM 模块, 填写占空比低两位 MOVWF CCP1CON ; 脉冲宽度 13μs BCF PIR1,T2IF CLRF T2CON ; 分频比 1:1 BSF T2CON,T2ON ; 开 T2 BSF PIE1,T2IE BTFSS PIR1,T2IF ; 等待 T2 溢出 GOTO $-1 BCF PIR1,T2IF ; 清除中断标志 BCF PIE1,T2IE BCF TRISB,2 ; 配置完成,PB2 将持续输出 38K 二 PWM2 时钟源为 Timer1 05Fh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit

82 PR1L Timer1 周期寄存器低字节 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PR1CO N PWM1T 1 PWM1T 0 PWM2T 1 PWM2T 0 T1CKPS 3 T1CKPS 2 PWMPR 1 PR1E N R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 值 Bit0 Bit1 Bit[3-2] PR1EN:Timer1 可设周期使能位 1= Timer1 为可设周期的 8 位 Timer 0= Timer1 为 16 位 Timer PWMPR1:Timer1 提供 PWM 时钟源使能位 1=CCP2 的 PWM 的时钟源由 8 位可设周期的 Timer1 提供 ( 当 PR1EN 有效时, 该位可用 ) 0=CCP2 的 PWM 的时钟源由 Timer2 提供 T1CKPS[3-2]:8 位可设周期 Timer1 的分频比控制位的高两位 T1CKPS[3:0] Timer1 预分频比 : : : : : : : : 128 1xxx 1 : 256 使用注意 : 将寄存器 PR1CON[bit1~bit0] 置 1, 使 PWM2 的时钟源选择位可设周期的 8 位 Timer1, 其他使用操作可参考由 Timer2 提供时钟源的 PWM2 的使用 PWM 选择扩展当 PWM 选择扩展周期时,4 个调制周期为一个输出周期, 此时 PWM 最高可扩展到 12 位 也就是说当选择扩展 PWM 模式时,PWM 将为 4 个波形一个周期, 此时不论你在哪一个波形输出时改变 PWM 的数据存储器都将在下一个周期才生效

83 扩展周期控制寄存器 PR1CON 060h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PR1CO PWM1T PWM1T PWM2T PWM2T T1CKPS T1CKPS PWMPR PR1E N N R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 值 Bit[5-4] PWM2T[1-0]:PWM2 的扩展周期选择位 00: 无扩展周期 01: 扩展周期为 1 10: 扩展周期为 : 扩展周期为 Bit[7-6] PWM1T[1-0]:PWM1 的扩展周期选择位 00: 无扩展周期 01: 扩展周期为 1 10: 扩展周期为 : 扩展周期为

84 10 PWM 模块 10.1 概述 3 组带死区互补 PWM 或 3 路独立 PWM 输出 提供每个 PWM 周期溢出中断, 但中断共用同一向量入口 输出极性可选择 提供出错侦测功能可紧急关闭 PWM 输出 PWM 工作时钟源可设定时钟分频比 PWM 可做定时器 / 计数器使用 集成了一个 12 位 PWM 模块 PWM0 和两个 8 位 PWM1/PWM2, 三个模块各有一个计数器,PWM0 的计数器由 EPWM0 或 EPWM01 来控制, 只要它们中的任何一个使能, 都可以启动计数器, 计数器的时钟源通过 PWM0C 控制寄存器里的 CK0 来选择 如果 EPWM0 使能, 而没有通过功能引脚映射寄存器进行 PWM0 的映射, 这样也不会从芯片管脚上输出 PWM0, 这时候 PWM0 的计数器可以当一个定时器来使用, 当计数器溢出时, 如果中断允许也会产生 PWM 中断 如果 EFLT 置 1,PWM0/PWM1/PWM2 输出和其互补输出可由 FLT 引脚输入信号变化自动关闭 一旦检测到 FLT 引脚输入有效电平,PWM 输出会立即关闭, 但 PWM 内部计数器仍在继续运行, 这样方便在 FLT 引脚错误去除后继续 PWM 输出 在 FLT 输入信号有效期间,FLTS 位无法清除 只有当 FLT 输入信号消失后, 才能软件清除 FLTS 状态位, 此时 PWM 恢复正常输出 PWM 定时器也为 PWM0/1/2 提供 3 个中断源, 在每个 PWM 周期都会产生中断 它们有不同的控制位和标志位 这样用户可以实现每个 PWM 周期中更改下一次循环的周期或占空比 10.2 PWM 相关寄存器 25Eh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWMEN - EFLT EPWM21 EPWM11 EPWM01 EPWM2 EPWM1 EPWM0 R/W - R/W R/W R/W R/W R/W R/W R/W POR 的值 bit 6 EFLT:FLT 引脚配置位 1 = PWM 故障检测输入引脚 0 = 普通 I/O 口或其他功能 bit 5 EPWM21:PWM21 输出控制位 1 = PWM21 输出允许 0 = PWM21 输出禁止, 用作 I/O 功能 bit 4 EPWM11:PWM11 输出控制位 1 = PWM11 输出允许 0 = PWM11 输出禁止, 用作 I/O 功能 bit 3 EPWM01:PWM01 输出控制位 1 = PWM01 输出允许 0 = PWM01 输出禁止, 用作 I/O 功能

85 bit 2 EPWM2:PWM2 输出控制位 1 = PWM2 输出允许 0 = PWM2 输出禁止, 用作 I/O 功能 bit 1 EPWM1:PWM1 输出控制位 1 = PWM1 输出允许 0 = PWM1 输出禁止, 用作 I/O 功能 bit 0 EPWM0:PWM0 输出控制位 1 = PWM0 输出允许 0 = PWM0 输出禁止, 用作 I/O 功能当 PWMEN 清零后,PWM 输出立即关闭 FLT 端口主要用于检测异常信号, 快速关闭 PWM 输出,FLT 探测到故障后, 由硬件执行使 PWM 输出关闭, 所以当故障发生后, 它可以快速响应, 使得 PWM 输出无效以保护连接 PWM 的大功率器件 当使能 FLT 引脚故障检测功能后, 端口禁止任何上下拉电阻功能 如果 EFLT 位清零, 则表示 FLT 端口对 PWM 定时器输出控制无效 25Fh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 FLTM - - FLT2M1 FLT2M1 FLT1M1 FLT1M1 FLT0M1 FLT0M1 R/W - - R/W R/W R/W R/W R/W R/W POR 的值 输出故障时,PWM 口输出状态 : FLTxM[1:0]:PWMx 口 FLT 故障时后, 端口输出状态 00 = PWMx 输出高电平 01 = PWMx0 输出高电平,PWMx1 输出低电平 10 = PWMx0 输出低电平,PWMx1 输出高电平 11 = PWMx 输出低电平 10.3 PWM0 模块 PWM0 控制寄存器 包含一个 12 位 PWM 模块 PWM 模块可以产生周期和占空比分别可调的脉宽调制波形 PWMC 寄存器用于控制 PWM 模块的时钟,PWMPH/L 寄存器用于控制 PWM 输出波形的周期 PWMDH/L 寄存器用于控制 PWM 模块输出波形的占空比 在 PWM 输出允许器件可以修改这三个寄存器, 但在下一个 PWM 周期修改才会起作用 25Dh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM0C - - FLTS FLTC PWM0S1 PWM0S0 CK01 CK00 R/W - - R/W R/W R/W R/W R/W R/W POR 的值 bit 5 bit 4 FLTS:FLT 状态位 1 =PWM 输出关闭, 硬件置 1 0 = PWM 正常状态, 软件清零 FLTC:FLT 引脚配置位

86 bit [3:2] Bit [1:0] 1 = FLT 为高电平时,PWM 输出关闭 0 = FLT 为低电平时,PWM 输出关闭 PWM0S[1:0]:PWM0 和 PWM01 占空比输出模式选择位 11 = PWM0 和 PWM01 均为低有效 10 = PWM0 为低有效,PWM01 为高有效 01 = PWM0 为高有效,PWM01 为低有效 00 = PWM0 和 PWM01 均为高有效 CK0[1:0]:PWM1 输出控制位 11 = Fosc/16 10 = Fosc/8 01 = Fosc/4 00 = Fosc/2 注 :Fosc = 32MHz 注意 : 1 PWM0C 寄存器中的 FLTS 和 FLTC 位控制 PWM0/1/2 定时器, 而寄存器中的 PWM0S,CK0[1:0] 只能影响 12 位 PWM 定时器 2 PWM 输出关闭时,PWM0/1/2 和 PWM01/11/21 输出固定电平 : PWMxS[1:0] =00,PWMx 和 PWMx1 均输出固定低电平 ; PWMxS[1:0] =01,PWMx 输出固定低电平,PWMx1 输出固定高电平 ; PWMxS[1:0] =10,PWMx 输出固定高电平,PWMx1 输出固定低电平 ; PWMxS[1:0] =11,PWMx 和 PWMx1 均输出固定高电平 ; 其中 x=0/1 3 一旦检测到 FLT 引脚输入有效电平,PWM 输出会立即关闭, 但 PWM 内部计数器仍在继续运行 这样方便在 FLT 引脚错误去除后继续 PWM 输出 4 在 FLT 输入信号有效期间,FLTS 位无法清除 只有当 FLT 输入信号消失后, 才能软件清除 FLTS 状态位, 此时 PWM 恢复正常输出 PWM0 周期寄存器 12 位 PWM 周期控制寄存器的高 4 位 25Ch Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM0PH PP0.11 PP0.10 PP0.9 PP0.8 R/W R/W R/W R/W R/W POR 的值 位 PWM 周期控制寄存器的低 8 位 25Bh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM0PL PP0.7 PP0.6 PP0.5 PP0.4 PP0.3 PP0.2 PP0.1 PP0.0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 PWM0 输出周期 =[ PWM0PH:PWM0PL] PWM 时钟源

87 当 [PWM0PH:PWM0PL]=0x00 时 : 如果 PWM0S[1:0] =00, 不管 PWM 占空比为多少,PWM0 输出低电平,PWM01 输出低电平 如果 PWM0S[1:0] =01, 不管 PWM 占空比为多少,PWM0 输出低电平,PWM01 输出高电平 如果 PWM0S[1:0] =10, 不管 PWM 占空比为多少,PWM0 输出高电平,PWM01 输出低电平 如果 PWM0S[1:0] =11, 不管 PWM 占空比为多少,PWM0 输出高电平,PWM01 输出高电平 PWM0 占空比寄存器 12 位 PWM 脉宽控制寄存器的高 4 位 25Ah Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM0DH PD0.11 PD0.10 PD0.9 PD0.8 R/W R/W R/W R/W R/W POR 的值 位 PWM 脉宽控制寄存器的低 8 位 259h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM0DL PD0.7 PD0.6 PD0.5 PD0.4 PD0.3 PD0.2 PD0.1 PD0.0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 PWM 输出占空比 = [PWM0DH:PWM0DL] X PWM 时钟源当 [PWM0PH:PWM0PL] [PWM0DLH:PWM0DL], 如果 PWM0S[1:0] =00,PWM0 输出高电平,PWM01 输出低电平如果 PWM0S[1:0] =01,PWM0 输出低电平,PWM01 输出低电平如果 PWM0S[1:0] =10,PWM0 输出高电平,PWM01 输出高电平如果 PWM0S[1:0] =11,PWM0 输出低电平,PWM01 输出高电平 使用注意事项 : 1 选择 PWM 模块时钟源 2 设置 PWM 周期 / 占空比, 先设置低位, 再设置高位 注意, 即使高位数值不变, 也要重写一次, 否则, 低位的修改无效 3 通过设置 PWM 控制寄存器 (PWM0C) 的 PWM0Sx 位选择 PWM 输出模式 ( 高电平 / 低电平有效 ) 4 通过设置 PWM 控制寄存器 (PWMEN) 的 EPWM0 或 EPWM01 来允许 PWM 上桥或下桥输出 5 如果 PWM 周期或者占空比需要改变, 操作流程如同步骤 2 和步骤 3 说明 修改后的重载计数器的值在下一个周期开始有效 6 注意不要对 PWM 关键寄存器进行误操作

88 10.4 PWM1 模块 PWM1 控制寄存器 257h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM1C PWM1S1 PWM1S0 CK11 CK10 R/W R/W R/W R/W R/W POR 的值 bit [3:2] Bit [1:0] PWM1S[1:0]:PWM1 和 PWM11 占空比输出模式选择位 11 = PWM1 和 PWM11 均为低有效 10 = PWM1 为低有效,PWM11 为高有效 01 = PWM1 为高有效,PWM11 为低有效 00 = PWM1 和 PWM11 均为高有效 CK1[1:0]:PWM1 输出控制位 11 = Fosc/16 10 = Fosc/8 01 = Fosc/4 00 = Fosc/2 注 :Fosc = 32MHz PWM1 周期寄存器 周期控制寄存器 256h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM1P PP1.7 PP1.6 PP1.5 PP1.4 PP1.3 PP1.2 PP1.1 PP1.0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 PWM1 输出周期 =[PWM1P] X PWM 时钟源 当 [PWM1P]=0x00 时 : 如果 PWM1S[1:0] =00, 不管 PWM 占空比为多少,PWM1 输出低电平,PWM11 输出低电平 如果 PWM1S[1:0] =01, 不管 PWM 占空比为多少,PWM1 输出低电平,PWM11 输出高电平 如果 PWM1S[1:0] =10, 不管 PWM 占空比为多少,PWM1 输出高电平,PWM11 输出低电平 如果 PWM1S[1:0] =11, 不管 PWM 占空比为多少,PWM1 输出高电平,PWM11 输出高电平 PWM1 占空比寄存器 脉宽控制寄存器 255h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM1D PD1.7 PD1.6 PD1.5 PD1.4 PD1.3 PD1.2 PD1.1 PD1.0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 PWM 输出占空比 = [PWM0D] X PWM 时钟源当 [PWM1P] [PWM1D], 如果 PWM1S[1:0] =00,PWM1 输出高电平,PWM11 输出低电平

89 如果 PWM1S[1:0] =01,PWM1 输出低电平,PWM11 输出低电平 如果 PWM1S[1:0] =10,PWM1 输出高电平,PWM11 输出高电平 如果 PWM1S[1:0] =11,PWM1 输出低电平,PWM11 输出高电平 使用注意事项 : 1 选择 PWM 模块时钟源 2 设置 PWM 周期 / 占空比, 先设置低位, 再设置高位 注意, 即使高位数值不变, 也要重写一次, 否则, 低位的修改无效 3 通过设置 PWM 控制寄存器 (PWM1C) 的 PWM1Sx 位选择 PWM 输出模式 ( 高电平 / 低电平有效 ) 4 通过设置 PWM 控制寄存器 (PWMEN) 的 EPWM1 或 EPWM01 来允许 PWM 上桥或下桥输出 5 如果 PWM 周期或者占空比需要改变, 操作流程如同步骤 2 和步骤 3 说明 修改后的重载计数器的值在下一个周期开始有效 6 注意不要对 PWM 关键寄存器进行误操作 10.5 PWM2 模块 PWM2 控制寄存器 253h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM2C PWM2S1 PWM2S0 CK21 CK20 R/W R/W R/W R/W R/W POR 的值 bit [3:2] bit [1:0] PWM2S[1:0]:PWM2 和 PWM21 占空比输出模式选择位 11 = PWM1 和 PWM11 均为低有效 10 = PWM2 为低有效,PWM21 为高有效 01 = PWM2 为高有效,PWM21 为低有效 00 = PWM2 和 PWM21 均为高有效 CK2[1:0]:PWM2 输出控制位 11 = Fosc/16 10 = Fosc/8 01 = Fosc/4 00 = Fosc/2 注 :Fosc = RC32MHz PWM2 周期寄存器 周期控制寄存器 252h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM2P PP2.7 PP2.6 PP2.5 PP2.4 PP2.3 PP2.2 PP2.1 PP2.0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 PWM2 输出周期 =[PWM2P] PWM 时钟源

90 当[PWM2P]=0x00时 如果PWM2S[1:0] =00 不管PWM占空比为多少 PWM2输出低电平 PWM21输出低电平 如果PWM2S[1:0] =01 不管PWM占空比为多少 PWM2输出低电平 PWM21输出高电平 如果PWM2S[1:0] =10 不管PWM占空比为多少 PWM2输出高电平 PWM21输出低电平 如果PWM2S[1:0] =11 不管PWM占空比为多少 PWM2输出高电平 PWM21输出高电平 PWM2 占空比寄存器 脉宽控制寄存器 251h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM2D PD2.7 PD2.6 PD2.5 PD2.4 PD2.3 PD2.2 PD2.1 PD2.0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR的值 PWM2输出占空比= [PWM0D] PWM时钟源 当[PWM2P] [PWM2D] 如果PWM2S[1:0] =00 PWM2输出高电平 PWM21输出低电平 如果PWM2S[1:0] =01 PWM2输出低电平 PWM21输出低电平 如果PWM2S[1:0] =10 PWM2输出高电平 PWM21输出高电平 如果PWM2S[1:0] =11 PWM2输出低电平 PWM21输出高电平 使用注意事项 1 选择PWM模块时钟源 2 设置PWM周期/占空比 先设置低位 再设置高位 注意 即使高位数值不变 也要重写一 次 否则 低位的修改无效 3 通过设置PWM控制寄存器(PWM2C)的PWM2Sx位选择PWM输出模式 高电平/低电平有效 4 通过设置PWM控制寄存器(PWMEN)的EPWM2或EPWM21来允许PWM上桥或下桥输出 5 如果PWM周期或者占空比需要改变 操作流程如同步骤2和步骤3说明 修改后的重载计数 器的值在下一个周期开始有效 6 注意不要对PWM关键寄存器进行误操作 10.6 死区时间 一般的 当没有插入死区时间时 PWM01/11/21 输出波形与 PWM0/1/2 输出波形成固定相位关系 当 PWM 控制寄存器中 EPWM01/11/21 位置 1 时 PWM01/11/21 的输出波形硬件自动产生 注意 1 当 PWM0/1/2 被禁止 如果 PWM01/11/21 被允许 则 PWM01/11/21 仍然会有信号输出 2 如果 EFLT 置位 当 FLT 端口有效时 PWM01/11/21 和 PWM0/1/2 都输出固定电平: PWMxS[1:0] =00 PWMx和PWMx1均输出固定低电平 PWMxS[1:0] =01 PWMx输出固定低电平 PWMx1输出固定高电平 PWMxS[1:0] =10 PWMx输出固定高电平 PWMx1输出固定低电平 PWMxS[1:0] =11 PWMx和PWMx1均输出固定高电平

91 其中 x=0/1 PWM 提供死区时间控制功能 通过写 PWM01/11/21 死区时间控制寄存器, 在 PWM0/1/2 和 PWM01/11/21 之间产生死区时间 PWM0/1/2 和 PWM01/11/21 的周期相同 注意 : 1 修改死区时间前, 应禁止 PWM 输出 2 在 PWMn 和 PWMn1 为互补波形输出时, 为了产生死区时间, 请确保 (PWMn 占空比寄存器值 x 分频系数 (2,4,8,16)>PWMn1 的死区时间 (n=0,1,2) 控制 否则,PWM01/11/21 当 PWMnS[1:0]=10 时输出高电平,PWMnS[1:0]=01 时输出低电平 3 PWMDT 寄存器用于控制死区时间, 它的时基为振荡器时钟, 而周期和占空比的时基由 TnCKn[1:0](n=0,1,2) 控制, 最小为 2 个振荡器时钟 PWM0 死区时间控制寄存器 258h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM0DT DT07 DT06 DT05 DT04 DT03 DT02 DT01 DT00 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 PWM1 死区时间控制寄存器 254h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM1DT DT17 DT16 DT15 DT14 DT13 DT12 DT11 DT10 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 PWM2 死区时间控制寄存器 250h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM2DT DT27 DT26 DT25 DT24 DT23 DT22 DT21 DT20 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 PWMn(n=0,1,2) 的死区时间为 PWMnDT Tosc 注 :Tosc = 1/Fosc = 1/32MHz 使用说明 : 当使用 PWM 模块时, 系统时钟必须选择为内部 RC 模式

92 11 模数转换 (ADC) 11.1 ADC 概述 通道 具有一个 12 位转换分辨率的模数转换器, 共有 15 个外部模拟输入通道,1 个内部电池检测 ADC 的等效电路 : VREF+ ADREF-1 ADREF-0 VDD 4.0V 3.0V 2.0V AN VHS[1:0].. AN4 内部 1/4VDD AN6... AN ADON ADEN ADC 12 ADRESH ADRESL CHS[3:0] 11.2 A/D 寄存器 08Ch Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ANSELL ANSEL7 ANSEL6 - ANSEL4 ANSEL3 ANSEL2 ANSEL1 ANSEL0 R/W R/W R/W - R/W R/W R/W R/W R/W POR 值 Dh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ANSELH ANSEL15 ANSEL14 ANSEL13 ANSEL12 ANSEL11 ANSEL10 ANSEL9 ANSEL8 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 值 ANSEL[15:0]:A/D 引脚数模控制位 1: 模拟模式, 作为模拟信号口, 仅可作为 AD 通道的模拟输入 0: 数字模式, 作为数字输入或输出口

93 注 :1 该寄存器上电初始值为 B , 即作为模拟输入 无论是否应用到 AD, 均需要在上电后对 IO 操作之前按需配置, 否则 IO 口可能无法受控于对应的端口寄存器, 状态将不确定 2 ANSEL[4:0] 对应 AN4~AN0(PA4~PA0), ANSEL[7:6] 对应 AN7 AN6(PA7 PA6); ANSEL[8] 对应 AN8( 即 PA5); ANSEL[13:9] 对应 AN13~AN11(PB4~PB2), ANSEL[15:14] 对应 AN15 AN14(PB7 PB6) 11.3 A/D 控制寄存器 094h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADCON0 VHS1 VHS0 CHS3 CHS2 CHS1 CHS0 ADON ADEN R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 的值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADCON1 ADFM ADCS2 ADCS1 ADCS ADREF R/W R/W W W W R/W POR 的值 h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADCLK ADCLK2 ADCLK1 ADCLK0 R/W R/W R/W R/W POR 的值 ADC 模拟通道选择 CHS [3:0] 模拟通道 0000 AN AN AN AN AN 内部 1/4VDD(AN5) 0110 AN AN AN AN AN AN AN AN AN AN15 ADC 参考电压选择

94 ADREF VHS[1:0] 参考电压 0 00 内部 2.0V 0 01 内部 3.0V 0 10 内部 4.0V 0 11 内部 VDD 1 xx 外部参考电压 ADC 数据存放格式选择 ADFM 数据格式 0 ADRESH[7:0]:ADRESL[7:4] 1 ADRESH[1:0]:ADRESL[7:0] 注意 : 1 AN5 为内部 1/4VDD 输入通道, 外部没有输入引脚 可作为电池系统的电池检测器 ; 2 ADC 所采集数据, 当选择存格式为左对齐时,ADC 精度只能为 12 位, 高 8 位存放在 ADRESH 寄存器中, 低 4 位存放在 ADRESL 寄存器高 4 位上 当选择存放格式为右对齐时,ADC 精度只能为 10 位, 高 2 位存放在 ADRESH 的低 2 位上, 低 8 位存放在 ADRESL 上 11.4 AD 转换时间 ADC 转换一位数据所需的时间定义为 TAD, 转换一次完整的 12 位数据需要 14 个 TAD 为确保 ADC 正确转换, 必须满足适当的 TAD 时间 模数转换 TAD 周期 TAD 0 TAD1 TAD 2 TAD3 TAD4 TAD5 TAD 6 TAD7 TAD 8 TAD 9TAD 10 TAD11TAD12 TAD13 将 ADON 位置 1 保持电容与模拟输入断开转换开始 保持电容与模拟输入相连接 ADC 转换结果装入 ADRESH/L 寄存器 ADON 位被清 0 ADIF 位被置 1 保持电容与模拟输入相连接 ADC 转换时间 (TAD) 与工作频率关系表 ADC 转换时间 (TAD) 系统频率 (Fsys):4MHz ADC 时钟源 ADCS[2:0] 典型值 Fsys 000 4us Fsys / us Fsys / us Fsys / us Fsys / us Fsys / us Fsys / us FRC 111 视 RC 的值而定

95 ADCLK 软件配置表 ADCLK[2:0]:AD 时钟选择位 ( 在确定系统频率后, 选择不同的 AD 时钟分频对应的频率 ) 000:AD 转换频率在 4Mhz 及以上 001:AD 转换频率为 1M 010:AD 转换频率为 2M 011/1XX:AD 转换频率为 1M 以下系统频率 /AD 时钟源选择对应的 ADC 时钟选择为对应关系如下表所示 : Fsys( 系统频率 ) 32M 16M 8M 4M 2M 1M ADCS[2:0] AD 分频 ADCLK AD 时钟 x 011/1 xx /11x 011/1 xx xx 011/1 xx /1xx 011/1xx x/1xx 011/1 xx /0xx/1xx 011/1 xx 500K xxx 011/1 xx 软件配置 ADC 转换时钟使用注意说明 : 1 Fsys 为系统时钟,Fosc 为 RC 时钟,Fcpu 为指令时钟 如用户在 OPTION 中选择 4M/2T, 对应 Fosc=8M,Fsys=4M, Fcpu=2M 2 为保证 ADC 转换精度, 在不同 ADC 转换时钟下需配置不同的 ADC 转换时钟个数 : ADC 转换时钟 ADCKCS(ADCKCS[2:0]) 说明 2 Mhz Mhz 001 当 ADC 转换时钟频率为 2Mhzz 时, 需将 ADCKCS[2:0] 配置成 010 当 ADC 转换时钟频率为 1Mhz 时, 需将 ADCKCS[2:0] 配置成 001 <1 Mhz 011/1xx 当 ADC 转换时钟频率小于 1 Mhz 时, 需将

96 ADCKCS[2:0] 配置成 011/1xx(ADCKCS[2:0] 上电 默认为 111) 3 为了加快 ADC 转换速度, 建议选用较快的时钟源 (ADC 转换时钟不能超过 4MHz) 11.5 ADC 使用 1. 配置端口 : 设置 TRISA 寄存器禁止引脚输出 设置 ANSEL 寄存器配置引脚为模拟输入 2. 配置 ADC 模块 : 选择 ADC 转换时钟, 设置 ADCS[2:0] ADCKCS[2:0] 选择 ADC 参考电压, 设置 ADREF ADCON0 选择 ADC 输入通道, 设置 CHS[3:0] 使能 ADC 模块, 设置 ADEN 3. 配置 ADC 中断 ( 可选 ): 清零 ADC 中断标志 使能 ADC 中断 使能外设中断 使能全局中断 4. 等待所需采集时间 5. 设置 ADON 为 1 启动一次 ADC 转换 6. 通过以下方式之一等待 ADC 转换完成 : 查询 ADON 位 等待 ADC 中断 ( 已使能中断 ) 7. 读取 ADC 结果 8. 清零 ADC 中断标志 ( 如果已使能中断则需要 ) 例 : 配置 AD, 结果保留在 Bank0 的 NTCADHIGH NTCADLOW 中 ; 其他程序 AD_TEST: BCF STATUS,RP0 ;Bank0 BSF TRISA,0 ; 设置 AD 口为输入 BCF STATUS,RP0 ;Bank0 MOVLW B' ' ;INNER REF Fsys/32 ADRESH[7:0] ADRESL[7,6] MOVWF ADCON1 MOVLW B' ' MOVWF ADCLK ; 配置 AD 通道 BCF STATUS,RP0 ;Bank0 MOVLW B' ' MOVWF ANSELL ;PA0 作为模拟输入

97 CLRF ANSELH BCF STATUS,RP0 ;Bank0 BCF ADCON0,CHS2 BCF ADCON0,CHS1 BCF ADCON0,CHS0 BCF ADCON0,VHS1 BCF ADCON0,VHS0 ; 参考电压为内部 VDD NOP ; 延时 NOP BSF ADCON0,ADEN ; 使能 ADC CALL DELAY_1 ; 延时, 用户可自行完成 BSF ADCON0,ADON ; 开始一次转换 AD_TEST_WAIT: BTFSC ADCON0,ADON ; 等待转换完成 GOTO AD_TEST_WAIT ; 转换完成, 保存结果 MOVF ADRESH,W ;LOAD THE AD HIGH 8 BITS TO W MOVWF NTCADHIGH ; 客户应用时注意 BANK MOVF ADRESL,W ;LOAD THE AD LOW 8 BITS TO W MOVWF NTCADLOW 注意 : 1 使能 ADEN 后 ( 不是使能 ADON), 系统必须延迟一定的时间 ( 视外部输入信号而定 ) 等待 ADC 电路稳定 ; 2 睡眠或绿色模式下, 禁止 ADC 并将 AD 参考电压设为非内部 VDD 以降低功耗 ; 3 为保证 ADC 转换精度, 芯片 VDD 电压应高于所选 ADC 内部参考电压 (4V/3V/2V)0.7V 以上

98 12 液晶显示驱动(LCD) 12.1 概述 具有一个8 32的液晶驱动模块 而且所有的LCD驱动口都可以用作输入输出口 与 8 16LED驱动模块复用 在SLEEP模式下默认LCD显示 如需在SLEEP模式下关闭LCD 则进入休眠前关闭LCD模块 DISPON置0 退出休眠后再打开LCD模块 DISPON置1 DISPCTR DISPON SLPENB CODE_SLEEP CS[1:0] LP[3:0] SEGx 11 WDT RC 10 T1OSC 01 FOSC/ :1 ~ 1:16 32分频 LCDCK SEG/COM CONTROL COMx LCDVD[3:0] VDD 000 ~ 0.5VDD 111 Bias VLCD1 VLCD2 VLCD3 VLCD4 VLCD5 RLCD[1:0] VSS 注 1. 帧频计算 F=FLCD N /(L 32) L为LP分频 N为1/4duty或1/8duty 2. 1/4Duty帧频范围 16Hz~250Hz 1/8Duty帧频范围 8~125Hz 3. 在选择1/4duty时 建议使用1:4分频 在1/8duty时 使用1:2分频 12.2 LCD 相关寄存器

规格书

规格书 上海芯圣电子股份有限公司 Shanghai Holychip Electronic Co.,Ltd. 数据手册 28 引脚 8 位 AD 型 OTP 单片机 目录 1 产品简述... 5 1.1 特性... 5 1.2 系统框图... 7 1.3 引脚图... 8 1.4 引脚说明... 9 1.5 引脚电路... 12 2 电性参数... 13 2.1 极限参数... 13 2.2 直流特性...

More information

规格书

规格书 上海芯圣电子股份有限公司 Shanghai Holychip Electronic Co.,Ltd. 数据手册 20 引脚 8 位 AD 型 OTP 单片机 目录 1 产品简述... 5 1.1 特性... 5 1.2 系统框图... 7 1.3 引脚图... 8 1.4 引脚电路... 10 2 电性参数... 11 2.1 极限参数... 11 2.2 直流特性... 11 2.3 交流特性...

More information

Microsoft Word - S153B.doc

Microsoft Word - S153B.doc SAM8 P153B SAM8P153B 数据手册 14 引脚 8 位 I/O 型 OTP 单片机 盛明公司保留对以下所有产品在可靠性 功能和设计方面的改进作进一步说明的权利 盛明不承担由本手册所涉及的产品或电路的运用和使用所引起的任何责任, 盛明的产品不是专门设计来应用于外科植入 生命维持和任何盛明产品产生的故障会对个体造成伤害甚至死亡的领域 如果将盛明的产品用于上述领域, 即使这些是由盛明在产品设计和制造上的疏忽引起的,

More information

规格书

规格书 数据手册 64/44/Die 引脚 8 位 LCD 型 OTP 单片机 HOLYCHIP 公司保留对以下所有产品在可靠性 功能和设计方面的改进作进一步说明的权利 HOLYCHIP 不承担由本手册所涉及的产品或电路的运用和使用所引起的任何责任,HOLYCHIP 的产品不是专门设计来应用于外科植入 生命维持和任何 HOLYCHIP 产品产生的故障会对个体造成伤害甚至死亡的领域 如果将 HOLYCHIP

More information

第10章:CCP捕捉/比较/脉宽调制

第10章:CCP捕捉/比较/脉宽调制 第 10 章 :CCP 捕捉 / 比较 / 脉宽调制 CCP 模块功能 捕捉功能模式 比较功能模式 脉宽调制功能 1 CCP 模块功能 PIC 2 捕捉 比较 脉宽调制模块 CCP1 CCP2(Capture/Compare/PWM) 16 CCPR1 CCPR2 模块 功能 功能 TMR1 TMR2 2 CCP 模块功能 CCP 模块 3 模式 : 捕捉 式 比较 式 脉宽调制 式 捕捉功能 捕捉

More information

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

目录 1. 产品简介 功能特性 引脚图 引脚描述 中央处理器 (CPU) 程序存储器 (OTP ROM) 堆栈 数据存储器 (RAM) INDF 寄存器. SQ013L 数据手册 8 引脚 8 位 I/O 型 OTP 单片机 - 1 - 目录 1. 产品简介... 4 1.1 功能特性... 4 1.2 引脚图... 5 1.3 引脚描述... 5 2. 中央处理器 (CPU)... 6 2.1 程序存储器 (OTP ROM)... 6 2.2 堆栈... 6 2.3 数据存储器 (RAM)... 7 2.3.1 INDF 寄存器... 9 2.3.2

More information

PIC16F F MPLAB 08 16F LED 15 LED

PIC16F F MPLAB 08 16F LED 15 LED PIC16F877 PIC16F877 03 16F877 05 06 MPLAB 08 16F877 13 LED 15 LED 17 20 24 2 PIC16F877 PIC16F877 DIP VDD VSS CLOCK CPU :,AND,OR,XOR ROM: CPU ROM RAM: CPU,CPU I/O:CPU, CPU,, 16F877 RAM 512 128 Bank Bank

More information

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

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

More information

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

目录 1 产品简介 功能特性 引脚图 引脚描述 中央处理器 (CPU) 存储器 程序存储器 (OTP ROM) 通用数据存储器 (RAM) 特殊功 SQ015L 数据手册 14 引脚 8 位 I/O 型 OTP 单片机 - 1 - 目录 1 产品简介... 5 1.1 功能特性... 5 1.2 引脚图... 6 1.3 引脚描述... 7 2 中央处理器 (CPU)... 9 2.1 存储器... 9 2.1.1 程序存储器 (OTP ROM)... 9 2.1.2 通用数据存储器 (RAM)... 12 2.1.3 特殊功能寄存器 (SFR)...

More information

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA 1K 4 SH6610C 4 OTP ROM 1K X 16 RAM 88 X 4-24 - 64 2.4V-5.5V - fosc = 30kHz - 4MHz, = 2.4V - 5.5V - fosc = 4MHz - 8MHz, = 4.5V - 5.5V 11 CMOS I/O 4 ( ) 8 / - 0 PORTA.0 ( / / ) - 0 - PORTB ( ) ( ) - 32.768kHz,

More information

文件名

文件名 MICROCHIP PIC10F200/202/204/206 6 8 FLASH PIC10F200 PIC10F202 PIC10F204 PIC10F206 RISC CPU 33 12 8 8 4MHz 1 s 4MHz 1% TM ICSP TM ICD POR DRT WDT RC MCLR I/O /CMOS < 350 A @ 2V 4 MHz 100 na @ 2V FLASH 10000

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

33023A.book(31006A_cn.fm)

33023A.book(31006A_cn.fm) 6 第 6 章存储器构成 存储器构成 目录 本章包括下面一些主要内容 : 6.1 简介...6-2 6.2 程序存储器构成... 6-2 6.3 数据存储器构成... 6-8 6.4 初始化... 6-14 6.5 设计技巧... 6-16 6.6 相关应用笔记... 6-17 6.7 版本历史... 6-18 2004 Microchip Technology Inc. DS31006A_CN 第

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

RESET OSCO OSCI OSC CPU WDTEN RC RESET PRESCALER PORTA (4-BITS) WATCHDOG TIMER Power on PORTB (4-BITS) PORTA [0:3] PORTB [0:3] LPD PORTC (4-BITS) LPDO

RESET OSCO OSCI OSC CPU WDTEN RC RESET PRESCALER PORTA (4-BITS) WATCHDOG TIMER Power on PORTB (4-BITS) PORTA [0:3] PORTB [0:3] LPD PORTC (4-BITS) LPDO 4K / I/O 4 SH6610C 4 OTPROM 4K X 16 SH69P25 MASK ROM 4K X 16 SH69K25 RAM 192 X 4-32 - 160 2.4V - 5.5V 5.0V 22 I/O 4 8 / PORTA-PORTF / - Timer0 - PORTB & PORTC / - 32.768kHz 4MHz - 400kHz 4MHz - RC 400kHz

More information

33023A.book(31005A_cn.fm)

33023A.book(31005A_cn.fm) 第 5 章 CPU 和 ALU 目录 本章包括下面一些主要内容 : 5. 简介...5-2 5.2 指令的一般格式... 5-4 5.3 中央处理单元 (CPU)... 5-4 5.4 指令时钟... 5-4 5.5 算术逻辑单元 (ALU)... 5-5 5.6 状态寄存器... 5-6 5.7 OPTION_REG 寄存器... 5-8 5.8 电源控制寄存器... 5-9 5.9 设计技巧...

More information

2.5 idlocs PIC idloc idloc 0x1234 ; 0x config idloc HEX errorlevel errorlevel Error (Warning) Message HEX 3-14 errorlevel

2.5 idlocs PIC idloc idloc 0x1234 ; 0x config idloc HEX errorlevel errorlevel Error (Warning) Message HEX 3-14 errorlevel 3.2.3 MPASM PIC 35 35 #include include #include MPASM include PIC MPLAB C:\Program Files\MPLAB IDE\MCHIP_Tools PIC.inc 3-01 #include ; PIC16F877A #include math.asm ; 3-01 MPASM MPLAB

More information

DESCRIPTION

DESCRIPTION 8Bit CMOS OTP MCU 器件特性 RISC CPU: 仅需 35 条指令大部分指令仅需一个时钟周期存储器 1K x14 OTP ROM 48 Byte RAM 4 级堆栈时钟系统内置振荡 : Max: 4MHz ±2%.(3.3~5.5V) Max: 2MHz±2%.(2.4~3.3V) RC 振荡 : 外部晶体振荡 : IO 引脚配置输入输出双向 IO 口 : RA RC 单向输入引脚

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

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

33023A.book(31026A_cn.fm)

33023A.book(31026A_cn.fm) 26 第 26 章看门狗定时器与休眠模式 目录 看门狗定时器与休眠模式 本章包括下面一些主要内容 : 26.1 简介... 26-2 26.2 控制寄存器... 26-3 26.3 看门狗定时器 (WDT) 的操作... 26-4 26.4 休眠省电模式... 26-7 26.5 初始化... 26-9 26.6 设计技巧... 26-10 26.7 相关应用笔记... 26-11 26.8 版本历史...

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

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

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

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

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

INCF SEC1,F ; 將 SEC1+1 作查表取回對應數字 MOVF SEC1,W banksel STRING1 banksel PORTB RETFIE run_sec2: MOVF SEC2,W SUBLW.5 GOTO run_min ; 將秒個位數歸 0 CLRF SEC1 MOVL

INCF SEC1,F ; 將 SEC1+1 作查表取回對應數字 MOVF SEC1,W banksel STRING1 banksel PORTB RETFIE run_sec2: MOVF SEC2,W SUBLW.5 GOTO run_min ; 將秒個位數歸 0 CLRF SEC1 MOVL ;************************************************ ; Null Clock REV:1.0 by Jed ; www.xuan.idv.tw ;************************************************ INCLUDE P16F84A.INC LIST P=16F84A,R=Dec CONFIG _XT_OSC&_WDT_OFF

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM3316/3315 MCU 2017.06 FM3316/3315 MCU 2.21 (http://www.fmsh.com/) FM3316/3315 MCU 2.22 ... 3 1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.3.1... 6 2.3.2... 6 2.4... 9 2.5... 10 2.5.1 LQFP64... 10 2.5.2

More information

MC30P01用户手册V1.0

MC30P01用户手册V1.0 WUHAN ESHINE TECHNOLOGY CO., LTD 用户手册 V1.0 CJC-IC 8 位单片机 1 目录 1 产品简介... 4 1.1 产品特性... 4 1.2 系统框图... 5 1.3 引脚排列... 6 1.4 引脚说明... 7 1.5 引脚结构示意图... 7 2 中央处理器... 11 2.1 指令集... 11 2.2 程序存储器 ROM... 11 2.3 用户数据存储器

More information

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

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC LCD PIC 单片机解决方案 集成 LCD 驱动器模块的 PIC 单片机 www.microchip.com/lcd ,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC,

More information

untitled

untitled 计 IC 规 书 2015/09/23 1 13 1.0 内.. 3.. 3 路 图.. 4 说.. 5.. 6.. 7.. 8 LCD.. 9 应 路图..10 标图..11 流 图..12 订单..13 订..13 2015/09/23 2 13 1.0 TCP310 数 计 路 键 选择 /(/ 切换 ) 单 1.5V 关闭 内 压检测 TCP310A1.30 ± 0.05V TCP310B1.25

More information

DS_MM32P021_Ver1.9.0

DS_MM32P021_Ver1.9.0 产品手册 Datasheet MM32P021 32 位基于 ARM Cortex M0 核心的微控制器 版本 :1.9.0 保留不通知的情况下, 更改相关资料的权利 目录 1. 总介... 5 1.1 概述... 5 1.2 产品特性... 5 2. 规格说明... 6 2.1 器件对比... 6 2.2 功能简述... 6 3. 引脚定义... 7 3.1 引脚配置... 7 3.2 引脚描述...

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

SD3101 带 UART 和 I 2 C 的三差分通道计量 SOC 特点 高精度 ADC,24 位数据输出, 输入增益可选 和 16,3 个差分或 5 个伪差分通道, 可测量信号的真有效值 瞬时值和频率 8 位 RISC 低功耗 MCU,49 条指令,6 级堆栈, 在 2.097MHz

SD3101 带 UART 和 I 2 C 的三差分通道计量 SOC 特点 高精度 ADC,24 位数据输出, 输入增益可选 和 16,3 个差分或 5 个伪差分通道, 可测量信号的真有效值 瞬时值和频率 8 位 RISC 低功耗 MCU,49 条指令,6 级堆栈, 在 2.097MHz 带 UART 和 I C 的三差分通道计量 SOC 特点 高精度 ADC, 位数据输出, 输入增益可选 8 和 6, 个差分或 个伪差分通道, 可测量信号的真有效值 瞬时值和频率 8 位 RISC 低功耗 MCU, 条指令,6 级堆栈, 在.0MHz 工作时钟,MCU 部分在.V 工作电压下电流典型值为 00uA;kHz 时钟待机模式下工作电流为.6uA, 休眠模式电流小于 ua 6k Bytes

More information

规格书

规格书 8BIT I/O 型 OTP MCU Version 1.05 2018 年 9 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 数据手册的更改, 恕不另行通知 本公司不承担由本手册所涉及的产品或电路的运用和使用所引起的任何责任, 本公司的产品不是专门设计来应用于外科植入 生命维持和任何本公司产品的故障会对个体造成伤害甚至死亡的领域

More information

<4D F736F F F696E74202D B5A5C6ACBBFAD3EBB5E7D7D3CFB5CDB3C9E8BCC62E707074>

<4D F736F F F696E74202D B5A5C6ACBBFAD3EBB5E7D7D3CFB5CDB3C9E8BCC62E707074> 一. 高性能的 RISC 结构 CPU 1. 哈佛双总线结构程序总线和数据总线独立, 避免了瓶颈现象. 2. RISC 指令集 ( 精简指令集 ) 具有指令 33/35/58 条, 因此易学易用. 3. 指令周期大部分为单周期指令 ( 分支指令除外 ). 4. 执行速度大部分指令周期在 (200ns-1us) PIC17XX 是目前执行速度最快的 8 位单片机 5. 多级硬件堆栈可为 2 8 16

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

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

STC15W4K60S4系列增强型PWM波形发生器应用

STC15W4K60S4系列增强型PWM波形发生器应用 STC15W4K32S4 系列新增 6 通道增强型带死区控制高精度 PWM 波形发生器应用 STC15W4K32S4 系列的单片机集成了一组 ( 各自独立 6 路 ) 增强型的 PWM 波形发生器 PWM 波形发生器内部有一个 15 位的 PWM 计数器供 6 路 PWM 使用, 用户可以设置每路 PWM 的初始电平 另外,PWM 波形发生器为每路 PWM 又设计了两个用于控制波形翻转的计数器 T1/T2,

More information

untitled

untitled 计 IC 规 书 2017/06/19 1 13 1.0 内.. 3.. 3 路 图.. 4 说.. 5.. 6.. 7.. 8 LCD.. 9 应 路图..10 标图..11 流 图..12 订单..13 订..13 2017/06/19 2 13 1.0 TCP316 数 计 路 键 选择 /(/ 切换 ) 单 1.5V 关闭 内 压检测 TCP316A1.30 ± 0.05V TCP316B1.25

More information

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P HT46R/47R/48R/49R 系列 选型指南 HT46R22 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 19 位双向输入 / 输出口 1 个与输入 / 输出口线共用的外部输入 16 位具有 7 级预分频带溢出中断的可编程定时 / 计数器 内置石英晶体或 RC 振荡器 2048 14 位的程序存储器 PROM 64 8 位的数据存储器 RAM 支持发声的

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

41206A.book

41206A.book 数据手册 带 A/D 转换器和 增强型捕捉 / 比较 /PWM 的 8 位闪存单片机 2004 Microchip Technology Inc. 初稿 DS41206A_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM33A0xx MCU 2017. 05 2.0 1 (http://www.fmsh.com/) 2.0 2 ... 3 1... 4 1.1... 4 1.2... 4 1.3... 5 1.3.1... 5 1.3.2... 5 1.4... 8 1.4.1 LQFP100... 8 1.4.2 LQFP80... 9 1.4.3... 9 2... 15 2.1 LQFP100... 15

More information

规格书

规格书 MC31P5120 用户手册 ( 原产品名 MC31P11) SinoMCU 8 位单片机 2018/01/12 上海晟矽微电子股份有限公司 Shanghai SinoMCU Microelectronics Co., Ltd. 本公司保留对产品在可靠性 功能和设计方面的改进作进一步说明的权利 用户手册的更改, 恕不另行通知 目录 1 产品简介... 4 1.1 产品特性... 4 1.2 系统框图...

More information

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

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集 XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 2.400--2.483GHz 世界通用 ISM 频段, 它集成射频收发通路 频率发生器 晶体振荡器 调制解调器等功能模块, 并且支持一对多组网和带 ACK 的通信模式

More information

标题

标题 本章学习目标 PIC16F87X 单片机与其他单片机相比具有一些独特的优点, 采用这些芯片构成的应用开发系统, 不仅可以提供最高的系统可靠性, 而且还能最大限度地减少外围器件, 以降低系统成本和功耗 掌握 PIC16F87X 单片机多功能的配置方式, 对于从事单片机应用开发工程人员来说, 是非常必要的, 同时也为其提供了广阔的选择空间 PIC16F87X 单片机的配置方式包括以下内容 : (1) 振荡器选择

More information

AN579

AN579 深圳市英锐恩科技有限公司 单片机集成方案全方位解决服务商 优质智能电子产品 芯 方案解决商 Microchip 产品用户参考手册 深圳市英锐恩科技有限公司 ENROO-TECH(SHENZHEN)CO.,LTD 中国 深圳市福田区福华路嘉汇新城汇商中心 27 楼 2701 Enroo-Tech Technologies CO., Limited Light-Tech International Limited

More information

规格书

规格书 MC30P6070 用户手册 SinoMCU 8 位单片机 2016/5/31 上海晟矽微电子股份有限公司 Shanghai SinoMCU Microelectronics Co., Ltd. 本公司保留对产品在可靠性 功能和设计方面的改进作进一步说明的权利 用户手册的更改, 恕不另行通知 目录 1 产品简介... 4 1.1 产品特性... 4 1.2 订购信息... 5 1.3 系统框图...

More information

701PIC Introduction to PICMicro MCUs

701PIC Introduction to PICMicro MCUs 701 PIC PICmicro MCU 介绍 PIC16 系列产品的汇编编程 HANDS-ON Microchip Technology Incorporated. All Rights Reserved. 701 PIC PIC MCU - Introduction to Programming 1 日程 讲述部分 讲述 90 分钟 休息 20 分钟 实验部分 1 2 个实验 60 分钟 休息

More information

untitled

untitled EDM12864-GR 1 24 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3 4. -------------------------------------------------------6

More information

PIC单片机16F84的内部硬件资源(一)

PIC单片机16F84的内部硬件资源(一) PIC 单片机 16F84 的内部硬件资源 ( 一 ) 我们已经知道要单片机工作, 就需用汇编语言编制程序 而对某个 PIC 单片机编程时, 还需对选用的 PIC 单片机内部硬件资源有所了解 这里介绍 PIC16F84 单片机的内部结构, 如图 1 所示的框图 由图 1 看出, 其基本组成可分为四个主要部分, 即运算器 ALU 和工作寄存器 W; 程序存储器 ; 数据存储器和输入 / 输出 (I/O)

More information

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

A (QFP-48-12x ) RANGE IF70K AL-OUT AL-SIG VSS CLKFREQ-SEL HR-SET MIN-SET AM/FM-SEL AL-DISP A AL- AM/FM SC361 0 AM/FM 12 CMOS QFP-48-12x12-0.8 FM 150M Hz AM 30 MHz LCD 3 13 1/3 4 32.768kHz FM 10.7 MHz 70 khz AM 455kHz 12 1.8V ~ 3.3V QFP44-10 x10-0.8 A B C D QFP-48-12x12-0.8 QFP-44-10x10-0.8 COB (QFP

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机比较器原理及实现 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系列单片机的比较器内部结 构 STC 单片机比较器结构 从图中可以看出, 比较器正端输入 CMP+ 的输入电压来自单片机的 P5.5

More information

Applications

Applications 概述 FM1905 是 24 点 内存映象和多功能的 LCD 驱动器,FM1905 的软件配置特性使它适用于多种 LCD 应用场合, 包括 LCD 模块和显示子系统 用于连接主控制器和 FM1905 的管脚只有 3 条,FM1905 还有一个节电命令用于降 低系统功耗 特点 工作电压 3.0 ~5.0V 内嵌 256KHz RC 振荡器 可外接 32KHz 晶片或 256KHz 频率源输入 可选 1/2

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 - BL5372_UMAN_V1.1.doc

Microsoft Word - BL5372_UMAN_V1.1.doc 低 功 耗 实 时 时 钟 芯 (RTC)BL5372 用 户 手 册 V1.2 ( 2012.11.12) 上 海 贝 岭 股 份 有 限 公 司 Shanghai Belling Co., Ltd. 1. 概 述 低 功 耗 实 时 时 钟 芯 片 (RTC)BL5372 BL5372 是 一 款 低 功 耗 实 时 时 钟 电 路, 通 过 I 2 C 两 线 接 口 电 路 可 以 与 CPU

More information

untitled

untitled 0755 85286856 0755 82484849 路 4.5V ~5.5V 流 @VDD=5.0V,

More information

Cerris IROS

Cerris IROS 上海海栎创微电子有限公司 CSM212/216/224 数据手册 具有专用电容检测模块的 8 位单片机 Rev: V1.2 www.hynitron.com CSM212/216/224 是一款具有高性能精简指令集且集成电容触控功能的 EERPOM 型 8051 单片机 此单 片机集成有硬件触控 CDC 模块, 可多次编程的 EEPROM 存储器和常用通讯接口, 为各种触摸按键的应用 提供了一种简单而又有效的实现方法

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

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

MDT90P01 4-Bit RISC MCU 使用及注意事项 1. MDT90P01 4-bit RISC MCU PIN MAP: SOT-26 PB0 1 6 PB3 VSS 2 5 VDD PB1 3 4 PB2/RTCC 2. IC 烧入注意事项 : A. 需制作转接座 : Writer

MDT90P01 4-Bit RISC MCU 使用及注意事项 1. MDT90P01 4-bit RISC MCU PIN MAP: SOT-26 PB0 1 6 PB3 VSS 2 5 VDD PB1 3 4 PB2/RTCC 2. IC 烧入注意事项 : A. 需制作转接座 : Writer MT90P0 4-Bit RISC MCU 使用及注意事项 MT90P0 4-bit RISC MCU PIN MAP: SOT-26 PB0 6 PB3 VSS 2 5 V PB 3 4 PB2/RTCC 2 IC 烧入注意事项 : A 需制作转接座 : Writer PIN MAP: V NC PB3 PB2 VSS PB PB0 NC ( 底 ) B 需更改 Writer Firmware WM0

More information

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

目录 1 产品概要 产品特性 芯片模式 订购信息 引脚排列 端口说明 电气特性 极限参数 直流电气特性 交流电气特性 CPU 及 SinoMCU 8 位单片机 MC30P6070 用户手册 V1.4 上海晟矽微电子股份有限公司 Shanghai SinoMCU Microelectronics Co., Ltd. 本公司保留对产品在可靠性 功能和设计方面的改进作进一步说明的权利 本文档的更改, 恕不另行通知 目录 1 产品概要... 4 1.1 产品特性... 4 1.2 芯片模式... 5 1.3 订购信息... 5 1.4

More information

SD3102 带显示驱动 I 2 C 和按键的单差分通道计量 SOC 特点 高精度 ADC,24 位数据输出, 输入增益可选 和 16, 单差分通道, 可测量信号的真有效值和瞬时值 8 位 RISC 低功耗 MCU,49 条指令,6 级堆栈, 在 2.048MHz 工作时钟,MCU 部分

SD3102 带显示驱动 I 2 C 和按键的单差分通道计量 SOC 特点 高精度 ADC,24 位数据输出, 输入增益可选 和 16, 单差分通道, 可测量信号的真有效值和瞬时值 8 位 RISC 低功耗 MCU,49 条指令,6 级堆栈, 在 2.048MHz 工作时钟,MCU 部分 带显示驱动 I C 和按键的单差分通道计量 SOC 特点 高精度 ADC, 位数据输出, 输入增益可选 8 和 6, 单差分通道, 可测量信号的真有效值和瞬时值 8 位 RISC 低功耗 MCU,9 条指令,6 级堆栈, 在.08MHz 工作时钟,MCU 部分在.V 工作电压下电流典型值为 00uA;kHz 时钟待机模式下工作电流为 7.6uA, 休眠模式电流小于 ua 6k Byts OTP 程序存储器,5

More information

41213C.book

41213C.book 数据手册 8 位 CMOS 闪存 单片机系列 2006 Microchip Technology Inc. DS41213C_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前,

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

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

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

基于 ARM Cortex-M0 的 ES32F065x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位 芯片工作电压范围 : 2.2V 5.5V P

基于 ARM Cortex-M0 的 ES32F065x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位 芯片工作电压范围 : 2.2V 5.5V P 32 位 MCU ES32F0654 ES32F0653 产品简介 产品简介 数据手册 参考手册 上海东软载波微电子有限公司 2018-11-20 V1.0 1/22 基于 ARM Cortex-M0 的 ES32F065x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM

More information

untitled

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

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

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7 上海东软载波微电子有限公司 SMART www.essemi.com SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input 06 6 6 HR7PPSC HR7PPSD SOP SOP6 +input 06 6 +input 06 6 6 6 HR7PERB SSOP0 7+input 06 6 6 HR7PESC

More information

Microsoft Word - sim6xF0xC-0225.doc

Microsoft Word - sim6xF0xC-0225.doc 8-pin 内置 EEPROM 增强型八位 FLASH 单片机 技术相关信息 应用范例 -HA0075S MCU 复位电路和振荡电路的应用范例 特性 CPU 特性 工作电压 : f SYS =8MHz:2.2V~5.5V f SYS =12MHz:2.7V~5.5V f SYS =20MHz:4.5V~5.5V V DD =5V, 系统时钟为 20MHz 时, 指令周期为 0.2µs 提供省电模式和唤醒功能,

More information

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

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax) 2018 9 29 龙芯 版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) 010-62546668 (Fax) 010-62600826 阅读指南 龙芯 1C101 处理器数据手册 龙芯 1C101 修订历史 序号 更新日期 版本号

More information

Microsoft PowerPoint - 701_PIC-CHN_Attendee.ppt

Microsoft PowerPoint - 701_PIC-CHN_Attendee.ppt 701 PIC PICmicro MCU 介绍 PIC16 系列产品的汇编编程 HANDS-ON 日程 讲述部分 讲述 90 分钟 休息 20 分钟 实验部分 1 2 个实验 60 分钟 休息 60 分钟 实验部分 2 10 4 个实验 2 小时 休息 20 分钟 讲述部分的内容 架构 存储器 指令集 开发软件 (MPLAB IDE) 实验和演示部分的内容 Labs 在 MPLAB IDE 创建项目

More information

SH69P848A 2K 一次性编程 10 位 ADC 型 4 位单片机 特性 基于 SH6610D 的 10 位 ADC 型 4 位单片机 OTPROM:2K X 16 位 RAM:253 X 4 位 - 61 个系统控制寄存器 个数据存储器 工作电压 : - f OSC = 30kH

SH69P848A 2K 一次性编程 10 位 ADC 型 4 位单片机 特性 基于 SH6610D 的 10 位 ADC 型 4 位单片机 OTPROM:2K X 16 位 RAM:253 X 4 位 - 61 个系统控制寄存器 个数据存储器 工作电压 : - f OSC = 30kH 2K 一次性编程 10 位 ADC 型 4 位单片机 特性 基于 SH6610D 的 10 位 ADC 型 4 位单片机 OTPROM:2K X 16 位 RAM:253 X 4 位 - 61 个系统控制寄存器 - 192 个数据存储器 工作电压 : - f OSC = 30kHz - 4MHz,V DD = 2.4V - 5.5V - f OSC = 4MHz - 10MHz,V DD = 4.5V

More information

D/A DAC ( 1us) (10~20 ) DAC0832 1

D/A DAC ( 1us) (10~20 ) DAC0832 1 D/A DAC0832 8 ( 1us) (10~20 ) DAC0832 1 1. 20 DI7~DI0 ILE 8 8 DAC 8 D/A LE LE & RFB VREF IOUT2 IOUT1 RFB CS WR1 XFER WR2 & & AGND VCC DGND 2 DI7~DI0 ILE & 8 LE 8 DAC LE 8 D/A RFB V REF IOUT2 IOUT1 R FB

More information

untitled

untitled EDM12864-03 : 25-1 : 116600 : (0411)7612956 7632020 7612955 : (0411)7612958 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3

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

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

查询 MDT10P72(BB) 供应商 1. 概述这个 8 位基于 EPROM 微控制器是由完全静态 CMOS 技术设计, 集高速 体积小 低功耗和抗高噪声一体的芯片 内存包括 2K 字节 EPROM 和 128 字节静态 RAM 2. 特点如下是关于软硬件的一些特点 : 完全 CMOS 静态设计

查询 MDT10P72(BB) 供应商 1. 概述这个 8 位基于 EPROM 微控制器是由完全静态 CMOS 技术设计, 集高速 体积小 低功耗和抗高噪声一体的芯片 内存包括 2K 字节 EPROM 和 128 字节静态 RAM 2. 特点如下是关于软硬件的一些特点 : 完全 CMOS 静态设计 查询 供应商 1. 概述这个 8 位基于 EPROM 微控制器是由完全静态 CMOS 技术设计, 集高速 体积小 低功耗和抗高噪声一体的芯片 内存包括 2K 字节 EPROM 和 128 字节静态 RAM 2. 特点如下是关于软硬件的一些特点 : 完全 CMOS 静态设计 8 位数据总线 EPROM 大小 :2K 内部 RAM 大小 :160 字节 (128 通用目的寄存器,32 特殊寄存器 ) 37

More information

MPW 项目简介

MPW 项目简介 概述 TM1621 是内存映象和多功能的 LCD 驱动器,TM1621 的软件配置特性使它适用于多种 LCD 应用场合, 包括 LCD 模块和显示子系统 用于连接主控制器和 TM1621 的管脚只有 4 或 5 条,TM1621 还有一个节电命令用于降低系统功耗 功能特性 工作电压 2.4~ 5.2V 内嵌 256KHz RC 振荡器 可外接 32KHz 晶片或 256KHz 频率源输入 可选 1/2

More information

基于 ARM Cortex-M0 的 ES32F033x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位 芯片工作电压范围 : 2.2V VDD 5.

基于 ARM Cortex-M0 的 ES32F033x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位 芯片工作电压范围 : 2.2V VDD 5. 32 位 MCU ES32F0334 产品简介 产品简介 数据手册 参考手册 上海东软载波微电子有限公司 2018-11-20 V1.0 1/18 基于 ARM Cortex-M0 的 ES32F033x 系列 MCU 内核 ARM 32 位 Cortex-M0 CPU 最高频率可达 48MHz 存储 最大 256K Byte FLASH 存储器 最大 32K Byte SRAM 数据存储电源 复位

More information

SH69P481 4K 12 ADC 4 SH6610D 12 ADC 4 OTPROM: 4K X 16 RAM: 287 X : - fosc = 30kHz - 4MHz, VDD = 2.4V - 5.5V - fosc = 4MHz - 10MHz, VDD = 4.

SH69P481 4K 12 ADC 4 SH6610D 12 ADC 4 OTPROM: 4K X 16 RAM: 287 X : - fosc = 30kHz - 4MHz, VDD = 2.4V - 5.5V - fosc = 4MHz - 10MHz, VDD = 4. 4K 12 ADC 4 SH6610D 12 ADC 4 OTPROM: 4K X 16 RAM: 287 X 4-95 - 192 : - fosc = 30kHz - 4MHz, VDD = 2.4V - 5.5V - fosc = 4MHz - 10MHz, VDD = 4.5V - 5.5V 14 I/O 8 ( 8 / : - / - ( 0, 1 - PORTB/D ( ( / ( -

More information

70046d_cn.book(70055c_cn.fm)

70046d_cn.book(70055c_cn.fm) 第 8 章复位 目录 本章包括下列主题 : 8.1 简介...8-2 8.2 复位时的时钟源选择... 8-5 8.3 POR: 上电复位... 8-5 8.4 外部复位 (EXTR)... 8-7 8.5 软件复位指令 (SWR)... 8-7 8.6 看门狗超时复位 (WDTR)... 8-7 8.7 欠压复位 (BOR)... 8-8 8.8 使用 RCON 状态位... 8-10 8.9 器件复位时间...

More information

MDT10F630/ MDT10F676

MDT10F630/ MDT10F676 MDT10F271 数据手册 ( 版本 V1.2) 1.0 器件概述 8 位 MTP CMOS 单片机 存储器 : MTP 空间 :2K*14 位 可经受 1000 次写操作 SRAM 空间 :128 字节 8 级深硬件堆栈 I/O 引脚配置具有独立方向控制的 11 个 I/O 引脚 :PA 口 5 个 PC 口 6 个一个只能作输入的 PA3 口 高灌 / 拉电流可直接驱动 LED PA 端口引脚电平变化中断

More information

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63>

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63> 实验四 ARM 的 I/O 接口实验 一 实验目的 1. 了解 S3C44B0X 的通用 I/O 接口 2. 掌握 I/0 功能的复用并熟练的配置, 进行编程实验二 实验设备 1. EL-ARM-830 教学实验箱,PentiumII 以上的 PC 机, 仿真器电缆 2. PC 操作系统 WIN98 或 WIN2000 或 WINXP,ARM SDT2.5 或 ADS1.2 集成开发环境, 仿真器驱动程序

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 pnzwzw@163.com 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

, , STC11F01-35C-SOP16 RMB 1.99 STC10F04-35C-LQFP44 R MB 2. 99 , STC12C5A08AD-35C-LQFP44,RMB 7.5 , STC12C5201AD-SOP16,RMB 2.49 STC12C5202AD-LQFP32,RMB 3.99 0.1uF 0.1uF 0.1uF STC 89 E 2 PROM Data Flash

More information

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

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 AUTOMATIC TROLLEY H K Hwang K K Chen J-S Lin S-C Wang M-L Li C-C Lin W-B Lin Dept. Of Electrical Engineering Far East College ABSTRACT This paper proposes an automatic trolley which can move automatically

More information

BJ2C004ANB

BJ2C004ANB 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 ( 定时

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

HS2303-P

HS2303-P 苏州华芯微电子股份有限公司 HuaXin Micro-electronics Co., Ltd HS26P00 单片机 参考手册 目录 1. 概述...1 2. 特征...1 3. 管脚信息...2 3.1 管脚图...2 3.2 管脚说明...3 4. 系统框图...4 5. 存储器结构...5 5.1 程序存储器...5 5.2 数据存储器...6 6. 操作寄存器...7 6.1 PCL( 程序计数器

More information

Microsoft Word - TM1621.doc

Microsoft Word - TM1621.doc 概述 TM1621 是 128 点 内存映象和多功能的 LCD 驱动器,TM1621 的软件配置特性使它适用于多种 LCD 应用场合, 包括 :LCD 模块和显示子系统 用于连接主控制器和 TM1621 的管脚只有 4 或 5 条,TM1621 还有一个节电命令用于降低系统功耗 特性 工作电压 2.4~ 5.2V 内嵌 256KHz RC 振荡器 可外接 32KHz 晶片或 256KHz 频率源输入

More information

DESCRIPTION

DESCRIPTION 集成 12-BIT ADC 的 8 位 MCU 特点 电源和复位 上电复位电路 (POR) 输入 / 输出 4 级可选的欠压复位电路 (BOR) 18 个 I/O 端口, 其中 P2.2 只能开漏输出 8 级可选低压检测 (LVD) 外围设备 LDO 给内核供电, 支持低功耗掉电模式 7 路键盘输入, 可唤醒 PD 模式 看门狗定时器 (WDT) 4 路外部中断输入, 可唤醒 PD 模式 CPU 12

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

DATASHEET SEARCH SITE ==

DATASHEET SEARCH SITE == , STC 89 1280 8/16/32/64k IAP SRAM ISP P0 8 P1 8051 E 2 PROM + P2 IAP STC Data Flash P4.0P4.3 P3 MAX810 I/O P4 A/D UART A / D 3 STC 89 P I I E 2 P 4 S A ROM EMI P P STC 89C51 RC 4K 512 2K STC 89C52 RC

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

一、 概述

一、 概述 概述 FZH119 是一种 LED( 发光二极管显示器 ) 驱动控制与用电路, 内部集成有 MCU 数字接口 数据锁存器 LED 驱动等电路 本产品性能优良, 质量可靠 主要应用于电子产品 LED 显示屏驱动 采用 SOP28 的封装形式 特性说明 采用 CMOS 工艺 显示模式 (8 段 16 位 ) 辉度调节电路 ( 占空比 8 级可调 ) 两线串行接口 (SCLK,DIN) 振荡方式 : 内置

More information

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

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 1/16 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 (@T = 25 C, @Vdd = 3V) VDD 1.8 3.0 3.6 V (1) 0.08 0.3 µa Idd 300 450 500 µa 0.25

More information

, STC11F01-35C-SOP16 RMB 1.99 STC10F04-35C-LQFP44 R MB 2. 99

, STC11F01-35C-SOP16 RMB 1.99 STC10F04-35C-LQFP44 R MB 2. 99 , STC11F01-35C-SOP16 RMB 1.99 STC10F04-35C-LQFP44 R MB 2. 99 , STC12C5A08AD-35C-LQFP44,RMB 7.5 , STC12C5201AD-SOP16,RMB 2.49 STC12C5202AD-LQFP32,RMB 3.99 , , 0.1uF STC 89LE58 RD+ 32K 1280 16K+ 0.1uF

More information