Datasheet SH79F32 Datasheet (SINO WEALTH)

SH79F
SH79F
SH79F
SH79F 32
32
32
32
RTC
RTC
RTC
RTC LCD
LCD
LCD
LCD 驱动功能的增强型 8051
8051
8051
1.
1.
1.
1. 特性
基于 8051 指令流水线结构的 8 位单片机 Flash ROM 32 K 字节 RAM :内部 256 字节,外部 512 字节 工作电压:
f
= 32.768kHz - 8.192MHz V
OSC
f
= 32.768kHz - 4.096MHz,V
OSC
(当
V
= 2.4 - 3.6V
DD
振荡器(代码选项):
- 晶体谐振器: 32.768kHz ,内建 PLL (提供 1 2 4 8 X 1024 k Hz 内部时钟,仅限选择
32.768kHz 晶体谐振器时有效)
- 晶体谐振器: 400 k Hz - 8MHz
- 陶瓷谐振器: 400 k Hz - 8MHz
- 外部时钟: 400 k Hz - 8MHz
40个CMOS
内建输入口上拉电阻
  3个16
中断源:
- Timer0 Timer1 Timer2,
- INT0 INT1 INT2
- EUART0 EUART1 SPI TWI
- HSEC
- ADC
- PWM
一个
双向
位定时器
12位PWM
时,
V
管脚
I/O
计数器:
/
定时器
VP3
DD
T0,T1和T2
= 3.0V - 5.5V
DD
= 2.4V - 3.6V
DD
管脚短接)
LCD 驱动器:
- 4 X 32 段( 1/4 占空比 1/3 偏置
- 5 X 31 段( 1/5 占空比 1/3 偏置
- 6 X 30 段( 1/6 占空比 1/3 偏置
实时时钟(
  EUART0和EUART1  SPI
  6
CPU
看门狗定时器( WDT 内带振荡器预热计数器 支持省电运行模式:
低功耗 Flash 封装 64-PIN LQFP
接口(主
两线串行接口(主模式)
通道 内建低电压检测功能( 内建低电压复位功能(
- LVR 电压 1: 3.1V
- LVR
- 1 个振荡周期
- 空闲( Idle )模式
- 掉电( Power-down )模式
位模数转换器(
10
电压
机器周期:
5 ppm = 0.5 s/d
从模式)
/
2: 2.3V
(内建
IR
),内建数字比较器
ADC
LPD
)(代码选项)
LVR
2.
2.
2.
2. 概述
SH79F32 是一顆整合了低功耗时钟和存储周期的高速 8051 可兼容单片机。在同样振荡频率下, 较之传统的 8051 芯片它有
运行更快速的优越特性。
SH79F32 保留了标准 8051 芯片的大部分特性。这些特性包括内置 256 字节 RAM 2 16 位定时器 / 计数器, 1 UART 和外 中断 INT0 INT1 。此外, SH79F32 还集成了 512 字节外部 RAM ,可兼容 8052 芯片的 16 位定时器 / 计数器( Timer2 )。该单片机 还包括适合于程序和数据的 32K 字节 F lash 块。
SH79F32 不仅集成了如 EUART IR TWI SPI 等标准通讯模块,还集成了 LCD 驱动器、 ADC 、比较器、 PWM 定时器和 时时钟等模块。
为了达到高可靠性和低功耗, 功能,低电压检测功能。此外 SH79F32 还提供了 2 种低功耗省电模式。
SH79F32
内建
时钟,
PLL
SLP
Super Low Power)LCD
驱动器,看门狗定时器,低电压复
1 V 1.0
SH79F
SH79F
SH79F
SH79F 32
32
32
32
3.
32K Bytes
Flash ROM
Internal 256 Bytes
External 512 Bytes
Data RAM
(including LCD RAM)
Port 4 Configuration
I/Os
Port 2 Configuration
I/Os
Port 1 Configuration
I/Os
Port 0 Configuration
I/Os
Oscillator
Pipelined 8051 architecture
Timer0 (16bit) Timer1 (16bit) Timer2 (16bit)
P4.0 ~ P4.7
P2.0 ~ P2.7
P1.0 ~ P1.7
P0.0 ~ P0.7
Reset circuit
RST
XTAL2
XTAL1
VDD
External Interrupt
Jtag ports
(for debug)
PLL
Oscillator
PLL_C
LCD Driver
4x32
COM1~4
SEG1~32
LCD Power
VP1-2
CUP1-2
SPI
PowerVP3
Watch Dog
Port 3 Configuration
I/Os
P3.0 ~ P3.7
EUART0, 1/IR
12-bit PWM
10-bit ADC
RTC
TWI (Master mode)
3.
3.
3.
方框图
2
SH79F
SH79F
SH79F
SH79F 32
32
32
32
4.
SH79F32P
SH79F32P
SH79F32P
SH79F32P
30
31
32
17
29
28
27
26
25
24
23
22
21
20
19
18
52
53
54
55
56
57
58
59
60
61
62
63
64
49
50
51
38 37 36 35 34 3339404142434445464748
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P3.5 / T1 /CALOUT
P3.6 / INT2
P3.7 / T2
SCL / P2.0
SDA / P2.1
MOSI / AN0 /P2.2
MISO / AN1/P2.3
SCK / AN2/ P2.4
P3.0 / RXD0
P3.1 / TXD0
P3.2 / INT0
P3.3 / INT1
P3.4/ /T0 /CALIN
PWMP / SEG32 / P0.7
PWMN / SEG31 / P0.6
FLT/SEG30 / P0.5
SEG29 / P0.4
SEG28 / P0.3
SEG27 / P0.2
SEG26 / P0.1
SEG25 / P0.0
SEG24 / P1.7
SEG23 / P1.6
SEG22 / P1.5
SEG21 / P1.4
SEG20 / P1.3
SEG19 / P1.2
SEG18 / P1.1
SEG17 / P1.0
SS / AN3 / P2.5
RXD1 / AN4 / P2.6
TXD1 / AN5 / P2.7
SEG16
SEG15
SEG14
SEG13
SEG12
SEG11
SEG10
SEG9
SEG8
SEG7
SEG6 / TCK
SEG5 / TDI
SEG4 / TMS
SEG3 / TDO
SEG2 / COM6
SEG1 / COM5
RST
VP3
P4.1 / VP1
P4.2 / CUP2
P4.3 / CUP1
P4.4 / COM1
P4.5 / COM2
P4.6 / COM3
P4.7/ COM4
P4.0 / VP2
PLL_C
XTAL2
XTAL1
T2EX
GND
VDD
4.
4.
4.
LQFP64
LQFP64
LQFP64
LQFP64

引脚配置

/ T1 /P 3.5 CALOUT 优先级最高, T1 次之, P3.5 最低)。当一个引脚被高优先级的功能占用时,即使低优先级功能被允许,也 不能作为低优先级功能的引脚。只有当软件禁止引脚的高优先级功能,相应引脚才能被释放作为低优先级端口使用
引脚配置图
注意:
引脚命名中, 写在最外侧的引脚功能具有最高优先级, 最内侧的引脚功能具有最低优先级 (参见引脚配置图, 例如 CALO UT
3
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
引脚编号

引脚命名

默认功能
引脚编号

引脚命名

默认功能
1
VP3
------
33
SEG1/COM5
SEG12XTAL1
------
34
SEG2/COM6
SEG23XTAL2
------35SEG3
------4V
DD
DD
DD
DD
------
3 6
SEG4
------5GND
------
3 7
SEG5
------6PLL_C
------
3 8
SEG6
------
7
RST
————
------
3 9
SEG7
------8T2EX
------40SEG8
------
9
SCL/P2.0
P2.041SEG9
------
10
SDA/P2.1
P2.142SEG10
------
11
MOSI/AN0/P2.2
P2.243SEG11
------
12
MISO/AN1/P2.3
P2.344SEG12
------
13
SCK/AN2/P2.4
P2.445SEG13
------
14
SS
———
/AN3/P2.5
P2.546SEG14
------
15
RXD1/AN4/P2.6
P2.647SEG15
------
16
TXD1/AN5/P2.7
P2.748SEG16
------
17
RXD0/P3.0
P3.0
49
SEG17/P1.0
P1.0
18
TXD0/P3.1
P3.1
50
SEG18/P1.1
P1.119INT0/P3.2
P3.2
51
SEG19/P1.2
P1.220INT1/P3.3
P3.3
52
SEG20/P1.3
P1.3
21
CALIN/T0/P3.4
P3.4
53
SEG21/P1.4
P1.4
22
CALOUT/T1/P3.5
P3.5
54
SEG22/P1.5
P1.523INT2/P3.6
P3.6
55
SEG23/P1.6
P1.624T2/P3.7
P3.7
56
SEG24/P1.7
P1.725VP2/P4.0
VP2
5 7
SEG25/P0.0
P0.026VP1/P4.1
VP1
58
SEG26/P0.1
P0.1
27
CUP2/P4.2
CUP2
59
SEG27/P0.2
P0.2
28
CUP1/P4.3
CUP1
60
SEG28/P0.3
P0.3
29
COM1/P4.4
COM 1
61
SEG29/P0.4
P0.4
30
COM2/P4.5
COM 2
62
FLT/SEG30/P0.5
P0.5
31
COM3/P4.6
COM 3
63
PWMP/SEG31/P0.6
P0.6
32
COM4/P4.7
COM 4
64
PWMN/SEG32/P0.7
P0.7
Table
Table
Table 4
4
.
1
4
.
1
4 .
. 1
1 引脚功能
4
SH79F
SH79F
SH79F
SH79F 32
32
32
32
5.
引脚编号
类型
说明
PORT
PORT
PORT
PORT
P 4 . 0 - P 4 .7
I/O
8 位双向 I/O 端口
P 3 . 0 - P 3 .7
I/O
8 位双向 I/O 端口
P2.0 - P2.7
I/O
8 位双向 I/O 端口( P2.0 P2.1 是开漏输出端口)
P 1 .0 - P 1 . 7
I/O
8 位双向 I/O 端口
P0.0 - P0.7
I/O
8 位双向 I/O 端口
Timer
Timer
Timer
Timer
T0
I/O
Timer0 外部输入
T1
I/O
Timer1 外部输入
T2
I/O
Timer2 外部输入 / 波特率时钟输出
T2EX
I
Timer2 重载 / 捕捉 / 方向控制
PWM
PWM
PWM
PWM 控制器
PWMP
O
12 PWM 定时器输出引脚
PWMN
O
PWMP 有固定相位关系的 12 PWM 定时器输出引脚
FLT
I
PWM 故障输入引脚
EUART
EUART
EUART
EUART
RXD 0
I /O
EUART 0 数据输入 / 输出引脚
TXD 0
O
EUART 0 数据输出 引脚
RXD1
I/O
EUART1 IR 数据输入 / 输出引脚
TXD1
O
EUART1 IR 数据输出引脚
SPI
SPI
SPI
SPI
MOSI
I/O
SPI 主输出从输入引脚
MISO
I/O
SPI 主输入从输出引脚
SCK
I/O
SPI 串行时钟引脚
SS
———
I
SPI 从属选择引脚
ADC
ADC
ADC
ADC
AN0 - AN5
I
ADC 输入信道
TW
TW
TW
TW I
I
I
I
SDA
I/O
TWI 串行数据线(开漏)
SC L
O
TWI 串行时钟线(开漏)
LCD
LCD
LCD
LCD 控制器
COM1 - COM4
O
LCD Com 信号输出脚
SEG3 - SEG32
O
LCD Segment 信号输出脚
SEG1/COM5
O
LCD Segment1 信号输出或 Com5 信号输出脚
SEG2/COM6
O
LCD Segment2 信号输出或 Com6 信号输出脚
VP1 - VP2
P
LCD 电源引脚
CUP1-2
P
LCD 偏置电容连接
5.
5.
5.

引脚描述

5
SH79F
SH79F
SH79F
SH79F 32
32
32
32
续上表
引脚编号
类型
说明
RT
RT
RT
RT C
C
C
C
CALIN
I
RTC 校准输入脚
CALOUT
O
RTC 校准输出脚
中断 &
&
&
& 复位 &
&
&
& 时钟 &
&
&
& 电源
INT0 - INT 2
I
外部中断 0 - 2
RST
————
I
该引脚上保持 10 µ s 以上的低电平, CPU 将复位。由于有内建 20 0k Ω 上拉电阻 连接到
V
DD
,所以仅接一个外部电容即可实现上电复位。
XTAL 1
I
振荡器输入
XTAL 2
O
振荡器输出
PLL_C
P
内建 PLL 外部电容连接脚
GND
P
接地
VP3
P
内建 2.9V 电源输出(连接 47uF 电容)
V
DD
P
电源
编程接口
TDO SEG 3
O
调试接口:测试数据输出
TMS SEG4
I
调试接口:测试模式选择
TDI SEG5
I
调试接口:测试数据输入
TCK SEG6
I
调试接口:测试时钟输入
注意:
SEG 3 -SEG 6 作为调试接口时, SEG 3 -SEG 6 的原有功能被限制。
6
SH79F
SH79F
SH79F
SH79F 32
32
32
32
6.
6.
SFR
SFR
6.
6.
SFR

SFR 映像

SH79F32 内置 256 字节的直接寻址寄存器,包括通用数据存储器和特殊功能存储器 SFR SH79F32 SFR 有以下几种
CPU
CPU
CPU
CPU 内核寄存器 ACC B PSW SP DPL DPH
CPU
CPU
CPU
CPU 内核增强寄存器 AUX C DPL1 DPH1 INSCON XPAGE
电源和时钟控制寄存器 PCON SUSLO
LPD
LPD
LPD
LPD 寄存器: LPDCON
Flash
Flash
Flash
Flash 寄存器 IB_CLK0 IB_CLK1 IB_OFFSET XPAGE IB_DATA IB_CON1 IB_CON2 IB_CON3
IB_CON4 IB_CON5 数据存储页寄存器 XPAGE 硬件看门狗定时器寄存器 RSTSTAT 系统时钟控制寄存器 CLKCON 中断系统寄存器 IEN0 IEN1 IPH0 IPL0 IPH1 IPL1
I/O
I/O
I/O
I/O 端口寄存器 P0,P1,P2,P3,P4,P0CR,P1CR,P2CR,P3CR,P4CR,P0PCR,P1PCR
P4PCR P0SS P1SS
定时器 寄存器 TCON TMOD TL0 TH0 TL1 TH1 T 2 CON T2MOD EXF0 TL2 TH2 RCAP 2 L
RCAP 2 H
EUART0
EUART0
EUART0
EUART0 寄存器 SCON SBUF SADEN SADDR PCON
EUART1
EUART1
EUART1
EUART1 寄存器 SCON1 SBUF1 SADEN1 SADDR1
IR
IR
IR
IR 寄存器 IRCON IRF
TWI
TWI
TWI
TWI 寄存器 TWICON TWIDAT
SPI
SPI
SPI
SPI 寄存器 SPCON SPSTA SPDAT
ADC
ADC
ADC
ADC 寄存器 ADCON ADT AD CH ADD L ADDH
LCD
LCD
LCD
LCD 寄存器 LCDCON PUMPCON LCDCLK PLCON P1SS P0SS
PLL
PLL
PLL
PLL 寄存器 CLKCON
RTC
RTC
RTC
RTC 寄存器 RTCCON RTCDAT SEC MIN HR DAY MTH YR DOW
PWM
PWM
PWM
PWM 寄存器: PWMEN PWMDT PWMC PWMPL PWMPH PWMDL PWMDL
P2PC R,P3PCR
7
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
ACC
E0H
累加器
00000000
ACC.7
ACC.6
ACC.5
ACC.4
ACC.3
ACC.2
ACC.1
ACC.0
B
F0H
B 寄存器
00000000
B.7
B.6
B.5
B.4
B.3
B.2
B.1
B.0
AUX C
F1H
C 寄存器
00000000
C.7
C.6
C.5
C.4
C.3
C.2
C.1
C.0
PSW
D0H
程序状态字
00000000
CYACF0
RS1
RS0OVF1
P
SP
81H
堆栈指针
00000111
SP.7
SP.6
SP.5
SP.4
SP.3
SP.2
SP.1
SP.0
DPL
82H
数据指针低位字节
00000000
DPL0.7
DPL0.6
DPL0.5
DPL0.4
DPL0.3
DPL0.2
DPL0.1
DPL0.0
DPH
83H
数据指针高位字节
00000000
DPH0.7
DPH0.6
DPH0.5
DPH0.4
DPH0.3
DPH0.2
DPH0.1
DPH0.0
DPL1
84H
数据指针 1 低位字节
00000000
DPL1.7
DPL1.6
DPL1.5
DPL1.4
DPL1.3
DPL1.2
DPL1.1
DPL1.0
DPH1
85H
数据指针 1 高位字节
00000000
DPH1.7
DPH1.6
DPH1.5
DPH1.4
DPH1.3
DPH1.2
DPH1.1
DPH1.0
INSCON
86H
数据指针选择
----00-0----
DIV
MUL-DPS
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
XPAGE
F7H
flash 页寄存器
00000000
XPAGE .7
XPAGE .6
XPAGE .5
XPAGE .4
XPAGE .3
XPAGE .2
XPAGE .1
XPAGE .0
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
PCON
87 H
电源控制
000 - 0000
SMOD
SSTAT
SSTAT1-GF1
GF0PDIDL
SUSLO
8E H
电源控制保护字
00000000
SUSLO.7
SUSLO.6
SUSLO.5
SUSLO.4
SUSLO.3
SUSLO.2
SUSLO.1
SUSLO . 0
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
PCON
87 H
电源控制
00 -- 0000
SMOD
SSTAT--
GF1
GF0PDIDL
6.1
Table
6.1
Table
Table 6.1
6.1 CPU SFRs
Table
6.2
Table
6.2
Table
Table 6.2
6.2 数据存储页 SFR
Table
6.3
Table
6.3
Table
Table 6.3
6.3 电源时钟控制 SFRs
Table
Table
Table
Table 6.4
6.4
6.4
6.4 LPD 控制 SFR
8
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_CLK0
F9 H
flash 编程时钟寄存器 0
00000000
IB_CLK0.7
IB_CLK0.6
IB_CLK0.5
IB_CLK0.4
IB_CLK0.3
IB_CLK0.2
IB_CLK0.1
IB_CLK0.0
IB_CLK1
FA H
f lash 编程时钟寄存器 1
00000000
IB_CLK1.7
IB_CLK1.6
IB_CLK1.5
IB_CLK1.4
IB_CLK1.3
IB_CLK1.2
IB_CLK1.1
IB_CLK1.0
IB_OFF
SET
FB H
可编程 flash 低位字节偏移
00000000
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
IB_DATA
F CH
可编程 flash 数据寄存器
00000000
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
F2 H
flash 控制寄存器 1
00000000
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
F3 H
flash 控制寄存器 2
--- 00000---IB_CON2.4
IB_CON2.3
IB_CON2.2
IB_CON2.1
IB_CON2.0
IB_CON3
F4 H
flash 控制寄存器 3
---- 0000----
IB_CON3.3
IB_CON3.2
IB_CON3.1
IB_CON3.0
IB_CON4
F5 H
flash 控制寄存器 4
---- 0000----
IB_CON4.3
IB_CON4.2
IB_CON4.1
IB_CON4.0
IB_CON5
F 6H
flash 控制寄存器 5
---- 0000----
IB_ON5.3
IB_CON5.2
IB_CON5.1
IB_CON5.0
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
RSTSTAT
B 1H
看门狗定时器控制寄存器
* - ***000
WDOF-PORF
LVRF
CLRF
WDT.2
WDT.1
WDT.0
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
CLKCON
B 2H
系统时钟选择
1 00 - 0000
32K
_SPDUP
CLKS1
CLKS0-PLLON
FS2
FS1
FS0
6.5
Table
6.5
Table
Table 6.5
6.5 Flash 控制 SFRs
Table
6.
Table
Table
Table 6.
6
6.
6
6. 6
6 WDT SFR
注意: * RSTSTAT 初始值根据不同类型的复位而不同。
Table
6.
Table
Table
Table 6.
7
6.
7
6. 7
7 时钟控制 SFR
9
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IEN0
A8H
中断允许控制 0
00000000
EA
EADC
ET2ESET1
EX1
ET0
EX0
IEN1
A9H
中断允许控制 1
- 00 - 0000
-
E TWI
EPWM-ERTC
ES1
EX2
ESPI
IPL0
B8H
中断优先权控制低位 0
- 0000000
-
PADCL
PT2L
PSL
PT1L
PX1L
PT0L
PX0L
IPH0
B4H
中断优先权控制高位 0
- 0000000
-
PADCH
PT2H
PSH
PT1H
PX1H
PT0H
PX0H
IPL1
B9H
中断优先权控制低位 1
- 00 - 0000
-
P TWI L
PPWML-PRTCL
PS1L
PX2L
PSPIL
IPH1
B5H
中断优先权控制高位 1
- 00 - 0000
-
P TWI H
PPWMH-PRTCH
PS1H
PX2H
PSPIH
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
P0
80H
8 位端口 0
00000000
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
P1
90H
8 位端口 1
00000000
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0P2A0H
8 位端口 2
00000000
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P3
B0H
8 位端口 3
00000000
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
P4
C0H
8 位端口 4
00000000
P4.7
P4.6
P4.5
P4.4
P4.3
P4.2
P4.1
P4.0
P0CR
E1 H
端口 0 输入 / 输出方向控制
00000000
P0CR .7
P0CR .6
P0CR .5
P0CR .4
P0CR .3
P0CR .2
P0CR .1
P0CR .
P1CR
E2 H
端口 1 输入 / 输出方向控制
00000000
P1CR.7
P1CR.6
P1CR.5
P1CR.4
P1CR.3
P1CR.2
P1CR.1
P1CR.
P2CR
E 3H
端口 2 输入 / 输出方向控制
00000000
P2CR.7
P2CR.6
P2CR.5
P2CR.4
P2CR.3
P2CR.2
P2CR.1
P2CR.
P3CR
E 4H
端口 3 输入 / 输出方向控制
00000000
P3CR.7
P3CR.6
P3CR.5
P3CR.4
P3CR.3
P3CR.2
P3CR.1
P3CR.
P4CR
E 5H
端口 4 输入 / 输出方向控制
00000000
P4CR.7
P4CR.6
P4CR.5
P4CR.4
P4CR.3
P4CR.2
P4CR.1
P4CR.
P0PCR
E9 H
端口 0 内部上拉允许
00000000
P0PCR.7
P0PCR.6
P0PCR.5
P0PCR.4
P0PCR.3
P0PCR.2
P0PCR.1
P0PCR.
P1PCR
E AH
端口 1 内部上拉允许
00000000
P1PCR.7
P1PCR.6
P1PCR.5
P1PCR.4
P1PCR.3
P1PCR.2
P1PCR.1
P1PCR.
P2PCR
E BH
端口 2 内部上拉允许
000000--
P2PCR.7
P2PCR.6
P2PCR.5
P2PCR.4
P2PCR.3
P2PCR.2--
P3PCR
E CH
端口 3 内部上拉允许
00000000
P3PCR.7
P3PCR.6
P3PCR.5
P3PCR.4
P3PCR.3
P3PCR.2
P3PCR.1
P3PCR.
P4PCR
E DH
端口 4 内部上拉允许
00000000
P4PCR.7
P4PCR.6
P4PCR.5
P4PCR.4
P4PCR.3
P4PCR.2
P4PCR.1
P4PCR.
Table
Table
Table 6.8
Table
Table
Table
Table 6.
6.8
6.8
6.8 中断 SFRs
6.
9
6.
9
6. 9
9 端口 SFRs
10
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
TCON
88H
定时器 / 计数器 0 1 控制
00000000
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TMOD
89H
定时器 / 计数器 0 1 模式
00000000
GATE1
C/ T
----1----
M11
M10
GATE0
C/ T
----0----
M01
M00
TL0
8AH
定时器 / 计数器 0 低位字节
00000000
TL0.7
TL0.6
TL0.5
TL0.4
TL0.3
TL0.2
TL0.1
TL0.0
TH0
8CH
定时器 / 计数器 0 高位字节
00000000
TH0.7
TH0.6
TH0.5
TH0.4
TH0.3
TH0.2
TH0.1
TH0.0
TL1
8BH
定时器 / 计数器 1 低位字节
00000000
TL1.7
TL1.6
TL1.5
TL1.4
TL1.3
TL1.2
TL1.1
TL1.1
TH1
8DH
定时器 / 计数器 1 高位字节
00000000
TH1.7
TH1.6
TH1.5
TH1.4
TH1.3
TH1.2
TH1.1
TH1.1
T2CON
C8H
定时器 / 计数器 2 控制
00000000
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/ T
----2----
CP/ R
----L----2----
T2MOD
C9H
定时器 / 计数器 2 模式
------ 00------
T2OE
DCEN
RCAP2L
CAH
定时器 / 计数器 2 重载 / 截获低位字节
00000000
RCAP2L.7
RCAP2L.6
RCAP2L.5
RCAP2L.4
RCAP2L.3
RCAP2L.2
RCAP2L.1
RCAP2L.0
RCAP2H
CBH
定时器 / 计数器 2 重载 / 截获高位字节
00000000
RCAP2H.7
RCAP2H.6
RCAP2H.5
RCAP2H.4
RCAP2H.3
RCAP2H.2
RCAP2H.1
RCAP2H.0
TL2
CCH
定时器 / 计数器 2 低位字节
00000000
TL2.7
TL2.6
TL2.5
TL2.4
TL2.3
TL2.2
TL2. 1
TL2. 0
TH2
CDH
定时器 / 计数器 2 高位字节
00000000
TH2.7
TH2.6
TH2.5
TH2.4
TH2.3
TH2.2
TH2. 1
TH2. 0
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SCON
98 H
串行控制
00000000
SM0/FE
SM1/RXOV
SM2/TXCOL
REN
TB8
RB8TIRI
SBUF
99 H
串行数据缓冲器
00000000
SBUF.7
SBUF.6
SBUF.5
SBUF.4
SBUF.3
SBUF.2
SBUF.1
SBUF.0
SADDR
9A H
从属地址
00000000
SADDR.7
SADDR.6
SADDR.5
SADDR.4
SADDR.3
SADDR.2
SADDR.1
SADDR.0
SADEN
9B H
从属地址掩码
00000000
SADEN.7
SADEN.6
SADEN.5
SADEN.4
SADEN.3
SADEN.2
SADEN.1
SADEN.0
PCON
87 H
电源和串行控制
00 - 00000
SMOD
SSTA T
SSTA T1-GF1
GF0PDIDL
6.10
Table
6.10
Table
Table 6.10
6.10 定时器 SFRs
Table
6.11
Table
6.11
Table
Table 6.11
6.11 EUART0 SFRs
11
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SCON1
D8 H
串行 1 控制
00000000
SM10/FE1
SM11
/RXOV1
SM12
/TXCOL1
REN1
TB 18
RB 1 8
TI1
RI1
SBUF1
D9 H
串行 1 数据缓冲器
00000000
SBUF1.7
SBUF1.6
SBUF1.5
SBUF1.4
SBUF1.3
SBUF1.2
SBUF1.1
SBUF1.0
SADDR1
DA H
从属地址 1
00000000
SADDR1.7
SADDR1.6
SADDR1.5
SADDR1.4
SADDR1.3
SADDR1.2
SADDR1.1
SADDR1.0
SADEN1
DB H
从属地址 1 掩码
00000000
SADEN1.7
SADEN1.6
SADEN1.5
SADEN1.4
SADEN1.3
SADEN1.2
SADEN1.1
SADEN1.0
PCON
87 H
电源和串行控制
00000000
SMOD
SSTA T
SSTA T1-GF1
GF0PDIDL
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IRCON
A1 H
IR 控制
00000000
IRON
IRF6
IRF5
IRF4
IRF3
IRF2
IRF1
IRF0
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SPSTA
F8 H
SPI 状态寄存器
00000---
SPEN
SPIF
MODF
WCOL
RXOV---SPCON
A2 H
SPI 控制寄存器
00000000
DIR
MSTR
CPHA
CPOL
SSDIS
SPR2
SPR1
SPR0
SPDAT
A3 H
SPI 数据 寄存器
00000000
SPD7
SPD6
SPD5
SPD4
SPD3
SPD2
SPD1
SPD0
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
TWICON
A 6 H
TWI 控制寄存器
00000000
TWI EN
TWI IF
STA
STO
RXDOV
ACK
BR1
BR0
TWIDAT
A7H
TWI 数据寄存器
00000000
TWI D7
TWI D6
TWI D5
TWI D4
TWI D3
TWI D2
TWI D1
TWI D0
Table
Table
Table 6.1
Table
Table
Table
Table 6.1
Table
Table
Table
Table 6.1
Table
Table
Table
Table 6.1
6.1
2
6.1
2
6.1 2
2 EUART1 SFRs
6.1
3
6.1
3
6.1 3
3 IR SFR
6.1
4
6.1
4
6.1 4
4 SPI SFRs
6.1
5
6.1
5
6.1 5
5 TWI SFRs
12
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
ADCON
93H
ADC 控制
000-0000
ADON
ADCIFEC-
SCH2
SCH1
SCH0
GO/ D
----O----N----E----
ADT
94H
ADC 时间配置
00--0000
TADC1
TADC0--
TS3
TS2
TS1
TS0
ADCH
95H
ADC 通道选择
000000--
CH5
CH4
CH3
CH2
CH1
CH0--
ADDL
96H
ADC 数据低位字节
------00------A1A0
ADDH
97H
ADC 数据高位字节
00000000
A9A8A7A6A5A4A3
A2
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
LCDCON
AB H
LCD 控制
0 - 000000
LCDON-PUMPF
PUMPON
COMS
VPS
DUTY1
DUTY0
LCDCLK
AC H
LCD 时钟
00000000
LCK7
LCK6
LCK5
LCK4
LCK3
LCK2
LCK1
LCK0
P1SS
AD H
P1 功能选择
00000000
P1S7
P1S6
P1S5
P1S4
P1S3
P1S2
P1S1
P1S0
P0SS
AE H
P 0 功能选择
00000000
P0S7
P0S6
P0S5
P0S4
P0S3
P0S2
P0S1
P0S0
PLCON
AF H
SLP LCD 控制
---00000---PLD4
PLD3
PLD2
PLD1
PLD0
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
RTCCON
BE H
RTC 控制
00 u 00000
RTCEN
HSECIF
COMEN
CAL
AUTOCAL
OUTF1
OUTF0
EOVL
RTCDAT
BF H
RTC 校准数据
uuuuuuuu
E7E6E5E4E3E2E1E0SEC
C1 H
秒和半秒
uuuuuuuu
HSEC
SEC6
SEC5
SEC4
SEC3
SEC2
SEC1
SEC0
MIN
C2 H分钟- uuuuuuu
-
MIN6
MIN5
MIN4
MIN3
MIN2
MIN1
MIN0
HR
C3 H小时-- uuuuuu--
HR5
HR4
HR3
HR2
HR1
HR0
DAY
C4 H日-- uuuuuu--
DAY5
DAY4
DAY3
DAY2
DAY1
DAY0
MTH
C5 H月--- uuuuu---MTH4
MTH3
MTH2
MTH1
MTH0
YR
C6 H年------uu------
YR1
YR0
DOW
C7 H周----- uuu-----DOW2
DOW1
DOW0
6.16
Table
6.16
Table
Table 6.16
6.16 ADC 和比较器 SFRs
Table
6.1
Table
Table
Table 6.1
Table
Table
Table
Table 6.1
7
6.1
7
6.1 7
7 LCD SFRs
6.1
8
6.1
8
6.1 8
8 RTC SFRs
13
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
PWMEN
CF H
PWM 定时器允许
-0 -- 0- - 0
-
EFLT--
EPWMN--
EPWM
PWMLO
E7 H
PWM 锁定
00000000
PWMLO.7
PWMLO.6
PWMLO.5
PWMLO.4
PWMLO.3
PWMLO.2
PWMLO.1
PWMLO.0
PWMC
D2 H
12 PWM 控制
- 0-0000
-
PWMIF-FLTS
FLTC
PWMS
TnCLK1
TnCLK0
PWMPL
D3 H
12 PWM 周期控制低位
0000000
PP.7
PP.6
PP.5
PP.4
PP.3
PP.2
PP.1
PP.0
PWMPH
D4 H
12 PWM 周期控制高位
----0000----
PP.11
PP.10
PP.9
PP.8
PWMDL
D5 H
12 PWM 占空比控制低位
000000
PD.7
PD.6
PD.5
PD.4
PD.3
PD.2
PD.1
PD.0
PWMDH
D6 H
12 PWM 占空比控制高位
----0000----
PD.11
PD.10
PD.9
PD.8
PWMDT
D1 H
PWM 死区时间控制
00000000
DT7
DT6
DT5
DT4
DT3
DT2
DT1
DT0
符号
地址
名称
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
/PIN
/PIN
/PIN
/PIN 复位值
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
EXF0
E8H
外部中断 2 控制
------00------
IE2
IT2
TCON
88H
定时器 / 计数器 0 1 控制
外部中断 0, 1 控制
0000000
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
6.19
Table
6.19
Table
Table 6.19
6.19 PWM SFRs
Table
6.20
Table
6.20
Table
Table 6.20
6.20 外部中断 SFRs
注意: - : 保留位。
u: 复位不影响当前值。
14
SH79F
SH79F
SH79F
SH79F 32
32
32
32
SFR
可位寻址
不可位寻址
0/8
1/9
2/A
3/B
4/C
5/D
6/E
7/F
F8 H
SPSTA
IB_CLK0
IB_CLK1
IB_OFFSET
IB_DATA---FF H
F0 HBAUX C
IB_CON1
IB_CON2
IB_CON3
IB_CON4
IB_CON5
XPAGE
F7 H
E8 H
EXF0
P0PCR
P1PCR
P2PCR
P3PCR
P4PCR--
EF H
E0 H
ACC
P0CR
P1CR
P2CR
P3CR
P4CR-PWMLO
E7 H
D8 H
SCON1
SBUF1
SADDR1
SADEN1----
DF H
D0 H
PSW
PWMDT
PWMC
PWMPL
PWMPH
PWMDL
PWMDH
-
D7 H
C8 H
T2CON
T2MOD
RCAP2L
RCAP2H
TL2
TH2-PWMEN
CF H
C0 HP4SEC
MINHRDAY
MTHYRDOW
C7 H
B8 H
IPL0
IPL1----
RTCCON
RTCDAT
BF H
B0 HP3RSTSTA T
CLKCON
LPDCON
IPH0
IPH1--
B7 H
A8 H
IEN0
IEN1-LCDCON
LCDCLK
P1SS
P0SS
PLCON
AF H
A0 HP2IRCON
SPCON
SPDAT--
TWI CON
TWI DAT
A7 H
98 H
SCON
SBUF
SADDR
SADEN----
9F H
90 HP1--ADCON
ADT
ADCH
ADDL
ADDH
97 H
88 H
TCON
TMOD
TL0
TL1
TH0
TH1
SUSLO
-
8F H
80 HP0SP
DPL
DPH
DPL1
DPH1
INSCON
PCON
87 H
0/8
1/9
2/A
3/B
4/C
5/D
6/E
7/F
SFR
SFR
SFR 映像图
注意: 未使用的 SFR 地址禁止读写。
15
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.
D0H
D0H
D0H
D0H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
PSW
PSW
PSW
PSW
CACF0
RS1
RS0OVF 1
P
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7
7
7
7
C
C
C
C
进位标志位
0: 术或 逻辑运算中,没有进位 或借位 发生 1: 术或 逻辑运算中,有进位 或借位 发生
6
6
6
6
AC
AC
AC
AC
辅助进位标志位
0: 算数逻辑运算中,没有辅助进位 或借位 发生 1: 算数逻辑运算中,有辅助进位 或借位 发生
5
5
5
5
F0
F0
F0
F0
F0
F0
F0
F0 标志位
用户自定义标志位
4-3
4-3
4-3
4-3
RS[1:0]
RS[1:0]
RS[1:0]
RS[1:0]
R0-R7
R0-R7
R0-R7
R0-R7 寄存器页选择位
00: 0 ( 映射到 00H-07H) 01: 1 ( 映射到 08H-0FH) 10: 2 ( 映射到 10H-17H) 11: 3 ( 映射到 18H-1FH)
2
2
2
2
OV
OV
OV
OV
溢出标志位
0: 没有溢出发生 1: 有溢出发生
1
1
1
1
F
F
F
F 1
1
1
1
F
F
F
F 1
1
1
1 标志位
用户自定义标志位
0
0
0
0
P
P
P
P
奇偶校验位
0: 累加器 A 中值为 1 的位数为偶数 1: 累加器 A 中值为 1 的位数为奇数
7.
7.
7.

标准功能

7.1
CPU
7.1
CPU
7.1

7.1 CPU

CPU
7.1.1
CPU
7.1.1
CPU
7.1.1
7.1.1 CPU
CPU 内核特殊功能寄存器
特性
CPU 内核寄存器: ACC, B, PSW, SP, DPL , DPH
累加器
累加器 ACC 是一个常用的专用寄存器,指令系统中采用 A 作为累加器的助记符。
B
B
B
B 寄存器
在乘除法指令中,会用到 B 寄存器。在其它指令中, B 寄存器可作为 暂存器 来使用。
SP
栈指针 SP 是一个 8 位专用寄存器
程序状态字( PSW )寄存器包含了程序状态信息。
7
7
7 .
SP
SP
.
1
.
1
. 1
1 PSW 寄存器
PSW
PSW
PSW )寄存器
在执行 PUSH 、 各种子程序调用、 中断响应 等指令时, SP 先加 1 , 再将数据压栈; 执行 P OP
栈指针( SP
RET RETI 指令时, 数据退出堆栈后 SP 再减 1 堆栈栈顶可以是片上 内部 RAM 00H-FFH 的任意地址,系统复位后, SP 初始化为 07H ,使得堆栈事实上由 08H 地址开始。
程序状态字( PSW
Table
Table
Table
Table 7
DPTR
数据指针( DPTR
16 位寄存器 DPTR 来处理,也可以作为 2 个独立的 8 位寄存器 DPH DPL 来处理。
DPTR
DPTR
数据指针 DPTR 是一个 16 位专用寄存器, 其高位字节寄存器用 DPH 表示, 低位字节寄存器用 DPL 表示。 它们既可以作为一
16
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.1.2
操作 结果
A
A
A
A
B
B
B
B
AUXC
AUXC
AUXC
AUXC
MUL
MUL
MUL
MUL
INSCON.2 = 0 8 位模式
(A)*(B)
低位字节
高位字节
---
INSCON.2 = 1 16 位模式
(AUXC A)*(B)
低位字节
中位字节
高位字节
DIV
DIV
DIV
DIV
INSCON.3 = 0 8 位模式
(A)/(B)
商低位字节
余数
---
INSCON.3 = 1 16 位模式
(AUXC A)/(B)
商低位字节
余数
商高位字节
86H
86H
86H
86H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
INSCON
INSCON
INSCON
INSCON
----DIV
MUL-DPS
/
/
/
/ ----
/
/ 写-读 /
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
----00-
0
位编号
位符号
说明
3
3
3
3
DIV
DIV
DIV
DIV
16
16
16
16 /8
/8
/8
/8 位除法选择位
0 8 位除法 1 16 位除法
2
2
2
2
MUL
MUL
MUL
MUL
16
16
16
16 /8
/8
/8
/8 位乘法选择位
0 8 位乘法 1 16 位乘法
0
0
0
0
DPS
DPS
DPS
DPS
数据指针选择位
0 :数据指针 1 :数据指针 1
CPU
7.1.2
CPU
7.1.2
7.1.2 CPU
CPU 增强内核特殊功能寄存器
扩展的 'MUL' 'DIV' 指令 : 16 *8 , 16 /8
双数据指针
CPU 增强内核寄存器: AUXC, DPL1, DPH1, INSCON
SH79F 32 扩展了 'MUL' 'DIV' 的指令,使用一个新寄存器 -AUXC 寄存器保存运算数据的高 8 位, 以实现 16 位运算。 在 16
除法指令中,会用到 AUXC 寄存器。在其它指令中, AUXC 寄存器可作为 暂存器 来使用。
CPU 在复位后进入标准模式, 'MUL' 'DIV' 的指令操作和标准 8051 指令操作一致。 当 INSCON 寄存器的相应位置 1
'DIV' 指令的 16 位操作功能被打开。
双数据指针
使用双数据指针能加速数据存储移动。标准数据指针被命名为 DPTR 而新型数据指针命名为 DPTR1 。 数据指针 DPTR1 DPTR 类似, 是一个 16 位专用寄存器,其高位字节寄存器用 DPH1 表示,低位字节寄存器用 DPL1
它们既可以作为一个 16 位寄存器 DPTR1 来处理,也可以作为 2 个独立的 8 位寄存器 DPH1 DPL1 来处理。
通过对 INSCON 寄存器中的 DPS 位置 1 或清 0 选择两个数据指针中的一个。 所有读取或操作 DPTR 的相关指令将会选择最近
次选择的数据指针。 寄存器
Table
7
.
Table
Table
Table 7
2
7
.
2
7 .
. 2
2 数据指针选择寄存器
后,
'MU L'
表示。
17
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.2
1FFH
7FH
80H
0FFH 0FFH
80H
00 00
Upper 128 bytes
Internal Ram
indirect accesses
Lower 128 bytes
Internal Ram
direct or indirect
accesses
Extenal
RAM
1E0H
LCD RAM
S
S
S
S pecial
F
F
F
F unction
R
R
R
R egister
direct accesses
F7H
F7H
F7H
F7H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
XPAGE
XPAGE
XPAGE
XPAGE
XPAGE.7
XPAGE.6
XPAGE.5
XPAGE.4
XPAGE.3
XPAGE.2
XPAGE.1
XPAGE.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
XPAGE
XPAGE
XPAGE
XPAGE [
[
[
[ 7
7
7
7 :
:
:
: 0
0
0
0 ]
]
]
]
RAM 页选择控制位
RAM
7.2
RAM
7.2

7.2 RAM

RAM
SH79F32 为随机数据存储提供了内部 RAM 和外部 RAM 。内部 RAM 分为以下四个的部分:
低位 128 字节的 RAM ( 地址从 00 H 7FH) 可直接或间接寻址。 高位 128 字节的 RAM ( 地址从 80 H FF H ) 只能间接寻址。 特殊功能寄存器 (SFR ,地址从 80 H FF H ) 只能直接寻址。 外部 512 字节的 RAM ( 地址从 00H 1FFH ,其中 1E0H-1FFH LCD RAM 地址 ) 可通过 MOVX 指令间接访问
高位 128 字节的 RAM 占用的地址空间和 SFR 相同, 但在物理上与 SFR 的空间是分离的。 当一个指令访问高于地址 7F H 的内
位置时, CPU 可以根据访问的指令类型来区分是访问高位 128 字节数据 RAM 还是访问 SFR
注意: 未使用的 SFR 地址禁止读写。
RAM
内部和外部 RAM
SH79F32 支持传统的访问外部 RAM 方法。 使用 MOVX A
RAM
RAM 配置
@R i MOVX@Ri,A 来访问外部低位 256 字节 RAM
;用
MOVX A
@DPTR MOVX@DPTR A 来访问外部 512 字节 RAM
用户也能用 XPAGE 寄存器来访问外部 RAM , 使用 MOVXA
@Ri MOVX@Ri,A 指令即可。 此时用 XPAGE 来表示高于 25 6
字节的 RAM 地址。
Flash SSP 模式下, XPAGE 也能用作分段选择器 详见 SSP 部分 )。
Table
7
.
Table
Table
Table 7
3
7
.
3
7 .
. 3
3 数据存储页寄存器
18
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.3
Flash
7.3
Flash
7.3
7.3 Flash
Flash 程序存储器
7.3.1
7.3.1
7.3.1

7.3.1 特性

Flash 存储器包括 16 X 2KB 区块,总共 32 KB
在工作电压范围内都能进行编程和擦除操作
在线编程 ICP 操作支持写入、读取和擦除操作
支持整体 / 扇区擦除和编程
编程 / 擦除次数:至少 1000 0
数据保存年限:至少 10
低功耗 SH79F32 为存储程序代码内置 32K 可编程 F lash ,可以通过在线编程( ICP )模式和扇区自编程( SSP )模式对 Flash 存储
操作。
注意: 最后 64 字节( 7FC0 H ~7FFF H )将被保留,不能作为程序存储器使用。
ICP 模式中, 编程器能操作所有 F lash , 例如擦除或写入。 F lash 的读取或写入操作以字节为单位, 但擦除只能以扇区 ( 2 K
为单位,或者整体擦除。
ICP 模式中,扇区擦除操作能擦除除了最后一个扇区(扇区 15 )以外任何扇区。在 SSP 模式中,除了最后一个扇区(扇
15 )和包含擦除代码的扇区不能擦除以外,其余扇区都可以擦除。
ICP 模式下还可以进行整体擦除,这个操作会擦除包括最后一个扇区(扇区 15 )在内的整个 F lash 存储器。整体擦除操作
仅能在 ICP 模式下使用, SSP 模式下不支持整体擦除操作。
7.3.2
ICP
7.3.2
ICP
7.3.2
7.3.2 ICP
ICP 模式下的 Flash
ICP 模式即在线编程模式,可以在 CPU 焊在用户板上以后编程。 ICP 模式下,用户系统必须关机后编程器才能通过 ICP 编程
接口刷新 F lash 存储器。 ICP 编程接口包括 6 个引脚( V
编程器使用 4 JTAG 引脚( TDO , TDI , TCK , TMS )进入编程模式。只有将特定波形输入 4 个引脚后, CPU 才能进入编程模
式。如需详细说明请参考 Flash
ICP
ICP
ICP
ICP 模式支持以下操作: (
1
)
(
1
)
(
( 1
1 )
) 代码保护控制模式编程
SH79F 32 的代码保护功能为用户代码提供了高性能的安全措施。每个分区有两种模式可用。 代码保护模式 0 :允许 / 禁止任何编程器的写入 / 读取操作(不包括整体擦除)。 代码保护模式 1 :允许 / 禁止在其他分区中通过 MOVC 指令进行读取操作,或通过 SSP 模式进行擦除 / 写入操作。 用户必须应用 Flash
(
2
)
(
2
)
(
( 2
2 )
) 整体擦除
无论代码保护控制模式的状态如何, 整体擦除操作都将会擦除所有程序, 代码选项, 代码保护位和自定义 ID
编程器为用户提供自定义 ID 码设置功能以区别他们的产品)。
整体擦除只能由 Flash 编程器操作。
(
3
)
(
3
)
(
( 3
3 )
) 扇区擦除
扇区擦除操作将会擦除所选扇区中内容。用户程式和 Flash 编程都能执行该操作。 若需用户程式执行该操作,必须禁止所选扇区的代码保护控制模式 1 。 若需编程器执行该操作,必须禁止所选扇区的代码保护控制模式 0
注意: 最后一个扇区 15 (7800H - 7FFFH) 无法执行扇区擦除功能。
(
4
)
/
(
4
)
/
(
( 4
4 )
) /
/ 读代码
/ 写代码操作可以将代码、数据从 Flash 存储器中读出或写入 Flash 存储器。编程器或用户程式都能执行该操作。 若需用户程式执行该操作, 必须禁止所选扇区的代码保护控制模式 1 。 不管安全位设置与否, 用户程序都能读 / 写程式自身
在扇区。
若需编程器执行该操作,必须禁止所选扇区的代码保护控制模式 0
Flash
Flash
Flash 操作
Flash
Flash
Flash 编程器用户指南。
Flash
Flash
Flash 编程器 设置相应的保护位,以进入所需的保护模式。
GND TCK TD I T MS T DO )。
DD
码的内容。 (
Flash
19
SH79F
SH79F
SH79F
SH79F 32
32
32
32
ICP 模式中,通过 6 线接口编程器能完成所有 F lash 操作。因为编程信号非常敏感,所以使用编程器编程时用户需要先用 5
MCU
TCK
TDI
TDO
GND
To Application
To Application
To Application
To Application
Circuit
Circuit
Circuit
Circuit
Jumper
Flash
Programmer
V DD
DD
DD
DD
TMS
操作
ICP
ICP
ICP
ICP
SSP
SSP
SSP
SSP
代码保护
支持
不支持
扇区擦除
支持(无安全位)
支持(无安全位)
整体擦除
支持
不支持
/
支持(无安全位)
支持(无安全位或自身扇区)
个跳线将芯片的编程引脚( V
TCK TD I T MS T DO )从应用电路中分离出来,如下图所示。
DD
当采用 ICP 模式进行操作时,建议按照如下步骤进行操作: (1) 在开始编程前断开跳线( jumper ),从应用电路中分离编程引脚;
(2) 将芯片编程引脚连接至编程器编程接口,开始编程; (3) 编程结束后断开编程器接口,连接跳线恢复应用电路。
20
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.3.3
F9H
F9H
F9H
F9H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_CLK0
IB_CLK0
IB_CLK0
IB_CLK0
IB_CLK0.7
IB_CLK0.6
IB_CLK0.5
IB_CLK0.4
IB_CLK0.3
IB_CLK0.2
IB_CLK0.1
IB_CLK0.0
FAH
FAH
FAH
FAH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_CLK1
IB_CLK1
IB_CLK1
IB_CLK1
IB_CLK1.7
IB_CLK1.6
IB_CLK1.5
IB_CLK1.4
IB_CLK1.3
IB_CLK1.2
IB_CLK1.1
IB_CLK1.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
IB_CLKx[7
IB_CLKx[7
IB_CLKx[7
IB_CLKx[7 :
:
:
: 0]
0]
0]
0]
X
X
X
X =
=
=
= 0,
0,
0,
0, 1
1
1
1
Flash
Flash
Flash
Flash 烧写时钟选择
I B_CLK1: IB_CLK0 中的值按下列方法计算: 编程:
1MHzF40usT20us ,
T8
T
65536
SYSPROG
SYSCK
PROG
×
1MHzF40usT20us,
T
T
65536
SYSPROG
SYSCK
PROG
<
典型值 T
PROG
= 30 µ s
扇区擦除:
1MHzF90msT50ms ,
T8
T
65536
SYSERASE
SYSCK
ERASE
×
1MHzF90msT50ms,
T
T
65536
SYSERASE
SYSCK
ERASE
<
典型值 T
ERASE
= 60ms
F7H
F7H
F7H
F7H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
XPAGE
XPAGE
XPAGE
XPAGE
XPAGE.7
XPAGE.6
XPAGE.5
XPAGE.4
XPAGE.3
XPAGE.2
XPAGE.1
XPAGE.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-3
7-3
7-3
7-3
XPAGE[7:3]
XPAGE[7:3]
XPAGE[7:3]
XPAGE[7:3]
被编程的存储单元扇区号 00000 代表扇 0 以此类推
2-0
2-0
2-0
2-0
XPAGE[2
XPAGE[2
XPAGE[2
XPAGE[2 :
:
:
: 0]
0]
0]
0]
被编程的存储单元高 3 位地址
7.3.3
7.3.3
7.3.3 扇区自编程( SSP
SH79F32 支持 SSP 功能,如果所选的扇区未保护,用户代码可以擦除最后一个扇区 ( 扇区 15) 外的所有扇区或对任何扇区
行编程操作。一旦该扇区被编程,则在该扇区被擦除之前不能再次编程。
SH79F32 内建一个复杂控制流程以避免误入 SSP 模式导致代码被误修改。为进入 SSP 模式, IB_CON2 - 5 必须满足特定条
件。若 IB_CON2 - 5 不满足特定条件,则无法进入 SSP 模式。 寄存器
Table
7
.
Table
Table
Table 7
4
7
.
4
7 .
. 4
4 编程用定时控制寄存器
SSP
SSP
SSP )功能
Table
7
.
5
7
.
5
7 .
. 5
5 编程用地址选择寄存器
Table
Table
Table 7
21
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
FBH
FBH
FBH
FBH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_OFFSET
IB_OFFSET
IB_OFFSET
IB_OFFSET
IB_OFF
SET.7
IB_OFF
SET.6
IB_OFF
SET.5
IB_OFF
SET.4
IB_OFF
SET.3
IB_OFF
SET.2
IB_OFF
SET.1
IB_OFF
SET.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
IB_OFFSET[7
IB_OFFSET[7
IB_OFFSET[7
IB_OFFSET[7 :
:
:
: 0]
0]
0]
0]
被编程的存储单元低 8 位地址
FCH
FCH
FCH
FCH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_DATA
IB_DATA
IB_DATA
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
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
IB_DATA[7:0]
IB_DATA[7:0]
IB_DATA[7:0]
IB_DATA[7:0]
待编程数据
F2H
F2H
F2H
F2H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_CON1
IB_CON1
IB_CON1
IB_CON1
IB_CON1.7
IB_CON1.6
IB_CON1.5
IB_CON1.4
IB_CON1.3
IB_CON1.2
IB_CON 1.1
IB_CON1.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
IB_CON1[7
IB_CON1[7
IB_CON1[7
IB_CON1[7 :
:
:
: 0]
0]
0]
0]
SSP
SSP
SSP
SSP 操作选择
0xE6 : 扇区擦除 0x6E : 存储单元编程
F3H
F3H
F3H
F3H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_CON2
IB_CON2
IB_CON2
IB_CON2
---
IB_CON2.4
IB_CON2.3
IB_CON2.2
IB_CON 2.1
IB_CON2.0
/
/
/
/ ---读 /
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN )
)
)
)
---0000
0
位编号
位符号
说明
4
4
4
4
IB_CON2
IB_CON2
IB_CON2
IB_CON2 [
[
[
[ 4
4
4
4 ]
]
]
]
系统时钟确认
0 : f
SYS
> 1MHz
1 : f
SYS
< 1MHz
3-0
3-0
3-0
3-0
IB_CON2[3:0]
IB_CON2[3:0]
IB_CON2[3:0]
IB_CON2[3:0]
必须为 05H ,否则 Flash 编程将会终止
Table
Table
Table 7
Table
Table
Table
Table 7
Table
Table
Table
Table 7
7
.
6
7
.
6
7 .
. 6
6 编程用地址偏移寄存器
7
.
7
7
.
7
7 .
. 7
7 编程用数据寄存器
7
.
8
7
.
8
7 .
. 8
8 操作选择寄存器
Table
Table
Table
Table 7
7
.
9
7
.
9
7 .
. 9
9 SSP 流程控制寄存器 1
22
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
F4H
F4H
F4H
F4H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_CON3
IB_CON3
IB_CON3
IB_CON3
----IB_CON3.3
IB_CON3.2
IB_CON 3.1
IB_CON3.0
/
/
/
/ ----
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN )
)
)
)
----000
0
位编号
位符号
说明
3-0
3-0
3-0
3-0
IB_CON3[3:0]
IB_CON3[3:0]
IB_CON3[3:0]
IB_CON3[3:0]
必须为 0AH ,否则 Flash 编程将会终止
F5H
F5H
F5H
F5H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_CON4
IB_CON4
IB_CON4
IB_CON4
----IB_CON4.3
IB_CON4.2
IB_CON 4.1
IB_CON4.0
/
/
/
/
---
-
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN )
)
)
)
----000
0
位编号
位符号
说明
3-0
3-0
3-0
3-0
IB_CON4[3:0]
IB_CON4[3:0]
IB_CON4[3:0]
IB_CON4[3:0]
必须为 09H ,否则 Flash 编程将会终止
F6H
F6H
F6H
F6H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IB_CON5
IB_CON5
IB_CON5
IB_CON5
----IB_CON5.3
IB_CON5.2
IB_CON 5.1
IB_CON5.0
/
/
/
/ ----
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN )
)
)
)
----000
0
位编号
位符号
说明
3-0
3-0
3-0
3-0
IB_CON5[3:0]
IB_CON5[3:0]
IB_CON5[3:0]
IB_CON5[3:0]
必须为 06H ,否则 Flash 编程将会终止
Table
Table
Table 7
Table
Table
Table
Table 7
Table
Table
Table
Table 7
7
.
10
7
.
10
7 .
. 10
10 SSP 流程控制寄存器 2
7
.
11
7
.
11
7 .
. 11
11 SSP 流程控制寄存器 3
7
.
12
7
.
12
7 .
. 12
12 SSP 流程控制寄存器 4
23
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.
S0
S1
S2
S3
S4
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
Set IB_CLK0,1
Set IB_OFFSET
Set XPAGE Set IB_DATA Set IB_CON1
IB_CON2 5H
IB_CON2[3:0] 5H
Set IB_CON2[3:0]=5H
IB_CON3 AH
Set IB_CON3=AH
IB_CON3 AH
Set IB_CON4=9H
IB_CON4 9H
Set IB_CON5=6H
IB_CON2 5H
ELSE
Sector Erase
Reset
IB_CON1-5
3
.
4
7.
3
.
4
7.
7. 3
3 .
. 4
4 Flash
Flash
Flash
Flash 控制流程图
24
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.3.5
SSP
7.3.5
SSP
7.3.5
7.3.5 SSP
SSP 编程注意事项
为确保顺利进入 SSP 模式,完成编程或者擦除操作 ,用户软件必须按以下步骤设置:
(1)
(1)
(1)
(1) 用于代码 /
1. 关闭中断;
2. 设置 IB_CLK1 IB_CLK0
3. 根据所选扇区设置 XPAGE IB_OFFSET
4. 如需编程填写 IB_DATA
5. 按照顺序设置 IB_CON1 - 5
6. 添加 4 NOP 指令; 7 . 代码 / 数据编程, CPU 将进入 I dle 模式 ,编程完成后自动退出 Idle 模式;
8. 如需在相同扇区的顺序寻址中写入数据,跳转至第 3 9 . 清除 XPAGE ,恢复中断设置
(2)
(2)
(2)
(2) 用于扇区擦除
1. 关闭中断;
2. 设置 IB_CLK1 IB_CLK0
3. 根据所选扇区 设置 XPAGE
4. 按照顺序设置 IB_CON1 - 5
5. 添加 4 NOP 指令;
6. 开始擦除, CPU 将进入 IDLE 模式;擦除完成后自动退出 IDLE 模式; 7 . 更多 擦除 扇区擦除操作跳转至第 3 8 . 清除 XPAGE ,恢复中断设置
(3)
(3)
(3)
(3) 读取:
使用 “ MOVC A @A+DPTR 或者 “ MOVC A @A+PC
/
/
/ 数据编程
25
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.4
MCU
MCU
MCU
MCU
LCD
V
DD
GND
10k
V
V
V
V
DD
DD
DD
DD
RST
0.1uF
VP3
3V
47uF
7.4
7.4

