DATASHEET SEARCH SITE | WWW.ALLDATASHEET.COM

Document overview

  • Manufacturer or author: Provided By ALLDATASHEET.COM(FREE DATASHEET DOWNLOAD SITE)
  • PDF pages: 73

Technical content

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 1 页 共 73 页 1 产品简介 TC2711B 的 IHRC 提高到16MHz±2%。产品优秀的高抗干扰性能为家电产品提供最佳的解决方案。  IHRC 性能由16MHz±5%提高到16MHz±2%;  掉电复位性能更加准确  TC2711 的代码可直接用于 TC2711B。可以将 TC2711 的原始 8 档直接编程为 TC2711B,无需在 TC2711 源代码中宣告和重新编译。 1.1 功能特性  存储器配置 OTP ROM 空间:1K*16位。 RAM 空间:64字节。  4 层堆栈缓存器  I/O引脚配置 输入输出双向端口:P0、P4、P5。 单向输入引脚:P0.4,与复位引脚共用。 具有唤醒功能的端口:P0电平触发。 内置上拉电阻端口:P0、P4、P5。 外部中断引脚: P0.0:由寄存器PEDGE控制; P0.1:下降沿触发。  3 级低电压监测系统(VLD) 系统复位,监控系统电源。  5 个中断源 3 个内部中断:TC0、TC1、ADC。 2 个外部中断:INT0、INT1。  强大的指令系统 单时钟系统(1T)。 大部分指令只需要一个时钟周期。 跳转指令JMP可在整个ROM区执行。 调用指令CALL可在整个ROM区执行。 查表指令MOVC可寻址整个ROM区。  5+1通道12 位ADC 5 个外部ADC输入。 一个内部电池检测。  两个8位定时/计数器 TC0:自动装载定时器/计数器/PWM0/Buzzer 输出。 TC1:自动装载定时器/计数器/PWM1/Buzzer 输出。  内置看门狗定时器,其时钟源由内部低速 RC  双时钟系统 外部高速时钟:RC模式,高达10MHz。 外部低速时钟:晶体模式,高达16MHz。 内部高速时钟:RC模式,高达16MHz。 内 部 低 速 时 钟 : RC 模 式 , 16KHz  工作模式 普通模式:高、低速时钟同时工作。 低速模式:只有低速时钟工作。 睡眠模式:高、低速时钟都停止工作。 绿色模式:由TC0周期性的唤醒。  封装模式 PDIP-14 pins。 SOP-14 pins。 特性列表 单片机型号 ROM RAM 堆栈 定时器 I/O ADC 绿色 模式 PWM 唤醒功能 引脚数目 封装形式 TC0 TC1 Buzzer TC2711B 1K*16 64 4 V V 12 5+1ch V 2 5 PDIP-14/SOP-14

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 2 页 共 73 页 1.2 系统结构框图 1.3 引脚配置 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mb er Rev isio nSize B Date: 7 -No v -2 0 1 1 Sh eet o f File: F:\\ 于文洁\\SN8 P2 7 1 1 . d d b Drawn B y : 7 8 P4.4/AIN4 VSSVDD P0.3/XIN P0.2/XOUT P4.3/AIN3 P4.2/AIN2 P4.1/AIN1 P0.4/RST /VPP P5.3/BZ1/PWM1 P5.4/BZ0/PWM0 P0.1/INT 1 P0.0/INT 0 P4.0/AIN0/VREFH

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 3 页 共 73 页 1.4 引脚说明 引脚名称 类型 功能说明 VDD,VSS P 电源输入端 P0.4/RST/VPP I,P P0.4:禁止外部复位时为单向输入引脚,施密特触发,无内置上拉电阻,作普通 输入引脚时,用户需在单片机的P0.4外面串接一个100 欧姆的电阻,电阻要尽可 能的靠近单片机,具有唤醒功能。 RST:系统复位输入引脚,施密特结构,低电平触发,通常保持高电平。 VPP:OTP烧录引脚。 PO.3/XIN I/O P0.3:双向输入/输出引脚,输入模式为施密特触发,内置上拉电阻,具有唤醒功 XIN:使能外部振荡电路(晶体/RC振荡电路)时为振荡信号输入引脚。 P0.2/XOUT I/O P0.2:双向输入/输出引脚,输入模式为施密特触发,内置上拉电阻,具有唤醒功 XOUT:使能外部晶体振荡器时为振荡器输出引脚。 P0[1:0]/INT[1:0] I/O 双向输入/输出引脚,输入模式为施密特触发,内置上拉电阻,具有唤醒功能。 外部中断触发引脚(施密特触发) 。 TC1/TC0事件计数器的信号输入引脚。 P4.0/AIN0/VREFH I/O P4.0:双向输入/输出引脚,非施密特触发,内置上拉电阻。 AIN0:ADC输入通道。 VREFH:ADC参考电压的高电平输入引脚。 P4.[4:1]/AIN[4:1] I/O P4[4:1]:双向输入/输出引脚,非施密特触发,内置上拉电阻。 AIN[4:1]:ADC输入通道。 P5[4:3]/BZ[1:0]/ PWM[1:0] I/O 双向输入/输出引脚,输入模式时为施密特触发,内置上拉电阻 Buzzer输出引脚/PWM输出引脚。 1.5 引脚电路结构图

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 4 页 共 73 页

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 5 页 共 73 页 2 中央处理器(CPU) 2.1 存储器 2.1.1 程序存储器(ROM)  ROM:1K 2.1.1.1 复位向量(0000H) 具有一个字长的系统复位向量(0000H)。 发生上述任一种复位后,程序将从0000H处重新开始执行,系统寄存器也都将恢复为默认值。根据PFLAG 寄存器中的 NT0 和 NPD 标志位的内容可以判断系统复位方式。下面一段程序演示了如何定义 ROM 中的复位向  例:定义复位向量。 ORG 0 ; JMP START ;跳至用户程序。 ORG 10H START ;用户程序起始地址。 … ;用户程序。 ENDP ;程序结束。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 6 页 共 73 页 2.1.1.2 中断向量(0008H) 中断向量地址为0008H。一旦有中断响应,程序计数器PC的当前值就会存入堆栈缓存器并跳转到0008H开 始执行中断服务程序。0008H 处的第一条指令必须是“JMP”或“NOP” 。下面的示例程序说明了如何编写中断服 务程序。 * 注:“PUSH”,“POP”指令用于存储和恢复 ACC/PFLAG,NT0、NTD 不受影响。PUSH/POP 缓存器是唯一 的,且仅有一层。  例:定义中断向量,中断服务程序紧随ORG 8H之后。  例:定义中断向量,中断程序在用户程序之后。 * 注:从上面的程序中容易得出SONiX 的编程规则,有以下几点: 1.地址0000H 的“JMP”指令使程序从头开始执行; 2.地址0008H 是中断向量; 3.用户的程序应该是一个循环。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 7 页 共 73 页 2.1.1.3 查表 在单片机中,对ROM区中的数据进行查找,寄存器Y 指向所找数据地址的中间字节(bit8~bit15), 寄存器 Z 指向所找数据地址的低字节(bit0~bit7) 。执行完MOVC 指令后,所查找数据字节内容被存入ACC 中, 而数据高字节内容被存入R 寄存器。 B0MOV Y ,#TABLE1$M ;设置TABLE1地址高字节。 B0MOV Z,#TABLE1$L ;设置TABLE1地址低字节。 MOVC ;查表,R=00H,ACC=35H。 ;查找下一地址。 INCMS Z JMP @F ;Z 没有溢出。 INCMS Y ;Z 溢出(FFH→00),→Y=Y+1 NOP ; @@: MOVC ;查表,R=51H,ACC=05H。 … ; TABLE1: DW 0035H ;定义数据表(16位)数据。 DW 5105H DW 2012H * 注:当寄存器 Z 溢出(从 0FFH 变为 00H)时,寄存器 Y 并不会自动加 1。因此,Z 溢出时,Y 必须由程序加 1,下面的宏INC_YZ 能够对 Y和 Z寄存器自动处理。  例:宏INC_YZ。 INC_YZ MACRO INCMS Z JMP @F ;没有溢出。 INCMS Y NOP ;没有溢出。 @@: ENDM B0MOV Y ,#TA BLE1$M ;设置TABLE1地址中间字节。 B0MOV Z,#TABLE1$L ;设置TABLE1地址低字节。 MOVC ;查表,R=00H,ACC=35H。 INC_YZ ;查找下一地址数据。 … ;

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 8 页 共 73 页 TABLE1: DW 0035H ;定义数据表(16位)数据。 DW 5105H DW 2012H 下面的程序通过累加器对Y,Z 寄存器进行处理来实现查表功能,但需要特别注意进位时的处理。  例 :由指令B0ADD/ADD 对 Y 和 Z 寄存器加 1。 B0MOV Y ,#TABLE1$M ;设置TABLE1地址中间字节。 B0MOV Z,#TABLE1$L ;设置TABLE1地址低字节。 B0MOV A, BUF ;Z=Z+BUF。 B0ADD Z , A B0BTS1 FC ;检查进位标志。 JMP GETDA TA ;FC=0。 INCMS Y ;FC=1。 NOP GETDA TA: ; MOVC ;存储数据,如果BUF=0,数据为0035H。 ;如果BUF=1,数据=5105H。 ;如果BUF=2,数据=2012H。 TABLE1: DW 0035H ;定义数据表(16位)数据。 DW 5105H DW 2012H 2.1.1.4 跳转表 跳转表能够实现多地址跳转功能。由于PCL 和ACC 的值相加即可得到新的PCL,因此,可以通过对PCL 加上不同的 ACC 值来实现多地址跳转。ACC 值若为 n,PCL+ACC 即表示当前地址加 n,执行完当前指令后 PCL 值还会自加 1,可参考以下范例。如果PCL+ACC 后发生溢出,PCH 则自动加 1。由此得到的新的PC 值再 指向跳转指令列表中新的地址。这样,用户就可以通过修改ACC 的值轻松实现多地址的跳转。 * 注:PCH 只支持 PC 增量运算,而不支持 PC 减量运算。当 PCL+ACC 后如有进位,PCH 的值会自动加 1。 PCH-ACC 后若有借位,PCH 的值将保持不变,用户在设计应用时要加以注意。  例:跳转表。 ORG 0100H ;跳转表从ROM 前端开始 B0ADD PCL,A ;PCL=PCL+ACC,PCL 溢出时PCH 加1。 JMP A0POINT ;ACC=0,跳至A0POINT。 JMP A1 POINT ;ACC=1,跳至A1POINT。 JMP A2POINT ;ACC=2,跳至A2POINT。 JMP A3POINT ;ACC=3,跳至A3POINT。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 9 页 共 73 页 单片机提供一个宏以保证可靠执行跳转表功能,它会自动检测ROM 边界并将跳转表移至适当的位置。但采 用该宏程序会占用部分ROM 空间。 B0MOV A,BUF0 ;“BUF0”从0 至4。 @JMP_A 5 ;列表个数为5 JMP A0POINT ;ACC=0,跳至A0POINT。 JMP A1POINT ;ACC=1,跳至A1POINT。 JMP A2POINT ;ACC=2,跳至A2POINT。 JMP A3POINT ;ACC=3,跳至A3POINT。 如果跳转表恰好位于ROM BANK 边界处(00FFH~0100H) ,宏指令“@JMP_A”将调整跳转表到适当的位 置(0100H)。  例:如果跳转表跨越ROM 边界,将引起程序错误。 @JMP_A MACRO V AL JMP ($|0XFF) ORG ($|0XFF) ENDIF ADD PLC, A ENDM ;编译前 ROM 地址 B0MOV A,BUF0 ;“BUF0”从0 到4。 @JMP_A 5 ;列表个数为5。 00FDH JMP A0POINT ;ACC=0,跳至A0POINT。 JMP A1POINT ;ACC=1,跳至A1POINT。 JMP A2POINT ;ACC=2,跳至A2POINT。 JMP A3POINT ;ACC=3,跳至A3POINT。 ;编译后 ROM 地址 B0MOV A,BUF0 ;“BUF0”从0 到4。 @JMP_A 5 ;列表个数为5。 JMP A0POINT ;ACC=0,跳至A0POINT。 JMP A1POINT ;ACC=1,跳至A1POINT。 JMP A2POINT ;ACC=2,跳至A2POINT。 JMP A3POINT ;ACC=3,跳至A3POINT。

2.1.1.5 CHECKSUM 计算

