79F161 V0.2
|
|
|
- 土 太叔
- 7 years ago
- Views:
Transcription
1 SH88F2051 / 带 10 位 ADC 的 2051/4051 微控制器 1. 特性 基于 8051 兼容流水指令的 8 位单片机 Flash ROM:4K/8K 字节 RAM: 内部 256 字节, 外部 256 字节 片上 512 字节类 EEPROM 存储空间 工作电压 : fosc = 30kHz MHz,VDD = 2.8V - 5.5V 振荡器 ( 代码选项 ): - 晶体谐振器 :32.768kHz - 晶体谐振器 :400kHz MHz, 或陶瓷谐振器 :2MHz MHz - 陶瓷谐振器 :400kHz - 2MHz - 内部振荡器 :16.6MHz (±2%) - 外部时钟源 :30kHz MHz 14/18 个 CMOS 双向 I/O 管脚 ( 四种端口模式 ) 5/7 个大电流驱动口 3 个 16 位定时器 / 计数器 T0,T1,T2 中断源 : - 定时器 0,1,2 - 外部中断 0,1,2 - ADC,EUART,SCM,PWM,LPD,CMP 1 个 8 位 PWM 定时器 1 个内建模拟比较器 1 个 EUART 内建低电压检测功能 (LPD) 6/8 通道 10 位模数转换器 (ADC), 内建比较功能 内建低电压复位功能 (LVR)( 代码选项 ) - LVR 电压 1:4.1V - LVR 电压 2:3.7V - LVR 电压 3:2.8V CPU 机器周期 :1 个振荡周期 看门狗定时器 (WDT) 预热计数器 振荡器失效检测功能 (SCM) 支持省电运作模式 : - IDLE 模式 - 掉电模式 低功耗 Flash 型 封装 : - SH88F2051A 提供 DIP/SOP20 Pin,SOP16 Pin 封装 - SH88F 提供 DIP/SOP/TSSOP20 Pin 封装 2. 概述 SH88F2051A/ 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片它有着运行更快速的优越特性 SH88F2051A/ 保留了标准 2051 芯片的大部分特性 这些特性包括内置 256 字节 RAM 和 2 个 16 位定时器 / 计数器,1 个 UART 和外置中断 INT0,INT1,INT2 此外,SH88F2051A/ 还集成了 256 字节外部 RAM, 可兼容 8052 芯片的 16 位定时器 / 计数器 (Timer2) 该单片机还包括适合于程序和数据的 4K/8K 字节 Flash 块 SH88F2051A/ 不仅集成了 EUART 标准通讯模块, 此外还集成了具有内建比较功能的 ADC,PWM 定时器等模块 为了达到高可靠性和低功耗,SH88F2051A/ 内建看门狗定时器, 低电压复位功能和低电压检测功能 此外 SH88F2051A/ 还提供了 2 种低功耗省电模式 1 V2.0
2 3. 方框图 V DD Power Pipelined 8051 architecture Reset circuit RESET Watch Dog 4K/8 K Bytes Flash ROM Port 4 Configuration I/Os P4.0 - P4.2 Internal 256 Bytes External 256 Bytes Data RAM Timer 0(16bit) Timer 1(16bit) Timer 2(16bit) Port 3 Configuration I/Os Port 1 Configuration I/Os P3.0 - P3.5 P3.7 P1.0 - P1.7 External Interrupt 8-bit PWM EUART 10-bit ADC ISP LPD XTAL1 XTAL2 Oscillator oscillator fail detector CMP JTAG ports (for debug) Internal Oscillator 2
3 4. 引脚配置 4.1 SOP 16 脚封装 RESET/P V DD RXD/P P1.7/T2/AN7 TXD/P3.1 XTAL2/T0/P4.1 XTAL1/P4.2 INT0/P3.2 INT1/P SH8 8F2051 A P1.6/T2EX/AN6 P1.5/AN5/TCK P1.4/AN4/TDI P1.3/VLPD/AN3/TMS P1.2/INT2/AN2/TDO GND 8 9 P3.7/T1/PWM 4.2 DIP/TSSOP/SOP 20 脚封装 RESET/P V DD RXD/P P1.7/T2/AN7 TXD/P3.1 XTAL2/P4.1 XTAL1/P4.2 INT0/P3.2 INT1/P3.3 T0/P3.4 PWM/T1/P SH8 8F20 51A/405 1A P1.6/T2EX/AN6 P1.5/AN5/TCK P1.4/AN4/TDI P1.3/VLPD/AN3/TMS P1.2/INT2/AN2/TDO P1.1/CMPN/AN1 P1.0/CMPP/AN0 GND P3.7/CMPO 注意 : 引脚命名中, 写在最外侧的引脚功能具有最高优先级, 最内侧的引脚功能具有最低优先级 ( 参见引脚配置图 ) 当一个引脚被高优先级的功能占用时, 即使低优先级功能被允许, 也不能作为低优先级功能的引脚 只有当软件禁止引脚的高优先级功能, 相应引脚才能被释放作为低优先级端口使用 3
4 引脚功能引脚编号 SOP16 引脚命名 默认功能 1 RESET/P4.0 RESET 2 RXD/P3.0 P3.0 3 TXD/P3.1 P3.1 4 XTAL2/T0/P4.1 P4.1 或振荡器输出引脚, 代码选项控制 5 XTAL1/P4.2 P4.2 或振荡器输入引脚, 代码选项控制 6 INT0/P3.2 P3.2 7 INT1/P3.3 P3.3 8 GND PWM/T1/P3.7 P TDO/AN2/INT2/P1.2 P TMS/AN3/VLPD/P1.3 P TDI/AN4/P1.4 P TCK/AN5/P1.5 P AN6/T2EX/P1.6 P AN7/T2/P1.7 P V DD 引脚编号 DIP/TSSOP/SOP20 引脚命名 默认功能 1 P4.0/RESET RESET 2 RXD/P3.0 P3.0 3 TXD/P3.1 P3.1 4 P4.1/XTAL2 P4.1 或振荡器输出引脚, 代码选项控制 5 P4.2/XTAL1 P4.2 或振荡器输入引脚, 代码选项控制 6 INT0/P3.2 P3.2 7 INT1/P3.3 P3.3 8 T0/P3.4 P3.4 9 PWM/T1/P3.5 P GND CMPO/P3.7 P AN0/CMPP/P1.0 P AN1/CMPN/P1.1 P TDO/AN2/INT2/P1.2 P TMS/AN3/VLPD/P1.3 P TDI/AN4/P1.4 P TCK/AN5/P1.5 P AN6/T2EX/P1.6 P AN7/T2/P1.7 P V DD
5 5. 引脚描述 PORT Timer PWM 控制器 EUART ADC CMP 引脚编号类型说明 P4.0 - P4.2 I/O 3 位双向 I/O 端口 P3.0 - P3.7 I/O 7 位双向 I/O 端口 P1.0 - P1.7 I/O 8 位双向 I/O 端口 T0 I/O Timer0 外部输入或比较输出 T1 I/O Timer1 外部输入或比较输出 T2 I/O Timer2 外部输入 / 波特率时钟输出 T2EX I Timer2 重载 / 捕捉 / 方向控制 PWM O 8 位 PWM 定时器输出引脚 RXD I EUART 数据输入引脚 TXD O EUART 数据输出引脚 AN0 - AN7 I ADC 输入通道 CMPN I CMP 负相输入通道 CMPP I CMP 正向输入通道 CMPO O CMP 输出通道 中断 & 复位 & 时钟 & 电源 VLPD 编程器 INT0 - INT2 I 外部中断 0-2 RESET I 复位引脚 XTAL1 I 谐振器输入 XTAL2 O 谐振器输出 VDD P 电源 ( V) GND P 接地 VLPD I 电源电压输入检测 TDO O 调试接口 : 测试数据输出 TMS I 调试接口 : 测试模式选择 TDI I 调试接口 : 测试数据输入 TCK I 调试接口 : 测试时钟输入 注意 : 当 P 作为调试接口时,P 的原有功能被禁止 5
6 6. 产品信息 SH88Fxxxx: TSSOP20, SOP20, SOP16 Part Num RAM Flash (byte) (byte) E2 (byte) EUART CMP ADC PWM Timer ExINT (10bit) (8bit) LPD Pin Internal RC IO Package SH88F2051A 512 4K Y ±2% 14 SOP16 SH88F2051A 512 4K Y ±2% 18 DIP/SOP20 SH88F 512 8K Y ±2% 18 DIP/SOP /TSSOP20 6
7 7. SFR 映像 SH88F2051A/ 内置 256 字节的直接寻址寄存器, 包括通用数据存储器和特殊功能存储器 (SFR),SH88F2051A/ 的 SFR 有以下几种 : CPU 内核寄存器 : CPU 增强内核寄存器 : 电源和时钟控制寄存器 : LPD 寄存器 : Flash 寄存器 : 数据存储页寄存器 : 系统时钟控制寄存器 : ACC,B,PSW,SP,DPL,DPH AUXC,DPL1,DPH1,INSCON,XPAGE PCON,SUSLO LPDCON IB_OFFSET,XPAGE,IB_DATA,IB_CON1,IB_CON2,IB_CON3,IB_CON4,IB_CON5, FLASHCON XPAGE CLKCON 硬件看门狗定时器寄存器 :RSTSTAT 中断系统寄存器 : I/O 端口寄存器 : 定时器寄存器 : EUART 寄存器 : ADC 寄存器 : CMP 寄存器 : PWM 寄存器 : IEN0,IEN1,IPH0,IPL0,IPH1,IPL1,EXF0 P1,P3,P4,P1M0,P1M1,P3M0,P3M1,P4M0,P4M1 TCON,TMOD,TL0,TH0,TL1,TH1,TCON1,T2CON,T2MOD,RCAP2H,RCAP2L SCON,SBUF,SADEN,SADDR,PCON ADCON,ADT,ADCH,ADDL,ADDH CMPCON PWMCON,PWMP,PWMD 7
8 Table 7.1 CPU core SFRs 符号 地址 名称 POR/WDT/LVR /PIN 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 ACC E0H 累加器 ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 B F0H B 寄存器 B.7 B.6 B.5 B.4 B.3 B.2 B.1 B.0 AUXC F1H AUXC 寄存器 C.7 C.6 C.5 C.4 C.3 C.2 C.1 C.0 PSW D0H 程序状态字 CY AC F0 RS1 RS0 OV F1 P SP 81H 堆栈指针 SP.7 SP.6 SP.5 SP.4 SP.3 SP.2 SP.1 SP.0 DPL 82H 数据指针 1 低位字节 DPL0.7 DPL0.6 DPL0.5 DPL0.4 DPL0.3 DPL0.2 DPL0.1 DPL0.0 DPH 83H 数据指针 1 高位字节 DPH0.7 DPH0.6 DPH0.5 DPH0.4 DPH0.3 DPH0.2 DPH0.1 DPH0.0 DPL1 84H 数据指针 2 低位字节 DPL1.7 DPL1.6 DPL1.5 DPL1.4 DPL1.3 DPL1.2 DPL1.1 DPL1.0 DPH1 85H 数据指针 2 高位字节 DPH1.7 DPH1.6 DPH1.5 DPH1.4 DPH1.3 DPH1.2 DPH1.1 DPH1.0 INSCON 86H 数据指针选择 DIV MUL - DPS Table 7.2 数据存储页 SFR 符号 地址 名称 POR/WDT/LVR /PIN 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 XPA GE F7H flash 页寄存器 XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 Table 7.3 电源时钟控制 SFRs 符号 地址 名称 POR/WDT/LVR /PIN 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 PCON 87H 电源控制 SMOD SSTAT - - GF1 GF0 PD IDL SUSLO 8EH 电源控制保护字 SUSLO.7 SUSLO.6 SUSLO.5 SUSLO.4 SUSLO.3 SUSLO.2 SUSLO.1 SUSLO.0 8
9 Table 7.4 Flash 控制 SFRs 符号地址名称 IB_OFF SET POR/WDT/LVR /PIN 复位值 FBH 可编程 flash 低位字节偏移 SH88F2051A/ 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_OFF SET.7 IB_OFF SET.6 IB_DATA FCH 可编程 flash 数据寄存器 IB_DATA.7 IB_DATA.6 IB_DATA.5 IB_DATA.4 IB_DATA.3 IB_DATA.2 IB_DATA.1 IB_DATA.0 IB_CON1 F2H flash 控制寄存器 IB_CON1.7 IB_CON1.6 IB_CON1.5 IB_CON1.4 IB_CON1.3 IB_CON1.2 IB_CON1.1 IB_CON1.0 IB_CON2 F3H flash 控制寄存器 IB_CON2.4 IB_CON2.3 IB_CON2.2 IB_CON2.1 IB_CON2.0 IB_CON3 F4H flash 控制寄存器 IB_CON3.3 IB_CON3.2 IB_CON3.1 IB_CON3.0 IB_CON4 F5H flash 控制寄存器 IB_CON4.3 IB_CON4.2 IB_CON4.1 IB_CON4.0 IB_CON5 F6H flash 控制寄存器 IB_CON5.3 IB_CON5.2 IB_CON5.1 IB_CON5.0 XPA GE F7H Flash 页寄存器 XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 Table 7.5 WDT SFR 符号地址名称 POR/WDT/LVR /PIN 复位值 IB_OFF SET.5 IB_OFF SET.4 IB_OFF SET.3 IB_OFF SET.2 IB_OFF SET.1 IB_OFF SET.0 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 RSTSTAT B1H 看门狗定时器控制寄存器 WDOF - PO RF LVRF CLRF WDT.2 WDT.1 WDT.0 注意 :RSTSTAT 初始值根据不同类型的复位而不同 Table 7.6 时钟控制 SFR 符号地址名称 POR/WDT/LVR /PIN 复位值 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 CLKCON B2H 系统时钟选择 K_SPDUP CLKS1 CLKS0 SCMIF RCON FS - - 9
10 Table 7.7 中断 SFRs 符号 地址 名称 POR/WDT/LVR /PIN 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 IEN0 A8H 中断允许控制 EA EA DC ET2 ES0 ET1 EX1 ET0 EX0 IEN1 A9H 中断允许控制 ELPD - EPWM ESCM - EX2 ECMP - EX F0 E8H 外部中断标志 IT2.1 IT2.0 - IE2 IPL0 B8H 中断优先权控制低位 PADCL PT2L PSL PT1L PX1L PT0L PX0L IPH0 B4H 中断优先权控制高位 PADCH PT2H PSH PT1H PX1H PT0H PX0H IPL1 B9H 中断优先权控制低位 PLPDL - PPWML PSCML - PX2L PCMPL - IPH1 B5H 中断优先权控制高位 PLPDH - PPWMH PSCMH - PX2H PCMPH - Table 7.8 端口 SFRs 符号 地址 名称 POR/WDT/LVR /PIN 复位值 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 P1 90H 8 位端口 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P3 B0H 8 位端口 P3.7 - P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 P4 C0H 8 位端口 P4.2 P4.1 P4.0 P1M0 EAH P1M07 P1M06 P1M05 P1M04 P1M03 P1M02 P1M01 P1M00 P1M1 E2H P1M17 P1M16 P1M15 P1M14 P1M13 P1M12 P1M11 P1M10 P3M0 ECH P3M07 - P3M05 P3M04 P3M03 P3M02 P3M01 P3M00 P3M1 E4H P3M17 - P3M15 P3M14 P3M13 P3M12 P3M11 P3M10 P4M0 EDH P4M02 P4M01 P4M00 P4M1 E5H P4M12 P4M11 P4M10 10
11 Table 7.9 定时器 SFRs 符号地址名称 POR/WDT/LVR /PIN 复位值 SH88F2051A/ 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TCON 88H 定时器 / 计数器 0 和 1 控制 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TMOD 89H 定时器 / 计数器 0 和 1 模式 GA TE1 C/ T1 M11 M10 GA TE0 C/ T0 M01 M00 TL0 8AH 定时器 / 计数器 0 低位字节 TL0.7 TL0.6 TL0.5 TL0.4 TL0.3 TL0.2 TL0.1 TL0.0 TH0 8CH 定时器 / 计数器 0 高位字节 TH0.7 TH0.6 TH0.5 TH0.4 TH0.3 TH0.2 TH0.1 TH0.0 TL1 8BH 定时器 / 计数器 1 低位字节 TL1.7 TL1.6 TL1.5 TL1.4 TL1.3 TL1.2 TL1.1 TL1.1 TH1 8DH 定时器 / 计数器 1 高位字节 TH1.7 TH1.6 TH1.5 TH1.4 TH1.3 TH1.2 TH1.1 TH1.1 T2CON C8H 定时器 2 控制 TF2 EXF2 RCLK TCLK EX EN2 TR2 C/ T2 CP/ RL2 T2MO D C9H 定时器 2 模式 TCLKP T2OE DCEN RCAP2L CA H 定时器 2 重载 / 捕获数据低位字节 RCAP2L.7 RCAP2L.6 RCAP2L.5 RCAP2L.4 RCAP2L.3 RCAP2L.2 RCAP2L.1 RCAP2L.0 RCA P2H CBH 定时器 2 重载 / 捕获数据高位字节 RCAP2H.7 RCA P2H.6 RCAP2H.5 RCAP2H.4 RCAP2H.3 RCA P2H.2 RCAP2H.1 RCAP2H.0 TL2 CCH 定时器 2 低位计数位 TL2.7 TL2.6 TL2.5 TL2.4 TL2.3 TL2.2 TL2.1 TL2.0 TH2 CDH 定时器 2 高位计数位 TH2.7 TH2.6 TH2.5 TH2.4 TH2.3 TH2.2 TH2.1 TH2.0 TCON1 CEH 定时器 / 计数器 0 和 1 选择和比较控制 TCLKS1 TCLKS0 - TCLKP1 TCLKP0 TC1 TC0 Table 7.10 EUART SFRs 符号地址名称 POR/WDT/LVR /PIN 复位值 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SCON 98H 串行控制 SM0/FE SM1/RXOV SM2/TXCOL REN TB8 RB8 TI RI SBUF 99H 串行数据缓冲器 SBUF.7 SBUF.6 SBUF.5 SBUF.4 SBUF.3 SBUF.2 SBUF.1 SBUF.0 SADDR 9AH 从属地址 SADDR.7 SADDR.6 SADDR.5 SADDR.4 SADDR.3 SADDR.2 SADDR.1 SADDR.0 SA DEN 9BH 从属地址掩码 SADEN.7 SADEN.6 SADEN.5 SADEN.4 SADEN.3 SADEN.2 SADEN.1 SADEN.0 PCON 87H 电源和串行控制 SMOD SSTAT - - GF1 GF0 PD IDL 11
12 Table ADC SFRs 符号地址名称 POR/WDT/LVR /PIN 复位值 SH88F2051A/ 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADCON 93H A DC 控制 ADON ADCIF EC - SCH2 SCH1 SCH0 GO/ DO NE ADT 94H A DC 时间配置 TA DC2 TADC1 TADC0 - TS3 TS2 TS1 TS0 ADCH 95H A DC 通道选择 CH7 CH6 CH5 CH4 CH3 CH2 CH1 CH0 ADDL 96H ADC 数据低位字节 A1 A0 ADDH 97H ADC 数据高位字节 A9 A8 A7 A6 A5 A4 A3 A2 Table PWM SFRs 符号地址名称 POR/WDT/LVR /PIN 复位值 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PWMCON D1H 8 位 PWM 控制 PWMEN PWMS PWMCK1 PWMCK0 - - PWMIF PWMSS PWMP D2H 8 位 PWM 周期控制低位 PWMP.7 PWMP.6 PWMP.5 PWMP.4 PWMP.3 PWMP.2 PWMP.1 PWMP.0 PWMD D3H 8 位 PWM 占空比控制低位 PWMD.7 PWMD.6 PWMD.5 PWMD.4 PWMD.3 PWMD.2 PWMD.1 PWMD.0 Table CMP SFR 符号地址名称 POR/WDT/LVR /PIN 复位值 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 CMPCON 92H CMP 控制 CMPEN CMPIF CMPOC CINV COUT Table LPD SFR 符号地址名称 POR/WDT/LVR /PIN 复位值 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 LPDCON B3H LPD 检测控制 LPDEN LPDF LPDV LPDS1 LPDS0 注意 :-: 保留位 12
13 SFR 映像 可按位寻址 不可按位寻址 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F F8H IB_OFFSET IB_DATA FFH F0H B AUXC IB_CON1 IB_CON2 IB_CON3 IB_CON4 IB_CON5 XPAGE F7H E8H EXF0 P1M0 P3M0 P4M0 EFH E0H ACC P1M1 P3M1 P4M1 E7H D8H DFH D0H PSW PWMCON PWMP PWMD D7H C8H T2CON T2MOD RCAP2L RCAP2H TL2 TH2 TCON1 CFH C0H P4 C7H B8H IPL0 IPL1 BFH B0H P3 RSTSTAT CLKCON LPDCON IPH0 IPH1 B7H A8H IEN0 IEN1 AFH A0H SPCON SPDAT FLASHCON A7H 98H SCON SBUF SADDR SADEN 9FH 90H P1 CMPCON ADCON ADT ADCH ADDL ADDH 97H 88H TCON TMOD TL0 TL1 TH0 TH1 SUSLO 8FH 80H SP DPL DPH DPL1 DPH1 INSCON PCON 87H 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F 注意 : 未使用的 SFR 地址禁止读写 13
14 8. 标准功能 8.1 CPU CPU 内核特殊功能寄存器特性 CPU 内核寄存器 :ACC,B,PSW,SP,DPL,DPH 累加器 累加器 ACC 是一个常用的专用寄存器, 指令系统中采用 A 作为累加器的助记符 B 寄存器在乘除法指令中, 会用到 B 寄存器 在其它指令中,B 寄存器可作为暂存器来使用 SH88F2051A/ 栈指针 (SP SP) 栈指针 SP 是一个 8 位专用寄存器, 在执行 PUSH 各种子程序调用 中断响应等指令时,SP 先加 1, 再将数据压栈 ; 执行 POP RET RETI 等指令时, 数据退出堆栈后 SP 再减 1 堆栈栈顶可以是片上内部 RAM(00H-FFH) 的任意地址, 系统复位后,SP 初始化为 07H, 使得堆栈事实上由 08H 地址开始 程序状态字 (PSW PSW) 寄存器 程序状态字 (PSW) 寄存器包含了程序状态信息 Table 8.1 PSW 寄存器 D0H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PSW C AC F0 RS1 RS0 OV F1 P 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7 C 6 AC 5 F0 4-3 RS[1:0] 2 OV 1 F1 0 P 进位标志位 0: 算术或逻辑运算中, 没有进位或借位发生 1: 算术或逻辑运算中, 有进位或借位发生 辅助进位标志位 0: 算数逻辑运算中, 没有辅助进位或借位发生 1: 算数逻辑运算中, 有辅助进位或借位发生 F0 标志位用户自定义标志位 R0-R7 寄存器页选择位 00: 页 0( 映射到 00H-07H) 01: 页 1( 映射到 08H-0FH) 10: 页 2( 映射到 10H-17H) 11: 页 3( 映射到 18H-1FH) 溢出标志位 0: 没有溢出发生 1: 有溢出发生 F1 标志位用户自定义标志位 奇偶校验位 0: 累加器 A 中值为 1 的位数为偶数 1: 累加器 A 中值为 1 的位数为奇数 数据指针 (DPTR DPTR) 数据指针 DPTR 是一个 16 位专用寄存器, 其高位字节寄存器用 DPH 表示, 低位字节寄存器用 DPL 表示 它们既可以作为一个 16 位寄存器 DPTR 来处理, 也可以作为 2 个独立的 8 位寄存器 DPH 和 DPL 来处理 14
15 8.1.2 CPU 增强内核特殊功能寄存器特性 扩展的 'MUL' 和 'DIV' 指令 :16 位 *8 位,16 位 /8 位 双数据指针 CPU 增强内核寄存器 :AUXC,DPL1,DPH1,INSCON SH88F2051A/ SH88F2051A/ 扩展了 'MUL' 和 'DIV' 的指令, 使用一个新寄存器 AUXC 寄存器保存运算数据的高 8 位, 以实现 16 位运算 在 16 位乘除法指令中, 会用到 AUXC 寄存器 在其它指令中,AUXC 寄存器可作为暂存器来使用 CPU 在复位后进入标准模式,'MUL' 和 'DIV' 的指令操作和标准 8051 指令操作一致 当 INSCON 寄存器的相应位置 1 后,'MUL' 和 'DIV' 指令的 16 位操作功能被打开 MUL DIV 双数据指针 操作 结果 A B AUXC INSCON.2 = 0;8 位模式 (A)*(B) 低位字节高位字节 --- INSCON.2 = 1;16 位模式 (AUXC A)*(B) 低位字节中位字节高位字节 INSCON.3 = 0;8 位模式 (A)/(B) 商低位字节余数 --- INSCON.3 = 1;16 位模式 (AUXC A)/(B) 商低位字节余数商高位字节 使用双数据指针能加速数据存储移动 标准数据指针被命名为 DPTR 而新型数据指针命名为 DPTR1 数据指针 DPTR1 与 DPTR 类似, 是一个 16 位专用寄存器, 其高位字节寄存器用 DPH1 表示, 低位字节寄存器用 DPL1 表示 它们既可以作为一个 16 位寄存器 DPTR1 来处理, 也可以作为 2 个独立的 8 位寄存器 DPH1 和 DPL1 来处理 通过对 INSCON 寄存器中的 DPS 位置 1 或清 0 选择两个数据指针中的一个 所有读取或操作 DPTR 的相关指令将会选择最近一次选择的数据指针 寄存器 Table 8.2 数据指针选择寄存器 86H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 INSCON DIV MUL - DPS 读 / 写 读 / 写读 / 写 - 读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 3 DIV 2 MUL 0 DPS 16 位 /8 位除法选择位 0:8 位除法 1:16 位除法 16 位 /8 位乘法选择位 0:8 位乘法 1:16 位乘法 数据指针选择位 0: 数据指针 1: 数据指针 1 15
16 8.2 随机数据存储器 (RAM RAM) SH88F2051A/ 特性 SH88F2051A/ 为数据存储提供了内部 256 字节的 RAM 和外部 256 字节的 RAM 下列为存储器空间分配: 低位 128 字节的内部 RAM( 地址从 00H 到 7FH) 可直接或间接寻址 高位 128 字节的内部 RAM( 地址从 80H 到 FFH) 只能间接寻址 特殊功能寄存器 (SFR, 地址从 80H 到 FFH) 只能直接寻址 外部 256 字节的 RAM( 地址从 00H 到 FFH) 可通过 MOVX 指令间接寻址 高位 128 字节的 RAM 占用的地址空间和 SFR 相同, 但在物理上与 SFR 的空间是分离的 当一个指令访问地址高于 7FH 的内部位置时,CPU 可以根据指令的寻址方式来区分是访问高位 128 字节数据 RAM 还是访问 SFR 注意 : 未使用的 SFR 地址禁止读写 00FFH FFH FFH Upper 128 bytes Internal Ram Special Function Register Extenal RAM 80H indirect accesses 80H direct accesses 7FH Lower 128 bytes Internal Ram direct or indirect accesses 0000H 00H 内部和外部 RAM 配置 SH88F2051A/ 支持传统的访问外部 RAM 方法 使用 MOVXA,@Ri 或 来访问外部低位 256 字节 RAM ; 用 MOVX A,@DPTR 或 来访问外部 256 字节 RAM 用户也能用 XPAGE 寄存器来访问外部 RAM, 使用 MOVX A,@Ri 或 指令即可, 此时用 XPAGE 来表示高于 256 字节的 RAM 地址 在 Flash SSP 模式下,XPAGE 也能用作分段选择器 ( 详见 SSP 章节 ) 寄存器 Table 8.3 数据存储页寄存器 F7H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 XPAGE XPAGE.0 读 / 写 读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 0 XPAGE[0] RAM 页选择控制位 注意 : 因为只有 256 字节外部 RAM 所以,XPAGE[0] 只有 0 有效 16
17 8.3 Flash 存储器 特性 Flash 存储器包括 4/8 X 1KB 扇区, 总共 4/8KB 在工作电压范围内都能进行编程和擦除操作 在线编程 (ICP) 操作支持写入 读取和擦除操作 支持整体 / 扇区擦除和编程 编程 / 擦除次数 : 至少 次 数据保存年限 : 至少 10 年 低功耗 FFFFH FC00H BootRom Block BootRom Block Reserved (no use) 1000H/ 2000H 01FFH Program Memory Block N o U se EEPROM Like Data Block ISP can erase and program ISP cannot erase or program 0000H 0000H Information Block Program Memory Block SH88F2051A/ 为存储程序代码内置 4K/8K 可编程 Flash 程序存储区 (Program Memory Block), 支持在线编程 (ICP) 模式和扇区自编程 (SSP) 模式或在系统编程 (ISP) 对 Flash 存储器操作 每个扇区 1024 字节 SH88F2051A/ 还内置 512 字节的类 EEPROM 存储区用于存放用户数据 每个扇区 256 字节, 总共 2 个扇区 SH88F2051A/ 还具有 1K 字节引导扇区 (BootRom Block), 用于芯片的在系统编程 (ISP) 功能 Flash 操作定义 : 在线编程 (ICP) 模式 : 通过 Flash 编程器对 Flash 存储器进行擦 读 写操作 扇区自编程 (SSP) 模式 : 用户程序代码运行在 Program Memory 中, 对 Flash 存储器进行擦 读 写操作 在系统编程 (ISP) 模式 : 用户程序代码运行在 BootRom 中, 对 Flash 存储器进行擦 读 写操作 目前,BootRom 中的程序在出厂时已经固化在内, 可以配合相应的上位机软件完成通过 UART 口下载程序到芯片的功能 如果客户代码选项选择使能 ISP 功能 (OP_ISP 置 1, 详见代码选项章节 ), 则地址 (0xFC00-0xFFFF ) 将被映射用作引导扇区 (BootRom) 地址 ; 如果客户代码选项选择关闭 ISP 功能 (OP_ISP 清 0, 详见代码选项章节 ), 则地址 (0xFC00-0xFFFF) 为空, 不能用作程序存储区使用 17
18 Flash 存储器支持以下操作 : (1) 代码保护控制模式编程 SH88F2051A/ SH88F2051A/ 的代码保护功能为用户代码提供了高性能的安全措施 每个分区有两种模式可用 代码保护模式 0: 允许 / 禁止任何编程器的写入 / 读取操作 ( 不包括整体擦除 ) 代码保护模式 1: 允许 / 禁止在其它扇区中通过 MOVC 指令进行读取操作, 或通过 SSP 模式进行擦除 / 写入操作 用户必须使用下列方式才能完成代码保护控制模式的设定 :Flash 编程器在 ICP 模式设置相应的保护位, 以进入所需的保护模式 SSP 模式不支持代码保护控制模式编程 (2) 整体擦除 无论代码保护控制模式的状态如何, 整体擦除操作都将会擦除所有程序, 代码选项, 代码保护位, 但是不会擦除类 EEPROM 存储区 用户必须使用下列方式才能完成整体擦除 :Flash 编程器在 ICP 模式发出整体擦除指令, 进行整体擦除 SSP 模式不支持整体擦除 (3) 扇区擦除 扇区擦除操作将会擦除所选扇区中内容 用户程序 (SSP) 和 Flash 编程器都能执行该操作 若需用户程序执行该操作, 必须禁止所选扇区的代码保护控制模式 1 若需 Flash 编程器执行该操作, 必须禁止所选扇区的代码保护控制模式 0 用户必须使用下列 2 种方式之一才能完成扇区擦除 : 1. Flash 编程器在 ICP 模式发出扇区擦除指令, 进行扇区擦除 2. 通过 SSP 功能发出扇区擦除指令, 进行扇区擦除 ( 详见在扇区自编程章节 ) (4) 类 EEPROM 存储区擦除 类 EEPROM 存储区擦除操作将会擦除类 EEPROM 存储区中的内容 用户程序 (SSP) 和 Flash 编程器都能执行该操作 用户必须使用下列 2 种方式之一才能完成类 EEPROM 存储区擦除 : 1. Flash 编程器在 ICP 模式发出类 EEPROM 存储区擦除指令, 进行类 EEPROM 存储区擦除 2. 通过 SSP 功能发出类 EEPROM 存储区擦除指令, 进行类 EEPROM 存储区擦除 ( 详见在扇区自编程章节 ) (5) 写 / 读代码读 / 写代码操作可以将代码从 Flash 存储器中读出或写入 用户程序 ( 包括 ISP 和 SSP) 和 Flash 编程器都能执行该操作 若需用户程序执行该操作, 必须禁止所选扇区的代码保护控制模式 1 不管安全位设置与否, 用户程序都能读 / 写程序自身所在扇区 若需编程器执行该操作, 必须禁止所选扇区的代码保护控制模式 0 用户必须使用下列 2 种方式之一才能完成写 / 读代码 : 1. Flash 编程器在 ICP 模式发出写 / 读代码指令, 进行写 / 读代码 2. 通过 SSP 功能发出写 / 读代码指令, 进行写 / 读代码 (6) 写 / 读类 EEPROM 存储区 读 / 写类 EEPROM 存储区操作可以将数据从类 EEPROM 存储区中读出或写入 用户程序 (SSP) 和 Flash 编程器都能执行该操作 用户必须使用下列 2 种方式之一才能完成写 / 读类 EEPROM 存储区 : 1. Flash 编程器在 ICP 模式发出写 / 读类 EEPROM 存储区指令, 进行写 / 读类 EEPROM 存储区 2. 通过 SSP 功能发出写 / 读类 EEPROM 存储区指令, 进行写 / 读类 EEPROM 存储区 Flash 存储器操作汇总 操作 ICP SSP 代码保护支持不支持支持 扇区擦除支持 ( 无安全位 ) 支持 ( 无安全位 ) 支持 ( 无安全位 ) 整体擦除支持不支持支持 类 EEPROM 存储区擦除支持支持支持 写 / 读代码支持 ( 无安全位 ) 支持 ( 无安全位 ) 支持 ( 无安全位 ) 读 / 写类 EEPROM 存储区支持支持支持 ISP 18
19 8.3.2 ICP 模式下的 Flash 操作 ICP 模式为通过 Flash 编程器对 MCU 进行编程, 可以在 MCU 焊在用户板上以后编程 ICP 模式下, 用户系统必须关机后 Flash 编程器才能通过 ICP 编程接口刷新 Flash 存储器 ICP 编程接口包括 6 个引脚 (V DD,GND,TCK,TDI,TMS,TDO) 编程器使用 4 个 JTAG 引脚 (TDO,TDI,TCK,TMS) 进入编程模式 只有将特定波形输入 4 个引脚后,CPU 才能进入编程模式 如需详细说明请参考 Flash 编程器用户指南 在 ICP 模式中, 通过 6 线接口编程器能完成所有 Flash 操作 因为编程信号非常敏感, 所以使用编程器编程时用户需要先用 6 个跳线将芯片的编程引脚 (V DD,GND,TCK,TDI,TMS,TDO) 从应用电路中分离出来, 如下图所示 MCU VDD TMS TCK Flash Programmer TDI TDO GND To Application Circuit Jumper 当采用 ICP 模式进行操作时, 建议按照如下步骤进行操作 : (1) 在开始编程前断开跳线 (jumper), 从应用电路中分离编程引脚 ; (2) 将芯片编程引脚连接至 Flash 编程器编程接口, 开始编程 ; (3) 编程结束后断开 Flash 编程器接口, 连接跳线恢复应用电路 使用 ISP 模式下载程序 SH88F2051A/ 具有 1K 的引导扇区 在此扇区内, 出厂默认固化引导程式, 可以配合上位机软件, 通过 UART 口完成下载程式 使用此功能时, 只需要将 UART 口的 TXD 和 RXD 与编程器的相应引脚连接即可 如果在代码选项中选择 仅当 P3.4 和 P3.5 同时为低时进入 ISP 模式 时, 则必须将 P3.4 和 P3.5 同时拉低才能正确下载程序 详细说明见上位机软件说明文件 19
20 8.4 扇区自编程 (SSP SSP) 功能 SH88F2051A/ SH88F2051A/ 支持 SSP( 扇区自编程 ) 功能 如果所选扇区未被保护, 用户代码可以擦除所有扇区或对任何扇区执行编程操作 一旦该扇区被编程, 则在该扇区被擦除之前不能被再次编程 SH88F2051A/ 内建一个复杂控制流程以避免误入 SSP 模式导致代码被误修改 为进入 SSP 模式,IB_CON1-5 必须满足特定条件 若 IB_CON1-5 不满足特定条件, 则无法进入 SSP 模式 寄存器 Table 8.4 编程用地址选择寄存器 F7H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 XPAGE XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 读 / 写 读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 对 Flash 程序存储区, 一个扇区为 1024 字节, 该寄存器定义如下 : 位编号位符号说明 4-2 XPAGE[4:2] 被编程的存储单元扇区号,000 代表扇区 0, 以此类推 1-0 XPAGE[1:0] 被编程的存储单元高 2 位地址 注意 :2051 有 4K FLASH,4051 有 8K FLASH, 所以 2051 时 XPAGE.4 无效 对类 EEPROM 存储区, 一个扇区为 256 字节, 该寄存器定义如下 : 位编号位符号说明 7-1 XPAGE[7:1] 0 XPAGE[0] 保留位 注意 : 对于程序存储区, 一个扇区为 1024 字节 ; 对于类 EEPROM 存储区, 一个扇区为 256 字节 Table 8.5 编程用地址偏移寄存器 被编程的存储单元扇区号 ;0 代表扇区 0, 以此类推 FBH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_OFFSET IB_OFF SET.7 IB_OFF SET.6 IB_OFF SET.5 IB_OFF SET.4 IB_OFF SET.3 IB_OFF SET.2 IB_OFF SET.1 IB_OFF SET.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 对 Flash 程序存储区, 一个扇区为 1024 字节, 该寄存器定义如下 : 位编号位符号说明 7-0 IB_OFFSET[7:0] 被编程的存储单元低 8 位地址 对类 EEPROM 存储区, 一个扇区为 256 字节, 该寄存器定义如下 : 位编号位符号说明 7-0 IB_OFFSET[7:0] 被编程的存储单元低 8 位地址 20
21 Table 8.6 编程用数据寄存器 SH88F2051A/ FCH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_DATA IB_DATA.7 IB_DATA.6 IB_DATA.5 IB_DATA.4 IB_DATA.3 IB_DATA.2 IB_DATA.1 IB_DATA.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) 位编号位符号说明 7-0 IB_DATA DATA[7:0] 待编程数据 Table 8.7 SSP 操作模式选择寄存器 F2H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_CON1 IB_CON1.7 IB_CON1.6 IB_CON1.5 IB_CON1.4 IB_CON1.3 IB_CON1.2 IB_CON1.1 IB_CON1.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) 位编号位符号说明 7-0 IB_CON1[7:0] Table 8.8 SSP 流程控制寄存器 1 SSP 操作选择 0xE6: 扇区擦除 0x6E: 存储单元编程 F3H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_CON IB_CON2.3 IB_CON2.2 IB_CON2.1 IB_CON2.0 读 / 写 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) 位编号位符号说明 3-0 IB_CON2[3:0] 必须为 05H, 否则 Flash 编程将会终止 Table 8.9 SSP 流程控制寄存器 2 F4H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IB_CON IB_CON3.3 IB_CON3.2 IB_CON3.1 IB_CON3.0 读 / 写 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) 位编号位符号说明 3-0 IB_CON3[3:0] 必须为 0AH, 否则 Flash 编程将会终止 21
22 Table 8.10 SSP 流程控制寄存器 3 F5H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 IB_CON IB_CON4.3 IB_CON4.2 IB_CON4.1 IB_CON4.0 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) 位编号 位符号 说明 3-0 IB_CON4[3:0] 必须为 09H, 否则 Flash 编程将会终止 Table 8.11 SSP 流程控制寄存器 4 F6H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 IB_CON IB_CON5.3 IB_CON5.2 IB_CON5.1 IB_CON5.0 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) 位编号 位符号 说明 3-0 IB_CON5[3:0] 必须为 06H, 否则 Flash 编程将会终止 22
23 8.4.2 Flash 控制流程图 Set IB_OFFSET Set XPAGE Set IB_DATA Set IB_CON1 S0 IB_CON2[3:0] 5H Set IB_CON2[3:0]=5H IB_CON2 5H IB_CON3 AH S1 IB_CON2 5H ELSE S2 Set IB_CON3=AH IB_CON3 AH Set IB_CON4=9H Reset IB_CON1-5 IB_CON4 9H S3 S4 Set IB_CON5=6H Sector Erase IB_CON1=E6H &IB_CON2[3:0]=5H &IB_CON3=AH &IB_CON4=9H &IB_CON5=6H IB_CON1=6EH &IB_CON2[3:0]=5H &IB_CON3=AH &IB_CON4=9H &IB_CON5=6H Programming 23
24 8.4.3 SSP 编程注意事项为确保顺利完成 SSP 编程, 用户软件必须按以下步骤设置 : (1) 用于代码 / 数据编程 : 1. 关闭中断 ; 2. 按相应的待编程扇区号设置 XPAGE IB_OFFSET; 3. 按编程需要, 设置 IB_DATA; 4. 按照顺序设置 IB_CON1-5; 5. 添加 4 个 NOP 指令 ; 6. 开始编程,CPU 将进入 IDLE 模式 ; 编程完成后自动退出 IDLE 模式 ; 7. 如需继续写入数据, 跳转至第 3 步 ; 8. XPAGE 寄存器清 0, 恢复中断设置 (2) 用于扇区擦除 : 1. 关闭中断 ; 2. 按相应的扇区设置 XPAGE; 3. 按照顺序设置 IB_CON1-5; 4. 添加 4 个 NOP 指令 ; 5. 开始擦除,CPU 将进入 IDLE 模式 ; 擦除完成后自动退出 IDLE 模式 ; 6. 更多扇区擦除操作跳转至第 3 步 ; 7. 清除 XPAGE, 恢复中断设置 (3) 读取 : 使用 MOVC A,@A+DPTR 或者 MOVC A,@A+PC SH88F2051A/ (4) 关于类 EEPROM 区域 SH88F2051A/ 具有 512 的类 EEPROM, 地址是从 0000H - 01FFH 对于类 EEPROM 的操作类似于 Flash 的操作, 即类似上述 A/B/C 部分的描述 区别在于 : 1. 在对类 EEPROM 进行擦除 写或读之前, 应首先将 FLASHCON 寄存器的最低位 FAC 位置 1 2. 类 EEPROM 的扇区为 256 字节, 而不是 1024 字节注意 : 当不需要对类 EEPROM 操作时, 必须将 FAC 位清 可读识别码 SH88F2051A/ 每颗芯片出厂后都固化有一个 8 位的可读识别码, 它的值为 的随机值, 它是无法擦除的 它可以由程序或编程工具读出 读识别码时, 首先, 设置 FAC 位为 1, 然后给 DPTR 赋值 0A7FH, 将 A 清 0, 再使用 MOVC A,@A+DPTR 来读取 Table 访问控制寄存器 A7H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 FLASHCON FAC 读 / 写 读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) 位编号位符号说明 保留位 0 FAC 访问控制 0:MOVC 指令或者 SSP 功能访问 Main Block 区域 1:MOVC 指令或者 SSP 功能访问类 EEPROM 区域 注意 : 此识别码虽然采用读程式 ROM 的指令来读取, 但并未存放在程式 ROM 区, 指令靠 FAC 来区分访问识别码还是访问程式 ROM 区 因此读完识别码后必须将 FAC 清 0, 否则会影响用户程式读程式 ROM 的指令执行 24
25 8.5 系统时钟和振荡器 SH88F2051A/ 特性 支持 5 种振荡器类型 :32.768kHz 晶体谐振器, 晶体谐振器, 陶瓷谐振器, 外部时钟和内部 16.6M RC 振荡器 内建 16.6MHz(±2%)RC 振荡器 内建 kHz 加速电路 内建系统时钟分频器 时钟定义 SH88F2051A/ 几个内部时钟定义如下 : OSCCLK: 从 5 个可选振荡器类型中 ( 从 XTAL 输入的 kHz 晶体谐振器, 晶体谐振器, 陶瓷谐振器和外部时钟以及内部 16.6MHz RC 振荡器 ) 选中的那个振荡器的时钟 f OSC 定义为 OSCCLK 的频率 tosc 定义为 OSCCLK 的周期 WDTCLK: 内部的 32kHz 看门狗 RC 振荡器时钟 fwdt 定义为 WDTCLK 的频率 twdt 定义为 WDTCLK 的周期 OSCSCLK: 系统时钟频率分频器的输入时钟 这个时钟可能为 OSCCLK 或者内建 RC 振荡器的频率 foscs 定义为 OSCSCLK 的频率 toscs 定义为 OSCSCLK 的周期 SYSCLK: 系统时钟, 系统频率分频器的输出时钟 这个时钟为 CPU 指令周期的时钟 fsys 定义为 SYSCLK 的频率 t SYS 定义为 SYSCLK 的周期 概述 SH88F2051A/ 支持 5 种振荡器类型 : kHz 晶体谐振器, 晶体谐振器 ( 400kHz-16.6MHz ), 陶瓷谐振 (400kHz-16.6MHz), 外部时钟 (30kHz-16.6MHz) 和内部 RC 振荡器 (16.6MHz) 振荡器类型的选择由代码选项 OP_OSC 决定 ( 详见代码选项章节 ) 由振荡器产生的基本时钟脉冲提供系统时钟支持 CPU 及片上外围设备 25
26 8.5.4 寄存器 Table 8.13 系统时钟控制寄存器 B2H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 CLKCON 32K_SPDUP CLKS1 CLKS0 SCMIF RCON FS - - 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 - - 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号 位符号 说明 7 32K_SPDUP 6-5 CLKS[1:0] 3 RCON 2 FS KHz 振荡器加速模式控制位 0:32.768kHz 振荡器常规模式, 由软件清 0 1:32.768kHz 振荡器加速模式, 由软件或者硬件置 1 此位在系统发生任何形式的复位, 如上电复位, 看门狗复位等时, 自动由硬件设置 1, 用以加速 kHz 振荡器起振, 缩短 kHz 振荡器的起振时间 如果有需要, 本位也可以由软件置 1 或者清 0 比如进入掉电模式(Power-down mode) 前, 可以将此位置 1, 掉电模式唤醒后再由软件清 0 应该需要注意的是关闭 kHz 加速模式 ( 此位清 0), 可以节省系统的耗电 只有代码选项 OP_OSC 为 011 时 ( 选择 kHz 晶体振荡器, 详见代码选项章节 ), 此控制位才有效 系统时钟频率分频器 00:fSYS = foscs 01:fSYS = foscs/2 10:fSYS = foscs/4 11:fSYS = foscs/12 如果选择 kHz 振荡器为 OSCSCLK, 此控制位无效 内建 RC 振荡器控制 0: 关闭内建 RC 振荡器 1: 打开内建 RC 振荡器仅当 OP_OSC[2:0] 为 011 时, 此控制位才有效 ( 选择 kHz 晶体振荡器, 详见代码选项章节 ) 频率选择位 0: 选择 kHz 作为 OSCSCLK 1: 选择内建 RC 振荡器作为 OSCSCLK 只有代码选项 OP_OSC 为 011 时, 此控制位才有效 ( 选择 kHz 晶体振荡器, 详见代码选项章节 ) 注意 : RCON 和 FS 位仅当 OP_OSC[2:0] 为 011 时有效 ; 当选择内建 RC 振荡器作为系统时钟时 ( 即当 RCON = 1 和 FS = 1),RCON 不能由软件清除, 系统时钟监控功能不可用 当系统时钟由 kHz 切换到内建 RC 振荡器时, 操作必须遵循以下顺序 : 1. 置位 RCON, 开启内建 RC 振荡器 ; 2. 等待至少 2 个振荡器周期 ; 3. 置位 FS, 将系统时钟切换到内建 RC 振荡器 26
27 8.5.5 振荡器类型 (1) 内建 RC 振荡器 :16.6MHz XTAL1 XTAL2 (2) 晶体谐振器 :32.768kHz 和内部 RC 振荡器 :16.6MHz C1 XTAL1 Crystal XTAL2 C2 (3) 晶体 / 陶瓷谐振器 :400kHz MHz C1 XTAL1 Ceramic XTAL2 C2 (4) 外部时钟 :30kHz MHz XTAL1 External Clock XTAL 谐振器负载电容选择 频率 陶瓷谐振器 C1 C2 455kHz pF pF 3.58MHz - - 4MHz - - * 已经内建负载电容 注意 : (1) 表中负载电容为设计参考数据! (2) 以上电容值可通过谐振器基本的起振和运行测试, 并非最优值 (3) 请注意印制板上的杂散电容, 用户应在超过应用电压和温度的条件下测试谐振器的性能 在应用陶瓷谐振器 / 晶体谐振器之前, 用户需向谐振器生产厂要求相关应用参数以获得最佳性能 请登陆 以取得更多的推荐谐振器生产厂 27
28 8.6 系统时钟监控 (SCM SCM) SH88F2051A/ 为了增强系统的可靠性,SH88F2051A/ 含有一个系统时钟监控 (SCM) 模块 如果系统时钟出现故障 ( 例如 : 外部振荡器停振等 ), 内建 SCM 模块会将 OSCSCLK 自动切换到内部 WDT 时钟 (WDTCLK), 同时系统时钟监控标志位 (SCMIF) 被置 1 当 EA 和 ESCM 位均被置 1 时,SCM 模块将会产生中断 如果外部振荡器恢复工作,SCM 将会切换 OSCSCLK 到外部振荡器, 然后 SCMIF 位自动清 0 注意 : SCMIF 为只读寄存器, 只能由硬件清 0 或者置 1 如果 SCMIF 清 0,SCM 将系统时钟自动切换到系统时钟出故障前的状态 如果代码选项选择内部 RC 振荡器 ( 详见代码选项章节 ) 作为 OSCCLK, 则系统时钟监控功能不可用 Table 8.14 系统时钟控制寄存器 B2H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 CLKCON 32K_SPDUP CLKS1 CLKS0 SCMIF RCON FS - - 读 / 写读 / 写读 / 写读 / 写只读读 / 写读 / 写 - - 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) 位编号位符号说明 4 SCMIF 系统时钟监控标志位 0: 表示系统时钟正常运行 1: 表示系统时钟故障 28
29 8.7 I/O 端口 特性 14/18 个双向 I/O 端口 4 种可选 IO 模式 I/O 端口可与其他功能共享 SH88F2051A/ SH88F2051A/ 提供 14/18 个位可编程双向 I/O 端口 所有 I/O 可以通过 PxMy 寄存器设置成以下 4 种模式中的一种 : 准双向模式 ( 传统 8051 模式 ) 推挽输出模式 开漏输出模式和仅输入模式 用户可以通过代码选项设置所有 I/O 复位后默认为准双向模式或者默认为仅输入模式 为了提高抗干扰能力, 每个输入引脚都带有一个施密特触发器 即使处于掉电状态, 施密特触发器也不会关闭 SH88F2051A/ 的 I/O 引脚能与其它功能选择复用 当所有功能都允许时, 在 CPU 中存在优先级以避免功能冲突 ( 具体请参考端口共享章节 ) 注意当 I/O 工作于其它功能时, 即使改写 PxMy 寄存器也不会改变 I/O 的模式, 也不会改变当前 PxMy 寄存器中的值 只有当其它功能关闭时, 才允许通过改写相应的寄存器来改变 I/O 的模式 寄存器 Table 8.15 端口控制寄存器 E2H, E4H, E5H EAH, ECH, EDH 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 P1M0 (EA EAH) P1M07 P1M06 P1M05 P1M04 P1M03 P1M02 P1M01 P1M00 P1M1 (E2 E2H) P1M17 P1M16 P1M15 P1M14 P1M13 P1M12 P1M11 P1M10 P3M0 (EC ECH) P3M07 - P3M05 P3M04 P3M03 P3M02 P3M01 P3M00 P3M1 (E4 E4H) P3M17 - P3M15 P3M14 P3M13 P3M12 P3M11 P3M10 P4M0 (ED EDH) P4M02 P4M01 P4M00 P4M1 (E5 E5H) P4M12 P4M11 P4M10 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN)* * * * * * * * * *: 复位值根据不同的代码选项有不同 可通过代码选项设置复位后为准双向模式或者仅输入模式 ( 高阻态 ) 端口模式设置说明 PxM0n PxM1n 0 0 准双向模式 0 1 推挽输出模式 说明 1 0 仅输入模式 ( 高阻态 ) 1 1 开漏输出模式 (x = 1,3 或 4 n = 7,6,5,4,3,2,1 或 0) Table 8.16 端口数据寄存器 90H-C0H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 P1 (90H) P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P3 (B0H) P3.7 - P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 P4 (C0H) P4.2 P4.1 P4.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) * * * * * * * * *: 复位值由代码选项决定 若选择上电后为准双向结构, 则复位值为 0FFH; 若为仅输入结构, 则复位值为 00H 位编号位符号说明 Px.y 7-0 端口数据寄存器 x = 1-4, y = 0-7 注意 : 所有端口可作为 N- 沟道的开漏 I/O, 但是此时端口电压不得超过 VDD+0.3V 29
30 8.7.3 端口结构 准双向模式 (Quasi-Bi Quasi-Bi) 准双向口有 3 个上拉 MOS 管适应不同的需要, 分别称为 弱 (Weak) 上拉 极弱 (Very weak) 上拉 和 强 (Strong) 上拉 在 3 个上拉 MOS 管中, 有 1 个上拉 MOS 管称为 弱上拉, 当口线寄存器为 1 且引脚本身也为 1 时打开 此上拉提供基本驱动电流使准双向口输出为 1 如果一个引脚输出为 1 而由外部装置下拉到低时, 弱上拉关闭而 极弱上拉 维持开状态, 为了把这个引脚强拉为低, 外部装置必须有足够的灌电流能力使引脚上的电压降到门槛电压以下 第 2 个上拉 MOS 管, 称为 极弱上拉, 当口线锁存为 1 时打开 当引脚悬空时, 这个极弱的上拉源产生很弱的上拉电流将引脚上拉为高电平 第 3 个上拉 MOS 管称为 强上拉 当口线锁存器由 0 到 1 跳变时, 这个上拉用来加快准双向口由逻辑 0 到逻辑 1 转换 当发生这种情况时, 强上拉打开约 2 个机器周期以使引脚能够迅速地上拉到高电平 准双向模式的端口结构示意图如下所示 V DD V DD V DD 2 clocks delay strong very weak weak Port Pin Port latch data GND Input data 推挽输出模式 (Push-Pull Push-Pull) 准双向结构 推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同, 但当锁存器为 1 时提供持续的强上拉 推挽输出模式的端口结构示意图如下所示 V DD Port latc h data Port Pin G N D Input data 推挽输出模式 30
31 仅输入模式 (Input-Only Input-Only) 此种模式仅有输入, 没有输出能力 仅输入模式的端口结构示意图如下所示 Input data Port Pin 开漏输出模式 (Open-Drain Open-Drain) 仅输入模式 此种模式没有输出高的能力 如果需要输出高, 用户必须外接上拉电阻 注意此时外加引脚电压不得超过 V DD+0.3V 开漏输出模式的端口结构示意图如下所示 V DD "1" Port latch data Port Pin GN D Input data 开漏输出模式 31
32 8.7.4 端口共享 14/18 个双向 I/O 端口也能共享作为第二或第三种特殊功能 共享优先级按照外部最高内部最低的规则 : SH88F2051A/ 在引脚配置中引脚最外部标注功能享有最高优先级, 而最内部标注功能享有最低优先级 这意味着一个引脚已经使用较高优先级功能 ( 如果被允许的话 ), 就不能用作较低优先级功能, 即使较低优先级功能被允许 只有当较高优先级功能由软件关闭后, 相应的引脚才能用作较低优先级功能 如果第二功能允许, 对端口的读写都是针对端口寄存器的操作 14/18 个双向 I/O 端口可以提供一些特殊功能 : PORT ORT1: - AN0 - AN7(P1.0 - P1.7):ADC 模拟输入通道 - T2(P1.7): 定时器 2 外部输入 / 波特率时钟输出 - T2EX(P1.6): 定时器 2 重载 / 捕捉 / 方向控制 - CMPN(P1.1):CMP 负输入 - CMPP(P1.0):CMP 正输入 - VLPD(P1.3): 电源电压输入检测 - INT2(P1.2): 外部中断 2 Table 8.17 PORT1 共享列表 引脚编号优先级功能允许位 AN7 ADCH 寄存器中 ADCH.7 位置 1 且 ADCON 寄存器中 SCH[2:0] = T2 T2CON 寄存器中 TR2 位和 T2MOD 寄存器中 C/T2 位置 1 3 P1.7 ADCH 寄存器中 ADCH.7 位,T2CON 寄存器中 TR2 位和 T2MOD 寄存器中 C/T2 位清 0 1 AN6 ADCH 寄存器中 ADCH.6 位置 1 和 ADCON 寄存器中 SCH [2:0] = T2EX T2CON 寄存器中 TR2 位,T2MOD 寄存器中 C/T2 位和 EXEN2 位置 1 3 P1.6 ADCH 寄存器中 ADCH.6 位,T2CON 寄存器中 TR2 位,T2MOD 寄存器中 C/T2 位和 EXEN2 位清 0 1 AN5 ADCH 寄存器中 ADCH.5 位置 1 和 ADCON 寄存器中 SCH[2:0] = P1.5 ADCH 寄存器中 ADCH.5 位清 0 1 AN4 ADCH 寄存器中 ADCH.4 位置 1 且 ADCON 寄存器中 SCH[2:0] = P1.4 ADCH 寄存器中 ADCH.4 位清 0 1 AN3 ADCH 寄存器中 ADCH.3 位置 1 且 ADCON 寄存器中 SCH[2:0] = VLPD LPDCON 中的 LPDV 位置 1 3 P1.3 ADCH 寄存器中 ADCH.3 位和 LPDV 中的 LPDEN 位清 0 1 AN2 ADCH 寄存器中 ADCH.2 位置 1 且 ADCON 寄存器中 SCH[2:0] = INT2 IEN1 寄存器中 EX2 位置 1 3 P1.2 ADCH 寄存器中 ADCH.2 位和 IEN1 寄存器中 EX2 位清 0 1 AN1 ADCH 寄存器中 ADCH.1 位置 1 且 ADCON 寄存器中 SCH[2:0] = CMPN CMPCON 中的 CMPEN 置 1 3 P1.1 ADCH 寄存器中 ADCH.1 位和 CMPCON 中的 CMPEN 位清 0 1 AN0 ADCH 寄存器中 ADCH.0 位置 1 且 ADCON 寄存器中 SCH[2:0] = CMPP CMPCON 中的 CMPEN 置 1 3 P1.0 ADCH 寄存器中 ADCH.0 位且 CMPCON 中的 CMPEN 清 0 32
33 PORT ORT3: - RXD(P3.0):EUART 数据输入 - TXD(P3.1):EUART 数据输出 - INT0(P3.2): 外部中断 0 - INT1(P3.3): 外部中断 1 - T0(P3.4): 定时器 0 外部输入 - T1(P3.5): 定时器 1 外部输入 - PWM(P3.5):PWM 输出 - CMPO(P3.7):CMP 输出 Table 8.18 PORT3 共享列表 引脚编号优先级功能允许位 RXD SCON 寄存器中 REN 位置 1 2 P3.0 SCON 寄存器中 REN 位清 0 1 TXD 对 SBUF 寄存器写操作 2 P3.1 不对 SBUF1 寄存器写操作 1 INT0 IEN0 寄存器中 EX0 位置 1 2 P3.2 IEN0 寄存器中 EX0 位清 0 1 INT1 IEN0 寄存器中 EX1 位置 1 2 P3.3 IEN0 寄存器中 EX1 位清 0 1 T0 TCON 寄存器中 TR0 位和 TMOD 寄存器中 C/ T0 位置 1 2 P3.4 TCON 寄存器中 TR0 位和 TMOD 寄存器中 C/ T0 位清 0 1 PWM PWMCON 寄存器中 EPWM 位和 PWMSS 位置 1 2 T1 TCON 寄存器中 TR1 位和 TMOD 寄存器中 C/ T1 位置 1 3 P3.5 PORT ORT4: - RESET(P4.0): 复位 - XTAL2(P4.1): 谐振器输出 - XTAL1(P4.2): 谐振器输入 Table 8.19 PORT4 共享列表 SH88F2051A/ PWMCON 寄存器中 EPWM 位和 PWMSS 位及 TCON 寄存器中 TR1 位和 TMOD 寄存 器中 C/ T1 位清 0 1 CMPO CMPCON 寄存器中 CMPOC 置 1 2 P3.7 CMPCON 寄存器中 CMPOC 清 0 引脚编号优先级功能允许位 P4.0 代码选项 2 RESET 代码选项 1 P4.1 代码选项 2 XTAL2 代码选项 1 P4.2 代码选项 2 XTAL1 代码选项 注意 :RESET 引脚可与 P4.0 共享, 引脚功能通过代码选项 (OP_RST) 进行选择 33
34 8.8 定时器 特性 SH88F2051A/ 有 3 个定时器 ( 定时器 0,1,2) 定时器 0 兼容标准的 8051 定时器 1 兼容标准的 8051 定时器 2 兼容标准的 8052, 且有递增递减计数和可编程输出功能 定时器 0/1 增加了比较输出功能 定时器 0/1 增加了时钟源选择功能 定时器 0/1/2 增加了时钟源分频功能 SH88F2051A/ 定时器 0 和定时器 1 每个定时器的两个数据寄存器 (THx & TLx(x = 0,1)) 可作为一个 16 位寄存器来访问 它们由寄存器 TCON 和 TMOD 控制 IEN0 寄存器的 ET0 和 ET1 位置 1 能允许定时器 0 和定时器 1 中断 ( 详见中断章节 ) TCLKP1 和 TCLKP0 两位寄存器用于对系统时钟或 12 分频进行选择 当作为定时器应用时, 可在定时器 x(x = 0,1) 的时钟源选择寄存器中配置 TCLKS1 和 TCLKS0 两位分别选择 kHz 晶体谐振器作为定时器 0 和定时器 1 的时钟源 但 TCLKS1 和 TCLKS0 两位寄存器仅在代码选项选择 kHz 晶体谐振器作为时钟源时才可设置操作 定时器 x 的方式 (x = 0,1) 通过计数器 / 定时器方式寄存器 (TMOD) 的方式选择位 Mx1-Mx0, 选择定时器工作方式 方式 0:13 位计数器 / 定时器在方式 0 中, 定时器 x 为 13 位计数器 / 定时器 THx 寄存器存放 13 位计数器 / 定时器的高 8 位,TLx 存放低 5 位 (TLx.4-TLx.0) TLx 的高三位 (TLx.7-TLx.5) 是不确定的, 在读取时应该被忽略 当 13 位定时器寄存器递增, 溢出时, 系统置起定时器溢出标志 TFx 如果定时器 x 中断被允许, 将会产生一个中断 C/ Tx 位选择计数器 / 定时器的时钟源 如果 C/ Tx = 1, 定时器 x 输入引脚 (Tx) 的电平从高到低跳变, 使定时器 x 数据寄存器加 1 如果 C/ Tx = 0, 选择系统时钟为定时器 x 的时钟源 当 GATEx = 0 或 GATEx = 1 且输入信号 INTx 有效时,TRx 置 1 打开定时器 GATEx 置 1 允许定时器由外部输入信号 INTx 控制, 便于测量 INTx 的正脉冲宽度 TRx 位置 1 不强行复位定时器, 这意味着如果 TRx 置 1, 定时器寄存器将从上次 TRx 清 0 时的值开始计数 所以在允许定时器之前, 应该设定定时器寄存器的初始值 当作为定时器应用时, 可配置寄存器 TCON1 中的 TCLKSx(x = 0,1) 位选择系统时钟或 kHz 作为定时器 x(x = 0,1) 的时钟源 TCLKSx(x = 0,1) 位仅在代码选项选择了 kHz 晶体谐振器时才有效 可配置寄存器 TCON1 中的 TCLKPx(x = 0,1) 位选择系统时钟或系统时钟的 1/12 作为定时器 x(x = 0,1) 的时钟源 当作为定时器应用时, 可配置寄存器 TCON1 中的 TC0/1 位使定时器 0/1 溢出时 T0/T1 脚自动翻转 如果 TC0/1 被置 1,T0/T1 引脚自动设置为输出 System Clock 1 /12 Tx INTx TCLKPx khz GATEx TCLKSx = 0 C/Tx =1 + TLx (5bits) 0: Switch Off 1: Switch ON THx (8bits) Overflow C/Tx= 0 and TCx=1 TFx Overflow Flag Interrupt Request Tx TRx & The Block Diagram of mode 0 of Timerx (x=0, 1 ) 34
35 方式 1:16 16 位计数器 / 定时器除了使用 16 位定时器 / 计数器之外, 方式 1 的运行与方式 0 一致 打开和配置计数器 / 定时器也如同方式 0 System Clock 1 /12 Tx INTx khz TCLKPx GATEx TCLKSx = 0 C/Tx =1 + TLx (8bits) 0: Switch Off 1: Switch ON THx (8bits) Overflow C/Tx= 0 and TCx=1 TFx Overflow Flag Interrupt Request Tx TRx & The Block Diagram of mode 1 of Timerx (x=0, 1 ) 方式 2:8 位自动重载计数器 / 定时器方式 2 中, 定时器 x 是 8 位自动重载计数器 / 定时器 TLx 存放计数值,THx 存放重载值 当在 TLx 中的计数器溢出至 0x00 时, 置起定时器溢出标志 TFx, 寄存器 THx 的值被重载入寄存器 TLx 中 如果定时器中断使能, 当 TFx 置 1 时将产生一个中断 而在 THx 中的重载值不会改变 在允许定时器正确计数开始之前,TLx 必须初始化为所需的值 除了自动重载功能外, 方式 2 中的计数器 / 定时器的使能和配置与方式 1 和 0 是一致的 当作为定时器应用时, 可配置寄存器 TCON1 中的 TCLKSx(x = 0,1) 位选择系统时钟或 kHz 作为定时器 x(x = 0,1) 的时钟源 TCLKSx(x = 0,1) 位仅在代码选项选择了 kHz 晶体谐振器时才有效 可配置寄存器 TCON1 中的 TCLKPx(x = 0,1) 位选择系统时钟或系统时钟的 1/12 作为定时器 x(x = 0,1) 的时钟源 当作为定时器应用时, 可配置寄存器 TCON1 中的 TC0/1 位使定时器 0/1 溢出时 T0/T1 脚自动翻转 如果 TC0/1 被置 1,T0/T1 引脚自动设置为输出 Tx INTx System Clock 1 /12 TCLKPx khz GATEx TCLKSx = 0 C/Tx =1 + 0: Switch Off 1: Switch ON THx ( 8bits ) TLx ( 8bits) Reload Overflow C/Tx= 0 and TCx=1 TFx Overflow Flag Interrupt Request Tx TRx & The Block Diagram of mode 2 of Timerx (x=0, 1 ) 35
36 方式 3: 两个 8 位计数器 / 定时器 ( 只限于定时器 0) 在方式 3 中, 定时器 0 用作两个独立的 8 位计数器 / 定时器, 分别由 TL0 和 TH0 控制 TL0 通过定时器 0 的控制 ( 在 TCON 中 ) 和 状态 ( 在 TMOD 中 ) 位 :TR0,C/ T0,GATE0 和 TF0 控制 TL0 能用系统时钟或 kHz 或外部输入信号作为时钟源 TH0 只能用作定时器功能, 时钟源来自系统时钟 TH0 由定时器 1 的控制位 TR1 控制使能, 溢出时定时器 1 溢出标志 TF1 置 1, 控制定时器 1 中断 定时器 0 工作在方式 3 时, 定时器 1 可以工作在方式 0 1 或 2, 但是不能置 1 TF1 标志和产生中断, 定时器 1 溢出可以用来产生串口的波特率 TH1 和 TL1 只能用作定时器功能, 时钟源来自系统时钟,GATE1 位无效 T1 输入脚的上拉电阻也无效 定时器 1 由方式控制使能与否, 因为 TR1 被定时器 0 占用 定时器 1 在方式 0 1 或 2 时使能, 在方式 3 时被关闭 当作为定时器应用时, 可配置寄存器 TCON1 中的 TCLKS0 位选择系统时钟或 kHz 作为定时器 0 的时钟源 TCLKS0 位仅在代码选项选择了 kHz 晶体谐振器时才有效 可配置寄存器 TCON1 中的 TCLKP0 位选择系统时钟或系统时钟的 1/12 作为定时器 0 的时钟源 当作为定时器应用时, 可配置寄存器 TCON1 中的 TC0 位使定时器 0 溢出时 T0 脚自动翻转 如果 TC0 被置 1,T0 引脚自动设置为输出 System Clock 1 /12 T0 INT 0 TCLKP kHz GATE 0 TCLKS0 =0 C/T0 =1 + 0: Switch Off 1: Switch ON TL0 (8bits) Overflow C/T0= 0 and TC0=1 TF 0 Overflow Flag Interrupt Request T0 TR0 & System Clock 1 /12 TH0 (8bits ) Overflow TF1 Interrupt Request TCLKP kHz TCLKS0 Overflow Flag TR1 The Block Diagram of mode 3 of Timer 0 注意 : 当定时器 1 作为波特率发生器时, 读取或写入 TH1/TL1 会影响波特率的准确性, 因此也会引起通信出错 36
37 寄存器 Table 8.20 定时器 / 计数器 x 控制寄存器 (x = 0,1) SH88F2051A/ 88H 8H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7, 5 6, 4 3, 1 2, 0 TFx x = 0, 1 TRx x = 0, 1 IEx x = 0, 1 ITx x = 0, 1 定时器 x 溢出标志位 0: 定时器 x 无溢出, 可由软件清 0 1: 定时器 x 溢出, 由硬件置 1; 若由软件置 1 将会引起定时器中断 定时器 x 启动, 停止控制位 0: 停止定时器 x 1: 启动定时器 x 外部中断 x 请求标志位 外部中断 x 触发方式选择位 Table 8.21 定时器 / 计数器 x 方式寄存器 (x = 0,1) 89H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TMOD GATE1 C/ T1 M11 M10 GATE0 C/ T0 M01 M00 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7, 3 6, GATEx x = 0, 1 C/ Tx x = 0, 1 Mx[1:0] x = 0, 1 定时器 x 门控位 0:TRx 置 1, 定时器 x 即被允许 1: 只有 INTx 在高电平期间 TRx 置 1, 定时器 x 才被允许 定时器 / 计数器方式选择位 0: 定时器方式 1: 计数器方式 定时器 x 定时器方式选择位 00: 方式 0,13 位向上计数计数器 / 定时器, 忽略 TLx 的第 7-5 位 01: 方式 1,16 位向上计数计数器 / 定时器 10: 方式 2,8 位自动重载向上计数计数器 / 定时器 11: 方式 3( 只用于定时器 0), 两个 8 位向上计数定时器 37
38 Table 8.22 定时器 / 计数器 x 数据寄存器 (x = 0,1) SH88F2051A/ 8AH- AH-8DH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TL0(8AH 8AH) TL0.7 TL0.6 TL0.5 TL0.4 TL0.3 TL0.2 TL0.1 TL0.0 TH0(8CH 8CH) TH0.7 TH0.6 TH0.5 TH0.4 TH0.3 TH0.2 TH0.1 TH0.0 TL1(8BH 8BH) TL1.7 TL1.6 TL1.5 TL1.4 TL1.3 TL1.2 TL1.1 TL1.0 TH1(8DH 8DH) TH1.7 TH1.6 TH1.5 TH1.4 TH1.3 TH1.2 TH1.1 TH1.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7-0 TLx.y, THx.y x=0-1, y=0-7 定时器 x 低及高字节计数器 Table 8.23 定时器 / 计数器 x 时钟源选择和比较输出寄存器 (x = 0,1) CEH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TCON1 - TCLKS1 TCLKS0 - TCLKP1 TCLKP0 TC1 TC0 读 / 写 - 读 / 写读 / 写 - 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 6, TCLKSx x = 0, 1 TCLKPx x = 0, 1 TCx x = 0, 1 定时器 x 时钟源控制位 0: 系统时钟作为定时器 x 时钟源 1:32.768kHz 作为定时器 x 时钟源 分频选择控制位 0: 选择系统时钟的 1/12 作为定时器 x 的时钟源 1: 系统时钟作为定时器 x 的时钟源 比较输出功能允许位 0: 禁止定时器 x 比较输出功能 1: 允许定时器 x 比较输出功能 38
39 8.8.3 定时器 2 两个数据寄存器 (TH2 和 TL2) 串联后可作为一个 16 位寄存器来访问, 由寄存器 T2CON 和 T2MOD 控制 设置 IEN0 寄存器中的 ET2 位能允许定时器 2 中断 ( 详见中断章节 ) C/ 定时器 2 的工作方式与定时器 0 和定时器 1 相似 C/ T2 选择系统时钟 ( 定时器 ) 或外部引脚 T2( 计数器 ) 作为定时器时钟输入 通过所选的引脚设置 TR2 允许定时器 2/ 计数器 2 数据寄存器计数 定时器 2 方式定时器 2 有 4 种工作方式 : 捕获 / 重载, 带递增或递减计数器的自动重载方式, 波特率发生器和可编程时钟输出 RCLK,TCLK 和 CP/RL2 的组合能选择这些方式 定时器 2 方式选择 C/ T2 T2OE DCEN TR2 CP/RL2 RCLK TCLK 方式 X 0 X 位捕获 X 位自动重载定时器 X X X 0 X 1 X 2 波特率发生器 X 只用于可编程时钟 3 带波特率发生器的可编程时钟输出 X X X 0 X X X X 定时器 2 停止,T2EX 通路仍旧允许 0 1 X 1 X 1 X X 1 方式 0:16 位捕获 在捕获方式中,T2CON 的 EXEN2 位有两个选项 如果 EXEN2 = 0, 定时器 2 作为 16 位定时器或计数器, 如果 ET2 被允许的话, 定时器 2 能设置 TF2 溢出产生一个中断 如果 EXEN2 = 1, 定时器 2 执行相同操作, 但是在外部输入 T2EX 上的下降沿也能引起在 TH2 和 TL2 中的当前值分别被捕获到 RCAP2H 和 RCAP2L 中, 此外, 在 T2EX 上的下降沿也能引起在 T2CON 中的 EXF2 被置 1 如果 ET2 被允许,EXF2 位也像 TF2 一样也产生一个中断 System Clock 1/12 T2 TCLKP2 =0 C/T2 =1 Increment Mode TL2 TH2 TF2 TR2 0:Switch Off 1:Switch On Overflow flag CP / RL2 & + Interrupt Request T2EX EXEN2 0:Switch Off 1:Switch On RCAP2L RCAP2H EXF2 Block Diagram of 16 bit Capcture mode (Mode 0) of Timer2 External falling edge flag 39
40 方式 1:16 16 位自动重载定时器在 16 位自动重载方式下, 定时器 2 可以被选为递增计数或递减计数 这个功能通过 T2MOD 中的 DCEN 位 ( 递减计数允许 ) 选择 系统复位后,DCEN 位复位值为 0, 定时器 2 默认递增计数 当设置 DCEN 时, 定时器 2 递增计数或递减计数取决于 T2EX 引脚上的电平 当 DCEN = 0, 通过在 T2CON 中的 EXEN2 位选择两个选项 如果 EXEN2 = 0, 定时器 2 递增到 0FFFFH, 在溢出后置起 TF2 位, 同时定时器自动将用户软件写好的寄存器 RCAP2H 和 RCAP2L 的 16 位值装入 TH2 和 TL2 寄存器 如果 EXEN2 = 1, 溢出或在外部输入 T2EX 上的下降沿都能触发一个 16 位重载, 置起 EXF2 位 如果 ET2 被使能,TF2 和 EXF2 位都能产生一个中断 System Clock T2 TCLKP2 TR2 1/12 C/T2 =0 =1 0:Switch Off 1:Switch On Increment Mode TL2 TH2 TF2 Overflow Flag RCAP2L RCAP2H + Interrupt Request T2EX EXEN2 0:Switch Off 1:Switch On + External Falling Edge flag EXF2 The Block Diagram of Auto Relode Mode (Mode 1)of Timer2 (DCEN=0) 设置 DCEN 位允许定时器 2 递增计数或递减计数 当 DCEN = 1 时,T2EX 引脚控制计数的方向, 而 EXEN2 控制无效 T2EX 置 1 可使定时器 2 递增计数 定时器向 0FFFFH 溢出, 然后设置 TF2 位 溢出也能分别引起 RCAP2H 和 RCAP2L 上的 16 位值重载入定时器寄存器 T2EX 清 0 可使定时器 2 递减计数 当 TH2 和 TL2 的值等于 RCAP2H 和 RCAP2L 的值时, 定时器溢出 置起 TF2 位, 同时 0FFFFH 重载入定时器寄存器 无论定时器 2 溢出,EXF2 位都被用作结果的第 17 位 在此工作方式下,EXF2 不作为中断标志 FFH FFH System Clock 1/12 T2 TCLKP2 TR2 =0 C/T2 =1 0:Switch Off 1:Switch On TL2 TH2 TF2 Overflow Flag Interrupt Request T2EX 1.T2EX=1, Timer2 is up counter 2.T2EX=0, Timer2 is down counter RCAP2L RCAP2H Toggle EXF2 The Block Diagram of Auto-Reload Mode ( Mode 1) of Timer2 (DCEN=1) 40
41 方式 2: 波特率发生器通过设置 T2CON 寄存器中的 TCLK 和 / 或 RCLK 选择定时器 2 作为波特率发生器 接收器和发送器的波特率可以不同, 如果定时器 2 作为接收器或发送器则定时器 1 相应的作为另一种的波特率发生器 设置 RCLK 和 / 或 TCLK 使定时器 2 进入波特率发生器方式, 该方式与自动重载入方式相似 定时器 2 的溢出会使 RCAP2H 和 RCAP2L 寄存器中的值重载入定时器 2 计数器, 但不会产生中断 如果 EXEN2 被置 1, 在 T2EX 脚上的下降沿会置起 EXF2, 但不会引起重载 因此当定时器 2 作为波特率发生器时,T2EX 可作为一个额外的外部中断 在 EUART 方式 1 和 3 中的波特率由定时器 2 的溢出率根据下列方程式决定 1 f BaudRate = SYS ; C/ ---- T = 0,TCLKP2 = [ RCAP 2 H, RCAP 2 L] 1 f BaudRate = SYS ; C/ ---- T = 0,TCLKP2 = [ RCAP2 H, RCAP2 L] 1 f T2 BaudRate = [ RCAP 2H, RCAP 2L] ; C/ ---- T = 1 T2 T2EX System clock 1/2 TR 2 TCLKP 2 1/12 C / T 2 =1 EXEN2 0: Switch Off 1: Switch On =0 0: Switch Off 1: Switch On Timer1 Overflow /2 TL2 TH 2 RCAP2L RCAP2H RCLK =1 =0 TCLK =1 =0 EXF2 SMOD =0 =1 /16 /16 Timer 2 Interrupt Request Receiver CLK Transiver CLK The Block Diagram of Baund-Rate Generator (Mode2) of Timer2 41
42 方式 3: 可编程时钟输出 P1.7 可以编程输出 50% 的占空比时钟周期 清 C/ T2 位和置 T2OE 位, 使定时器 2 作为时钟发生器 TR2 位启动和中止定时器 T2 输出占空比为 50% 的时钟 : 1 f SYS ; TCLKP2 = 0 Clock Out Frequency = [ RCAP2 H, RCAP2 L] 1 f SYS Clock Out Frequency = [ RCAP 2H, RCAP 2L] ; TCLKP2 = 1 定时器 2 溢出不产生中断, 所以定时器 2 可以同时以相同频率用作波特率发生器和时钟输出 System Clock 1/2 1/12 =0 TCLKP2 C/ T2 =1 TL2 TH2 TR2 0:Switch Off 1:Switch On C/ T2 RCAP2L RCAP2H T2 /2 T2OE 0:Switch Off 1:Switch On EXEN2 T2EX 0:Switch Off 1:Switch On EXF2 Tim er2 Interrupt Request The Block Diagram of Programmable Clock output ( Mode 3 ) of Timer2 注意 : 1. TF2 和 EXF2 都能引起定时器 2 的中断请求, 两者有相同的向量地址 2. 当事件发生时或其它任何时间都能由软件设置 TF2 和 EXF2 为 1, 只有软件以及硬件复位才能使之清 0 3. 当 EA = 1 且 ET2 = 1 时, 设置 TF2 或 EXF2 为 1 能引起定时器 2 中断 4. 当定时器 2 作为波特率发生器时, 读取或写入 TH2/TL2, 写入 RCAPH2/RCAPL2 会影响波特率的准确性, 因此也会引起通信出错 42
43 寄存器 Table 8.24 定时器 2 控制寄存器 C8H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 T2CON TF2 EXF2 RCLK TCLK EXEN2 TR2 C/ ---- T CP/ RL2 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7 TF2 6 EXF2 5 RCLK 4 TCLK 3 EXEN2 2 TR2 1 C/ T2 0 CP/ RL2 定时器 2 溢出标志位 0: 无溢出 ( 必须由软件清 0) 1: 溢出 ( 如果 RCLK = 0 和 TCLK = 0, 由硬件设 1) T2EX 引脚外部事件输入 ( 下降沿 ) 被检测到的标志位 0: 无外部事件输入 ( 必须由软件清 0) 1: 检测到外部输入 ( 如果 EXEN2 = 1, 由硬件设 1) EUART 接收时钟控制位 0: 定时器 1 产生接收波特率 1: 定时器 2 产生接收波特率 EUART 发送时钟控制位 0: 定时器 1 产生发送波特率 1: 定时器 2 产生发送波特率 T2EX 引脚上的外部事件输入 ( 下降沿 ) 用作重载 / 捕获触发器允许 / 禁止控制位 0: 忽略 T2EX 引脚上的事件 1: 当定时器 2 不做为 EUART 时钟 (T2EX 始终包括上拉电阻 ) 时, 检测到 T2EX 引脚上一个下降沿, 产生一个捕获或重载 定时器 2 开始 / 停止控制位 0: 停止定时器 2 1: 开始定时器 2 定时器 2 定时器 / 计数器方式选定位 0: 定时器方式,T2 引脚用作 I/O 端口 1: 计数器方式, 内部上拉电阻被打开 捕获 / 重载方式选定位 0:16 位带重载功能的定时器 / 计数器 1:16 位带捕获功能的定时器 / 计数器 43
44 Table 8.25 定时器 2 方式控制寄存器 SH88F2051A/ C9H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 T2MOD TCLKP T2OE DCEN 读 / 写读 / 写 读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7 TCLKP2 1 T2OE 0 DCEN Table 8.26 定时器 2 重载 / 捕获和数据寄存器 分频选择控制位 0: 选择系统时钟的 1/12 作为定时器 2 的时钟源 1: 系统时钟作为定时器 2 的时钟源 定时器 2 输出允许位 0: 设置 P1.7/T2 作为时钟输入或 I/O 端口 1: 设置 P1.7/T2 作为时钟输出 ( 波特率发生器方式 ) 递减计数允许位 0: 禁止定时器 2 作为递增 / 递减计数器, 定时器 2 仅作为递增计数器 1: 允许定时器 2 作为递增 / 递减计数器 CAH- H-CDH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 RCAP2L RCAP2L.7 RCAP2L.6 RCAP2L.5 RCAP2L.4 RCAP2L.3 RCAP2L.2 RCAP2L.1 RCAP2L.0 RCAP2H RCAP2H.7 RCAP2H.6 RCAP2H.5 RCAP2H.4 RCAP2H.3 RCAP2H.2 RCAP2H.1 RCAP2H.0 TL2 TL2.7 TL2.6 TL2.5 TL2.4 TL2.3 TL2.2 TL2.1 TL2.0 TH2 TH2.7 TH2.6 TH2.5 TH2.4 TH2.3 TH2.2 TH2.1 TH2.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 RCAP2L.x RCAP2H.x TL2.x TH2.x 定时器 2 重载 / 捕获数据,x = 0-7 定时器 2 高位低位计数器,x =
45 8.9 中断 特性 12 个中断源 4 层中断优先级 概述 SH88F2051A/ SH88F2051A/ 有 12 个中断源 :3 个外部中断 ( 外部中断 0/1/2),3 个定时器中断 ( 定时器 0/1/2),1 个 LPD 中断,1 个 CMP 中断,1 个 EUART 中断,1 个 PWM 中断,ADC 中断和 SCM 中断 中断允许任何一个中断源均可通过对寄存器 IEN0 和 IEN1 中相应的位置 1 或清 0, 实现单独允许或禁止 IEN0 寄存器中还包含了一个全局允许位 EA, 它是所有中断的总开关 一般在复位后, 所有中断允许位设置为 0, 所有中断被禁止 Table 8.27 初级中断允许寄存器 A8H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IEN0 EA EADC ET2 ES0 ET1 EX1 ET0 EX0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN POR/WDT/LVR/PIN) 位编号位符号说明 7 EA 6 EADC 5 ET2 4 ES0 3 ET1 2 EX1 1 ET0 0 EX0 所有中断允许位 0: 禁止所有中断 1: 允许所有中断 ADC 中断允许位 0: 禁止 ADC 中断 1: 允许 ADC 中断 定时器 2 溢出中断允许位 0: 禁止定时器 2 溢出中断 1: 允许定时器 2 溢出中断 EUART 中断允许位 0: 禁止 EUART 中断 1: 允许 EUART 中断 定时器 1 溢出中断允许位 0: 禁止定时器 1 溢出中断 1: 允许定时器 1 溢出中断 外部中断 1 允许位 0: 禁止外部中断 1 1: 允许外部中断 1 定时器 0 溢出中断允许位 0: 禁止定时器 0 溢出中断 1: 允许定时器 0 溢出中断 外部中断 0 允许位 0: 禁止外部中断 0 1: 允许外部中断 0 45
46 Table 8.28 次级中断允许寄存器 SH88F2051A/ A9H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IEN1 ELPD - EPWM ESCM - EX2 ECMP - 读 / 写读 / 写 - 读 / 写读 / 写 - 读 / 写读 / 写 - 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7 ELPD 5 EPWM 4 ESCM 2 EX2 1 ECMP LPD 中断允许位 0: 禁止 LPD 中断 1: 允许 LPD 中断 PWM 中断允许位 0: 禁止 PWM 中断 1: 允许 PWM 中断 SCM 中断允许位 0: 禁止 SCM 中断 1: 允许 SCM 中断 外部中断 2 允许位 0: 禁止外部中断 2 1: 允许外部中断 2 模拟比较器 0 中断允许位 0: 禁止模拟比较器中断 1: 允许模拟比较器中断 46
47 8.9.4 中断标志每个中断源都有自己的中断标志, 当产生中断时, 硬件会置起相应的标志位, 在中断汇总表中列出各中断标志位 外部中断源产生外部中断 INTx(x = 0/1/2) 时, 如果中断为边沿触发,CPU 在响应中断后, 各中断标志位 (TCON 寄存器的 IE0/1 位,EXF0 寄存器的 IE2 位 ) 被硬件清 0; 如果中断是低电平触发, 外部中断源引脚电平直接控制中断标志, 而不是由片上硬件控制 定时器 0/1 的计数器溢出时,TCON 寄存器的 TFx(x = 0,1) 中断标志位置 1, 产生定时器 0/1 中断,CPU 在响应中断后, 标志被硬件自动清 0 T2CON 寄存器的 TF2 或 EXF2 标志位置 1 时, 产生定时器 2 中断,CPU 在响应中断后, 标志不能被硬件自动清 0 事实上, 中断服务程序必须决定是由 TF2 或是 EXF2 产生中断, 标志必须由软件清 0 SCON 寄存器的标志 RI 或 TI 置 1 时, 产生 EUART 中断,CPU 在响应中断后, 标志不能被硬件自动清 0 事实上, 中断服务程序必须判断是收中断还是发中断, 标志必须由软件清 0 ADCON 寄存器的 ADCIF 标志位置 1 时, 产生 ADC 中断 如果中断产生,ADDH/ADDL 中的转换结果是有效的 如果 ADC 模块的连续比较功能打开, 在每次转换中, 如果转换结果小于比较值时,ADCIF 标志位为 0; 如果转换结果大于等于比较值时,ADCIF 标志位置 1,ADCIF 中断标志必须由软件清除 SCM 寄存器的 SCMIF 标志位置 1 时, 产生 SCM 中断, 标志必须由硬件清 0 PWMCON 寄存器的 PWMIF 标志位置 1 时, 产生 PWM 中断, 标志必须由软件清 0 当 LPDCON 寄存器中的 LPDF 标志位置 1 时, 产生 LPD 中断 标志由硬件置位或者清除, 软件可以清除此标志, 但不能置 1 Table 8.29 定时器 x/ 计数器 x 控制寄存器 (x = 0, 1) 88H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7, 5 6, 4 3, 1 2, 0 TFx (x = 0, 1) TRx (x = 0, 1) IEx (x = 0, 1) ITx (x = 0, 1) 定时器 x 溢出标志 0: 定时器 x 无溢出 1: 定时器 x 溢出 定时器 x 启动, 停止控制 0: 停止定时器 x 1: 启动定时器 x 外部中断 x 请求标志 0: 无中断挂起 1: 中断挂起 外部中断 x 触发方式 0: 低电平触发 1: 下降沿边触发 47
48 Table 8.30 外部中断标志寄存器 0 E8H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 EXF IT2.1 IT2.0 - IE2 读 / 写 读 / 写 读 / 写 - 读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号 位符号 说明 3-2 IT2[1:0] 0 IE2 外部中断 2 触发模式位 00: 低电平触发 01: 下降沿触发 10: 上升沿触发 11: 双沿触发 外部中断 2 请求标志位 0: 无中断挂起 1: 中断挂起 48
49 8.9.5 中断向量当一个中断产生时, 程序计数器内容被压栈, 相应的中断向量地址被载入程序计数器 中断向量的地址在中断汇总表中详细列出 中断优先级 每个中断源都可被单独设置为 4 个中断优先级之一, 分别通过清 0 或置 1 IPL0,IPH0,IPL1,IPH1 中相应位来实现 中断优先级服务程序描述如下 : 响应一个中断服务程序时, 可响应更高优先级的中断, 但不能响应同优先级或低优先级的另一个中断 响应最高级中断服务程序时, 不响应其它任何中断 如果不同中断优先级的中断源同时申请中断时, 响应较高优先级的中断申请 如果同优先级的中断源在指令周期开始时同时申请中断, 那么内部查询序列确定中断请求响应顺序 IPHx 优先位 IPLx 中断优先级 中断优先级 0 0 等级 0( 最低优先级 ) 0 1 等级 等级 等级 3( 最高优先级 ) Table 8.31 中断优先级控制寄存器 B8H,B4H B4H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IPL0 - PADCL PT2L PSL PT1L PX1L PT0L PX0L IPH0 - PADCH PT2H PSH PT1H PX1H PT0H PX0H 读 / 写 - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) B9H,B5H B5H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 IPL1 PLPDL - PPWML PSCML - PX2L PCMPL - IPH1 PLPDH - PPWMH PSCMH - PX2H PCMPH - 读 / 写读 / 写 - 读 / 写读 / 写 - 读 / 写读 / 写 - 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7-0 PxxxL/H 相应中断源 xxx 优先级选择 49
50 8.9.7 中断处理中断标志在每个机器周期都会被采样获取 所有中断都在时钟的上升沿被采样 如果一个标志被置起, 那么 CPU 捕获到后中断系统调用一个长转移指令 (LCALL) 调用其中断服务程序, 但由硬件产生的 LCALL 会被下列任何条件阻止 : 同级或更高级的优先级中断在运行中 当前的周期不是执行中指令的最后一个周期 换言之, 正在执行的指令完成前, 任何中断请求都得不到响应 正在执行的是一条 RETI 或者访问专用寄存器 IEN0\1 或是 IPL\H 的指令 换言之, 在 RETI 或者读写 IEN0\1 或是 IPL\H 之后, 不会马上响应中断请求, 而至少在执行一条其它指令之后才会响应 注意 : 因为更改优先级通常需要 2 条指令, 在此期间, 建议关闭相应的中断以避免在修改优先级过程中产生中断 如果当模块状态改变而中断标志不再有效时, 将不会响应此中断 每一个轮询周期只查询有效的中断请求 轮询周期 /LCALL 次序如下图所示 : C1 C2 C3 C3~Cn Cn~Cn+7 Cn+8 Interrupt Polled Interrupt Signal Generated Interrupt Pending Long Call to Interrupt Vector Service Interrupt service Interrupt Latched 中断响应时间 由硬件产生的 LCALL 把程序计数器中的内容压入堆栈 ( 但不保存 PSW), 然后将相应中断源的向量地址 ( 参照中断向量表 ) 存入程序计数器 中断服务程序从指定地址开始, 到 RETI 指令结束 RETI 指令通知处理器中断服务程序结束, 然后把堆栈顶部两字节弹出, 重载入程序计数器中, 执行完中断服务程序后程序回到原来停止的地方 RET 指令也可以返回到原来地址继续执行, 但是中断优先级控制系统仍然认为一个同一优先级的中断被响应, 这种情况下, 当同一优先级或低优先级中断将不会被响应 中断响应时间如果检测出一个中断, 这个中断的请求标志位就会在被检测后的每个机器周期被置起 内部电路会保持这个值直到下一个机器周期,CPU 会在第 3 个机器周期产生中断 如果响应有效且条件允许, 在下一个指令执行的时候硬件 LCALL 指令将调用请求中断的服务程序, 否则中断被挂起 LCALL 指令调用程序需要 7 个机器周期 因而, 从外部中断请求到开始执行中断程序至少需要 3+7 个完整的机器周期 当请求因前述的的三个情况受阻时, 中断响应时间会加长 如果同级或更高优先级的中断正在执行, 额外的等待时间取决于正执行的中断服务程序的长度 如果正在执行的指令还没有进行到最后一个周期, 假如正在执行 RETI 指令, 则完成正在执行的 RETI 指令, 需要 8 个周期, 加上为完成下一条指令所需的最长时间 20 个机器周期 ( 如果该指令是 16 位操作数的 DIV,MUL 指令 ), 若系统中只有一个中断源, 再加上 LCALL 调用指令 7 个机器周期, 则最长的响应时间是 个机器周期 所以, 中断响应时间一般大于 10 个机器周期小于 37 个机器周期 50
51 8.9.9 外部中断输入 SH88F2051A/ 有 3 个外部中断输入 外部中断 0-2 各有一个独立的中断源 外部中断 0/1 可以通过设置 TCON 寄存器的 IT1,IT0 位来选择是电平触发或是边沿触发 当 ITx = 0(x = 0,1) 时, 外部中断 INTx(x = 0,1) 引脚为低电平触发 ; 当 ITx = 1(x = 0,1), 外部中断 INTx(x = 0,1) 为沿触发, 在这个方式中, 一个周期内 INTx(x = 0,1) 引脚上连续采样为高电平而下个周期为低电平,TCON 寄存器的中断请求标志位置 1, 发出一个中断请求 由于外部中断引脚每个机器周期采样一次, 输入高或低电平应当保持至少 1 个机器周期以确保能够被正确采样到 如果外部中断为下降沿触发, 外部中断源应当将中断脚至少保持 1 个机器周期高电平, 然后至少保持 1 个机器周期低电平 这样就确保了边沿能够被检测到以使 IEx 置 1 当调用中断服务程序后,CPU 自动将 IEx 清 0 如果外部中断为低电平触发, 外部中断源必须一直保持请求有效, 直到产生所请求的中断为止, 此过程需要 2 个系统时钟周期 如果中断服务完成后而外部中断仍旧维持, 则会产生下一次中断 当中断为电平触发时不必清除中断标志 IEx(x = 0,1,2), 因为中断只与输入口电平有关 外部中断 2 除了具有更多的中断触发方式外, 与外部中断 0,1 操作类似 当 SH88F2051A/ 进入空闲或是掉电模式, 中断会唤醒处理器继续工作, 详见电源管理章节 注意 : 外部中断 0-2 的中断标志位在执行中断服务程序时被自动硬件清 0 1 Machine Cyle High-Level Threshold Low-Level Threshold >1 Machine Cycle Low-Level Threshold >2 Machine Cycle 外部中断检测 中断汇总中断源 向量地址 允许位 标志位 轮询优先级 中断号 (C51 51) Reset 0000H - - 0( 最高级 ) - INT0 0003H EX0 IE0 1 0 Timer0 000BH ET0 TF0 2 1 INT1 0013H EX1 IE1 3 2 Timer1 001BH ET1 TF1 4 3 EUART 0023H ES RI+TI 5 4 Timer2 002BH ET2 TF2+EXF2 6 5 ADC 0033H EADC ADCIF 7 6 CMP 0043H ECMP CMPIF 8 8 INT2 004BH EX2 IE2 9 9 SCM 005BH ESCM SCMIF PWM 0063H EPWM PWMIF LPD 0073H ELPD LPDF
52 9. 增强功能 9.1 增强型通用异步收发器 (EUART EUART) 特性 SH88F2051A/ 带有 1 个 EUART, 兼容传统 8051 波特率可选择为系统时钟分频或定时器 1/2 的溢出率 增强功能包括帧出错检测及自动地址识别 EUART 有四种工作方式 EUART 工作方式 SH88F2051A/ EUART 有 4 种工作方式 在通信之前用户必须先初始化 SCON, 选择方式和波特率 如果使用方式 1 或方式 3 应先初始化定时器 1 或定时器 2 在所有四种方式中, 任何将 SBUF 作为目标寄存器的写操作都会启动发送 在方式 0 中由条件 RI = 0 和 REN = 1 初始化接收 这会在 TxD 引脚上产生一个时钟信号, 然后在 RxD 引脚上移 8 位数据 在其他方式中由输入的起始位初始化接收 ( 如果 REN = 1) 通过发送起始位, 外部发送器开始通信 EUART 方式列表 SM0 SM1 方式类型波特率帧长度起始位停止位第 9 位 同步 SYSCLK/(4 或 12) 8 位无无无 异步定时器 1 或 2 的溢出率 /(16 或 32) 10 位 1 1 无 异步 SYSCLK/(32 或 64) 11 位 1 1 0, 异步定时器 1 或 2 的溢出率 /(16 或 32) 11 位 1 1 0,1 方式 0: 同步, 半双工通讯 方式 0 支持与外部设备的同步通信 在 RXD 引脚上收发串行数据 TXD 引脚用作发送移位时钟 SH88F2051A/ 提供 TxD 引脚上的移位时钟 因此这个方式是串行通信的半双工方式 在这个方式中, 每帧收发 8 位, 低位先接收或发送 通过置 SM2 位 (SCON.5) 为 0 或 1, 波特率固定为系统时钟的 1/12 或 1/4 当 SM2 位为 0 时, 串行端口以系统时钟的 1/12 运行 当置 1 时, 串行端口以系统时钟的 1/4 运行 与标准 8051 唯一不同的是,SH88F2051A/ 在方式 0 中有可变波特率 功能块框图如下图所示 数据通过 RxD 引脚进入和移出串行端口 移位时钟由 TxD 引脚输出, 用来移位进出 SH88F2051A/ 的数据 Transmit Shift Register System Clock 12 4 Write to SBUF TX START Internal Data Bus TX SHIFT PARIN LOAD CLOCK SOUT RXD SM2 0 1 TX CLOCK SERIAL CONTROLLER TI RI Serial Port Interrupt RX CLOCK SHIFT CLOCK TXD RI REN RX START LOAD SBUF RX SHIFT Read SBUF CLOCK RXD SIN PAROUT SBUF SBUF Receive Shift Register 52
53 任何将 SBUF 作为目标寄存器的写操作都会启动发送 下一个系统时钟 Tx 控制块开始发送 数据转换发生在移位时钟的下降沿, 移位寄存器的内容逐次从左往右移位, 空位置 0 当移位寄存器中的所有 8 位都发送后,Tx 控制模块停止发送操作, 然后在下一个系统时钟的上升沿将 TI 置 1(SCON.1) Write to SBUF RxD TxD D0 D1 D2 D3 D4 D5 D6 D7 TI Send Timing of Mode 0 REN(SCON.4) 置 1 和 RI(SCON.0) 清 0 初始化接收 下一个系统时钟启动接收, 在移位时钟的上升沿锁存数据, 接收转换寄存器的内容逐次向左移位 当所有 8 位都接收到接收移位寄存器中后,Rx 控制块停止接收, 然后在下一个系统时钟的上升沿上 RI 置 1, 直到被软件清 0 才允许接收 RxD D0 D1 D2 D3 D4 D5 D6 D7 TxD RI 方式 1:8 位 EUART, 可变波特率, 异步全双工 Receive Timing of Mode 0 方式 1 提供 10 位全双工异步通信,10 位由一个起始位 ( 逻辑 0),8 个数据位 ( 低位为第一位 ), 和一个停止位 ( 逻辑 1) 组成 在接收时, 这 8 个数据位存储在 SBUF 中而停止位储存在 RB8(SCON.2) 中 方式 1 中的波特率是可变的, 串行收发波特率可被设置为定时器 1 溢出率的 1/16 或 1/32, 或是定时器 2 溢出率的 1/16.( 详见波特率章节 ) 功能块框图如下图所示 Timer1 Overflow Timer 2 Overflow Transmit Shift Register STOP SMOD Write to SBUF Internal Data Bus PARIN START LOAD CLOCK SOUT TXD TCLK 0 1 TX START TX SHIFT RCLK TX CLOCK SERIAL CONTROLLER TI RI Serial Port Interrupt SAMPLE RX CLOCK LOAD SBUF 1-TO-0 DETECTOR RX START RX SHIFT Read SBUF RXD BIT DETECTOR CLOCK SIN PAROUT D8 SBUF RB8 Internal Data Bus Receive Shift Register 53
54 任何将 SBUF 作为目标寄存器的写操作都会启动发送, 实际上发送是从 16 分频计数器中的下一次跳变之后的系统时钟开始的, 因此位时间与 16 分频计数器是同步的, 与对 SBUF 的写操作不同步 起始位首先在 TxD 引脚上移出, 然后是 8 位数据位 在发送移位寄存器中的所有 8 位数据都发送完后, 停止位在 TxD 引脚上移出, 在停止位发出的同时 Tl 标志置 1 Write to SBUF TxD Start D0 D1 D2 D3 D4 D5 D6 D7 Stop Shift CLK TI Send Timing of Mode 1 只有 REN 位置 1 时才允许接收 当 RxD 引脚检测到下降沿时串行口开始接收串行数据 为此,CPU 对 RxD 不断采样, 采样速率为波特率的 16 倍 当检测下降沿时,16 分频计数器立即复位, 这有助于 16 分频计数器与 RxD 引脚上的串行数据位同步 16 分频计数器把每一位的时间分为 16 个状态, 在第 状态时, 位检测器对 RXD 端的电平进行采样 为抑制噪声, 在这 3 个状态采样中至少有 2 次采样值一致数据才被接收 如果所接收的第一位不是 0, 说明这位不是一帧数据的起始位, 该位被忽略, 接收电路被复位, 等待 RxD 引脚上另一个下降沿的到来 若起始位有效, 则移入移位寄存器, 并接着移入其它位到移位寄存器 8 个数据位和 1 个停止位移入之后, 移位寄存器的内容被分别装入 SBUF 和 RB8 中,RI 置 1, 但必须满足下列条件 : 1. RI = 0 2. SM2 = 0 或者接收的停止位 = 1 如果这些条件被满足, 那么停止位装入 RB8,8 个数据位装入 SBUF,RI 被置 1 否则接收的帧会丢失 这时, 接收器将重新去探测 RxD 端是否另一个下降沿 用户必须用软件清除 RI, 然后才能再次接收 RxD Start D0 D1 D2 D3 D4 D5 D6 D7 Stop Bit Sample Shift CLK RI Receive Timing of Mode 1 54
55 方式 2:9 位 EUART, 固定波特率, 异步全双工这个方式使用异步全双工通信中的 11 位 一帧由一个起始位 ( 逻辑 0),8 个数据位 ( 低位为第一位 ), 一个可编程的第 9 数据位和一个停止位 ( 逻辑 1) 组成 方式 2 支持多机通信和硬件地址识别 ( 详见多机通讯章节 ) 在数据传送时, 第 9 数据位 (SCON 中的 TB8) 可以写 0 或 1, 例如, 可写入 PSW 中的奇偶位 P, 或用作多机通信中的数据 / 地址标志位 当接收到数据时, 第 9 数据位进入 RB8 而停止位不保存 PCON 中的 SMOD 位选择波特率为系统工作频率的 1/32 或 1/64 功能块框图如下所示 SMOD System Clock Write to SBUF TX START Internal Data Bus TX SHIFT TB8 Transmit Shift Register D8 STOP PARIN START LOAD CLOCK SOUT TXD 32 TX CLOCK 32 SERIAL CONTROLLER TI RI Serial Port Interrupt SAMPLE RX CLOCK LOAD SBUF 1-TO-0 DETECTOR RX START RX SHIFT Read SBUF RXD BIT DETECTOR CLOCK SIN PAROUT D8 SBUF RB8 Internal Data Bus Receive Shift Register 任何将 SBUF 作为目标寄存器的写操作都会启动发送, 同时也将 TB8 载入到发送移位寄存器的第 9 位中 实际上发送是从 16 分频计数器中的下一次跳变之后的系统时钟开始的, 因此位时间与 16 分频计数器是同步的, 与对 SBUF 的写操作不同步 起始位首先在 TxD 引脚上移出, 然后是第 9 数据位 在发送转换寄存器中的所有 9 位数据都发送完后, 停止位在 TxD 引脚上移出, 在停止位开始发送时 Tl 标志置 1 Write to SBUF TxD Start D0 D1 D2 D3 D4 D5 D6 D7 D8 Stop Shift CLK TI Send Timing of Mode 2 55
56 只有 REN 位置 1 时才允许接收 当 RxD 引脚检测到下降沿时串行口开始接收串行数据 为此,CPU 对 RxD 不断采样, 采样速率为波特率的 16 倍 当检测下降沿时,16 分频计数器立即复位 这有助于 16 分频计数器与 RxD 引脚上的串行数据位同步 16 分频计数器把每一位的时间分为 16 个状态, 在第 状态时, 位检测器对 RXD 端的电平进行采样 为抑制噪声, 在这 3 个状态采样中至少有 2 次采样值一致数据才被接收 如果所接收的第一位不是 0, 说明这位不是一帧数据的起始位, 该位被胡略, 接收电路被复位, 等待 RxD 引脚上另一个下降沿的到来 若起始位有效, 则移入移位寄存器, 并接着移入其它位到移位寄存器 9 个数据位和 1 个停止位移入之后, 移位寄存器的内容被分别装入 SBUF 和 RB8 中,RI 置 1, 但必须满足下列条件 : 1. RI = 0 2. SM2 = 0 或者接收的第 9 位 = 1, 且接收位符合 EUART 地址如果这些条件被满足, 那么第 9 位移入 RB8,8 位数据移入 SBUF,RI 被置 1 否则接收的数据帧会丢失 在停止位的当中, 接收器回到寻找 RxD 引脚上的另一个下降沿 用户必须用软件清除 RI, 然后才能再次接收 RxD Start D0 D1 D2 D3 D4 D5 D6 D7 D8 Stop Bit Sample Shift CLK RI Receive Timing of Mode 2 方式 3:9 位 EUART, 可变波特率, 异步全双工方式 3 使用方式 2 的传输协议以及方式 1 的波特率产生方式 Timer 1 Overflow Timer 2 Overflow Transmit Shift Register STOP SMOD TB8 D8 2 Internal PARIN Data Bus SOUT TXD Write to SBUF START LOAD 0 1 CLOCK TCLK 0 1 TX START TX SHIFT RCLK TX CLOCK SERIAL CONTROLLER TI RI Serial Port Interrupt SAMPLE RX CLOCK LOAD SBUF 1-TO-0 DETECTOR RX START RX SHIFT Read SBUF RXD BIT DETECTOR CLOCK SIN PAROUT D8 SBUF RB8 Internal Data Bus Receive Shift Register 56
57 波特率在方式 0 中, 波特率可编程为系统时钟的 1/12 或 1/4, 由 SM2 位决定 当 SM2 为 0 时, 串行端口在系统时钟的 1/12 下运行 当 SM2 为 1 时, 串行端口在系统时钟的 1/4 下运行 在方式 1 和方式 3 中, 波特率可选择来自定时器 1 或定时器 2 的溢出率 分别置 TCLK(T2CON.4) 和 RCLK(T2CON.5) 位为 1 来选择定时器 2 作为 TX 和 RX 的波特时钟源 ( 详见定时器章节 ) 无论 TCLK 还是 RCLK 为逻辑 1, 定时器 2 都为波特率发生器方式 如果 TCLK 和 RCLK 为逻辑 0, 定时器 1 作为 Tx 和 Rx 的波特时钟源 方式 1 和方式 3 波特率公式如下所示, 其中 TH1 是定时器 1 的 8 位自动重载寄存器,SMOD 为 EUART 的波特率二倍频器 (PCON.7),[RCAP2H,RCAP2L] 是定时器 2 的 16 位重载入寄存器 T1CLK 是定时器 1 的时钟源,T2CLK 是定时器 2 的时钟源 2SMOD f BaudRate = T1, 用定时器 1 作为波特率发生器, 定时器 1 工作在方式 TH1 1 ft 2 BaudRate =, 用定时器 2 作为波特率发生器, 定时器 2 时钟源为系统时钟 [RCAP2 H, RCAP 2 L] 1 ft 2 BaudRate =, 用定时器 2 作为波特率发生器, 定时器 2 时钟源为时钟源为 T2 引脚输入时钟 [RCAP2H,RCAP2 L] 在方式 2 中, 波特率固定为系统时钟的 1/32 或 1/64, 由 SMOD 位 (PCON.7) 决定 当 SMOD 位为 0 时,EUART 以系统时钟的 1/64 运行 当 SMOD 位为 1 时,EUART 以系统时钟的 1/32 运行 SMOD f SYS BaudRate = 2 ( ) 多机通讯 软件地址识别 方式 2 和方式 3 有一个专门的适用于多机通讯的功能 在这两个方式下, 接收的是 9 位数据, 第 9 位移入 RB8 中, 然后再来一位停止位 EUART 可以这样来设定 : 当接收到停止位时, 只有在 RB8 = 1 的条件下, 串行口中断才会有效 ( 请求标志 RI 置 1) 可以通过将 SCON 寄存器的 SM2 位置 1 使 EUART 具有这个功能 在多机通讯系统中, 以如下所述来利用这一功能 当主机要发送一数据块给几个从机中的一个时, 它先送出一地址字节, 以辨认目标从机 地址字节与数据字节可用第 9 数据位来区别, 地址字节的第 9 位为 1, 数据字节的第 9 位为 0 如果从机 SM2 为 1, 则不会响应数据字节中断 地址字节可以中断所有从机, 这样, 每一个从机都检查所接收到的地址字节, 以判别自己是不是目标从机 被寻到的从机清 0 SM2 位, 并准备接收即将到来的数据字节, 当接收完毕时, 从机再一次将 SM2 置 1 没有被寻址的从机, 则维持它们的 SM2 位为 1, 忽略到来的数据字节, 继续做自己的事情 注意 : 在方式 0 中,SM2 用来选择波特率加倍 在方式 1 中,SM2 用来检测停止位是否有效, 如果 SM2 = 1, 接收中断不会响应直到接收到一个有效的停止位 自动 ( 硬件 ) 地址识别 在方式 2 和方式 3 中,SM2 置 1 将使 EUART 在如下状态下运行 : 当 1 个停止位被接收时, 如果载入 RB8 的第 9 数据位为 1( 地址字节 ) 并且接收到的数据字节符合 EUART 的从机地址,EUART 产生一个中断 接着, 从机应该将 SM2 清零, 以接收后续的数据字节 在 9 位方式下要求第 9 位为 1 以表明该字节是地址而非数据 当主机要发送一组数据给几个从机中的一个时, 必须先发送目标从机的地址 所有从机在等待接收地址字节时, 为了确保仅在接收地址字节时产生中断,SM2 位必须置 1 自动地址识别的特点是只有地址匹配的从机才能产生中断, 地址比较通过硬件完成而不是软件 中断产生后, 地址相匹配的从机清零 SM2, 继续接收数据字节 地址不匹配的从机不受影响, 将继续等待接收和它匹配的地址字节 一旦全部信息接收完毕, 地址匹配的从机应该再次把 SM2 置 1, 忽略所有传送的非地址字节, 直到接收到下一个地址字节 使用自动地址识别功能时, 主机可以通过调用给定的从机地址选择与一个或多个从机通信 使用广播地址可以联系所有的从机 有两个特殊功能寄存器用来定义从机地址 (SADDR) 和地址屏蔽 (SADEN) 从机地址是一个 8 位的字节, 存于 SADDR 寄存器中 SADEN 用于定义 SADDR 内位的有效与否, 如果 SADEN 中某一位为 0, 则 SADDR 中相应位被忽略, 如果 SADEN 中某一位置 1, 则 SADDR 中相应位将用于得到给定的从机地址 这可以使用户在不改变 SADDR 寄存器中的从机地址的情况下灵活地寻址多个从机 使用给定地址可以识别多个从机而排除其它的从机 57
58 从机 1 从机 2 SADDR SADEN( 为 0 的位被忽略 ) 实际从机地址 10100x0x 10100xx1 广播地址 (SADDR 或 SADEN) x 从机 1 和从机 2 给定地址的最低位是不同的 从机 1 忽略了最低位, 而从机 2 的最低位是 1 因此只与从机 1 通讯时, 主机必须发送最低位为 0 的地址 ( ) 类似地, 从机 1 的第 1 位为 0, 从机 2 的第 1 位被忽略 因此, 只与从机 2 通讯时, 主机必须发送第 1 位为 1 的地址 ( ) 如果主机希望同时与两从机通讯, 则第 0 位为 1, 第 1 位为 0, 第 2 位被两从机都忽略, 此时有两个不同的地址用于选定两个从机 ( 和 ) 主机可以通过广播地址与所有从机同时通讯 这个地址等于 SADDR 和 SADEN 的逻辑或, 结果中的 0 表示该位被忽略 多数情况下, 广播地址为 0xFFh, 该地址可被所有从机应答 系统复位后,SADDR 和 SADEN 两个寄存器初始化为 0, 这两个结果设定了给定地址和广播地址为 XXXXXXXX( 所有位都被忽略 ) 这有效地去除了多处机通讯的特性, 禁止了自动寻址方式 这样的 EUART 将对任何地址都产生应答, 兼容了不支持自动地址识别的 8051 控制器 用户可以按照上面提到的方法实现软件识别地址的多机通讯 帧出错检测当寄存器 PCON 中的 SSTAT 位为逻辑 1 时, 帧出错检测功能才有效 3 个错误标志位被置 1 后, 只能通过软件清零, 尽管后续接收的帧没有任何错误也不会自动清零 注意 :SSTAT 位必须为逻辑 1 是访问状态位 (FE,RXOV 和 TXCOL),SSTAT 位为逻辑 0 时是访问方式选择位 (SM0,SM1 和 SM2) 发送冲突如果在一个发送正在进行时, 用户软件写数据到 SBUF 寄存器时, 发送冲突位 (SCON 寄存器中的 TXCOL 位 ) 置 1 如果发生了冲突, 新数据会被忽略, 不能被写入发送缓冲器 接收溢出如果在接收缓冲器中的数据未被读取之前, 又有新的数据存入接收缓冲器, 那么接收溢出位 (SCON 寄存器中的 RXOVR 位 ) 置 1 如果发生了接收超限, 接收缓冲器中原来的数据将丢失 帧出错如果检测到一个无效 ( 低 ) 停止位, 那么帧出错位 ( 寄存器 SCON 中的 FE) 置 1 暂停检测当连续检测到 11 个位都为低电平位时, 则认为检测到一个暂停 由于暂停条件同样满足帧错误条件, 因此检测到暂停时也会报告帧错误 一旦检测到暂停条件,UART 将进入空闲状态并一直保持, 直至接收到有效停止位 (RxD 引脚上出现上升沿 ) 58
59 9.1.6 寄存器 Table 9.1 电源控制寄存器 SH88F2051A/ 87H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PCON SMOD SSTAT - - GF1 GF0 PD IDL 读 / 写读 / 写读 / 写 - - 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7 SMOD 6 SSTAT 3-2 GF[1:0] 1 PD 0 IDL 波特率加倍器若使用定时器 1 作为波特率发生器, 在方式 1 和 3 中置 1,EUART 的波特率会加倍如果在方式 2 中置 1,EUART 的波特率会加倍 SCON[7:5] 功能选择 0:SCON[7:5] 工作方式作为 SM0,SM1,SM2 1:SCON[7:5] 工作方式作为 FE,RXOV,TXCOL 用于软件的通用标志位 掉电模式控制位 空闲模式控制位 59
60 EUART 相关寄存器 Table 9.2 EUART 控制及状态寄存器 98H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SCON SM0 /FE SM1 /RXOV SM2 /TXCOL REN TB8 RB8 TI RI 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7-6 SM[0:1] 7 FE 6 RXOV EUART 串行方式控制位,SSTAT = 0 00: 方式 0, 同步方式, 固定波特率 01: 方式 1,8 位异步方式, 可变波特率 10: 方式 2,9 位异步方式, 固定波特率 11: 方式 3,9 位异步方式, 可变波特率 EUART 帧出错标志位, 当 FE 位被读时,SSTAT 位必须被设置为 1 0: 无帧出错, 由软件清除 1: 发生帧出错, 由硬件置 1 EUART 接收完毕标志位, 当 RXOV 位被读时,SSTAT 位必须被设置为 1 0: 无接收溢出, 由软件清除 1: 接收溢出, 由硬件置 1 5 SM2 5 TXCOL 4 REN 3 TB8 2 RB8 1 TI 0 RI EUART 多处理机通讯允许位 ( 第 9 位 1 校验器 ),SSTAT = 0 0: 在方式 0 下, 波特率是系统时钟的 1/12 在方式 1 下, 禁止停止位确认检验, 停止位将置 RI 为 1 产生中断在方式 2 和 3 下, 任何字节都会置 RI 为 1 产生中断 1: 在方式 0 下, 波特率是系统时钟的 1/4 在方式 1 下, 允许停止位确认检验, 只有有效的停止位 (1) 才能置 RI 为 1 产生中断在方式 2 和 3 下, 只有寻址字节 ( 第 9 位 = 1) 能置 RI 为 1 产生中断 EUART 发送冲突标志位, 当 TXCOL 位被读时,SSTAT 位必须被设置为 1 0: 无发送冲突, 由软件清除 1: 有发送冲突, 由硬件置 1 EUART 接收器允许位 0: 接收禁止 1: 接收允许 在 EUART 的方式 2 和 3 下发送的第 9 位, 由软件置 1 或清 0 在 EUART 的方式 1,2 和 3 下接收的第 9 位在方式 0 下, 不使用 RB8 在方式 1 下, 如果接收中断发生,RB8 的停止位会收到信号在方式 2 和 3 下, 由第 9 位接收 EUART 的传送中断标志位 0: 由软件清 0 1: 由硬件置 1, 在方式 0 下的第 8 位最后, 或在其它方式下的停止位开始 EUART 的接收中断标志位 0: 由软件清 0 1: 由硬件置 1, 在方式 0 下的第 8 位最后, 或在其它方式下的停止位开始 60
61 Table 9.3 EUART 数据缓冲器寄存器 SH88F2051A/ 99H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SBUF SBUF.7 SBUF.6 SBUF.5 SBUF.4 SBUF.3 SBUF.2 SBUF.1 SBUF.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7-0 SBUF.7-0 Table 9.4 EUART 从机地址及地址掩码寄存器 SFR 访问两个寄存器 : 一个移位寄存器和一个接收锁存寄存器 SBUF 的写入将发送字节到移位寄存器中, 然后开始传输 SBUF 的读取返回接收锁存器中的内容 9AH-9BH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SADDR SADDR.7 SADDR.6 SADDR.5 SADDR.4 SADDR.3 SADDR.2 SADDR.1 SADDR.0 SADEN SADEN.7 SADEN.6 SADEN.5 SADEN.4 SADEN.3 SADEN.2 SADEN.1 SADEN.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7-0 SADDR SADEN.7-0 SFR SADDR 定义 EUART 的从机地址 SFR SADEN 是一个位屏蔽寄存器, 决定检验 SADDR 的哪些位对应接收地址 0: 在 SADDR 中的相应位被忽略 1:SADDR 中的相应位被检验是否对应接收地址 61
62 9.2 模数转换器 (ADC ADC) 特性 10 位分辨率 内建基准电压 8 模拟通道输入 SH88F2051A/ SH88F2051A/ 包含一个单端型 10 位逐次逼近型模数转换器 (ADC) ADC 内建的基准电压 V REF 和 VDD 相连 8 个 ADC 通道都可以独立输入模拟信号, 但是每次转换只能使用一个通道 GO/ ---- D ---- O ---- N ---- E 信号控制开始转换, 提示转换结束 当转换完成时, 更新 ADC 数据寄存器与此同时, 设置 ADCON 寄存器中的 ADCIF 位并且产生一个中断 ( 如果允许 ADC 中断 ) ADC 模块整合数字比较功能可以比较 AD 转换器中的模拟输入的值与数字值 如果允许数字比较功能 ( 在 ADCON 寄存器中的 EC = 1), 并且 ADC 模块使能 (ADON = 1 在 ADCCON 寄存器 ), 只有当相应的模拟输入的数字值大于等于寄存器中的比较值 (ADDH/L) 时, 才会产生 ADC 中断 当 GO/ D ---- O ---- N E 置 1 时, 数字比较功能会持续工作, 直到 GO/ D ---- O ---- N E 清 0 这一点与数模转换工作方式不同 带数字比较功能的 ADC 模块能在 Idle 模式下工作, 并且 ADC 中断能够唤醒 Idle 模式 但是, 在 Power-Down 模式下,ADC 模块被禁止 ADC 框图 SCH0 - SCH7 CH0 - CH7 ADC Input voltage AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 AD 转换器模块图 62
63 寄存器 Table 9.5 ADC 控制寄存器 SH88F2051A/ 93H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADCON ADON ADCIF EC - SCH2 SCH1 SCH0 GO/ DONE 读 / 写读 / 写读 / 写读 / 写 - 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7 ADON 6 ADCIF 5 EC ADC 允许位 0: 禁止 ADC 模块 1: 允许 ADC 模块 ADC 中断标志位 0: 无 ADC 中断 1: 由硬件置 1 表示已完成 AD 转换, 或者模拟输入大于 ADDH/ADDL ( 如果允许数字比较模块 ) 比较功能允许位 0: 禁止数字比较功能 1: 允许数字比较功能 3-1 SCH[2:0] GO/ 0 GO/ DONE ADC 通道选择位 000:ADC 通道 AN0 001:ADC 通道 AN1 010:ADC 通道 AN2 011:ADC 通道 AN3 100:ADC 通道 AN4 101:ADC 通道 AN5 110:ADC 通道 AN6 111:ADC 通道 AN7 ADC 状态标志位 0: 当完成 AD 转换时, 由硬件自动清 0 在转换期间清 0 这个位会中止 AD 转换 如果允许数字比较功能, 该位不会由硬件清 0 只能由软件清 0 1: 设置开始 AD 转换或者启动数字比较功能 63
64 Table 9.6 ADC 定时控制寄存器 94H 第 7 位 第 6 位 第 5 位 第 4 位 第 3 位 第 2 位 第 1 位 第 0 位 ADT TADC2 TADC1 TADC0 - TS3 TS2 TS1 TS0 读 / 写 读 / 写 读 / 写 读 / 写 - 读 / 写 读 / 写 读 / 写 读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号 位符号 说明 7-5 TADC[2:0] ADC 时钟周期选择位 000:ADC 时钟周期 t AD = 2 tsys 001:ADC 时钟周期 t AD = 4 tsys 010:ADC 时钟周期 t AD = 6 tsys 011:ADC 时钟周期 t AD = 8 tsys 100:ADC 时钟周期 t AD = 12 tsys 101:ADC 时钟周期 t AD = 16 tsys 110:ADC 时钟周期 t AD = 24 tsys 111:ADC 时钟周期 t AD = 32 tsys 3-0 TS[3:0] 采样时间选择位 2 tad 采样时间 = (TS [3:0]+1) * ta D 15 tad 注意 : (1) 请确保 tad 1µs; (2) 即使 TS[3:0] = 0000, 最小采样时间为 2tAD; (3) 即使 TS[3:0] = 1111, 最大采样时间为 15tAD; (4) 在设置 TS[3:0] 前, 请估算连接到 ADC 输入引脚的串联电阻 ; (5) 选择 2*tAD 为采样时间时, 请确保连接到 ADC 输入引脚的串联电阻小于 10kΩ; (6) 总共转换时间 = 12tAD + 采样时间 举例说明 系统时钟 (SYSCLK) kHz 4MHz 12MHz TADC[2:0] tad TS[3:0] 采样时间 转换时间 *2=61µs *61=122µs 12*61+122=854µs *2=61µs *61=488µs 12*61+488=1220µs *2=61µs *61=915µs 12*61+915=1647µs *32=976µs *976=1952µs 12* =13664µs *32=976µs *976=7808µs 12* =19520µs *32=976µs *976=14640µs 12* =26352µs *2=0.5µs - - (tad <1µs, 不推荐 ) *4=1µs *1=2µs 12*1+2=14µs *4=1µs *1=8µs 12*1+8=20µs *4=1µs *1=15µs 12*1+15=27µs *32=8µs *8=16µs 12*8+16=112µs *32=8µs *8=64µs 12*8+64=160µs *32=8µs *8=120µs 12*8+120=216µs *2=0.166µs - - (tad <1µs, 不推荐 ) *12=1µs *1=2µs 12*1+2=14µs *12=1µs *1=8µs 12*1+8=20µs *12=1µs *1=15µs 12*1+15=27µs *32=2.7µs *2.7=5.4µs 12* =37.8µs *32=2.7µs *2.7=21.6µs 12* =54µs *32=2.7µs *2.7=40.5µs 12* =72.9µs 64
65 Table 9.7 ADC 信道配置寄存器 SH88F2051A/ 95H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADCH CH7 CH6 CH5 CH4 CH3 CH2 CH1 CH0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7-0 CH[7: [7:0] Table 9.8 AD 转换数据寄存器 ( 比较值寄存器 ) 信道配置位 0:P1.0-P1.7 作为 I/O 端口 1:P1.0-P1.7 作为 ADC 输入口 96H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADDL A1 A0 读 / 写 读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN) H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 ADDH A9 A8 A7 A6 A5 A4 A3 A2 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR/PIN) 位编号位符号说明 启动 ADC 转换步骤 : A9-A0 (1) 选择模拟输入通道 ; (2) 使能 ADC 模块 ; (3) GO/ DONE 置 1 开始 ADC 转换 ; ADC 数据寄存器采样模拟电压的数字值 当完成转换后, 这个值会更新 如果 ADC 数字比较功能使能 (EC = 1), 这个值将与模拟输入进行比较 (4) 等待 GO/ DONE = 0 或者 ADCIF = 1, 如果 ADC 中断使能, 则 ADC 中断将会产生, 用户需要软件清 0 ADCIF; (5) 从 ADDH/ADDL 获得转换数据 ; (6) 重复步骤 3-5 开始另一次转换 启动数字比较功能步骤 : (1) 选择模拟输入通道 ; (2) 写入 ADDH/ADDL, 设置比较值 ; (3) EC 置 1 使能数字比较功能 ; (4) 使能 ADC 模块 ; (5) GO/ DONE 置 1 开始数字比较功能 ; (6) 如果模拟输入的值比设置的比较值大,ADIF 会被置 1 如果 ADC 中断使能, 则 ADC 中断将会产生, 用户需要软件清 0 ADCIF; (7) 数字比较功能会持续工作, 直到 GO/ DONE 清 0 65
66 9.3 模拟比较器 (CMP CMP) 特性 单电源工作 输出正相 / 反相控制 能工作在空闲模式和掉电模式 SH88F2051A/ SH88F2051A/ 内建一个独立精确的电压比较器,CMPP 引脚是比较器的正相输入, 它共享 P1.0 端口 ;CMPN 引脚是比较器的反相输入, 它共享 P1.1 端口 ;CMPO 引脚是比较器的输出, 它共享 P3.7 端口 CMPO 端口可以通过设置寄存器选择作为比较器输出引脚或者普通 IO 引脚 P1.1/CMPN P1.0/CMPP P3.7/CMPO CMP register.cmpo CMPOC Built-in CMP 当 CMPEN 和 CMPIF 寄存器置 1, 比较器输出口的任何变化都可以产生中断请求 (CMPIF = 1) 比较器中断可以在空闲模式和掉电模式中唤醒 CPU 注意 : 在比较器首次启动时需要约 2ms 的等待时间 ; 第一次使用比较器之前用户程序要先将 CMPxIF 清 寄存器 Table 9.9 比较器控制寄存器 92H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 CMPCON CMPEN CMPIF CMPOC CINV COUT 读 / 写读 / 写读 / 写 读 / 写读 / 写只读 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7 CMPEN 6 CMPIF 2 CMPOC 1 CINV 0 COUT 比较器使能控制位 0: 禁止比较器功能 1: 允许比较器功能 比较器输出中断标志位 0: 比较器输出值未改变 1: 比较器输出值改变 ( 必须由软件清 0) 比较器输出控制位 0: 比较器无输出 (COUT 作为 I/O 或用作其它功能 ) 1: 比较器有输出 (COUT 作为比较器输出 ) 比较器输出倒置位 0: 比较器正常输出 1: 比较器反相输出 比较器输出位 COUT = 0, 当 CMPP < CMPN 和 CINV = 0 时 COUT = 1, 当 CMPP > CMPN 和 CINV = 0 时 COUT = 0, 当 CMPP > CMPN 和 CINV = 1 时 COUT = 1, 当 CMPP < CMPN 和 CINV = 1 时 66
67 9.4 脉冲宽度调制 (PWM PWM) 特性 8 位精度 PWM 模块 提供每个 PWM 周期溢出中断 输出极性可选择 SH88F2051A/ SH88F2051A/ 内建一个 8 位 PWM 模块 PWM 模块可以产生周期和占空比分别可以调整的脉宽调制波形 寄存器 PWMCON 用于控制 PWM 模块的时钟源, 寄存器 PWMP 用于设置 PWM 模块的周期 寄存器 PWMD 用于设置 PWM 模块的占空比 寄存器 Table 9.10 PWM 定时器控制寄存器 D1H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PWMCON PWMEN PWMS PWMCK1 PWMCK0 - - PWMIF PWMSS 读 / 写读 / 写读 / 写读 / 写读 / 写 - - 读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7 PWMEN 6 PWMS 5-4 PWMCK[1:0] PWM 模块控制位 0: 禁止 PWM 1: 允许 PWM PWM 输出模式 0: 高电平驱动,PWM 占空比期间输出高电平, 占空比溢出后输出低电平 1: 低电平驱动,PWM 占空比期间输出低电平, 占空比溢出后输出高电平 PWM 时钟源选择 00: 系统频率 /2 01: 系统频率 /4 10: 系统频率 /8 11: 系统频率 /16 1 PWMIF 0 PWMSS PWM 溢出标志位 0:PWM 周期计数器没有溢出 1:PWM 周期计数器溢出, 由硬件置 1 PWM0 输出控制位 0:PWM 输出禁止, 用作 I/O 功能 1:PWM 输出允许 Table 9.11 PWM 周期控制寄存器 D2H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PWMP PWMP.7 PWMP.6 PWMP.5 PWMP.4 PWMP.3 PWMP.2 PWMP.1 PWMP.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7-0 PWMP[7:0] PWM 输出周期 = PWMP * PWM 时钟当 PWMP = 00H 时, 如果 PWMS = 0,PWM 引脚输出低当 PWMP = 00H 时, 如果 PWMS = 1,PWM 引脚输出高 67
68 Table 9.12 PWM 占空比控制寄存器 SH88F2051A/ D3H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PWMD PWMD.7 PWMD.6 PWMD.5 PWMD.4 PWMD.3 PWMD.2 PWMD.1 PWMD.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7-0 PWMD[7:0] PWM 占空比控制, 控制 PWM 波形占空比的输出时间 1. 当 PWMP PWMD 时如果 PWMS = 0, 则 PWM 引脚输出高电平如果 PWMS = 1, 则 PWM 引脚输出低电平 2. 当 PWMD = 00H 时如果 PWMS = 0, 则 PWM 引脚输出低电平如果 PWMS = 1, 则 PWM 引脚输出高电平 注意 : 1. PWMEN 位能控制 PWM 模块打开 2. PWMSS 位能选择 P3.5 端口是作为 I/O 端口还是 PWM 输出端口 3. 在 IEN1 寄存器中的 EPWM 位能允许 / 禁止 PWM 中断 4. 如果 PWMEN 置 1,PWM 模块打开, 但 PWMSS = 0,PWM 输出关闭, 此时 PWM 模块可以用作一个 8bit timer, 此时如果中断控制寄存器 IEN1 的 EPWM 位置 1,PWM 中断照样发生 D 7E 7F 80 EF F PWM clock t PWM PWM output (PWMS=0) PWM output (PWMS=1) PWMP = F0H PWMD = 7FH PW M output duty cycle = 7FH x t PWM PW M output period cycle = F0H x t PWM PWM 输出示例 A 0B 0C 0D 0E 0F A 0B 0C 0D PWM clock t PWM Write PWMP = 0DH Write PWMD = 07H PWM output (PWMS = 0) Duty cycle = 06H x t PWM Duty cycle Duty cycle = 06H x t PWM = 07H x t PWM Period cycle = 0FH x t PWM Period cycle = 0DH x t PWM PWM 输出周期或占空比更改范例 68
69 9.5 低电压复位 (LVR LVR) 特性 通过代码选项选择,LVR 设定电压 V LVR 可为 4.1V 或 3.7V 或 2.8V LVR 去抖动时间 TLVR 为 µs 当供电电压低于设定电压 V LVR 时, 将产生内部复位 SH88F2051A/ 低电压复位 (LVR) 功能是为了监测供电电压, 当供电电压低于设定电压 V LVR 时,MCU 将产生内部复位 LVR 去抖动时间 TLVR 大约为 30µs-100µs LVR 功能打开后, 具有以下特性 (t 表示电压低于设定电压 VLVR 的时间 ): 当 V DD V LVR 且 t T LVR 时产生系统复位 当 V DD > V LVR 或 V DD < V LVR, 但 t < T LVR 时不会产生系统复位 通过代码选项, 可以选择 LVR 功能的打开与关闭 在交流电或大容量电池应用中, 接通大负载后容易导致 MCU 供电暂时低于定义的工作电压 低电压复位可以应用于此, 保护系统在低于设定电压下产生有效复位 69
70 9.6 看门狗定时器 (WDT WDT), 程式超范围溢出 (OVL OVL) 复位及其它复位状态 特性 程式超范围溢出后硬件自动检测, 并产生 OVL 复位 看门狗可以工作在掉电模式下 看门狗溢出频率可选 SH88F2051A/ 程序超范围溢出复位 SH88F2051A/ 为进一步增强 CPU 运行可靠性, 内建程序超范围溢出检测电路, 一旦检测到程序计数器的值超出 ROM 最大值, 或者发现指令操作码 ( 不检测操作数 ) 为 8051 指令集中不存在的 A5H, 便认为程序跑飞, 产生 CPU 复位信号, 同时将 WDOF 标志位置 1 为应用这个特性, 用户应该将未使用的 Flash ROM 用 0xA5 填满 看门狗看门狗定时器是一个递减计数器, 独立内建 RC 振荡器作为其时钟源, 因此可以通过代码选项选择在掉电模式下仍持续运行 当定时器溢出时, 将芯片复位 通过代码选项可以打开或关闭该功能 WDT 控制位 ( 第 2-0 位 ) 用来选择不同的溢出时间 定时器溢出后,WDT 溢出标志 (WDOF) 将由硬件自动置 1 通过读写 RSTSTAT 寄存器, 看门狗定时器在溢出前重新开始计数 其它一些复位标志列举如下 : 70
71 寄存器 Table 9.13 复位控制寄存器 SH88F2051A/ B1H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 RSTSTAT WDOF - PORF LVRF CLRF WDT.2 WDT.1 WDT.0 读 / 写读 / 写 - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR POR) 复位值 (WDT WDT) 1 - u u u 复位值 (LVR LVR) u - u 1 u 复位值 (PIN PIN) u - u u 位编号位符号说明 7 WDOF 5 PORF 4 LVRF 3 CLRF 2-0 WDT[2:0] 看门狗溢出或程序超范围溢出标志位看门狗溢出时由硬件置 1, 可由软件或上电复位清 0 0: 未发生 WDT 溢出或程序超范围溢出 1: 发生 WDT 溢出或程序超范围溢出 上电复位标志位上电复位后硬件置 1, 只能由软件清 0 0: 没有发生上电复位 1: 发生过上电复位 低压复位标志位低压复位后置 1, 可由软件或上电复位清 0 0: 没有发生低压复位 1: 发生过低压复位 Reset 引脚复位标志位引脚复位后置 1, 由软件或上电复位清 0 0: 没有发生引脚复位 1: 发生过引脚复位 WDT 溢出周期控制位 000: 溢出周期最小值 = 4096ms 001: 溢出周期最小值 = 1024ms 010: 溢出周期最小值 = 256ms 011: 溢出周期最小值 = 128ms 100: 溢出周期最小值 = 64ms 101: 溢出周期最小值 = 16ms 110: 溢出周期最小值 = 4ms 111: 溢出周期最小值 = 1ms 注意 : 应用中如果看门狗打开, 程序清看门狗的最大间隔时间不能大于以上所列最小值 71
72 9.7 电源管理 特性 空闲模式和掉电模式两种省电模式 发生中断和复位可退出空闲 (Idle) 掉电(Power-Down) 模式 SH88F2051A/ 为减少功耗,SH88F2051A/ 提供两种低功耗省电模式 : 空闲 (Idle) 模式和掉电 (Power-Down) 模式, 这两种模式都由 PCON 和 SUSLO 两个寄存器控制 空闲模式 (Idle Idle) 空闲模式能够降低系统功耗, 在此模式下, 程序中止运行,CPU 时钟停止, 但外部设备时钟继续运行 空闲模式下,CPU 在确定的状态下停止, 并在进入空闲模式前所有 CPU 的状态都被保存, 如 PC,PSW,SFR,RAM 等 两条连续指令 : 先设置 SUSLO 寄存器为 0x55, 随即将 PCON 寄存器中的 IDL 位置 1, 使 SH88F2051A/ 进入空闲模式 如果不满足上述的两条连续指令,CPU 在下一个机器周期清除 SUSLO 寄存器或 IDL 位,CPU 也不会进入空闲模式 IDL 位置 1 是 CPU 进入空闲模式之前执行的最后一条指令 两种方式可以退出空闲模式 : (1) 中断产生 恢复 CPU 时钟, 硬件清除 SUSLO 寄存器和 PCON 寄存器的 IDL 位 然后执行中断服务程序, 随后跳转到进入空闲模式指令之后的指令 (2) 复位信号产生后 ( 复位引脚上出现低电平,WDT 复位,LVR 复位 ) CPU 恢复时钟,SUSLO 寄存器和在 PCON 寄存器中的 IDL 位被硬件清除, 最后 SH88F2051A/ 复位, 程序从地址位 0000H 开始执行 此时,RAM 保持不变而 SFR 的值根据不同功能模块改变 掉电模式 (Power-Down Power-Down) 掉电模式可以使 SH88F2051A/ 进入功耗非常低的状态 掉电模式将停止 CPU 和外围设备的所有时钟信号 如果 WDT 使能,WDT 模块将继续工作 在进入掉电模式前所有 CPU 的状态都被保存, 如 PC,PSW,SFR,RAM 等 两条连续指令 : 先设置 SUSLO 寄存器为 0x55, 随即将 PCON 寄存器中的 PD 位置 1, 使 SH88F2051A/ 进入掉电模式 如果不满足上述的两条连续指令 CPU 在下一个机器周期清除 SUSLO 寄存器或 PD 位,CPU 也不会进入掉电模式 PD 位置 1 是 CPU 进入掉电模式之前执行的最后一条指令 注意 : 如果同时设置 IDL 位和 PD 位,SH88F2051A/ 进入掉电模式 退出掉电模式后,CPU 也不会掉电进入空闲模式, 从掉电模式退出后硬件清 0 IDL 及 PD 位 有三种方式可以退出掉电模式 : (1) 有效外部中断 ( 如 INT0,INT1 和 INT2) 使 SH88F2051A/ 退出掉电模式 在中断发生后振荡器启动, 在预热计时结束之后 CPU 时钟和外部设备时钟恢复,SUSLO 寄存器和 PCON 寄存器中的 PD 位会被硬件清除, 然后程序运行中断服务程序 在完成中断服务程序之后, 跳转到进入掉电模式之后的指令继续运行 (2) 复位信号 ( 复位引脚上出现低电平,WDT 复位如果被允许,LVR 复位如果被允许 ) 在预热计时之后会恢复 CPU 时钟, SUSLO 寄存器和 PCON 寄存器中的 PD 位会被硬件清除, 最后 SH88F2051A/ 会被复位, 程序会从 0000H 地址位开始运行 RAM 将保持不变, 而根据不同功能模块 SFR 的值可能改变 (3) 模拟比较器中断也能使 SH88F2051A/ 退出掉电模式 在中断发生后振荡器启动, 在预热计时结束之后 CPU 时钟和外部设备时钟恢复,SUSLO 寄存器和 PCON 寄存器中的 PD 位会被硬件清除, 然后程序运行中断服务程序 在完成中断服务程序之后, 跳转到进入掉电模式之后的指令继续运行 注意 : 如要进入这两种低功耗模式, 必须在置位 PCON 中的 IDL/PD 位后增加 3 个空操作指令 (NOP) 72
73 寄存器 Table 9.14 电源控制寄存器 SH88F2051A/ 87H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 PCON SMOD SSTAT - - GF1 GF0 PD IDL 读 / 写读 / 写读 / 写 - - 读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 位编号位符号说明 7 SMOD 6 SSTAT 3-2 GF[1:0] 1 PD 0 IDL Table 9.15 省电模式控制寄存器 UART 波特率加倍器 SCON[7:5] 功能选择位 用于软件的通用标志 掉电模式控制位 0: 当一个中断或复位产生时由硬件清除 1: 由软件置 1 激活掉电模式 空闲模式控制位 0: 当一个中断或复位产生时由硬件清除 1: 由软件置 1 激活空闲模式 8EH 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 SUSLO SUSLO.7 SUSLO.6 SUSLO.5 SUSLO.4 SUSLO.3 SUSLO.2 SUSLO.1 SUSLO.0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) 程序举例 位编号位符号说明 7-0 SUSLO[7:0] 此寄存器用来控制 CPU 进入省电模式 ( 空闲或掉电 ) 只有像下面的连续指令才能使 CPU 进入省电模式, 否则在下个周期中 SUSLO,IDL 或 PD 位将被硬件清 0 IDLE_MODE: MOV SUSLO, #55H ORL PCON, #01H NOP NOP NOP POWERDOWN_MODE: MOV SUSLO, #55H ORL PCON, #02H NOP NOP NOP 73
74 9.8 预热计数器 特性 内建电源预热计数器消除电源的上电的不稳定状态 内建振荡器预热计数器消除振荡器起振时的不稳定状态 SH88F2051A/ SH88F2051A/ 内建有电源上电预热计数器, 主要是用来消除上电电压建立时的不稳定态, 同时完成内部一些初始化序列, 如读取内部客户代码选项等 SH88F2051A/ 内建振荡器预热计数器, 它能消除振荡器在下列情况下起振时的不稳定状态 : 上电复位, 引脚复位, 从低功耗模式中唤醒, 看门狗复位和 LVR 复位 上电后,SH88F2051A/ 会先经过电源上电预热计数过程, 等待溢出后再进行振荡器的预热计数过程过程, 溢出后开始运行程序 电源上电预热计数时间 上电复位 / 引脚复位 / 低电压复位 电源上电预热计数时间 振荡器上电预热计数 看门狗复位 ( 不包含掉电模式 ) 电源上电预热计数时间 振荡器上电预热计数 看门狗复位 ( 唤醒掉电模式 ) 电源上电预热计数时间 振荡器上电预热计数 掉电模式下中断唤醒 电源上电预热计数时间 振荡器上电预热计数 11ms 有 1000CKs 无 1000CKs 有 64CKs 有 振荡器上电预热计数时间 OP_WMT 选项振荡器类型 陶振 2 13 X Tosc 2 11 X Tosc 2 9 X Tosc 2 7 X Tosc 晶振 2 17 X Tosc 2 15 X Tosc X Tosc 2 11 X Tosc 32kHz 晶振内部 RC 2 13 X Tosc 2 7 X Tosc 74
75 9.9 低电压检测 (LPD LPD) 特性 低电压检测并产生中断 可选的 LPD 检测电压 SH88F2051A/ 低电压检测 (LPD) 功能用来监测电源电压, 如果电压低于指定值时产生内部标志 LPD 功能用来通知 CPU 电源是否被切断或电池是否用尽, 因此在电压低于最小工作电压之前, 软件可以采取一些保护措施 寄存器 Table 9.16 低电压检测控制寄存器 B3H 第 7 位第 6 位第 5 位第 4 位第 3 位第 2 位第 1 位第 0 位 LPDCON LPDEN LPDF* LPDV LPDS1 LPDS0 读 / 写读 / 写读 * 读 / 写 读 / 写读 / 写 复位值 (POR/WDT/LVR POR/WDT/LVR/PIN /PIN) *:LPDF 软件只能够清 0, 不能置 位编号位符号说明 7 LPDEN 6 LPDF 5 LPDV 1-0 LPDS[1:0] LPD 允许位 0: 禁止低电压检测 1: 允许低电压检测 LPD 标志位 0: 无 LPD 发生, 由硬件或软件清 0, 即当前电压高于在 LPDS[1:0] 中设置的 LPD 电压 1:LPD 发生, 由硬件置 1, 即当前电压低于在 LPDS[1:0] 中设置的 LPD 电压 LPD 检测电压源 0: 检测电源电压 1: 检测 VLPD(P1.3) 引脚电压 LPD 电压设置位 00:3.7V 01:3.9V 10:4.2V 11:4.4V 75
76 9.10 代码选项 OP_WDT[7]: 0: 禁止看门狗复位 ( 默认 ) 1: 允许看门狗复位 OP_WDTPD[6]: 0: 掉电模式下禁止看门狗工作 ( 默认 ) 1: 掉电模式下允许看门狗工作注意 : 此代码选项仅当 OP_WDT[7] = 1 时有效 OP_WMT[4:3]:( 不适用于 32k 晶体振荡器和内建 RC) 00: 最长预热时间 ( 默认 ) 01: 较长预热时间 10: 较短预热时间 11: 最短预热时间 OP_OSC[2:0]: 000: 内建 RC 振荡器 (16.6MHz)( 默认 ) 010: 外部时钟源 (30kHz MHz) 011:32.768kHz 晶体振荡器, 内建 RC 振荡器 16.6M( 可通过指令打开 ) 101: 晶体振荡器 (400kHz - 16MHz) 110: 陶瓷振荡器 (400kHz - 16MHz) Others: 内建 RC 振荡器 (16.6MHz) OP_RST[5]: 0: 允许引脚复位 ( 默认 ) 1: 选择 P4.0 作为普通 IO OP_LVREN[7]: 0: 禁止低电压复位功能 ( 默认 ) 1: 允许低电压复位功能 OP_LVRLE[6:5]: 00: 低电压复位设定电压为 4.1V( 默认 ) 10: 低电压复位设定电压为 3.7V 01: 低电压复位设定电压为 2.8V OP_SCM[3]: 0: 在预热期间禁止时钟单元检测功能 ( 默认 ) 1: 在预热期间允许时钟单元检测功能 OP_IO[0]: 0: 上电时 IO 结构为仅输入结构 1: 上电时 IO 结构为准双向结构 ( 默认 ) OP_OSCDRV[4:3]: 00: 外部振荡器驱动能力为 :Minimum 01: 外部振荡器驱动能力为 :Middle( 默认 ) 10: 外部振荡器驱动能力为 :Maximum 代码选项 OP_OSC 与 OP_OSCDRV 组合功能如下 : 序号 OP_OSC OP_OSCDRV OSCDRV 振荡器类型 1 101( 晶体振荡器 ) 00(Minimum) 晶体振荡器 400KHz - 4MHz 2 101( 晶体振荡器 ) 01(Middle) 晶体振荡器 4MHz - 16MHz 3 110( 陶瓷振荡器 ) 00(Minimum) 陶瓷振荡器 < 2MHz 4 110( 陶瓷振荡器 ) 01(Middle) 陶瓷振荡器 2MHz - 8MHz 5 110( 陶瓷振荡器 ) 10(Maximum) 陶瓷振荡器 8MHz - 16MHz 76
77 OP_ISP[7]: 0: 允许 ISP 功能 ( 默认 ) 1: 禁止 ISP 功能 OP_ISPPIN[6]: 0: 仅当 P3.4 和 P3.5 同时为低时进入 ISP 模式 1: 进入 ISP 模式时不检测 P3.4 和 P3.5 状态 ( 默认 ) 注意 : 此代码选项仅当 OP_ISP[7] = 0 时有效 OP_P3: 0:P3 sink ability normal mode( 默认 ) 1:P3 sink ability large mode OP_P1P4: 0:P1P4 drive ability normal mode( 默认 ) 1:P1P4 drive ability large mode SH88F2051A/ 77
78 10. 指令集算术操作指令 指令功能描述代码字节周期 ADD A, Rn 累加器加寄存器 0x28-0x2F 1 1 ADD A, direct 累加器加直接寻址字节 0x ADD 累加器加内部 RAM 0x26-0x ADD A, #data 累加器加立即数 0x ADDC A, Rn 累加器加寄存器和进位位 0x38-0x3F 1 1 ADDC A, direct 累加器加直接寻址字节和进位位 0x ADDC 累加器加内部 RAM 和进位位 0x36-0x ADDC A, #data 累加器加立即数和进位位 0x SUBB A, Rn 累加器减寄存器和借位位 0x98-0x9F 1 1 SUBB A, direct 累加器减直接寻址字节和借位位 0x SUBB 累加器减内部 RAM 和借位位 0x96-0x SUBB A, #data 累加器减立即数和借位位 0x INC A 累加器加 1 0x INC Rn 寄存器加 1 0x08-0x0F 1 2 INC direct 直接寻址字节加 1 0x 内部 RAM 加 1 0x06-0x DEC A 累加器减 1 0x DEC Rn 寄存器减 1 0x18-0x1F 1 2 DEC direct 直接寻址字节减 1 0x 内部 RAM 减 1 0x16-0x INC DPTR 数据指针加 1 0xA3 1 4 MUL AB 8 X 8 16 X 8 DIV AB 8 / 8 16 / 8 累加器乘寄存器 B 0xA4 1 累加器除以寄存器 B 0x84 1 DA A 十进制调整 0xD
79 逻辑操作指令 指令 功能描述 代码 字节 周期 ANL A, Rn 累加器与寄存器 0x58-0x5F 1 1 ANL A, direct 累加器与直接寻址字节 0x ANL 累加器与内部 RAM 0x56-0x ANL A, #data 累加器与立即数 0x ANL direct, A 直接寻址字节与累加器 0x ANL direct, #data 直接寻址字节与立即数 0x ORL A, Rn 累加器或寄存器 0x48-0x4F 1 1 ORL A, direct 累加器或直接寻址字节 0x ORL 累加器或内部 RAM 0x46-0x ORL A, #data 累加器或立即数 0x ORL direct, A 直接寻址字节或累加器 0x ORL direct, #data 直接寻址字节或立即数 0x XRL A, Rn 累加器异或寄存器 0x68-0x6F 1 1 XRL A, direct 累加器异或直接寻址字节 0x XRL 累加器异或内部 RAM 0x66-0x XRL A, #data 累加器异或立即数 0x XRL direct, A 直接寻址字节异或累加器 0x XRL direct, #data 直接寻址字节异或立即数 0x CLR A 累加器清零 0xE4 1 1 CPL A 累加器取反 0xF4 1 1 RL A 累加器左环移位 0x RLC A 累加器连进位标志左环移位 0x RR A 累加器右环移位 0x RRC A 累加器连进位标志右环移位 0x SWAP A 累加器高 4 位与低 4 位交换 0xC
80 数据传送指令 指令 功能描述 代码 字节 周期 MOV A, Rn 寄存器送累加器 0xE8-0xEF 1 1 MOV A, direct 直接寻址字节送累加器 0xE5 2 2 MOV 内部 RAM 送累加器 0xE6-0xE7 1 2 MOV A, #data 立即数送累加器 0x MOV Rn, A 累加器送寄存器 0xF8-0xFF 1 2 MOV Rn, direct 直接寻址字节送寄存器 0xA8-0xAF 2 3 MOV Rn, #data 立即数送寄存器 0x78-0x7F 2 2 MOV direct, A 累加器送直接寻址字节 0xF5 2 2 MOV direct, Rn 寄存器送直接寻址字节 0x88-0x8F 2 2 MOV direct1, direct2 直接寻址字节送直接寻址字节 0x MOV 内部 RAM 送直接寻址字节 0x86-0x MOV direct, #data 立即数送直接寻址字节 0x A 累加器送内部 RAM 0xF6-0xF7 1 2 direct 直接寻址字节送内部 RAM 0xA6-0xA7 2 3 #data 立即数送内部 RAM 0x76-0x MOV DPTR, #data16 16 位立即数送数据指针 0x MOVC 程序代码送累加器 ( 相对数据指针 ) 0x MOVC 程序代码送累加器 ( 相对程序计数器 ) 0x MOVX 外部 RAM 送累加器 (8 位地址 ) 0xE2-0xE3 1 5 MOVX 外部 RAM 送累加器 (16 位地址 ) 0xE0 1 6 A 累加器送外部 RAM(8 位地址 ) 0xF2-F3 1 4 A 累加器送外部 RAM(16 位地址 ) 0xF0 1 5 PUSH direct 直接寻址字节压入栈顶 0xC0 2 5 POP direct 栈顶弹至直接寻址字节 0xD0 2 4 XCH A, Rn 累加器与寄存器交换 0xC8-0xCF 1 3 XCH A, direct 累加器与直接寻址字节交换 0xC5 2 4 XCH 累加器与内部 RAM 交换 0xC6-0xC7 1 4 XCHD 累加器低 4 位与内部 RAM 低 4 位交换 0xD6-0xD
81 控制程序转移指令 指令功能描述代码字节周期 ACALL addr11 2KB 内绝对调用 0x11-0xF1 2 7 LCALL addr16 64KB 内长调用 0x RET 子程序返回 0x RETI 中断返回 0x AJMP addr11 2KB 内绝对转移 0x01-0xE1 2 4 LJMP addr16 64KB 内长转移 0x SJMP rel 相对短转移 0x 相对长转移 0x JZ rel ( 不发生转移 ) ( 发生转移 ) JNZ rel ( 不发生转移 ) ( 发生转移 ) JC rel ( 不发生转移 ) ( 发生转移 ) JNC rel ( 不发生转移 ) ( 发生转移 ) JB bit, rel ( 不发生转移 ) ( 发生转移 ) JNB bit, rel ( 不发生转移 ) ( 发生转移 ) JBC bit, rel ( 不发生转移 ) ( 发生转移 ) CJNE A, direct, rel ( 不发生转移 ) ( 发生转移 ) CJNE A, #data, rel ( 不发生转移 ) ( 发生转移 ) CJNE Rn, #data, rel ( 不发生转移 ) ( 发生转移 ) #data, rel ( 不发生转移 ) ( 发生转移 ) DJNZ Rn, rel ( 不发生转移 ) ( 发生转移 ) DJNZ direct, rel ( 不发生转移 ) ( 发生转移 ) 累加器为零转移 0x60 2 累加器为非零转移 0x70 2 C 置位转移 0x40 2 C 清零转移 0x50 2 直接寻址位置位转移 0x20 3 直接寻址位清零转移 0x30 3 直接寻址位置位转移并清该位 0x10 3 累加器与直接寻址字节不等转移 0xB5 3 累加器与立即数不等转移 0xB4 3 寄存器与立即数不等转移 0xB8-0xBF 3 内部 RAM 与立即数不等转移 0xB6-0xB7 3 寄存器减 1 不为零转移 0xD8-0xDF 2 直接寻址字节减 1 不为零转移 0xD5 3 NOP 空操作
82 位操作指令 指令 功能描述 代码 字节 周期 CLR C C 清零 0xC3 1 1 CLR bit 直接寻址位清零 0xC2 2 3 SETB C C 置位 0xD3 1 1 SETB bit 直接寻址位置位 0xD2 2 3 CPL C C 取反 0xB3 1 1 CPL bit 直接寻址位取反 0xB2 2 3 ANL C, bit C 逻辑与直接寻址位 0x ANL C, /bit C 逻辑与直接寻址位的反 0xB0 2 2 ORL C, bit C 逻辑或直接寻址位 0x ORL C, /bit C 逻辑或直接寻址位的反 0xA0 2 2 MOV C, bit 直接寻址位送 C 0xA2 2 2 MOV bit, C C 送直接寻址位 0x
83 11. 电气特性 极限参数 直流供电电压 V to +6.0V 输入 / 输出电压 GND-0.3V to V DD+0.3V 工作环境温度 C to +85 C 存储温度 C to +125 C 注释 直流电气特性 (V DD = V,GND = 0V,TA = +25 C, 除非另有说明 ) 如果器件的工作条件超过左列 极限参数 的范围, 将造成器件永久性破坏 只有当器件工作在说明书所规定的范围内时功能才能得到保障 器件在极限参数列举的条件下工作将会影响到器件工作的可靠性 参数符号最小值典型值 最大值单位条件 工作电压 VDD V kHz fosc 16.6MHz 工作电流 IOP ma 待机电流 ( 空闲模式 : IDLE) 待机电流 ( 掉电模式 : Power-down) ISB µa I SB ma ISB µa WDT 电流 IWDT µa LPD 电流 ILPD µa V DD = 5.0V fosc = 16.6MHz,VDD = 5.0V 所有输出引脚无负载 ( 所有数字输入引脚不浮动 ); CPU 打开 ( 执行 NOP 指令 ); 关闭其它所有功能 fosc = 32768Hz,VDD = 5.0V 所有输出引脚无负载 ( 所有数字输入引脚不浮动 ); 关闭其它所有功能 fosc = 16.6MHz,VDD = 5.0V 所有输出引脚无负载 ( 所有数字输入引脚不浮动 ); 关闭其它所有功能 fosc = 16.6MHz,VDD = 5.0V 所有输出引脚无负载 ( 所有数字输入引脚不浮动 ); CPU 停止 ( 掉电模式 ); 关闭其它所有功能 VDD = 5.0V 所有输出引脚无负载, 看门狗打开 输入低电压 V IL GND X VDD V I/O 端口 ( 全部引脚都有 schmitt 触发器 ) 输入高电压 VIH 0.8 X VDD - V DD V I/O 端口 ( 全部引脚都有 schmitt 触发器 ) 输入漏电流 IIL -1-1 µa 输出漏电流 I OL -1-1 µa 输入无上拉 VIN = VDD or GND(Input Only mode) 开漏输出,VDD = 5.0V VOUT = VDD or GND(Open-Drain mode) 极弱上拉电阻 RPH kω VDD = 5.0V,V IN = GND 弱上拉电阻 RPH kω VDD = 5.0V,V IN = GND,I/O 端口 输出高电压 1 V OH1 VDD V 输出高电压 2 VOH2 VDD V 输出低电压 V OL - - GND V I/O 端口 (P1,P3,P4),IOH = -10mA,V DD = 5.0V (Push-Pull mode, 上拉增强 customer option 关闭 ) I/O 端口 (P1,P4),IOH = -15mA,V DD = 5.0V (Push-Pull mode, 上拉增强 customer option 打开 ) I/O 端口 (P1,P3,P4),IOL = 25mA,VDD = 5.0V (Push-Pull mode, 下拉增强 customer option 关闭 ) 大驱动口灌电流能力 IOL ma I/O 端口 (P3),V DD = 5.0V,VOL = GND + 1.5V, (Push-Pull mode, 下拉增强 customer option 打开 ) 注意 : 1. 表示典型值下的数据是在 5.0V,25 C 下测得的, 除非另有说明 2. 流过 VDD 的最大电流值须小于 100mA 3. 流过 GND 的最大电流值须小于 150mA 83
84 模 / 数转换器电气特性 (TA = 25 C, 除非另有说明 ) 参数符号最小值典型值最大值单位条件 供电电压 V AD V 精度 NR bit GND V AIN V REF A/D 输入电压 * V AIN GND - - V A/D 输入电阻 RAIN 2 - MΩ VIN = 5.0V 模拟电压源推荐阻抗 ZAIN 10 kω A/D 转换电流 IAD ma ADC 模块工作,VDD = 5.0V A/D 输入电流 I ADIN 10 µa VDD = 5.0V 微分非线性误差 DLE - - ±1 LSB fosc =16.6MHz,VDD = 5.0V 积分非线性误差 ILE ±2 LSB fosc =16.6MHz,VDD = 5.0V 满刻度误差 EF - ±1 ±3 LSB fosc= 16.6MHz,VDD = 5.0V 偏移量误差 EZ - ±0.5 ±2 LSB fosc =16.6MHz,VDD = 5.0V 总绝对误差 EAD - - ±3 LSB fosc =16.6MHz,VDD = 5.0V 总转换时间 ** TCON µs 10 bit 精度,VDD = 5.0V 注意 : 1. A/D 输入电阻就是直流条件下 A/D 自身的输入电阻 2. 建议与 AD 连接的信号源内阻小于 10KΩ 模拟比较器电气特性 (VDD = V,GND = 0V,TA = 25 C,fOSC = 30KHz MHz, 除非另有说明 ) 参数符号最小值典型值最大值单位条件 输入偏移电压 V IO 0-10 mv 输入共模电压范围 VCM GND - VDD V 响应时间 TRES ns 电源开启建立时间 TOV µs 输入漏电流 IIL µa 0 < VIN < V DD 交流电气特性 (V DD = V,GND = 0V,TA = 25 C,fOSC = 30KHz MHz, 除非另有说明 ) 振荡器起振时间 参数符号最小值典型值最大值单位条件 TOSC1-1 2 s kHz 振荡器 TOSC ms 16.6MHz 时 复位脉冲宽度 t RESET µs 高电平有效 复位引脚下拉电阻 RRPH kω VDD = 5.0V,V IN = GND 频率稳定性 (RC)* FRC - - ±1 % 16.6MHz 内部 RC 振荡器 (VDD = V,TA = 25 C) - - ±2 % 16.6MHz 内部 RC 振荡器 (VDD = V,TA = -40 C ~ +85 C) 注意 : RC 频率稳定性 ±2% 的精度只是设计上能够保证, 在生产过程中并不测试这些数据 低电压复位电气特性 (VDD = V,GND = 0V,TA = 25 C, 除非另有说明 ) 参数符号最小值典型值最大值单位条件 LVR 设定电压 1 VLVR V LVR 使能,VDD = 2.8V - 5.5V LVR 设定电压 2 VLVR V LVR 使能,VDD = 2.8V - 5.5V LVR 设定电压 3 VLVR V LVR 使能,VDD = 2.8V 5.5V 84
85 12. 订购信息 产品编号 SH88F2051AL/016LU SH88F2051AD/020DU SH88FD/020DU SH88F2051AM/020MU SH88FM/020MU SH88FX/020XU 封装 SOP16 DIP20 DIP20 SOP20 SOP20 TSSOP20 85
86 13. 封装信息 P-DIP 20L 外形尺寸 单位 : 英寸 / 毫米 D E S E C A A 2 A1 Base Plane L Seating Plane B B1 e 1 a e A 符号英吋单位尺寸毫米单位尺寸 A Max Max. A Min Min. A ± ± 0.20 B B ± ± 0.2 C D Typ. (1.046 Max.) Typ. (26.57 Max.) E ± ± 0.25 E Typ. (0.262 Max.) 6.35 Typ. (6.65 Max.) e TY P 2.54 TY P L ± ± 0.25 α e A ± ± 0.89 S Max Max. 注意 : 1. 尺寸 D 的最大值包括末端毛边 2. 尺寸 E1 不包括树脂凸缘 3. 尺寸 S 包括末端毛边 86
87 SOP 16L 150mil (W.B.) 外形尺寸 单位 : 毫米 16 9 ~ 1 b 8 L c E HE θ Detail F D e A1 A2 A Seating Plane See Detail F Symbol Dimensions in inches Dimensions in mm Min Max Min Max A A A b c D E e 0.050(BSC) 1.27(BSC) HE L θ
88 SOP 20L (W.B.) 外形尺寸 单位 : 英寸 / 毫米 L 1 10 D etail F c E H E θ D e b A 1 A 2 A Seating Plane See D etail F Symbol Dimensions in inches Min Max Dimensions in mm Min Max A A A b c D E e 0.050(BSC) 1.27(BSC) HE L θ
89 TSSOP 20L 外形尺寸 单位 : 英寸 / 毫米 E HE θ L 1 10 Detail F D θ' Seating Plane e b A1 A 2 A See Detail F c Symbol Dimensions in inches Dimensions in mm MIN MAX MIN MAX A A A b C D E HE e 0.026(BSC) 0.65(BSC) L θ
90 14. 规格更改记录版本 记录 日期 1.0 初始版本 2013 年 10 月 2.0 修改 OP_OSC 描述方式 ; 增加 OP_OSCDRV 2013 年 12 月 90
91 目录 1. 特性 概述 方框图 引脚配置 SOP 16 脚封装 TSSOP/SOP 20 脚封装 引脚描述 产品信息 SFR 映像 标准功能 CPU CPU 内核特殊功能寄存器 CPU 增强内核特殊功能寄存器 寄存器 随机数据存储器 (RAM) 特性 寄存器 FLASH 存储器 特性 ICP 模式下的 Flash 操作 使用 ISP 模式下载程序 扇区自编程 (SSP ) 功能 寄存器 Flash 控制流程图 SSP 编程注意事项 可读识别码 系统时钟和振荡器 特性 时钟定义 概述 寄存器 振荡器类型 谐振器负载电容选择 系统时钟监控 (SCM) I/O 端口 特性 寄存器 端口结构 端口共享 定时器 特性 定时器 0 和定时器 定时器 中断 特性 概述 中断允许 中断标志 中断向量 中断优先级 中断处理 中断响应时间 外部中断输入 中断汇总
92 9. 增强功能 增强型通用异步收发器 (EUART) 特性 EUART 工作方式 波特率 多机通讯 帧出错检测 寄存器 模数转换器 (ADC) 特性 ADC 框图 寄存器 模拟比较器 (CMP) 特性 寄存器 脉冲宽度调制 (PWM) 特性 寄存器 低电压复位 (LVR) 特性 看门狗定时器 (WDT), 程式超范围溢出 (OVL) 复位及其它复位状态 特性 寄存器 电源管理 特性 空闲模式 (Idle) 掉电模式 (Power-Down) 寄存器 预热计数器 特性 低电压检测 (LPD) 特性 寄存器 代码选项 指令集 电气特性 订购信息 封装信息 规格更改记录
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
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
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
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)
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
79F161 V0.2
带 10 位 ADC 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:16K 字节 RAM: 内部 256 字节, 外部 512 字节 工作电压 : - f OSC = 400kHz - 16MHz,V DD = 3.6V - 5.5V 振荡器 ( 代码选项 ): - 晶体谐振器 :400kHz - 16MHz - 陶瓷谐振器 :400kHz
Microsoft Word - 專題封面.doc
逢 甲 大 學 資 訊 工 程 學 系 專 題 研 究 報 告 8051 小 遊 戲 -21 點 指 導 教 授 : 陳 德 生 學 生 : 許 博 益 中 華 民 國 九 十 六 年 六 月 I 目 錄 第 一 章 緒 論 1 1-1 研 究 背 景 1 1-2 研 究 動 機 2 1-3 研 究 目 的 3 1-3-1 21 點 源 起 3 1-3-2 21 點 規 則 3 第 二 章 微 電
目 录
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
G80F915
VER1.2 2014.5 选型指南 订购型号 FLASH ROM RAM I/O MAX TIMER INT LCD LED PWM EUART 其他温度范围封装 G80F915U 32K 1.5K 46 4*16 5 8*24/6*26 1*12 3~8*8 5*27/4*28 1*8 G80F915F 32K 1.5K 42 4*16 5 8*20/6*22 1*12 3~8*8 5*23/4*24
79F161 V0.2
SH79F16 1611 11 集成 ADC 和 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 集成单周期执行时间 16 X 16bit 硬件乘法器 集成 8 周期执行时间 32 / 16bit 硬件除法器 集成 1 周期 32bit 硬件移位单元 Flash ROM:16K 字节 RAM:1.5K 字节 工作电压 : f OSC = 400k -
79F161 V0.2
集成 8 路触摸按键,12 位 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:32K 字节 ( 烧写次数 1 万次 ) RAM: 内部 256 字节, 外部 1280 字节,LED RAM 28 字节, 触摸按键 RAM 16 字节 类 EEPROM:1024 字节 ( 烧写次数 10 万次 ) 工作电压 : - f OSC =
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 串行数据接收缓冲
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)
5. P0.0 P0.7 P0 4 2 P0.3~P0.6 ADC P1.0 P P1.2(SCL) P1.3(SDA) P1.5 RST P1.5 2 XTAL1(P2.1) 1 XTAL0(P2.0) 2 XTAL1 I/O VDD VSS 6. H5815 4T 16K Flas
H5815 1. H5815 H5815 3 H5815 8052 16K Flash EPROM 256 NVM Flash EPROM 256 RAM 2 8 1 2 I/O 16-2 / 4 10 AD 4 10 PWM 1 I2C 1 UART 13 4 H5815 2. 4T 51 20MHZVDD=2.7V~ 16K Flash EPROM 256 RAM 256 NVM FLASH EPROM
79F161 V0.2
集成 24 路触摸按键输入和 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:32K 字节 RAM: 内部 256 字节, 外部 1280 字节,LCD RAM28 字节 touchkey RAM 48 字节 类 EEPROM: 最大 4096 字节 ( 代码选项可选 ) 工作电压 : - f OSC = 32.768kHz -
<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
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
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
at89S52.doc
主要性能 与 MCS-51 单片机产品兼容 8K 字节在系统可编程 Flash 存储器 1000 次擦写周期 全静态操作 :0Hz~33Hz 三级加密程序存储器 32 个可编程 I/O 口线 三个 16 位定时器 / 计数器 八个中断源 全双工 UART 串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 8 位微控制器 8K 字节在系统可编程 Flash R 功能特性描述
1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File
51 C 51 51 C C C C C C * 2003-3-30 [email protected] C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test
6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit
6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128
µPSD3000 系列
8032 FLASH MCU µpsd3251f-40t6 µpsd3251 8032 FlashPSD Flash SRAM I/O I 2 C, ADC and PWM 8032, 16 / FlashPSD µpsd32 JTAG ISP 2K SRAM Flash - 64K Flash - 16K Flash - Flash 8032 12 I2C ADC 6 I/O 37 I/O 16
USB解决方案.ppt
USB USB? RS232 USB USB HID U modem ADSL cable modem IrDA Silabs USB CP210x USB UART USB RS-232 USB MCU 15 USB 12 FLASH MCU 3 USB MCU USB MCU C8051F32x 10 ADC 1.5%, Vref CPU 25MIPS 8051 16KB Flash -AMUX
四位微控制器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
第5章:汇编语言程序设计
第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令
Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc
EEPROM 应用说明 1 适用产品 :SM59D03G2 SM59D04G2 series 2 应用范围 : 针对需使用 EEPORM 功能替换 STC 89C5X 的应用及汇编语言之范例程序 ( 使用内部扩充内存为暂存区 ) 3 功能说明 : 3.1 本公司上述产品 EEPORM 功能皆可替换 STC89C5X, 仅需对特殊功能缓存器定义 ( 详见表 1) 及 ISP 命令定义 ( 详见表 2)
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 位自动重载定时
1 TPIS TPIS 2 2
1 1 TPIS TPIS 2 2 1. 2. 3. 4. 3 3 4 5 4 TPIS TPIS 6 5 350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6 8 (TPIS) TPIS 9 7 IC AT89C2051 AT89C2051 CMOS8
MPC89LE51_52_53_54_58_515
5 8 bit micro controller 1 特性...2 2 引脚...3 2.1 引脚图...3 2.1 引脚定义...4 3 方框图...6 4 特殊功能寄存器...7 辅助寄存器 AUXR 和 AUXR1...8 5 存储器...9 5.1 RAM...9 MPC89x54/58/515 RAM 空间 (00 7F 可直接或间接寻址 )...9 MPC89x51/5 2/53 RAM
W79E825_824_823A_822A_SC6.PDF
8- W79E825/824/823A/822A - 1.... 5 2.... 5 3.... 6 3.1 (RoHS)... 6 4.... 7 5.... 8 6.... 9 6.1 Flash EPROM... 9 6.2 I/O... 9 6.3 (UART)... 9 6.4... 9 6.5... 9 6.6... 10 6.7... 10 6.8 CPU... 10 6.8.1 ALU...10
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
单片机原理及应用实验指导书.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
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
System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and se
8051 8051 System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and setup. This type of robot uses two kinds of
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 的通信模式
Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc
可程序计数数组 (PCA) 功能使用方法 1 适用产品 :SM59D04G2,SM59D03G2 2 应用说明 : PCA 共有五组, 每组皆可工作于以下七种模式 : 捕获模式 - 正缘捕获模式 (Positive edge capture mode) 捕获模式 - 负缘捕获模式 (Negative edge capture mode) 捕获模式 - 正缘及负缘捕获模式 (Both positive
Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15 LM361 LM361 Zlg
1 1 a. 0.5V 5V 1Hz 1MHz b. 0.1% 2 : a. 0.5V 5V 1Hz 1MHz b. 0.1% (3) a. 0.5V 5V 100 s b. 1% 4 1 10 5 1MHz 6 1 2 1 0.1Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15
SinOne SC92F7447B/7446B/7445B 超高速 1T 8051 内核 Flash MCU,1 Kbytes SRAM,16 Kbytes Flash,128 bytes 独立 EEPROM,12 位 ADC,1 个模拟比较器,LCD/LED Driver,12 位 PWM,3 个
,1 Kbytes SRAM,16 Kbytes Flash,128 bytes 独立 EEPROM,12 位 ADC,1 个模拟比较器,LCD/LED Driver,12 位 PWM,3 个定时器, 乘除法器,UART,SSI,Check Sum 校验模块 1 总体描述 ( 以下简称 SC92F744XB) 系列是一颗增强型的超高速 1T 8051 内核工业级 Flash 微控制器, 指令系统完全兼容传统
ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica
CP Chip Power ARM Cortex-M3 (STM32F) ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplication and hardware
微處理機期末專題
微 處 理 機 期 末 專 題 自 動 鋼 琴 組 員 :b92611004 羅 鈞 瑋 b92611008 吳 妍 儂 b92611038 吳 韋 靜 b92611042 林 佳 穎 一 簡 介 本 組 的 主 題 是 自 動 鋼 琴 在 播 放 音 樂 的 同 時, 鋼 琴 會 自 動 按 下 琴 鍵, 被 按 下 的 琴 鍵 所 對 應 到 的 音 階, 就 是 正 在 撥 放 的 樂 曲 的
MPC82G516
8051 内核 - 单片机 MPC82G516 規格书 北京菱电科技有限公司 TEL:010-82674978 版本 : A1.0 This document contains information on a new product under development by Megawin. Megawin reserves the right to change or discontinue this
TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1
TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT 588 4 1 0571-85121224 85121742 85121304(f) 639 2A095 0571-88256346 89902095 f B1618 010-62051209 62000662 62568913 82036512 f http://www.tsingtek.com
untitled
EDM12832-08 : 25-1 : 116600 : (0411)7612956 7632020 7631122 : (0411)7612958 Model No.: Editor: LCD 1. ----------------------------------------------------3 2. ----------------------------------------------------3
目录
ALTERA_CPLD... 3 11SY_03091... 3 12SY_03091...4....5 21 5 22...8 23..10 24..12 25..13..17 3 1EPM7128SLC.......17 3 2EPM7032SLC.......18 33HT46R47......19..20 41..20 42. 43..26..27 5151DEMO I/O...27 52A/D89C51...28
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
Microsoft Word - ~ doc
EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用
CH559指令周期.doc
CH55X 汇编指令周期表 CH55X 汇编指令概述 : 型号包含 : a. 指令单周期型号 :CH557 CH558 CH559; b. 指令 4 周期型号 :CH551 CH552 CH553 CH554; c. 非跳转指令的指令周期数与指令字节数相同 ; d. 跳转指令含 MOVC/RET/CALL 通常比字节数多若干个周期 ; e.movc 指令多 4 或 5 个周期 ( 下条指令地址为奇数时多
PCM-3386用户手册.doc
PCM-3386 BBPC-4x86 10/100M PC/104 (Lanry technology Co. Ltd. Zhuhai) 38 1012836 (Address: Room 1012,Linhai Building,No. 38,west of Shihua Road,Zhuhai City,Guangdong Province,China) (post code)519015 (phone)0756-3366659
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
(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor
1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4
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...
MG103_DS_CN_V101
数据手册 版本 1.01 QP-7300-03D 1/60 目录 01. 概述... 74 12. 功能... 75 23. 引脚... 86 3.1. 封装...86 43.2. 引脚定义...87 54. 方框图...8 65. 特殊功能寄存器 SFR... 89 75.1. SFR 映射表...89 85.2. SFR 位分配...810 96. 8051 CPU 功能描述... 811 16.1.
第一章
单片机原理 STC15F2K60S2 微机原理与单片机接口技术复习要点 第一章微型计算机概述 ( 了解概念 ) 1.1.2 微型计算机基本构成 ( 基本结构由哪些部分构成 ) 1.1.3 单片微型计算机简介 ( 什么是单片机, 单片机的结构及各个部分的功能, 常见的单片机有哪些 ) 1>. 微型计算机基本构成 : 微处理器, 存储器 (ROM RAM) 与输入输出接口 (I/O 接口 ) 及外部设备及连接他们的系统总线组成
Microsoft Word - ~ doc
1 适用产品 : 1.1 SM59R16A5/ SM59R09A5/ SM59R05A5/ SM59R16A3/ SM59R09A3/ SM59R05A3 1.2 SM59R16G6/ SM59R09G6/ SM59R05G6 1.3 SM59R04A2/ SM59R04A1/ SM59R03A1/ SM59R02A1 1.4 SM59R16A2/ SM59R08A2 2 UART 差异如下说明 :
Ps22Pdf
( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB
untitled
XILINX Platform Cbale USB www.hseda.com ...... Platform Cable USB Compatible.................. impact.........1 platform Cable USB Compatible.........1...1...1...1...1...1 Platform Cable USB Compatible
Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc
自定义下载应用说明 一 适用产品 :SM59XX 系列 SM59D XX 系列 SM59R XX 系列二 应用方式 : 可以让使用者自定义 command 作为进入 ISP 刻录的通关指令, 透过 UART 连接 ISAP 软件做联机更新三 操作说明 ( 使用 SM59D04G2 为例 ): 1. ISAP 操作方式 : 1.1 先将主程序及 ISP 服务程序烧进 MCU 中 1.2 将 MCU 放至系统版上,
中文手册
PCC-3428 PC/104 1. PCC-3428 1.1 PCC-3428 90mm 96mm ST CPU STPC Atlas Atlas CPU 486 DX/DX2 CPU DX2 133MHz Atlas 2D LCD/CRT 100MHz SDRAM 64MBytes PCC-3428 10/100Mbps DOC EIDE USB PC/104 ST STPC Atlas STPC
untitled
EDM16080-01 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3
Microsoft Word - MSP430 Launchpad 指导书.docx
Contents 3... 9... 14 MSP430 LAUNCHPAD 指导书 3 第一部分第一个工程 New Project File > New > CCS Project Project name: ButtonLED Device>Family: MSP430 Variant: MSP430G2553 Project templates and examples : Empty Project
MSP430单片机简介
. September 14, 2012 . 1 简介 MSP430 单片机特点超低功耗 2 MSP430 时钟系统 3 MSP430 的端口 4 定时器看门狗定时器定时器 A 5 示例 MSP430 单片机特点. 简介 MSP430 单片机是美国德州仪器 (TI) 公司 1996 年开始推向市场的一种 16 位超低功耗 具有精简指令集的混合信号处理器 它将多个不同功能的模拟电路 数字电路模块和微处理器集成在了一个芯片上
Section1_16bit Arc.ppt
16-bit Elite Program 2009 Summer Section-1 Microchip 16-bit 2005 Microchip Technology Incorporated. All Rights Reserved. Slide 1 MCU CPU (NOP),, (Data Memory), I/O CPU w. ALU/Working Reg. Data Mem. Data
() () () () () () () () DDRAM () II
液晶模块说明书 SPEC NO YM2232A REV NO. 液晶显示模块产品说明书 产品类型 : 产品型号 : 产品描述 : 标准产品 YM2232A 22x32 图形点阵模块, 控制器 :SED52,LED 背光 客户名称 : 客户确认 : 编写 : Dexun Zou 审核 : HCC 批准 : Jingxi Yang 发行日期 : 22.8 大连佳显电子有限公司 地址 : 大连市沙河口区工华街
1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File
51 C 51 51 C C C C C C * 2003-3-30 [email protected] C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test
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
2005.book
...4... 4... 7...10... 10... 10... 10... 10... 11... 11 PCC... 11 TB170... 12 /... 12...13... 13 BP150 / BP151 / BP152 / BP155... 14...15... 15... 15... 15... 15... 15... 15... 16 PS465 / PS477... 17 PS692
Microsoft PowerPoint - C15_LECTURE_NOTE_15
THE 8051 MICROCONTROLLER THE 8051 MICROCONTROLLER 15.1 Introduction 15.2 The 8051 Architecture 15.3 Interfacing to External Memory 15.4 The 8051 Instruction Set 15.5 Timer Operations 15.6 Serial Port Operations
SPMC75F2413A_EVM_使用说明_V1.2.doc
SPMCFA EVM V. - Jan 0, 00 http://www.sunplusmcu.com ................ SPMCFA........... EEPROM.... I/O............ LED.... LED.... RS-........0............ EVM................ 0.....0..... SPMCFA EVM SPMCFA
SC91F711v1.2
ADC 型宽电压 1T 8051 内核 8 脚 Flash MCU 目录 目录... 1 1 总体描述... 4 2 主要特色... 4 3 管脚定义... 5 3.1 管脚配置... 5 3.2 管脚定义... 5 4 内部方框图... 7 5 FLASH ROM 和 SRAM 结构... 8 5.1 flash rom... 8 5.2 Code Option 区域 ( 用户烧写设置 )...
SC91F844
目录 目录... 1 1 总体描述... 4 2 主要特色... 4 3 管脚定义... 5 3.1 管脚配置... 5 3.2 管脚定义... 6 4 内部方框图... 8 5 FLASH ROM 和 SRAM 结构... 9 5.1 FLASH ROM... 9 5.2 CODE OPTION 区域 ( 用户烧写设置 )... 10 5.3 SRAM... 10 6 特殊功能寄存器 (SFR)...
HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--
HD61202 C-7 1 HD61202 HD61202 8 HD61203 HD61202, HY-12864 HY-19264 HD61202 HD61202 HD61203 HD61202 1 6464=4096 RAMRAM LCD 2HD61202 64 3HD61202 68 68 4HD61202 1/32--1/64 HD61202 HD61202 2 CS1,CS2,CS3 CS1