7.4 低电压运行

SH79F32 可以在高电压模式 3.0V - 5.5V 和低电压模式 2.4V - 3.6V 下运行。在高电压模式下,接通内建稳压源能为
CPU 以及包括 LCD 驱动器在内的外部设备建立稳定的 3V 电源。 V
对于低电压的应用 2.4V - 3.6V ,要求短接 V
DD
VP3
DD
作为稳压源输入引脚, VP3 作为稳压源输出引脚。
当电源电压低于 3V 时,在低电模式下 LCD 的性能会有所降低, 因为大部分 LCD 面板为 3V 应用, 所以 LCD 的性能会有所降
低。
应用图
注意: 在低电压模式下, V
不能超过 3.6V ,否则会对芯片造成永久损坏。
DD
26
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.5
7.5
7.5

7.5 系统时钟和振荡器

7.5.1
7.5.1
7.5.1

7.5.1 特性

支持 4 种振荡器类型 : 32.768kHz 晶体谐振器、晶体谐振器、陶瓷谐振器和外部时钟
内建 8.192MHz 锁相环 PLL 振荡器
内建 32.768kHz 加速电路
内建系统时钟分频器
7.5.2
7.5.2
7.5.2

7.5.2 时钟定义

SH79F 32 几个内部时钟定义如下:
OSCCLK:
OSCCLK:
OSCCLK:
OSCCLK: 4 个可选振荡器类型中(从 XTAL1 输入的 32.768kHz 晶体谐振器 晶体谐振器 陶瓷谐振器和外部时钟)选中
的那个振荡器的时钟。 f
PLLCLK:
PLLCLK:
PLLCLK:
PLLCLK: PLL 振荡器时钟。 f WDTCLK:
WDTCLK:
WDTCLK:
WDTCLK: 内部的 32k Hz 看门狗 RC 振荡器时钟。 f OSCSCLK:
OSCSCLK:
OSCSCLK:
OSCSCLK: 系统时钟频率分频器的输入时钟。 这个时钟可能为 OSCCLK 或者 PLLCLK。f
定义为 OSCSCLK 的周期。
SYSCLK:
SYSCLK:
SYSCLK:
SYSCLK: 系统时钟,系统频率分频器的输出时钟。这个时钟为 CPU 指令周期的时钟。 f
SYSCLK 的周期。 概述
SH79F32 支持 4 种振荡器类型 : 32.768kHz 晶体谐振器 晶体谐振器 400kHz-8MHz 陶瓷谐振器 400kHz-8MHz 部时钟 400kHz-8MHz )。 振荡器类型的选择由代码选项 OP_OSC 决定(详见 代码选项 章节)。由振荡器产生的基本时钟脉 冲 提供系统时钟支持 CPU 及片上外围设备。
SH79F32 内建一个锁相环 PLL)振荡器, PLL 振荡器能提供高达 8.192MHz 振荡频率。 PLLCON 控制 能禁止或使能 PLL 振荡器。当代码选项 OP_OSC 不为 011 时(选中
其他振荡器类型,详见代码选项章节), PLL 功能不起作用。
定义为 OSCCLK 的频率。 t
OSC
定义为 PLLCLK 的频率。 t
PLL
定义为 OSCCLK 的周期。
OSC
定义为 PLLCLK 的周期。
PLL
定义为 WDTCLK 的频率。 t
WDT
当代码选项 OP_OSC 011
时 (选择
定义为 WDTCLK 的周期。
WDT
定义为 OSCSCLK
OSCS
定义为 SYSCLK 的频率。 t
SYS
32.768kHz 晶体振荡器, 详见 代码选项
的频率。
SYS
t
O SCS
节) ,
27
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
B2H
B2H
B2H
B2H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
CLKCON
CLKCON
CLKCON
CLKCON
32K_SPDUP
CLKS1
CLKS0
-
P LL C ONFSFS1
FS0
/
/
/
/
/
/
/ 写-读 /
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
100-000
0
位编号
位符号
说明
7
7
7
7
32K_SPDUP
32K_SPDUP
32K_SPDUP
32K_SPDUP
32.768kHz
32.768kHz
32.768kHz
32.768kHz 振荡器加速模式控制位
0: 32.768kHz 振荡器常规模式,由软件清 0 1: 32.768kHz 振荡器加速模式,由软件或硬件置 1
此位在系统发生任何形式的复位,如上电复位、看门狗复位等时,自动由硬件
设置 1 ,用以加速 32.768kHz 振荡器起振,缩短 32.768kHz 振荡器的起振时间。
如果有需要,本位也可以由软件置 1 或清 0 。比如进入掉电模式 Power-Down
mode 前,可以将此位置 1 ,掉电模式唤醒后再由软件清 0
应该需要注意的是关闭 32.768kHz 加速模式(此位清 0 ),可以节省系统的耗电。 只有代码选项 OP_OSC 011
选择 32.768kHz 晶体振荡器
详见 代码选项 章节
),
此控制位才有效。
6-5
6-5
6-5
6-5
CLKS[1:
CLKS[1:
CLKS[1:
CLKS[1: 0]
0]
0]
0]
系统时钟预分频器 FS[2:0]
FS[2:0]
FS[2:0]
FS[2:0] 选择的时钟源分频
00 f
SYS
= f
OSCS
01 f
SYS
= f
OSCS
/2
10 f
SYS
= f
OSCS
/4
11 f
SYS
= f
OSCS
/12
如果选择 32.768kHz 振荡器为 OSCSCLK ,此控制位仍然有效。
3
3
3
3
P
P
P
P LL
LL
LL
LL C
C
C
C ON
ON
ON
ON
PLL
PLL
PLL
PLL 振荡器开启控制位
0 :关闭 PLL 锁相环 1 :打开 PLL 锁相环(仅选择 32.768kHz 晶振时有效)
只有代码选项 OP_OSC 011
此控制位才有效
。(
选择 32.768kHz 晶体振荡器
详见 代码选项 章节)
2-0
2-0
2-0
2-0
FS[2:0]
FS[2:0]
FS[2:0]
FS[2:0]
系统时钟源选择
0xx :选择 32.768kHz 作为 OSCSCLK 100 PLL 提供 8.192MHz 作为 OSCSCLK 101 PLL 提供 4.096 MHz 作为 OSCSCLK 110 PLL 提供 2.048 MHz 作为 OSCSCLK 111 PLL 提供 1.024 MHz 作为 OSCSCLK
只有代码选项 OP_OSC 011
此控制位才有效
。(
选择 32.768kHz
晶体振荡器,
详见 代码选项 章节)
Table
Table
Table 7
7
.
13
7
.
13
7 .
. 13
13 系统时钟控制寄存器
注意: 选择 PLL CLK 作为 OSCSCLK ,必须按以下步骤依次设置
1. PLL 控制寄存器中设置 FS1 FS0
2. 设置 PLLCON = 1 ,打开 PLL
3. 至少等待 2ms 4 . 设置 FS2 = 1 ,选择 PLL 作为 OSCSCLK
选择 PLLCLK 切换到 32.768kHz 作为 OSCSCLK ,必须按以下步骤依次设置:
1. 设置 FS[2:0] = 0xx ,选择 32.768kHz 作为系统时钟源;
2. 执行一个 NOP 指令;
3. 设置 PLLCON = 0 ,关闭 PLL 注意: 不要同时执行关 PLL 和切换到 32.768kHz 的操作。
28
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.5.3
OSCI
OSCO
C1
C2
32.768kHz
PLL_C
C3 = 1000pF
OSCI
OSCO
C1
C2
Crystal
OSCI
OSCO
C1
C2
Ceramic
OSCI
OSCO
External Clock
7.5.3
7.5.3