ROM 的最后一个地址是系统保留区,用户应该在计算Checksum 时跳过该区域。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 10 页 共 73 页 2.1.2 编译选项表(CODE OPTION) 编译选项 内容 功能说明 High_Clk IHRC_16M 高速时钟采用内部 16MHz RC 振荡电路,XIN/XOUT(P0.3/P0.2)为普通的 I/O 引脚。 RC 外部高速时钟振荡器采用廉价的 RC 振荡电路,XOUT(P0.2)为普通的 I/O 引 12M X’tal 外部高速时钟振荡器采用高频晶体/陶瓷振荡器(如12MHz)。 4M X’tal 外部高速时钟振荡器采用标准晶体/陶瓷振荡器(如4MHz)。 Watch_Dog Always_On 时钟开启看门狗定时器,即使在睡眠模式和绿色模式下也处于开启状态。 Enable 开启看门狗定时器,但在睡眠模式和绿色模式下关闭。 Disable 关闭看门狗定时器。 Fcpu Fhosc/1 指令周期=1 个时钟周期,必须关闭杂讯滤波功能。 Fhosc/2 指令周期=2 个时钟周期,必须关闭杂讯滤波功能。 Fhosc/4 指令周期=4 个时钟周期。 Fhosc/8 指令周期=8 个时钟周期。 Fhosc/16 指令周期=16 个时钟周期。 Reset_Pin Reset 使能外部复位引脚。 P04 P0.4 为单向输入引脚,无上拉电阻。 Security Enable ROM 程序加密。 Disable ROM 程序不加密。 Noise_Filter Enable 使能杂讯滤波功能,Fcpu=Fosc/4~ Fosc/16。 Disable 禁止杂讯滤波功能,Fcpu=Fosc/1~ Fosc/16。 LVD LVD_L VDD 低于2.0V 时,系统复位。 LVD_M VDD 低于2.0V 时,系统复位。 PFLAG 寄存器的LVD24 位作为2.4V 低电压监测器。 LVD_H VDD 低于2.4V 时,系统复位。 PFLAG 寄存器的LVD36 位作为3.6V 低电压监测器。 * 注: 1. 在干扰较大的情况下,建议开启杂讯滤波功能,此时 Fcpu=Fosc/4~ Fosc/128 ,并将 Watch_Dog 设置为 “Always_On”; 2. 如果用户定义看门狗为“Always_On” ,编译器会自动开启看门狗定时器; 3. 编译选项Fcpu 仅针对外部高速时钟,在低速模式下Fcpu=Fosc/4。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 11 页 共 73 页 2.1.3 数据存储器(RAM)  RAM: 64 字节 2.1.4 系统寄存器 2.1.4.1 系统寄存器列表 0 1 2 3 4 5 6 7 8 9 A B C D E F C − − − − P4 M P5 M − − INTRQ INTEN OSCM − WDTR TC0R PCL PCH D P0 − − − P4 P5 − − T0M − TC0M TC0C TC1M TC1C TC1R STKP F − − − − − − − − STK3L STK3H STK2L STK2H STK1L STK1H STK0L STK0H 2.1.4.2 系统寄存器说明 R = 工作寄存器和ROM 查表数据缓存器 PFLAG =ROM 页和特殊标志寄存器 VERFH =ADC 参考电压寄存器 ADB =ADC 数据缓存器 PnM =Pn 模式控制寄存器 INTRQ = 中断请求寄存器 OSCM = 振荡模式寄存器 TC0R =TC0 自动装载数据缓存器 Pn =Pn 数据缓存器 TC0M =TC0 模式寄存器 TC1M =TC1 模式寄存器 TC1R =TC1 自动装载实际缓存器 PnUR =Pn 上拉电阻控制寄存器 STK0~STK3 =堆栈寄存器 Y ,Z =专用寄存器,@YZ 间接寻址寄存器,ROM 寻 址寄存器 P4CON =P4 配置控制寄存器 ADM =ADC 模式寄存器 ADR = ADC 精度选择寄存器 PEDGE =P0.0 模式控制寄存器 INTEN =中断使能寄存器 WDTR =看门狗清零寄存器 PCH,PCL =程序计数器 T0M =TC0/TC1 加速和TC0 唤醒功能寄存器

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 12 页 共 73 页 TC0C =TC0 计数寄存器 TC1C =TC1 计数寄存器 STKP =堆栈指针 @YZ =间接寻址寄存器 2.1.4.3 系统寄存器的位定义 地址 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 R/W 注释 082H RBIT7 RBIT6 RBIT5 RBIT4 RBIT3 RBIT2 RBIT1 RBIT0 R/W R 083H ZBIT7 ZBIT6 ZBIT5 ZBIT4 ZBIT3 ZBIT2 ZBIT1 ZBIT0 R/W Z 084H YBIT7 YBIT6 YBIT5 YBIT4 YBIT3 YBIT2 YBIT1 YBIT0 R/W Y 086H NT0 NPD LVD36 LVD24 C DC Z R/W PFLAG 0AEH P4CON4 P4CON3 P4CON2 P4CON1 P4CON0 R/W P4CON 0AFH EVHENB VHS1 VHS2 R/W VREFH 0B1H ADENB ADS EOC GCHS CHS2 CHS1 CHS0 R/W ADM 0B2H ADB11 ADB10 ADB9 ADB8 ADB7 ADB6 ADB5 ADB4 R ADB 0B3H ADCKS1 ADCKS0 ADB3 ADB2 ADB1 ADB0 R/W ADR 0B8H P03M P02M P01M P00M R/W P0M 0BFH P00G1 P00G0 R/W PEDGE 0C4H P44M P43M P42M P41M P40M R/W P4M 0C5H P54M P53M R/W P5M 0C8H ADCIRQ TC1|RQ TC0|RQ T01|RQ T00|RQ R/W INTRQ 0C9H ADCIEN TC1|EN TC0|EN T01|EN T00|EN R/W INTEN 0CAH CPUM1 CPUM0 CLKMD STPHX R/W OSCM 0CCH WDTR7 WDTR6 WDTR5 WDTR4 WDTR3 WDTR2 WDTR1 WDTR0 W WDTR 0CDH TC0R7 TC0R6 TC0R5 TC0R4 TC0R3 TC0R2 TC0R1 TC0R0 W TC0R 0CEH PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 R/W PCL 0CFH PC9 PC8 R/W PCH 0D0H P04 P03 P02 P01 P00 R/W P0 0D4H P44 P43 P42 P41 P40 R/W P4 0D5H P54 P53 R/W P5 0D8H TC1X8 TC0X8 TC0GN R/W T0M 0DAH TC0ENB TC0rate2 TC0rate1 TC0rate0 TC0CKS ALOAD0 TC0OUT PWM0OUT R/W TC0M 0DBH TC0C7 TC0C6 TC0C5 TC0C4 TC0C3 TC0C2 TC0C1 TC0C0 R/W TC0C 0DCH TC1ENB TC1rate2 TC1rate1 TC1rate0 TC1CKS ALOAD1 TC1OUT PWM1OUT R/W TC1M 0DDH TC1C7 TC1C6 TC1C5 TC1C4 TC1C3 TC1C2 TC1C1 TC1C0 R/W TC1C 0DEH TC1R7 TC1R6 TC1R5 TC1R4 TC1R3 TC1R2 TC1R1 TC1R0 W TC1R 0DFH GIE STKPB2 STKPB1 STKPB0 R/W STKP 0E0H P03R P02R P01R P00R W P0UR 0E4H P44R P43R P42R P41R P40R W P4UR 0E5H P54R P54R W P5UR 0E7H @YZ7 @YZ6 @YZ5 @YZ4 @YZ3 @YZ2 @YZ1 @YZ0 R/W @YZ 0F8H S3PC7 S3PC6 S3PC5 S3PC4 S3PC3 S3PC2 S3PC1 S3PC0 R/W STK3L 0F9H S3PC9 S3PC8 R/W STK3H 0FAH S2PC7 S2PC6 S2PC5 S2PC4 S2PC3 S2PC2 S2PC1 S2PC0 R/W STK2L 0FBH S2PC9 S2PC8 R/W STK2H 0FCH S1PC7 S1PC6 S1PC5 S1PC4 S1PC3 S1PC2 S1PC1 S1PC0 R/W STK1L 0FDH S1PC9 S1PC8 R/W STK1H

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 13 页 共 73 页 0FEH S0PC7 S0PC6 S0PC5 S0PC4 S0PC3 S0PC2 S0PC1 S0PC0 R/W STK0L 0FFH S0PC9 S0PC8 R/W STK0H * 注: 1. 所有寄存器的名称在8ASM 编译器中做了宣告; 2. 寄存器中各位的名称已在8ASM 编译器中以“F”为前缀定义过; 2.1.4.4 累加器 8 位数据存储器 ACC 用来执行 ALU 与数据存储器之间数据的传送操作。如果操作结果为零(Z)或有进位 产生(C 或DC) ,程序状态寄存器PFLAG 中相应位会发生变化。 ACC 并不在ARM 中,因此在立即寻址模式中不能用“B0MOV”指令对其进行读写。  例:读/写 ACC。 ;数据写入ACC。 MOV A , #0FH ;读取ACC 中的数据并存入BUF。 MOV BUF , A B0MOV BUF , A ;BUF 中的数据写入ACC。 MOV A , BUF B0MOV A , BUF 系统执行中断操作时,ACC 和 PFLAG 中的数据不会自动存储,用户需通过程序将中断入口处的 ACC 和 PFLAG 中的数据送入存储器进行保存。可通过“PUSH”和“POP”指令对 ACC 和 PFLAG 等系统寄存器进行 存储及恢复。  例:ACC 和工作寄存器中断保护操作。 INT_SERVICE: PUSH ;保存 PFLAG 和ACC。 POP ;恢复 ACC 和PFLAG。 RETI ;推出中断。 2.1.4.5 程序状态寄存器PFLAG 寄存器PFLAG 中包含ALU 运算状态信息、系统复位状态信息和LVD 检测信息,其中,位NT0 和NPD 显 示系统复位状态信息,包括上电复位、LVD 复位、外部复位和看门狗复位;位C、DC 和 Z 显示 ALU 的运算信 息。位LVD24 和 LVD36 显示了单片机供电电压状况。 086H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PFLAG NT0 NPD LVD36 LVD24 − C DC Z

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 14 页 共 73 页 读/写 R/W R/W R R − R/W R/W R/W 复位后 X X 0 0 − 0 0 0 Bit[7:6] NT0,NPD:复位状态标志。 NT0 NPD 复位状态 0 0 看门狗复位 0 1 保留 1 0 LVD 复位 1 1 外部复位 Bit 5 LVD36: 3.6V LVD工作电压标志,LVD 编译选项为LVD_H 时有效。 0 =系统工作电压VDD 超过3.6V,低电压检测器没有工作; 1 =系统工作电压VDD 低于3.6V,说明此时低电压检测器已处于监控状态。 Bit 4 LVD24: 2.4 V LVD 工作电压标志,LVD 编译选项为LVD_M 时有效。 0 =系统工作电压VDD 超过2.4V,低电压检测器没有工作; 1 =系统工作电压VDD 低于2.4V,说明此时低电压检测器已处于监控状态。 Bit 2 C :进位标志。 1= 加法运算后有进位、减法运算没有借位发生或移位后移出逻辑“1”或比较运算的结果≥0; 0= 加法运算后没有进位、减法运算有借位发生或移位后移出逻辑“0”或比较运算的结果<0。 Bit 1 DC :辅助进位标志。 1= 加法运算时低四位有进位,或减法运算后没有向高四位借位; 0= 加法运算时低四位没有进位,或减法运算后有向高四位借位。 Bit 0 Z :零标志。 1= 算术/逻辑/分支运算的结果为零; 1= 算术/逻辑/分支运算的结果非零。 * 注:关于标志位C、DC 和 Z 的更多信息请参阅指令集相关内容。 2.1.4.6 程序计数器 程序计数器PC 是一个10 位二进制程序地址寄存器,分高2 位和低8 位。专门用来存放下一条需要执行指 令的内存地址。通常,程序计数器会随程序中指令的执行自动增加。 若程序执行CALL 和 JMP 指令时,PC 指向特定的地址。 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PC − − − − − − PC9 PC8 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 复位后 − − − − − − 0 0 0 0 0 0 0 0 0 0 PCH PCL

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 15 页 共 73 页  单地址跳转 在单片机里面,有9 条指令(CMPRS、INCS、INCMS、DECS、DECMS、BTS0、BTS1、B0BTS0 和 B0BTS1)可完成单地址跳转功能。如果这些指令执行结果为真,那么PC 值加2 以跳过下一条指令。  多地址跳转 执行JMP 或ADD M,A(M=PCL)指令可实现多地址跳转。执行ADD M,A、ADC M,A 或B0ADD M, A 以 后,若 PCL 溢出,PCH 会自动进位。对于跳转表及其他应用,用户可以通过上述3 条指令计算 PC 的值而不需 要担心PCL 溢出的问题。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 16 页 共 73 页 * 注:PCH 仅支持 PC 的递增运算而不支持递减运算。当 PCL+ACC 执行完 PCL 有进位时,PCH 会自动加 1;但执行 PCL-ACC 有借位发生,PCH 的值会保持不变。

2.1.4.7 Y , Z寄存器

寄存器Y 和 Z 都是8 位缓存器,主要用途如下:  普通工作寄存器;  RAM 数据寻址指针@YZ;  配合指令MOVC 对ROM 数据进行查表。 084H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Y YBIT7 YBIT6 YBIT5 YBIT4 YBIT3 YBIT2 YBIT1 YBIT0 读/写 R/W R/W R/W R/W R/W R/W R/W R/W 复位后 X X X X X X X X 083H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Z ZBIT7 ZBIT6 ZBIT5 ZBIT4 ZBIT3 ZBIT2 ZBIT1 ZBIT0 读/写 R/W R/W R/W R/W R/W R/W R/W R/W 复位后 X X X X X X X X  例:用Y、Z 作为数据指针,访问bank0 中 025H 处的内容。 B0MOV Y ,#00H ;Y 指向RAM bank 0。 B0MOV Z,#25H ;Z 指向25H。 B0MOV A,@YZ ;数据送入ACC。  例:利用数据指针@YZ 对 RAM 数据清零。 B0MOV Y ,#0 ;Y=0,指向bank 0。 B0MOV Z,#7FH ;Z=7FH,RAM 区的最后单元。 CLR_YZ_BUF: CLR @YZ ;@YZ 清零。 DECMS Z ; JMP CLR_YZ_BUF ;不为零。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 17 页 共 73 页 CLR @YZ END_CLR: ;

2.1.4.8 R 寄存器

8 位缓存器R 主要有以下两个功能:  作为工作寄存器使用;  存储执行查表指令后的高字节数据。 (执行MOVC 指令,指定 ROM 单元的高字节数据会被存入 R 寄 存器,而低字节数据则存入ACC。 ) 、 082H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 R RBIT7 RBIT6 RBIT5 RBIT4 RBIT3 RBIT2 RBIT1 RBIT0 读/写 R/W R/W R/W R/W R/W R/W R/W R/W 复位后 X X X X X X X X 2.2 寻址模式 2.2.1 立即寻址 将立即数送入ACC 或指定的 RAM 单元。  例:立即数12H 送入ACC。 MOV A ,#12H  例:立即数12H 送入寄存器R。 B0MOV R ,#12H * 注:立即数寻址中,指定的RAM 单元必须是80H~87H 的工作寄存器。 2.2.2 直接寻址 通过ACC 对RAM 单元数据进行操作。  例:地址12H 处的内容送入ACC。 B0MOV A , 12H  例:ACC 中数据写入RAM 的 12H 单元。 B0MOV 12H , A 2.2.3 间接寻址 通过指针寄存器(Y/Z)访问RAM 数据。  例:用@YZ 实现间接寻址。 B0MOV Y ,#0 ;Y 清零以寻址RAM bank 0。 B0MOV Z,#12H ;设定寄存器地址。 B0MOV A,@YZ

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 18 页 共 73 页 2.3 堆栈 2.3.1 概述 TC2711B 的堆栈缓存器共4 层,程序进入中断或执行CALL 指令时,用来存储程序计数器PC 的值。寄 存器 STKP 为堆栈指针,STKnH 和STKnL 分别是各堆栈缓存器的高、低字节。 2.3.2 堆栈寄存器 堆栈指针STKP 是一个3 位寄存器,存放被访问的堆栈单元地址,10 位数据存储器STKnH 和STKnL 用于 暂存堆栈数据。以上寄存器都位于bank 0。 使用入栈指令 PUSH 和出栈指令 POP 可对堆栈缓存器进行操作。堆栈操作遵循后进先出(LIFO)的原则, 入栈时堆栈指针STKP 的值减1,出栈时STKP 的值加1,这样,STKP 总是指向堆栈缓存器顶层单元。 系统进入中断或执行CALL 指令之前,程序计数器PC 的值被存入堆栈缓存器中进行入栈保护。 0DFH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 STKP GIE − − − − STKPB2 STKPB1 STKPB0 读/写 R/W − − − − R/W R/W R/W 复位后 0 − − − − 1 1 1 Bit [2:0] STKPBn: 堆栈指针(n=0~2)。 Bit 7 GIE :全局中断控制位。(0= 禁止;1= 使能)  例:系统复位时,堆栈指针寄存器内容为默认值,但强烈建议在程序初始部分重新设定,如下面所示: MOV A , #00000111B B0MOV S TKP, A 0F0H~0FFH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 0F0H~0FFH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 STKnL SnPC7 SnPC6 SnPC5 SnPC4 SnPC3 SnPC2 SnPC1 SnPC0

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 19 页 共 73 页 读/写 R/W R/W R/W R/W R/W R/W R/W R/W 复位后 0 0 0 0 0 0 0 0 STKn=STKnH,STKnL(n=3~0)。 2.3.3 堆栈操作举例 执行程序调用指令CALL 和响应中断服务时,堆栈指针STKP 的值减1,指针指向下一个堆栈缓存器。同 时,对程序计数器PC 的内容进行入栈保护。入栈操作如下表所示: 堆栈层数 STKP 缓存器 备注 STKPB2 STKPB1 STKPB0 高字节 低字节 0 1 1 1 保留 保留 − 1 1 1 STK0H STK0L − 2 1 0 1 STK1H STK1L − 3 1 0 0 STK2H STK2L − 4 0 1 1 STK3H STK3L − >4 0 1 0 − − 缓存器已满,错误 对应每个入栈操作,都有一个出栈操作来恢复程序计数器 PC 的值。RETI 指令用于中断服务程序中,RET 用于子程序调用。出栈时,STKP 加1 并指向下一个空闲堆栈缓存器。堆栈恢复操作如下表所示: 堆栈层数 STKP 缓存器 备注 STKPB2 STKPB1 STKPB0 高字节 低字节 4 0 1 1 STK3H STK3L − 3 1 0 0 STK2H STK2L − 2 1 0 1 STK1H STK1L − 1 1 1 0 STK0H STK0L − 0 1 1 1 保留 保留 −

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 20 页 共 73 页 3 复位 3.1 概述 TC2711B 有以下几种复位方式:  上电复位;  看门狗复位;  掉电复位;  外部复位(仅在外部复位引脚处于使能状态) 。 上述任一种复位发生时,所有的系统寄存器恢复默认状态,程序停止运行,同时程序计数器PC 清零。复位 结束后,系统从向量 0000H 处重新开始运行。PFLAG 寄存器的 NT0 和 NPD 两个标志位能够给出系统复位状态 的信息。用户可以编程控制NT0 和NPD,从而控制系统的运行路径。 086H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PFLAG NT0 NPD LVD36 LVD24 − C DC Z 读/写 R/W R/W R R − R/W R/W R/W 复位后 X X 0 0 − 0 0 0 Bit [7:6] NT0 ,NPD: 复位状态标志。 NT0 NPD 复位情况 说明 0 0 看门狗复位 看门狗溢出 0 1 保留 − 1 0 上电及LVD 复位 电源电压低于LVD 检测值 1 1 外部复位 外部复位引脚检测到低电平 任何一种复位情况都需要一定的响应时间,系统提供完善的复位流程以保证复位动作的顺利进行。对于不 同类型的振荡器,完成复位所需要的时间也不同。因此,VDD 的上升速度和不同晶振的起振时间都不固定。RC 振荡器的起振时间最短,晶体振荡器的起振时间则较长。在用户终端使用的过程中,应注意考虑主机对上电复 位时间的要求。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 21 页 共 73 页 3.2 上电复位 上电复位与LVD 操作密切相关。系统上电的过程呈逐渐上升的曲线形式,需要一定时间才能达到正常电平 值。下面给出上电复位的正常时序:  上电:系统检测到电源电压上升并等待其稳定;  外部复位(仅限于外部复位引脚使能状态) :系统检测外部复位引脚状态。如果不为高电平,系统保持复位 状态直到外部复位引脚释放;  系统初始化:所有的系统寄存器被置为初始值;  振荡器开始工作:振荡器开始提供系统时钟;  执行程序 :上电结束,程序开始运行。 3.3 看门狗复位 看门狗复位是系统的一种保护设置。在正常状态下,由程序将看门狗定时器清零。若出错,系统处于未知 状态,看门狗定时器溢出,此时系统复位。看门狗复位后,系统重启进入正常状态。看门狗复位的时序如下:  看门狗定时状态:系统检测看门狗定时器是否溢出,若溢出,则系统复位;  系统初始化:所有的系统寄存器被置为默认状态;  振荡器开始工作:振荡器开始提供系统时钟;  执行程序:上电结束,程序开始运行。 看门狗定时器应注意事项:  对看门狗清零之前,检查I/O 口的状态和RAM 的内容可增强程序的可靠性;  不能在中断中对看门狗清零,否则无法侦测到主程序跑飞的状况;  程序中应该只在主程序中有一次清看门狗的动作,这种架构能够最大限度的发挥看门狗的保护功能。 * 注: 关于看门狗定时器的详细内容,请参阅“看门狗定时器”有关章节。 3.4 掉电复位

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 22 页 共 73 页 3.4.1 概述 掉电复位针对外部因素引起的系统电压跌落情形(例如,干扰或外部负载的变化) ,掉电复位可能会引起 系统工作状态不正常或程序执行错误 。 电压跌落可能会进入系统死区。系统死区意味着电源不能满足系统的最小工作电压要求。上图是一个典型 的掉电复位示意图。图中,VDD 受到严重的干扰,电压值下降的非常低。虚线以上区域系统正常工作,在虚线 以下的区域内,系统进入未知的工作状态,这个区域称作死区。当VDD 跌至 V1 时,系统仍处于正常状态;当 VDD 跌至V2 和 V3 时,系统进入死区,则容易导致出错。以下情况系统可能进入死区: DC 运用中: DC 运用中一般都采用电池供电,当电池电压过低或单片机驱动负载时,系统电压可能跌落并进入死区。这 时,电源不会进一步下降到LVD 检测电压,因此系统维持在死区。 AC 运用中: 系统采用 AC 供电时,DC 电压值受 AC 电源中的噪声影响。当外部负载过高,如驱动马达时,负载动作产 生的干扰也影响到 DC 电源。VDD 若由于受到干扰而跌落至最低工作电压以下时,则系统将有可能进入不稳定 工作状态。 在 AC 运用中,系统上、下电时间都较长。其中,上电时序保护使得系统正常上电,但下电过程却和DC 运 用中情形类似,AC 电源关断后,VDD 电压在缓慢下降的过程中易进入死区。 3.4.2 系统工作电压 为了改善系统掉电复位的性能,首先必须明确系统具有的最低工作电压值。系统最低工作电压与系统执行 速度有关,不同的执行速度下最低工作电压值也不同。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 23 页 共 73 页 如上图所示,系统正常工作电压区域一般高于系统复位电压,同时复位电压由低电压检测( LVD)电平决 定。当系统执行速度提高时,系统最低工作电压也相应提高,但由于系统复位电压是固定的,因此在系统最低 工作电压与系统复位电压之间就会出现一个电压区域,系统不能正常工作,也不会复位,这个区域即为死区。 3.4.3 掉电复位性能改进 如何改善系统复位掉电性能,有以下几点建议:  LVD 复位;  看门狗复位;  降低系统工作速度;  采用外部复位电路(稳压二极管复位电路,电压偏移复位电路,外部IC 复位)。 LVD 复位: 低电压检测(LVD)是单片机内置的掉电复位保护装置,当 VDD 跌落并低于 LVD 检测电压值时,LVD 被

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 24 页 共 73 页 触发,系统复位。不同的单片机有不同的LVD 检测电平,LVD 检测电平值仅为一个电压点,并不能覆盖所有死 区范围。因此采用 LVD 依赖于系统要求和环境状况。电源变化较大时,LVD 能够起到保护作用,如果电源变化 触发 LVD,系统工作仍出错,则LVD 就不能起到保护作用,就需要采用其他复位方法。 LVD 设计为三层结构(2.0V/2.4V/3.6V) ,由LVD 编译选项控制。对于上电复位和掉电复位,2.0V LVD 始 终处于使能状态;2.4V LVD 具有 LVD 复位功能,并能通过标志位显示VDD 状态;3.6V LVD 具有标记功能, 可显示 VDD 的工作状态。LVD 标志功能只是一个低电压检测装置,标志位LVD24 和 LVD36 给出 VDD 的电压 情况。对于低电压检测应用,只需查看 LVD24 和LVD36 的状态即可检测电池状况。 086H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PFLAG NT0 NPD LVD36 LVD24 − C DC Z 读/写 R/W R/W R R − R/W R/W R/W 复位后 X X 0 0 − 0 0 0 Bit 5 LVD36 :3.6V LVD工作电压标志,LVD 编译选项为LVD_H 时有效。 0 = 系统工作电压VDD 超过3.6V,低电压检测器没有工作; 1 = 系统工作电压VDD 低于3.6V,说明此时低电压监测器已处于监控状态。 Bit 4 LVD24 :2.4 V LVD工作电压标志,LVD 编译选项为LVD_M 时有效。 0 = 系统工作电压VDD 超过2.4V,低电压检测器没有工作; 1 = 系统工作电压VDD 低于2.4V,说明此时低电压监测器已处于监控状态。 LVD LVD 编译选项 LVD_L LVD_M LVD_H 2.0V 复位 有效 有效 有效 2.4V 标志 − 有效 − 2.4V 复位 − − 有效 3.6V 标志 − − 有效 LVD_L 如果VDD<2.0V,系统复位; LVD24 和LVD36 标志位无意义。 LVD_M 如果VDD<2.0V,系统复位; LVD24:如果VDD>2.4V,LVD24=0;如果VDD<=2.4V,LVD24=1; LVD36 标志位无意义。 LVD_H 如果VDD<2.4V,系统复位; LVD36:如果VDD>3.6V,LVD36=0;如果VDD<=3.6V,LVD36=1; LVD24 标志位无意义。 * 注: a)LVD 复位结束后,LVD24 和 LVD36 都将被清零; b)LVD 2.4V 和LVD 3.6V检测电平值仅作为设计参考,不能用作芯片工作电压值的精确检测。 看门狗复位: 看门狗定时器用于保证系统正常工作。通常,会在主程序中将看门狗定时器清零,但不要在多个分支程序 中清看门狗。若程序正常运行,看门狗不会复位。当系统进入死区或程序运行出错的时候,看门狗定时器继续 计数直至溢出,系统复位。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 25 页 共 73 页 如果看门狗复位后电源仍处于死区,则系统复位失败,保持复位状态,知道系统工作状态恢复到正常值。 降低系统工作速度: 系统工作速度越快最低工作电压值越高,从而加大工作死区的范围 ,因此降低系统工作速度不失为降低系 统进入死区几率的有效措施。所以,可选择合适的工作速度以避免系统进入死区 ,这个方法需要调整整个程序 使其满足系统要求。 附加外部复位电路: 外部复位也能够完全改善掉电复位性能。有三种外部复位方式可改善掉电复位性能:稳压二极管复位电 路,电压偏移复位电路和外部IC 复位。他们都采用外部复位信号控制单片机可靠复位。 3.5 外部复位 外部复位功能由编译选项“Reset_Pin”控制。将该编译选项置为“Reset” ,可使能外部复位电路。外部复位 引脚为施密特触发结构,低电平有效。复位引脚处于高电平时,系统正常运行。当复位引脚输入低电平信号 时,系统复位。外部复位操作在上电和正常工作模式时有效。需要注意的是,在系统上电完成后,外部复位引 脚必须输入高电平,否则系统将一直保持在复位状态。外部复位的时序如下:  外部复位(当且仅当外部复位引脚为使能状态) :系统检测复位引脚的状态,如果复位引脚不为高电平,则 系统会一直保持在复位状态,直到外部复位结束;  系统初始化:初始化所有的系统寄存器;  振荡器开始工作:振荡器开始提供系统时钟 ;  执行程序:上电结束,程序开始运行。 外部复位可以在上电过程中使系统复位。良好的外部复位电路可以保护系统以免进入未知的工作状态,如 AC 应用中的掉电复位等。 3.6 外部复位电路

3.6.1 RC 复位电路

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 26 页 共 73 页 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mb er Rev isio nSize B Date: 1 0 -No v -2 0 1 1 Sh eet o f File: F:\\ 于文洁\\SN8 P2 7 1 1 \\SN8 P2 7 1 1 . d d bDrawn B y : MCUR2 1 0 0 o hm 4 7 k o hm 0 . 1 uF VDD RST VSS VCC GND 上图为一个由电阻 R1 和电容 C1 组成的基本 RC 复位电路,它在系统上电的过程中能够为复位引脚提供一 个缓慢上升的复位信号。这个复位信号的上升速度低于VDD 的上电速度,为系统提供合理的复位时序,当复位 引脚检测到高电平时,系统复位结束,进入正常工作状态。 * 注: 此RC 复位电路不能解决非正常上电和掉电复位问题。 3.6.2 二极管及 RC 复位电路 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mb er Rev isio nSize B Date: 1 0 -No v -2 0 1 1 Sh eet o f File: F:\\ 于文洁\\SN8 P2 7 1 1 \\SN8 P2 7 1 1 . d d bDrawn B y : MCUR2 1 0 0 o hm 4 7 k o hm 0 . 1 uF VDD RST VSS VCC GND DIOD E 上图中,R1 和 C1 同样是为复位引脚提供输入信号。对于电源异常情况,二极管正向导通使 C1 快速放电 并与VDD 保持一致,避免复位引脚持续高电平、系统无法正常复位。 * 注: “基本RC 复位电路”和“二极管及 RC 复位电路”中的电阻 R2 都是必不可少的限流电阻,以避免复位 引脚 ESD(Electrostatic Discharge)或 EOS(Electrical Over-stress)击穿。 3.6.3 稳压二极管复位电路

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 27 页 共 73 页 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mb er Rev isio nSize B Date: 1 0 -No v -2 0 1 1 Sh eet o f File: F:\\ 于文洁\\SN8 P2 7 1 1 \\SN8 P2 7 1 1 . d d bDrawn B y : MCU 1 0 k o hm 4 0 k o hm VDD RST VSS VCC GND 3 3 k o hm Vz 稳压二极管复位电路是一种简单的 LVD 电路,基本山可以完全解决掉电复位问题。如上图电路中,利用稳 压管的击穿电压作为电路复位检测值,当 VDD 高于“Vz+0.7V”时,三极管集电极输出高电平,单片机正常工 作;当 VDD 低于“Vz+0.7V”时,三极管集电极输出低电平,单片机复位。稳压管规格不同则电路复位检测值 不同,根据电路的要求选择合适的二极管。 3.6.4 电压偏置复位电路 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mb er Rev isio nSize B Date: 1 0 -No v -2 0 1 1 Sh eet o f File: F:\\ 于文洁\\SN8 P2 7 1 1 \\SN8 P2 7 1 1 . d d bDrawn B y : MCU 1 0 k o hm 2 k o hm VDD RST VSS VCC GND 4 7 k o hm 1 0 k o hm 电压偏置复位电路是一种简单的 LVD 电路,基本上可以完全解决掉电复位问题。与稳压二极管复位电路相 比,这种复位电路的检测电压值的精确度有所降低。电路中,R1 和 R2 构成分压电路,当VDD 高于和等于分压 值“0.7Vⅹ(R1+R2)/R1”时,三极管集电极 C 输出高电平,单片机正常工作;VDD 低于“0.7Vⅹ(R1+R2)/R1” 时,集电极C 输出低电平,单片机复位。 对于不同应用需求,选择适当的分压电阻。单片机复位引脚上电压的变化与 VDD 电压变化之间的差值为 0.7V。如果 VDD 跌落并低于复位引脚复位检测值,那么系统将被复位。如果希望提升电路复位电平,可降分压 电阻设置为 R2>R1,并选择 VDD 与集电极之间的结电压高于0.7V。分压电阻 R1 和 R2 在电路中要耗电,此处 的功耗必须计入整个系统的功耗中。 * 注:在电源不稳定或掉电复位的情况下, “稳压二极管复位电路”和“偏压复位电路”能够保护电路在电压跌 落时避免系统出错。当电压跌落至低于复位检测值时,系统将被复位。从而保证系统正常工作。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 28 页 共 73 页 3.6.5 外部 IC 复位 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mb er Rev isio nSize B Date: 1 0 -No v -2 0 1 1 Sh eet o f File: F:\\ 于文洁\\SN8 P2 7 1 1 \\SN8 P2 7 1 1 . d d bDrawn B y : MCU VDD RST VSS VCC GND B yp a s s 0 . 1 u F Reset IC Capacitor RST VDD VSS 外部复位也可以选用IC 进行外部复位,但是这样一来系统成本将会增加。针对不同的应用要求选择适当的 复位 IC,如上图所示外部IC 复位电路,能够有效的降低电源变化对系统的影响。 4 系统时钟 4.1 概述 TC2711B 内带双时钟系统:高速时钟和低速时钟。高速时钟由外部晶振和内置的16MHz RC 振荡电路(I HRC 16KHz)提供,低速时钟由内置的低速RC 振荡电路(ILRC 16KHz @3V ,32KHz @5V)提供。两种时钟都 可作为系统时钟源Fosc,系统工作在低速模式时,Fosc 4 分频后作为一个指令周期。  普通模式(高速时钟) :Fcpu=Fhosc/N,N=1~16,Fcpu 的编译选项决定N 的值。  低速模式(低速时钟) :Fcpu=Flosc/4。 4.2 时钟框图  HOSC:High_Clk 编译选项。  Fhosc:外部高速/内部RC 振荡器时钟频率。  Fosc:系统时钟频率。  Fcpu:指令执行频率。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 29 页 共 73 页

4.3 OSCM 寄存器