7.5.3 振荡器类型

32.768kHz 晶体振荡器 /PLL 振荡器
400 k Hz - 8MHz 晶体振荡器
400 k Hz - 8MHz 陶瓷振荡器
400 k Hz - 8MHz 外部时钟
29
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.5.4
陶瓷谐振
推荐型号
生产厂
频率
C1
C1
C1
C1
C2
C2
C2
C2
455 k Hz
47 - 100pF
47 - 100pF
ZTB 455 k Hz
威克创通讯器材有限公司
ZT 455E
深圳东光晶博电子有限公司
3.58MHz-­ZTT 3.580M
威克创通讯器材有限公司
ZT 3.58M*
深圳东光晶博电子有限公司
4MHz--
ZTT 4.000M
威克创通讯器材有限公司
ZT 4M*
深圳东光晶博电子有限公司
晶体 谐振
推荐型号
生产厂
频率
C1
C1
C1
C1
C2
C2
C2
C2
32.768 kHz
5 - 1 2.5 pF
5 - 1 2.5 pF
DT 38 ( φ 3x8)
KDS
φ 3x8 - 32.768 k Hz
威克创通讯器材有限公司
4MHz
8 - 15pF
8 - 15pF
HC-49U/S 4.000MHz
威克创通讯器材有限公司
49S-4.000M-F16E
深圳东光晶博电子有限公司
8MHz
8 - 15pF
8 - 15pF
HC-49U/S 8.000MHz
威克创通讯器材有限公司
49S-8.000M-F16E
深圳东光晶博电子有限公司
7.5.4
7.5.4

7.5.4 谐振器负载电容选择

* 已经内建有负载电容
:
:
注意 :
:
!
( 1) 表中负载电容仅供参考 ! ( 2) 以上电容值可通过谐振器基本的起振和运行测试, 并非最优值。 ( 3) 请注意印制板上的杂散电容,用户应在超过应用电压和温度的条件下测试谐振器的性能。
在应用陶瓷谐振器 / 晶体谐振器之前,用户需向谐振器生产厂要求相关应用参数以获得最佳性能。 请登陆 http://www.sinowealth.com 以取得更多的推荐谐振器生产厂。
!
!
30
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.6
E1H
E1H
E1H
E1H -
-
-
- E
E
E
E 5
5
5
5 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
P0CR
P0CR
P0CR
P0CR (E1H)
(E1H)
(E1H)
(E1H)
P0CR.7
P0CR.6
P0CR.5
P0CR.4
P0CR.3
P0CR.2
P0CR. 1
P0CR. 0
P1CR
P1CR
P1CR
P1CR (E2H)
(E2H)
(E2H)
(E2H)
P1CR.7
P1CR.6
P1CR.5
P1CR.4
P1CR.3
P1CR.2
P1CR. 1
P1CR. 0
P2CR
P2CR
P2CR
P2CR (E3H)
(E3H)
(E3H)
(E3H)
P2CR.7
P2CR.6
P2CR.5
P2CR.4
P2CR.3
P2CR.2
P2CR.1
P2CR.0
P3CR
P3CR
P3CR
P3CR (E4H)
(E4H)
(E4H)
(E4H)
P 3 CR.7
P 3 CR. 6
P 3 CR. 5
P3CR.4
P3CR.3
P3CR.2
P3CR.1
P3CR.0
P
P
P
P 4
4
4
4 CR
CR
CR
CR (E
(E
(E
(E 5
5
5
5 H)
H)
H)
H)
P 4 CR.7
P 4 CR. 6
P 4 CR. 5
P 4 CR. 4
P 4 CR. 3
P 4 CR. 2
P 4 CR. 1
P 4 CR. 0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
Px
Px
Px
Px C
C
C
C R
R
R
R .
.
.
. y
y
y
y
x
x
x
x =
=
=
= 0
0
0
0 -4
-4
-4
-4 ,
,
,
, y
y
y
y =
=
=
= 0
0
0
0 -
-
-
- 7
7
7
7
端口输入 /
/
/
/ 输出控制寄存器
0 : 输入模式 1 : 输出模式
E9H-
E9H-
E9H-
E9H- E
E
E
E D
D
D
D H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
P0PCR
P0PCR
P0PCR
P0PCR (E9H)
(E9H)
(E9H)
(E9H)
P0PCR.7
P0PCR.6
P0PCR.5
P0PCR.4
P0PCR.3
P0PCR.2
P 0 PCR.1
P 0 PCR.0
P1PCR
P1PCR
P1PCR
P1PCR (EAH)
(EAH)
(EAH)
(EAH)
P1PCR.7
P1PCR.6
P1PCR.5
P1PCR.4
P1PCR.3
P1PCR.2
P 1 PCR.1
P 1 PCR.0
P2PCR
P2PCR
P2PCR
P2PCR (EBH)
(EBH)
(EBH)
(EBH)
P2PCR.7
P2PCR.6
P2PCR.5
P2PCR.4
P2PCR.3
P2PCR.2--
P3PCR
P3PCR
P3PCR
P3PCR (ECH)
(ECH)
(ECH)
(ECH)
P 3 PCR.7
P 3 PCR. 6
P 3 PCR. 5
P3PCR.4
P3PCR.3
P3PCR.2
P3PCR.1
P3PCR.0
P4PCR
P4PCR
P4PCR
P4PCR (EDH)
(EDH)
(EDH)
(EDH)
P 4 PCR.7
P 4 PCR. 6
P 4 PCR. 5
P 4 PCR. 4
P 4 PCR. 3
P 4 PCR. 2
P 4 PCR. 1
P 4 PCR. 0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(POR/WDT/LVR
(POR/WDT/LVR
(POR/WDT/LVR
(POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
Px
Px
Px
Px P
P
P
P CR
CR
CR
CR .
.
.
. y
y
y
y
x
x
x
x =
=
=
= 0-
0-
0-
0- 4
4
4
4 ,
,
,
, y
y
y
y =
=
=
= 0-7
0-7
0-7
0-7
输入端口内部上拉电阻控制
0 : 内部上拉电阻关闭 1 : 内部上拉电阻开启
I/O
7.6
I/O
7.6
7.6 I/O
I/O 端口
7.6.1
7.6.1
7.6.1

7.6.1 特性

5 8 位双向 I/O 端口
I/O 端口可与其他选择功能共用
SH79F 32
者输出。当端口作为输入时,每个 I/O 端口带有由 PxPCR y 控制的内部上拉电阻( x = 0-4, y = 0-7 )。
SH79F 32 的有些 I/O 引脚能与选择功能共用。当所有功能都允许时,在 CPU 中存在优先权以避免功能冲突。(详见 端口共
章节)。
7.6.2
7.6.2
7.6.2
7.6.2 寄存器 Table
Table
Table
Table 7
提供
7
.
14
7
.
14
7 .
. 14
14 端口控制寄存器
5组8
位位可编程双向
端口。端口数据在寄存器
I/O
中。端口控制寄存器(
P x
PxCRy
)控制端口是作为输入或
Table
Table
Table
Table 7
7
.
15
7
.
15
7 .
. 15
15 端口上拉电阻控制寄存器
31
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
Data
Register
Data Bus
Write
Read Port Pad
PxCRy
Read Data Register/Pad Selection
Read
PxPCRy
Output Mode
I/O Pad
0: From Pad 1: From data register
SFEN
Second
Function
Input Mode
Read Port Data Register
(Pull-up)
0 = ON 1 = OFF
V DD V DD
0 = OFF 1 = ON
80H
80H
80H
80H -
-
-
- C
C
C
C 0H
0H
0H
0H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
P0
P0
P0
P0 (80H)
(80H)
(80H)
(80H)
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
P1
P1
P1
P1 (90H)
(90H)
(90H)
(90H)
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
P2
P2
P2
P2 (A0H)
(A0H)
(A0H)
(A0H)
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1*
P2.0*
P3
P3
P3
P3 (B0H)
(B0H)
(B0H)
(B0H)
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
P4
P4
P4
P4 (C0H)
(C0H)
(C0H)
(C0H)
P4.7
P4.6
P4.5
P4.4
P4.3
P4.2
P4.1
P4.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
Px
Px
Px
Px .
.
.
. y
y
y
y
x
x
x
x =
=
=
= 0
0
0
0 -4
-4
-4
-4 ,
,
,
, y
y
y
y =
=
=
= 0
0
0
0 -
-
-
- 7
7
7
7
端口数据寄存器
7
.
Table
Table
Table 7
7.6.3
7.6.3
7.6.3

7.6.3 端口模块图

16
7
.
16
7 .
. 16
16 端口数据寄存器
:
:
注意 :
: P2.0 P2.1 端口作为 N- 沟道的开漏 I/O ,但是此时端口电压不得超过 5.5V
注意
输入端口读操作直接读引脚电平。
( 1) ( 2) 输出端口读操作的输入源有两种,一种是从端口数据寄存器读取, 另一种是直接读引脚电平。 用读取指令来区分 : - -
写指令是读寄存器,而其它指令读引脚电平。
( 3) 不管端口是否共用为其他功能,对端口写操作都是针对端口数据寄存器。
32
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.6.
引脚编号
优先级
功能
允许位
64
64
64
64
1
PWMP
PWMEN 寄存器的 EPWM 位置 1
2
SEG32
P0SS 寄存器的 P0S7 位置 1
3
P0.7
EPWM 位和 P0S7 位清 0
63
63
63
63
1
PWMN
PWMEN 寄存器的 EPWM N 位置 1
2
SEG31
P0SS 寄存器的 P0S6 位置 1
3
P0.6
EPWM N 位和 P0S 6 位清 0
62
62
62
62
1
Flt
PWMEN 寄存器的 E FLT 位置 1
2
SEG30
P0SS 寄存器的 P0S5 位置 1
3
P0.5
E FLT 位和 P0S 5 位都清 0
57
57
57
57 -
-
-
- 61
61
61
61
1
SEG2 5 -
SEG2 9
P0SS 寄存器的相应位 P0S0-P0S4 )置 1
2
P0. 0 - P0. 4
P0SS 寄存器的相应位 P0S0-P0S4 )清 0
引脚编号
优先级
功能
允许位
49
49
49
49 -
-
-
- 56
56
56
56
1
SEG 17 -
SEG2 4
P1SS 寄存器的相应位 P1S 0 -P1S 7 )置 1
2
P1.0 - P1.7
P1SS 寄存器的相应位 P1S 0 -P1S 7 )清 0
4
7.6.
4
7.6.
7.6. 4
4 端口共用
40 个双向 I/O 端口也能共用作为第二或第三种特殊功能。共用优先级按照外部最高内部最低的规则:
引脚配置图 中引脚最外边标注功能享有最高优先级,最里边标注功能享有最低优先级。这意味着一个引脚已经使用较高 优先级功能(如果被允许的话),就不能用作较低优先级功能,即使较低优先级功能被允许。只有较高优先级功能由软件关闭 后,相应的引脚才能用作较低优先级功能。上拉电阻也由相同规则控制。
当允许端口复用为其它功能时,用户可以修改 PxCR PxPCR x = 0 -4 ),但在复用功能被禁止前,这些操作不会影响端 口状态。
当允许端口复用为其它功能时,任何对端口的读写操作只会影响到数据寄存器的值,端口引脚值保持不变,直到复用的其 它功能关闭。
PORT
0
PORT
PORT
PORT 0
- LCD Segment 25-32 P0.0 - P0.7
- PWMN: PWM 负输出 P0.6
- PWMP: PWM 正输出 P0.7
Table
Table
Table
Table 7
:
0
:
0 :
:
7
.
17
7
.
17
7 .
. 17
17 PORT0 共用列表
P
ORT
1
ORT
ORT 1
:
1
:
1 :
:
7
.
18
7
.
18
7 .
. 18
18 PORT 1 共用列表
P
P
P ORT
- LCD Segment 17-24 P1. 0 - P1.7
Table
Table
Table
Table 7
33
SH79F
SH79F
SH79F
SH79F 32
32
32
32
P
引脚编号
优先级
功能
允许位
9
9
9
9
1
SCL
TWI CON 寄存器的 TWI EN 位置 1
2
P2.0
TWI CON 寄存器的 TWI EN 位清 0
10
10
10
10
1
SDA
TWI CON 寄存器的 TWI EN 位置 1
2
P2.1
TWI CON 寄存器的 TWI EN 位清 0
11
11
11
11
1
MOSI
在从属模式下将 SPSTA 寄存器的 SPEN 位置 1 ( SPEN CPHA SSDIS 位在从属模式下都置为 1 时,自动上拉 )
2
AN0
ADCH 寄存器的 CH0 位和 ADCON 寄存器的 ADON 位都置 1 ,并且 SCH [2:0] = 000
3
P2.2
SPSTA 寄存器的 SPEN 位和 ADCH 寄存器的 CH0 位都清 0
12
12
12
12
1
MISO
SPSTA 寄存器的 SPEN 位置 1 ( 在主模式下将 SPSTA 寄存器的 SPEN 位置 1 时,自动上拉 )
2
AN1
ADCH 寄存器的 CH1 位和 ADCON 寄存器的 ADON 位都置 1 ,并且 SCH [2:0] = 001
3
P2.3
SPSTA 寄存器的 SPEN 位和 ADCH 寄存器的 CH 1 位都清 0
13
13
13
13
1
SCK
SPSTA 寄存器的 SPEN 位置 1 ( SPEN CPHA SSDIS 位在从属模式下都置 1 时,自动上拉 )
2
AN2
ADCH 寄存器的 CH2 位和 ADCON 寄存器的 ADON 位都置 1 ,并且 SCH [2:0] = 010
3
P2.4
SPSTA 寄存器的 SPEN 位和 ADCH 寄存器的 CH 2 位都清 0
14
14
14
14
1
SS
———
SPEN = 1 时,在 SPI 主模式下将 SPCON 寄存器的 SSDIS 位清 0 , 或者在 SPI 从模式下当 CPHA = 1 时将 SPCON 寄存器的 SSDIS 位清 0 , 或者在 SPI 从模式下将 SPCON 寄存器的 CPHA 位清 0 ( 当 SPEN=1&Master=1&SSDIS=0
或当 SPEN=1&Master=0
自动上拉 )
2
AN3
ADCH 寄存器的 CH3 位和 ADCON 寄存器的 ADON 位都置 1 ,并且 SCH [2:0] = 011
3
P2.5
无上述情况
15
15
15
15
1
RXD1
SCON1 寄存器的 REN1 位置 1 ( REN1 = 1 时,自动上拉 )
2
AN4
ADCH 寄存器的 CH4 位和 ADCON 寄存器的 ADON 位都置 1 ,并且 SCH [2:0] = 100
3
P2.6
SCON1 寄存器的 REN1 位和 ADCH 寄存器的 CH 4 位都清 0
16
16
16
16
1
TXD1
SBUF1 寄存器 写操作
2
AN5
ADCH 寄存器的 CH5 位和 ADCON 寄存器的 ADON 位都置 1 ,并且 SCH [2:0] = 101
3
P2.7
不对 SBUF1 寄存器写操作,并且 ADCH 寄存器的 CH5 位清 0
ORT
2
ORT
ORT 2
———
:
2
:
2 :
:
(P2.5): SPI 从属选择
7
.
19
7
.
19
7 .
. 19
19 PORT 2 共用列表
P
P
P ORT
- SCL (P 2 . 0 ): TWI 串行时钟线(开漏)
- SDA (P2.1): TWI 串行数据线(开漏)
- MOSI (P2.2): SPI 主输出从属输入
- MISO (P2.3): SPI 主输入从属输出
- SCK (P2.4): SPI 串行时钟
- SS
- RXD1 (P2.6): EUART1 数据输入
- TXD1 (P2.7): EUART1 数据输出
- AN0 - AN5 (P2.2 - P2.7): ADC 输入通道
Table
Table
Table
Table 7
34
SH79F
SH79F
SH79F
SH79F 32
32
32
32
P
引脚编号
优先级
功能
允许位
17
1
RXD0
SCON 寄存器的 REN 位置 1 (自动上拉)
2
P3.0
SCON 寄存器的 REN 位清 0
18
1
TXD0
SBUF 寄存器写操作
2
P3.1
无上述情况
19
1
INT0
IEN0 寄存器的 EX0 位置 1 ,并且 Port3.2 置为输入模式(自动上拉)
2
P3.2
始终作为 I/O201
INT1
IEN0 寄存器的 EX1 位置 1 ,并且 Port3.3 置为输入模式(自动上拉)
2
P3.3
始终作为 I/O211
CALIN
RTCCON 寄存器的 RTCEN CAL 位均为 1 时,将 AUTOCAL 位置 1
2
T0
TCON 寄存器的 TR0 位和 TMOD 寄存器的 C/ T0
———
位都置 1 (自动上拉)
22
1
CALOUT
RTCCON 寄存器的 RTCEN 位和 COMEN 位置 1 ,并且 OUTF [1:0] 不等于 00
2
T1
TCON 寄存器的 TR1 位和 TMOD 寄存器中的 C/ T1
———
位都置 1 (自动上拉)
23
1
INT2
IEN 1 寄存器的 EX2 位置 1 ,并且 Port3.6 置为输入模式(自动上拉)
2
P3.6
始终作为 I/O241
T2
T 2 CON 寄存器的 TR2 位和 C/ T2
———
位都置 1 (自动上拉)
2
P3.7
无上述情况
ORT
3
ORT
ORT 3
:
3
:
3 :
:
7
.
20
7
.
20
7 .
. 20
20 PORT3 共用列表
P
P
P ORT
- RXD0 (P3.0): EUART 0 数据输入
- TXD0 (P3.1): EUART 0 数据输出
- INT0 (P3.2): 外部中断 0
- INT1 (P3.3): 外部中断 1
- T0 (P3.4): 定时器 0 外部输入
- T1 (P3.5): 定时器 1 外部输入
- INT2 (P3.6): 外部中断 2
- T2 (P3.7): 定时器 2 外部输入 / 波特率时钟输出
- CALIN (P3.4): RTC 校准输入
- CALOUT (P3.5): RTC 校准输出
Table
Table
Table
Table 7
35
SH79F
SH79F
SH79F
SH79F 32
32
32
32
PORT4
引脚编号
优先级
功能
允许位
25
25
25
25
1
VP2
LCDCON 寄存器的 VPS 位清 0
2
P4.0
LCDCON 寄存器的 VPS 位置 1
26
26
26
26
1
VP1
LCDCON 寄存器的 VPS 位清 0
2
P4.1
LCDCON 寄存器的 VPS 位置 1
27
27
27
27
1
CUP2
LCDCON 寄存器的 VPS 位清 0
2
P4.2
LCDCON 寄存器的 VPS 位置 1
28
28
28
28
1
CUP1
LCDCON 寄存器的 VPS 位清 0
2
P4.3
LCDCON 寄存器的 VPS 位置 1
29
29
29
29
1
COM1
LCDCON 寄存器的 COMS 位清 0
2
P4.4
LCDCON 寄存器的 COMS 位置 1
30
30
30
30
1
COM2
LCDCON 寄存器的 COMS 位清 0
2
P4.5
LCDCON 寄存器的 COMS 位置 1
31
31
31
31
1
COM3
LCDCON 寄存器的 COMS 位清 0
2
P4.6
LCDCON 寄存器的 COMS 位置 1
32
32
32
32
1
COM4
LCDCON 寄存器的 COMS 位清 0
2
P4.7
LCDCON 寄存器的 COMS 位置 1
PORT4
PORT4
PORT4 :
- VP2 (P4.0): LCD 电源引脚
- VP1 (P4.1): LCD 电源引脚
- CUP2 (P4.2): LCD 偏置电容器连接引脚
- CUP1 (P4.3): LCD 偏置电容器连接引脚
- COM0 (P4.4): Common 信号输出
- COM1 (P4.5): Common 信号输出
- COM2 (P4.6): Common 信号输出
- COM3 (P4.7): Common 信号输出
Table
Table
Table
Table 7
:
:
:
7
.
21
7
.
21
7 .
. 21
21 P ORT 4 共用列表
36
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.7
TLx
(5bits)
THx
(8bits)
TFx
Overflow
GATEx
INTx
TRx
C/Tx
=0
=1
0:Switch Off 1:Switch On
Tx
The Block Diagram of mode0 of Timerx ( x=0,1 )
The Block Diagram of mode0 of Timerx ( x=0,1 )
The Block Diagram of mode0 of Timerx ( x=0,1 )
The Block Diagram of mode0 of Timerx ( x=0,1 )
System Clock
Interrupt Request
Overflow
Flag
+
&
7.7
7.7

7.7 定时器

7.7.1
7.7.1
7.7.1

7.7.1