寄存器OSCM 控制振荡器的状态和系统的工作模式。 0CAH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 OSCM − − − CPUM1 CPUM0 CLKMD STPHX − 读/写 − − − R/W R/W R/W R/W − 复位后 − − − 0 0 0 0 − Bit 1 STPHX :外部高速振荡器控制位。 0 = 运行; 1 = 停止,内部低速RC 振荡器仍然运行。 Bit 2 CLKMD :系统时钟模式控制位。 0 = 普通(双时钟)模式,高速时钟作为系统时钟; 1 = 低速模式,低速时钟作为系统时钟。 Bit [4:3] CPUM[1:0]:CPU 工作模式控制位。 00 = 普通模式;01 = 睡眠模式;10 = 绿色模式;11 = 系统保留。  例:停止高速振荡器。 B0BSET FSTPHX ;停止外部高速振荡器。 4.4 系统高速时钟 内部 16MHz RC 振荡器都可作为系统高速时钟源,由编译选项“High_Clk”控制。 High_Clk 说明 IHRC 内部 16MHz RC 振荡器作为系统时钟源,XIN 和XOUT 引脚为通用I/O 口。 RC 外部RC 振荡器为系统高速时钟,XOUT 引脚为通用I/O 口。 32K 外部32768Hz 低速振荡器作为系统高速时钟。 12M 外部高速振荡器作为系统高速时钟,典型频率为12MHz。 4M 外部振荡器作为系统高速时钟,典型频率为4MHz。 4.4.1 内部高速 RC 振荡器 编译选项 “IHRC_16M ”和 “IHRC_RTC”控制单片机的内置 RC 高速时钟( 16MHz ) 。若选择 “IHRC_16M” ,则内置16MHz RC 振荡器作为系统时钟源,XIN 和XOUT 引脚作为通用I/O 口。  IHRC:系统高速时钟来自内置16MHz RC 振荡器,XIN/XOUT 引脚作为普通的I/O 引脚。 4.4.2 外部高速时钟 外部高速时钟共三种模式:石英/陶瓷振荡器,RC 及外部时钟源,由编译选项 High_Clk 控制具体模式的 选择。石英/陶瓷振荡器和 RC 振荡器的上升时间各不相同。RC 振荡器的上升时间相对较短。振荡器上升时间与 复位时间的长短密切相关。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 30 页 共 73 页 4.4.2.1 石英/陶瓷振荡器 石英/陶瓷振荡器由 XIN/XOUT 口驱动,对于高速、普通和低速三种不同工作模式,振荡器的驱动电流也不 同。不同的工作模式下,编译选项High_Clk 支持不同的频率条件:12MHz、4MHz 以及32KHz 工作频率。 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mb er Rev isio nSize B Date: 1 1 -No v -2 0 1 1 Sh eet o f File: F:\\ 于文洁\\SN8 P2 7 1 1 \\SN8 P2 7 1 1 . d d bDrawn B y : MCU VCC GND C R Y S T A L C 2 0 p F C 2 0 p F XIN XOUT VDD VSS * 注:上图中,XIN/XOUT/VSS 引脚与石英/陶瓷振荡器以及电容C 之间的距离越近越好。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 31 页 共 73 页

4.4.2.2 RC 振荡器

通过编译选项High_Clk 的设置可控制RC 振荡器的选择,RC 振荡器输出频率最高可达10MHz。改变R 可 改变输出频率的大小,电容C 的最佳容量为50P~100P,引脚XOUT 为通用I/O 口,如下图所示: 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mb er Rev isio nSize B Date: 1 1 -No v -2 0 1 1 Sh eet o f File: F:\\ 于文洁\\SN8 P2 7 1 1 \\SN8 P2 7 1 1 . d d bDrawn B y : MCU VCC GND XIN XOUT VDD VSS C R * 注:外部振荡电路中的GND 必须尽可能的接近单片机的VSS 端口。 4.4.2.3 外部时钟源 单片机可选择外部时钟信号作为系统时钟,由编译选项High_Clk 控制,从XIN 脚送入。 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mb er Rev isio nSize B Date: 1 1 -No v -2 0 1 1 Sh eet o f File: F:\\ 于文洁\\SN8 P2 7 1 1 \\SN8 P2 7 1 1 . d d bDrawn B y : MCU VCC GND XIN XOUT VDD VSS Ex tern al C loc k In put * 注:外部振荡电路中的GND 必须尽可能的接近单片机的VSS 端口。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 32 页 共 73 页 4.5 系统低速时钟 系统低速时钟源即内置的低速振荡器,采用RC 振荡电路。低速时钟的输出频率受系统电压和环境温度的 影响,通常为5V 时输出32KHz,3V 时输出16KHz。输出频率与工作电压之间的关系如下图所示。 低速时钟可作为看门狗定时器的时钟源。由CLKMD 控制系统低速工作模式。  Flosc = 内部低速RC 振荡器(16KHz @3V、32KHz @5V)。  低速模式 Fcpu = Flosc/4。 系统工作在睡眠模式下,可以停止低速RC 振荡器。  例:停止内部低速振荡器。 B0BSET FCOUM0 * 注:不可以单独停止内部低速时钟;由寄存器OSCM 的位 CPUM0 和 CPUM1 的设置决定内部低速时钟的状 4.5.1 系统时钟测试 在设计过程中,用户可通过软件指令周期Fcpu 对系统时钟速度进行测试。  例:外部振荡器的Fcpu 指令周期测试。 B0BSET P0M.0 ;P0.0 置为输出模式以输出Fcpu 的触发信号。 @@: B0BSET P0.0 B0BCLR P0.0 JMP @B * 注:不能直接从XIN 引脚测试RC 振荡频率,因为探针的连接会影响测试的准确性。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 33 页 共 73 页 5 系统工作模式 5.1 概述 TC2711B 可在如下四种工作模式之间进行转换:  普通模式(高速模式) ;  低速模式;  睡眠模式;  绿色模式。 系统模式转换结构图 工作模式说明 工作模式 普通模式 低速模式 绿色模式 睡眠模式 备注 EHOSC 运行 STPHX STPHX 停止 IHRC 运行 STPHX STPHX 停止 ILRC 运行 运行 运行 停止 CPU 指令 执行 执行 停止 停止 TC0 *有效 *有效 *有效 无效 *TC0ENB TC1 *有效 *有效 *有效 无效 *TC1ENB 看门狗定 时器 Watch_Dog 编译 选项控制 Watch_Dog 编译 选项控制 Watch_Dog 编译 选项控制 Watch_Dog 编译 选项控制 参考CODE OPITION 说明 内部中断 全部有效 全部有效 TC1 全部有效 外部中断 全部有效 全部有效 全部有效 全部有效 唤醒功能 − − P0,TC0 P0,复位 EHOSC:外部高速时钟。 IHRC:内部高速时钟(16M RC 振荡器) 。 ILRC:内部低速时钟(3V 时 16K RC 振荡器,5V 时32K 振荡器) 。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 34 页 共 73 页 5.2 系统模式切换  例:系统由普通/低速模式切换进入睡眠模式。 B0BSET FCLKM0 ; * 注:睡眠模式下,仅具有唤醒功能的引脚和复位引脚能够将系统唤醒回到普通模式。  例:系统由普通模式切换进入低速模式。 B0BSET FCLKMD ;CLKMD = 1,系统进入低速模式。 B0BSET ;停止外部高速振荡器。  例:系统由低速模式切换进入普通模式(外部高速振荡器仍然运行) 。 B0BCLR FCLKMD ;  例:系统由低速模式切换进入普通模式(外部高速振荡器停止运行) 。 在外部高速振荡器停止工作的情况下,系统至少需要延迟20ms 才能回到普通运行模式。 B0BCLR FSTPHX ;启动外部高速振荡器。 MOV A ,#54 ;若VDD=5V,内部RC=32KHz 将延迟0.125msⅹ162=20.25ms B0MOV Z,A ;等待外部时钟稳定。 @@: DECMS Z ; JMP @B B0BCLR FCLKMD ;进入普通模式。  例:系统由普通/低速模式切换进入绿色模式。 B0BSET FCPUUM1 ; * 注:绿色模式下如果禁止 TC0 的唤醒功能,则只有具有唤醒功能的引脚和复位引脚可以将系统唤醒(具有唤 醒功能的引脚将系统返回到上一个工作模式,复位引脚将系统返回到普通模式) 。  例:系统由普通/低速模式切换进入绿色模式,开启TC0 的唤醒功能。 ;使能TC0 的唤醒功能。 B0BCLR FTC0IEN ;禁止TC0 中断。 B0BCLR FTC0ENB ;禁止TC0 定时器。 MOV A,#20H ; B0BMOV TC0 M,A ;设置TC0 时钟 = Fcpu/64。 MOV A , #64H B0BMOV TC0C,A ;设置TC0C=64H(TC0 间隔时间 = 10ms)。 B0BCLR FTC0IEN ;禁止TC0 中断。 B0BCLR FTC0IRQ ;清TC0 中断请求标志。 B0BSET FTC0GN ;开启TC0 的唤醒功能。 B0BSET FTC0ENB ;开启TC0 定时器。 ;进入绿色模式。 B0BCLR FCPUM0 ; B0BSET FCPUM1 * 注:TC0 和具有唤醒功能的引脚都可以将系统从绿色模式唤醒返回到上一个工作模式,TC0 的唤醒功能由程 序控制,TC0GN 必须置1。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 35 页 共 73 页 0D8H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 T0M − − − − TC1X8 TC0X8 TC0GN − 读/写 − − − − R/W R/W R/W − Bit 1 TC0GN: TC0 绿色模式下唤醒功能控制位。 0 = 禁止; 1 = 使能。 5.3 唤醒时间 5.3.1 概述 在绿色模式和睡眠模式下,系统并不执行程序指令,唤醒触发信号能够将处于睡眠状态的系统唤醒到普通 模式或低速模式。这里的唤醒触发信号包括外部触发信号(P0 引脚的电平变化)和内部触发信号(TC0 溢出信 号) 。  从睡眠模式唤醒后只能进入普通模式,且将其唤醒的触发只能是外部触发信号;  由绿色模式唤醒回到系统前一工作模式(普通模式或低速模式)可以用外部触发或者内部触发。 5.3.2 唤醒时间 系统进入睡眠模式后,高速时钟是处于停止状态的。把系统从睡眠模式下唤醒时,单片机需要等待2048 个 高速振荡器时钟周期以使振荡电路进入稳定工作状态,等待的这一段时间就成为唤醒时间。唤醒时间结束后, 系统才进入到普通模式。 * 注:将系统从绿色模式中唤醒是不需要唤醒时间的,因为在绿色模式下高速时钟仍然正常工作。 唤醒时间的计算如下: 唤醒时间 = 1/Fosc*2048(sec)+高速时钟启动时间 * 注:高速时钟的启动时间与VDD 和振荡器类型有关。  例:将系统从睡眠模式中唤醒,并设置系统进入普通模式。唤醒时间计算如下。 唤醒时间 = 1/Fosc*2048=0.512(Fosc=4MHz) 总的唤醒时间=0.512ms+振荡器启动时间

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 36 页 共 73 页 6 中断 6.1 概述 TC2711B 提供5 个中断源:3 个内部中断(TC0/TC1/ADC)和2 个外部中断(INT0/INT1) 。外部中断可 以将系统从睡眠模式中唤醒进入高速模式,在返回到高速模式前,中断请求被锁定。一旦程序进入中断,寄存 器 STPK 的位 GIE 被硬件自动清零以避免响应其他中断。系统退出中断后,硬件将 GIE 置“1” ,以响应下一个 中断。中断请求存放在寄存器INTRQ 中。 * 注:程序响应中断时,必须开启全局中断控制位GIE。 6.2 中断请求使能寄存器INTEN 中断请求控制寄存器INTEN 包括所有中断的使能控制位。INTEN 的有效位被置为“1”则系统进入该中断 服务程序,程序计数器入栈,程序转至 0008H 即中断程序。程序运行到指令 RETI 时,中断结束,系统退出中 断服务。 0C9H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 INTEN ADCIEN TC1IEN TC0IEN − − − P01IEN P00IEN 读/写 R/W R/W R/W − − − R/W R/W 复位后 0 0 0 − − − 0 0 Bit 0 P00 IEN: P0.0 外部中断(INT0)控制位。 0 = 无效; 1 = 有效。 Bit 1 P01 IEN: P0.1 外部中断(INT1)控制位。 0 = 无效; 1 = 有效。 Bit 5 TC0 IEN:TC0 中断控制位。 0 = 无效; 1 = 有效。 Bit 6 TC1 IEN: TC1 中断控制位。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 37 页 共 73 页 0 = 无效; 1 = 有效。 Bit 7 ADC IEN: ADC 中断控制位。 0 = 无效; 1 = 有效。 6.3 中断请求寄存器INTRQ 中断请求寄存器INTRQ 中存放各中断请求标志。一旦有中断请求发生,则INTRQ 中对应位将被置“1”, 该请求被响应后,程序应将该标志位清零。根据 INTRQ 的状态,程序判断是否有中断发生,并执行相应的中断 服务。 0C8H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 INTRQ ADCIRQ TC1IRQ TC0IRQ − − − P01IRQ P00IRQ 读/写 R/W R/W R/W − − − R/W R/W 复位后 0 0 0 − − − 0 0 Bit 0 P00 IRQ: P0.0 中断(INT0)请求标志。 0 = INT0 无中断请求; 1 = INT0 有中断请求。 Bit 1 P01 IRQ: P0.1 中断(INT1)请求标志。 0 = INT1 无中断请求; 1 = INT1 有中断请求。 Bit 5 TC0 IRQ:TC0 中断请求标志。 0 = TC0 无中断请求; 1 = TC0 有中断请求。 Bit 6 TC1 IRQ: TC1 中断请求标志。 0 = TC1 无中断请求; 1 = TC1 有中断请求。 Bit 7 ADC IRQ: ADC 中断请求标志。 0 = ADC 无中断请求; 1 =ADC 有中断请求。

6.4 GIE 全局中断

只有当全局中断控制位GIE 置“1”的时候程序才能响应中断请求。一旦有中断发生,程序计数器(PC) 指向中断向量地址(ORG8) ,堆栈层数加1。 0DFH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 STKP GIE − − − − STKPB2 STKPB1 STKPB0 读/写 R/W − − − − R/W R/W R/W 复位后 0 − − − − 1 1 1 Bit 7 GIE: 全局中断控制位。 0 = 禁止全局中断; 1 = 使能全局中断。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 38 页 共 73 页 B0BSET FGIE ;使能GIE。 * 注:在所有中断中,GIE 都必须处于使能状态。

6.5 PUSH,POP 处理

有中断请求发生并被响应后,程序转至0008H 执行中断子程序。响应中断之前,必须保存ACC、PFLAG 的内容。芯片提供PUSH 和POP 指令进行入栈保护和出栈恢复,从而避免中断结束后可能的程序运行错误。 * 注: “PUSH”、“POP”指令仅对 ACC 和 PFLAG 作中断保护 ,而不包括 NT0 和 NPD。PUSH/POP 缓存器 时唯一的且仅有一层。  例:对ACC 和 PAFLG 进行入栈保护。 ORG 0 JMP START ORG 8H JMP INT_SERVICE ORG 10H START: INT_SERVICE: PUSH ;保存ACC 和PFLAG。 POP ;恢复ACC 和PFLAG。 RETI ;退出中断。 ENDP 6.6 INT0(P0.0)中断 INT0 被触发,则无论P00IEN 处于何种状态,P00IRQ 都会被置“1” 。如果P00IEN=1 且P00IEN=1,系统响 应该中断;如果P00IEN=1 而P00IEN=0,系统并不会执行中断服务。在处理多中断时尤其需要注意。 如果中断的触发方向和唤醒功能的触发方向是一样的,则在系统由 P0.0 从睡眠模式和绿色模式唤醒时, INT0 的中断请求(INT0IRQ)就会被锁定。系统会在唤醒后马上进入中断向量地址执行中断服务程序。 * 注:INT0 的中断请求被P0.0 的唤醒触发功能锁定。 * 注:P0.0 的中断触发边沿由PEDGE 控制。 0BFH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Bit [4:3] P00G[1:0]: P0.0 中断触发控制位。 00 = 保留;

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 39 页 共 73 页 01 = 上升沿触发; 10 = 下降沿触发; 11 = 上升/下降沿触发(电平触发) 。  例:INT0 中断请求设置,电平触发。 MOV A , #18H B0MOV PEDGE,A ;设置INT0 为电平触发。 B0BCLR FP00 IRQ ;清INT0 中断请求标志。 B0BSET FP00 IEN ;使能INT0 中断。 B0BSET FGIE ;使能GIE。  例:INT0 中断。 ORG 8H ; JMP INT_SERVICE INT_SERVICE: … ;保存ACC 和PFLAG。 B0BTS1 FP00 IRQ ;检查是否有P00 中断请求标志。 JMP EXIT_INT ;P00IRQ = 0,退出中断。 B0BCLR FP00 IRQ ;清P00IRQ。 … ;INT0 中断服务程序。 EXIT_INT: … ;恢复ACC 和PFLAG。 RETI ;退出中断。 6.7 INT1(P0.1)中断 INT1 被触发,则无论P01IEN 处于何种状态,P01IRQ 都会被置“1” 。如果P01IRQ=1 且P01IEN=1,系统响 应该中断;如果01IRQ=1 而P01IEN=0,系统并不会执行中断服务。在处理多中断时尤其需要注意。 如果中断的触发方向和唤醒功能的触发方向是一样的,则在系统由 P0.1 从睡眠模式和绿色模式唤醒时, INT1 的中断请求(INT1IRQ)就会被锁定。系统会在唤醒后马上进入中断向量地址执行中断服务程序。 * 注:INT1 的中断请求被P0.1 的唤醒触发功能锁定。 * 注:P0.1 的中断由下降沿触发。  例:INT1 中断请求设置。 B0BCLR FP01 IRQ ;清INT1 中断请求标志 B0BSET FP01 IEN ;使能INT1 中断。 B0BSET FGIE ;使能GIE。  例:INT1 中断。 ORG 8H ; JMP INT_SERVICE

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 40 页 共 73 页 INT_SERVICE: … ;保存ACC 和PFLAG。 B0BTS1 FP0 1IRQ ;检查是否有P01 中断请求标志。 JMP EXIT_INT ;P01IRQ = 0,退出中断。 B0BCLR FP0 1IRQ ;清P01IRQ。 … ;INT1 中断服务程序。 EXIT_INT: … ;恢复ACC 和PFLAG。 RETI ;退出中断。

6.8 TC0 中断

TC0C 溢出时,无论TC0IEN 处于何种状态,TC0IRQ 都会置“1” 。若TC0IEN 和TC0IRQ 都置“1” ,系统就 会响应 TC0 的中断;若 TC0IEN=0,则无论 TC0IRQ 是否置“1” ,系统都不会响应TC0 中断。尤其需要注意多 种中断下的情形。  例:TC0 中断请求设置。 B0BCLR FTC0IEN ;禁止TC0 中断。 B0BCLR FTC0ENB ; MOV A,#20H ; B0MOV TC0M,A ;TC0 时钟=Fcpu/64。 MOV A,#64H ;TC0C 初始值=64H。 B0MOV TC0C,A ;TC0 间隔=10ms。 B0BCLR FTC0IRQ ;清TC0 中断请求标志。 B0BSET FTC0IEN ;使能TC0 中断。 B0BSET FTC0ENB ; B0BSET FGIE ;使能GIE。  例:TC0 中断服务程序。 ORG 8H ; JMP INT_SERVICE INT_SERVICE: … ;保存ACC 和PFLAG。 B0BTS1 FTC0 IRQ ;检查是否有TC0 中断请求标志。 JMP EXIT_INT ;TC0IRQ = 0,退出中断。 B0BCLR FTC0 IRQ ;清TC0IRQ。 MOV A , #64H B0MOV TC0C,A ;清TC0C … ;TC0 中断程序。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 41 页 共 73 页 EXIT_INT: … ;恢复ACC 和PFLAG。 RETI ;退出中断。

6.9 TC1 中断

TC1C 溢出时,无论TC1IEN 处于何种状态,TC1IRQ 都会置“1” 。若TC1IEN 和TC1IRQ 都置“1” ,系统就 会响应 TC1 的中断;若 TC1IEN=0,则无论 TC1IRQ 是否置“1” ,系统都不会响应TC1 中断。尤其需要注意多 种中断下的情形。  例:设置TC1 中断请求。 B0BCLR FTC1 IEN ;禁止TC1 中断。 B0BCLR FTC1ENB ;关闭TC1 定时器。 MOV A,#20H ; B0MOV TC1M,A ;设置TC1 时钟=Fcpu/64。 MOV A,#64H ;设置TC1C 初始值=64H。 B0MOV TC1C,A ;设置TC1 间隔时间=10ms。 B0BCLR FTC1 IRQ ;清TC1 中断请求标志。 B0BSET FTC1 IEN ;使能TC1 中断。 B0BSET FTC1ENB ; B0BSET FGIE ;使能GIE。  例:TC1 中断服务程序。 ORG 8H ; JMP INT_SERVICE INT_SERVICE: … ;保存ACC 和PFLAG。 B0BTS1 FTC1 IRQ ;检查是否有TC1 中断请求标志。 JMP EXIT_INT ;TC1IRQ = 0,退出中断。 B0BCLR FTC1 IRQ ;清TC1IRQ。 MOV A , #64H B0MOV TC1C,A ;清TC1C … ;TC1 中断程序。 EXIT_INT: … ;恢复ACC 和PFLAG。 RETI ;退出中断。

6.10 ADC 中断

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 42 页 共 73 页 当 ADC 转换完成后,无论ADCIEN 是否使能,ADCIRQ 都会置“1” 。若ADCIEN 和ADCIRQ 都置“1”, 那么系统就会响应ADC 中断。若 ADCIEN=0,不管 ADCIRQ 是否置“1” ,系统都不会进入ADC 中断。用户应 注意多种中断下的处理。  例: ADC 中断设置。 B0BCLR F ADCIEN ;禁止ADC 中断。 MOV A,# 10110000B ; B0MOV ADM,A ;允许P4.0 ADC 输入,使能ADC 功能。 MOV A,# 00000000B ;设置AD 转换速率=Fcpu/16。 B0MOV ADR, A B0BCLR F ADCIRQ ;清除ADC 中断请求标志。 B0BSET F ADCIEN ;使能ADC 中断。 B0BSET FGIE ;使能GIE。 B0BSET FADS ;开始AD 转换。  例:ADC 中断服务程序。 ORG 8H ;中断向量地址 JMP INT_SERVICE INT_SERVICE: … ;保存ACC 和PFLAG。 B0BTS1 F ADCIRQ ;检查是否有ADC 中断。 JMP EXIT_INT ;ADCIRQ = 0,退出中断。 B0BCLR F ADCIRQ ;清ADCIRQ。 … ;ADC 中断服务程序。 EXIT_INT: … ;恢复ACC 和PFLAG。 RETI ;退出中断。 6.11 多中断操作举例 在同一时刻,系统中可能出现多个中断请求。此时,用户必须根据系统的要求对各中断进行优先权的设 置。中断请求标志 IRQ 由中断事件触发,当 IRQ 处于有效值“1”时,系统并不一定会响应该中断。各中断触 发事件如下表所示: 中断 有效触发 P00IRQ 由PEDGE 控制 P01IRQ 下降沿触发 TC0IRQ TC0C 溢出 TC1IRQ TC1C 溢出 ADCIRQ AD 转换完成 多个中断同时发生时,需要注意的是:首先,必须预先设定好各中断的优先级。其次,利用IEN 和 IRQ 控 制系统是否应该中断。在程序中,必须对中断控制位和中断请求标志进行检测。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 43 页 共 73 页  例:多中断条件下检测中断请求。 ORG 8H ; JMP INT_SERVICE INT_SERVICE: … ;保存ACC 和PFLAG。 INTP00CHK: ;检查是否有P00 中断请求。 B0BTS1 FP00IEN ;检查是否使能P00 中断。 JMP I NTP01CHK ;跳到下一个中断。 B0BTS0 FP00IRQ ;检查是否有P00 中断请求。 JMP INTP00 ;进入INT0 中断。 INTP01CHK: ;检查是否有P01 中断请求。 B0BTS1 FP01IEN ;检查是否使能P01 中断。 JMP INTTC0CHK ;跳到下一个中断。 B0BTS0 FP01IRQ ;检查是否有P01 中断请求。 JMP INTP01 ;进入INT1 中断。 INTTC0CHK: ;检查是否有TC0 中断请求。 B0BTS1 F TC0IEN ;检查是否使能TC0 中断。 JMP INTTC1CHK ;跳到下一个中断。 B0BTS0 FTC0IRQ ;检查是否有TC0 中断请求。 JMP INTTC0 ;进入TC0 中断。 INTTC1CHK: ;检查是否有TC1 中断请求。 B0BTS1 FTC1IEN ;检查是否使能TC1 中断。 JMP INTADCHK ;跳到下一个中断。 B0BTS0 FTC1IRQ ;检查是否有TC1 中断请求。 JMP INTTC1 ;进入TC1 中断。 INTADCHK: ;检查是否有ADC 中断请求。 B0BTS1 FADCIEN ;检查是否使能ADC 中断。 JMP INT_EXIT ;跳到下一个中断。 B0BTS0 FADCIRQ ;检查是否有ADC 中断请求。 JMP INTADC ;进入ADC 中断。 INT_EXIT: … ;恢复ACC 和PFLAG。 RETI ;退出中断。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 44 页 共 73 页

7 I/O 口

7.1 I/O 口模式

寄存器PnM 控制I/O 口的工作模式。 0B8H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 P0M − − − − P03M P02M P01M P00M 读/写 − − − − R/W R/W R/W R/W 复位后 − − − − 0 0 0 0 0C4H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 P4M − − − P44M P43M P42M P41M P40M 读/写 − − − R/W R/W R/W R/W R/W 复位后 − − − 0 0 0 0 0 0C5H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Bit [7:0] PnM[7:0]: Pn 模式控制位(n = 0~5)。 0 = 输入模式; 1 = 输出模式。 * 注: 1.用户可以用位操作指令(B0BSET,B0BCLR)对I/O 口进行操作; 2.P0.4 是单向输入引脚,P0.4M = 1。  例:I/O 口模式选择。 CLR P0M ;所有端口置为输入模式。 CLR P4M CLR P5M MOV A,#0FFH ;所有端口置为输出模式。 B0MOV P0M , A B0MOV P4M , A B0MOV P5M , A B0BCLR P4M.0 ;P4.0 置为输入模式。 B0BSET P4M.0 ;P4.0 置为输出模式。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 45 页 共 73 页

7.2 I/O 上拉电阻寄存器

0E0H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 P0UR − − − − P03R P02R P01R P00R 读/写 − − − − W W W W 复位后 − − − − 0 0 0 0 0E4H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 P4UR − − − P44R P43R P42R P41R P40R 读/写 − − − W W W W W 复位后 − − − 0 0 0 0 0 0E5H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 * 注:P0.4 是单向输入引脚,无上拉电阻,因此P0UR.4 始终为“1”。  例:I/O 上拉电阻。 MOV A,#0FFH ;使能P0、4、5 上拉电阻。 B0MOV P0UR,A ; B0MOV P4UR,A ; B0MOV P5UR , A

7.3 I/O 口数据寄存器

0D0H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 P0 − − − P04 P03 P02 P01 P00 读/写 − − − R R/W R/W R/W R/W 复位后 − − − 0 0 0 0 0 0D4H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 P4 − − − P44 P43 P42 P41 P40 读/写 − − − R/W R/W R/W R/W R/W 复位后 − − − 0 0 0 0 0 0D5H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 46 页 共 73 页  例:从输入端口读取数据。 B0MOV A,P0 ;读P0 口的数据。 B0MOV A,P4 ;读P4 口的数据。 B0MOV A,P5 ;读P5 口的数据。  例:写数据到输入端口。 MOV A,#0FFH ;写0FFH 到所有的端口。 B0MOV A , P0 B0MOV A , P4 B0MOV A , P5  例:写1 位数据到输出端口。 B0BSET P4.0 ;P4.0 和P5.3 设为“1”。 B0BSET P5.3 B0BCLR P4.0 ;P4.0 和P5.3 设为“0”。 B0BCLR P5.3

7.4 P4 口 ADC 共用引脚