SH79F 32 3 个定时器 定时器 0 1 2 ,兼容标准的 8052
三个 都可被设置为定时器或计数器
用作定时器功能时,每经过一个系统时钟,寄存器加 1
用作计数器功能时,外部输入脚 Tx x = 0 1 2 每产生一次 1 0 的跳变时,寄存器加 1
7.7.2
7.7.2
7.7.2
7.7.2 定时器 0
0
0
0 和定时器 1
1
1
1
每个定时器的两个数据寄存器( THx & TLx x = 0 1 ))可作为一个 16 位寄存器来访问。它们由寄存器 TCON TMOD 控 制。 IEN0 寄存器的 ET0 ET1 位置 1 能允许定时器 0 和定时器 1 中断。(详见 中断 章节)
定时器 x
x
x
x 的方式 (x
(x
=
0,
1)
(x
=
0,
1)
(x =
= 0,
0, 1)
1)
通过计数器 / 定时器方式寄存器( TMOD )的方式选择位 M x 1-M x 0 ,选择定时器工作方式。
0
:
方式 0
13
0
:
13
0 :
: 13
13 位计数器 /
/
/
/ 定时器
在方式 0 中,定时器 x 13 位计数器 / 定时器。 THx 寄存器存放 13 位计数器 / 定时器的高 8 位, TL x 存放低 5 位( TL x .4-TL x .0 TL x 的高三位( TL x .7-TL x .5 )是不确定的,在读取时应该被忽略。当 13 位定时器寄存器递增,溢出时,系统置起定时器溢出标
TF x 。如果定时器 x 中断被允许,将会产生一个中断。 C/ Tx
定时器 x 的时钟源。
便于测量 INTx
———
如果 C/ Tx
GATEx = 0 GATE x = 1 且输入信号 INTx
= 1 ,定时器 x 输入引脚( Tx )的电平从高到低跳变,使定时器 x 数据寄存器加 1 。如果 C/ Tx
————
————
的正脉冲宽度。 TRx 位置 1 不强行复位定时器,这意味着如果 TRx 1 ,定时器寄存器将从上次 TR x 0 时的值开始
有效时, TRx 1 打开定时器。 GATEx 1 允许定时器由外部输入信号 INTx
———
位选择计数器 / 定时器的时钟源。
———
= 0 ,选择系统时钟
计数。所以在允许定时器之前,应该设定定时器寄存器的初始值。
)。
————
控制
37
SH79F
SH79F
SH79F
SH79F 32
32
32
32
1
TLx
(8bits)
THx
(8bits)
TFx
Overflow
GATEx
TRx
C/Tx
=0
=1
0:Switch Off 1:Switch On
Tx
The Block Diagram of mode1 of Timerx ( x=0,1 )
The Block Diagram of mode1 of Timerx ( x=0,1 )
The Block Diagram of mode1 of Timerx ( x=0,1 )
The Block Diagram of mode1 of Timerx ( x=0,1 )
System Clock
Interrupt Request
Overflow
Flag
+
&
INTx
TFx
Interrupt Request
+
&
TRx
C/Tx
=0
=1
Tx
The Block Diagram of mode2 of Timerx (x=0,1)
The Block Diagram of mode2 of Timerx (x=0,1)
The Block Diagram of mode2 of Timerx (x=0,1)
The Block Diagram of mode2 of Timerx (x=0,1)
TL0
(8bits)
TH0
(8bits)
Reload
Sysem Clock
Overflow
Flag
Overflow
0:Switch Off 1:Switch On
GATEx
INTx
:
16
1
:
16
方式 1
1 :
: 16
16 位计数器 /
除了使用
2
:
8
2
:
8
方式 2
2 :
: 8
8 位带自动重载的计数器 /
/
/
/ 定时器
位定时器
16
计数器之外,方式
/
/
/
/ 定时器
的运行与方式
1
一致。打开和配置计数器
0
定时器也如同方式
/
0
方式 2 中,定时器 x 8 位自动重载计数器 / 定时器。 TL x 存放计数值, TH x 存放重载值。当在 TL x 中的计数器溢出至 0x00 置起定时器溢出标志 TF x
, 寄存器
TH x 的值被重载入寄存器 TL x 中。 如果定时器中断使能, 当 TF x 1 时将产生一个中断。 而在 T H x
中的重载值不会改变。在允许定时器正确计数开始之前, TL x 必须初始化为所需的值。
除了自动重载功能外,方式 2 中的计数器 / 定时器的使能和配置与方式 1 0 是一致的。
时,
38
SH79F
SH79F
SH79F
SH79F 32
32
32
32
3
TL0
(8bits)
TF0
Overflow
+
&
C/T0
The Block Diagram of mode3 of Timer0
The Block Diagram of mode3 of Timer0
The Block Diagram of mode3 of Timer0
The Block Diagram of mode3 of Timer0
TH0
(8bits)
TF1
Overflow
Overflow
Flag
Overflow
Flag
Interrupt Request
Interrupt Request
0:Switch Off 1:Switch On
0:Switch Off 1:Switch On
T0
GATE0
TR0
TR1
=0
=1
System Clock
System Clock
INT
0
:
8
3
:
3 :
: 两个 8
8
8 位计数器 /
方式 3
在方式 3 中,定时器 0 用作两个独立的 8 位计数器 / 定时器,分别由 TL 0 TH 0 控制。 TL 0 使用定时器 0 的控制(在 TCON 中) 和 状态(在 TMOD 中)位: TR0 C/
/
/
/ 定时器( 限定时器 0
———
T0
GATE0 TF0 TL 0 能用系统时钟或外部输入信号作为时钟源。
0
0
0
TH0 只能用作定时器功能,时钟源来自系统时钟。 TH0 由定时器 1 的控制位 TR1 控制使能,溢出时定时器 1 溢出标志 TF1 1 控制 定时器 1 中断。
定时器 0 工作在方式 3 时,定时器 1 可以工作在方式 0 1 2 ,但是不能置 1 TF1 标志和产生中断,可以用来产生串口的波特 率。 TH1 TL1 只能用作定时器功能,时钟源来自系统时钟, GATE1 位无效。 T1 输入脚的上拉电阻也无效。定时器 1 由方式控 制 使能与否,因为 TR1 被定时器 0 占用。定时器 1 在方式 0 1 2 时使能,在方式 3 时被关闭。
:
:
注意 :
: 当定时器 1 作为波特率发生器时,读取或写入 TH1/TL1 会影响波特率的准确性,因此也会引起通信出错。
39
SH79F
SH79F
SH79F
SH79F 32
32
32
32
寄存器
88
88
88
88 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
TCON
TCON
TCON
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7
7
7
7 5
5
5
5
TFx
TFx
TFx
TFx
x
x
x
x =
=
=
= 0
0
0
0 1
1
1
1
定时器 x
x
x
x 溢出标志位
0 定时器 x 无溢出,可由软件清 0 1 定时器 x 溢出,由硬件置 1 ;若由软件置 1 将会引起定时器中断
6
6
6
6 4
4
4
4
TRx
TRx
TRx
TRx
x
x
x
x =
=
=
= 0
0
0
0 1
1
1
1
定时器 x
x
x
x 启动,停止控制位
0 :禁止 定时器 x 1 :使能 定时器 x
3
3
3
3 1
1
1
1
IEx
IEx
IEx
IEx
x
x
x
x =
=
=
= 0
0
0
0 1
1
1
1
外部中断 x
x
x
x 请求标志位
2
2
2
2 0
0
0
0
ITx
ITx
ITx
ITx
x
x
x
x =
=
=
= 0
0
0
0 1
1
1
1
外部中断 x
x
x
x 触发方式选择位
8
8
8
8 9
9
9
9 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
T
T
T
T MOD
MOD
MOD
MOD
GATE1
C/
T1
———
M11
M10
GATE0
C/
T0
———
M01
M00
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7
7
7
7 3
3
3
3
GATEx
GATEx
GATEx
GATEx
x
x
x
x =
=
=
= 0
0
0
0 1
1
1
1
定时器 x
x
x
x 门控位
0 TRx 1 ,定时器 x 即被允许 1 :只有 INTx
————
在高电平期间 TRx 1 ,定时器 x 才被允许
6
6
6
6 2
2
2
2
C/
C/
C/
C/ Tx
Tx
Tx
Tx
———
———
———
———
x
x
x
x =
=
=
= 0
0
0
0 1
1
1
1
定时器 /
/
/
/ 计数器方式选择位
0 定时器方式 ,如果 RTC 功能被禁止, T0 T1 引脚用作 I/O 端口;
如果 RTC 模块允许 CALIN CALOUT ,作为 CALIN CALOUT
1 :计数器方式
5
5
5
5 -
-
-
- 4
4
4
4
1
1
1
1 -
-
-
- 0
0
0
0
Mx
Mx
Mx
Mx [1:0]
[1:0]
[1:0]
[1:0]
x
x
x
x =
=
=
= 0
0
0
0 1
1
1
1
定时器 x
x
x
x 定时器方式选择位
00 :方式 0 13 位向上计数计数器 / 定时器,忽略 TLx 的第 7 - 5 01 :方式 1 16 位向上计数计数器 / 定时器 10 :方式 2 8 位自动重载向上计数计数器 / 定时器 11 :方式 3 (只用于定时器 0 ),两个 8 位向上计数定时器
Table
Table
Table
Table 7
Table
Table
Table
Table 7
7
.
22
7
.
22
7 .
. 22
22 定时器 / 计数器 x 控制寄存器 (x = 0,1)
7
.
23
7
.
23
7 .
. 23
23 定时器 / 计数器 x 方式寄存器 (x = 0, 1)
40
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
8AH-8DH
8AH-8DH
8AH-8DH
8AH-8DH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
TL0
TL0
TL0
TL0 (8AH)
(8AH)
(8AH)
(8AH)
TL0.7
TL0.6
TL0.5
TL0.4
TL0.3
TL0.2
TL0.1
TL0.0
TH0
TH0
TH0
TH0 (8CH)
(8CH)
(8CH)
(8CH)
TH0.7
TH0.6
TH0.5
TH0.4
TH0.3
TH0.2
TH0.1
TH0.0
TL1
TL1
TL1
TL1 (8BH)
(8BH)
(8BH)
(8BH)
TL1.7
TL1.6
TL1.5
TL1.4
TL1.3
TL1.2
TL1.1
TL1.0
TH1
TH1
TH1
TH1 (8DH)
(8DH)
(8DH)
(8DH)
TH1.7
TH1.6
TH1.5
TH1.4
TH1.3
TH1.2
TH1.1
TH1.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
TLx.y,
TLx.y,
TLx.y,
TLx.y, THx.y
THx.y
THx.y
THx.y
X
X
X
X =
=
=
= 0-1,
0-1,
0-1,
0-1, y
y
y
y =
=
=
= 0-7
0-7
0-7
0-7
定时器 x
x
x
x 低及高字节计数器
C/
C/
C/
C/
T2
T2
T2
T2
———
———
———
———
T2OE
T2OE
T2OE
T2OE
DCEN
DCEN
DCEN
DCEN
TR2
TR2
TR2
TR2
C
C
C
C P
P
P
P /
/
/
/
RL2
RL2
RL2
RL2
————
————
————
————
RCLK
RCLK
RCLK
RCLK
TCLK
TCLK
TCLK
TCLK
方式
X0X1100016 位捕获
X001000
1
16 位自动重载定时器
X011000
X0X1X 1
X
2
波特率发生器
X
1
01X1X
003
只用于可编程时钟
1
X
3
带波特率发生器的可编程时钟输出
X
1
XXX0XXXX定时器 2 停止, T2EX 通路仍旧允许
Table
Table
Table 7
7
.
24
7
.
24
7 .
. 24
24 定时器 / 计数器 x 数据寄存器 1 (x = 0, 1)
7.7.3
7.7.3
7.7.3

7.7.3 定时器 2

2
2
2
两个数据寄存器( TH2 TL2 ) 串联后可作为一个 16 位寄存器来访问,由寄存器 TCON 2 TMOD2 控制。设置 IEN0 寄存器 中 的 ET2 位能允许定時器 2 中断。(详见 中断 章节)
定时器 2 的工作模式与 定时器 0 和定时器 1 相似。 C/
———
T2
选择系统时钟(定时器)或外部引脚 T2 (计数器)作为定时器时钟输
入。通过所选的引脚设置 TR2 允许定时器 2/ 计数器 2 数据寄存器计数。
2
2
定时器 2
2 方式
定时器 2 4 种工作方式: 捕获 / 重载, 带递增或递减计数器的自动重载方式, 波特率发生器和可编程时钟输出。 RCLK,TC LK 和 CP/RL2 的组合能选择这些方式。
Table
7
.
Table
Table
Table 7
25
7
.
25
7 .
. 25
25 定时器 2 方式选择
41
SH79F
SH79F
SH79F
SH79F 32
32
32
32
0:
0:Switch Off 1:Switch On
Block Diagram of 16 bit Capcture mode (Mode 0) of T imer2
Block Diagram of 16 bit Capcture mode (Mode 0) of T imer2
Block Diagram of 16 bit Capcture mode (Mode 0) of T imer2
Block Diagram of 16 bit Capcture mode (Mode 0) of T imer2
Overflow flag
RCAP2H
RCAP2L
TL2
TH2
TF2
EXF2
+&
0:Switch Off 1:Switch On
External falling
edge flag
Increment Mode
C/T2
=0
=1
Interrupt Request
System Clock
TR2
EXEN2
CP / RL2
T2EX
T2
TF2
C/T2
=0
=1
The Block Diagram of Auto Relode Mode (
The Block Diagram of Auto Relode Mode (
The Block Diagram of Auto Relode Mode (
The Block Diagram of Auto Relode Mode ( Mode 1
Mode 1
Mode 1
Mode 1 )of Timer2 (DCEN=
)of Timer2 (DCEN=
)of Timer2 (DCEN=
)of Timer2 (DCEN= 0)
0)
0)
0)
RCAP2L RCAP2H
EXF2
+
0:Switch Off 1:Switch On
Increment Mode
0:Switch Off 1:Switch On
External Falling
Edge flag
TL2 TH2
+
T2EX
T2
Interrupt Request
Overflow
Flag
TR2
EXEN2
System Clock
16
0:
16
方式 0:
0: 16
16 位捕获
在捕获方式中, T2CON EXEN2 位有两个选项。
如果 EXEN2 = 0 ,定时器 2 作为 16 位定时器或计数器,如果 IET2 被允许的话,定时器 2 能设置 TF2 溢出产生一个中断。
如果 EXEN2 = 1 , 定时器 2 执行相同操作, 但是在外部输入 T2EX 上的下降沿也能引起在 TH2 TL2 中的当前值分别被捕获 RCAP2H RCAP2L 中,此外,在 T2EX 上的下降沿也能引起在 T2CON 中的 EXF2 被设置。如果 IE T2 被允许, EXF2 位也像 TF2 一样也产生一个中断。
1:
16
1:
16
方式 1:
1: 16
16 位自动重载定时器
16 位自动重载方式下,定時器 2 可以被选为递增计数或递减计数。这个功能通过 T2MOD 中的 DCEN 位(递减计数允许) 选择。系统复位后, DCEN 位复位值为 0 ,定时器 2 默认递增计数。当设置 DCEN 时,定时器 2 递增计数或递减计数取决于 T2EX 引脚上的电平。
DCEN = 0
如果
EXEN2 = 0
,通过在
T2CON
,定时器
中的
递增到
2
EXEN2 0FFFFH
位选择两个选项。
,在溢出后置起
位,同时定时器自动将用户软件写好的寄存器
TF2
RCAP2H
RCAP2L 16 位值装入 TH2 TL2 寄存器。
如果 EXEN2 = 1 , 溢出或在外部输入 T2EX 上的下降沿都能触发一个 16 位重载, 置起 EXF2
位。 如果
IET2
被使能,
TF2 EX F2
位都能产生一个中断。
42
SH79F
SH79F
SH79F
SH79F 32
32
32
32
设置
TF2
TR2
C/T2
The Block Diagram of Auto-Reload Mode ( Mode 1) of Timer2 (
The Block Diagram of Auto-Reload Mode ( Mode 1) of Timer2 (
The Block Diagram of Auto-Reload Mode ( Mode 1) of Timer2 (
The Block Diagram of Auto-Reload Mode ( Mode 1) of Timer2 ( DCEN=1)
DCEN=1)
DCEN=1)
DCEN=1)
T2EX
EXF2
Toggle
1 . T2EX= 1 Timer2 is up counter
2.T2EX= 0 Timer2 is down co unter
T2
System
Clock
TL2 TH2
RCAP2L
RCAP2H
FFH
FFH
=0
=1
0:Switch Off 1:Switch On
Overflow
Flag
Interrupt Request
DCEN
T2EX
1
位值重载入定时器寄存器。
T2EX 0 可使定时器 2 重载入定时器寄存器。
无论定时器
位允许定时器
可使定时器
溢出,
2
递增计数或递减计数。当
2
递增计数。定时器向
2
递减计数。 当
位都被用作结果的第
EXF2
时,
T2EX
TF2
0FFFFH
DCEN = 1
溢出,然后设置
TH2 TL2 的值等于 RCAP2H RCAP2L
位。在此工作方式下,
17
引脚控制计数的方向,而
位。溢出也能分别引起
的值时, 定时器溢出。 置起
不作为中断标志。
E XF2
EXEN2
RCAP2H
控制无效。
RCAP2L
TF2
位, 同时
上的
0FFF FH
16
43
SH79F
SH79F
SH79F
SH79F 32
32
32
32
2:
RCAP2L][RCAP2H, 65536
SYS
f
162
1
BaudRate
×
×
=
RCAP2L][RCAP2H, 65536
T2
f
16
1
BaudRate
×=
RCAP2L][RCAP2H, 65536
SYS
f
16
1
BaudRate
×=
RCAP2L][RCAP2H, 65536
SYS
f
162
1
BaudRate
×
×
=
System Clock
TR2
C/ T2
0:Switch Off 1:Switch On
The Block Diagram of Baud-Rate Generator ( Mode 2 ) of Timer2
The Block Diagram of Baud-Rate Generator ( Mode 2 ) of Timer2
The Block Diagram of Baud-Rate Generator ( Mode 2 ) of Timer2
The Block Diagram of Baud-Rate Generator ( Mode 2 ) of Timer2
/ 16
/ 16
Timer1
overflow
/2
RCLK
=1 =0
TCLK
=1 =0
Receiver
CLK
SMOD
=0
=1
TL2
TH2
RCAP2L RCAP2H
EXEN2
EXF2
T2EX
/2
T2
0:Switch Off 1:Switch On
Transiver
CLK
=0
=1
Timer2 Interrupt
Request
2:
方式 2:
2: 波特率发生器
通过设置
T2CON
寄存器中的
TCLK
时器 2 作为接收器或发送器则定时器 1 相应的作为另一种的波特率发生器。
设置 RCLK / TCLK 使定时器 2 进入波特率发生器方式,该方式与自动重载入方式相似。
定时器 2 的溢出会使 RCAP2H RCAP2L 寄存器中的值重载入定时器 2 计数器,但不会产生中断。
如果 EXEN2 被置 1
,在
T2EX 脚上的下降沿会置起 EXF2 , 但不会引起重载。因此当定时器 2 作为波特率发生器时, T2EX
为一个额外的外部中断。
EUART
方式
1和3
中的波特率由定时器
和/或
RCLK
2
选择定时器
作为波特率发生器。接收器和发送器的波特率可以不同,如果
2
的溢出率根据下列方程式决定。
----2----
; C/
; C/
----2----
T
= 0
T
= 1
如果
T2CON
如果
T2CON
中的
TCLK = 0且RCLK = 0 :
中的
TCLK = 1或RCLK = 1:
44
SH79F
SH79F
SH79F
SH79F 32
32
32
32
3:
RCAP2L][RCAP2H, 65536
SYS
f
22
1
Frequency OutClock
×
×
=
RCAP2L][RCAP2H, 65536
SYS
f
2
1
Frequency OutClock
×=
TR2
=0
=1
The Block Diagram of Programmable Clock output / Mode 3 of Timer2
The Block Diagram of Programmable Clock output / Mode 3 of Timer2
The Block Diagram of Programmable Clock output / Mode 3 of Timer2
The Block Diagram of Programmable Clock output / Mode 3 of Timer2
T2
T2OE
TL2 TH2
RCAP2L RCAP2H
EXEN2
EXF2
0:Switch Off 1:Switch On
T2EX
C/ T2
C/ T2
/2
/2
System Clock
0:Switch Off 1:Switch On
Timer2 Interrupt
Request
0:Switch Off 1:Switch On
3:
方式 3:
3: 可编程时钟输出
可以编程输出
P 3.7
的占空比时钟周期。 清
50%
———
位和置
C/
T2
T2OE
位, 使定时器
作为时钟发生器。
2
位启动和中止定时
TR2
这种方式包括 2 种子方式:
(1) 如果 RCLK = 1 TCLK = 1 T2 输出占空比为 50% 的时钟。
在这个子方式中,定时器 2 溢出不产生中断,所以定时器 2 可以同时以相同频率用作波特率发生器和时钟输出
如果
(2)
RCLK = 0且TCLK = 0,T2
输出占空比为
的时钟。
50%
在这个子方式中,定时器 2 溢出产生中断, 如果 EXEN2 被设置, T2EX 引脚上的下降沿将 EXF2 1 , 所以 T2EX 引脚可以作 为 一个外部中断输入口。
注意:
( 1 ) TF2 EXF2 都能引起定時器 2 的中断请求,两者有相同的向量地址。
( 2 ) 当事件发生时或其他任何时间都能由软件设置 TF2 EXF2 1 ,只有软件以及硬件复位才能使之清 0
( 3 ) EA = 1 ET2 = 1 时,设置 TF2 EXF2 1 能引起定時器 2 中断。
( 4 ) 当定時器 2 作为波特率发生器时,读取或写入 TH2/TL2 ,写入 RCAPH2/RCAPL2 会影响波特率的准确性,因此也会引起
通信出错。
45
SH79F
SH79F
SH79F
SH79F 32
32
32
32
寄存器
C8H
C8H
C8H
C8H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
T2CON
T2CON
T2CON
T2CON
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/
T2
———
CP/
RL2
————
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /
/
/
/ PIN)
PIN)
PIN)
PIN)
0000000
0
位编号
位符号
说明
7
7
7
7
TF2
TF2
TF2
TF2
定时器 2
2
2
2 溢出标志位
0 : 无溢出 (必须由软件清 0 1 : 溢出(如果 RCLK = 0 TCLK = 0 ,由硬件设
6
6
6
6
EXF2
EXF2
EXF2
EXF2
T2EX
T2EX
T2EX
T2EX 引脚外部事件输入(下降沿)被检测到的标志位
0 : 无外部事件输入(必须由软件清 0 1 : 检测到外部输入(如果 EXEN2 = 1 ,由硬件设
5
5
5
5
RCLK
RCLK
RCLK
RCLK
EUART0
EUART0
EUART0
EUART0 接收时钟控制位
0 : 定时器 1 产生接收波特率 1 : 定时器 2 产生接收波特率
4
4
4
4
TCLK
TCLK
TCLK
TCLK
EUART0
EUART0
EUART0
EUART0 发送时钟控制位
0 : 定时器 1 产生发送波特率 1 : 定时器 2 产生发送波特率
3
3
3
3
EXEN2
EXEN2
EXEN2
EXEN2
T2EX
T2EX
T2EX
T2EX 引脚上的外部事件输入(下降沿)用作重载 /
/
/
/ 捕获触发器允许 /
/
/
/ 禁止控制位
0 : 忽略 T2EX 引脚上的事件 1 : 当定时器 2 不做为 EUART 时钟( T2EX 始终包括上拉电阻)时,检测到 T2EX
引脚上一个下降沿,产生一个捕获或重载
2
2
2
2
TR2
TR2
TR2
TR2
定时器 2
2
2
2 开始 /
/
/
/ 停止控制位
0 : 停止定时器 2 1 : 开始定时器 2
1
1
1
1
C/
C/
C/
C/ T2
T2
T2
T2
———
———
———
———
定时器 2
2
2
2 定时器 /
/
/
/ 计数器方式选定位
0 : 定时器方式, T2 引脚用作 I/O 端口 1 : 计数器方式,内部上拉电阻被打开
0
0
0
0
CP/
CP/
CP/
CP/ RL2
RL2
RL2
RL2
————
————
————
————
捕获 /
/
/
/ 重载方式选定位
0 : 16 位带重载功能的定时器 / 计数器 1 : 16 位带捕获功能的定时器 / 计数器
Table
Table
Table
Table 7
7
.
26
7
.
26
7 .
. 26
26 定时器 2 控制寄存器
46
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
C9H
C9H
C9H
C9H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
T2MOD
T2MOD
T2MOD
T2MOD
------T2OE
DCEN
/
/
/
/ ------
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN)
/PIN)
/PIN)
/PIN)
------0
0
位编号
位符号
说明
1
1
1
1
T2OE
T2OE
T2OE
T2OE
定时器 2
2
2
2 输出允许位
0: 设置 Px.x/T2 作为时钟输入或 I/O 端口 1: 设置 Px.x/T2 作为时钟输出 (波特率发生器方式)
0
0
0
0
DCEN
DCEN
DCEN
DCEN
递减计数允许位
0: 禁止定时器 2 作为递增 / 递减计数器,定时器 2 仅作为递增计数器 1: 允许定時器 2 作为递增 / 递减计数器
CAH-C
CAH-C
CAH-C
CAH-C D
D
D
D H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
RCAP2L
RCAP2L
RCAP2L
RCAP2L (CAH)
(CAH)
(CAH)
(CAH)
RCAP2L.7
RCAP2L.6
RCAP2L.5
RCAP2L.4
RCAP2L.3
RCAP2L.2
RCAP2L.1
RCAP2L.0
RCAP2H
RCAP2H
RCAP2H
RCAP2H (CBH)
(CBH)
(CBH)
(CBH)
RCAP2H.7
RCAP2H.6
RCAP2H.5
RCAP2H.4
RCAP2H.3
RCAP2H.2
RCAP2H.1
RCAP2H.0
TL2
TL2
TL2
TL2 (CCH)
(CCH)
(CCH)
(CCH)
TL2.7
TL2.6
TL2.5
TL2.4
TL2.3
TL2.2
TL2.1
TL2.0
TH2
TH2
TH2
TH2 (CDH)
(CDH)
(CDH)
(CDH)
TH2.7
TH2.6
TH2.5
TH2.4
TH2.3
TH2.2
TH2.1
TH2.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN)
/PIN)
/PIN)
/PIN)
0000000
0
位编号
位符号
说明
7
7
7
7
EA
EA
EA
EA
所有中断允许位
0: 禁止所有中断 1: 允许所有中断
6
6
6
6
EADC
EADC
EADC
EADC
ADC
ADC
ADC
ADC 中断允许位
0: 禁止 ADC 中断 1: 允许 ADC 中断
位编号
位符号
说明
7-0
7-0
7-0
7-0
RCAP2L
RCAP2L
RCAP2L
RCAP2L .x
.x
.x
.x
定时器 2 重载 / 捕获数据, x = 0-7
RCAP2H
RCAP2H
RCAP2H
RCAP2H .x
.x
.x
.x
7-0
7-0
7-0
7-0
TL2.x
TL2.x
TL2.x
TL2.x
定时器 2 高位低位计数器, x = 0-7
TH2.x
TH2.x
TH2.x
TH2.x
Table
Table
Table 7
Table
Table
Table
Table 7
7
.
27
7
.
27
7 .
. 27
27 定时器 2 方式控制寄存器
7
.
28
7
.
28
7 .
. 28
28 定时器 2 重载 / 捕获和数据寄存器
47
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.8
OVL_NMI_SERVICE:
……
MOV SP , # Initial_value MOV DPTR, # Start_or_Initial_address PUSH DPL PUSH DPH RETI
7.8
7.8

7.8 中断

7.8.1
7.8.1
7.8.1

7.8.1 特性

1 4 个中断源
4 层中断优先级
程序超范围中断
SH79F32 14 个中断源: 1 OVL NMI 中断, 3 个外部中断 INT0 INT1 INT2 3 个定时器中断 timer 0 1 2 2
EUART
中断,
中断,
ADC
TWI
中断,
SPI
中断,
HSEC
中断和
中断。
PWM
7.8.2
7.8.2
7.8.2
7.8.2 程序超范围中断 OVL
SH79F 32 CPU 超出有效程序范围。 为应用这个特性, 用户应该用常量 0xA5 填满未使用的 Flash ROM
则运算代码为不存在在 32 K Flash ROM 范围,不可屏蔽中断 OVL 同样会发生。
不可屏蔽中断 OVL 享有最高优先级(除复位外),不会被其它中断源中断。同样不可屏蔽中断 OVL 能自身嵌套,但堆栈不 会因此增加。当
由于 用户必须处理 OVL
(因为进入 复位入口或保护程序入口。
特别提示:
由于 OVL 用户必须处理
有一个不可屏蔽中断(
OVL
OVL
OVL
中断是不可屏蔽中断并且具有最高中断优先级,当产生
OVL
OVL
OVL
OVL
OVL 中断以保护系统免受不必要的影响。
中断时,压入堆栈顶端的地址是无用的),这样跳出中断服务程序后,程序可以跳转到用户指定的代码,诸如
OVL
OVL
OVL
OVL 中断是不可屏蔽中断并且具有最高中断优先级,当产生 OVL
OVL
OVL
OVL
OVL
OVL
OVL
OVL
)源
NMI
指令集中的
8051
中断发生后,其它中断仍旧被允许,如果满足设定的条件,其它中断的标志将置
中断以保护系统免受不必要的影响。
0xA5,CPU
程序超范围中断(
——
因此获知
),其向量定位在
OVL
已经超出了有效的程序范围,同时
PC
OVL
OVL
中断时,其它任何中断都被屏蔽掉,不能响应,所以
OVL
OVL
用户可以用 OVL 中断服务程序末端的 RETI 指令来修改压入栈顶的地址
OVL
OVL
OVL 中断时,其它任何中断都被屏蔽掉,不能响应,所以
0x007B
, 如果
中,不可屏蔽中断用以防
PC 超过了用户的有效程序范
OVL
1
围,
中断发生。如果
超过
PC
48
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.8.3
A8H
A8H
A8H
A8H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IEN0
IEN0
IEN0
IEN0
EA
EADC
ET2
ES0
ET1
EX1
ET0
EX0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN
POR/WDT/LVR/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7
7
7
7
EA
EA
EA
EA
所有中断允许位
0: 禁止所有中断 1: 允许所有中断
6
6
6
6
EADC
EADC
EADC
EADC
ADC
ADC
ADC
ADC 中断允许位
0: 禁止 ADC 中断 1: 允许 ADC 中断
5
5
5
5
ET2
ET2
ET2
ET2
定时器 2
2
2
2 溢出中断允许位
0: 禁止 定时器 2 溢出中断 1: 允许 定时器 2 溢出中断
4
4
4
4
ES0
ES0
ES0
ES0
EUART
EUART
EUART
EUART 0
0
0
0 中断允许位
0: 禁止 EUART 0 中断 1: 允许 EUART 0 中断
3
3
3
3
ET1
ET1
ET1
ET1
定时器 1
1
1
1 溢出中断允许位
0: 禁止 定时器 1 溢出中断 1: 允许 定时器 1 溢出中断
2
2
2
2
EX1
EX1
EX1
EX1
外部中断 1
1
1
1 允许位
0: 禁止外部中断 1 1: 允许外部中断 1
1
1
1
1
ET0
ET0
ET0
ET0
定时器 0
0
0
0 溢出中断允许位
0: 禁止 定时器 0 溢出中断 1: 允许 定时器 0 溢出中断
0
0
0
0
EX0
EX0
EX0
EX0
外部中断 0
0
0
0 允许位
0: 禁止外部中断 0 1: 允许外部中断 0
7.8.3
7.8.3

7.8.3 中断允许

任何一个中断源均可通过对寄存器 局允许位 EA ,它是所有中断的总开关。一般在复位后,所有中断允许位设置为 0 ,所有中断被禁止。
Table
7
.
Table
Table
Table 7
29
7
.
29
7 .
. 29
29 初级中断允许寄存器
IEN0和IEN1
中相应的位置
或清
, 实现单独允许或禁止。
1
0
寄存器中还包含了一个
IEN0
49
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
A9H
A9H
A9H
A9H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IEN1
IEN1
IEN1
IEN1
-
ETWI
EPWM-EHSEC
ES1
EX2
ESPI
/
/
/
/
-
/
/ 写-读 /
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
-00-000
0
位编号
位符号
说明
6
6
6
6
E
E
E
E TWI
TWI
TWI
TWI
TWI
TWI
TWI
TWI 溢出中断允许位
0: 禁止 TWI 中断 1: 允许 TWI 中断
5
5
5
5
EPWM
EPWM
EPWM
EPWM
PWM
PWM
PWM
PWM 中断允许位
0: 禁止 PWM 中断 1: 允许 PWM 中断
3
3
3
3
ESEC
ESEC
ESEC
ESEC
半秒中断允许位
0: 禁止半秒中断 1: 允许半秒中断
2
2
2
2
E
E
E
E S1
S1
S1
S1
EUART1
EUART1
EUART1
EUART1 中断允许位
0 : 禁止 EUART 1 中断 1 : 允许 EUART 1 中断
1
1
1
1
E
E
E
E X
X
X
X 2
2
2
2
外部中断 2
2
2
2 允许位
0: 禁止外部中断 2 1 : 允许外部中断 2
0
0
0
0
ESPI
ESPI
ESPI
ESPI
SPI
SPI
SPI
SPI 中断允许位
0: 禁止 SPI 中断 1 : 允许 SPI 中断
Table
Table
Table 7
7
.
30
7
.
30
7 .
. 30
30 次级中断允许寄存器
7.8.4
7.8.4
7.8.4

7.8.4 中断标志

每个中断源都有自己的中断标志,当产生中断时,硬件会置起相应的标志位,在中断摘要表中会列出中断标志位。
外部中断源产生外部中断 INTx x = 0/1/2 )时,如果中断为边沿触发, CPU 在响应中断后,各中断标志位( TCON 寄存器 的 IE0/1 位, EXF0 寄存器的 IE2 位) 被硬件清 0 ; 如果中断是低电平触发, 外部中断源引脚电平直接控制中断标志,而不是由片 上 硬件控制。
0/1
定时器 0/1 的计数器溢出时, TCON 寄存器的 TFx x = 0, 1 中断标志位置 1 ,产生 定时器 0/1 志被硬件自动清 0
2
T2CON 寄存器的 TF2 EXF2 标志位置 1 时,产生 定时器 2 断服务程序必须决定是由 TF2 或是 EXF2 产生中断,标志必须由软件清 0
EUARTx
SCON 寄存器的标志 RI TI 1 时,产生 EUARTx 中断服务程序必须判断是收中断还是发中断,标志必须由软件清 0
ADCON 寄存器的 ADCIF 标志位置 1 时, 产生 ADC 模块的连续比较功能打开, 在每次转换中, 如果转换结果小于比较值时, ADCIF 标志位为 0 ; 如果转换结果大于比较值时, AD CIF 标志位置 1 ADCIF 中断标志必须由软件清除。
SPSTA 寄存器的 SPIF 标志位置 1 时,产生 SPI
RTCCON 寄存器的 HSECIF 标志位置 1 时,产生 半秒 中断,标志必须由软件清 0
PWMC 寄存器的 PWMIF 标志位置 1 时,产生 PWM
TWICON 寄存器的 TWIIF 标志位置 1 时,产生 TWI
EUARTx
EUARTx x
ADC
ADC
ADC 中断。如果中断产生, ADCDH/ADCDL 中的转换结果是有效的。如果 AD C
SPI
SPI
SPI 中断,标志必须由软件清 0
PWM
PWM
PWM 中断,标志必须由软件清 0
TWI
TWI
TWI 中断,标志必须由软件清 0
2
2 中断, CPU 在响应中断后,标志 不会被硬件自动清 0 。事实上,
x
=
0,
1
x
=
0,
1
x =
= 0,
0, 1
1)中断, CPU 在响应中断后,标志不会 被硬件自动清 0 。事实上
0/1
0/1 中断, CPU 在响应中断后,标
50
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
88H
88H
88H
88H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
TCON
TCON
TCON
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7,
7,
7,
7, 5
5
5
5
TFx
TFx
TFx
TFx (
(
(
( x
x
x
x =
=
=
= 0,
0,
0,
0, 1
1
1
1 )
)
)
)
定时器 x
x
x
x 溢出标志
0 : 定时器 x 无溢出 1 : 定时器 x 溢出
6,
6,
6,
6, 4
4
4
4
TRx
TRx
TRx
TRx (
(
(
( x
x
x
x =
=
=
= 0,
0,
0,
0, 1
1
1
1 )
)
)
)
定时器 x
x
x
x 启动,停止控制
0 : 停止 定时器 x 1 : 启动 定时器 x
3,
3,
3,
3, 1
1
1
1
IEx
IEx
IEx
IEx
(x
(x
(x
(x =
=
=
= 0,
0,
0,
0, 1)
1)
1)
1)
外部中断
x
x
x
x
请求标志
0: 无中断挂起 1: 中断挂起
2,
2,
2,
2, 0
0
0
0
ITx
ITx
ITx
ITx
(x
(x
(x
(x =
=
=
= 0,
0,
0,
0, 1)
1)
1)
1)
外部中断
x
x
x
x
触发方式
0:
低电平触发
1:
下降沿 触发
E8H
E8H
E8H
E8H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
EXF0
EXF0
EXF0
EXF0
------IE2
IT2
/
/
/
/ ------
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
------0
0
位编号
位符号
说明
1
1
1
1
IE
IE
IE
IE 2
2
2
2
外部中断 2
2
2
2 请求标志
0: 无中断挂起 1: 中断挂起
0
0
0
0
I
I
I
I T
T
T
T 2
2
2
2
外部中断 2
2
2
2 触发方式
0: 低电平触发 1: 下降沿触发
Table
Table
Table 7
Table
Table
Table
Table 7
7
.
31
7
.
31
7 .
. 31
31 定时器 x/ 计数器 x 控制寄存器 x = 0, 1
7
.
32
7
.
32
7 .
. 32
32 外部中断标志寄存器 0
51
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.8.5
中断优先级
优先位
中断优先级
IPHx
IPLx
0
0
等级 0 (最低优先级)01
等级 1
1
0
等级 2
1
1
等级 3 (最高优先级)
B8H
B8H
B8H
B8H , B4H
B4H
B4H
B4H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IPL0
IPL0
IPL0
IPL0 (B8H)
(B8H)
(B8H)
(B8H)
-
PADCL
PT2L
PS0L
PT1L
PX1L
PT0L
PX0L
IPH0
IPH0
IPH0
IPH0 (B4H)
(B4H)
(B4H)
(B4H)
-
PADCH
PT2H
PS0H
PT1H
PX1H
PT0H
PX0H
/
/
/
/
-
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
-000000
0
B9H
B9H
B9H
B9H , B5H
B5H
B5H
B5H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IPL1
IPL1
IPL1
IPL1 (B9H)
(B9H)
(B9H)
(B9H)
-
P TWI L
PPWML
-
PHSECL
PS1L
PX2L
PSPIL
IPH1
IPH1
IPH1
IPH1 (B5H)
(B5H)
(B5H)
(B5H)
-
P TWI H
PPWMH
-
PHSECH
PS1H
PX2H
PSPIH
/
/
/
/
-
/
/ 写-读 /
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
-00-000
0
位编号
位符号
说明
7
7
7
7 -
-
-
- 0
0
0
0
PxxxL/H
PxxxL/H
PxxxL/H
PxxxL/H
相应中断源 xxx 优先级选择
7.8.5
7.8.5