P4 口和ADC 的输入口共用,非施密特触发。同一时间只能设置P4 口的一个引脚作为ADC 的测量信号输 入口(通过 ADM 寄存器来设置) ,其他引脚则作为普通I/O 使用。具体应用中,当输入一个模拟信号到 CMOS 结构端口,尤其当模拟信号为1/2 VDD 时,将可能产生额外的漏电流。同样,当P4 口外接多个模拟信号时,也 会产生额外的漏电流。在睡眠模式下,上述漏电流会严重影响到系统的整体功耗。P4CON 为 P4 口的配置寄存 器。将P4CON[7:0]置“1” ,其对应的P4 口将被设置为纯模拟信号输入口,从而避免上述漏电流的情况。 0AEH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 P4CON − − − P4CON4 P4CON3 P4CON2 P4CON1 P4CON0 读/写 − − − R/W R/W R/W R/W R/W 复位后 − − − 0 0 0 0 0 Bit [4:0] P4CON[4:0]: P4.n 控制位。 0 = P4.n 作为模拟信号输出或普通I/O 引脚; 1 = P4.n 作为仅作模拟信号输入引脚。 * 注:当 P4.n 作为普通 I/O 口而不是 ADC 输入引脚时,P4CON.n 必须置为0,否则 P4.n 的普通 I/O 信号会被 隔离开来。 P4 的 ADC 模拟输入由寄存器ADM 的GCHS 和CHSn 位控制,若GCHS = 0 ,P4.n 为普通的I/O 引脚,若 GCHS=1,CHSn 所对应的P4.n 用作ADC 模拟信号输入引脚。 0B1H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ADM ADENB ADS EOC GCHS − CHS2 CHS1 CHS0

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 47 页 共 73 页 读/写 R/W R/W R/W R/W − R/W R/W R/W 复位后 0 0 0 0 − 0 0 0 Bit 4 GCHS: ADC 输入通道控制位。 0 = 禁止AIN 通道; 1 = 开启AIN 通道。 Bit [2:0] CHS[2:0]: ADC 输入通道选择位。 000 = AIN0; 001 = AIN1; 010 = AIN2; 011 = AIN3; 100 = AIN4; 101 = AIN5 。 * 注:在设置 P4.n 为普通的 I/O 引脚时,必须保证 P4.n 的 ADC 功能已经被禁止。否则当 GCHS = 1 时, CHS[2:0]所指向的P4.n 会被自动设为ADC 输入引脚。  例:设置 P4.1 为普通的输入引脚,P4CON.1 必须置为0。 ;检查GCHS 和CHS[2:0]的状态。 B0BCLR FGCHS ;CHS[2:0]指向P4.1(CHS[2:0]=001B) ,则GCHS=0。 ;CHS[2:0]没指向P4.1(CHS[2:0]≠001B) ,则忽略GCHS 状态。 ;清P4CON。 B0BCLR P4CON.1 ;使能P4.1 的普通I/O 功能。 ;P4.1 设为输入模式。 B0BCLR P4M.1 ;设置 P4.1 为输入模式。  例:设置P4.1 为普通的输出模式,P4CON.1 必须置为0。 ;检查GCHS 和CHS[2:0]的状态。 B0BCLR FGCHS ;CHS[2:0]指向P4.1(CHS[2:0]=001B) ,则GCHS=0。 ;CHS[2:0]没指向P4.1(CHS[2:0]≠001B) ,则忽略GCHS 状态。 ;清P4CON。 B0BCLR P4CON.1 ;使能P4.1 的普通I/O 功能。 ;设置P4.1 为输出模式以避免误操作。 B0BSET P4.1 ;设置 P4.1 为1。 B0BCLR P4.1 ;设置 P4.1 为0。 ;P4.1 设为输出模式。 B0BSET P4M.1 ;P4.1 设为输入模式。 P4.0 可作为普通的I/O 引脚,ADC 输入(AIN0)和ADC 外部参考电压的高电平输入端。VERFH 寄存器的 EVHENB 位是 ADC 的外部参考电压的高电平输入控制位。若使能EVHENB,P4.0 的普通 I/O 功能和 ADC 输入 (AIN0)功能被禁止。P4.0 和ADC 的参考电压输入端直接相连。 * 注:若想使能P4.0 的普通 I/O 功能和AIN0 功能,必须将EVHENB 设置为“0”。 0AFH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 VREFH EVHENB − − − − − VHS1 VHS0 读/写 R/W − − − − − R/W R/W Bit 7 EVHENB: ADC 外部参考电压的高电平输入控制位。 0 = 禁止ADC 参考电压的高电平输入;

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 48 页 共 73 页 1 = 允许ADC 参考电压的高电平输入;  例:设置P4.0 为普通输入模式,EVHENB 和P4CON.0 必须置0。 ;检查EVHENB 状态。 B0BTS0 FEVHENB ; B0BCLR FEVHENB ;EVHENB = 1,禁止ADC 外部参考电压的高电平输入。 ;检查GCHS 和CHS[2:0]的状态。 B0BCLR FGCHS ;CHS[2:0]指向P4.0(CHS[2:0]=000B) ,则GCHS=0。 ;CHS[2:0]没指向P4.0(CHS[2:0]≠000B) ,则忽略GCHS 状态。 ;清P4CON。 B0BCLR P4CON.0 ;使能P4.0 的普通I/O 功能。 ;设置P4.0 为输出模式。 B0BSET P4.0 ;设置 P4.0 为1。 B0BCLR P4.0 ;设置 P4.0 为0。 ;P4.0 设为输出模式。 B0BSET P4M.0 ;P4.0 设为输入模式。 8 定时器 8.1 看门狗定时器 看门狗定时器WDT 是一个4 位二进制计数器,用于监控程序的正常执行。如果由于干扰,程序进入了未知 状态,看门狗定时器溢出,系统复位。看门狗的工作模式由编译选项控制,其时钟源由内部低速 RC 振荡器 看门狗溢出时间=8192/内部低速振荡器周期(sec) VDD 内部低速RC Freq. 看门狗溢出时间 3V 16KHz 512ms 5V 32KHz 256ms * 注:如果看门狗被置为“Always_On”模式,那么看门狗在睡眠模式和绿色模式下仍然运行。 看门狗清零的方法是对看门狗计数器清零寄存器WDTR 写入清零控制字 5AH。 0CCH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 WDTR WDTR7 WDTR6 WDTR5 WDTR4 WDTR3 WDTR2 WDTR1 WDTR0 读/写 W W W W W W W W 复位后 0 0 0 0 0 0 0 0  例:如下是对看门狗定时器的操作,在主程序开头对看门狗清零。 MOV A,#5AH ;看门狗定时器清零。 B0MOV WDTR, A

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 49 页 共 73 页 CALL SUB1 CALL SUB2 JMP MAIN 看门狗定时器应用注意事项如下:  对看门狗清零之前,检查I/O 口的状态和RAM 的内容可增强程序的可靠性;  不能在中断中对看门狗清零,否则无法侦测到主程序跑飞的状况;  程序中应该只在主程序中有一次清看门狗的动作,这种架构能够最大限度的发挥看门狗的保护功能。  例:如下是对看门狗定时器的操作,在主程序开头对看门狗清零。 main: … ;检测I/O 口的状态。 … ;检测RAM 的内容。 Err: JMP$ ;I/O 或RAM 出错,不清看门狗等看门狗计时溢出。 Correct: ;I/O 和RAM 正常,看门狗清零。 MOV A,5AH ;在整个程序中只有一处地方清看门狗。 B0MOV WDTR , A CALL SUB1 CALL SUB2 JMP MAIN 8.2 定时/计数器TC0 8.2.1 概述 定时/计数器TC0 具有双时钟源,可根据实际需要选择内部时钟或外部时钟作为计时标准。其中,内部时钟 源来自 Fcpu 或 Fosc(Fosc 由 TC0X8 标志控制) 。外部时钟源 INT0 从 P0.0 端输入(下降沿触发) 。寄存器 TC0M 控制 TC0 时钟源的选择。当TC0 从 0FFH 溢出到 00H 时,TC0 在继续计数的同时产生一个溢出信号,触 发 TC0 中断请求。在PWM 模式,TC0 的溢出时间由寄存器ALOAD0 和TC0OUT 位控制。 TC0 的主要功能如下:  8 位可编程定时器:根据选择的时钟频率信号,产生周期中断;  外部事件计数器:对外部事件计数;  绿色模式唤醒功能:TC0 可以将系统从绿色模式下唤醒;  Buzzer 输出;  PWM 输出。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 50 页 共 73 页

8.2.2 TC0M 模式寄存器

0DAH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 TC0M TC0ENB TC0rate2 TC0rate1 TC0rat0 TC0CKS ALOAD0 TC0OUT PWM0OUT 读/写 R/W R/W R/W R/W R/W R/W R/W R/W 复位后 0 0 0 0 0 0 0 0 Bit 0 PWM0OUT: PWM 输出控制。 0 = 禁止PWM 输出; 1 = 使能PWM 输出,PWM 输出占空比由T0OUT 和ALOAD0 控制。 Bit 1 TC0OUT:TC0 溢出信号输出控制位。仅当PWM0OUT=0 时有效。 0 = 禁止,P5.4 作为输入/输出口; 1 = 允许,P5.4 输出TC0OUT 信号。 Bit 2 ALOAD0 :自动装载控制位。仅当PWM0OUT=0 时有效。 0 = 禁止TC0 自动重装; 1 = 允许TC0 自动重装。 Bit 3 TC0CKS :TC0 时钟信号控制位。 0 = 内部时钟(Fcpu 或Fosc); 1 = 外部时钟,由P0.0/INT0 输入。 Bit [6:4] TC0RATE[2:0]: TC0 分频选择位。 TC0RATE[2:0] TC0X8 = 0 TC0X8 = 1

000 Fcpu/256 Fcpu/128

001 Fcpu/128 Fcpu/64

010 Fcpu/64 Fcpu/32

011 Fcpu/32 Fcpu/16

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 51 页 共 73 页

100 Fcpu/16 Fcpu/8

101 Fcpu/8 Fcpu/4

110 Fcpu/4 Fcpu/2

111 Fcpu/2 Fcpu/1

Bit 7 TC0 ENB: TC0 启动控制位。 0 = 关闭; 1 = 开启。 * 注:若 TC0CKS=1,则 TC0 用作外部时间计数器,此时不需要考虑 TC0RATE 的设置,P0.0 口无中断信号 (P00IRQ=0)。

8.2.3 TC1X8,TC0X8,TC0GN 标志

0D8H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 T0M − − − − TC1X8 TC0X8 TC0GN − 读/写 − − − − R/W R/W R/W − Bit 1 TC0GN: TC0 绿色模式下唤醒功能控制位。 0 = 禁止TC0 的唤醒功能; 1 = 使能TC0 的唤醒功能。 Bit 2 TC0X8: TC0 内部时钟选择控制位。 0 = TC0 内部时钟来自Fcpu,TC0RA TE=Fcpu/2~Fcpu/256; 1 = TC0 内部时钟来自Fosc,TC0RATE=Fosc/1~Fosc/128。 Bit 3 TC1X8: TC1 内部时钟选择控制位。 0 = TC1 内部时钟来自Fcpu,TC0RA TE=Fcpu/2~Fcpu/256; 1 = TC1 内部时钟来自Fosc,TC0RATE=Fosc/1~Fosc/128。 * 注:TC0CKS = 1,TC0X8 和 TC0RATE 可以忽略不计。

8.2.4 TC0C 计数寄存器

TC0C 控制TC0 的时间间隔。 0DBH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 TC0C TC0C7 TC0C6 TC0C5 TC0C4 TC0C3 TC0C2 TC0C1 TC0C0 读/写 R/W R/W R/W R/W R/W R/W R/W R/W 复位后 0 0 0 0 0 0 0 0 TC0C 初始值计算公式如下: TC0C 初始值 = N-(TC0 中断间隔*输入时钟) N 为 TC0 二进制计数范围。各模式下参数的设定如下表所示: TC0CKS TC0X8 PWM0 ALOAD0 TC0OUT N TC0C 有效值 TC0C 二进制计数范围 备注 (Fcpu/2 ~Fcpu/25 0 × × 256 00H~0FFH 00000000b~11111111b 每计数 256 次溢出 1 0 0 256 00H~0FFH 00000000b~11111111b 每计数 256 次溢出 1 0 1 64 00H~3FH xx00000b~ xx 111111b 每计数 64 次溢出 1 1 0 32 00H~1FH xxx00000b~xxx11111b 每计数 32 次溢出 1 1 1 16 00H~0FH xxxx0000b~xxxx1111b 每计数 16 次溢出

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 52 页 共 73 页 (Fosc/1 ~Fosc/12 0 × × 256 00H~0FFH 00000000b~11111111b 每计数 256 次溢出 1 0 0 256 00H~0FFH 00000000b~11111111b 每计数 256 次溢出 1 0 1 64 00H~3FH xx00000b~ xx 111111b 每计数 64 次溢出 1 1 0 32 00H~1FH xxx00000b~xxx11111b 每计数 32 次溢出 1 1 1 16 00H~0FH xxxx0000b~xxxx1111b 每计数 16 次溢出 1 - - - - 256 00H~0FFH 00000000b~11111111b 每计数 256 次溢出  例:TC0 的间隔时间为 10ms,时钟源来自 Fcpu(TC0CKS = 0 ,TC0X8 = 0 ) ,无PWM 输出(PWM0 = 0) ,高速时钟 = 4MHz,Fcpu=Fosc/4,TC0RA TE=010(Fcpu/64)。 TC0C 初始值 = N-(TC0中断间隔时间*输入时钟) = 256-(10 *4*10 /4/64) = 100 = 64H TC0中断时间对应表(TC0X8=0) TC0RATE TC0CLOCK 高速模式(fcpu=4MHz/4) 低速模式(fcpu=32768Hz/4) 最大溢出间隔时间 单步间隔时间 =max/256 最大溢出时间 单步间隔时间 =max/256 000 Fcpu/256 65.536 ms 256 us 8000 ms 31250 us 001 Fcpu/128 32.768 ms 128 us 4000 ms 15625 us 010 Fcpu/64 16.384 ms 64 us 2000 ms 7812.5 us 011 Fcpu/32 8.192 ms 32 us 1000 ms 3906.25 us 100 Fcpu/16 4.096 ms 16 us 500 ms 1953.125 us 101 Fcpu/8 2.048 ms 8 us 250 ms 976.563 us 110 Fcpu/4 1.024 ms 4 us 125 ms 488.281 us 111 Fcpu/2 0.512 ms 2 us 62.5 ms 244.141 us TC0X8=1 TC0RATE TC0CLOCK 高速模式(fcpu=4MHz/4) 低速模式(fcpu=32768Hz/4) 最大溢出间隔时间 单步间隔时间 =max/256 最大溢出时间 单步间隔时间 =max/256 000 Fcpu/128 8.192 ms 32 us 1000 ms 7812.5 us 001 Fcpu/64 4.096 ms 16 us 500 ms 3906.25 us 010 Fcpu/32 2.048 ms 8 us 250 ms 1953.125 us 011 Fcpu/16 1.024 ms 4 us 125 ms 976.563 us 100 Fcpu/8 0.512 ms 2 us 62.5 ms 488.281 us 101 Fcpu/4 0.256 ms 1 us 31.25 ms 244.141 us 110 Fcpu/2 0.128 ms 0.5 us 15.625 ms 122.07 us 111 Fcpu/1 0.064 ms 0.25 us 7.813 ms 61.035 us

8.2.5 TC0R 自动装载寄存器

TC0 的自动装载功能由TC0M的ALOAD0位控制。当TC0C溢出时,TC0R的值自动装入TC0C中。这样,用户 在使用的过程中就不需要在中断中复位TC0C。 TC0 为双重缓存器结构。若程序对 TC0R 进行了修改,那么修改后的 TC0R 的值首先被暂存在 TC0R 的第一个

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 53 页 共 73 页 缓存器中,TC0 溢出后,TC0R 的新值就会被存入 TC0R 缓存器中,从而避免 TC0 中断时间出错以及 PWM 和蜂鸣器 误动作。 * 注:在PWM模式下,系统自动开启重装功能,ALOAD0用于控制溢出范围。 TC0R初始值计算公式如下: TC0R初始值 = N-(TC0中断间隔时间*输入时钟) N 为 TC0 最大溢出值。TC0 的溢出时间和有效值见下表: TC0CKS TC0X8 PWM0 ALOAD0 TC0OUT N TC0R 有效值 TC0R 二进制有效范围 (Fcpu/2~Fcpu /256) 0 × × 256 00H~0FFH 00000000b~11111111b 1 0 0 256 00H~0FFH 00000000b~11111111b 1 0 1 64 00H~3FH xx00000b~ xx 111111b 1 1 0 32 00H~1FH xxx00000b~xxx11111b 1 1 1 16 00H~0FH xxxx0000b~xxxx1111b (Fosc/1~Fosc/ 128) 0 × × 256 00H~0FFH 00000000b~11111111b 1 0 0 256 00H~0FFH 00000000b~11111111b 1 0 1 64 00H~3FH xx00000b~ xx 111111b 1 1 0 32 00H~1FH xxx00000b~xxx11111b 1 1 1 16 00H~0FH xxxx0000b~xxxx1111b 1 - - - - 256 00H~0FFH 00000000b~11111111b  例:TC0 的中断间隔时间为10ms,时钟源选Fcpu(TC0CKS = 0 ,TC0X8 = 0 ) ,无PWM 输出(PWM0 = 0) ,高速时钟为外部4MHz,Fcpu=Fosc/4,TC0RA TE=010(Fcpu/64)。 TC0R = N -(TC0中断间隔时间*输入时钟) = 256-(10 *4*10 /4/64) = 100 = 64H

8.2.6 TC0时钟频率输出(蜂鸣器输出)

对 TC0时钟频率进行适当设置可得到特定频率的蜂鸣器输出(TC0OUT) ,并通过引脚P5.4输出。单片机内 部设置 TC0 的溢出频率经过 2 分频后作为 TC0OUT 的频率,即 TC0 每溢出 2 次 TC0OUT 输出一个完整的脉冲,此 时,P5.4的I/O功能自动被禁止。TC0OUT输出波形如下:

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 54 页 共 73 页 若外部高速时钟选择 4MHz,系统时钟源采用外部时钟 Fosc/4,程序中设置 TC0RATE2~TC0RATE1=110, TC0C=TCOR=131,则TC0的溢出频率为2KHz。下面给出范例程序。 MOV A, #01100000B B0MOV TC0M, A ;TC0 速率=Fcpu/4。 MOV A, #131 ;自动装载参考值设置。 B0MOV TC0C, A B0MOV TC0R, A B0BSET FTC0OUT ;TC0 的输出信号由P5.4 输出,禁止P5.4 的普通I/O 功能。 B0BSET FALOAD0 ;使能TC0 自动重载功能。 B0BSET FTC0ENB ;开启TC0 定时器。

8.2.7 TC0 操作流程

TC0 定时器可用于定时器中断、事件中断、TC0OUT 和PWM。下面分别举例说明。  停止TC0 计数,禁止TC0 中断,并清TC0 中断请求标志。 B0BCLR FTC0ENB ;停止TC0 计数、TC0OUT 和PWM。 B0BCLR FTC0IEN ;禁止TC0 中断。 B0BCLR FTC0IRQ ;清TC0 中断请求标志。  设置TC0 的速率(不包含事件计数模式) 。 MOV A, #0xxx0000b ;TC0M 的bit4~bit6 控制TCO 的速率为x000xxxxb~x111xxxxb。 B0MOV TC0M, A ;禁止TC0 中断。  设置TC0 的时钟源。 ;选择TC0 内部/外部时钟源。 B0BCLR FTC0CKS ;内部时钟 或 B0BSET FTC0CKS ;外部时钟 ;选择TC0 Fcpu/Fosc 内部时钟源。 B0BCLR FTC0X8 ;Fcpu 内部时钟 或 B0BSET FTC0X8 ;Fosc 外部时钟 * 注:在 TC0 外部时钟模式下,TC0X8 可以忽略不计。  设置TC0 的自动装载模式。 B0BCLR FALOAD0 ;禁止TC0 自动装载功能。 B0BSET FALOAD0 ;使能TC0 自动装载功能。  设置TC0 中断间隔时间,TC0OUT(Buzzer)频率或PWM 占空比。 MOV A, #7FH ;TC1 的模式决定TC1C 和TC1R 的值。 B0MOV TC0C, A ;设置TC1C 的值。 B0MOV TC0R, A ;在自动装载模式或PWM 模式下设置TC1R 的值。 ;PWM 模式下设置PWM 的周期。 B0BCLR FALOAD0 ;ALOAD1,TC1OUT=00,PWM 周期=0~255。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 55 页 共 73 页 B0BCLR FTC0OUT ; 或 B0BCLR FALOAD0 ;ALOAD1,TC1OUT=01,PWM 周期=0~63。 B0BSET FTC0OUT ; 或 B0BSET FALOAD0 ;ALOAD1,TC1OUT=10,PWM 周期=0~31。 B0BCLR FTC0OUT ; 或 B0BSET FALOAD0 ;ALOAD1,TC1OUT=11,PWM 周期=0~15。 B0BSET FTC0OUT ;  设置TC1 的模式。 B0BSET FTC1IEN ;使能TC1 中断。 或 B0BSET FTC1OUT ;使能TC1OUT(Buzzer)功能。 或 B0BSET FPWM1OUT ;使能PWM。  开启TC1 定时器。 B0BSET FTC1ENB ;

8.4 PWM 功能说明

8.4.1 概述 PWM 信号输出到PWMnOUT(P5.3/P5.4 引脚),位TCnOUT 和ALOADn 控制PWM 输出的阶数(256、 64、32 和 16)。8 位计数器 TCnC 计数过程中不断与 TCnR 相比较,当 TCnC 计数到两者相等时,PWM 输出低 电平;当 TCnC 再次从零开始计数时,PWM 被强制输出高电平。PWMn 输出占空比=TCnR/阶数(阶数=256、 64、32 或 16)。 参考寄存器保持输入 00H 可使 PWM 的输出长时间维持在低电平,通过修改 TCnR 可改变 PWM 输出占空 * 注:TCn、TCnC 的“n”的值只能是0 或1。n=0 时为 TC0 模式,n=1 时为TC1 模式。 * 注:TCn 为双重缓存器结构,调整 TCnC 的“n”的值可以改变 PWM 的输出占空比。用户可随便改变 TCnR 的值,但是只有在TCn 溢出后,这一修改值才真正被写入TCnR 中。 ALOADn TCnOUT PWM 占空比范围 TCnC 有效值 TCnR 有效范围 MAX.PWM 输出 频率 (Fcpu=4MHz) 备注 0 0 0/256~255/256 00H~0FFH 00H~0FFH 7.8125K 每计数 256 次溢出 0 1 0/64~63/64 00H~3FH 00H~3FH 31.25K 每计数 64 次溢出 1 0 0/32~31/32 00H~1FH 00H~1FH 62.5K 每计数 32 次溢出 1 1 0/16~15/16 00H~0FH 00H~0FH 125K 每计数 16 次溢出 PWM 输出占空比随TCnR 的变化而变化:0/256~255/256。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 56 页 共 73 页

8.4.2 TCnIRQ 和 PWM 输出占空比

在PWM 模式下,TCnIRQ 的频率与PWM 占空比有关,具体情况如下图所示:

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 57 页 共 73 页

8.4.3 PWM 输出占空比和 TCnR 的变化

在PWM 模式下,系统随时比较TCnC 和TCnR 的异同。若TCnC<TCnR,PWM 输出高电平,反之则输出 低电平。当 TCnC 发生改变的时候,PWM 将在下一周期改变输出占空比。如果TCnR 保持恒定,那么 PWM 输 出波形也保持稳定波形。 上图所示是 TCnR 恒定时的波形。每当 TCnC 溢出时,PWM 都输出高电平,TCnC≧TCnR 时,PWM 即输 出低电平。下面所示是TC0R 发生变化时对应的波形图。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 58 页 共 73 页 在 period2 和 period4 中,显示新的占空比(TC0R) ,但PWM 在 period2 和 period4 的占空比要在下一个 period 才会改变。这样可以避免PWM 不随设定改变或在同一个周期内改变两次,从而避免系统发生不可预知的 误动作。

8.4.4 PWM 编程举例

 例:PWM 输出设置。外部高速振荡器输出频率=4MHz,Fcpu=Fosc/4,PWM 输出占空比=30/256,输出频 率 1KHz,PWM 时钟源来自外部时钟,TC0 速率=Fcpu/4,TC0RA TE2~TC0RA TE1=110,TC0C=TC0R=30。 MOV A, #01100000B B0MOV TC0M, A ;TC0 速率=Fcpu/4。 MOV A, #30 ;PWM 输出占空比=30/256。 B0MOV TC0C, A B0MOV TC0R, A B0BCLR FTC0OUT ;占空比变化范围:0/256~255/256。 B0BCLR FALOAD0 B0BSET F PWM0OUT ;PWM0 输出至P5.4,禁止P5.4 I/O 功能。 B0BSET FTC0ENB * 注:TCnR 为只写寄存器,不能用INCMS 和 DECMS 指令对其进行操作。  例:改变TC0R 的内容。 MOV A, #30H BOMOV TC0R, A INCMS BUF0 NOP B0MOV A, BUF0 B0MOV TC0R, A * 注:PWM 可以在中断下工作。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 59 页 共 73 页 9 5+1 通道 ADC 9.1 概述 TC2711B 模数转换模块共有5 条外部通道(AIN0~AIN4)和一条内部通道(AIN5:内部1/4VDD),4096 阶分辨率的A/D 转换器,可以将模拟信号转换成12 位数字信号。进行AD 转换时,首先要选择输入通 (AIN0~AIN5),然后把GCHS 和ADS 位置―1‖,启动AD 转换。转换结束后,系统自动将EOC 设置为―1‖, 并将转换结果存入寄存器ADB 和寄存器ADR 中。 1 2 3 4 5 6 A B C D 654321 D C B A Titl e Nu mber Rev isionSize B Date: 21-Nov-2011 Sheet o f File: E:\\E盘\\规 格 书\\规 格 图\\规 格 图-0\\ZB O\\271 1.ddbDrawn B y: AIN1/P4.1 AIN2/P4.2 AIN3/P4.3 AIN0/P4.0 AIN4/P4.4 AIN5 (内部1/4 VDD ) A/D转换 (ADC) 数 据 总 线 12-Bits

9.2 ADM寄存器

0B1H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADM ADENB ADS EOC GCHS — CHS2 CHS1 CHS0 读/写 R/W R/W R/W R/W — R/W R/W R/W 复位后 0 0 0 0 — 0 0 0 Bit 7 ADENB:ADC 控制位。 0 = 禁止; 1 = 使能。 Bit 6 ADS:ADC 启动位。 0 = 停止; 1 = 开始。 Bit 5 EOC:ADC 状态控制位 。 0 = 转换过程中; 1 = 转换结束,ADS 复位。 Bit 4 GCHS:通道选择位。 0 = 禁止AIN 通道; 1 = 使能AIN 通道。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 60 页 共 73 页 Bit[2:0] CHS[2:0]:ADC 输入通道选择位。 000 = AIN0;001 = AIN1;010 = AIN2;011 = AIN3;100 = AIN4;101 = AIN5。 AIN5 是内部1/4 VDD 输入通道,外部没有输入引脚。AIN5 可以作为电池系统的电池检测器。为了选择合 适的内部VREFH 电平并进行比较,系统内置了这个高性能、廉价的低电池检测器。 * 注:若ADENB = 1,用户应设置P4.n/AINn 为无上拉电阻的输入模式。系统不会自动设置。若已经设置了 P4CON.n,P4.n/AINn 的数字I/O 功能(包括上拉电阻)都是隔离开来的。

9.3 ADR寄存器

0B1H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADM — ADCKS1 — ADCKS0 ADB3 ADB2 ADB1 ADB0 读/写 — R/W — R/W R R R R 复位后 — 0 — 0 X X X X Bit[6,4] ADCKS1 ,ADCKS0:ADC 时钟源选择位。 ADCKS1 ADCKS0 ADC 时钟源 0 0 Fcpu/16 0 1 Fcpu/8 1 0 Fcpu 1 1 Fcpu/2 Bit[3:0] ADB[3:0] :ADC 12 位分辨率的低字节数据缓存器。 * 注:ADC 缓存器ADR [3:0]复位后的初始值是未知的。

9.3 ADB寄存器

0B2H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADB ADB15 ADB14 ADB13 ADB12 ADB11 ADB10 ADB9 ADB8 读/写 R R R R R R R R 复位后 X X X X X X X X Bit[7:0] ADB[7:0] :ADC 12 位分辨率的高字节数据缓存器。 8 位数据缓存器ADB 用来保存AD 转换结果的高8 位(bit4~bit11),转换结果的低4 位则保存在ADR 寄存 器中。ADB 为只读寄存器,在8 位ADC 模式下,AD 转换结果保存在寄存器ADB 中;在12 位模式下,则分 别保存在寄存器ADB和ADR 中。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 61 页 共 73 页 AIN的输入电压 vs ADB 的输出数据 AINn ADB11 ADB10 ADB9 ADB8 ADB7 ADB6 ADB5 ADB4 ADB3 ADB2 ADB1 ADB0 0/4096*VREFH 0 0 0 0 0 0 0 0 0 0 0 0 1/4096*VREFH 0 0 0 0 0 0 0 0 0 0 0 0 4094/4096*VREFH 1 1 1 1 1 1 1 1 1 1 1 0 4095/4096*VREFH 1 1 1 1 1 1 1 1 1 1 1 1 针对不同的应用,用户可能需要精度介于8 位到12 位之间的AD 转换器。对于这种情况,可以通过对保存 在ADR 和ADB 中的转换结果进行处理得到。首先,用户必须选择12 位分辨率的模式,进行AD 转换,然后在 转换结果中去掉最低的几位得到需要的结果。如下表所示: ADC 分辨率 ADB ADR ADB11 ADB11 ADB11 ADB11 ADB11 ADB11 ADB11 ADB11 ADB11 ADB11 ADB11 ADB11 8-bit O O O O O O O O X X X X 9-bit O O O O O O O O O X X X 10-bit O O O O O O O O O O X X 11-bit O O O O O O O O O O O X 12-bit O O O O O O O O O O O O O = 可选位,X = 未使用的位 * 注:ADC 缓存器ADB 在复位后的初始值是未知的。

9.5 P4CON寄存器

P4 口和ADC 的输入口共享。同一时间只能设置P4 口的一个引脚作为ADC 的测量信号输入口(通过ADM 寄存器来设置),其它引脚则作为普通I/O 使用。具体应用中,当向CMOS 结构端口输入一个模拟信号,尤其 当模拟信号为1/2 VDD时,将可能产生额外的漏电流。同样,当P4 口外接多个模拟信号时,也会产生额外的漏 电流。在睡眠模式下,上述漏电流会严重影响到系统的整体功耗。P4CON 为P4 口的配置寄存器。将 P4CON[7:0]置"1",其对应的P4 口将被设置为纯模拟信号输入口,从而避免上述漏电流的情况。 0AEH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 P4CON — — — P4CON4 P4CON3 P4CON2 P4CON1 P4CON0 读/写 — — — R/W R/W R/W R/W R/W 复位后 — — — 0 0 0 0 0 Bit[4:0] P4CON[4:0]:P4.n 配置控制位。 0 = P4.n 作为模拟输入(ADC 输入)引脚或者数字I/O 引脚; 1 = P4.n 只能作为单纯的模拟输入引脚,不能作为数字I/O 引脚。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 62 页 共 73 页 * 注:当P4.n 为普通I/O 而不是ADC 通道时,P4CON.n 必须置“0”,否则P4.n 的数字I/O 信号会被隔

9.6 VREFH寄存器

0AEH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 VREFH EVHENB — — — — — VHS1 VHS0 读/写 R/W — — — — — R/W R/W Bit[1:0] VHS[1:0]:ADC 内部参考电压选择位。 VHS1 VHS0 内部VREFH电压 1 1 VDD 1 0 4.0V 0 1 3.0V 0 0 2.0V * 注:若由VHS[1:0]控制选择的内部VREFH 电平高于VDD,内部VREFH为VDD。例:VHS[1:0] = 10 (内部 VREFH = 4.0V),VDD = 3.0V,则实际内部VREFH = 3.0V。 Bit[7] EVHENB:ADC 内部参考电压控制位。 0 = 允许ADC 内部VREFH 功能,VREFH 引脚是P4.0/AIN0 引脚; 1 = 禁止ADC 内部VREFH 功能,P4.0/AIN0/VREFH 引脚来自外部VREFH 输入引脚。 * 注:若EVHENB = 1 ,P4.0/AIN0 引脚就是外部VREFH 的输入引脚,P4.0 的I/O 功能和AIN0 功能被隔 离。 此时,该引脚处于悬浮状态。 * 注:当选择单片机内部4V/3V/2V 参考电压时,ADC 的分辨率为8 位。 当选择单片机内部VDD 和外部参考源时,ADC 的分辨率位12 位。

9.7 AD转换时间

12 位AD 转换时间 = 1/(ADC clock /4)*16 sec 高速时钟(Fosc)= 4MHz Fcpu ADCKS1 ADCKS0 ADC时钟 AD转换时间 Fosc/1 0 0 Fcpu/16 1/( ( 4MHz / 1 ) / 16 /4 ) x16= 256 us 0 1 Fcpu/8 1/( ( 4MHz / 1 ) / 8 /4 ) x16= 128 us 1 0 Fcpu 1/( ( 4MHz / 1 ) / 1 /4 ) x16= 16 us 1 1 Fcpu/2 1/( ( 4MHz / 1 ) / 2 /4 ) x16= 32 us Fosc/2 0 0 Fcpu/16 1/( ( 4MHz / 1 ) / 16 /4 ) x16= 512 us

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 63 页 共 73 页 0 1 Fcpu/8 1/( ( 4MHz / 1 ) / 8 /4 ) x16= 256 us 1 0 Fcpu 1/( ( 4MHz / 1 ) / 1 /4 ) x16= 32 us 1 1 Fcpu/2 1/( ( 4MHz / 1 ) / 2 /4 ) x16= 64 us Fosc/4 0 0 Fcpu/16 1/( ( 4MHz / 1 ) / 16 /4 ) x16= 1024 us 0 1 Fcpu/8 1/( ( 4MHz / 1 ) / 8 /4 ) x16= 512 us 1 0 Fcpu 1/( ( 4MHz / 1 ) / 1 /4 ) x16= 64 us 1 1 Fcpu/2 1/( ( 4MHz / 1 ) / 2 /4 ) x16= 128 us Fosc/8 0 0 Fcpu/16 1/( ( 4MHz / 1 ) / 16 /4 ) x16= 2048 us 0 1 Fcpu/8 1/( ( 4MHz / 1 ) / 8 /4 ) x16= 1024 us 1 0 Fcpu 1/( ( 4MHz / 1 ) / 1 /4 ) x16= 128 us 1 1 Fcpu/2 1/( ( 4MHz / 1 ) / 2 /4 ) x16= 256 us Fosc/16 0 0 Fcpu/16 1/( ( 4MHz / 1 ) / 16 /4 ) x16= 4096 us 0 1 Fcpu/8 1/( ( 4MHz / 1 ) / 8 /4 ) x16= 2048 us 1 0 Fcpu 1/( ( 4MHz / 1 ) / 1 /4 ) x16= 256 us 1 1 Fcpu/2 1/( ( 4MHz / 1 ) / 2 /4 ) x16= 512 us

9.8 ADC操作实例

 例:设置AIN0 为ADC 的输入并执行12 位ADC,VREFH 为内部3.0V,ADC 时钟源为Fcpu。 ; 允许ADC 功能,延迟100us 等待转换。 ADC0: B0BSET FADENB ; 使能ADC 电路。 CALL Delay100uS ; 延迟100us 等待ADC 电路开始转换 ; 设置P4 I/O 模式。 MOV A, #0FEH B0MOV P4UR, A ; 禁止P4.0 上拉电阻。 B0BCLR FP40M ; 设置P4.0 为输入模式。 ; 或 MOV A, #01H B0MOV P4CON, A ; 设置P4.0 为单纯的模拟输入。 ; 设置VREFH 为内部3.0V。 MOV A, #01H B0MOV VREFH, A ; 设置内部3.0V VREFH。 ; 设置ADC 时钟源为Fcpu。 MOV A, #40H B0MOV ADR, A ; 设置ADC 时钟源为Fcpu。 ; 使能AIN0(P4.0)。 MOV A, #90H B0MOV ADM, A ; 允许ADC 并设置AIN0 输入。 ; 开始AD 转换。 B0BSET FADS ; 开始转换。 WADC0:

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 64 页 共 73 页 B0BTS1 FEOC ; JMP WADC0 ; B0MOV A, ADB ; B0MOV Adc_Buf_Hi, A B0MOV A, ADR ; AND A, 0FH B0MOV Adc_Buf_Low, A End_ADC: . B0BCLR FADENB ; 禁止AD 转换。  例:设置AIN1 为ADC 输入并执行12 位ADC。VREFH 来自VREFH 引脚(P4.0/AIN0)的外部输入电 源,ADC 的时钟源为Fcpu。使用ADC 中断。 ; 允许ADC 功能,延迟100us等待AD 转换。 ADC0: B0BSET FADENB ; 使能ADC 电路。 CALL Delay100uS ; 延迟100us 等待ADC 电路开始转换。 ; 设置P4 I/O 模式。 MOV A, #0FDH B0MOV P4UR, A ; 禁止P4.1 的上拉电阻。 B0BCLR FP41M ; 设置P4.1 为输入模式。 ; 或 MOV A, #02H B0MOV P4CON, A ; 设置P4.1 为单纯的模拟输入。 ; 设置VREFH 为外部输入电压。 B0BSET FEVHENB ; 允许外部VREFH 输入。 ; 设置ADC 时钟源为Fcpu。 MOV A, #40H B0MOV ADR, A ; 设置ADC 时钟源为Fcpu。 ; 允许AIN0(P4.1)。 MOV A, #91H B0MOV ADM,A ; 允许ADC 和AIN1 输入。 ; 设置ADC 中断。 B0BCLR FADCIRQ ; 清除ADC 中断请求标志。 B0BSET FADCIEN ; 使能ADC 中断功能。 B0BSET FGIE ; 使能GIE 功能。 ; 开始AD 转换。 B0BSET FADS ; 开始转换。 ADC_INT_SR: PUSH B0BTS1 FADCIRQ ; 检查是否有ADC 中断标志。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 65 页 共 73 页 JMP ADC_INT_EXIT B0BCLR FADCIRQ ; 清除ADC 中断请求标志。 B0MOV A, ADB ; B0MOV Adc_Buf_Hi, A B0MOV A, ADR ; AND A, 0FH B0MOV Adc_Buf_Low, A B0BCLR FADENB ; 禁止ADC 电路。 ADC_INT_EXIT: . POP RETI

9.9 ADC电路

A B C D 654321 D C B A Titl e Nu mber Rev isionSize B Date: 28-Nov-2011 Sheet o f File: E:\\E盘\\规 格 书\\规 格 图\\规 格 图-0\\ZB O\\271 1.ddbDrawn B y: MCUVSS AINn/P4.n VDD VCC GND 0.1uF 0.1uF 47uF 模拟信号输入 ADC 参考电压为内部参考电压,VREFH 引脚是AIN0/P4.0。AINn/P4.n 和VSS 之间的电容(0.1uF)有助于 模拟信号的稳定。

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 66 页 共 73 页 1 2 3 4 5 6 A B C D 654321 D C B A Titl e Nu mber Rev isionSize B Date: 28-Nov-2011 Sheet o f File: E:\\E盘\\规 格 书\\规 格 图\\规 格 图-0\\ZB O\\271 1.ddbDrawn B y: MCUVSS AINn/P4.n VDD VCC GND 0.1uF 0.1uF 47uF 模拟信号输入 VREFH ADC 参考电压来自VDD,AIN0/P4.0 为VREFH 输入引脚。VREFH 应该来自单片机的VDD,而不是其它 VDD。 1 2 3 4 5 6 A B C D 654321 D C B A Titl e Nu mber Rev isionSize B Date: 28-Nov-2011 Sheet o f File: E:\\E盘\\规 格 书\\规 格 图\\规 格 图-0\\ZB O\\271 1.ddbDrawn B y: MCUVSS AINn/P4.n VDD VCC GND 0.1uF 0.1uF 47uF 模拟信号输入 VREFH参考电压的高电平输入 ADC 参考电压来自外部电压,AIN0/P4.0 是VREFH 的输入引脚。VREFH 和VSS 之间的电容(47uF)有助 于VREFH电压的稳定。 10 指令集 指令 指令格式 描述 C DC Z 周期 M O V E B0MOV M,A M (bank 0) ← A。 — — — 1

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 67 页 共 73 页 MOVC R, A←ROM [Y, Z]。 — — — 2 A R I T H M E T I C ADC A,M A←A+M+C,如果产生进位则C=1,否则C=0。 √ √ √ 1 ADC M,A M←A+M+C,如果产生进位则C=1,否则C=0。 √ √ √ 1+N ADD A,M A←A+M,如果产生进位则C=1,否则C=0。 √ √ √ 1 ADD M,A M←A+M,如果产生进位则C=1,否则C=0。 √ √ √ 1+N B0ADD M,A M (bank 0) ←M(bank 0)+A,如果产生进位则C=1,否则C=0。 √ √ √ 1+N ADD A,I A←A+1,如果产生进位则C=1,否则C=0。 √ √ √ 1 SBC A,M A←A-M-/C,如果产生借位则C=0,否则C=1。 √ √ √ 1 SBC M,A M←A-M-/C,如果产生借位则C=0,否则C=1。 √ √ √ 1+N SUB A,M A←A-M,如果产生借位则C=0,否则C=1。 √ √ √ 1 SUB M,A M←A-M,如果产生借位则C=0,否则C=1。 √ √ √ 1+N SUB A,I A←A-1,如果产生借位则C=0,否则C=1。 √ √ √ 1 L O G I C XOR M,A M←A异或M。 — — √ 1+N P R O C E S S RRCM M M←M 带进位右移。 √ — — 1+N RLCM M M←M 带进位左移。 √ — — 1+N BCLR M.b M.b←0。 — — — 1+N BSET M.b M.b←1。 — — — 1+N B0BCLR M.b M(bank 0).b←0。 — — — 1+N B0BSET M.b M(bank 0).b←1。 — — — 1+N B R A N C CMPRS A,I 比较,如果相等则跳过下一条指令C与ZF标志可能受影响。 √ — √ 1+S CMPRS A,M 比较,如果相等则跳过下一条指令C与ZF标志可能受影响。 √ — √ 1+S INCS M A←M+1,如果A=0,则跳过下一条指令。 — — — 1+S INCMS M M←M+1,如果M=0,则跳过下一条指令。 — — — 1+N+S DECS M A←M-1,如果A=0,则跳过下一条指令。 — — — 1+S DECMS M M←M-1,如果M=0,则跳过下一条指令。 — — — 1+N+S

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 68 页 共 73 页 H BTS0 M.b 如果M.b=0,则跳过下一条指令。 — — — 1+S BTS1 M.b 如果M.b=1,则跳过下一条指令。 — — — 1+S B0BTS0 M.b 如果M(bank 0).b=0,跳过下一条指令。 — — — 1+S B0BTS1 M.b 如果M(bank 0).b=1,跳过下一条指令。 — — — 1+S JMP d 跳转指令,PC15/14←RomPages1/0,PC13~PC0←d。 — — — 2 CALL d 子程序调用指令, Stack←PC15~PC0,PC15/14←RomPages1/0, M I S C RETI 中断处理程序跳出指令,PC←Stack,使能全局中断控制位。 — — — 2 PUSH 进栈指令,保存ACC 和工作寄存器。 — — — 1 POP 出栈指令,恢复ACC 和工作寄存器。 √ √ √ 1 注: 1. ―M‖是系统寄存器或RAM,M 为系统寄存器时N = 0,否则N = 1。 2. 条件跳转指令的条件为真,则S = 1,否则S = 0。 11 电气特性 11.1 极限参数 Operating ambient temperature (Topr) 11.2 电气特性 (All of voltages refer to Vss, Vdd = 5.0V, fosc = 4MHz,fcpu=1MHZ,ambient temperature is 25°C unless otherwise note.) PARAMETER SYM. DESCRIPTI ON MIN. TYP. MAX. UNIT Operating voltage Vdd Normal mode, Vpp = Vdd, 25 C 2.4 5.0 5.5 V Normal mode, Vpp = Vdd, -40 C~85 C 2.5 5.0 5.5 V RAM Data Retention voltage Vdr 1.5 - - V Vdd rise rate Vpor Vdd rise rate to ensure internal power-on reset 0.05 - - V/ms Input Low Voltage ViL1 All input ports Vss - 0.3Vdd V ViL2 Reset pin Vss - 0.2Vdd V ViL3 P4 ADC shared pin. Vss 0.5Vdd - V Input High Voltage ViH1 All input ports 0.7Vdd - Vdd V ViH2 Reset pin 0.9Vdd - Vdd V ViH3 P4 ADC shared pin. - 0.5Vdd Vdd V

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 69 页 共 73 页 Reset pin leakage current Ilekg Vin = Vdd - - 2 uA I/O port pull-up resistor Rup Vin = Vss , Vdd = 3V 100 200 300 K Vin = Vss , Vdd = 5V 50 100 150 I/O port input leakage current Ilekg Pull-up resistor disable, Vin = Vdd - - 2 uA I/O output source Current sink current IoH Vop = Vdd – 0.5V 8 12 - mA IoL Vop = Vss + 0.5V 8 15 - INTn trigger pulse width Tint0 INT0 interrupt request pulse width 2/fcpu - - cycle Supply Current (Disable ADC) Idd1 Run Mode (No loading, Fcpu = Fosc/4) Vdd= 5V, 4Mhz - 2.5 5 mA Vdd= 3V, 4Mhz - 1 2 mA Idd2 Slow Mode (Internal low RC, Stop high clock) Vdd= 5V, 32Khz - 20 40 uA Vdd= 3V, 16Khz - 5 10 uA Idd3 Sleep Mode Vdd= 5V, 25℃ - 0.8 1.6 uA Vdd= 3V, 25℃ - 0.7 1.4 uA Vdd= 5V, -40℃~ 85℃ - 10 21 uA Vdd= 3V, -40℃~ 85℃ - 10 21 uA Idd4 Green Mode (No loading,Fcpu = Fosc/4 Watchdog Disable) Vdd= 5V, 4Mhz - 0.6 1.2 mA Vdd= 3V, 4Mhz - 0.25 0.5 mA Vdd=5V, ILRC 32Khz - 15 30 uA Vdd=3V, ILRC 16Khz , - 3 6 uA Internal High Oscillator Freq. Fihrc Internal Hihg RC (IHRC) 25℃, Vdd= 5V, Fcpu = 1MHz 15.68 16.32 Mhz -40 C~85 Vdd= 2.4V~5.5V, Fcpu = 1MHz~16 MHz Mhz LVD Voltage Vdet0 Low voltage reset level. 1.7 2.0 2.3 V Vdet1 Low voltage reset level. Fcpu = 1 MHz. Low voltage indicator level. Fcpu = 1 MHz. 2.0 2.3 3 V Vdet2 Low voltage indicator level. Fcpu = 1 MHz 2.9 3.4 4.5 V VREFH input voltage Vrefh1 External reference voltage, Vdd = 5.0V. 2V - Vdd V Vrefh2 Internal VDD reference voltage, Vdd = 5V. - Vdd* - V Vrefh3 Internal 4V reference voltage, Vdd = 5V. - 4* - V Vrefh4 Internal 3V reference voltage, Vdd = 5V. - 3* - V Vrefh5 Internal 2V reference voltage, Vdd = 5V. - 2* - V AIN0 ~ AIN5 i nput voltage Vani Vdd = 5.0V 0 - Vrefh1~5 V ADC enable time Tast Ready to start convert after set ADENB = ―1‖ 100 - - us ADC current consumption IADC Vdd=5.0V - 0.6 - mA Vdd=3.0V - 0.4 - mA ADC Clock Frequency FADCLK VDD=5.0V - 8M Hz VDD=3.0V - 5M Hz ADC Conversion Cycle Time FADCYL VDD=2.4V~5.5V 64 1/FAD CLK ADC Sampling Rate (Set FADS=1 Frequency) FADSMP VDD=5.0V 125 K/sec VDD=3.0V 80 K/sec

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 70 页 共 73 页 Differential Nonlinearity DNL VDD=5.0V , AVREFH=3.2V, FADSMP =7.8K ±1 ±2 ±16 LSB Integral Nonlinearity INL VDD=5.0V , AVREFH=3.2V, FADSMP =7.8K ±2 ±4 ±16 LSB No Missing Code NMC VDD=5.0V , AVREFH=3.2V, FADSMP =7.8K 8 10 12 Bits *These parameters are for design reference, not tested.  Internal 16MHz Oscillator RC Type Temperature Characteristic. Power Voltage (VDD) = 5V. Machine Cycle (Fcpu) = Fhosc/4. Typical Temperature = 25° C. Typical Internal 16MHz Oscillator RC Type Frequency = 16MHz. Testing Temperature Range = –40° C ~ + 90° C  Internal 16MHz Oscillator RC Type Power Voltage and Machine Cycle Characteristic. Temperature = 25°C. Typical Power Voltage (VDD) = 5V. Typical Machin Cycle (Fcpu) = Fhosc / 4. Typical Internal 16MHz Oscillator RC Type Frequency = 16MHz. Testing Power Voltage Range (VDD) = 3V~5.5V. Testing Machine Cycle Range (Fcpu) = Fhosc/1~Fhosc/16.

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 71 页 共 73 页 12 封装信息

12.1 P-DIP 14 PIN

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 72 页 共 73 页

12.2 SOP 14 PIN

深圳市富满电子有限公司 SHENZHEN FUMAN ELECTRONICS CO., LTD. TC2711B(文件编号:S&CIC1047) 八位单片机 第 73 页 共 73 页