7.8.5 中断向量

当一个中断产生时,程序计数器内容被压栈,相应的中断向量地址被载入程序计数器。中断向量的地址在 中断汇总表 中详 细列出。
7.8.6
7.8.6
7.8.6

7.8.6 中断优先级

每个中断源都可被单独设置为 4 个中断优先级之一,分别通过清 0 或置 1 IPL0 IPH0 IPL1 IPH1 中相应位来实现。但 OV L 不可屏蔽中断无需 IPH/IPL 控制,在所有中断源中享有最高优先级(除复位外)。中断优先级服务程序描述如下:
响应一个中断服务程序时,可响应更高优先级的中断,但不能响应同优先级或低优先级的另一个中断。
响应最高级中断服务程序时,不响应其它任何中断。如果不同中断优先级的中断源同时申请中断时,响应较高优先级的中 断申请。
如果同优先级的中断源在指令周期开始时同时申请中断,那么内部查询序列确定中断请求响应顺序。
Table
7
.
Table
Table
Table 7
33
7
.
33
7 .
. 33
33 中断优先级控制寄存器
52
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.8.7
Interrupt
Latched
Interrupt
Polled
Long Call to
Interrupt Vector Service
Interrupt
service
Cn+8
C2C1
Interrupt Pending
C3
Interrupt
Signal
Generated
C3~Cn
Cn~Cn+7
7.8.7
7.8.7

7.8.7 中断处理

中断标志在每个机器周期都会被采样获取。所有中断都在时钟的上升沿被采样。如果一个标志被置起,那么 中断系统调用一个长转移指令( LCALL )调用其中断服务程序,但由硬件产生的 LCALL 会被下列任何条件阻止:
同级或更高级的优先级中断在运行中。
当前的周期不是执行中指令的最后一个周期。换言之,正在执行的指令完成前,任何中断请求都得不到响应。
正在执行的是一条 RETI 或者访问专用寄存器 IEN0\1 或是 IPL\H 的指令。 换言之,在 RETI 或者读写 IEN0\1 或是 IPL\H 之后, 不 会马上响应中断请求,而至少在执行一条其它指令之后才会响应。
注意: 因为更改优先级通常需要 2 条指令,在此期间,建议关闭相应的中断以避免在修改优先级过程中产生中断。如果当 模 块状态改变而中断标志不再有效时,将不会响应此中断。每一个轮询周期只查询有效的中断请求。
轮询周期 /LCALL 次序如下图所示:
中断响应时间
捕获到后
CPU
由硬件产生的 LCALL 把程序计数器中的内容压入堆栈(但不保存 PSW ),然后将相应中断源的向量地址(参照中断向量表 存入程序计数器。
中断服务程序从指定地址开始,到 RETI 指令结束。 RETI 指令通知处理器中断服务程序结束,然后把堆栈顶部两字节弹出, 重载入程序计数器中,执行完中断服务程序后程序回到原来停止的地方。 RET 指令也可以返回到原来地址继续执行,但是中断 优先级控制系统仍然认为一个同一优先级的中断被响应,这种情况下,当同一优先级或低优先级中断将不会被响应。
7.8.8
7.8.8
7.8.8

7.8.8 中断响应时间

如果检测出一个中断,这个中断的请求标志位就会在被检测后的每个机器周期被置起。内部电路会保持这个值直到下一个 机器周期, CPU 会在第三个机器周期产生中断。如果响应有效且条件允许,在下一个指令执行的时候硬件 LCALL 指令将调用请 求中断的服务程序,否则中断被挂起。 LCALL 指令调用程序需要 7 个机器周期。因而,从外部中断请求到开始执行中断程序至 少 需要 3+7 个完整的机器周期。
当请求因前述的的三个情况受阻时,中断响应时间会加长。如果同级或更高优先级的中断正在执行,额外的等待时间取决 于正执行的中断服务程序的长度。
如果正在执行的指令还没有进行到最后一个周期,假如正在执行 RETI 指令,则完成正在执行的 RETI 指令,需要 8 加上为完成下一条指令所需的最长时间 20 个机器周期(如果该指令是 16 位操作数的 DIV MUL 指令),若系统中只有一个中断 源,再加上 LCALL 调用指令 7 个机器周期,则最长的响应时间是 2+ 8+2 0 +7 个机器周期。
所以,中断响应时间一般大于 10 个机器周期小于 37 个机器周期。
个周期,
53
SH79F
SH79F
SH79F
SH79F 32
32
32
32
7.8.9
1 Machine Cyle
>1 Machine Cycle
High-Level Threshold
Low-Level Threshold
Low-Level Threshold
>2 Machine Cycle
中断源
向量地址
允许位
标志位
轮询优先级
复位
0000h--
0 最高级
INT0
0003h
EX0
IE02Timer0
000Bh
ET0
TF0
3
INT1
0013h
EX1
IE1
4
Timer1
001Bh
ET1
TF15EUART 0
0023hESRI+TI
6
Timer2
002Bh
ET2
TF2+EXF2
7
ADC
0033h
EADC
ADCIF8SPI
003Bh
ESPI
SPIF
9
INT2
0043h
EX2
IE2
10
EUART1
004Bh
ES1
RI1+TI111HESC
0053h
EHSEC
HSECIF
12
PWM
0063h
EPWM
PWMIF
14
TWI
006Bh
E TWI
TWI IF
15
OVL NMI
007Bh--
1
7.8.9
7.8.9

7.8.9 外部中断输入

SH79F32 有三个外部中断输入。外部中断 0- 2 分别有一个中断源,这些外部中断可以通过设置 TCON 寄存器的 IT1 IT0 位和 EXF0 寄存器的 IT2 位来选择是电平触发或是边沿触发。当 ITx = 0 x = 0 1 2 时,外部中断 INTx x = 0 1 2 引脚为低
平触发。当 ITx x = 0 1 2 = 1 ,外部中断 INT x x = 0 1 2 为沿触发。在这个方式中,一个周期内 INTx x = 0 1 2 引脚上连续采样为高电平而下个周期为低电平, TCON 寄存器的中断请求标志位置 1 ,发出一个中断请求。
由于外部中断脚每个机器周期采样一次,输入高或低电平应当保持至少 1 个机器周期以确保能够被正确采样到。
如果外部中断为下降沿触发,外部中断源应当将中断脚至少保持 1 个机器周期高电平,然后至少保持 1 个机器周期低电平。 这样就确保了边沿能够被检测到以使 IEx 1 。当调用中断服务程序后, CPU 自动将 IEx 清零。
如果外部中断为电平触发, 外部中断源必须一直保持请求有效, 直到产生所请求的中断为止, 此过程需要 2 个系统时钟周 如果中断服务完成后而外部中断仍旧维持,则会产生下一次中断。当中断为电平触发时不必清除中断标志 INTx x = 0 1 2 因为中断只与输入口电平有关。
SH79F32 进入空闲或是掉电模式,中断会唤醒处理器继续工作,详见 电源管理 章节。
注意: 外部中断
的中断标志位在执行中断服务程序时被自动硬件清
0- 2
0
期。
7.8.10
7.8.10
7.8.10

7.8.10 中断汇总

外部中断检测
54
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.
AB
AB
AB
AB H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
LCDCON
LCDCON
LCDCON
LCDCON
LCDON-PUMPF
PUMPON
COMS
VPS
DUTY1
DUTY0
/
/
/
/
/ 写-读 /
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0-00000
0
位编号
位符号
说明
7
7
7
7
LCDON
LCDON
LCDON
LCDON
LCD
LCD
LCD
LCD /
/
/
/ 关控制位
0: 禁止 LCD 驱动器 1: 允许 LCD 驱动器
5
5
5
5
PUMPF
PUMPF
PUMPF
PUMPF
PUMP
PUMP
PUMP
PUMP 频率控制位
0 : LCDCLK/8 1 : LCDCLK/4
4
4
4
4
PUMPON
PUMPON
PUMPON
PUMPON
PUMP
PUMP
PUMP
PUMP 打开 /
/
/
/ 关闭控制位
0 : 禁止 LCD PUMP 1 : 允许 LCD PUMP
3
3
3
3
COMS
COMS
COMS
COMS
端口 4
4
4
4 COM
COM
COM
COM 配置选择
0: P4.4-P4.7 作为 COM1-4 1: P4.4-P4.7 作为 I/O
2
2
2
2
VPS
VPS
VPS
VPS
端口 4
4
4
4 电源配置选择
0: P4.0-P4.3 作为 VP2-1 CUP2-1 1: P4.0-P4.3 作为 I/O
1-0
1-0
1-0
1-0
DUTY
DUTY
DUTY
DUTY [1:0]
[1:0]
[1:0]
[1:0]
占空比选择位
00 : 1/4 占空比 ,帧频 = LCD Clock/512 01 : 1/5 占空比 ,帧频 = LCD Clock/510 1x : 1/6 占空比 ,帧频 = LCD Clock/510
8.
8.
8.

增强功能

8.1
LCD
8.1
LCD
8.1
8.1 LCD
LCD 驱动器
SH79F32 提供两种 LCD 工作模式:电容型 LCD SLP Super Low Power LCD
8.1.1
8.1.1
8.1.1
8.1.1 传统电容型 LCD
特性
32 segment 输出 S0-S31 6 common 输出 COM0-COM5
三种显示模式:
1/4 占空比和 1/3 偏置电压 1/5 占空比和 1/3 偏置电压 1/ 6 占空比和 1/3 偏置电压
LCD 工作时钟和帧频都可以用软件选择 当 V
LCD 驱动器包含一个控制器, 一个电压发生器, 一个占空比发生器及 4/ 5 /6 COM 驱动管脚和 32/ 31/ 30 SEG 驱动管脚。 动器可编程为三种驱动模式: 1/4 占空比和 1/3 偏置电压, 1/5 占空比和 1/3 偏置电压, 1/6 占空比和 1/3 偏置电压。驱动模式可通过 LCDCON 寄存器的 DUTY[1 : 0] 控制。 LCD 显示数据存放于 1E0H - 1FFH 32 字节 RAM 中,如果需要, 也可用作普通的数据寄 存器。 LCD S egment 17-32 可以共用为 P1 P0 ,通过 P0SS P1SS 寄存器来选择。
MCU 进入省电模式后, LCD 被关闭, 但 LCD RAM 仍然会保持数据。 当 LCD 被关闭时, common segment 都输出低电
为更有效的使用 LCD 驱动器,用户必须先设置 LCDCON 寄存器中除 PUMPON LCDON 位之外的所有控制位,然后设置 PUMPON 位,在延迟之后打开 LCDON 位(延迟时间由应用决定),点亮 LCD 面板。
寄存器
Table
8
.
Table
Table
Table 8
1
8
.
1
8 .
. 1
1 LCD 控制寄存器
LCD
LCD
LCD 驱动器
电压高于 3.2V 时, LCD 工作电压为 2.9V ,否则工作电压低于 2.9V
DD
平。
55
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
ACH
ACH
ACH
ACH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
LCDCLK
LCDCLK
LCDCLK
LCDCLK
LCK7
LCK6
LCK5
LCK4
LCK3
LCK2
LCK1
LCK0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
LCK[7:0]
LCK[7:0]
LCK[7:0]
LCK[7:0]
LCD
LCD
LCD
LCD 时钟
0x00: LCD 时钟 = 通过代码选择的振荡器频率 其他 : LCD 时钟 = 通过代码选择的振荡器频率 /LCDCLK
AE
AE
AE
AE H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
P
P
P
P 0
0
0
0 SS
SS
SS
SS
P0S7
P0S6
P0S5
P0S4
P0S3
P0S2
P0S1
P0S0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
P0S
P0S
P0S
P0S [7:0]
[7:0]
[7:0]
[7:0]
P0
P0
P0
P0 模式选择
0: P0.0-P0.7 作为 I/O 端口 1: P0.0-P0.7 作为 Segment ( SEG2 5 - SEG 3 2 )
AD
AD
AD
AD H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
P
P
P
P 1
1
1
1 SS
SS
SS
SS
P1S7
P1S6
P1S5
P1S4
P1S3
P1S2
P1S1
P1S0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
P1Sx
P1Sx
P1Sx
P1Sx (x
(x
(x
(x =
=
=
= 0-7)
0-7)
0-7)
0-7)
P
P
P
P 1
1
1
1 模式 选择
0: P 1 .0-P 1 .7 作为 I/O 端口 1: P 1 .0-P 1 .7 作为 Segment ( SEG 17 - SEG2 4 )
Table
Table
Table 8
Table
Table
Table
Table 8
8
.
2
8
.
2
8 .
. 2
2 LCD 时钟控制寄存器
8
.
3
8
.
3
8 .
. 3
3 P0 模式选择寄存器
Table
Table
Table
Table 8
8
.
4
8
.
4
8 .
. 4
4 P 1 模式选择寄存器
56
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.1.
COM1
COM2
COM3
COM4
SEGn
SEGn+1
COM4
COM3
COM2
COM1
SEGn+1
SEGn
2t1
t1
AF
AF
AF
AF H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
PLCON
PLCON
PLCON
PLCON
---
PLD4
PLD3
PLD2
PLD1
PLD0
/
/
/
/ ---读 /
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
---0000
0
位编号
位符号
说明
4-0
4-0
4-0
4-0
PLD
PLD
PLD
PLD [4:0]
[4:0]
[4:0]
[4:0]
SLP
SLP
SLP
SLP LCD
LCD
LCD
LCD 占空比选择
SLP LCD 时钟源
128
LCDCLOCK
pl
F =
帧频:
4 X 128
LCDCLOCK
frame
F =
32 X 2 X 2 X plF
10] :PLD[4t1+
=
2
8.1.
2
8.1.
8.1. 2
2 低功耗( SLP
SLP
SLP
SLP LCD
LCD
LCD
LCD 模式
LCD SLP 显示模式通过代码选项设置 详见代码选项章节
SLP LCD 显示模式的特性见下表。例如,当外部振荡器为 32.768kHz 时, SLP LCD 的工作时钟为 256Hz ,帧频为 64Hz ,改 PLD[4:0] 的值可以调节 LCD 的显示效果。
Table
8
.
Table
Table
Table 8
5
8
.
5
8 .
. 5
5 SLP LCD 控制寄存器
SLP
LCD
SLP
LCD
SLP
SLP LCD
LCD 模式波形
57
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.1.
VP3 = VDD, 1/3 bias
CUP1
VP3
0.1 µ F
CUP2
VP1 = 2/3 VP3
VP2 = 1/3 VP3
GND (0V)
0.1 µ F
0.1 µ F
Voltage
Pump
Circuit
0.1 µ F
1000~2200 µ F
VDD
. .
.
VP3 = 2.9V, 1/3 bias
CUP1
VP3
= 2.9V
0.1 µ F
CUP2
VP1 = 2/3 VP3
VP2 = 1/3 VP3
GND (0V)
0.1 µ F
0.1 µ F
Voltage
Pump Circuit
47 µ F
0.1 µ F
1000~2200 µ F
VDD
.
.
3
LCD
8.1.
3
LCD
8.1.
8.1. 3
3 LCD
LCD 电源
SH79F32
如果
内建一个稳压源给
超过
V
DD
,内部稳压源会产生稳定电压
3.2V
如果 VDD低于 3.2V ,内部稳压源输出低于 2.9V ,此时 LCD 不能显示在最佳状态。
下图所示即为 LCD 电源电路在传统布局下的应用电路图。
供电。
LCD
2.9V
=
=
V
3.0V
V
3.0V
=
=
V
V
3.0V
3.0V -
DD
DD
DD
DD
-
-
- 5.5V
5.5V
5.5V
5.5V
application
application
application
application
a. Set code option:
Set OP_LVREN, OP_LVRLE = 00 or 01 or 11
code
option
code
( R efer to code
b. D isconnect VP3 pin and V
option
code option
option sector)
pin
DD
c. LCD power = 2.9V
V
<
3.6V
V
V
V
DD
DD
DD
DD
application
<
3.6V
application
<
< 3.6V
3.6V application
application
a. Set code option:
set OP_LVREN/LVRLE = 10
code
option
code
( Refer to code
b. C onnect VP3 pin and V
c . LCD power = V
option
code option
option sector)
pin
DD
DD
58
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.1.4
地址
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
COM4
COM4
COM4
COM4
COM3
COM3
COM3
COM3
COM2
COM2
COM2
COM2
COM1
COM1
COM1
COM1
$1E0h----
SEG1
SEG1
SEG1
SEG1
$1E1h----
SEG2
SEG2
SEG2
SEG2
$1E2h----
SEG3
SEG3
SEG3
SEG3
$1E3h----
SEG4
SEG4
SEG4
SEG4
$1E4h----
SEG5
SEG5
SEG5
SEG5
$1E5h----
SEG6
SEG6
SEG6
SEG6
$1E6h----
SEG7
SEG7
SEG7
SEG7
$1E7h----
SEG8
SEG8
SEG8
SEG8
$1E8h----
SEG9
SEG9
SEG9
SEG9
$1E9h----
SEG10
SEG10
SEG10
SEG10
$1EAh----
SEG11
SEG11
SEG11
SEG11
$1EBh----
SEG12
SEG12
SEG12
SEG12
$1ECh----
SEG13
SEG13
SEG13
SEG13
$1EDh----
SEG14
SEG14
SEG14
SEG14
$1EEh----
SEG15
SEG15
SEG15
SEG15
$1EFh----
SEG16
SEG16
SEG16
SEG16
$1F0h----
SEG17
SEG17
SEG17
SEG17
$1F1h----
SEG18
SEG18
SEG18
SEG18
$1F2h----
SEG19
SEG19
SEG19
SEG19
$1F3h----
SEG20
SEG20
SEG20
SEG20
$1F4h----
SEG21
SEG21
SEG21
SEG21
$1F5h----
SEG22
SEG22
SEG22
SEG22
$1F6h----
SEG23
SEG23
SEG23
SEG23
$1F7h----
SEG24
SEG24
SEG24
SEG24
$1F8h----
SEG25
SEG25
SEG25
SEG25
$1F9h----
SEG26
SEG26
SEG26
SEG26
$1FAh----
SEG27
SEG27
SEG27
SEG27
$1FBh----
SEG28
SEG28
SEG28
SEG28
$1FCh----
SEG29
SEG29
SEG29
SEG29
$1FDh----
SEG30
SEG30
SEG30
SEG30
$1FEh----
SEG31
SEG31
SEG31
SEG31
$1FFh----
SEG32
SEG32
SEG32
SEG32
8.1.4
8.1.4
8.1.4 LCD LCD
LCD
LCD
LCD 1/4
LCD
RAM
LCD
RAM
LCD RAM
RAM 配置
1/4
1/4
1/4 占空比 ,
,
1/3
,
1/3
, 1/3
1/3 偏置 (COM1
(COM1
(COM1
(COM1 -
-
4,
-
4,
- 4,
4, SEG1
SEG1
SEG1
SEG1 -
-
32
)
-
32
)
- 32
32 )
)
59
SH79F
SH79F
SH79F
SH79F 32
32
32
32
LCD
地址
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
-
-
-
-
-
-
-
-
-
-
-
-
C
C
C
C OM
OM
OM
OM 5
5
5
5
COM4
COM4
COM4
COM4
COM3
COM3
COM3
COM3
COM2
COM2
COM2
COM2
COM1
COM1
COM1
COM1
$1E0h--------
$1E1h---SEG2
SEG2
SEG2
SEG2
SEG2
$1E2h---SEG3
SEG3
SEG3
SEG3
SEG3
$1E3h---SEG4
SEG4
SEG4
SEG4
SEG4
$1E4h---SEG5
SEG5
SEG5
SEG5
SEG5
$1E5h---SEG6
SEG6
SEG6
SEG6
SEG6
$1E6h---SEG7
SEG7
SEG7
SEG7
SEG7
$1E7h---SEG8
SEG8
SEG8
SEG8
SEG8
$1E8h---SEG9
SEG9
SEG9
SEG9
SEG9
$1E9h---SEG10
SEG10
SEG10
SEG10
SEG10
$1EAh---SEG11
SEG11
SEG11
SEG11
SEG11
$1EBh---SEG12
SEG12
SEG12
SEG12
SEG12
$1ECh---SEG13
SEG13
SEG13
SEG13
SEG13
$1EDh---SEG14
SEG14
SEG14
SEG14
SEG14
$1EEh---SEG15
SEG15
SEG15
SEG15
SEG15
$1EFh---SEG16
SEG16
SEG16
SEG16
SEG16
$1F0h---SEG17
SEG17
SEG17
SEG17
SEG17
$1F1h---SEG18
SEG18
SEG18
SEG18
SEG18
$1F2h---SEG19
SEG19
SEG19
SEG19
SEG19
$1F3h---SEG20
SEG20
SEG20
SEG20
SEG20
$1F4h---SEG21
SEG21
SEG21
SEG21
SEG21
$1F5h---SEG22
SEG22
SEG22
SEG22
SEG22
$1F6h---SEG23
SEG23
SEG23
SEG23
SEG23
$1F7h---SEG24
SEG24
SEG24
SEG24
SEG24
$1F8h---SEG25
SEG25
SEG25
SEG25
SEG25
$1F9h---SEG26
SEG26
SEG26
SEG26
SEG26
$1FAh---SEG27
SEG27
SEG27
SEG27
SEG27
$1FBh---SEG28
SEG28
SEG28
SEG28
SEG28
$1FCh---SEG29
SEG29
SEG29
SEG29
SEG29
$1FDh---SEG30
SEG30
SEG30
SEG30
SEG30
$1FEh---SEG31
SEG31
SEG31
SEG31
SEG31
$1FFh---SEG32
SEG32
SEG32
SEG32
SEG32
LCD
LCD
LCD 1/
1/
5
1/
5
1/ 5
5 占空比 ,
,
1/3
,
1/3
, 1/3
1/3 偏置 (COM1
(COM1
(COM1
(COM1 -
-
5
,
SEG
2
-
32
-
5
,
SEG
- 5
5 ,
, SEG
SEG 2
)
2
-
32
)
2 -
- 32
32 )
)
60
SH79F
SH79F
SH79F
SH79F 32
32
32
32
LCD
地址
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
-
-
-
-
-
-
-
-
COM6
COM6
COM6
COM6
C
C
C
C OM
OM
OM
OM 5
5
5
5
COM4
COM4
COM4
COM4
COM3
COM3
COM3
COM3
COM2
COM2
COM2
COM2
COM1
COM1
COM1
COM1
$1E0h--------
$1E1h--------
$1E2h--
SEG3
SEG3
SEG3
SEG3
SEG3
SEG3
$1E3h--
SEG4
SEG4
SEG4
SEG4
SEG4
SEG4
$1E4h--
SEG5
SEG5
SEG5
SEG5
SEG5
SEG5
$1E5h--
SEG6
SEG6
SEG6
SEG6
SEG6
SEG6
$1E6h--
SEG7
SEG7
SEG7
SEG7
SEG7
SEG7
$1E7h--
SEG8
SEG8
SEG8
SEG8
SEG8
SEG8
$1E8h--
SEG9
SEG9
SEG9
SEG9
SEG9
SEG9
$1E9h--
SEG10
SEG10
SEG10
SEG10
SEG10
SEG10
$1EAh--
SEG11
SEG11
SEG11
SEG11
SEG11
SEG11
$1EBh--
SEG12
SEG12
SEG12
SEG12
SEG12
SEG12
$1ECh--
SEG13
SEG13
SEG13
SEG13
SEG13
SEG13
$1EDh--
SEG14
SEG14
SEG14
SEG14
SEG14
SEG14
$1EEh--
SEG15
SEG15
SEG15
SEG15
SEG15
SEG15
$1EFh--
SEG16
SEG16
SEG16
SEG16
SEG16
SEG16
$1F0h--
SEG17
SEG17
SEG17
SEG17
SEG17
SEG17
$1F1h--
SEG18
SEG18
SEG18
SEG18
SEG18
SEG18
$1F2h--
SEG19
SEG19
SEG19
SEG19
SEG19
SEG19
$1F3h--
SEG20
SEG20
SEG20
SEG20
SEG20
SEG20
$1F4h--
SEG21
SEG21
SEG21
SEG21
SEG21
SEG21
$1F5h--
SEG22
SEG22
SEG22
SEG22
SEG22
SEG22
$1F6h--
SEG23
SEG23
SEG23
SEG23
SEG23
SEG23
$1F7h--
SEG24
SEG24
SEG24
SEG24
SEG24
SEG24
$1F8h--
SEG25
SEG25
SEG25
SEG25
SEG25
SEG25
$1F9h--
SEG26
SEG26
SEG26
SEG26
SEG26
SEG26
$1FAh--
SEG27
SEG27
SEG27
SEG27
SEG27
SEG27
$1FBh--
SEG28
SEG28
SEG28
SEG28
SEG28
SEG28
$1FCh--
SEG29
SEG29
SEG29
SEG29
SEG29
SEG29
$1FDh--
SEG30
SEG30
SEG30
SEG30
SEG30
SEG30
$1FEh--
SEG31
SEG31
SEG31
SEG31
SEG31
SEG31
$1FFh--
SEG32
SEG32
SEG32
SEG32
SEG32
SEG32
LCD
LCD
LCD 1/
1/
6
1/
6
1/ 6
6 占空比 ,
,
1/3
,
1/3
, 1/3
1/3 偏置 (COM1
(COM1
(COM1
(COM1 -
-
6
,
SEG
3
-
32
-
6
,
SEG
- 6
6 ,
, SEG
SEG 3
)
3
-
32
)
3 -
- 32
32 )
)
61
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.
MISO
MOSI
SCK
SS
Master
Port0.0
Port0.1
Port0.2
Port0.3
MISO
MOSI
SCK
SS
Slave
MISO
MOSI
SCK
SS
Slave
MISO
MOSI
SCK
SS
Slave
MISO
MOSI
SCK
SS
Slave
V
DD
2
8.
2
8.
8. 2
2 串行外部设备接口( SPI
SPI
SPI
SPI
串行外部设备接口 简称 SPI)是一种高速串行通信接口,允许 MCU 与外围设备包括其它 MCU 进行全双工,同步串行通讯
8.2.1
8.2.1
8.2.1

8.2.1 特性

全双工,三线同步传输
主从机操作
6 个可编程主时钟频率
极性相位可编程的串行时钟
MCU 中断的主模式故障出错标志
写入冲突标志保护
可选择 LSB MSB 传输
串行外部设备接口( SPI )是一种高速串行通信接口,允许 MCU 与外围设备(包括其它 MCU )进行全双工,同步串行通讯
下图所示即为典型的由一个主设备和若干从属外部设备组成的 SPI 总线网络,主设备通过 3 条线连接所有从设备,主设备控 制连接从属设备
———
SS
引脚的 4 个并行端口来选中其中一个从属设备进行通讯。
8.2.2
8.2.2
8.2.2

8.2.2 信号描述

( 1 ) 主输出从输入( MOSI
该路信号连接主设备和一个从设备。数据通过 MOSI 从主设备串行传送到从设备,主设备输出,从设备输入。
( 2 ) 主输入从输出( MISO
该路信号连接从设备和主设备。数据通过 MISO 从从设备串行传送到主设备,从设备输出,主设备输入。当 SPI 配置为从设 备并未被选中( SS
———
引脚为高电平),从设备的 MISO 引脚处于高阻状态。
( 3 ) SPI 串行时钟( SCK
SCK 信号用作控制 MOSI MISO 线上输入输出数据的同步移动。每 8 时钟周期线上传送一个字节。如果从设备未被选中
———
SS
引脚为高电平), SCK 信号被此从设备忽略。 ( 4 ) 从设备选择引脚( 每个从属外围设备由一个从选择引脚( SS
件控制连接于从设备 同一时间只允许一个从设备与主设备通讯。在主设备模式中, SS
个主设备驱动 MOSI SCK
下列情况, SS ( a ) 设备作为主设备, SPI 控制寄存器 SPCON 寄存器的 SSDIS 位置 1 。这种配置仅仅存在于通讯网络中只有一个主设备的情
况,因此, SPI 状态寄存器 SPSTA MODF 标志位不会被置 1
( b ) 设备配置为从设备, SPI 控制寄存器 SPCON CPHA 位和 SSDIS 位置 1 。这种配置情况存在于只有一个主设备一个从设
备的通讯网络中,因此,设备总是被选中的,主设备也不需要控制从设备的
注意: CPHA = ‘ 0 时,
———
———
SS
———
SS
引脚的端口电平选择每个从设备, 很明显, 只有一个主设备可以驱动通讯网络。 为了防止 MISO 总线冲
———
引脚)选择,当引脚信号为低电平时,表明该从设备被选中。主设备可以通过软
———
引脚状态关联 SPI 状态寄存器 SPSTA MODF 标志位以防止多
引脚可以作为普通端口或其它功能使用:
———
SS
———
SS
引脚电平被拉低表示启动发送。
引脚选择其作为通讯目标。
突,
62
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.2.
Internal Bus
Clock Divider
/128
/4
/8 /16 /32 /64
Clock Select Clock Logic
SPI
Control
DIR MSTR CPHA CPOL SSDIS SPR2 SPR1 SPR0
SPEN SPIF MODF WCOL RXOV - - -
SPSTA
SPSTA
SPSTA
SPSTA
Pin Control Logic
MOSI MISO
SCK SS
M S
FCLK PERIPH
Recieve Data Register
SPI Interrupt Request
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Recieve Register
Transmit Register
SPDAT
SPDAT
SPDAT
SPDAT
8-bit Bus
1-bit Signal
3
8.2.
3
8.2.
8.2. 3
3 波特率
在主模式下, SPI 的波特率有六种可选择的频率,分别是内部时钟的 4 8 16 32 64 128 分频,可以通过设定 SPCON
寄存器的 SPR[2:0] 位进行选择。
8.2.
4
8.2.
4
8.2.
8.2. 4
4 功能描述
下图所示是 SPI 模块的详细结构。
SPI
SPI
SPI
SPI 模块框图
63
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.2.5
Master MCU
Master MCU
Master MCU
Master MCU
8-bit Shift Register
SPI
Clock Generator
MISO
MOSI
SCK
SS
V
DD
MISO
MOSI
SCK
SS
V
SS
Slave MCU
Slave MCU
Slave MCU
Slave MCU
8-bit Shift Register
8.2.5
8.2.5

8.2.5 工作模式

SPI 可配置为主模式或从属模式中的一种。 SPI 模块的配置和初始化通过设置 SPCON 寄存器(串行外围设备控制寄存器)
SPSTA (串行外围设备状态寄存器)来完成。配置完成后,通过设置 SPCON SPSTA SPDAT (串行外围设备数据寄存器)
来完成数据传送。
SPI 通讯期间,数据同步地被串行的移进移出。串行时钟线( SCK )使两条串行数据线( MOSI MISO ) 上数据的移动
采样保持同步。从设备选择线(
———
SS
)可以独立地选择 SPI 从属设备;如果从设备没有被选中,则不能参与 SPI 总线上的活动。
SPI 主设备通过 MOSI 线传送数据到从设备时, 从设备通过 MISO 线发送数据到主设备作为响应, 这就实现了在同一时钟 下 数据发送和接收的同步全双工传输。发送移位寄存器和接收移位寄存器使用相同的特殊功能器地址,对 SPI 数据寄存器 SPDAT 进行写操作将写入发送移位寄存器,对 SPDAT 寄存器进行读操作将获得接收移位寄存器的数据。
全双工主从互联图
主模式
( 1 ) 模式启动
SPI 主设备控制 SPI 总线上所有数据传送的启动。 当 SPCON 寄存器中的 MSTR 位置 1
时,
SPI 在主模式下运行, 只有一个主
备可以启动传送。
( 2 ) 发送
SPI 主模式下,写一个字节数据到 SPI 数据寄存器 SPDAT ,数据将会写入发送移位缓冲器。如果发送移位寄存器已经存 在 一个数据, 那么主 SPI 产生一个 WCOL 信号以表明写入太快。 但是在发送移位寄存器中的数据不会受到影响, 发送也不会中断。 另 外如果发送移位寄存器为空,那么主设备立即按照 SCK 上的 SPI 时钟频率串行地移出发送移位寄存器中的数据到 MOSI 线上。当 传送完毕, SPSTA 寄存器中的 SPIF 位被置 1 。如果 SPI 中断被允许,当 SPI F 位置 1 时,也会产生一个中断。
( 3 ) 接收
当主设备通过 MOSI 线传送数据给从设备时,相对应的从设备同时也通过 MISO 线将其发送移位寄存器的内容传送给主设备 的接收移位寄存器, 实现全双工操作。 因此, SPIF 标志位置 1 即表示传送完成也表示接收数据完毕。 从设备接收的数据按照 MS B LSB 优先的传送方向存入主设备的接收移位寄存器。 当一个字节的数据完全被移入接收寄存器时,处理器可以通过读 SPDAT 寄存器获得该数据。如果发生超限( SPIF 标志未被清 0 ,就试图开始下一次传送), RXOV 位置 1 ,表示发生数据超限,此时接 收移位寄存器保持原有数据并且 SPIF 位置 1 ,这样直到 SPIF 位被清 0 SPI 主设备将不会接收任何数据。
从模式
( 1 ) 模式启动
SPCON 寄存器中的 MSTR 位清 0,SPI 在从模式下运行。 在数据传送之前, 从设备的 SS
———
引脚必须被置低,而且必须保持
电平直到一个字节数据传送完毕。
( 2 ) 发送与接收
从属模式下,按照主设备控制的 SCK 信号,数据通过 MOSI 引脚移入, MISO 引脚移出。一个位计数器记录 SCK
的边沿数, 当接收移位寄存器移入 8 位数据 (一个字节)同时发送移位寄存器移出 8 位数据(一个字节), SPIF 标志位被置 1 。数据可以通 过 读取 SPDAT 寄存器获得。如果 SPI 中断被允许,当 SPIF 1 时,也会产生一个中断。
为防止超限, SPI 从设备在向 接收 移位寄存器 入数据之前 必须软件清 SPIF 标志位,否则 RXOV 位置 1 ,表示发生数据
超限 此时接收移位寄存器保持原有数据并且 SPIF 位置 1 ,这样 SPI 从设备将不会接收任何数据直到 SPIF 0
SPI 从设备不能启动数据传送,所以 SPI 从设备必须在主设备开始一次新的数据传送之前将要传送的数据写入发送移位寄存 器。如果在开始发送之前未写入数据,从设备将传送 “ 0x00 字节给主设备。如果写 SPDAT 操作发生在传送过程中, 那么 SPI 设 备的 WCOL 标志位置 1 ,即如果传送移位寄存器已经含有数据, SPI 从设备的 WCOL 位置 1 ,表示写 SPDAT 冲突。但是移位寄存 器的数据不受影响,传送也不会被中断。
64
SH79F
SH79F
SH79F
SH79F 32
32
32
32
传送形式
SPEN (Internal)
SCK (CPOL=0)
SCK (CPOL=1)
MOSI (from Master) bit6MSB bit5 bit4 bit3 bit2 bit1 L SB
MISO (from Slave) bit6MSB bit5 bit4 bit3 bit2 bit1 LSB
SS (to Slave)
SCK Cycle Number 1 2 3 4 5 6 7 8
Capture Point
SPEN (Internal)
SCK (CPOL=0)
SCK (CPOL=1)
MOSI (from Master) bit6MSB bit5 bit4 bit3 bit2 bit1 LSB
MISO (from Slave)
SCK Cycle Number 1 2 3 4 5 6 7 8
Capture Point
bit6MSB bit5 bit4 bit3 bit2 bit1 LSB
(to Slave)
SS
Byte1 Byte2 Byte3MISO/MOSI
Master SS
Slave SS
(CPHA = 0)
Slave SS
(CPHA = 1)
通过软件设置 SPCON 寄存器的 CPOL 位和 CPHA 位,用户可以选择 SPI 时钟极性和相位的四种组合方式。 CPOL 位定义时钟 的极性,即空闲时的电平状态,它对 SPI 传输格式影响不大。 CPHA 位定义时钟的相位,即定义允许数据采样移位的时钟边沿。 在主从通讯的两个设备中,时钟极性相位的设置应一致。
(CPHA
数据传送形式 (CPHA
如果 CPHA = 0,SCK 的第一个沿捕获数据,从设备必须在 SCK 的第一个沿之前将数据准备好,因此, 备开始发送数据。 SS
———
引脚在每次传送完一个字节之后必须被拉高, 在发送下一个字节之前重新设置为低电平, 因此当 CPHA = 0
(CPHA
(CPHA =
=
=
= 0)
0)
0)
0)
———
SS
SSDIS 不起作用。
(CPHA
数据发送形式 (CPHA
如果 CPHA = 1 ,主设备在 SCK 的第一个沿将数据输出到 MOSI 线上,从设备把 SCK 的第一个沿作为开始发送信号。用户必 须在第一个 SCK 的两个沿内完成写 SPDAT 的操作。
———
SS
引脚在每个字节数据的传送过程始终保持低电平。 这种数据传输形式是
(CPHA
(CPHA =
=
=
= 1)
1)
1)
1)
个主设备一个从设备之间通信的首选形式。
引脚的下降沿从
注意: SPI 用作从设备模式,且 SPCON 寄存器的 CPOL 位清 0 SCK / P2.4 端口必须设置为输入模式,并在 SPEN 位置 1 前 打开上拉电阻。
CPHA/
CPHA/
CPHA/
CPHA/
———
———
———
———
SS
SS
SS
SS
时序
65
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.2.6
SPIF
MODF
SSDIS
SPI Receiver / Error
CPU Interrupt Request
SPI Transmitter
CPU Interrupt Request
SPI
CPU Interrupt Request
8.2.6
8.2.6

8.2.6 出错检测

SPSTA 寄存器中的标志位表示在 SPI 通讯中的出错情况:
( 1 ) 模式故障( MODF
SPI 主模式下的模式故障出错表明
———
SS
引脚上的电平状态与实际的设备模式不一致。 SPSTA 寄存器中 MODF 位置 1 后, 表明
统控制存在多主设备冲突的问题。这种情况下, SPI 系统受到如下影响:
产生 SPI 接收 / 错误 CPU 中断请求;
SPSTA 寄存器的 SPEN 位清 0 SPI 被禁止;
SPCON 寄存器的 MSTR 位清 0
SPCON 寄存器的 SS 系统来说,主设备的 SS 存器中的 SSDIS 位置 1
———
引脚禁止位( SSDIS )清 0 SS
———
引脚被拉低,那决不是另外一个主设备试图驱动网络。这种情况下,为防止 MODF 1 ,可使 SPCON
———
SS
引脚作为普通 I/O 口或是其它功能引脚。
———
引脚信号为低时, MODF 标志位置 1 。然而,对于只有一个主设备的
重新启动串行通信时,用户必须将 MODF 位软件清 0 ,将 SPCON 寄存器中的 MSTR 位和 SPSTA 寄存器的 SPEN 位置 1 ,重 新 启动主模式。
( 2 ) 写冲突( WCOL
在发送数据序列期间写入 SPDAT 寄存器会引起的写冲突, SPSTA 寄存器中的 WCOL 位置 1。WCOL 位置 1 不会引起中断, 发 送也不会中止。 WCOL 位需由软件清 0
( 3 ) 超限情况( RXOV
主设备或从设备尚未清除 SPIF 位,主或从设备又试图发送几个数据字节时,超限情况发生。在这种情况下,接收移位寄存 器保持原有数据, SPIF 1 ,同样 SPI 设备直到 SPIF 被清除后才会再接收数据。在 SPIF 位被清除之前继续调用中断, 发送也不 会 中止。 RXOV 位置 1 不会引起中断, RXOV 位需由软件清 0
8.
2.7
8.
2.7
8.
8. 2.7
2.7 中断
两种 SPI 状态标志 SPIF & MODF 能产生一个 CPU 中断请求。
串行外围设备数据发送标志, SPIF :完成一个字节发送后由硬件置 1
模式故障标志, MODF :该位被置 1 表示
———
SS
引脚上的电平与 SPI 模式不一致的。 SSDIS 位为 0 并且 MODF 1 将产生 SPI 接收
/ 出错 CPU 中断请求。当 SSDIS 1 时,无 MODF 中断请求产生。
SPI
SPI
SPI
SPI 中断请求的产生
66
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.2.
A2H
A2H
A2H
A2H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SPCON
SPCON
SPCON
SPCON
DIR
MSTR
CPHA
CPOL
SSDIS
SPR2
SPR1
SPR0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7
7
7
7
DIR
DIR
DIR
DIR
传送方向选择位
0: MSB 优先发送 1: LSB 优先发送
6
6
6
6
MSTR
MSTR
MSTR
MSTR
SP
SP
SP
SP 设备选择位
0: 配置 SPI 作为从属设备 1: 配置 SPI 作为主设备
5
5
5
5
CPHA
CPHA
CPHA
CPHA
时钟相位控制位
0: SCK 周期的第一沿采集数据 1: SCK 周期的第二沿采集数据
4
4
4
4
CPOL
CPOL
CPOL
CPOL
时钟极性控制位
0: Idle 状态下 SCK 处于低电平 1: Idle 状态下 SCK 处于高电平
3
3
3
3
SSDIS
SSDIS
SSDIS
SSDIS
SS
SS
SS
SS
———
———
———
———
引脚控制位
0: 在主和从属模式下,打开
SS
———
引脚
1: 在主和从属模式下,关闭 SS
———
引脚 如果 SSDIS 1 ,不产生 MODF 中断请求。 在从属模式下,如果 CPHA = 0 ,该位不起作用。
2-0
2-0
2-0
2-0
SPR
SPR
SPR
SPR [2:0]
[2:0]
[2:0]
[2:0]
串行外部设备时钟速率选择位
000 : f
SYS
/4
001 : f
SYS
/8
010 : f
SYS
/16
011 : f
SYS
/32
100 : f
SYS
/64
其他 : f
SYS
/128
8.2.
8.2.
8.2. 8 Table
Table
Table
Table 8
8
8
8 寄存器
8
.
6
8
.
6
8 .
. 6
6 SPI 控制 寄存器
67
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
F8H
F8H
F8H
F8H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SPSTA
SPSTA
SPSTA
SPSTA
SPEN
SPIF
MODF
WCOL
RXOV---读 /
/
/
/
/
/
/
/
/ 写--
-
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
00000--
-
位编号
位符号
说明
7
7
7
7
SPEN
SPEN
SPEN
SPEN
SPI
SPI
SPI
SPI 控制位
0: 关闭 SPI 1: 打开 SPI 接口
6
6
6
6
SPIF
SPIF
SPIF
SPIF
串行外部设备数据传送标志位
0: 由软件清 0 1: 表明已完成数据传输,由硬件置 1
5
5
5
5
MODF
MODF
MODF
MODF
模式故障位
0: 由软件清 0 1: 表明 SS
———
引脚电平与 SPI 模式不一致,由硬件置 1
4
4
4
4
WCOL
WCOL
WCOL
WCOL
写入冲突标志位
0: 有软件清 0 ,表明已处理写入冲突 1: 由硬件置 1 ,表明检测到一个冲突
3
3
3
3
RXOV
RXOV
RXOV
RXOV
接收超限位
0: 表明已处理接收超限,由软件清 0 1: 表明已检测到接收超限,由硬件置 1
A4H
A4H
A4H
A4H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SP
SP
SP
SP DAT
DAT
DAT
DAT
SPD7
SPD6
SPD5
SPD4
SPD3
SPD2
SPD1
SPD0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
SPD7-0
SPD7-0
SPD7-0
SPD7-0
写入 SPDAT 的数据被放置到发送移位寄存器中。 读取 SPDAT 时将获得接收移位换寄存器的数据。
Table
Table
Table 8
8
.
7
8
.
7
8 .
. 7
7 SPI 状态寄存器
Table
8
.
Table
Table
Table 8
8
8
.
8
8 .
. 8
8 SPI 数据寄存器
注意: 当关闭 SPI 功能后,读取 SPI 数据寄存器 SPDAT 的数据无效。
68
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.
ACK ACK
P
S or
Sr
STOP or repeated START condition
Sr
or P
SDA
SCL
MSB
acknowledgement
signal from slave
byte complete, interrupt
within slave
clock line held low while
interrupts are serviced
Sr
acknowledgement signal
from receiver
1 2 7 8 9 1 2 3 - 8 9
START or repeated
START condition
S T A R T
DATA 0 DATA 1 DATA 2
A C K
A
C
K
A C K
A C K
BUS ACTIVITY Master
SDALINE
BUS ACTIVITY Slave
A C K
S T O P
w
CONTROL
BYTE
DATA n
3
8.
3
8.
8. 3
3 两线串行接口 TWI
8.3.1
8.3.1
8.3.1

8.3.1 特性

TWI
TWI
TWI
只支持主模式
数据传输速率可选择
主机到从机的数据传输: 首先主机发送一个控制字节, 从机返回一个 应答位 ( ACK)” 。 接着数据字节由主机传输到从机
从机在每一个字节接收完毕后返回一个 应答位
从机到主机的数据传输: 首先主机发送一个控制字节,从机返回一个 应答位 。接着数据字节由从机传输到主机中,主机 在 每一个字节接收完毕后返回一个 应答位 。主机在最后一个字节接收完毕后返回一个 负应答位( NACK “ ACK “ NACK 信 号由 TWICON 寄存器中的 ACK 位控制。
START STOP 信号由主机产生,一次数据传输以一个 STOP 信号或一个重复 START 信号中止,一个重复 START 信号也是 从下一次数据传输开始的, TWI 总线不被释放。
TWI
TWI
TWI
TWI 总线上的数据传输
8.3.2
TWI
8.3.2
TWI
8.3.2
8.3.2 TWI
TWI 工作模式
SH79F32 TWI 仅支持主模式, 主模式又包括主发送模式和主接收模式。 TWI 数据传输速率可以从 f f
/20 这几档中进行选择。
SYS
SYS
/160,f
/80,f
SYS
主发送模式
在主发送模式中,数据传输由主机到从机,流程如下:
( 1 ) 初始化 TWI
a. 通过设置 BR[1:0] ,设置 TWI 波特率 b. 通过置 1 ETWI 位,使能 TWI 中断。并且清 0 TWIIF c. 通过置 1 TWIEN 位,使能 TWI d. 1 STA 位来启动 TWI ,产生一个 START 信号
( 2 ) 当发送一个 START 信号时, TWIIF 1 且产生 TWI 中断,软件必须首先写控制字节到 TWIDAT 中,然后清 0 TWIIF 标志位
以允许下一次中断。在控制字节发送之后, STA 位会清 0
( 3 ) 当从机收到控制字节后会返回 ACK NACK 信号,第 2 个中断产生。
如果 ACK = 0 ,表明通信出错,软件必须置 1 STA 位以开始第二次通信,或置 1 STO 位以中止通信。 如果 ACK = 1 ,表明通信成功,软件必须为下一次发送新字节到 TWIDAT 寄存器做准备。然后退出中断服务程序,同时 TWIIF 被清除。
通信重复上述 3 个步骤直到所有字节都被发送完毕, 然后主发送器必须置 1 STO 位来中止发送。 如果总线中止, 硬件清 0 S TO 位。
中,
/ 40
SYS
主发送模式的数据传输
69
SH79F
SH79F
SH79F
SH79F 32
32
32
32
主接收模式
S T A
R
T
DATA n DATA n + 1 DATA n + 2
R
A
C
K
A
C
K
A C K
A C K
BUS ACTIVITY Slave
SDALINE
BUS ACTIVITY Master
CONTROL
BYTE
DATA n + X
NO
A C K
S T O P
P
Yes
Initialize TWI Master Mode
ETWI = 1
Set BR0, BR1
STA = 1
Initialize End
TWIIF = 0
TWIEN = 1
INT Service Routine
INT Service
End
STA = 1
Yes
TWIDAT =
First Byte to be sent
Yes
STA = 1
or
STO =1
ACK = 0?
Yes
TWIIF = 0
No
No More Bytes ?
TWIDAT = sent BYTE
Yes
No
Yes
recieve BYTE = TWI DAT
Recive End ?
ACK = 0ACK = 1
RVOK
STO =1
STO =1
Recieve or Transmit ?
Recieve
Transmit
NoNoNo
No
TWIEN = 1?
在主接收模式中,由从发送器接收到数据字节的数字。在重复 START 信号后, TWI 引擎转换到主发送器模式。流程如下:
( 1) 初始 TWI
a. 通过设置 BR[1:0] ,设置 TWI 波特率 b. 通过置 1 ETWI 位,使能 TWI 中断。并且清 0 TWIIF c. 通过置 1 TWIEN 位,使能 TWI d. 1 STA 位来启动 TWI ,产生一个 START 信号
( 2) 当发送一个 START 信号时, TWIIF 被设置且产生 TWI 中断, 软件必须首先写控制字节到 TWIDAT 中,然后清除 TWIIF
以允许下一次中断。在控制字节发送之后, STA 会被清除。
( 3) 从机接收到控制字节发出 ACK 信号,主机产生第 2 个中断。
如果 ACK = 0 ,表明通信出错,软件必须置 1 STA 位以开始第二次通信,或置 1 STO 位以中止通信。 如果 ACK = 1 ,表明通信成功,软件必须为再一次发送新的字节到 TWIDAT 寄存器做准备。然后退出中断服务程序,同 时 TWIIF 被清除。
( 4) 当接收到新的数据时,会产生中断
如果 RVOK = 0 ,表明没有接收到数据 如果 RVOK = 1 ,表明接收到数据,软件从 TWIDAT 寄存器中得到数据,然后置 1 ACK 位接收下一字节 ; 清 ACK 位和置 1 STO 位中止通信。如果总线中止,硬件清 0 STO
主接收模式的数据传输
软件流程图
70
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.3.3
A
A
A
A 6
6
6
6 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
TWI
TWI
TWI
TWI CON
CON
CON
CON
TWIEN
TWIIF
STA
STO
RXOK
ACK
BR1
BR0
/
/
/
/
/
/
/
/ 写只读读 /
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7
7
7
7
TWIEN
TWIEN
TWIEN
TWIEN
TWI
TWI
TWI
TWI 允许位
0 :禁止 TWI 接口 1 :允许 TWI 接口
6
6
6
6
TWIIF
TWIIF
TWIIF
TWIIF
TWI
TWI
TWI
TWI 中断标志位
0 :中断没有发生 1 :由硬件置 1 表示 TWI 中断产生
5
5
5
5
STA
STA
STA
STA
开始标志位
0 :在传送第一个字节后由硬件清 0 ,或错误发生 1 :当总线闲置时,由软件置 1 产生一个 START RESTART 信号
如果同时置 1 STA 位和 STO 位,传送 START 信号后再传送 STOP 信号
4
4
4
4
STO
STO
STO
STO
停止标志位
0 :在传送 STOP 信号后由硬件清除 1 :由软件设置产生一个 STOP 信号, TWI 引擎进入 I dle 状态
如果设置 STA STO ,传送 START 信号后再传送 STOP 信号
3
3
3
3
RXOK
RXOK
RXOK
RXOK
收到新字节标志位
0 :未收到新字节,当如去 TWIDAT 时由硬件清除 1 :收到新字节,准备读取新的字节,由硬件设置
2
2
2
2
ACK
ACK
ACK
ACK
确认标志位
0 :在主接收模式下:由软件清 0 使 SDA 线路上产生 NAK 信号
在主传输模式下:由硬件清 0 表示 SDA 线路上收到 NAK 信号
1 :在主接收模式下:由软件 1 使 SDA 线路上产生 ACK 信号
在主传输模式下:由硬件 1 表示 SDA 线路上收到 ACK 信号
1-0
1-0
1-0
1-0
BR[1:0]
BR[1:0]
BR[1:0]
BR[1:0]
波特率控制位
00 :波特率 = 系统时钟 /160 01 :波特率 = 系统时钟 /80 10 :波特率 = 系统时钟 /40 11 :波特率 = 系统时钟 /20
8.3.3
8.3.3
8.3.3 寄存器 Table
Table
Table
Table 8
8
.
9
8
.
9
8 .
. 9
9 TWI 状态和控制寄存器
71
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
A7
A7
A7
A7 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
TWIDAT
TWIDAT
TWIDAT
TWIDAT
TWID7
TWID6
TWID5
TWID4
TWID3
TWID2
TWID1
TWID0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
TWID[7:0]
TWID[7:0]
TWID[7:0]
TWID[7:0]
TWI
TWI
TWI
TWI 数据存储器
TWI 数据寄存器是读 / 写移位寄存器的缓冲器。 当移位寄存器为空时,写入 TWI 数据寄存器的数据将直接写入移位寄存器。 当移位寄存器不为空时,直到移位寄存器为空,才将写入 TWI 数据寄存器的 数据写入移位寄存器。 接收完数据后,移位寄存器的数据会写入 TWI 数据寄存器,此时读取 TWI 数据 寄存器返回接收到的数据。 如果接收仍在进行中,读取 TWI 数据寄存器将返回上一次存储在 TWI 数据寄存器 中的值(无论该数据是接收到的还是软件写入的)。
Table
Table
Table 8
8
.
10
8
.
10
8 .
. 10
10 TWI 数据寄存器
72
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.
12 4
SERIAL
SERIAL
SERIAL
SERIAL
CONTROLLER
CONTROLLER
CONTROLLER
CONTROLLER
TX CLOCK
TX START
TX SHIFT
TI
RI
SHIFT
CLOCK
RX CLOCK
LOAD SBUF
RX START
RX SHIFT
Transmit Shift Register
RXD
Serial Port Interrupt
TXD
RI
REN
PARIN
LOAD
CLOCK
SOUT
CLOCK
SIN
PAROUT
RXD
SBUF
Read SBUF
Receive Shift Register
Internal
Data Bus
Write to
SBUF
1
0
SBUF
÷
÷
System C lock
SM2
SM
SM
SM
SM 0
0
0
0
SM
SM
SM
SM 1
1
1
1
方式
类型
波特率
帧长度
起始位
停止位
9
9
9
9
000
同步
SYSCLK / 4 12
8 无无无011异步定时器 1 或 2 的溢出率 / ( 16 32
10 11无102
异步
SYSCLK / 32 64
11 11
0 1
113异步定时器 1 或 2 的溢出率 / ( 16 32
11 11
0 1
4
8.
4
8.
8. 4
4 增强型通用异步收发器 EUART
8.4.1
8.4.1
8.4.1

8.4.1 特性

EUART
EUART
EUART
SH79F32 带有 2 EUART ,兼容传统 8051
波特率可选择为系统时钟分频或定时器 1/2 的溢出率,但 EUART1 的波特率不能选择为定时器 1 的溢出率
增强功能包括帧出错检测及自动地址识别
EUART 有四种工作方式
EUART1 提供 IR 接口
8.4.2
EUART
8.4.2
EUART
8.4.2
8.4.2 EUART
EUART 工作方式
EUART 4 种工作方式。在通信之前用户必须先初始化 SCON ,选择方式和波特率。如果使用方式 1 或方式 3 应先初始化定 时器 1 或定时器 2
在所有四种方式中,任何将 SBUF 作为目标寄存器的写操作都会启动发送。在方式 0 中由条件 RI = 0 REN = 1
初始化接收。 这会在 TxD 引脚上产生一个时钟信号, 然后在 R xD 引脚上移 8 位数据。 在其他方式中由输入的起始位初始化接收 (如果 REN = 1 通过发送起始位,外部发送器开始通信。
EUART
EUART
EUART
EUART 方式列表
0:
0:
方式 0:
0: 同步,半双工通讯
方式 0 支持与外部设备的同步通信。在 RXD 引脚上收发串行数据。 TXD 引脚用作发送移位时钟。 SH79F 32 提供 TxD 引脚上
移位时钟。因此这个方式是串行通信的半双工方式。在这个方式中,每帧收发 8 位,低位先接收或发送。
通过置 SM2
位(
SCON.5
)为
0 1 , 波特率固定为系统时钟的 1/12 1/4
。当
SM2 位为 0 时, 串行端口以系统时钟的 1/12
当置 1 时,串行端口以系统时钟的 1/4 运行。与标准 8051 唯一不同的是, SH79F 32 在方式 0 中有可变波特率。
功能块框图如下图所示。数据通过 RxD 引脚进入和移出串行端口。移位时钟由 TxD 引脚输出,用来移位进出 SH79F 32 的数
据。
)。
行。
73
SH79F
SH79F
SH79F
SH79F 32
32
32
32
任何将 SBUF 作为目标寄存器的写操作都会启动发送。 下一个系统时钟 Tx 控制块开始发送。 数据转换发生在移位时钟的下
Write to SBUF
D0
D1 D2
D3
D4
D5
D6 D7
RxD
TI
Send Timing of Mode 0
Send Timing of Mode 0
Send Timing of Mode 0
Send Timing of Mode 0
TxD
RxD
D0 D1 D2 D3 D4 D5 D6 D7
RI
Receive Timing of Mode 0
Receive Timing of Mode 0
Receive Timing of Mode 0
Receive Timing of Mode 0
TxD
Timer 1 Overflow
SERIAL
SERIAL
SERIAL
SERIAL
CONTROLLER
CONTROLLER
CONTROLLER
CONTROLLER
TX CLOCK
TX START
TX SHIFT
TI
RI
RX CLOCK
LOAD SBUF
RX START
RX SHIFT
TXD
PARIN
LOAD
CLOCK
SOUT
CLOCK
SIN
PAROUT
RXD
Read SBUF
Internal Data Bus
Receive Shift Register
Internal
Data Bus
Timer 2 Overflow
10
10
10
16
÷
16
÷
1-TO-0
DETECTOR
Write to SBUF
BIT
DETECTOR
D8
SBUF
RB8
Transmit Shift Register
STOP
START
SAMPLE
2
÷
SMOD
TCLK
RCLK
Serial Port Interrupt
沿,移位寄存器的内容逐次从左往右移位,空位置 0 。当移位寄存器中的所有 8 位都发送后, Tx 控制模块停止发送操作,然后在 下一个系统时钟的上升沿将 TI 1 (SCON.1) ,并且 RxD 引脚保持高电平。
REN SCON.4 )置 1 RI SCON.0 )清 0 初始化接收。下一个系统时钟启动接收,在移位时钟的上升沿锁存数据,接收 换寄存器的内容逐次向左移位。当所有 8 位都接收到接收移位寄存器中后, Rx 控制块停止接收,然后在下一个系统时钟的上升 沿 上 RI 1 ,直到被软件清 0 才允许接收。
1
:
8
EUART
1
:
8
方式 1
EUART
1 :
: 8
8 EUART
EUART ,可变波特率,异步全双工
方式 1 提供 10 全双工异步通信, 10 位由一个起始位(逻辑 0 ), 8 个数据位(低位为第一位),和一个停止位(逻辑 1 组 成。在接收时,这 8 个数据位存储在 SBUF 中而停止位储存在 RB8 SCON.2 )中。方式 1 中的波特率是可变的,串行收发波特 率 可被设置为定时器 1 溢出率的 1/16 1/32 ,或是定时器 2 溢出率的 1/16 (详见 波特率 章节)。功能块框图如下图所示:
74
SH79F
SH79F
SH79F
SH79F 32
32
32
32
任何将 SBUF 作为目标寄存器的写操作都会启动发送,实际上发送是从 16 分频计数器中的下一次跳变之后的系统时钟开始
Write to SBUF
Shift CLK
D0 D1 D2 D3 D4 D5 D6 D7
TxD
StopStart
TI
Send Timing of Mode 1
Send Timing of Mode 1
Send Timing of Mode 1
Send Timing of Mode 1
Receive Timing of Mode 1
Receive Timing of Mode 1
Receive Timing of Mode 1
Receive Timing of Mode 1
D0 D1 D2 D3 D4 D5 D6 D7
RxD
StopStart
Bit Sample
Shift CLK
RI
的,因此位时间与 16 分频计数器是同步的,与对 SBUF 的写操作不同步。起始位首先在 TxD 引脚上移出,然后是 8 位数据位。在 发送移位寄存器中的所有 8 位数据都发送完后,停止位在 TxD 引脚上移出,在停止位发出的同时 Tl 标志置 1
只有 REN 位置 1 时才允许接收。当 RxD 引脚 检测到下降沿时串行口开始接收串行数据。为此, CPU RxD 不断采样,采样 速 率为波特率的 16 倍。当检测下降沿时, 16 分频计数器立即复位,这有助于 16 分频计数器与 RxD 引脚上的串行数据位同步。 16 分 频计数器把每一位的时间分为 16 个状态,在第 7 8 9 状态时,位检测器对 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 ,然后才能再次接收。
75
SH79F
SH79F
SH79F
SH79F 32
32
32
32
2
SERIAL
SERIAL
SERIAL
SERIAL
CONTROLLER
CONTROLLER
CONTROLLER
CONTROLLER
TX CLOCK
TX START TX SHIFT
TI
RI
RX CLOCK
LOAD SBUF
RX START
RX SHIFT
TXD
Serial Port Interrupt
PARIN
LOAD
CLOCK
SOUT
CLOCK
SIN
PAROUT
RXD
Read SBUF
Internal Data Bus
Receive Shift Register
Internal
Data Bus
32
÷
32
÷
1-TO-0
DETECTOR
Write to SBUF
BIT
DETECTOR
D8
SBUF
RB8
Transmit Shift Register
STOP
START
SAMPLE
10
2
÷
D8
TB8
SMOD
System C lock
Write to SBUF
Shift CLK
TI
Send Timing of Mode 2
Send Timing of Mode 2
Send Timing of Mode 2
Send Timing of Mode 2
TxD
D8
D0 D1 D2 D3 D4 D5 D6 D7Start Stop
:
9
EUART
2
:
9
方式 2
EUART
2 :
: 9
9 EUART
EUART ,固定波特率,异步全双工
这个方式使用异步全双工通信中的 11 位。一帧由一个起始位(逻辑 0 ), 8 个数据位(低位为第一位),一个可编程的第 9 数据位和一个停止位(逻辑 1 )组成。方式 2 支持多机通信和硬件地址识别(详见 多机通信 章节)。在数据传送时,第 9 数据位 ( SCON 中的 TB8 )可以写 0 1 ,例如,可写入 PSW 中的奇偶位 P ,或用作多机通信中的数据 / 地址标志位。当接收到数据时, 第 9 数据位进入 RB8 而停止位不保存。 PCON 中的 SMOD 位选择波特率为系统工作频率的 1/32 1/64 。功能块框图如下所示:
任何将 SBUF 作为目标寄存器的写操作都会启动发送,同时也将 TB8 载入到发送移位寄存器的第 9 位中。实际上发送是从 16 分频计数器中的下一次跳变之后的系统时钟开始的,因此位时间与 16 分频计数器是同步的, 与对 SBUF 的写操作不同步。 起始 位 首先在 TxD 引脚上移出,然后是的第 9 数据位。 在发送转换寄存器中的所有 9 位数据都发送完后,停止位在 TxD 引脚上移出,在 停 止位发送后 Tl 标志置 1
76
SH79F
SH79F
SH79F
SH79F 32
32
32
32
只有 REN 位置 1 时才允许接收。当 RxD 引脚 检测到下降沿时串行口开始接收串行数据。为此, CPU RxD 不断采样,采样
Shift CLK
RxD
Bit Sample
D0 D1 D2 D3 D4 D5 D6 D7 D8Start Stop
RI
Receive Timing of Mode 2
Receive Timing of Mode 2
Receive Timing of Mode 2
Receive Timing of Mode 2
Timer 1 Overflow
SERIAL
SERIAL
SERIAL
SERIAL
CONTROLLER
CONTROLLER
CONTROLLER
CONTROLLER
TX CLOCK
TX START TX SHIFT
TI
RI
RX CLOCK
LOAD SBUF
RX START
RX SHIFT
Serial Port Interrup t
CLOCK
SIN
PAROUT
RXD
Read SBUF
Internal Data Bus
Receive Shift Register
Timer 2 Overflow
10
10
10
16
÷
16
÷
1-TO-0
DETECTOR
Write to SBUF
BIT
DETECTOR
D8
SBUF
RB8
SAMPLE
2
÷
TXD
PARIN
LOAD
CLOCK
SOUT
Internal
Data Bus
Transmit Shift Register
START
D8
TB8
STOP
SMOD
TCLK
RCLK
率为波特率的 16 倍。当检测下降沿时, 16 分频计数器立即复位。这有助于 16 分频计数器与 RxD 引脚上的串行数据位同步。 16 分 频计数器把每一位的时间分为 16 个状态,在第 7 8 9 状态时,位检测器对 RXD 端的电平进行采样。为抑制噪声,在这 3 个状 态 采样中至少有 2 次采样值一致数据才被接收。如果所接收的第一位不是 0 ,说明这位不是一帧数据的起始位,该位被忽略,接收 电路被复位,等待 RxD 引脚上另一个下降沿的到来。若起始位有效,则移入移位寄存器,并接着移入其它位到移位寄存器。 9 个 数据位和 1 个停止位移入之后,移位寄存器的内容被分别装入 SBUF RB8 中, RI 1 ,但必须满足下列条件:
1 . RI = 0
2 . SM2 = 0 或者接收的第 9 = 1 且接收的字节符合实际从 地址
如果这些条件被满足,那么第 9 位移入 RB8 8 位数据移入 SBUF RI 被置 1 。否则接收的数据帧会丢失。
在停止位的当中,接收器回到寻找 RxD 引脚上的另一个下降沿。用户必须用软件清除 RI ,然后才能再次接收。
3:
9
EUART
3:
9
方式 3:
EUART
3: 9
9 EUART
EUART ,可变波特率,异步全双工
方式 3 使用方式 2 的传输协议以及方式 1 的波特率产生方式。
77
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.4.3
TH1256
T1
f
32
SMOD
2
BaudRate
×=
RCAP2L][RCAP2H, 65536
T2
f
162
1
BaudRate
×
×
=
RCAP2L][RCAP2H, 65536
T2
f
16
1
BaudRate
×=
)
64
SYS
f
(
SMOD
2BaudRate ×=
8.4.3
8.4.3

8.4.3 波特率

在方式 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
,用定时器 1 作为波特率发生器,定时器 1 工作在方式 2
,用定时器 2 作为波特率发生器,定时器 2 时钟源为系统时钟
,用定时器 2 作为波特率发生器,定时器 2 时钟源为时钟源为 T2 引脚输入时钟
2
2
方式 2
2 中,波特率固定为系统时钟的 1/32 1/64 ,由 SMOD 位( PCON.7 )决定。当 SMOD 位为 0 时, EUART 以系统时钟
1/64 运行。当 SMOD 位为 1 时, EUART 以系统时钟的 1/32 运行。
8.4.4
8.4.4
8.4.4

8.4.4 多机通讯

软件地址识别
方式 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 数据位为 字节)并且接收到的数据字节符合 EUART 的从机地址, EUART 产生一个中断。接着,从机应该将 SM2 清零,以接收后续的数 据 字节。
9 位方式下要求第 9 位为 1 以表明该字节是地址而非数据。 当主机要发送一组数据给几个从机中的一个时, 必须先发送目 标 从机的地址。所有从机在等待接收地址字节时,为了确保仅在接收地址字节时产生中断, SM2 位必须置 1 。自动地址识别的特 点 是只有地址匹配的从机才能产生中断,地址比较通过硬件完成而不是软件。
中断产生后,地址相匹配的从机清零 SM2 ,继续接收数据字节。地址不匹配的从机不受影响,将继续等待接收和它匹配的 地址字节。一旦全部信息接收完毕,地址匹配的从机应该再次把 SM2 1 ,忽略所有传送的非地址字节,直到接收到下一个地 址 字节。
使用自动地址识别功能时,主机可以通过调用给定的从机地址选择与一个或多个从机通信。使用广播地址可以联系所有的 从机。有两个特殊功能寄存器用来定义从机地址( SADDR ) 和地址屏蔽( SADEN )。 从机地址是一个 8 位的字节,存于 SADD R 寄存器中。 SADEN 用于定义 SADDR 内位的有效与否,如果 SADEN 中某一位为 0 ,则 SADDR 中相应位的被忽略,如果 SADEN 中某一位置 1 ,则 SADDR 中相应位的将用于得到给定的从机地址。这可以使用户在不改变 SADDR 寄存器中的从机地址的情况 下 灵活地寻址多个从机。使用给定地址可以识别多个从机而排除其他的从机。
1
(地
)。
节,
78
SH79F
SH79F
SH79F
SH79F 32
32
32
32
从机 1 和从机 2 给定地址的最低位是不同的。从机 1 忽略了最低位,而从机 2 的最低位是 1 。因此只与从机 1 通讯时,主机必须
RCAP2L][RCAP2H, 65536
SYS
f
16
1
BaudRate
×=
RCAP2L][RCAP2H, 65536
SYS
f
216
1
BaudRate
×
×
=
记忆码
从机 1
从机 2
SADDR
10100100
10100111
SADEN (为 0 的位被忽略)
11111010
11111001
实际从机地址
10100x0x
10100xx1
广播地址( SADDR SADEN
1111111x
11111111
发送最低位为 0 的地址( 10100000 )。类似地,从机 1 的第 1 位为 0 ,从机 2 的第 1 位被忽略。因此, 只与从机 2 通讯时,主机必须 发送第 1 位为 1 的地址( 10100011 )。如果主机希望同时与两从机通讯,则第 0 位为 1 ,第 1 位为 0 ,第 2 位被两从机都忽略,此时 有两个不同的地址用于选定两个从机( 1010 0001 1010 0101 )。
主机可以通过广播地址与所有从机同时通讯。这个地址等于 SADDR SADEN 的逻辑或,结果中的 0 表示该位被忽略。多 数 情况下,广播地址为 0xFFh ,该地址可被所有从机应答。
系统复位后, SADDR SADEN 两个寄存器初始化为 0 , 这两个结果设定了给定地址和广播地址为 XXXXXXXX (所有位都 被 忽略)。这有效地去除了多处机通讯的特性,禁止了自动寻址方式。这样的 EUART 将对任何地址都产生应答,兼容了不支持自 动地址识别的 8051 控制器。用户可以按照上面提到的方法实现软件识别地址的多机通讯。
8.4.5
8.4.5
8.4.5

8.4.5 帧出错检测

当寄存器 PCON 中的 SSTAT 位为逻辑 1 时,帧出错检测功能才有效。 3 个错误标志位被置 1 后,只能通过软件清零,尽管后 续 接收的帧没有任何错误也不会自动清零。
注意: SSTAT 位必须为逻辑 1 是访问状态位( FE
SM2 )。
发送冲突
如果在一个发送正在进行时,用户软件写数据到 SBUF 寄存器时,发送冲突位( SCON 寄存器中的 TXCOL 位)置 1 。如果 发 生了冲突,新数据会被忽略,不能被写入发送缓冲器。
接收溢出
如果在接收缓冲器中的数据未被读取之前, 又有新的数据存入接收缓冲器, 那么接收溢出位 ( SCON 寄存器中的 RXOVR 1 。如果发生了接收溢出,接收缓冲器中原来的数据将丢失。
帧出错
如果检测到一个无效(低)停止位,那么帧出错位(寄存器 SCON 中的 FE )置 1 。 暂停检测
当连续检测到 11 个位都为低电平位时,则认为检测到一个暂停。由于暂停条件同样满足帧错误条件,因此检测到暂停时也 会报告帧错误。一旦检测到暂停条件, UART 将进入空闲状态并一直保持,直至接收到有效停止位( RxD 引脚上出现上升沿)。
8.4.
6
EUART1
8.4.
6
EUART1
8.4.
8.4. 6
6 EUART1
EUART1
EUART1 的控制和工作方式与 EUART 相同,但只使用定时器 2 作为波特率发生器不管在 T2CON 寄存器中的 TCK RCK 位是
IR
1 还是 0 EUART1 包含 IR 接口(详见 IR
IR
IR 章节)。
RXOVR TXCOL
),
SSTAT 位为逻辑 0 时是访问 方式选择位( SM0,S M1
位)
如果 T2CON 中的 TCLK RCLK 0 EUART1 波特率为:
如果 T2CON 中的 TCLK RCLK 1 EUART1 波特率为:
注意: 在发送之前 TxD TXD1 引脚必须被设置为输出高电平。
79
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.4.7
87
87
87
87 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
P
P
P
P CON
CON
CON
CON
SMOD
SSTAT
SSTAT1-GF1
GF0PDIDL
/
/
/
/
/
/
/ 写-读 /
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
000-000
0
位编号
位符号
说明
7
7
7
7
SMOD
SMOD
SMOD
SMOD
波特率加倍器
若使用定时器 1 作为波特率发生器,在方式 1 3 中置 1 EUART 的波特率会加倍 , 如果在方式 2 中置 1 EUART 的波特率会加倍
6
6
6
6
SSTAT
SSTAT
SSTAT
SSTAT
SCON
SCON
SCON
SCON [7:5]
[7:5]
[7:5]
[7:5] 功能选择
0 SCON [7:5] 工作方式作为 SM0 SM1 SM2 1 SCON [7:5] 工作方式作为 FE RXOV TXCOL
5
5
5
5
SSTAT1
SSTAT1
SSTAT1
SSTAT1
SCON1
SCON1
SCON1
SCON1 [7:5]
[7:5]
[7:5]
[7:5] 功能选择位
0 SCON1 [7:5] 工作方式如同 SM10 SM11 SM12 1 SCON1 [7:5] 工作方式如同 FE1 RXOV1 TXCOL1
3-2
3-2
3-2
3-2
GF
GF
GF
GF [1:0]
[1:0]
[1:0]
[1:0]
用于软件的通用标志
1
1
1
1
PD
PD
PD
PD
掉电模式控制位
0
0
0
0
IDL
IDL
IDL
IDL
空闲模式控制位
8.4.7
8.4.7
8.4.7 寄存器 Table
Table
Table
Table 8
8
.
11
8
.
11
8 .
. 11
11 电源控制寄存器
80
SH79F
SH79F
SH79F
SH79F 32
32
32
32
EUART
9
9
9
9 8
8
8
8 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
S
S
S
S CON
CON
CON
CON
SM0/FE
SM1/RXOV
SM2/TXCOL
REN
TB8
RB8TIRI
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-6
7-6
7-6
7-6
SM
SM
SM
SM [
[
[
[ 0
0
0
0 :1]
:1]
:1]
:1]
EUART
EUART
EUART
EUART 串行方式控制 SST
SST
SST
SST A
A
A
A T
T
T
T =
=
=
= 0
0
0
0
00 : 方式 0 ,同步方式,固定波特率 01 : 方式 1 8 位异步方式,可变波特率 10 : 方式 2 9 位异步方式,固定波特率 11 : 方式 3 9 位异步方式,可变波特率
7
7
7
7
FE
FE
FE
FE
EUART
EUART
EUART
EUART 帧出错标志 FE
FE
FE
FE 位被读时, SSTAT
SSTAT
SSTAT
SSTAT 位必须被设置为 1
1
1
1
0 : 无帧出错,由软件清 0 1 : 发生帧出错,由硬件置 1
6
6
6
6
RXOV
RXOV
RXOV
RXOV
EUART
EUART
EUART
EUART 接收 溢出 标志 RXOV
RXOV
RXOV
RXOV 位被读时, SSTAT
SSTAT
SSTAT
SSTAT 位必须被设置为 1
1
1
1
0 : 没有 接收 溢出 ,由软件清 0 1 : 接收 溢出 ,由硬件置 1
5
5
5
5
SM2
SM2
SM2
SM2
EUART
EUART
EUART
EUART 多处理机通讯允许位(第 9
9
9
9
“ 1
1
1
1 ”
校验器), SSTAT
SSTAT
SSTAT
SSTAT =
=
=
= 0
0
0
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 产生中断
5
5
5
5
TXCOL
TXCOL
TXCOL
TXCOL
EUART
EUART
EUART
EUART 发送冲突标志 TXCOL
TXCOL
TXCOL
TXCOL 位被读时, SSTAT
SSTAT
SSTAT
SSTAT 位必须被设置为 1
1
1
1
0 : 无发送冲突,由软件清 0 1 : 有发送冲突,由硬件置 1
4
4
4
4
REN
REN
REN
REN
EUART
EUART
EUART
EUART 接收器允许
0 : 接收禁止 1 : 接收允许
3
3
3
3
TB8
TB8
TB8
TB8
9
9
9
9 位在 EUART
EUART
EUART
EUART 的方式 2
2
2
2 3
3
3
3 下发送,由软件置 1
1
1
1 或清 0
0
0
0
2
2
2
2
RB8
RB8
RB8
RB8
发送器, EUART
EUART
EUART
EUART 的第 8
8
8
8
在方式 0 下,不使用 RB8 在方式 1 下,如果接收中断发生, RB8 的停止位会收到信号 在方式 2 3 下,由第 9 位接收
1
1
1
1
TI
TI
TI
TI
EUART
EUART
EUART
EUART 的传送中断标志
0 : 由软件清 0 1 : 由硬件置 1 ,在方式 0 下的第 8 位最后,或在其他方式下的停止位开始
0
0
0
0
RI
RI
RI
RI
EUART
EUART
EUART
EUART 的接收中断标志
0 : 由软件清 0 1 : 由硬件置 1 ,在方式 0 下的第 8 位最后,或在其他方式下的停止位开始
EUART
EUART
EUART 相关 SFR
Table
8
.
Table
Table
Table 8
12
8
.
12
8 .
. 12
12 E UART 控制及状态寄存器
SFR
SFR
SFR
81
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
99
99
99
99 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SBUF
SBUF
SBUF
SBUF
SBUF.7
SBUF.6
SBUF.5
SBUF.4
SBUF.3
SBUF.2
SBUF.1
SBUF.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
SBUF.7-0
SBUF.7-0
SBUF.7-0
SBUF.7-0
SFR 访问两个寄存器:一个移位寄存器和一个接收锁存寄存器 SBUF 的写入将发送字节到移位寄存器中,然后开始传输 SBUF 的读取返回接收锁存器中的内容
9AH-9BH
9AH-9BH
9AH-9BH
9AH-9BH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SADDR
SADDR
SADDR
SADDR (9AH)
(9AH)
(9AH)
(9AH)
SADDR.7
SADDR.6
SADDR.5
SADDR.4
SADDR.3
SADDR.2
SADDR.1
SADDR.0
SADEN
SADEN
SADEN
SADEN (9BH)
(9BH)
(9BH)
(9BH)
SADEN.7
SADEN.6
SADEN.5
SADEN.4
SADEN.3
SADEN.2
SADEN.1
SADEN.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
SADDR.7-0
SADDR.7-0
SADDR.7-0
SADDR.7-0
SFR SADDR
SADDR
SADDR
SADDR 定义 EUART 0 的从机地址
7-0
7-0
7-0
7-0
SADEN.7-0
SADEN.7-0
SADEN.7-0
SADEN.7-0
SFR SADEN
SADEN
SADEN
SADEN 是一个位屏蔽寄存器,决定检验 SADDR
SADDR
SADDR
SADDR 的哪个位地址
0 : 不检验 SADDR 中的相应位 1 : 检验在 SADDR 中的相应位
Table
Table
Table 8
Table
Table
Table
Table 8
8
.
13
8
.
13
8 .
. 13
13 EUART 数据缓冲器寄存器
8
.
14
8
.
14
8 .
. 14
14 EUART 地址及地址掩 寄存器
82
SH79F
SH79F
SH79F
SH79F 32
32
32
32
EUART1
D8
D8
D8
D8 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
S
S
S
S CON1
CON1
CON1
CON1
SM10
/FE1
SM11
/RXOV1
SM12
/TXCOL1
REN1
TB1 8
RB1 8
TI1
RI1
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-6
7-6
7-6
7-6
SM
SM
SM
SM 1
1
1
1 [
[
[
[ 0
0
0
0 :1]
:1]
:1]
:1]
EUART
EUART
EUART
EUART 1
1
1
1 串行方式控制 SST
SST
SST
SST A
A
A
A T
T
T
T 1
1
1
1 =
=
=
= 0
0
0
0
00 : 方式 0 ,同步方式,固定波特率 01 : 方式 1 8 位异步方式,可变波特率 10 : 方式 2 9 位异步方式,固定波特率 11 : 方式 3 9 位异步方式,可变波特率
7
7
7
7
FE
FE
FE
FE 1
1
1
1
EUART
EUART
EUART
EUART 1
1
1
1 帧出错标志 F
F
F
F E
E
E
E 1
1
1
1 位被读时, SSTAT
SSTAT
SSTAT
SSTAT 1
1
1
1 位必须被设置为 1
1
1
1
0 : 无帧出错,由软件清 0 1 : 发生帧出错,由硬件置 1
6
6
6
6
RXOV
RXOV
RXOV
RXOV 1
1
1
1
EUART
EUART
EUART
EUART 1
1
1
1 接收完毕标志 RXOV1
RXOV1
RXOV1
RXOV1 位被读时, SSTAT
SSTAT
SSTAT
SSTAT 1
1
1
1 位必须被设置为 1
1
1
1
0 : 无接收溢出,由软件清 0 1 : 接收溢出,由硬件置 1
5
5
5
5
SM
SM
SM
SM 1
1
1
1 2
2
2
2
EUART
EUART
EUART
EUART 1
1
1
1 多处理机通讯允许位(第 9
9
9
9
“ 1
1
1
1 ”
校验器), SSTAT
SSTAT
SSTAT
SSTAT 1
1
1
1 =
=
=
= 0
0
0
0
0 : 在方式 0
波特率是系统时钟的 1/12
在方式 1
禁止停止位确认检验,停止位将置 RI 1 产生中断
在方式 2 3
任何字节都会置 RI 1 1 产生中断
1 : 在方式 0
波特率是系统时钟的 1/4
在方式 1
允许停止位确认检验
只有有效的停止位
1)才能置 RI 1 为 1 产生中断
在方式 2 3
只有 址字节(第 9 = 1 )能置 RI 1 1 产生中断
5
5
5
5
TXCOL
TXCOL
TXCOL
TXCOL 1
1
1
1
EUART
EUART
EUART
EUART 1
1
1
1 发送冲突标志 TXCOL1
TXCOL1
TXCOL1
TXCOL1 位被读时, SSTAT
SSTAT
SSTAT
SSTAT 1
1
1
1 位必须被设置为 1
1
1
1
0 : 无发送冲突,由软件清 0 1 : 有发送冲突,由硬件置 1
4
4
4
4
REN
REN
REN
REN 1
1
1
1
EUART
EUART
EUART
EUART 1
1
1
1 接收器允许
0 : 接收禁止 1 : 接收允许
3
3
3
3
TB
TB
TB
TB 1
1
1
1 8
8
8
8
9
9
9
9 位在 EUART
EUART
EUART
EUART 1
1
1
1 的方式 2
2
2
2 3
3
3
3 下发送,由软件置 1
1
1
1 或清 0
0
0
0
2
2
2
2
RB
RB
RB
RB 1
1
1
1 8
8
8
8
发送器, EUART
EUART
EUART
EUART 1
1
1
1 的第 8
8
8
8
在方式 0 下,不使用 RB 1 8 在方式 1 下,如果接收中断发生, RB 1 8 是接收到的停止位 在方式 2 3 下, RB 1 8 是接收到的第 9
1
1
1
1
TI
TI
TI
TI 1
1
1
1
EUART
EUART
EUART
EUART 1
1
1
1 的传送中断标志
0 : 由软件清 0 1 : 由硬件置 1 ,在方式 0 下的第 8 位最后,或在其他方式下的停止位开始
0
0
0
0
RI
RI
RI
RI 1
1
1
1
EUART
EUART
EUART
EUART 1
1
1
1 的接收中断标志
0 : 由软件清 0 1 : 由硬件置 1 ,在方式 0 下的第 8 位最后,或在其他方式下的停止位开始
EUART1
EUART1
EUART1 相关 SFR
Table
8
.
Table
Table
Table 8
15
8
.
15
8 .
. 15
15 E UART 1 控制及状态寄存器
SFR
SFR
SFR
83
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
D9
D9
D9
D9 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SBUF1
SBUF1
SBUF1
SBUF1
SBUF 1 .7
SBUF 1 .6
SBUF 1 .5
SBUF 1 .4
SBUF 1 .3
SBUF 1 .2
SBUF 1 .1
SBUF 1 .0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
SBUF
SBUF
SBUF
SBUF 1
1
1
1 .7-0
.7-0
.7-0
.7-0
SFR 访问两个寄存器:一个移位寄存器和一个接收锁存寄存器 SBUF 1 的写入将发送字节到移位寄存器中,然后开始传输 SBUF 1 的读取返回接收锁存器中的内容
D
D
D
D AH-
AH-
AH-
AH- D
D
D
D BH
BH
BH
BH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SADDR
SADDR
SADDR
SADDR 1
1
1
1 (DAH)
(DAH)
(DAH)
(DAH)
SADDR 1 .7
SADDR 1 .6
SADDR 1 .5
SADDR 1 .4
SADDR 1 .3
SADDR 1 .2
SADDR 1 .1
SADDR 1 .0
SADEN
SADEN
SADEN
SADEN 1
1
1
1 (
(
(
( D
D
D
D BH)
BH)
BH)
BH)
SADEN 1 .7
SADEN 1 .6
SADEN 1 .5
SADEN 1 .4
SADEN 1 .3
SADEN 1 .2
SADEN 1 .1
SADEN 1 .0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
SADDR
SADDR
SADDR
SADDR 1
1
1
1 .7-0
.7-0
.7-0
.7-0
SFR SADDR
SADDR
SADDR
SADDR 1
1
1
1 定义 EUART 的从机地址
7-0
7-0
7-0
7-0
SADEN
SADEN
SADEN
SADEN 1
1
1
1 .7-0
.7-0
.7-0
.7-0
SFR SADEN
SADEN
SADEN
SADEN 1
1
1
1 是一个位屏蔽寄存器,决定检验 SADDR
SADDR
SADDR
SADDR 1
1
1
1 的哪些位对应接收地址
0 : SADDR 1 中的相应位被忽略 1 : SADDR 1 中的相应位被检验是否对应接收地址
Table
Table
Table 8
Table
Table
Table
Table 8
8
.
16
8
.
16
8 .
. 16
16 EUART 1 数据缓冲器寄存器
8
.
17
8
.
17
8 .
. 17
17 EUART 1 地址及地址掩 寄存器
84
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.5
EUART 1
Carrier
Mux
IRON
IRON
IRTXD
RXD
TXD
TXD 1
RXD 1
TXD
IRTXD
Fcarry
A1H
A1H
A1H
A1H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
IRCON
IRCON
IRCON
IRCON
IRON
IRF6
IRF5
IRF4
IRF3
IRF2
IRF1
IRF0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7
7
7
7
IRON
IRON
IRON
IRON
IR
IR
IR
IR 允许 /
/
/
/ 禁止控制位
0: 禁止 IR EUART1 作为普通串行端口 1: 允许 IR IR 频率载入 EUART1 TxD 信号
6-0
6-0
6-0
6-0
IRF[6:0]
IRF[6:0]
IRF[6:0]
IRF[6:0]
IR
IR
IR
IR 载波频率选择位
1)(IRF 2
SYSCLK
carrier
F
+×
=
IR
8.5
IR
8.5

8.5 IR

IR
SH79F32 提供一个内建在 EUART1 内部的 IR 接口。除了 EUART1 波形内的高频载波信号外,其他与 EUART1 完全一致。 EUART1 IR 不能同时工作。 IRF 寄存器决定载波频率,且每个载波都与 TXD 信号的下降沿同步。
当增加 IR 载波时,为了将 EUART1 误差减到最小,要求波特率低于 9600bps
8.5.1
8.5.1
8.5.1
8.5.1 寄存器 Table
Table
Table
Table 8
8
.
18
8
.
18
8 .
. 18
18 IR 控制寄存器
85
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.
寄存器
计数范围
计数溢出及自动数据重置
备注
SEC
SEC
SEC
SEC
00-59
59 00
-
MIN
MIN
MIN
MIN
00-59
59 00
-
HR
HR
HR
HR
00-23
23 00
-
DAY
DAY
DAY
DAY
01-31
31 01
MTH = 1,3,5,7,8,10,12
01-30
30 01
MTH = 4,6,9,11
01-29
29 01
MTH = 2,YR = 0 (闰年
01-28
28 01
MTH = 2,YR = 1,2,3 (平年
MTH
MTH
MTH
MTH
01-12
12 01
-
YR
YR
YR
YR
0-3
3 0
YR = 0 代表闰年
DOW
DOW
DOW
DOW
0-6
6 0
-
6
8.
6
8.
8. 6
6 实时时间时钟( RTC
8.
6
.1
8.
6
.1
8.
8. 6
6 .1
.1 特性
32.768kHz 时钟输入,内部校准电路,精度 ± 5ppm ± 0.5 /
半秒 / 秒、分钟、时、日、星期、月、年寄存器
RTC 模快所涉及的寄存器的写操作,要等待 2 32.768kHz 时钟(大于 61us 才能真正写入寄存器
RTC 模快所涉及的寄存器的写操作,要等待 2 32K 时钟(大于 61us 才能真正写入寄存器
RTC 模块 仅在选择使用 32.768kHz 晶体振荡器时适用
8.6.2
I/O
8.6.2
I/O
8.6.2
8.6.2 I/O
I/O 引脚
RTC 功能使用 2 I/O 引脚: CALIN CALOUT 。在校准期间, CALIN 作为输入引脚用于精度为 1ppm 1Hz 时钟输入。在校 准之后, CALOUT 用于校准后的补偿时钟输出管脚,可以输出补偿后的 60 秒时钟或原始的 32KHz 时钟。
8.6.3
8.6.3
8.6.3

8.6.3 功能说明

时间和日历功能
RTC 模块以秒、分钟和小时提供时钟指示;以 星期 日、 月和年 4 进制 提供日历指示,并 能对月和闰年进行 读取 相关日历的各 寄存器返回当前时间和日期。写入这些寄存器可设置时间和日期,而计数器会从新的设置开始重新计数。
星期
RTC
RTC
RTC
RTC 时间循环长度
RTC
RTC
RTC
年寄存器提供日历功能
日寄存器数据的循环会根据月和闰年自动调整
4 进制年寄存器的数据设置范围为 0- 3
自动调节。
补偿
内建的频率补偿机制允许 RTC 模块可以使用非高精度 32.768kHz 晶振为其提供 RTC 计数时钟。 有了补偿机制, 系统可以得 到 精度高于驱动晶振精度的实时时钟。补偿值可以通过 RTC 模块校准功能由硬件完成,也可以由应用软件设置。
实时时钟功能
半秒 /
断允许( EHSEC = 1 CPU 将响应半秒中断。 日历功能
日、星期、月和年计数寄存器提供日历功能。日计数器的 计数范围会根据月和年(闰年 自动 调节。 4 进制年计数器的范 围 为 0-3 ,其中 0 代表闰年。
分钟和小时寄存器提供了系统的实时时钟功能。 半秒寄存器每次加 1 均会产生一个半秒中断请求信号, 如果半秒
86
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.6.4
1Hz CLK(1ppm) Reference input
PLL
6÷
Time Compare EOV
PLL CLK
163840 Hz
RTCCLK
32768 Hz Crystal
Error-register
32768 ÷
32756 ÷
32780 ÷
32772 ÷
32776 ÷
32760 ÷
32764 ÷
COMEN
Mix
A
B
1 Hz to RTC counter
1 Hz A
1 Hz B
12
t12t
Accurate 3s Clock
Actual PLL Clock
3532768 s3incyclesPLLCLK E ××=
RTC
8.6.4
RTC
8.6.4
8.6.4 RTC
RTC 时钟校准和补偿(方式 A
A
A
A
概述
RTC 模块内建针对 RTCCLK 的校准和补偿电路。 电路采用补偿 32 . 768 k Hz 晶体振荡器频率偏差的方法以得到更加精准的 RT C 时钟。利用这个方法可以降低晶振的成本。
如果知道晶振的温度曲线特性及当前的温度,校准电路可以根据周围温度对晶振的频率偏差作出补偿。
电路提供最大 ± 258 ppm 的补偿范围 -127 ~ 127 ,适用于普通 30ppm 的晶振,也可以降低 PCB 成本。使用这种运算规则, RTC 模块能达到精确度在 ± 5 ppm 内的 RTC 补偿时钟。
RTC
RTC
RTC
RTC 时钟校准和补偿(模式 A
A
A
A
自动校准电路通过 32 . 768 kk Hz 晶体振荡器驱动的 RTCCLK 信号与从 CALIN 引脚输入的 1Hz 1ppm )信号进行比较, 通过 设 置 RTCCON 寄存器的 CAL 位和 AUTOCAL 位来启动校准。 3 秒的校准期间, 时间比较 模快比较两个时钟源的时间差异。
校准误差
1HzCLK 开始之后, RTCCLK 开始计数,在 1HzCLK 停止之后, RTCCLK 停止计数。 3 秒之内 1HzCLK RTC CLK 之间
3
1HzCLK
3
1HzCLK
3
3 秒内 1HzCLK
1HzCLK PLLCLK
PLLCLK
PLLCLK
PLLCLK 之间的时差
差异可以用 PLLCLK 时钟表示如下 :
87
SH79F
SH79F
SH79F
SH79F 32
32
32
32
同步误差
2ppm
6
10
3532768
1
±≈×
××
±
1ppm
6
10)
3532768
9
1010
3532768
0.07 2
( ±<×
××
×
+
××
×
±
<10n s <10n s
True 60 Seconds
Period A
Period B
RTCCLK
Uncompensated
1-Hz Clock
Compensated
1-Hz Clock
1-Hz Clock Compensation
1-Hz Clock Compensation
1-Hz Clock Compensation
1-Hz Clock Compensation
周期 A
A
A
A
周期 B
B
B
B
计数
分配器计数分配器
-12 7 E -121
|E|-120
32756
180-|E|
32760
-120 < E -61
|E|-60
32760
120-|E|
32764
-60 E -1
|E|
32764
60-|E|
32768
E = 0
无补偿,分配器是 32768
1 E 60
|E|
32772
60-|E|
32768
61 E 120
|E|-60
32776
120-|E|
32772
121 E 12 7
|E|-120
32780
180-|E|
32776
补偿时钟:每 60 秒调整一次 补偿范围: ± 25 8 ppm
因为 PLLCLK 1HzCLK 不能同步进行,导致的最大误差为 ± 1 × PLLCLK 。相应的误差为:
同步误差
其次为 PLL 电路产生的误差。 由于 PLL 电路的限制,存在 PLL 误差,每个 PLL 时钟有 1% 的误差。累计到每个基础时钟,导 致 在每个基础时钟 32KHz 的上升沿有大约 10ns 的误差。因此最大 PLL 误差可如下计算出:
PLL
PLL
PLL
PLL 误差
因此总误差在 ± 3ppm 左右。
校准误差 E 储存在 8 位误差寄存器中 ( RTC 校准数据寄存器 RTCDAT
)。 负
E 值表示 PLLCLK 周期数要减去 E
值,因为
RTCC LK
比理想值 32 . 768 k Hz 慢, 32768 RTCCLK 时钟周期比 1 秒长。正 E 值表示 PLLCLK 周期数要加上 E 值,因为 RTCCLK 比理想值 32 . 768 k Hz 快, 32768 RTCCLK 时钟周期比 1 秒短。
如果时间差超过 127 RTCCLK 周期, E 寄存器溢出, EVOL 标记被置 1 。超出 127 的余数被记录在 E 寄存器中。
校准运算法则
在校准之后, E 值存储在校准数据寄存器 RTCDAT 中,只有当 RTCCON 寄存器的 COMEN 位置 1 时, 系统补偿功能才能启动 补偿时钟以每 60 秒为周期调整一次。
用户首先要在 RTC 可运行的每个温度点进行校准操作,然后将相应的校准值 E 存储在 校准表 用户应该查询这个 校准表 ,并将相应 E 值写入寄存器 RTCDAT 中。
(软件) 中。 当温度改变
时,
88
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.6.5
1Hz CLK(1ppm) Reference input
30 ÷
Time Compare EOV
RTCCLK
32768 Hz Crystal
Error-register
32768 ÷
32756 ÷
32780 ÷
32772 ÷
32776 ÷
32760 ÷
32764 ÷
COMEN
Mix
A
B
1 Hz to RTC counter
1 Hz A
1 Hz B
12
t12t
Accurate 15s Clock
Actual RTC Clock
1532768 s15incyclesRTCCLK E ×=
RTC
8.6.5
RTC
8.6.5
8.6.5 RTC
RTC 时钟校准和补偿(方式 B
B
B
B
概述
RTC 模块内建 针对 RTCCLK 的校准和补偿 电路
电路采用补偿 32 . 768 k Hz 晶体振荡器频率偏差的方法以得到更加精准的 RT C
时钟。利用这个方法可以降低晶振的成本。
如果知道晶振的温度曲线特性及当前的温度,校准电路可以根据周围温度对晶振的频率偏差作出补偿。
电路提供最大 ± 258 ppm 的补偿范围 -127 ~ 127 ,适用于普通 30ppm 的晶振,也可以降低 PCB 成本。使用这种运算规则, RTC 模块能达到精确度在 ± 5 ppm 内的补偿 RTC 时钟。
自动校准电路通过 32 . 768 k Hz 晶体振荡器驱动的 RTCCLK 信号与从 CALIN 引脚输入的 1H z 1ppm 信号进行比较,通过设 置 RTCCON 寄存器的 CAL 位和 AUTOCAL 位来启动校准。在 15 秒的校准期间, 时间比 模快比较两个时钟源的时间差异。
校准误差
1HzCLK 开始之后, RTCCLK 开始计数,在 1HzCLK 停止之后, RTCCLK 停止计数。 15 秒之内 1HzCLK RTC CLK 间 的差异可以用 PLLCLK 时钟表示如下 :
RTC
RTC
RTC
RTC 时钟校准和补偿 (
15
1HzCLK
15
1HzCLK
15
15 秒内 1HzCLK
1HzCLK RTCCLK
(
B)
(
B)
( 模式 B)
B)
RTCCLK
RTCCLK
RTCCLK 时差
89
SH79F
SH79F
SH79F
SH79F 32
32
32
32
同步误差
2ppm
6
10
1532768
1
±≈×
×
±
True 60 Seconds
Period A
Period B
RTCCLK
Uncompensated
1-Hz Clock
Compensated
1-Hz Clock
1-Hz Clock Compensation
1-Hz Clock Compensation
1-Hz Clock Compensation
1-Hz Clock Compensation
周期 A
A
A
A
周期 B
B
B
B
计数
分配器计数分配器
-12 7 E -121
|E|-120
32756
180-|E|
32760
-120 < E -61
|E|-60
32760
120-|E|
32764
-60 E -1
|E|
32764
60-|E|
32768
E = 0
无补偿,分配器是 32768
1 E 60
|E|
32772
60-|E|
32768
61 E 120
|E|-60
32776
120-|E|
32772
121 E 12 7
|E|-120
32780
180-|E|
32776
补偿时钟:每 60 秒调整一次 补偿范围: ± 25 8 ppm
因为 PLLCLK 1HzCLK 不能同步进行, 导致的最大误差为 ± 1 × PLLCLK 相应的误差为:
同步误差
校准误差 E 储存在 8 位误差寄存器中 ( RTC 校准数据寄存器 RTCDAT 比理想值 32 . 768 k Hz 慢, 32768 RTCCLK 时钟周期比 1 秒长。正 E 值表示 PLLCLK 周期数要加上 E 值,因为 RTCCLK 比理想值 32 . 768 k Hz 快, 32768 RTCCLK 时钟周期比 1 秒短。
如果时间差超过 127 RTCCLK 个周期, E 寄存器溢出, EVOL 标记被置 1 。超出 127 的余数被记录在 E 寄存器中。
)。 负
E 值表示 PLLCLK 周期数要减去 E
值,因为
RTCC LK
校准运算法则
在校准之后, E 值存储在校准数据寄存器 RTCDAT 中, 只有当 RTCCON 寄存器中的 COMEN 位置 1 时,系统补偿功能才能启 动。补偿时钟以每 60 秒为周期调整一次。
用户首先要在 RTC 可运行的每个温度点进行校准操作,然后将相应的校准值 E 存储在 校准表 用户应该查询这个 校准表 ,并将相应 E 值写入寄存器 RTCDAT 中。
(软件) 中。 当温度改变
时,
90
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.
BEH
BEH
BEH
BEH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
RTCCON
RTCCON
RTCCON
RTCCON
RTCEN
HSECIF
COMEN
CAL
AUTOCAL
OUTF1
OUTF0
EOVL
/
/
/
/
/
/
/
/
/
/
/
只读
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
00u0000
0
位编号
位符号
说明
7
7
7
7
RTCEN
RTCEN
RTCEN
RTCEN
实时时钟允许
0 RTC 模块禁止 1 RTC 模块允许
6
6
6
6
HSECIF
HSECIF
HSECIF
HSECIF
半秒中断标 志位
0 :无半秒计数器增加 1 :半秒计数器增加
5
5
5
5
COMEN
COMEN
COMEN
COMEN
RTC
RTC
RTC
RTC 补偿允许
0 :禁止补偿机制 1 :允许补偿机制
注意: 复位不改变 COMEN 位值
4
4
4
4
CAL
CAL
CAL
CAL
RTC
RTC
RTC
RTC 校准模式允许
0 :禁止 RTC 校准模式,在自动校准完成后自动置 0 1 :允许 RTC 校准模式
3
3
3
3
AUTOCAL
AUTOCAL
AUTOCAL
AUTOCAL
RTC
RTC
RTC
RTC 自动校准允许
0 :禁止 RTC 自动校准 1 :允许 RTC 自动校准, P3.4 用作 CALIN 引脚来接收 外灌 1Hz 信号 RTC
自动校准。 校准完成后, CAL AUTOCAL 自动清 0
2-1
2-1
2-1
2-1
OUTF
OUTF
OUTF
OUTF [1:0]
[1:0]
[1:0]
[1:0]
校准模式下的 CALOUT
CALOUT
CALOUT
CALOUT 引脚输出频率选择
00 :断开 CALOUT 引脚 01 CALOUT 引脚输出周期为 60s 的时钟
COMMEN = 1 时,输出经补偿过的周期为 60s 的时钟 ; 当 COMMEN = 0 时,输出未经补偿过的周期为 60s 的时钟 ;
10 CALOUT 引脚输出原始的 外接的 32.768kHz 晶振时钟 11 CALOUT 引脚输出周期为 1s 的时钟
COMMEN = 1 时, 输出周期为 1s 的时钟 , 在每 60 个周期内补偿一次, 即每 60 个周期的时间为经过补偿的准确的 60s COMMEN = 0 时,输出未经补偿过的周期为 1s 的时钟
0
0
0
0
EOVL
EOVL
EOVL
EOVL
误差溢出标 志位
0 最后一次自动校准无误差溢出 1 最后一次自动校准有误差溢出,即频率偏差超出范围无法校准
6
.
8.
6
.
8.
8. 6
6 .
. 6
Table
Table
Table
Table 8
6
6
6 寄存器
8
.
19
8
.
19
8 .
. 19
19 RTC 校准控制寄存器
注意:
CAL AUTOCAL 的相互关系如下:
CAL, AUTOCAL:
0x :禁止写入 E 寄存器 RTCDAT 寄存器
10 E 寄存器 RTCDAT 可由软件写入 ,与 RTCEN 位状态无关。
11 E 寄存器仅可由 RTC 校准电路写入,即 : 仅当 RTCEN 位为 1 ,且 CAL AUTOCAL 两位均置 1 时, E 寄存器 RTCDAT 可由
RTC 校准电路将补偿数据写入。之后, CAL AUTOCAL 两位由硬件自动清 0
91
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
BFH
BFH
BFH
BFH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
RTCDAT
RTCDAT
RTCDAT
RTCDAT
E7E6E5E4E3E2E1E0读 /
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
uuuuuuu
u
位编号
位符号
说明
7-0
7-0
7-0
7-0
E[7:0]
E[7:0]
E[7:0]
E[7:0]
RTC
RTC
RTC
RTC 补偿值 E
E
E
E 寄存器
E[7:0] 补偿数值用来表示 RTC 工作时需要进行补偿的时钟个数。 E[7] 位表表示符号, 0 代表正数, 1 代表负数。 E[6:0] 存储补偿值。 如果补偿 超过 ± 12 7 EOVL 标记
置起, 超出 127 的余数被记录在 E 寄存器中。 当允许补偿时 COMEN = 1 : 如果 E 是负, 表示每一个调整周期中要减去 E 值; 如果 E 是正, 表示每一个调整周期中要加上 E 值。 在自动校准之后, RTC 补偿电路 将补偿值 写入 E[7:0] 。 当 CAL = 1 AUTOCAL = 0 时,只能由用户写入 E[7:0]
注意: 复位不 改变 E[7:0]
C1H
C1H
C1H
C1H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
SEC
SEC
SEC
SEC
HSEC
SEC6
SEC5
SEC4
SEC3
SEC2
SEC1
SEC0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
uuuuuuu
u
位编号
位符号
说明
7
7
7
7
HSEC
HSEC
HSEC
HSEC
半秒指示位,按半秒的频率交替置 0 1
6-0
6-0
6-0
6-0
SEC
SEC
SEC
SEC [
[
[
[ 6
6
6
6 :
:
:
: 0
0
0
0 ]
]
]
]
寄存器 0 位 - 第 6 位 存秒计数器的当前值 BCD 。可以在任何时候读取寄存 器 0 位 - 第 6 位 而不影响计数器计数。写入寄存器会载入值到秒计数器,计数 器继续从新值开始计数。秒计数器的值在到达 59 之后滚动至 0 。 0-59 之外的数据无法写入。 注意不要写入 0x 1x 2x 3x 4x x = A - FH 非法数据。
C2H
C2H
C2H
C2H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
MIN
MIN
MIN
MIN
-
MIN6
MIN5
MIN4
MIN3
MIN2
MIN1
MIN0
/
/
/
/
-
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
-uuuuuu
u
位编号
位符号
说明
6-0
6-0
6-0
6-0
MIN
MIN
MIN
MIN [
[
[
[ 6
6
6
6 :
:
:
: 0
0
0
0 ]
]
]
]
寄存器存 分钟计数器的 当前 BCD 。可以在任何时候读取这位而不影响计数 器计数。写入寄存器会载入值到分钟计数器,计数器继续从新值开始计数。分钟计数 器的值在到达 59 之后滚动至 0 0-59 之外的数据无法写入。 注意不要写入 0x 1x 2x 3x 4x x = A - FH 非法数据。
Table
Table
Table 8
Table
Table
Table
Table 8
8
8
8 .
注意: 当允许校准时, RTC 时钟和日历功能不受影响。
8
8
8 .
.
20
.
20
. 20
20 RTC 补偿值( E )寄存器
.
21
.
21
. 21
21 秒和半秒寄存器
Table
8
.
22
8
.
22
8 .
. 22
22 分钟寄存器
Table
Table
Table 8
92
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
C3H
C3H
C3H
C3H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
HR
HR
HR
HR--
HR5
HR4
HR3
HR2
HR1
HR0
/
/
/
/ --
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
--uuuuu
u
位编号
位符号
说明
5-0
5-0
5-0
5-0
HR
HR
HR
HR [
[
[
[ 5
5
5
5 :
:
:
: 0
0
0
0 ]
]
]
]
寄存器存 小时计数器的当前值 BCD 。可以在任何时候读取这位而不影响计数 器计数。写入寄存器会载入值到小时计数器,计数器继续从新值开始计数。小时计 数器的值在到达 23 之后滚动至 0 0-23 之外的数据无法写入。 注意不要写入 0x 1x x = A - FH 非法数据。
C4H
C4H
C4H
C4H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
DAY
DAY
DAY
DAY
--DAY5
DAY4
DAY3
DAY2
DAY1
DAY0
/
/
/
/ --
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
--uuuuu
u
位编号
位符号
说明
5-0
5-0
5-0
5-0
DAY
DAY
DAY
DAY [
[
[
[ 5
5
5
5 :
:
:
: 0
0
0
0 ]
]
]
]
寄存器存 日计数器的当前值 BCD 。可以在任何时候读取这位而不影响计数 器计数。写入寄存器会载入值到日计数器,计数器继续从新值开始计数。日计数 器的值根据月和年寄存器的值在到达 28 29 30 31 之后滚动至 1 1-31 之外的数据无法写入。 注意不要写入 1x 2x x = A - FH 非法数据。
C5H
C5H
C5H
C5H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
MTH
MTH
MTH
MTH
---
MTH4
MTH3
MTH2
MTH1
MTH0
/
/
/
/ ---读 /
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
---uuuu
u
位编号
位符号
说明
4-0
4-0
4-0
4-0
MTH
MTH
MTH
MTH [
[
[
[ 4
4
4
4 :
:
:
: 0
0
0
0 ]
]
]
]
寄存器存 月计数器的当前值 BCD 。可以在任何时候读取这位而不影响计数器 计数。写入寄存器会载入值到月计数器,计数器继续从新值开始计数。月计数器的 值在到达 12 之后滚动至 1 1-12 之外的数据无法写入。 注意不要写入 0x x = A - FH 非法数据。
Table
Table
Table 8
Table
Table
Table
Table 8
8
.
23
8
.
23
8 .
. 23
23 小时寄存器
8
.
24
8
.
24
8 .
. 24
24 日寄存器
Table
8
.
25
8
.
25
8 .
. 25
25 月校准控制寄存器
Table
Table
Table 8
93
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
C6H
C6H
C6H
C6H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
YR
YR
YR
YR------
YR1
YR0
/
/
/
/ ------
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
------u
u
位编号
位符号
说明
7-0
7-0
7-0
7-0
YR
YR
YR
YR [1:
[1:
[1:
[1: 0
0
0
0 ]
]
]
]
寄存器存 年计数器的当前值 BCD 。可以在任何时候读取这位而不影响计数 器计数。写入寄存器会载入值到年计数器,计数器继续从新值开始计数。 年计数器的值在到达 3 之后滚动至 0 0 表示闰年, 1-3 表示平年 硬件自动识别 0-3 之外的数据无法写入。
C7H
C7H
C7H
C7H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
DOW
DOW
DOW
DOW-----DOW2
DOW1
DOW0
/
/
/
/
-----
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
-----uu
u
位编号
位符号
说明
2-0
2-0
2-0
2-0
DOW
DOW
DOW
DOW [
[
[
[ 2
2
2
2 :
:
:
: 0
0
0
0 ]
]
]
]
寄存器 保存 星期 计数器的当前值 BCD 。可以在任何时候读取这位而不影响 计数器计数。写入寄存器会载入值到 星期 计数器,计数器继续从新值开始计数。 星期 计数器的值在到达 6 之后滚动至 0 0-6 之外的数据无法写入。
Table
Table
Table 8
Table
Table
Table
Table 8
8
.
26
8
.
26
8 .
. 26
26 年寄存器
8
.
27
8
.
27
8 .
. 27
27 星期寄存器
94
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.
Input voltage
SCH2 - SCH0
ADC
AN0
AN1
AN2
AN3
CH5 - CH0
000
001
010
011
100
101 - 111
AN4
AN5
7
/
8.
7
/
8.
8. 7
7 /
/ 数转换器 (ADC)
8.7.1
8.7.1
8.7.1

8.7.1 特性

(ADC)
(ADC)
(ADC)
10 位分辨率
内建基准电压
6 模拟通道输入
数字比较器功能
包含一个单端型、 10 位逐次逼近型模数转换器( ADC )。 ADC 内建的基准电压 Vref V
入模拟信号,但是每次转换只能使用一个通道。 GO/ DONE
— --- — -----
信号控制开始转换,提示转换结束。当转换完成时, 更新 ADC 数据
相连, 6 ADC 通道都可以独立
DD
存器与此同时,设置 ADCON 寄存器中的 ADCIF 位并且产生一个中断(如果允许 ADC 中断)
ADC 模块整合数字比较功能可以比较 AD 转换器中的模拟输入的值与数字值。如果允许数字比较功能(在 ADCON 寄存器中
EC = 1 ),并且 ADC 模块使能( ADON = 1 ADCCON 寄存器),只有当相应的模拟输入的数字值大于寄存器中的比较值
ADDH/L )时,才会产生 ADC 中断。当 GO/ DONE
— --- — -----
1 时,数字比较功能会持续工作,直到 GO/ DONE
— --- — -----
0 。这一点与数模转换
工作方式不同。
带数字比较功能的 ADC 模块能在 Idle 模式下工作,并且 ADC 中断能够唤醒 Idle 模式。但是,在 Power-Down 模式下, ADC 模 块被禁止。
8.7.2
ADC
8.7.2
ADC
8.7.2
8.7.2 ADC
ADC 模块图
ADC
ADC
ADC
ADC 模块框图
95
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.7.3
93H
93H
93H
93H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
ADCON
ADCON
ADCON
ADCON
ADON
ADCIFEC-
SCH2
SCH1
SCH0
GO/ DONE
— --- — -----
/
/
/
/
/
/
/ 写-读 /
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
000-000
0
位编号
位符号
说明
7
7
7
7
AD
AD
AD
AD C
C
C
C ON
ON
ON
ON
ADC
ADC
ADC
ADC 允许位
0 : 禁止 ADC 模块 1 : 允许 ADC 模块
6
6
6
6
ADCIF
ADCIF
ADCIF
ADCIF
ADC
ADC
ADC
ADC 中断标志位
0 : ADC 中断 1 : 由硬件置 1 表示已完成 AD 转换 或者模拟输入大于 ADDH/ ADD L
( 如果允许数字比较模块 )
5
5
5
5
EC
EC
EC
EC
比较功能允许位
0 : 禁止数字比较功能 1 : 允许数字比较功能
3-1
3-1
3-1
3-1
SCH
SCH
SCH
SCH [2:0]
[2:0]
[2:0]
[2:0]
ADC
ADC
ADC
ADC 通道选择位
000 : ADC 通道 AN0 001 : ADC 通道 AN1 010 : ADC 通道 AN2 011 : ADC 通道 AN3 100 : ADC 通道 AN4 其他 : ADC 通道 AN5
0
0
0
0
GO/
GO/
GO/
GO/ DONE
DONE
DONE
DONE
— ---
---
---
--- —
— ------
------
------
------
ADC
ADC
ADC
ADC 状态标志位
0 : 当完成 AD 转换时,由硬件自动清 0 。在转换期间清 0 这个位会中止 AD 转换。
如果允许数字比较功能,该位不会由硬件清 0 只能由软件清 0
1 : 设置开始 AD 转换或者启动数字比较功能。
8.7.3
8.7.3
8.7.3 寄存器 Table
Table
Table
Table 8
8
.
28
8
.
28
8 .
. 28
28 ADC 控制寄存器
96
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
94H
94H
94H
94H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
ADT
ADT
ADT
ADT
TADC2
TADC1
TADC0-TS3
TS2
TS1
TS0
/
/
/
/
/
/
/ 写-读 /
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
000-000
0
位编号
位符号
说明
7-5
7-5
7-5
7-5
TADC[2:0]
TADC[2:0]
TADC[2:0]
TADC[2:0]
TADC
TADC
TADC
TADC [2:0]
[2:0]
[2:0]
[2:0] -
-
-
- ADC
ADC
ADC
ADC 时钟周期选择位
000 : ADC 时钟周期 tAD= 2 t
SYS
001 : ADC 时钟周期 tAD= 4 t
SYS
010 : ADC 时钟周期 tAD= 6 t
SYS
011 : ADC 时钟周期 tAD= 8 t
SYS
100 : ADC 时钟周期 tAD= 12 t
SYS
101 : ADC 时钟周期 tAD= 16 t
SYS
110 : ADC 时钟周期 tAD= 24 t
SYS
111 : ADC 时钟周期 tAD= 32 t
SYS
3-0
3-0
3-0
3-0
TS[3:0]
TS[3:0]
TS[3:0]
TS[3:0]
采样时间选择位
2 tAD≤ 采样时间 = (TS [3:0]+1) * tAD≤ 1 5 t
AD
95H
95H
95H
95H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
ADCH
ADCH
ADCH
ADCH
CH5
CH4
CH3
CH2
CH1
CH0--
/
/
/
/
/
/
/
/
/
/ 写--
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
000000-
-
位编号
位符号
说明
7-2
7-2
7-2
7-2
CH
CH
CH
CH [5:0]
[5:0]
[5:0]
[5:0]
信道配置
0 : P2 . 7 -P2. 2 作为 I/O 端口 1 : P 2 . 7 -P2. 2 作为 ADC 输入口
8
.
注意 :
29
8
.
29
8 .
. 29
29 ADC 定时控制寄存器
:
:
:
Table
Table
Table 8
( 1) 请确保 tAD≧ 1 µ s ;
( 2) 即使 TS[3:0] = 0000 ,最小采样时间为 2 tAD;
( 3) 即使 TS[3:0] = 1111 ,最大采样时间为 15 tAD;
( 4) 在设置 TS[ 3 : 0 ] 前,请估算连接到 ADC 输入引脚的串联电阻
(5) 选择 2* tAD为采样时间时,请确保连接到 ADC 输入引脚的串联电阻小于 10k
(6 ) 总共转换时间 = 12 tAD+ 采样时间。
Table
8
.
30
8
.
30
8 .
. 30
30 ADC 信道配置寄存器
Table
Table
Table 8
97
SH79F
SH79F
SH79F
SH79F 32
32
32
32
Table
9
9
9
9 6
6
6
6 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
ADD
ADD
ADD
ADD L
L
L
L
------A1A0读 /
/
/
/ ------
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
------0
0
9
9
9
9 7
7
7
7 H
H
H
H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
ADD
ADD
ADD
ADD H
H
H
H
A9A8A7A6A5A4A3
A2
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
1-0
1-0
1-0
1-0 7-0
7-0
7-0
7-0
A9-A0
A9-A0
A9-A0
A9-A0
ADC
ADC
ADC
ADC 数据寄存器
采样模拟电压的数字值。当完成转换后,这个值会更新。 如果 ADC 数字比较功能使能 (EC = 1) ,这个值将与模拟输入进行比较。
Table
Table
Table 8
8
.
31
8
.
31
8 .
. 31
31 AD 转换数据寄存器(比较值寄存器)
98
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.
CFH
CFH
CFH
CFH
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
PWMEN
PWMEN
PWMEN
PWMEN
-
EFLT--
EPWMN--
EPWM
/
/
/
/
-
/
-
-
/
-
-
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
-0--0--
0
位编号
位符号
说明
6
6
6
6
EFLT
EFLT
EFLT
EFLT
故障检测功能控制位
0 = 禁止故障检测功能, FLT 用作 I/O 1 = 打开故障检测功能
3
3
3
3
EPWMN
EPWMN
EPWMN
EPWMN
PWMN
PWMN
PWMN
PWMN 输出控制位
0 = PWMN 输出禁止,用作 I/O 功能 1 = PWMN 输出允许
0
0
0
0
EPWM
EPWM
EPWM
EPWM
PWMP
PWMP
PWMP
PWMP 输出控制位
0 = PWMP 输出禁止,用作 I/O 功能 1 = PWMP 输出允许
8
8.
8
8.
8. 8
8 脉冲宽度调制( PWM
8.8.1
8.8.1
8.8.1

8.8.1 特性

12 位精度
2 路带死区控制的互补输出
提供每个 PWM 周期溢出中断
输出极性可选择
提供故障检测功能可紧急关闭 PWM 输出
提供保护寄存器可使重要寄存器免受干扰出错
SH79P32 包含一个 1 2 PWM 模块。 可以产生周期和占空比分别可以调整的脉宽调制波形, PWM 模块提供 2 路带死区时间 制的互补输出 PWMP PWMN ,这项功能在大部分推挽输出功率系统中十分必要。如果设置 EFLT ,故障检测功能开启, 如果 侦 测输入脚检测到一个有效信号, PWM 输出会立即输出无效电平。 PWM 模块还提供中断功能,用户可以在每个 PWM 周期更改占 空比来实现 SPWM 波形。
8.8.2
PWM
8.8.2
PWM
8.8.2
8.8.2 PWM
PWM 允许 寄存器
Table
8
.
Table
Table
Table 8
32
8
.
32
8 .
. 32
32 PWM 控制寄存器 1
PWM
PWM
PWM
无论是 EPWMN 1 还是 EPWMP 1 PWM 模块都将被开启。
如果故障引脚中检测到一个有效的事件, (由 FLTC 选择低电平或高电平), PWM 输出将立即进入无效状态。 FLT 引脚没 有 内部上拉电阻。
如果 EFLT 0 FLT 引脚上的电平对 PWM 没影响。
99
SH79F
SH79F
SH79F
SH79F 32
32
32
32
8.8.3
PWM clock t
PWM
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 01 02 03 04 05 06 07 08
Write [PWMPH, PWMPL] = 0DH Write [PWMDH, PWMPDL] = 07H
PWM output (PWMS = 0)
Period cycle = 0FH X t
PWM
Duty cycle
= 06H X t
PWM
Period cycle = 0DH X t
PWM
Duty cycle
= 06H X t
PWM
Duty cycle
= 07H X t
PWM
E7H
E7H
E7H
E7H
7
7
7
7
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
0
0
0
0
PWMLO
PWMLO
PWMLO
PWMLO
PWMLO.7
PWMLO.6
PWMLO.5
PWMLO.4
PWMLO.3
PWMLO.2
PWMLO.1
PWMLO.0
/
/
/
/
/
/
/
/
/
/
/
/
复位值
(
(
(
( POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR
POR/WDT/LVR /PIN
/PIN
/PIN
/PIN )
)
)
)
0000000
0
位编号
位符号
说明
7-0
7-0
7-0
7-0
PWMLO
PWMLO
PWMLO
PWMLO [7:0]
[7:0]
[7:0]
[7:0]
PWM
PWM
PWM
PWM 锁定位
只有当 PWMLO = 0x55 ,才能允许修改其他 PWM 寄存器
PWM
8.8.3
PWM
8.8.3
8.8.3 PWM
PWM 锁定 寄存器
这个寄存器用来控制 PWM 控制寄存器 1 PWM 控制寄存器 2 PWM 周期寄存器、 PWM 占空比寄存器和 PWM 死区时间控制 寄存器的更改。只有当锁定寄存器内容为 0x55 时,才能更改这些寄存器,否则不能更改。
同时注意,只有禁止 PWM 模块时( EPWM N EPWM P 都为 0 ),才能更改 PWM 死区控制寄存器。
这个寄存器能增强 PWM 模块的抗干扰能力。
Table
8
.
Table
Table
Table 8
8.8.4
8.8.4
8.8.4
8.8.4 PWM
33
8
.
33
8 .
. 33
33 PWM 定时 控制寄存器
PWM
PWM
PWM 定时器
下列寄存器控制 PWM 波形: PWMC
PWMPH/L PWMDH/L。PWMC 用来控制 PWM 时钟源; PWMPH/L 用来控制 PWM
期, PWMDH/L 用来控制 PWM 占空比。
PWM 输出允许期间能更改这三个寄存器。所有更改在下一个 PWM 周期才会生效。
注意: 对于 PWMPH/L PWMDH/L ,只有在写入高字节寄存器后才能更改 PWM 定时器,只写入低位字节不起作用。
PWM
PWM
PWM
PWM 输出周期或占空比更改示例
100
Loading...