STC12LE5408 [ETC]
STC12C5410AD;型号: | STC12LE5408 |
厂家: | ETC |
描述: | STC12C5410AD |
文件: | 总149页 (文件大小:1184K) |
中文: | 中文翻译 | 下载: | 下载PDF数据表文档文件 |
STC12C5410AD 系列 片机器件手册
--- 1个 /机器周期8051
---无法解密
---低功耗,超低价
--- 高速,高可靠
--- 抗静 , 抗干
STC12C5412, STC12C5412AD
STC12C5410, STC12C5410AD
STC12C5408, STC12C5408AD
STC12C5406, STC12C5406AD
STC12C5404, STC12C5404AD
STC12C5402, STC12C5402AD
STC12LE5412, STC12LE5412AD
STC12LE5410, STC12LE5410AD
STC12LE5408, STC12LE5408AD
STC12LE5406, STC12LE5406AD
STC12LE5404, STC12LE5404AD
STC12LE5402, STC12LE5402AD
技 支援:宏晶科技(深圳)
www.MCU-Memory.com
support@MCU-Memory.com
Update date: 2006-4-15 ( 随 注意更新)
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
界革命 覆盖市 需求
STC 12C5410AD系列 1T 8051 片机
1 个
/ 机器周期,高速、高可靠,4 路PWM,8 路高速A/D
宏晶科技是新一代增 型8051 片机 准的制定者,致力于提供 足中国市 需求的世界 高性能 片机技 ,在 内 于 先地位, 售网 覆盖全国。在保
量的基 上,以极低的价格和完善的服 得了客 的 期信 。在广受 迎的STC89C51全系列 片机的基 上, 全力推出“1个 /机器周期”的
片机,全面提升8051 片机性能。 迎海内外厂家前来洽 合作!新客
直接 系深圳,以 得更好的技 支持与服 。
1个
/机器周期,超小封装8051 片机
DIP-28(窄体)/ SOP-28
DIP-28/20,SOP-28/20 超小封装 8051
P2.2
P2.3
RST
1
2
3
28
27
26
VDD
RST
1
20
19
18
17
16
VCC
4路
1T
无
法
解
密
P2.1
高
速
RxD/P3.0
TxD/P3.1
XTAL2
2
3
4
5
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P1.4/SS/ADC4
PWM/PCA/CCU
8051 CPU
无
法
解
密
P2.0/PCA2/PWM2
捕
/比
元
RxD/P3.0
TxD/P3.1
4
5
25
24
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
XTAL1
XTAL2
XTAL1
6
23
22
21
20
19
18
17
16
15
P1.5/MOSI/ADC5
P1.4/SS/ADC4
P1.3/ADC3
P1.2/ADC2
P1.1/ADC1
P1.0/ADC0
P3.7/PCA0/PWM0
P2.7
INT0/P3.2
INT1/P3.3
6
7
15
14
P1.3/ADC3
P1.2/ADC2
1/2/4/8/10/12K
高
可
靠
8通道
7
字
Flash
高速A/D
INT0/P3.2
INT1/P3.3
ECI/T0/P3.4
8
ECI/T0/P3.4
PWM1/T1/P3.5
Gnd
8
13
12
11
P1.1/ADC1
P1.0/ADC0
P3.7/PWM0
程序存 器
9
9
10
11
12
13
14
10
PWM1/PCA1/T1/P3.5
UART全双工
异步串行口
ISP / IAP
512/256字
数据 RAM
PWM3/PCA3/P2.4
DIP-20,SOP-20,(超小封装TSSOP-20定 )
STC12C2052、STC12C4052不 A/D
P2.5
VSS
P2.6
STC12C2052AD、STC12C4052AD A/D
Timer 0
Timer 1
1K字
EEPROM
低
功
耗
WDT
SPI
硬件看 狗
TxD/P3.1
P0.0
5
29
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P0.3
超
6
28
27
26
25
24
23
22
21
XTAL2
7
PLCC-32
无法解密
源 控
Port1,Port3
可配置I/O口
XTAL1
8
抗
干
(上 复位,
9
P1.4/SS/ADC4
P1.3/ADC3
P0.2
INT0/P3.2
P0.1
掉
复位)
10
11
12
13
ISP / IAP
INT1/P3.3
ECI/T0/P3.4
PWM1/T1/P3.5
Port2,Port0
可配置I/O口
片内
R/C振 器
P1.2/ADC2
P1.1/ADC1
无
法
解
密
XTAL2
XTAL1
晶体或
振器
大客 特价支持
可配置振 器
CPU
STC12C5410/STC12C2052系列主要性能:
STC12C5410AD系列 片机的理由:
●高速:1 个
:5.5~3.4V,2.0~3.8V(STC12LE5410AD 系列)
●低功耗 :空 模式,掉 模式(可由外部中断 醒)
●工作 率:0~35MHz,相当于普通8051:0~420MHz
--- 可到48MHz,相当于8051: 0~576MHz
:外部晶体或内部RC振 器可 ,在ISP下
/ 机器周期,RISC 型8051 内核,速度比普通8051 快12 倍
★加密性 , 无法解密
●
★
超
抗干
1 、高抗静 (E S D 保
2 、 松 4KV 快速脉冲干 (EFT
3 、 ,不怕 源抖
4 、 温度范 ,-40℃~85℃
5 、I/O 口 特殊
:
)
)
●
程用 程序
置
●12K/10K/8K/6K/4K/2K字 片内Flash程序存 器,擦写次数10万次以上
●512字 片内RAM数据存 器
●芯片内E2PROM功能
●ISP / IAP,在系 可 程/在 用可 程,无需仿真器
●10位ADC,8通道,STC12C2052AD系列 8位ADC
理
6、 片机内部的 源供
7、 片机内部的
8、 片机内部的复位
系
特殊
理
理
理
路
路
特殊
特殊
9、 片机内部的看
狗
路
特殊
理
●4通道捕 /比
元(PWM/PCA/CCU), STC12C2052AD 系列 2通道
4个定 器或4个外部中断(支持上升沿/下降沿中断)
★
★
1 个
/ 机器周期,可用低 晶振,大幅降低 E M I
--- 也可用来再
--- 出口欧美的有力保
超低功耗:
●2 个硬件16 位定 器,兼容普通8051 的定 器。4 路PCA 可再
●硬件看 狗(WDT)
4 个定 器
1 、掉 模式:
2 、空 模式:
典型功耗
典型功耗
<0.1μA
<1.3mA
●高速SPI通信端口
●全双工异步串行口(UART),兼容普通8051的串口
●先 的指令集 构,兼容普通8051指令集
3、正常工作模式: 典型功耗
4、掉 模式可由外部中断 醒,适用于 池
2.7mA - 7mA
供 系 ,如水表、气表、便携
★在系 可 程, 无需 程器, 可 程升
等。
4
8个8位通用工作寄存器(共32个通用寄存器)
有硬件乘法/除法指令
●通用I/O 口(27/23/15 个), 复位后 : 准双向口/ 弱上拉(普通8051
可 置成四种模式:准双向口/ 弱上拉,推挽/ 上拉, 入/ 高阻,开漏
能力均可达到20mA,但整个芯片最大不得超 55mA
I/O 口)
★
★
可送STC-ISP 下
内部集成M A X 8 1 0
程器,1 万片/ 人/ 天
用复位 路,原复位 路可以
保留,也可以不用,不用 R E S E T 脚直接短到地
每个I/O口
网址:www.MCU-Memory.com
技 支持:13922805190
深 圳:Tel:0755-82948409
82948410
38850557
53560138
62634001
Fax:0755-82944243
Fax:020-38850581
Fax:021-53080587
Fax:010-62538683
82905966
免 索取
广州 :Tel:020-38851405
上海 :Tel:021-53560136
北京 :Tel:010-62538687
从网上下
品申
,
真至深圳申 STC 片机
片机、存 器供 商
直接 系深圳以 得更好的技 支持和服
新客
片及ISP 下
/ 程工具
迎海内外厂家前来洽 合作
宏晶科技: 片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南
2
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC 89 系列 片机,高速、高可靠、在
程
提升的是性能,降低的是成本
P4口地址 0E8H
STC89C52RC 系列
STC89C58RD+ 系列 片机的理由:
IAP
1280
字
8/16/32/64k
内置系
ISP 控程序
INT2/P4.3
INT3/P4.2
字
存
SRAM
★加密性 ,无法解密
P4口均可位 址
★
超 抗干 :
1、高抗静 (E S D 保 )
2 、 松 2KV/4KV快速脉冲干 (EFT
P0
)
看 狗
四个8 位
并行端口
3、
4、 温度范 ,-40℃~85℃
5、I/O 口 特殊 理
6、 片机内部的 源供 系
7、 片机内部的
,不怕 源抖
微
理器
P1
P2
P3
P4
8051
高速(0-90M), 高可靠
E2PROM
低功耗,超低价
+
IAP
特殊 理
STC
Data Flash
P4.0— P4.3
四个附送
I/O 端口
路
特殊 理
特殊 理
特殊 理
8、 片机内部的复位 路
9、 片机内部的看 狗 路
(E8H)
掉
模式:< 0.1μA, 空 模式:2mA
√
集成MAX810
★三大降低 片机
外部 磁 射的措施:
用复位 路
A / D (高速)可做:
— — 出口欧美的有力保
1、禁止ALE 出;
按
描
倍速和
双倍速可
“I S P ”
反复 置
池
掉
音量、
UART(串口)
3 个定
双数据
指
A / D
2、如 6
3、 片机
/ 机器周期,外部
振 器增益可
率可降一半;
1/2gain。
器
不加价
等
★超低功耗:
1、掉 模式:
2、空 模式:
典型功耗
典型功耗
<0.1μA
2mA
STC 89 系列 片机 型一 表 超低价
E2P
ROM
字
A
/
D
最 高
看 双
倍
P
4
I
S
P
I
A
P
3、正常工作模式: 典型功耗
4mA - 7mA
降低
Flash RAM
率Hz
3V
型
号
4、掉 模式可由外部中断 醒,适用于 池
EMI
存 器 字
狗 速 口
5V
供 系 ,如水表、气表、便携
等。
★在系 可 程,无需 程器,可 程升
√
√
√
√
√
√
√
√
√
√
√ √ √ √
√ √ √ √
√ √ √ √
√ √ √ √
√ √ √ √
STC 89C51 RC
STC 89C52 RC
STC 89C53 RC
0~80M
0~80M
0~80M
4K
8K
512
512
2K
2K
★可送STC-ISP 下
程器,1 万片/ 人/ 天
★
可供 内部集成MAX810 用复位 路的 片机,
只有D 版本才有内部集成 用复位 路,原复位
路可以保留,也可以不用,不用 RESET 脚直
接短到地
15K
16K
20K
32K
64K
4K
512
STC 89C54 RD+ 0~80M
STC 89C55 RD+ 0~80M
STC 89C58 RD+ 0~80M
STC 89C516 RD+ 0~80M
STC 89LE51 RC
1280
1280
1280
1280
512
16K
16K
16K
√
√
√
√
√
√
√
√
√
√
√
√
√ √ √ √
√ √ √ √
√ √ √ √
√ √ √ √
√ √ √ √
√ √ √ √
√ √ √ √
√ √ √ √
√ √ √
T2/P1.0
1
2
3
4
5
6
7
8
40
39
38
37
36
35
34
33
VCC
T2EX/P1.1
P1.2
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
0~80M
0~80M
2K
2K
P1.3
P1.4
STC 89LE52 RC
8K
512
√
√
√
√
P1.5
P1.6
P1.7
STC 89LE53 RC
0~80M 15K
0~80M 16K
512
STC 89LE54 RD+
1280
1280
1280
16K
16K
RST
RXD/P3.0
TXD/P3.1
INT0/P3.2
INT1/P3.3
T0/P3.4
T1/P3.5
WR/P3.6
RD/P3.7
XTAL2
9
32
31
30
29
28
27
26
25
24
23
22
21
P0.7/AD7
EA
10
11
12
13
14
15
16
17
18
19
20
STC 89LE58 RD+
0~80M
0~80M
32K
64K
ALE/PROG
PSEN
STC 89LE516RD+
√
P2.7/A15
P2.6/A14
P2.5/A13
P2.4/A12
P2.3/A11
P2.2/A10
P2.1/A9
P2.0/A8
√
STC 89LE516AD
0~90M,3.6~1.9V 64K
512
关于 片机 明:<管脚与流行的8051兼容>
大客 超低价
DIP-40,PLCC-44,PQFP-44封装(RC/RD+系列PLCC、PQFP有P4口地址E8H,AD系列P4口 C0H)
XTAL1
VSS
RC/RD+系列PLCC、PQFP多两个外部中断P4.2/INT3,P4.3/INT2。 P4口均可位 址
5V: 5.5V~3.8V乃至3.4V(24M以下);3V: 3.6V~2.4V乃至2.0V,
RC/RD+系列
真正的看 狗,可放心省去外部看 狗,缺省 关 ,打开后无法关 。 倍倍速可反复
“6 / 机器周期”和“12 / 机器周期”可在ISP 程 反复 置,启 后才生效
置
√
√
另 STC89LE516AD、58AD、54AD、52AD、51AD系列 片机, 高速A/D
S TC
片机在
程典
PC /
STC3232,STC232,MAX232,SP232
P1.5
P1.6
P1.7
1
2
3
4
5
6
7
8
9
33
32
31
30
29
28
24
23
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
EA
P4.1
LE/PROG
PSEN
P1.5
P1.6
P1.7
7
8
9
39
38
37
36
35
34
33
32
31
30
29
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
EA
P4.1
ALE/PROG
PSEN
10uF
2
3
Vcc
1
2
3
4
5
6
7
8
C1+
V+
Vcc 16
GND 15
RST
RST
10
11
12
13
14
15
16
17
PLCC-44
RXD/P3.0
INT2/P4.3
TXD/P3.1
INT0/P3.2
INT1/P3.3
T0/P3.4
T1/P3.5
RXD/P3.0
INT2/P4.3
TXD/P3.1
INT0/P3.2
INT1/P3.3
T0/P3.4
T1/P3.5
Gnd
<增加P4 口,
并可位 址>
PC_RxD (COM Pin2)
5
C1-
T1OUT 14
R1IN 13
R1OUT 12
T1IN 11
T2IN 10
PC_TxD (COM Pin3)
MCU_RxD (P3.0)
2.7/A15
P2.6/A14
P2.5/A13
P2.7/A15
P2.6/A14
P2.5/A13
0.1uF
C2+
C2-
10
11
Vcc
Vcc
P3.0
VCC
MCU_TxD (P3.1)
V-
P3.1
89C52RC
XTAL2
0.1uF
T2OUT
R2IN
89C58RD+
10μF
10K
R2OUT
9
89LE52RC
89LE516RD+
GND RESET
XTAL1
另有:STC89LE516AD 系列 片机
技 支持:13922805190
网址:www.MCU-Memory.com
深 圳:Tel:0755-82948409
广州 :Tel:020-38851405
上海 :Tel:021-53560136
北京 :Tel:010-62538687
82948410
38850557
53560138
62634001
Fax:0755-82944243
Fax:020-38850581
Fax:021-53080587
Fax:010-62538683
82905966
免 索取
片机、存 器供 商
从网上下
真至深圳申 STC 片
机 片及ISP 下 / 程工具
品申
,
新客
直接 系深圳以 得更好的技 支持和服
迎海内外厂家前来洽 合作
宏晶科技: 片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南
3
目
第1 章 STC
片机宣
料 ............................................................2
1.1 STC12C5410AD 系列 片机宣
1.2 STC89C51RC/RD+ 系列 片机宣
料 .................................................. 2
料 ................................................ 3
第2 章 STC12C5410AD 系列 片机 体介 ..............................................6
2.1 STC12C5410AD 系列 片机 介 ....................................................... 6
2.2 STC12C5410AD 系列 片机管脚 及封装尺寸 ......................................... 7
2.2.1 STC12C5410AD 系列 片机管脚 ................................................. 7
2.2.2 STC12C5410AD 系列 片机封装尺寸 ............................................. 8
2.3 STC12C5410AD 系列 片机 型一 表 ................................................ 11
2.4 STC12C5410AD 系列 片机命名
.................................................. 12
2.5 STC12C5410AD 系列 片机典型 用 路 .............................................. 13
2.5.1 STC12C5410AD 系列 片机28脚典型 用 路 ..................................... 13
2.5.2 STC12C5410AD 系列 片机20脚典型 用 路 ..................................... 14
2.6 STC12C5410AD系列 片机指令系 与普通8051指令代 完全兼容,但 行速度大幅提升 .. 15
2.7 STC12C5410AD 系列 片机特殊功能寄存器映像 ........................................ 19
2.8 STC12C5410AD 系列 片机中断 ...................................................... 23
2.9 STC12C5410AD系列 片机定 器0/1及UART串口的速度与普通8051兼容,但也可快12倍 .. 25
2.10 STC12C5410AD 系列 片机系 工作
2.11 STC12C5410AD 系列 片机系
,ISP下
程 可
内部
/外部
.... 26
分 寄存器,可将系
分成 低 率工作........ 26
第3 章 STC12C5410AD 系列 片机的I/O 口 构及其功能.................................27
3.1 I/O 口各种不同的工作模式及配置介 ................................................27
3.2 I/O 口各种不同的工作模式 构框 ..................................................28
3.3 一种典型三极管控制 路............................................................29
第4 章 STC12C5410AD 系列 片机的看 狗及 件复位 ...................................30
4.1 STC12C5410AD 系列 片机看 狗 用及
4.1.1 看 狗 用介 ............................................................... 30
4.1.2 一个完整的看 狗 程序,在下 板上可以直接 ............................. 32
4.2 如何用 件 系 复位............................................................ 33
程序 ...................................... 30
第5 章 STC12C5410AD 系列 片机的EEPROM 的 用......................................34
5.1 IAP 及EEPROM 用 ................................................................. 34
5.2 IAP/EEPROM
5.3 一个完整的IAP/EEPROM
第6 章 STC12C5410AD 系列 片机的定 器的使用及
介............................................................... 36
程序,在下 板上可以直接
............................ 39
程序.............................43
6.1 定 器0/1的介 .................................................................. 43
6.2 定 器0/1 用程序 例............................................................ 47
6. 3 用定 器1 做波特率 生器(一个完整的
程序,在下 板上可以直接
)........... 52
第7 章 STC12C5410AD 系列 片机的A/D
功能 .......................................59
7.1 A/D
寄存器 .................................................................... 59
用 路.............................................................. 60
7.2 典型A/D
7.3 一个完整的A/D
程序,在下 板上可以直接
................................... 61
第8 章 STC12C5410AD 系列 片机的PCA/PWM 的 用 ....................................65
8.1 PCA/PWM 寄存器列表..............................................................65
8.2 PCA/PWM 功能介 ................................................................67
8.3 PCA 功能 展外部中断的示例程序..................................................72
8.4 PCA 功能做定 器的示例程序(可
8.5 PWM 出C 言示例 ..............................................................81
8.6 PCA/PWM新增特殊功能寄存器声明( )..........................................82
8.7 PWM 出 言示例 ............................................................84
8.8 PCA的高速脉冲 出程序示例( 出125KHz的方波).................................87
8.9 利用定 器0的溢出作 PCA模 的 入, 率PWM并用PCA再 定 器 .91
第9 章 STC12C5410AD 系列 片机的掉 模式 ...........................................98
9.1 PCON 寄存器的高 用,上 复位 志, 入掉 模式.............................. 98
入掉 模式后由外部中断0和外部中断1 醒示例程序 .............................. 99
入掉 模式前的I/O 口 置特 注意事 ( A 版本, 供 的C 版本无此 ) 101
4个16位定 器) ...............................76
可
9.2
9.3
第10 章 STC12C5410AD 系列 片机 气特性 .......................................... 102
第11 章 STC12C5410AD 系列 片机开 / 程工具 明 ................................ 104
11.1 在系 可 程(ISP)原理,官方演示工具使用 明 ............................... 104
11.1.1 在系 可 程(ISP)原理使用 明 .......................................... 104
11.1.2 在系 可 程(ISP)典型 用 路 ........................................ 105
11.1.3
端的ISP控制 件界面使用 明 .......................................... 106
11.1.4 宏晶科技的ISP下
程工具硬件使用 明 .................................... 107
器,如何用宏晶科技的ISP下 板做RS-232通信 ... 107
11.1.5 用 板如果没有RS-232
11.2
第12 章 附 ....................................................................... 109
12.1 附 A 数据RAM存 器 程序 ................................................. 109
12.1.1 内部数据RAM的介 ......................................................... 109
12.1.2 内部数据RAM 址 程序 ................................................... 110
12.2 附 B 串行外 接口(SPI)及 程序.......................................... 111
器/
器, 程器,仿真器................................................ 108
12.2.1 串行外 接口(SPI)功能描述.............................................. 111
12.2.2 串行外 接口(SPI)示例程序( 主 从).................................. 118
12.2.3 串行外 接口(SPI)示例程序( 主多从).................................. 125
12.3 附 C 用串行口 展I/O接口 .................................................... 133
12.4 附 D STC12C2052AD系列 片机 介............................................. 135
12.5 附 E 利用STC 片机普通I/O口
LCD 示 .................................... 137
12.6 附 F 一个I/O口 光二极管并 描按 ...................................... 144
12.7 附 G 典型MCU/DSP/uC复位、 源 控、外部看 狗 用 路..................... 145
12.8 附 H STC高性能SRAM 型一 表 ............................................... 146
12.9 附 I 提供 4000V快速脉冲干
12.10 附 J 用注意事 .......................................................... 148
12.12 附 K 料升 史 忘 ..................................................... 149
服 ....................................... 147
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 1T 片机 介
STC12C5410系列 片机是
/机器周期(1T)的兼容8051内核 片机,是高速/低功耗的新一代
8051 片机,全新的流水 /精 指令集 构,内部集成MAX810 用复位 路。
特 点 :
1. 增 型 1T 流水 /精 指令集 构 8051 CPU
2. 工作
3. 工作 率范 :0 - 35 MHz ,相当于普通8051的 0~420MHz.
4. 用 用程序空 12K / 10K / 8K / 6K / 4K / 2K 字
:5.5V - 3.4V (5V 片机) / 3.8V - 2.0V (3V 片机)
工作 率可达48MHz.
5. 片上集成 512 字 RAM
6. 通用I/O口(27/23个), 复位后 : 准双向口/弱上拉(普通8051
可 置成四种模式:准双向口/ 弱上拉,推挽/ 上拉,
I/O口)
入/ 高阻,开漏
每个I/O口
7. ISP(在系 可 程)/IAP(在 用可 程), 无需 用 程器
可通 串口(P3.0/P3.1)直接下 用 程序,数秒即可完成一片
8. EEPROM 功能
能力均可达到20mA,但整个芯片最大不得超 55mA
9. 看 狗
10.内部集成MAX810 用复位 路(外部晶体20M 以下 ,可省外部复位 路)
11.
源:外部高精度晶体/
用 在下 用 程序 ,可
常温下内部R/C 振 器 率 :5.2MHz ~ 6.8MHz
精度要求不高 ,可 使用内部 ,但因 有温漂,
12.共2个16位定 器/ 数器
13.外部中断2路,下降沿中断或低 平触 中断,Power Down 模式可由外部中断低 平触 中断方式 醒
14.PWM(4 路)/PCA(可 程 数器 列), 也可用来再 4 个定 器
--- 也可用来再 4个定 器或4个外部中断(上升沿中断/下降沿中断均可支持)
,内部R/C 振 器
是使用内部R/C振 器 是外部晶体/
是4MHz ~ 8MHz
15.ADC, 10 位精度ADC,共8路
16.通用异步串行口(UART)
17.SPI同步通信口, 主模式/从模式
18.工作温度范 : 0 - 75℃ / -40 - +85℃
19.封装: PDIP-28,SOP-28,PDIP-20,SOP-20,PLCC-32,TSSOP-20(超小封状,定 )
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 6
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 1T 片机管脚
P2.2
1
28
27
26
25
24
23
22
21
20
19
18
17
16
15
VDD
P2.2
1
28
27
26
25
24
23
22
21
20
19
18
17
16
15
VDD
P2.3
2
P2.1
P2.3
2
P2.1
RST
RxD/P3.0
3
P2.0/CEX2/PCA2/PWM2
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P1.4/SS/ADC4
P1.3/ADC3
RST
RxD/P3.0
3
P2.0/CEX2/PCA2/PWM2
4
4
P1.7/SCLK
P1.6/MISO
P1.5/MOSI
P1.4/SS
P1.3
TxD/P3.1
5
TxD/P3.1
5
XTAL2
6
XTAL2
6
XTAL1
7
XTAL1
7
INT0/P3.2
8
INT0/P3.2
8
INT1/P3.3
9
P1.2/ADC2
INT1/P3.3
9
P1.2
ECI/T0/P3.4
PWM1/PCA1/CEX1/T1/P3.5
PWM3/PCA3/CEX3/P2.4
P2.5
10
11
12
13
14
P1.1/ADC1
ECI/T0/P3.4
PWM1/PCA1/CEX1/T1/P3.5
PWM3/PCA3/CEX3/P2.4
P2.5
10
11
12
13
14
P1.1
P1.0/ADC0
P1.0
P3.7/CEX0/PCA0/PWM0
P2.7
P3.7/CEX0/PCA0/PWM0
P2.7
VSS
P2.6
VSS
P2.6
STC12C5410AD(有A/D
)
STC12C5410(无A/D
)
RST
RxD/P3.0
TxD/P3.1
1
2
3
4
5
20
19
18
17
16
15
14
13
12
11
VCC
RST
RxD/P3.0
TxD/P3.1
1
2
3
4
5
20
19
18
17
16
15
14
13
12
11
VCC
P1.7/SCLK
P1.6/MISO
P1.5/MOSI
P1.4/SS
P1.3
P1.2
P1.1
P1.0
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P1.4/SS/ADC4
P1.3/ADC3
P1.2/ADC2
P1.1/ADC1
P1.0/ADC0
XTAL2
XTAL1
XTAL2
XTAL1
INT0/P3.2
INT1/P3.3
ECI/T0/P3.4
PWM1/CEX1/T1/P3.5
6
7
8
9
INT0/P3.2
INT1/P3.3
ECI/T0/P3.4
PWM1/PCA1/CEX1/T1/P3.5
Gnd
6
7
8
9
Gnd
10
P3.7/CEX0/PWM0
10
P3.7/CEX0/PCA0/PWM0
STC12C5410AD(有A/D
)
STC12C5410(无A/D
)
TxD/P3.1
5
29
28
27
26
25
24
23
22
21
P1.7/SCLK/ADC7
P0.0
XTAL2
6
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P0.3
7
XTAL1
8
PLCC-32
9
P1.4/SS/ADC4
P1.3/ADC3
P0.2
INT0/P3.2
P0.1
10
11
12
13
INT1/P3.3
ECI/T0/P3.4
PWM1/PCA1/CEX1/T1/P3.5
P1.2/ADC2
P1.1/ADC1
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 7
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD系列 1T 片机封装尺寸
32-PIN PLASTIC LEAD CHIP CARRIER (PLCC)
0.485 inch(12.32 mm)
0.495 inch(12.57 mm)
Optional Pin #1
Identifier
0.106 (2.69)
0.112 (2.84)
0.447(11.35)
0.453(11.51)
0.042(1.07)
0.048(1.22)
0.023(0.58)
×30°
0.029 (0.74)
0.013(0.33)
0.021(0.53)
0.042(1.07)
0.585(14.86)
0.595(15.11)
0.547(13.89)
0.553 (14.05)
0.048(1.22)
0.490(12.45)
0.530(13.46)
0.026(0.66)
0.032 (0.81)
0.400(10.16)
BSC
0.050(1.27)
BSC.
0.015(0.38)Min
0.075 (1.91)
0.095 (2.41)
0.050(1.27)
BSC.
0.125 (3.18)
0.140 (3.56)
28-PIN SMALL OUTLINE PACKAGE (SOP)
28-PIN PLASTIC DUAL-IN-LINE
PACKAGE (PDIP)
0.020 (0.508)
0.014 (0.350)
1.445 (36.70)
1.455 (36.96)
PIN1
0.280 (7.11)
0.240 (6.10)
0.299 (7.60) 0.420 (10.7)
0.291 (7.39) 0.393 (9.98)
0.090(2.29)
MAX
PIN1
1.300(33.02) REF
0.210(5.33)
MAX
0.005(0.127)
MIN
0.050 (1.270)
0.703 (17.856)
SEATING
PLANE
0.015(0.381)MIN
0.150 (3.81)
0.115 (2.92)
0.112 (2.844)
0.693 (17.602)
0.100 (2.540)
0.022 (0.559)
0.014 (0.356)
0.070(1.78)
0.045(1.13)
0.100 (2.54)
0.014 (0.350)
0.004 (0.102)
0.325(8.26)
0.300(7.62)
0
REF
10
0.013 (0.330)
0.009 (0.229)
0
0.014(0.356)
0.008(0.203)
REF
15
0.430(10.92)MAX
0.0484 (1.228)
0.0276 (0.700)
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 8
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
20S, 20-lead, 0.300" Wide, Plastic Gull WIng Small
Outline (SOIC-20 / SOP-20)
20P3, 20-lead, 0.300" Wide, Plastic Dual Inline
Package(PDIP-20)
Dimensions in Inches and (Millimeters)
Dimensions in Inches and (Millimeters)
JEDEC STANDARD MS-001 AD
0.020 (0.508)
0.013 (0.330)
1.060 (26.9)
0.980 (24.9)
PIN1
0.299 (7.60)
0.291 (7.39)
0.280 (7.11)
0.240 (6.10)
0.420 (10.7)
0.393 (9.98)
PIN1
0.090(2.29)
MAX
0.900(22.86) REF
0.050 (1.27)
0.210(5.33)
MAX
0.005(0.127)
MIN
SEATING
PLANE
0.513 (13.0)
0.497 (12.6)
0.105 (2.67)
0.092 (2.34)
0.015(0.381)MIN
0.150 (3.81)
0.115 (2.92)
0.022 (0.559)
0.014 (0.356)
0.070(1.78)
0.045(1.13)
0.012 (0.305)
0.003 (0.076)
0.100 (2.54)
0.325(8.26)
0.300(7.62)
0
REF
8
0.013 (0.330)
0.009 (0.229)
0
0.014(0.356)
0.008(0.203)
REF
15
0.035 (0.889)
0.015 (0.381)
0.430(10.92)MAX
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 9
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD系列的TSSOP-20封装需
PACKAGE:PLASTIC SHRINK SMALL OUTLINE (TSSOP-20,6.4mm ×6.4mm)
D(6.40mm~6.60mm)
Φ
e(0.65mm)
B(0.19mm~0.30mm)
L(0.50mm~0.75mm)
DIMENSIONS
in inches (mm)
Minimum/Maximum
20-PIN
- /0.043
A
(- /1.10)
0.002/0.006
A1
(0.05/0.15mm)
0.007/0.012
B
D
(0.19/0.30mm)
0.252/0.260
(6.40/6.60mm)
0.169/0.177
E
(4.30/4.50mm)
0.026 BSC
e
(0.65mm BSC)
0.126 BSC
(3.20mm BSC)
E2
L
0.020/0.030
(0.50/0.75mm)
Φ
0°/8°
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 10
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机 型一 表
Flash
程序 SRAM
(V) 存 器 字
字
定
器
看
狗
S
P
I
工作
PCA
PWM
内置 EEP
复位 ROM
封装
20-Pin
封装 封装
28-Pin 32-Pin
UART
A/D I/O
STC12C5401
5.5 - 3.4
5.5 - 3.4
1K
1K
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
512 2
有 4路
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
有 4路 27/23 有
27/23 有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
有 有 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5401AD
STC12C5402
5.5 - 3.4 2K
5.5 - 3.4 2K
5.5 - 3.4 4K
5.5 - 3.4 4K
5.5 - 3.4 6K
5.5 - 3.4 6K
5.5 - 3.4 8K
5.5 - 3.4 8K
5.5 - 3.4 10K
5.5 - 3.4 10K
5.5 - 3.4 12K
5.5 - 3.4 12K
STC12C5402AD
STC12C5404
STC12C5404AD
STC12C5406
STC12C5406AD
STC12C5408
STC12C5408AD
STC12C5410
STC12C5410AD
STC12C5412
有 4路 有 27/23 有
有 4路 有 27/23 有
有 4路 有 27/23 有
STC12C5412AD
STC12LE5401
2.0 - 3.8
1K
1K
有 4路
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
有 4路 27/23 有
有 4路 有 27/23 有
27/23 有
STC12LE5401AD 2.0 - 3.8
STC12LE5402
STC12LE5402AD 2.0 - 3.8 2K
STC12LE5404 2.0 - 3.8 4K
STC12LE5404AD 2.0 - 3.8 4K
STC12LE5406 2.0 - 3.8 6K
STC12LE5406AD 2.0 - 3.8 6K
STC12LE5408 2.0 - 3.8 8K
STC12LE5408AD 2.0 - 3.8 8K
STC12LE5410 2.0 - 3.8 10K
STC12LE5410AD 2.0 - 3.8 10K
STC12LE5412 2.0 - 3.8 12K
STC12LE5412AD 2.0 - 3.8 12K
2.0 - 3.8 2K
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 11
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机 命名
STC12xx54xx xx — 35x-xxxx xx
管脚数
如20,28,32
何种封装:如
PDIP,SOP,PLCC,TSSOP
工作温度范 :
I:工 ,-40℃ ~ +85 ℃
C:商 , 0℃ ~ 70℃
工作 率:
12:工作 率可到12MHz
35:工作 率可到35MHz
48:工作 率可到48MHz
AD:有A/D
功能
无AD 字 , 无A/D
程序空 大小, 如:
04是4K字 , 08 是8K字
10 是10K 字 ,12 是12K 字
RAM 是512 字 ,PCA/PWM是4 路
C: 5.5V~3.4V
LE:2.0V~3.8V
LV:2.0V~3.8V,超低功耗 ,工作 率2MHz :
正常工作 流 < 2.7mA;
空 模式 流 < 1.3mA;
掉 模式 流 < 0.1 μA
STC 1T 8051,同 的工作 率 ,速度是普通8051的8~12倍
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 12
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机 典型 用 路(28Pin)
就可以下 程序
---- 通 RS-232
器 接
Vcc
PC /
串口
STC3232,STC232,MAX232,SP232
通
端的
10μF
Vcc
2
3
1
2
3
4
5
6
7
8
C1+
V+
Vcc 16
GND 15
STC-ISP 件
控制下
0.1uF
0.1uF
Gnd
PC_RxD (COM Pin2)
5
C1-
T1OUT 14
R1IN 13
PC_TxD (COM Pin3)
“用 程序”
到STC 片机
C2+
C2-
USB +5V
R1OUT 12
T1IN 11
建 用 在系 上
留此接口,可方便
在 下 用 程序
V-
USB+5V T1OUT R1IN GND
0.1uF
SW1
T2OUT
R2IN
T2IN 10
R2OUT
9
Power On
源开关
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB1
晶振 率在20M以下 :
可以不用C1,R1可 0~10K
不 建 保留R/C复位 路
Vcc
28 Pin
Vcc
1K
1
2
3
4
P2.2
VDD 28
P2.1 27
1K
10μF
C1
P2.3
RST
P2.0/PCA2/PWM2 26
P1.7/SCLK/ADC7 25
10K
R1
RxD/P3.0
5
6
7
8
9
TxD/P3.1
XTAL2
P1.6/MISO/ADC6 24
P1.5/MOSI/ADC5 23
P1.4/SS/ADC4 22
P1.3/ADC3 21
P1.2/ADC2 20
P1.1/ADC1 19
P1.0/ADC0 18
P3.7/PCA0/PWM0 17
P2.7 16
<33pF
<33pF
10μF
0.1μF
XTAL1
INT0/P3.2
INT1/P3.3
10 ECI/T0/P3.4
11 PWM1/PCA1/T1/P3.5
12 PWM3/PCA3/P2.4
13 P2.5
14 VSS
P2.6 15
如果使用内部 R / C 振
器
(4MHz~8MHz,制造 差),XTAL1和
XTAL2脚浮空.
如果外部
率在33MHz以上 ,
使用 程
座就是 程器
建 直接使用外部有源晶振,
从
XTAL1脚 入,XTAL2脚必 浮空.
此 路已做成一个STC12C5410AD 系列 片机 ISP 下
RS-232 平
程工具,可直接 送 客
用 在自己的目 系 上,如将P3.0/P3.1
232串口,就可以在系 程/升 用 件。建 如果用 板上无RS-232 平
座,含 Gnd / P3.1 / P3.0 / Vcc 四个信号 ,当然如能引出Gnd / P3.1 / P3.0 / Vcc / P1.1 /
P1.0 六个信号 最好, 就可以在用 系 上直接 程了。关于ISP 程的原理及 用指南
附 部分“STC12C5410AD系列 片机 ISP 程 原理 工具使用 明”部分。另外我 有 准化的 程
下 工具,用 可以在上面 程后再插到目 系 上,也可以借用它上面的RS-232 平 器 接到
,以做下 程之用。 程一个芯片大致需几秒 ,速度比普通的通用 程器快很多,故无
用 程器。
端STC-ISP 件从网站www.MCU-Memory.com下
器
后 接到
的普通RS-
器, 引出一个插
通
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 13
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机 典型 用 路(20Pin)
就可以下 程序
----通 RS-232
器 接
Vcc
PC /
串口
STC3232,STC232,MAX232,SP232
通
端的
10μF
Vcc
2
3
1
2
3
4
5
6
7
8
C1+
V+
Vcc 16
GND 15
STC-ISP 件
0.1uF
0.1uF
Gnd
控制下
PC_RxD (COM Pin2)
5
C1-
T1OUT 14
R1IN 13
PC_TxD (COM Pin3)
“用 程序”
到STC 片机
C2+
C2-
USB +5V
R1OUT 12
T1IN 11
建 用 在系 上
留此接口,可方便
在 下 用 程序
V-
0.1uF
SW1
T2OUT
R2IN
T2IN 10
USB+5V T1OUT R1IN GND
R2OUT
9
Power On
源开关
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
晶振 率在20M以下 :
USB1
可以不用C1,R1可 0~10K
不 建 保留R/C复位 路
Vcc
20 Pin
R1
10K
Vcc
10μF
C1
1 RST
VCC 20
P1.7/SCLK/ADC7 19
P1.6/MISO/ADC6 18
P1.5/MOSI/ADC5 17
P1.4/SS/ADC4 16
P1.3/ADC3 15
1K
1K
2 RxD/P3.0
3 TxD/P3.1
4 XTAL2
<33pF
<33pF
10μF
0.1μF
5 XTAL1
6 INT0/P3.2
7 INT1/P3.3
8 ECI/T0/P3.4
P1.2/ADC2 14
P1.1/ADC1 13
9 PWM1/PCA1/T1/P3.5 P1.0/ADC0 12
10 Gnd
P3.7/PCA0/PWM0 11
如果使用内部 R / C 振
器
(4MHz~8MHz,制造 差),XTAL1和
XTAL2脚浮空.
使用 程
座就是 程器
如果外部
率在33MHz以上 ,
建 直接使用外部有源晶振,
从
XTAL1脚 入,XTAL2脚必 浮空.
此 路已做成一个STC12C5410AD 系列 片机 ISP 下
程工具,可直接 送 客
用 在自己的目 系 上,如将P3.0/P3.1
RS-232 平
器
后 接到
的普通RS-
232串口,就可以在系 程/升 用 件。建 如果用 板上无RS-232 平
器, 引出一个插
座,含 Gnd / P3.1 / P3.0 / Vcc 四个信号 ,当然如能引出Gnd / P3.1 / P3.0 / Vcc / P1.1 /
P1.0 六个信号 最好, 就可以在用 系 上直接 程了。关于ISP 程的原理及 用指南
附 部分“STC12C5410AD系列 片机 ISP 程 原理 工具使用 明”部分。另外我 有 准化的 程
下 工具,用 可以在上面 程后再插到目 系 上,也可以借用它上面的RS-232 平 器 接到
,以做下 程之用。 程一个芯片大致需几秒 ,速度比普通的通用 程器快很多,故无
用 程器。
端STC-ISP 件从网站www.MCU-Memory.com下
通
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 14
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
指令系 分 及与普通8051指令 行 比
效率大幅提升
---与8051指令代 完全兼容,但 行的
---其中INC DPTR指令的 行速度大幅提升24倍
---共有12条指令,一个
就可以 行完成,平均速度快8~12倍
如果按功能分 ,STC89/12 系列 片机指令系 可分 :
1.数据 送 指令;
2.算 操作 指令;
3.
操作 指令;
4.控制 移 指令;
5.布
量操作 指令。
按功能分 的指令系 表如下表所示。
数据 送 指令
机器周期
机器周期 效率
12
/
1
/
助 符
功能 明
字 数
提升
所需
所需
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
A,Rn
寄存器内容送入累加器
1
2
1
2
1
2
2
2
2
12
1
倍
12
A,direct
A,@Ri
直接地址 元中的数据送入累加器
接RAM中的数据送入累加器
立即送入累加器
12
12
12
12
24
12
12
24
2
2
2
2
4
2
3
3
倍
6
倍
6
倍
6
倍
6
倍
6
倍
6
倍
4
倍
8
A,#data
Rn,A
累加器内容送入寄存器
Rn,direct
Rn,#data
direct,A
direct,Rn
直接地址 元中的数据送入寄存器
立即数送入寄存器
累加器内容送入直接地址 元
寄存器内容送入直接地址 元
直接地址 元中的数据送入另一个直接
地址 元
MOV
direct,direct
3
24
4
倍
6
MOV
MOV
MOV
MOV
MOV
MOV
direct,@Ri
接RAM中的数据送入直接地址 元
2
3
1
2
2
3
24
24
12
24
12
24
4
3
3
3
3
3
倍
6
倍
8
倍
4
倍
8
倍
4
倍
8
direct,#data 立即数送入直接地址 元
@Ri,A
累加器内容送 接RAM 元
直接地址 元数据送入 接RAM 元
立即数送入 接RAM 元
@Ri,direct
@Ri,#data
DPTR,#data16 16位立即数送入地址寄存器
以DPTR 基地址 址 址 元中的数据
倍
MOVC
MOVC
A,@A+DPTR
A,@A+PC
1
1
24
24
4
4
6
6
送入累加器
以PC 基地址 址 址 元中的数据送
入累加器
倍
MOVX
MOVX
MOVX
MOVX
PUSH
POP
A,@Ri
外部RAM(8位地址)送入累加器
外部RAM(16位地址)送入累加器
累加器送外部RAM(8位地址)
累加器送外部RAM(16位地址)
直接地址 元中的数据 入堆
出 送直接地址 元
1
1
1
1
2
2
1
2
1
1
24
24
24
24
24
24
12
12
12
12
3
3
3
3
4
3
3
4
4
4
倍
8
倍
8
倍
8
倍
8
倍
6
倍
8
倍
4
倍
3
倍
3
倍
3
A,@DPTR
@Ri,A
@DPTR ,A
direct
direct
A,Rn
XCH
寄存器与累加器交
XCH
A,direct
A,@Ri
直接地址 元与累加器交
接RAM与累加器交
XCH
XCHD
A,@Ri
接RAM的低半字 与累加器交
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 15
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
算 操作 指令
周期
周期 提升
效率
所需
12
所需
12
/
1
/
助 符
功能 明
寄存器内容加到累加器
字 数
ADD
ADD
ADD
ADD
ADDC
ADDC
ADDC
ADDC
SUBB
SUBB
SUBB
SUBB
INC
INC
A,Rn
A,direct
A,@Ri
A,#data
A,Rn
A,direct
A,@Ri
A,#data
A,Rn
A,direct
A,@Ri
A,#data
A
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
1
1
1
2
1
1
1
1
1
2
3
3
2
2
3
3
2
2
3
3
2
2
3
4
4
2
3
4
4
1
4
5
4
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
6
直接地址 元中的数据加到累加器
接RAM中的数据加到累加器
立即加到累加器
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
24
48
48
12
4
4
6
寄存器内容
直接地址 元的内容
接RAM内容 位加到累加器
立即数 位加到累加器
位加到累加器
6
4
位加到累加器
4
6
6
累加器 借位减寄存器内容
累加器 借位减直接地址 元的内容
累加器 借位减 接RAM中的内容
累加器 借位减立即数
累加器加1
4
4
6
6
4
Rn
寄存器加1
INC
INC
DEC
DEC
direct
@Ri
直接地址 元加1
接RAM 元加1
3
3
6
A
累加器减1
Rn
寄存器减1
4
3
DEC
DEC
INC
MUL
direct
@Ri
直接地址 元减1
接RAM 元减1
3
DPTR
地址寄存器DPTR加1
A乘以B
倍
倍
24
12
9.6
AB
DIV
AB
A除以B
倍
DA
A
累加器十 制 整
倍
3
操作 指令
周
周期 提升
效率
所需
12
/
1
/
助 符
功能 明
字 数
期所需
12
12
12
12
12
24
12
12
12
12
12
24
12
12
12
12
12
24
12
12
12
12
12
12
12
ANL
ANL
ANL
ANL
ANL
ANL
ORL
ORL
ORL
ORL
ORL
ORL
XRL
XRL
XRL
XRL
XRL
XRL
CLR
CPL
RL
A,Rn
累加器与寄存器相“与”
1
2
1
2
2
3
1
2
1
2
2
3
1
2
1
2
2
3
1
1
1
1
1
1
1
2
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
倍
6
4
4
6
3
6
6
4
4
6
3
6
6
4
4
6
3
6
A,direct
A,@Ri
A,#data
direct,A
direct,#data
A,Rn
累加器与直接地址 元相“与”
累加器与 接RAM 元相“与”
累加器与立即数相“与”
3
3
2
4
4
2
3
3
2
4
4
2
3
3
2
4
4
1
2
1
1
1
1
1
直接地址 元与累加器相“与”
直接地址 元与立即数相“与”
累加器与寄存器相“或”
A,direct
A,@Ri
A,#data
direct,A
direct,#data
A,Rn
累加器与直接地址 元相“或”
累加器与 接RAM 元相“或”
累加器与立即数相“或”
直接地址 元与累加器相“或”
直接地址 元与立即数相“或”
累加器与寄存器相“异或”
累加器与直接地址 元相“异或”
累加器与 接RAM 元相“异或”
累加器与立即数相“异或”
直接地址 元与累加器相“异或”
直接地址 元与立即数相“异或”
累加器清“0”
A,direct
A,@Ri
A,#data
direct,A
direct,#data
A
倍
12
A
累加器求反
倍
6
A
累加器循 左移
倍
倍
倍
倍
倍
12
12
12
12
12
RLC
RR
A
累加器
位位循 左移
A
累加器循 右移
RRC
SWAP
A
累加器
位位循 右移
A
累加器半字 交
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 16
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
控制 移 指令
周期
周期 提升
效率
所需
12
所需
24
/
1
/
助 符
功能 明
(短) 用子程序
字 数
ACALL
CALL
addr11
addr16
2
3
1
1
2
3
2
1
2
2
3
3
3
3
3
3
1
6
6
4
4
3
4
3
3
3
3
5
4
4
5
4
5
1
倍
4
倍
4
倍
6
倍
6
倍
8
倍
6
倍
8
倍
8
倍
8
倍
8
用子程序
子程序返回
中断返回
(短) 移
移
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
12
L
RET
RETI
AJMP
addr11
addr16
re1
JMP
L
SJMP
JMP
相
移
@A+DPTR
re1
相 于DPTR的 接 移
累加器 零 移
JZ
JNZ
re1
累加器非零 移
CJNE
CJNE
CJNE
CJNE
DJNZ
DJNZ
NOP
A,direct,re1 累加器与直接地址 元比 ,不相等
移
倍
4.8
A,#data,re1
累加器与立即数比 ,不相等
移
移
倍
6
倍
6
Rn,#data,re1 寄存器与立即数比 ,不相等
@Ri,#data,re1
Rn,re1
接RAM 元与立即数比 ,不相等
移
倍
4.8
寄存器减1,非零 移
直接地址 元减1,非零 移
空操作
倍
6
direct,re1
倍
4.8
倍
12
布
量操作 指令
功能 明
周期
周期 提升
效率
所需
12
所需
12
/
1
/
助 符
字 数
CLR
CLR
SETB
SETB
CPL
CPL
ANL
ANL
ORL
ORL
MOV
MOV
JC
C
清 位位
1
2
1
2
1
2
2
2
2
2
2
2
2
2
3
3
3
1
4
1
4
1
4
3
3
3
3
3
3
3
3
4
4
5
倍
12
0
bit
清 直接地址位
0
置 位位
1
置 直接地址位
1
位位求反
12
12
12
12
12
24
24
24
24
12
24
24
24
24
24
24
倍
3
C
倍
12
bit
倍
3
C
倍
12
bit
直接地址位求反
倍
3
倍
8
倍
8
倍
8
倍
8
倍
4
倍
8
倍
8
倍
8
倍
6
倍
6
C,bit
C,bit
C,bit
C,bit
C,bit
bit,C
re1
位位和直接地址位相“与”
位位和直接地址位的反 相“与”
位位和直接地址位相“或”
位位和直接地址位的反 相“或”
直接地址位送入 位位
位位送入直接地址位
位位 1
移
移
JNC
JB
re1
位位 0
bit,re1
bit,re1
bit,re1
直接地址位 1
直接地址位 0
直接地址位 1
移
JNB
JBC
移
移, 位清0
倍
4.8
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 17
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
指令 行速度效率提升
:
指令系 共包括111 条指令,其中:
行速度快24倍的
行速度快12倍的
共1条
共12条
共1条
行速度快9.6倍的
行速度快8倍的
共21条
共37条
共4条
行速度快6倍的
行速度快4.8倍的
行速度快4倍的
共21条
共14条
行速度快3倍的
根据 指令的使用 率分析
下运行速度提升了8~12倍。
,STC12系列 1T 的8051 片机比普通的8051 片机在同 的工作 率
指令 行
数
(供参考):
指令系 共包括111 条指令,其中:
1个
2个
3个
4个
5个
6个
就可 行完成的指令
就可 行完成的指令
就可 行完成的指令
就可 行完成的指令
就可 行完成的指令
就可 行完成的指令
共12条
共20条
共40条
共32条
共5条
共2条
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 18
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
特殊功能寄存器映像 SFR Mapping
Bit
Addressable
Non Bit Addressable
0/8
1/9
CH
2/A
3/B
4/C
5/D
6/E
7/F
CCAP0H CCAP1H
CCAP2H
CCAP3H
F8h
F0h
E8h
E0h
D8h
FFh
F7h
EFh
E7h
DFh
0000,0000 0000,0000 0000,0000 0000,0000 0000,0000
B
0000,0000
PCA_PWM0 PCA_PWM1 PCA_PWM2 PCA_PWM3
xxxx,xx00 xxxx,xx00 xxxx,xx00 xxxx,xx00
CL CCAP0L
CCAP1L
CCAP2L
CCAP3L
0000,0000 0000,0000 0000,0000 0000,0000 0000,0000
ACC
WDT_CONTR ISP_DATA ISP_ADDRH ISP_ADDRL ISP_CMD ISP_TRIG ISP_CONTR
0000,0000 0x00,0000 1111,1111 0000,0000 0000,0000 xxxx,xx00 xxxx,xxxx 0000,1000
CCON CMOD CCAPM0 CCAPM1 CCAPM2 CCAPM3
00xx,0000 0xxx,x000 x000,0000 x000,0000 x000,0000 x000,0000
PSW
0000,0000
D0h
C8h
C0h
D7h
CFh
C7h
ADC_CONTR ADC_DATA CLK_DIV
0000,0000 0000,0000 xxxx,x000
IP
SADEN
ADC_LOW2
0000,0000
B8h
B0h
A8h
A0h
98h
90h
88h
80h
BFh
B7h
AFh
A7h
9Fh
97h
8Fh
87h
x000,0000 don't use
P3 P3M0
1x11,1111 0000,0000 0000,0000
IE SADDR
P3M1
IPH
x000,0000
0000,0000 don't use
P2
1111,1111
TEST_WDT
don't use
SCON
SBUF
0000,0000 xxxx,xxxx
P1 P1M0
1111,1111 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000
TCON TMOD TL0 TL1 TH0 TH1 AUXR
0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,00xx
P0 SP DPL DPH SPSTAT SPCTL SPDAT
xxxx,1111 0000,0111 0000,0000 0000,0000 00xx,xxxx 0000,0100 0000,0000 0011,0000
0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F
P1M1
P0M0
P0M1
P2M0
P2M1
PCON
特
出部分 在Intel 8052 基 上新增加的特殊功能寄存器,一般用 可不管
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 19
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
STC12C5410AD系列 8051 片机内核特殊功能寄存器 C51 Core SFRs
Fax: 0755-82944243
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset Value
0000,0000
0000,0000
ACC
B
E0h Accumulator
F0h B Register
PSW
SP
D0h Program Status Word
81h Stack Pointer
CY AC F0 RS1 RS0 OV
F1 P 0000,0000
0000,0111
DPL
DPH
82h Data Pointer Low Byte
83h Data Pointer High Byte
0000,0000
0000,0000
STC12C5410AD系列8051 片机系 管理特殊功能寄存器System Management SFRs
Mnemonic Add Name
7
6
5
4
3
2
1
0
IDL
-
Reset value
0011,0000
0000,00xx
xxxx,x000
PCON
AUXR
87h Power Control
SMOD
SMOD0
LVDF
POF
GF1
GF0
PD
8Eh Auxiliary Register T0x12 T1x12 UART_M0x6 EADCI ESPI
ELVDI
CLKS2
-
CLK_DIV C7h Clock Divder
-
-
-
-
-
CLKS1
CLKS0
STC12C5410AD系列8051 片机 I/O 口 特殊功能寄存器 Port SFRs
Mnemonic Add
Name
7
6
5
4
3
2
1
0
Reset Value
P0
80h
93h
94h
90h
91h
92h
A0h
95h
96h
B0h
B1h
B2h
8-bit Port 0
-
-
-
-
P0.3 P0.2 P0.1 P0.0 xxxx,1111
P0M0
P0M1
P1
0000,0000
0000,0000
8-bit Port 1 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 1111,1111
P1M0
P1M1
P2
0000,0000
0000,0000
8-bit Port 2 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1111,1111
P2M0
P2M1
P3
0000,0000
0000,0000
8-bit Port 3 P3.7
-
P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 1x11,1111
P3M0
P3M1
0000,0000
0000,0000
STC12C5410AD系列 8051 片机 定 器 特殊功能寄存器
Timer SFRs
Mnemonic Add Name
7
6
5
4
TR0
M0
3
2
1
IE0
M1
0
Reset Value
0000,0000
TCON
TMOD
88h Timer / Counter 0 and 1 ControlTF1
TR1
TF0
IE1
IT1
IT0
GATE C/T#
GATE1 C/T1#
M1
M1_1
GATE C/T#
M0
M0_0
89h Timer / Counter 0 and 1 Modes
0000,0000
M1_0 GATE0 C/T0# M0_1
TL0
TH0
TL1
TH1
AUXR
8Ah Timer / Counter 0 Low Byte
8Ch Timer / Counter 0 High Byte
8Bh Timer / Counter 1 Low Byte
8Dh Timer / Counter 1 High Byte
8Eh Auxiliary Register
0000,0000
0000,0000
0000,0000
0000,0000
0000,00xx
T0x12 T1x12 UART_M0x6 EADCI ESPI ELVDI
-
-
STC12C5410AD系列 8051 片机 串行口 特殊功能寄存器
Serial I/O Port SFRs
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset Value
0000,0000
xxxx,xxxx
0000,0000
0000,0000
0000,00xx
SCON
SBUF
SADEN
SADDR
AUXR
98h Serial Control
SM0/FE SM1
SM2
REN
TB8 RB8
TI
RI
99h Serial Data Buffer
B9h Slave Address Mask
A9h Slave Address
8Eh
Auxiliary Register T0x12
T1x12 UART_M0x6 EADCI ESPI ELVDI
-
-
STC12C5410AD系列 8051 片机 看 狗定 器 特殊功能寄存器 Watch Dog Timer SFRs
Mnemonic Add Name
7
6
5
4
3
2
1
0 Reset Value
Watch-Dog-Timer
Control register
WDT_CONTR E1h
宏晶科技:
WDT_FLAG - EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 20
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD系列 1T 8051
Mnemonic Add Name
片机 中断 特殊功能寄存器Interrupt SFRs
3
7
6
5
4
2
1
0
Reset Value
0000,0000
IE
IP
A8h Interrupt Enable
EA
EPCA_LVD EADC_SPI
PPCA_LVD PADC_SPI
ES
ET1
EX1
ET0
EX0
Interrupt Priority
B8h
Low
-
-
PS
PT1
PT1H
IE1
PX1
PT0
PX0
xx00,0000
0000,0000
0000,0000
Interrupt Priority
High
IPH
B7h
PPCA_LVDH PADC_SPIH
PSH
TR0
PX1H PT0H PX0H
Timer / Counter 0 and
1 Control
TCON
88h
TF1
TR1
TF0
IT1
IE0
IT0
SCON
PCON
AUXR
98h Serial Control
87h Power Control
SM0/FE
SMOD
SM1
SM2
REN
POF
TB8
GF1
RB8
GF0
TI
PD
-
RI
IDL
-
0000,0000
0011,0000
0000,00xx
0xx0,0000
00xx,xxxx
00xx,0000
0xxx,x000
SMOD0
LVDF
8Eh Auxiliary Register
T0x12
ADC_POWER
SPIF
T1x12 UART_M0x6
EADCI
ESPI
ELVDI
ADC_CONTR C5h A/D
控制寄存器
SPEED1
SPEED0
ADC_FLAG ADC_START CHS2 CHS1 CHS0
SPSTAT
CCON
84h SPI Status Register
D8h PCA Control Register
D9h PCA Mode Register
WCOL
CR
-
-
-
-
-
CCF3
-
-
-
-
CF
-
CCF2 CCF1 CCF0
CPS1 CPS0 ECF
CMOD
CIDL
-
-
PCA Module 0
DAh
CCAPM0
CCAPM1
CCAPM2
CCAPM3
-
-
-
-
ECOM0
ECOM1
ECOM2
ECOM3
CAPP0
CAPP1
CAPP2
CAPP3
CAPN0
MAT0
MAT1
MAT2
MAT3
TOG0 PWM0 ECCF0 x000,0000
TOG1 PWM1 ECCF1 x000,0000
TOG2 PWM2 ECCF2 x000,0000
TOG3 PWM3 ECCF3 x000,0000
Mode Register
PCA Module 1
DBh
CAPN1
CAPN2
CAPN3
Mode Register
PCA Module 2
DCh
Mode Register
PCA Module 3
DDh
Mode Register
STC12C5410AD系列 8051 片机 PCA/PWM 特殊功能寄存器
PCA/PWM SFRs
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset value
CCF0 00xx,0000
ECF 0xxx,x000
CCON
CMOD
D8h PCA Control Register
D9h PCA Mode Register
PCA Module
Mode Register
PCA Module
Mode Register
PCA Module
Mode Register
PCA Module
Mode Register
CF
CR
-
-
-
CCF3 CCF2
CCF1
CIDL
-
-
-
CPS1 CPS0
0
CCAPM0
CCAPM1
CCAPM2
CCAPM3
DAh
DBh
DCh
DDh
-
-
-
-
ECOM0 CAPP0 CAPN0 MAT0 TOG0
ECOM1 CAPP1 CAPN1 MAT1 TOG1
ECOM2 CAPP2 CAPN2 MAT2 TOG2
ECOM3 CAPP3 CAPN3 MAT3 TOG3
PWM0
PWM1
PWM2
PWM3
ECCF0 x000,0000
ECCF1 x000,0000
ECCF2 x000,0000
ECCF3 x000,0000
1
2
3
CL
CH
E9h PCA Base Timer Low
F9h PCA Base Timer High
0000,0000
0000,0000
PCA Module-0 Capture
Register Low
CCAP0L
CCAP0H
CCAP1L
CCAP1H
CCAP2L
CCAP2H
CCAP3L
CCAP3H
EAh
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
PCA Module-0 Capture
Register High
FAh
PCA Module-1 Capture
Register Low
EBh
PCA Module-1 Capture
Register High
FBh
PCA Module-2 Capture
Register Low
ECh
PCA Module-2 Capture
Register High
FCh
PCA Module-3 Capture
Register Low
EDh
PCA Module-3 Capture
Register High
FDh
PCA PWM Mode
Auxiliary Register
PCA_PWM0 F2h
PCA_PWM1 F3h
PCA_PWM2 F4h
PCA_PWM3 F5h
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
EPC0H EPC0L xxxx,xx00
EPC1H EPC1L xxxx,xx00
EPC2H EPC2L xxxx,xx00
EPC3H EPC3L xxxx,xx00
0
1
2
3
PCA PWM Mode
Auxiliary Register
PCA PWM Mode
Auxiliary Register
PCA PWM Mode
Auxiliary Register
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 21
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
STC12C5410AD系列 8051 片机 ISP/IAP 特殊功能寄存器 ISP/IAP SFRs
Fax: 0755-82944243
Mnemonic Add Name
7
6
5
4
3
2
1
0 Reset Value
ISP_DATA E2h ISP/IAP Flash Data Register
ISP_ADDRH E3h ISP/IAP Flash Address High
ISP_ADDRL E4h ISP/IAP Flash Address Low
1111,1111
0000,0000
0000,0000
ISP_CMD
E5h ISP/IAP Flash Command Register -
-
-
-
-
-
MS1 MS0 xxxx,x000
xxxx,xxxx
ISP_TRIG E6h ISP/IAP Flash Command Trigger
ISP_CONTR E7h ISP/IAP Control Register
ISPEN SWBS SWRST CMD_FAIL 1 WT2 WT1 WT0 0000,1000
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 22
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
中断
STC12C5410AD系列 中断与普通8051完全兼容, 先 可
4 。
先 2
Vector
Polling
Interrupt
Source
中断源
Interrupt
Request
中断 求
Address Sequence 中断
中断
向量地址
先 0
最低
先 3
最高
先 1
中断
次序
先
置
/INT0
0003H
000BH
0013H
001BH
0023H
002BH
0(最 先) PX0H,PX0
0,0
0,0
0,0
0,0
0,0
0,1
1,0
1,0
1,0
1,0
1,0
1,0
1,1
1,1
1,1
1,1
1,1
1,1
IE0
Timer 0
/INT1
1
2
3
4
5
PT0H,PT0
PX1H,PX1
PT1H,PT1
PSH, PS
0,1
0,1
0,1
0,1
0,1
TF0
IE1
Timer 1
UART
IF1
RI + TI
ADC/SPI
PADC_SPIH,PADC_SPI 0,0
ADC_FLAG + SPIF
CF +
CCF0 + CCF1 + CCF2 + CCF3
+ LVDF
PCA/LVD
0033H
6
PPCA_LVDH,PPCA_LVD 0,0
0,1
1,0
1,1
STC12C5410AD系列 1T 8051
片机 中断 特殊功能寄存器Interrupt SFRs
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset Value
0000,0000
IE
IP
A8h Interrupt Enable
EA
EPCA_LVD EADC_SPI
PPCA_LVD PADC_SPI
ES
ET1
EX1
ET0
EX0
Interrupt Priority
B8h
Low
-
-
PS
PT1
PT1H
IE1
PX1
PT0
PX0
xx00,0000
0000,0000
0000,0000
Interrupt Priority
High
IPH
B7h
PPCA_LVDH PADC_SPIH
PSH
TR0
PX1H PT0H PX0H
Timer / Counter 0 and
1 Control
TCON
88h
TF1
TR1
TF0
IT1
IE0
IT0
SCON
PCON
AUXR
98h Serial Control
87h Power Control
SM0/FE
SMOD
SM1
SM2
REN
POF
TB8
GF1
RB8
GF0
TI
PD
-
RI
IDL
-
0000,0000
0011,0000
0000,00xx
0xx0,0000
00xx,xxxx
00xx,0000
0xxx,x000
SMOD0
LVDF
8Eh Auxiliary Register
T0x12
ADC_POWER
SPIF
T1x12 UART_M0x6
EADCI
ESPI
ELVDI
ADC_CONTR C5h A/D
控制寄存器
SPEED1
SPEED0
ADC_FLAG ADC_START CHS2 CHS1 CHS0
SPSTAT
CCON
84h SPI Status Register
D8h PCA Control Register
D9h PCA Mode Register
WCOL
CR
-
-
-
-
-
CCF3
-
-
-
-
CF
-
CCF2 CCF1 CCF0
CPS1 CPS0 ECF
CMOD
CIDL
-
-
PCA Module 0
DAh
CCAPM0
CCAPM1
CCAPM2
CCAPM3
-
-
-
-
ECOM0
ECOM1
ECOM2
ECOM3
CAPP0
CAPP1
CAPP2
CAPP3
CAPN0
MAT0
MAT1
MAT2
MAT3
TOG0 PWM0 ECCF0 x000,0000
TOG1 PWM1 ECCF1 x000,0000
TOG2 PWM2 ECCF2 x000,0000
TOG3 PWM3 ECCF3 x000,0000
Mode Register
PCA Module 1
DBh
CAPN1
CAPN2
CAPN3
Mode Register
PCA Module 2
DCh
Mode Register
PCA Module 3
DDh
Mode Register
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 23
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
PCA/PWM 特殊功能寄存器 , 其中部分位与PCA中断有关
Fax: 0755-82944243
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset value
CCF3 CCF2 CCF1 CCF0 00xx,0000
CPS1 CPS0 ECF 0xxx,x000
CCON
CMOD
D8h PCA Control Register CF
CR
-
-
-
D9h PCA Mode Register
CIDL
-
-
-
PCA Module 0
DAh
CCAPM0
CCAPM1
CCAPM2
CCAPM3
-
-
-
-
ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 x000,0000
ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 x000,0000
ECOM2 CAPP2 CAPN2 MAT2 TOG2 PWM2 ECCF2 x000,0000
ECOM3 CAPP3 CAPN3 MAT3 TOG3 PWM3 ECCF3 x000,0000
Mode Register
PCA Module 1
DBh
Mode Register
PCA Module 2
DCh
Mode Register
PCA Module 3
DDh
Mode Register
CL
CH
E9h PCA Base Timer Low
F9h PCA Base Timer High
0000,0000
0000,0000
PCA Module-0 Capture
Register Low
CCAP0L
CCAP0H
CCAP1L
CCAP1H
CCAP2L
CCAP2H
CCAP3L
CCAP3H
EAh
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
PCA Module-0 Capture
Register High
FAh
PCA Module-1 Capture
Register Low
EBh
PCA Module-1 Capture
Register High
FBh
PCA Module-2 Capture
Register Low
ECh
PCA Module-2 Capture
Register High
FCh
PCA Module-3 Capture
Register Low
EDh
PCA Module-3 Capture
Register High
FDh
PCA PWM Mode
Auxiliary Register 0
PCA_PWM0 F2h
PCA_PWM1 F3h
PCA_PWM2 F4h
PCA_PWM3 F5h
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
EPC0H EPC0L xxxx,xx00
EPC1H EPC1L xxxx,xx00
EPC2H EPC2L xxxx,xx00
EPC3H EPC3L xxxx,xx00
PCA PWM Mode
Auxiliary Register 1
PCA PWM Mode
Auxiliary Register 2
PCA PWM Mode
Auxiliary Register 3
STC12C5410AD系列8051 片机SPI功能模 特殊功能寄存器 其中SPIF位与中断有关
Mnemonic Add Name 0 Reset value
SPCTL 85h SPI Control Register SSIG SPEN DORD MSTR CPOL CPHA SPR1 SPR0 0000,0000
SPSTAT 84h SPI Status Register SPIF WCOL -
7
6
5
4
3
2
1
-
-
-
-
- 00xx,xxxx
0000,0000
SPDAT
86h SPI Data Register
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 24
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
定 器0/定 器1,UART串口的速度
Mnemonic Add Name
7
6
5
4
3
2
1 0 Reset Value
AUXR 8Eh Auxiliary Register T0x12 T1x12 UART_M0x6 EADCI ESPI ELVDI - - 0000,00xx
定 器0和定 器1:
STC12C5410AD系列是 1T 的8051 片机, 了兼容
8051,定 器0和定 器1复位后是
8051
的速度,即12 分 , 是 了兼容
T0x12: 0, 定 器0是
8051。但也可不 行12 分 , 真正的1T。
8051速度,12分 ;1, 定 器0的速度是
8051的12倍,不分
8051的12倍,不分
T1x12: 0, 定 器1是
8051速度,12分 ;1, 定 器1的速度是
如果UART串口用定 器1做波特率 生器,T1x12位就可以控制UART串口是12T 是1T了。
UART串口的模式0:
STC12C5410AD系列是 1T 的8051 片机, 了兼容
8051,UART串口复位后是兼容
8051的。
UART_M0x6: 0, UART 串口的模式0是
12T的8051速度,12分 ;
1, UART串口的模式0的速度是
12T的8051的6倍,2分
EADCI:
ESPI:
0, 禁止A/D 中断; 1,允 A/D中断
0, 禁止SPI 中断; 1,允 SPI中断
ELVDI:
0, 禁止低 中断; 1,允 低 中断
5V 片机,3.7V以下 低 ,3V 片机,2.4V以下 低 ,
如ELVDI=1(允 低 中断), 会 生低 中断
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 25
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
系 工作
STC12C5410AD 系列是 1T 的8051 片机,系
兼容
8051。
出厂 准配置是使用芯片内部的R/C振 器,5V 片机常温下 率是5MHz - 6.9Hz,因 随着温度
的 化,内部R/C振 器的 率会有一些温 ,
率要求不敏感的 合。
是4MHz - 8MHz。故内部R/C振 器只适用于
在 STC12C5410AD系列 片机 行ISP下 用 程序 ,可以在
“下次冷启 后 源 外部晶体或
下 完用 程序后,停 ,再冷启 后 片机的工作
后 生的高精度
中
:
”
使用的就不是内部R/C振 器,而是外部晶体振
,XTAL2脚浮空。
了(接在XTAL1/XTAL2管脚上), 也可以直接从XTAL1脚 入外部
如果 要 置成使用内部R/C振 器,在 STC12C5410AD系列 片机 行ISP下 用 程序 ,可
以在
中
:
“下次冷启 后
源 内部R/C振 器”
系
分 寄存器,可将系
分成 低 率工作
系 分 及分 寄存器
2
Mnemonic
CLK_DIV
Add Name
7
6
5
4
3
1
0
Reset value
xxxx,x000
C7h Clock Divder
-
-
-
-
-
CLKS2
CLKS1
CLKS0
如用 系 希望大幅降低功耗, 可 系
行分 。
CLKS2
CLKS1
CLKS0
CPU的
系
工作
(外部
/2
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
或内部R/C振
)
系
系
/4
系
/8
系
/16
/32
/64
/128
系
系
系
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 26
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
I/O口 构
I/O口配置
STC12C5410AD 系列 片机其所有I/O 口均可由 件配置成4 种工作 型之一,如下表所示。4 种
型分 :准双向口( 准8051 出模式)、 推挽 出、 入(高阻)或开漏 出功能。每个口由
2个控制寄存器中的相 位控制每个引脚工作 型。STC12C5410AD系列 片机上 复位后 准双向口(
准8051 出模式)模式。2V以上
高 平,0.8V以下
低 平。
I/O 口工作 型 定
P3口 定 <P3.7,P3.6,P3.5,P3.4,P3.3,P3.2,P3.1,P3.0>
P3M0【 7: 0】
P3M1【 7: 0】
口 模 式
I/ O
准 双 向 口
口 模 式 )
(
流 可 达
8 0 5 1 I/ O
,
0
0
灌
拉
流
2 0 m A ,
差 ,
2 3 0 µ A ,
由 于 制 造
~
2 5 0 uA
1 6 0 uA
, 尽 量 少 用 )
推 挽
出 (
上 拉
出 , 可 达
2 0 m A
0
1
1
1
0
1
入 ( 高 阻 )
开 漏
, 内 部 上 拉
阻 断 开 , 要 外 加
(Open Drain)
P2口 定 <P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0>
P2M0【7:0】
P2M1【7:0】
口模式
I/O
8051 I/O
拉 流
准双向口
(
灌 流可达
口模式)
,
0
0
20mA ,
230µA ,
由于制造 差,
~
250uA 160uA
推挽 出( 上拉 出,可达
入(高阻)
,尽量少用)
20mA
0
1
1
1
0
1
开漏
,内部上拉 阻断开,要外加
(Open Drain)
P1口 定 <P1.7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,P1.0>
P1M0【7:0】
P1M1【7:0】
口模式(
如做 使用,需先将其 置成开漏或高阻 入)
A/D
I/O
P1.x
准双向口(
灌 流可达
口模式)
8051 I/O
拉 流
,
0
0
20mA ,
230µA ,
由于制造 差,
~
250uA 160uA
,尽量少用)
0
1
1
0
推挽 出( 上拉 出,可达
20mA
口需作
入(高阻),如果
,如果
使用,可 此模式
A/D
I/O
1
1
开漏
口需作
I/O
使用,可 此模式
A/D
(Open Drain)
P0口 定 <P0.7,P0.6,P0.5,P0.4,P0.3,P0.2,P0.1,P0.0>
P0M0【7:0】
P0M1【7:0】
口模式
I/O
准双向口
口模式)
,
(
8051 I/O
拉 流
灌 流可达
0
0
20mA ,
230µA ,
由于制造 差,
~
250uA 160uA
推挽 出( 上拉 出,可达
入(高阻)
,尽量少用)
20mA
0
1
1
1
0
1
开漏
,内部上拉 阻断开,要外加
(Open Drain)
例:
MOV P1M0,#11000000B
MOV P1M1,#10100000B
;P1.7 开漏,P1.6 高阻 入,P1.5
推挽 出,P1.4/P1.3/P1.2/P1.1/P1.0 弱上拉
注意:
然每个I/O口在弱上拉 都能承受20mA的灌 流( 是要加限流 阻,如1K,560Ω等),在 推挽
出 都能 出20mA的拉 流,但是整个芯片的工作 流推荐不要超 55mA。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 27
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
1.准双向口 出配置
准双向口 出 型可用作 出和 入功能而不需重新配置口
能力很弱,允 外部装置将其拉低。当引脚 出 低 ,它的
流。准双向口有3 个上拉晶体管适 不同的需要。
出状 。 是因 当口
出 1
能力很 ,可吸收相当大的
在3个上拉晶体管中,有1个上拉晶体管称 “弱上拉”,当口 寄存器 1且引脚本身也 1 打开。
此上拉提供基本 流使准双向口 出 1。如果一个引脚 出 1而由外部装置下拉到低 ,弱上拉关 而
“极弱上拉” 持开状 , 了把 个引脚 拉 低,外部装置必 有足 的灌 流能力使引脚上的
以下。
降到
第2 个上拉晶体管,称 “极弱上拉”,当口
拉源 生很弱的上拉 流将引脚上拉 高 平。
存 1 打开。当引脚 空 , 个极弱的上
第3个上拉晶体管称 “ 上拉”。当口
存器由0到1跳
, 个上拉用来加快准双向口由
0 到 。当 生 种情况 , 上拉打开 2 个机器周期以使引脚能 迅速地上拉到高 平。
1
准双向口 出如下 所示。
VDD
VDD
VDD
由于制造 差,
弱上拉能力
250uA~160uA
2个CPU
延
弱
200uA
极弱
30uA
2mA
端口
引脚
口 存数据
灌 流最大
可到20mA,
出低
入数据
干
波
STC12LE5410 系列 片机 3V 器件,如果用 在引脚加上5V
,将会有 流从引脚流向VDD,
致 外的功率消耗。因此,建 不要在准双向口模式中向3V 片机引脚施加5V
限流 阻,或用二极管做 入隔离,或用三极管做 出隔离。
,如使用的 ,要加
准双向口 有一个施密特触
2.推挽 出配置
推挽 出配置的下拉 构与开漏 出以及准双向口的下拉 构相同,但当 存器 1 提供持 的
入以及一个干 抑制 路。
上拉。推挽模式一般用于需要更大
推挽引脚配置如下 所示。
流的情况。
VDD
拉 流最大可到20mA, 出高
口 存数据
端口
引脚
灌 流也可承受20mA, 出低
入数据
干
波
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 28
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
3 .
入(高阻)配置
入口配置如下 所示。
入(高阻) ,不提供吸入20mA 流的能力
端口
引脚
入数据
干
波
入口 有一个施密特触
入以及一个干 抑制 路。
4.开漏 出配置
当口
存器 0 ,开漏 出关 所有上拉晶体管。当作 一个
出 , 种配置方式必 有
外部上拉,一般通
阻外接到VDD。 种方式的下拉与准双向口相同。 出口 配置如下 所示。
开漏端口 有一个施密特触
入以及一个干 抑制 路。
端口
引脚
口 存数据
灌 流也可承受20mA, 出低
入数据
干
波
一种典型三极管控制 路
R1
R3
10K(3.3K~10K)
普通I/O口
R2
15K(3.3K~15K)
如果用弱上拉控制,建 加上拉 阻R1(3.3K~10K), 如果不加上拉 阻R1(3.3K~10K), 建
R2的 在15K以上,或用 推挽 出
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 29
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
看 狗 用及 程序
适用型号: STC12C5410AD系列
Mnemonic Add Name
Watch-Dog-Timer
Control register
7
6
5
4
3
2
1
0 Reset Value
WDT_CONTR E1h
WDT_FLAG - EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
Symbol符号Function功能
WDT_FLAG
When WDT overflows, this bit is set. It can be cleared by software.
看 狗溢出 志位,当溢出 , 位由硬件置1,可用 件将其清0。
Enable WDT bit. When set, WDT is started
EN_WDT
看 狗允 位, 当 置 “1” ,看 狗启 。
CLR_WDT
WDT clear bit. When set, WDT will recount. Hardware will automatically clear
this bit.
看 狗清“0”位,当
“1” ,看 狗将重新 数。硬件将自 清“0”此位。
IDLE_WDT
When set, WDT is enabled in IDLE mode. When clear, WDT is disabled in IDLE mode
看 狗“IDLE”模式位,当 置 “1” ,看 狗定 器在“空 模式” 数
当清“0” 位 , 看 狗定 器在“空 模式” 不 数
PS2, PS1, PS0 Pre-scale value of Watchdog timer is shown as the bellowed table:
看 狗定 器 分 ,如下表所示
Pre-scale
分
PS2
PS1
PS0
WDT Period @20MHz
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
2
39.3 mS
78.6 mS
157.3 mS
314.6 mS
629.1 mS
1.25S
4
8
16
32
64
128
256
2.5S
5S
The WDT period is determined by the following equation 看 狗溢出
算
看 狗溢出
=( N x Pre-scale x 32768) / Oscillator frequency
12MHz:
看 狗溢出
= ( 12 x Pre-scale x 32768) / 12000000 = Pre-scale x 393216 / 12000000
P r e - s c a l e
分
P S 2
P S 1
P S 0
W D T P e r i o d @ 1 2 M H z
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
2
6 5 . 5 m S
1 3 1 . 0 m S
2 6 2 . 1 m S
5 2 4 . 2 m S
1 . 0 4 8 5 S
2 . 0 9 7 1 S
4 . 1 9 4 3 S
8 . 3 8 8 6 S
4
8
1 6
3 2
6 4
1 2 8
2 5 6
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 30
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
11.0592MHz:
Fax: 0755-82944243
看 狗溢出
= (12 x Pre-scale x 32768) / 11059200 = Pre-scale x 393216 / 11059200
Pre-scale
分
PS2
PS1
PS0
WDT Period @11.0592MHz
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
2
71.1 mS
142.2 mS
284.4 mS
568.8 mS
1.1377S
2.2755S
4.5511S
9.1022S
4
8
16
32
64
128
256
言程序示例
WDT_CONTR DATA
;复位入口
0E1H ;
或者 WDT_CONTR EQU 0E1H
ORG
LJMP
⋯
0000H
Initial
ORG
0060H
Initial:
MOV
WDT_CONTR, #00111100B; Load initial value 看 狗定 器控制寄存器初始化
; EN_WDT = 1, CLR_WDT = 1, IDLE_WDT = 1, PS2 = 1, PS1 = 0, PS0 = 0
⋯
Main_Loop:
LCALL Display_Loop
LCALL Keyboard_Loop
⋯
MOV
⋯
WDT_CONTR, #00111100B ; 喂狗, 不要用 ORL
WDT_CONTR, #00010000B
LJMP
Main_Loop
C 言程序示例
#include<reg52.h>
sfr
WDT_CONTR = 0xe1;
void main()
{ ⋯
WDT_CONTR = 0x3c;
/* 0011,1100 EN_WDT = 1,CLR_WDT = 1,IDLE_WDT = 1,PS2 = 1,PS1 = 0,PS0 = 0 */
while(1){
display();
keyboard();
⋯
WDT_CONTR = 0x3c; /* 喂狗, 不要用 WDT_CONTR = WDT_CONTR | 0x10;*/
}
}
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 31
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;本程序
STC12C5410AD 系列及STC12C2052AD 系列 片机的看 狗及其溢出
算公式
;本演示程序在STC-ISP Ver 3.0A.PCB 的下
程工具上
通 ,相关的工作状 在P1口上 示
;看 狗及其溢出
WDT_CONTR
= (12 * Pre_scale *32768)/Oscillator frequency
EQU 0E1H ; 看 狗地址
WDT_TIME_LED
EQU P1.5 ;用 P1.5 控制看 狗溢出
;看 狗溢出 可由 指示灯亮的
EQU P1.7 ; 用 P1.7 控制看 狗溢出复位指示灯, 如点亮表示 看 狗溢出复位
指示灯的上一次状 位
指示灯,
度或熄 的
度表示
WDT_FLAG_LED
Last_WDT_Time_LED_Status EQU 00H ;位 量, 存 看 狗溢出
;WDT 复位 (所用的Oscillator frequency = 18.432MHz):
;Pre_scale_Word EQU 00111100B ; 清0,启 看 狗, 分 数=32, 0.68S
Pre_scale_Word EQU 00111101B ; 清0,启 看 狗, 分 数=64, 1.36S
;Pre_scale_Word EQU 00111110B ; 清0,启 看 狗, 分 数=128, 2.72S
;Pre_scale_Word EQU 00111111B ; 清0,启 看 狗, 分 数=256, 5.44S
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN:
MOV A, WDT_CONTR
ANL A, #10000000B
JNZ WDT_Reset
;
是否 看 狗复位
;WDT_CONTR.7 = 1, 看 狗复位, 跳 到看 狗复位程序
;WDT_CONTR.7 = 0,上 复位, 冷启 , RAM 元内容 随机
SETB Last_WDT_Time_LED_Status
; 上 复位,
;初始化看 狗溢出
指示灯的状 位 = 1
CLR WDT_TIME_LED
; 上 复位, 点亮看 狗溢出
; 启 看 狗
指示灯
MOV WDT_CONTR, #Pre_scale_Word
WAIT1:
SJMP WAIT1
; 循
行本 句(停机),等待看 狗溢出复位
;WDT_CONTR.7 = 1,看 狗复位, 启 , RAM 元内容不 , 复位前的
WDT_Reset:
CLR WDT_FLAG_LED
; 看 狗复位, 启
; 是看 狗复位,点亮看 狗溢出复位指示灯
JB Last_WDT_Time_LED_Status, Power_Off_WDT_TIME_LED; 1熄 相 的灯, 0亮相 灯
;根据看 狗溢出 指示灯的上一次状 位 置 WDT_TIME_LED 灯,
;若上次亮本次就熄 , 若上次熄 本次就亮
CLR WDT_TIME_LED
; 上次熄 本次点亮看 狗溢出
指示灯
CPL Last_WDT_Time_LED_Status ; 将看 狗溢出
指示灯的上一次状 位取反
WAIT2:
SJMP WAIT2
; 循
行本 句(停机),等待看 狗溢出复位
Power_Off_WDT_TIME_LED:
SETB WDT_TIME_LED
; 上次亮本次就熄 看 狗溢出
指示灯
CPL Last_WDT_Time_LED_Status ; 将看 狗溢出
WAIT3:
SJMP WAIT3
指示灯的上一次状 位取反
; 循
行本 句(停机),等待看 狗溢出复位
END
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 32
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
如何用 件 系 复位
用
用程序在运行 程当中,有 会有特殊需求,需要
片机系
,
复位( 启 之一),
起来 麻 。 STC 新
的8051 片机由于硬件上未支持此功能,用 必 用 件模
推出的增 型8051根据客 要求增加了ISP_CONTR 特殊功能寄存器,
了此功能。用 只需
的控
制ISP_CONTR 特殊功能寄存器的其中两位 SWBS / SWRST 就可以系 复位了。
ISP_CONTR:ISP/IAP控制寄存器,地址在 0E7H 元
B7
B6 B5
B4
B3 B2 B1 B0 Reset Value
WT2 WT1 WT0 0000,1000
ISPEN SWBS SWRST CMD_FAIL 1
ISPEN:
SWBS:
ISP/IAP 功能允 位。0:禁止ISP/IAP 程改 Flash,1:允
程改 Flash
件
从用
用程序区启 (0), 是从ISP 程序区启 (1)。 要与SWRST 直接配合
才可以
SWRST: 0: 不操作;1:
生 件系 复位,硬件自 清零。
CMD_FAIL: 如果送了ISP/IAP命令,并 ISP_TRIG送46h/B9h触 失 ,
件清零。
1,需由
;从用
用程序区(AP区) 件复位并切 到用
用程序区(AP区)开始 行程序
MOV ISP_CONTR, #00100000B;SWBS = 0(
AP区), SWRST = 1( 复位)
用程序区(AP区)开始 行程序
AP区), SWRST = 1( 复位)
;从系 ISP 控程序区 件复位并切 到用
MOV ISP_CONTR, #00100000B;SWBS = 0(
;从用
用程序区(AP区) 件复位并切 到系 ISP 控程序区开始 行程序
MOV ISP_CONTR, #01100000B;SWBS = 1( ISP区), SWRST = 1( 复位)
;从系 ISP 控程序区 件复位并切 到系 ISP 控程序区开始 行程序
MOV ISP_CONTR, #01100000B;SWBS = 1(
ISP区), SWRST = 1( 复位)
本复位是整个系 复位,所有的特殊功能寄存器都会复位到初始 ,I/O 口也会初始化。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 33
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 1T 8051 片机IAP 用
STC12C5410AD系列 1T 8051 片机内部EEPROM的 用
-- 利用IAP技 可
EEPROM,内部Flash擦写次数 100,000次以上
STC12C5410AD系列 1T 8051 片机 ISP/IAP 特殊功能寄存器
ISP/IAP SFRs
3 2
Mnemonic Add Name
7
6
-
5
-
4
-
1 0 Reset Value
1111,1111
ISP_DATA E2h ISP/IAP Flash Data Register
ISP_ADDRH E3h ISP/IAP Flash Address High
ISP_ADDRL E4h ISP/IAP Flash Address Low
0000,0000
0000,0000
ISP_CMD
E5h ISP/IAP Flash Command Register-
- - MS1 MS0 xxxx,xx00
xxxx,xxxx
ISP_TRIG E6h ISP/IAP Flash Command Trigger
ISP_CONTR E7h ISP/IAP Control Register
ISPEN SWBS SWRST CMD_FAIL 1 WT2 WT1 WT0 0000,1000
ISP_DATA:
ISP/IAP 操作 的数据寄存器。
ISP/IAP从Flash 出的数据放在此 ,向Flash写的数据也需放在此
ISP_ADDRH:ISP/IAP操作 的地址寄存器高八位。
ISP_ADDRL:ISP/IAP 操作 的地址寄存器低八位。
ISP_CMD:
B7 B6
ISP/IAP操作 的命令模式寄存器, 命令触 寄存器触 方可生效。
B5 B4 B3 B2 B1 B0 命 令 / 操 作
模 式
保 留
-
命 令
0 Standby
-
-
-
-
-
-
-
-
-
-
0
0
待 机 模 式 , 无 ISP操 作
从 用
行 字
的
的
的
用 程 序 区
"Data Flash/EEPROM区 "
-
-
-
1
0
1
从 用
行 字
用 程 序 区
程
"Data Flash/EEPROM区 "
"Data Flash/EEPROM区 "
-
-
-
-
-
-
-
-
-
-
1
1
从 用
用 程 序 区
行 扇 区 擦 除
程序在用
用程序区 , 可以 数据Flash 区(EEPROM) 行字
/ 字
程/ 扇区擦除,
STC12C5412AD/STC12LE5412AD除外。STC12C5410AD系列 片机出厂 就已完全加密。
ISP_TRIG:
ISP/IAP 操作 的命令触 寄存器。
在ISPEN(ISP_CONTR.7) = 1 , ISP_TRIG先写入46h,再写入B9h,
ISP/IAP命令才会生效。
ISP_CONTR:ISP/IAP控制寄存器,地址在 0E7H 元
B7
B6
B5
B4
B3
B2
B1
B0
WT0 0000,1000
程改 Flash
从用 主程序区启 (0), 是从ISP 程序区启 (1)。
0: 不操作;1: 生 件系 复位,硬件自 清零。
Reset Value
ISPEN SWBS SWRST
CMD_FAIL 1
WT2
WT1
ISPEN:
SWBS:
ISP/IAP 功能允 位。0:禁止ISP/IAP 程改 Flash,1:允
件
SWRST:
CMD_FAIL: 如果送了ISP/IAP命令,并 ISP_TRIG送46h/B9h触 失 ,
件清零。
1,需由
;在用
用程序区(AP区) 件复位并从用
MOV ISP_CONTR, #00100000B;SWBS = 0(
用程序区(AP区) 件复位并从系 ISP 控程序区开始 行程序
MOV ISP_CONTR, #01100000B;SWBS = 1( ISP区), SWRST = 1( 复位)
;在系 ISP 控程序区 件复位并从用 用程序区(AP区)开始 行程序
MOV ISP_CONTR, #00100000B;SWBS = 0( AP区), SWRST = 1( 复位)
;在系 ISP 控程序区 件复位并从系 ISP 控程序区开始 行程序
MOV ISP_CONTR, #01100000B;SWBS = 1( ISP区), SWRST = 1( 复位)
宏晶科技: 片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 34
用程序区(AP区)开始 行程序
AP区), SWRST = 1( 复位)
;在用
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
置 等 待
WT2 WT1 WT0
等C待PU
Program/
(多 少 个 CPU 工 作
)
Sector Erase
扇 区 擦 除
Recommended System Clock
跟 等 待 参 数
Read/
程
的 推 荐 系
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
2个
2个
2个
2个
2个
2个
2个
2个
55个
21012个
42024个
〈 1MHz
110个
165个
330个
660个
1100个
1320个
1760个
〈 2MHz
63036个
〈 3MHz
126072个
252144个
420240个
504288个
672384个
〈 6MHz
〈 12MHz
〈 20MHz
〈 24MHz
〈 30MHz
STC12C5410AD系列 片机内部可用Data Flash(EEPROM)的地址(与程序空 是分开的):
如果
用程序区 行IAP 写数据,
句会被 片机忽略,
行下一句。
程序在用
用程序区(AP区) , 可以 Data Flash(EEPROM) 行IAP/ISP操作。
但STC12C5412AD/STC12LE5412AD在 用程序区可以修改 用程序区(灵活)。
STC12C5410AD,STC12C5410,STC12LE5410AD,STC12LE5410
STC12C5408AD,STC12C5408,STC12LE5408AD,STC12LE5408
STC12C5406AD,STC12C5406,STC12LE5406AD,STC12LE5406
STC12C5404AD,STC12C5404,STC12LE5404AD,STC12LE5404
STC12C5402AD,STC12C5402,STC12LE5402AD,STC12LE5402
STC12C5401AD,STC12C5401,STC12LE5401AD,STC12LE5401
系列 片机内部可用Data Flash(EEPROM)的地址:
每 个 扇 区 512字
共 4个 扇 区
第 一 扇 区
起 始 地 址
第 二 扇 区
起 始 地 址
束 地 址
29FFh
束 地 址
2BFFh
建
同 一 次 修 改 的 数 据
放 在 同 一 个 扇 区 , 不 必
2800h
2A00h
用
, 当 然 可 全 用 , 用
2K字 EEPROM 。
第 三 扇 区
第 四 扇 区
由 于 擦 除 是 按 扇 区 擦
除 , 所 以 每 个 扇 区 用 的
越 少 越 方 便 , 256 个 字
起 始 地 址
2C00h
束 地 址
2DFFh
起 始 地 址
2E00h
束 地 址
2FFFh
以 内
合 理 。
STC12C5412,STC12C5412AD,STC12LE5412,STC12LE5412AD 片机可 自身内部 用程序区 行IAP/ISP
操作,故所有部分均可当Data Flash(EEPROM)使用,其地址如下:
第 一 扇 区
束 地 址
01FFh
第 二 扇 区
第 三 扇 区
束 地 址
05FFh
第 四 扇 区
束 地 址
07FFh
起 始 地 址
0000h
起 始 地 址
0200h
束 地 址 起 始 地 址
起 始 地 址
0600h
03FFh
0400h
第 五 扇 区
束 地 址
09FFh
第 六 扇 区
第 七 扇 区
束 地 址
0DFFh
第 八 扇 区
束 地 址
0FFFh
起 始 地 址
0800h
起 始 地 址
0A00h
束 地 址 起 始 地 址
起 始 地 址
0E00h
0BFFh
0C00h
每 个 扇 区
512字
第 九 扇 区
第 十 扇 区
第 十 一 扇 区
第 十 二 扇 区
起 始 地 址
1000h
束 地 址
11FFh
起 始 地 址
束 地 址 起 始 地 址
束 地 址
15FFh
第 十 五 扇 区
束 地 址 起 始 地 址 束 地 址
1BFFh 1C00h 1DFFh
第 十 九 扇 区
束 地 址 起 始 地 址 束 地 址
23FFh 2400h 25FFh
第 二 十 二 扇 区 第 二 十 三 扇 区
起 始 地 址 束 地 址 起 始 地 址 束 地 址
2A00h 2BFFh 2C00h 2DFFh
起 始 地 址
1600h
束 地 址
17FFh
建
同 一 次
1200h
13FFh
1400h
修 改 的 数 据
放 在 同 一 个
扇 区 , 不 必
用
可 全 用
第 十 三 扇 区
起 始 地 址 束 地 址
1800h
第 十 四 扇 区
第 十 六 扇 区
起 始 地 址 束 地 址
1E00h 1FFFh
第 二 十 扇 区
起 始 地 址 束 地 址
2600h 27FFh
第 二 十 四 扇 区
起 始 地 址 束 地 址
2E00h 2FFFh
起 始 地 址
1A00h
, 当 然
19FFh
第 十 七 扇 区
第 十 八 扇 区
起 始 地 址
2200h
起 始 地 址
2000h
束 地 址
21FFh
第 二 十 一 扇 区
起 始 地 址 束 地 址
29FFh
2800h
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 35
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 IAP 用 介
STC12C5410AD 系列 内部EEPROM的 用
;用DATA 是EQU声明新增特殊功能寄存器地址要看你用的
器/
器
ISP_DATA
ISP_ADDRH
ISP_ADDRL
ISP_CMD
DATA
DATA
DATA
DATA
DATA
DATA
0E2h;或
0E3h;或
0E4h;或
0E5h;或
0E6h;或
0E7h;或
ISP_DATA
ISP_ADDRH
ISP_ADDRL
ISP_CMD
EQU
0E2h
0E3h
0E4h
0E5h
0E6h
0E7h
EQU
EQU
EQU
EQU
EQU
ISP_TRIG
ISP_CONTR
ISP_TRIG
ISP_CONTR
;定 ISP/IAP命令及等待
ISP_IAP_BYTE_READ
EQU 1
;字
;字
ISP_IAP_BYTE_PROGRAM EQU 2
程,前提是 字 是空,0FFh
空,要擦一扇区
,30MHz以下0,24M以下1,
;20MHz以下2,12M以下3,6M以下4,3M以下5,2M以下6,1M以下7,
ISP_IAP_SECTOR_ERASE EQU 3
;扇区擦除,要某字
; 置等待
WAIT_TIME
EQU 0
;字
MOV ISP_ADDRH,#BYTE_ADDR_HIGH
MOV ISP_ADDRL,#BYTE_ADDR_LOW
MOV ISP_CONTR,#WAIT_TIME; 置等待
;送地址高字
;送地址低字
地址需要改
才需重新送地址
此两句可以合成一句,并且只送一次就 了
ORL ISP_CONTR,#10000000B;允 ISP/IAP操作
MOV ISP_CMD,
MOV ISP_TRIG,
MOV ISP_TRIG,
#ISP_IAP_BYTE_READ;送字
#46h ;先送46h,再送B9h到ISP/IAP触 寄存器,每次都需如此
#0B9h;送完B9h后,ISP/IAP命令立即被触 起
行程序。
;数据 出到ISP_DATA寄存器后,CPU
命令,命令不需改
,不需重新送命令
;CPU 等待IAP 作完成后,才会
NOP
行程序
MOV A,
ISP_DATA
;将 出的数据送往Acc
;以下 句可不用,只是出于安全考 而已
MOV ISP_CONTR,#00000000B
MOV ISP_CMD, #00000000B
;MOV ISP_TRIG, #00000000B
;MOV ISP_ADDRH,#0
;禁止ISP/IAP操作
;去除ISP/IAP命令
;防止ISP/IAP命令 触
;送地址高字
;送地址低字
元 00,指向非EEPROM区
元 00,防止 操作
;MOV ISP_ADDRL,#0
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 36
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;字
程, 字
FFh/ 空 ,可 其 程,否 不行,要先 行扇区擦除
程数据到ISP_DATA,只有数据改
MOV ISP_DATA, #ONE_DATA ;送字
才需重新送
MOV ISP_ADDRH,#BYTE_ADDR_HIGH ;送地址高字
MOV ISP_ADDRL,#BYTE_ADDR_LOW ;送地址低字
MOV ISP_CONTR,#WAIT_TIME; 置等待
地址需要改
才需重新送地址
此两句可合成一句,并且只送一次就 了
ORL ISP_CONTR,#10000000B;允 ISP/IAP操作
MOV ISP_CMD, #ISP_IAP_BYTE_PROGRAM
;送字 程命令
MOV ISP_TRIG, #46h
MOV ISP_TRIG, #0B9h
;先送46h,再送B9h到ISP/IAP触 寄存器,每次都需如此
;送完B9h后,ISP/IAP命令立即被触 起
行程序.
;CPU 等待IAP 作完成后,才会
NOP
;字
程成功后,CPU
行程序
;以下 句可不用,只是出于安全考 而已
MOV ISP_CONTR,#00000000B;禁止ISP/IAP操作
MOV ISP_CMD, #00000000B;去除ISP/IAP命令
;MOV ISP_TRIG, #00000000B;防止ISP/IAP命令 触
;MOV ISP_ADDRH,#0
;MOV ISP_ADDRL,#0
;送地址高字
;送地址低字
元 00,指向非EEPROM区,防止 操作
元 00,指向非EEPROM区,防止 操作
----------------------------------------------------
小常 : (STC 片机的Data Flash 当EEPROM功能使用)
3 个基本命令---- 字 ,字 程,扇区擦除
字
程:如果 字 是“1111, 1111B”, 可将其中的“1” 程 “0”,如果
字 中有位 “0 ”,
“1 ”。
先将整个扇区擦除,因 只有“扇区擦除”才可以将“0 ”
扇区擦除:只有“扇区擦除”才可能将“0 ”擦除 “1 ”。
大建 :
1.同一次修改的数据放在同一扇区中,不是同一次修改的数据放在另外的扇区,就不
出保 。
2.如果一个扇区只用一个字 ,那就是真正的EEPROM,STC 片机的Data Flash比外部EEPROM要快很多,
一个字 / 程一个字 大概是0.2uS/60uS。
3.如果在一个扇区中存放了大量的数据,某次只需要修改其中的一个字 或一部分字
需要修改的数据 先 出放在STC 片机的RAM中,然后擦除整个扇区,再将需要保留的数据和需修改的
数据一并写回 扇区中。 每个扇区使用的字 数是使用的越少越方便(不需 出一大堆需保留数据)。
, 另外的不
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 37
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;扇区擦除,没有字 擦除,只有扇区擦除,512 字 / 扇区,每个扇区用得越少越方便
;如果要 某个扇区 行擦除,而其中有些字 的内容需要保留, 需将其先 到 片机
;内部的RAM 中保存,再将 扇区擦除,然后将 保留的数据写回 扇区,所以每个扇区
;中用的字 数越少越好,操作起来越灵活越快.
MOV ISP_ADDRH, #SECTOR_FIRST_BYTE_ADDR_HIGH ;送扇区起始地址高字
MOV ISP_ADDRL, #SECTOR_FIRST_BYTE_ADDR_LOW ;送扇区起始地址低字
MOV ISP_CONTR, #WAIT_TIME; 置等待
地址需要改
才需重新送地址
此两句可以合成一句,并且只送一次就 了
ORL ISP_CONTR, #10000000B;允 ISP/IAP
MOV ISP_CMD, #ISP_IAP_SECTOR_ERASE;送扇区擦除命令,命令不需改
,不需重新送命令
MOV ISP_TRIG,
MOV ISP_TRIG,
#46h
;先送46h,再送B9h到ISP/IAP触 寄存器,每次都需如此
;送完B9h后,ISP/IAP命令立即被触 起
#0B9h
;CPU 等待IAP 作完成后,才会
NOP
行程序.
;扇区擦除成功后,CPU
行程序
;以下 句可不用,只是出于安全考 而已
MOV ISP_CONTR, #00000000B
MOV ISP_CMD, #00000000B
;MOV ISP_TRIG, #00000000B
;MOV ISP_ADDRH, #0
;禁止ISP/IAP操作
;去除ISP/IAP命令
;防止ISP/IAP命令 触
;送地址高字
;送地址低字
元 00,指向非EEPROM区
元 00,防止 操作
;MOV ISP_ADDRL, #0
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 38
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
程序演示
;STC12C5410AD 系列和STC12C2052AD 系列 片机EEPROM/IAP 功能
;/* --- STC International Limited ---------------- */
;/* --- 宏晶科技 姚永平
2006/1/6 V1.0 ----- */
;/* --- 演示 STC12C5410AD 系列 MCU EEPROM/IAP 功能- */
;/* --- 演示 STC12C2052AD 系列 MCU EEPROM/IAP 功能- */
;/* --- Mobile: 13922805190 ---------------------- */
;/* --- Fax: 0755-82944243 ----------------------- */
;/* --- Tel: 0755-82948409 ----------------------- */
;/* --- Web: www.mcu-memory.com ------------------ */
;本演示程序在STC-ISP Ver 3.0A.PCB 的下
程工具上
通 ,EEPROM的数据在P1口上 示
;------------------------------------------------
;声明与IAP/ISP/EEPROM有关的特殊功能寄存器的地址
ISP_DATA
ISP_ADDRH
ISP_ADDRL
ISP_CMD
EQU 0E2H
EQU 0E3H
EQU 0E4H
EQU 0E5H
EQU 0E6H
EQU 0E7H
ISP_TRIG
ISP_CONTR
;定 ISP/IAP命令
ISP_IAP_BYTE_READ
EQU 1H ;字
ISP_IAP_BYTE_PROGRAM EQU 2H ;字
ISP_IAP_SECTOR_ERASE EQU 3H ;扇区擦除,可以将0 擦成1,要将0 成1,必 擦除整个扇区
;定 Flash 操作等待 及允 IAP/ISP/EEPROM操作的常数
程,可以将1 写成0,要将1 成0,必
行字
程
;ENABLE_ISP
;ENABLE_ISP
ENABLE_ISP
;ENABLE_ISP
;ENABLE_ISP
;ENABLE_ISP
;ENABLE_ISP
;ENABLE_ISP
EQU 80H
; 系 工作
; 系 工作
; 系 工作
; 系 工作
; 系 工作
; 系 工作
; 系 工作
; 系 工作
<30MHz , ISP_CONTR寄存器 置此
EQU 81H
EQU 82H
EQU 83H
EQU 84H
EQU 85H
EQU 86H
EQU 87H
<24MHz , ISP_CONTR寄存器 置此
<20MHz , ISP_CONTR寄存器 置此
<12MHz , ISP_CONTR寄存器 置此
<6MHz , ISP_CONTR寄存器 置此
<3MHz , ISP_CONTR寄存器 置此
<2MHz , ISP_CONTR寄存器 置此
<1MHz , ISP_CONTR寄存器 置此
DEBUG_DATA
EQU 5AH ;是本
程序 定的EEPROM 元的数 如正确 等于的数
;------------------------
MCU 型号
;DATA_FLASH_START_ADDRESS EQU 1000H ;STC12C2052AD 系列 片机的EEPROM
;
起始地址
起始地址
DATA_FLASH_START_ADDRESS EQU 2800H ;STC12C5410AD 系列 片机的EEPROM
;------------------------------------------------
ORG 0000H
LJMP MAIN
;------------------------------------------------
ORG 0100H
MAIN:
MOV
P1,#0F0H
;演示程序开始工作, P1.0/P1.1/P1.2/P1.3控制的灯亮
LCALL Delay
;延
MOV
P1,#0FH
;演示程序开始工作, P1.7/P1.6/P1.5/P1.4控制的灯亮
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 39
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
LCALL Delay
MOV SP, #7FH
;延
;堆 指 指向 7FH 元
;************************************************
;将EEPROM
MAIN1:
MOV
起始地址 元的内容 出
DPTR, #DATA_FLASH_START_ADDRESS ;将EEPROM
起始地址送DPTR数据指
LCALL Byte_Read
MOV
40H, A
; 将EEPROM的 送40H 元保存
CJNE
A, #DEBUG_DATA, DATA_NOT_EQU_DEBUG_DATA ; 如果数据比 不正确,就跳
DATA_IS_DEBUG_DATA:
;数据是 的,亮P1.7控制的灯,然后在P1口上将EEPROM的数据 示出来
MOV
P1, #01111111B ;如 (DATA_FLASH_START_ADDRESS)的 等于#DEBUG_DATA, 亮P1.7
;延
A, 40H ;将保存在40H 元中EEPROM的 从40H 元送累加器A
LCALL Delay
MOV
CPL
MOV
A
;取反的目的是相 的灯亮代表1,不亮代表0
;数据是 的,送 P1 示
P1,A
WAIT1:
SJMP WAIT1
;数据是 的,送 P1 示后,CPU在此无限循
行此句
DATA_NOT_EQU_DEBUG_DATA:
;EEPROM里的数据是 的,亮P1.3控制的灯,然后在P1口上将
的数据 示出来,
;再将 EEPROM所在的扇区整个擦除,将正确的数据写入后,亮P1.5控制的灯
MOV P1, #11110111B ;如 (DATA_FLASH_START_ADDRESS)的 不等于#DEBUG_DATA, 亮P1.3
LCALL Delay ;延
A, 40H ;将保存在40H 元中EEPROM的 从40H 元送累加器A
MOV
CPL
MOV
A
;取反的目的是相 的灯亮代表1,不亮代表0
P1, A
;数据不 ,送 P1 示
;延
LCALL Delay
MOV
DPTR,#DATA_FLASH_START_ADDRESS ;将EEPROM
起始地址送DPTR数据指
起始地址送DPTR数据指
ACALL Sector_Erase ;擦除整个扇区
MOV
MOV
DPTR, #DATA_FLASH_START_ADDRESS ;将EEPROM
A, #DEBUG_DATA
; 写入 EEPROM 的数据 #DEBUG_DATA
; 字
; 将先前亮的P1.3灯关 ,再亮 P1.5灯,代表数据已被修改
ACALL Byte_Program
MOV P1, #11011111B
WAIT2:
SJMP WAIT2
;************************************************
程
; 字
程后,CPU在此无限循
行此句
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 40
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
;------------------------------------------------
; 一字 , 用前需打开 IAP 功能,入口:DPTR = 字 地址,返回:A =
Byte_Read:
Fax: 0755-82944243
出字
MOV
ISP_CONTR, #ENABLE_ISP
; 打开 IAP 功能, 置 Flash 操作等待
MOV
MOV
MOV
;CLR
ISP_CMD,
# ISP_IAP_BYTE_READ ; 置 IAP/ISP/EEPROM字 模式命令
ISP_ADDRH, DPH
ISP_ADDRL, DPL
EA
; 置目
; 置目
元地址的高8位地址
元地址的低8位地址
MOV
ISP_TRIG, #46H
ISP_TRIG, #0B9H
;先送46h,再送B9h到ISP/IAP触 寄存器,每次都需如此
;送完B9h后,ISP/IAP命令立即被触 起
MOV
NOP
MOV
A, ISP_DATA
EA
; 出的数据在ISP_DATA 元中,送入累加器A
;SETB
ACALL IAP_Disable ;关 IAP 功能, 清相关的特殊功能寄存器,使CPU 于安全状 ,
;一次 的IAP操作完成之后建 关 IAP功能,不需要每次都关
RET
;------------------------------------------------
;字 程, 用前需打开 IAP 功能,入口:DPTR = 字 地址, A=
Byte_Program:
MOV ISP_CONTR, #ENABLE_ISP
MOV ISP_CMD, # ISP_IAP_BYTE_PROGRAM
程字 的数据
; 打开 IAP 功能, 置 Flash 操作等待
; 置 IAP/ISP/EEPROM字
程模式命令
MOV ISP_ADDRH, DPH
MOV ISP_ADDRL, DPL
MOV ISP_DATA, A
;CLR EA
; 置目
; 置目
元地址的高8位地址
元地址的低8位地址
; 要 程的数据先送 ISP_DATA寄存器
MOV ISP_TRIG, #46H
; 先送46h,再送B9h到ISP/IAP触 寄存器,每次都需如此
; 送完B9h后,ISP/IAP命令立即被触 起
MOV ISP_TRIG, #0B9H
NOP
;SETB EA
ACALL IAP_Disable ; 关 IAP 功能, 清相关的特殊功能寄存器,使CPU 于安全状 ,
;一次 的IAP操作完成之后建 关 IAP功能,不需要每次都关
RET
;------------------------------------------------
;擦除扇区, 入口:DPTR = 扇区地址
Sector_Erase:
MOV ISP_CONTR, #ENABLE_ISP
MOV ISP_CMD, #03H
; 打开 IAP 功能, 置 Flash 操作等待
; 置 IAP/ISP/EEPROM扇区擦除模式命令
MOV ISP_ADDRH, DPH
MOV ISP_ADDRL, DPL
; 置目
; 置目
元地址的高8位地址
元地址的低8位地址
;CLR
EA
MOV ISP_TRIG, #46H
; 先送46h,再送B9h到ISP/IAP触 寄存器,每次都需如此
; 送完B9h后,ISP/IAP命令立即被触 起
MOV ISP_TRIG, #0B9H
NOP
;SETB EA
ACALL IAP_Disable ; 关 IAP 功能, 清相关的特殊功能寄存器,使CPU 于安全状 ,
;一次 的IAP操作完成之后建 关 IAP功能,不需要每次都关
RET
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 41
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;------------------------------------------------
IAP_Disable:
;关 IAP 功能, 清相关的特殊功能寄存器,使CPU 于安全状 ,
;一次
的IAP操作完成之后建 关 IAP功能,不需要每次都关
; 关 IAP 功能
MOV ISP_CONTR, #0
MOV ISP_CMD, #0
MOV ISP_TRIG, #0
RET
; 清命令寄存器,使命令寄存器无命令,此句可不用
; 清命令触 寄存器,使命令触 寄存器无触 ,此句可不用
;------------------------------------------------
Delay:
CLR A
MOV R0, A
MOV R1, A
MOV R2, #20H
Delay_Loop:
DJNZ R0, Delay_Loop
DJNZ R1, Delay_Loop
DJNZ R2, Delay_Loop
RET
;------------------------------------------------
END
;************************************************
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 42
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机定 器的使用及 程序
定 器0 和1
定 和 数功能由特殊功能寄存器TMOD的控制位C/T 行
,TMOD寄存器的各位信息如下表所列。
。2个定 / 数器的模式0、1和
可以看出,2个定 / 数器有4种操作模式,通 TMOD的M1和M0
2都相同,模式3不同,各模式下的功能如下所述。
寄存器TMOD各位的功能描述
TMOD
地址:89H
复位 :00H
不可位 址
7
6
5
4
3
2
1
0
GATE C/T
M1
M0
GATE C/T
M1
M0
定 器0
定 器1
位
符号
GATE
功能
TMOD.7/
TMOD.7控制定 器1,置1 只有在INT1脚 高及TR1控制位置1 才
可打开定 器/ 数器1。
TMOD.3/
TMOD.6/
TMOD.2/
GATE
C/T
TMOD.3控制定 器0,置1 只有在INT0脚 高及TR0控制位置1 才
可打开定 器/ 数器0。
TMOD.6 控制定 器1 用作定 器或 数器,清零 用作定 器(从内
部系
TMOD.2 控制定 器0 用作定 器或 数器,清零 用作定 器(从内
部系 入), 置1用作 数器(从T0/P3.4脚 入)
入), 置1用作 数器(从T1/P3.5脚 入)
C/T
TMOD.5/TMOD.4 M1、M0
定 器/ 数器1模式
0
0
13 位定 器/ 数器,兼容8048 定 器模式,TL1 只用低5 位参与分
,TH1整个8位全用。
0
1
1
1
0
1
16 位定 器/ 数器,TL1、TH1 全用
8 位自 重装 定 器,当溢出 将TH1 存放的 自 重装入TL1。
定 器/ 数器1 此 无效(停止 数)。
定 器/ 数器0模式
TMOD.1/TMOD.0 M1、M0
0
0
13 位定 器/ 数器,兼容8048 定 器模式,TL0 只用低5 位参与分
,TH0整个8位全用。
0
1
1
1
0
1
16 位定 器/ 数器,TL0、TH0 全用
8 位自 重装 定 器,当溢出 将TH0 存放的 自 重装入TL0。
定 器0此 作 双8 位定 器/ 数器。TL0作 一个8 位定 器/
数器,通
准定 器0的控制位控制。TH0 作 一个8位定 器,
由定 器1的控制位控制。
1.模式0
将定 器 置成模式0
似8048定 器,即8位 数器 32分 的 分 器。下 所示 模式0
工作方式。此模式下,定 器配置 13位的 数器,由TLn的低5位和THn的8位所构成。TLn低5位溢出
向THn 位,THn 数溢出置位TCON中的溢出 志位TFn(n=0,1)。 GATE=0 ,如TRn=1, 定 器 数。
GATE=1 ,允 由外部 入INT1控制定 器1,INT0控制定 器0,
可
脉
量。TRn TCON寄
存器内的控制位,TCON寄存器各位的具体功能描述 TCON寄存器各位的具体功能描述表。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 43
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
OSC
÷d*
C/T=0
TLn
THn
ꢀ
TFn
中断
(低5 位)
(8 位)
C/T=1
Tn 脚
控制
TRn
定 器n
GATE 位
INTn 脚
* 在T0x12 = 0 模式下,d=12(12
模式); 在T0x12 = 1 模式下,d=1(1T)。
定 器/ 数器0 和定 器/ 数器1 的模式0
表 寄存器TCON 各位的功能描述
:
13 位定 / 数器
TCON 地址:88H
7
6
5
4
3
2
1
0
可位 址
复位 :00H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
位
符 号
功 能
定 器/ 数器1溢出 志位。当T1被允
高位 生溢出 ,置“1”TF1,并向CPU 求中断,当CPU 响
清“0”TF1,TF1 也可以由程序 或清“0 ”。
数后,T1从初 开始加1 数,最
,由硬件
TCON.7
TF1
定 器T1的运行控制位。 位由 件置位和清零。当GATE(TMOD.7)=0,TR1=1
就允 T1开始 数,TR1=0 禁止T1 数。当GATE(TMOD.7)=1,TR1=1且INT1 入
高 平 ,才允 T1 数。
TCON.6
TCON.5
TR1
TF0
定 器/ 数器0溢出 志位。当T0被允
位 生溢出 ,置“1”TF0,并向CPU 求中断,当CPU响
TF0也可以由程序 或清“0”。
数后,T0从初 开始加1 数,最高
,由硬件清“0”TF0,
定 器T0的运行控制位。 位由 件置位和清零。当GATE(TMOD.3)=0,TR0=1
就允 T0开始 数,TR1=0 禁止T0 数。当GATE(TMOD.3)=1,TR0=1且INT0 入
高 平 ,才允 T0 数。
TCON.4
TCON.3
TR0
IE1
外部中断1中断 求 志位。当主机响 中断 向 中断服 程序 行 ,由内部硬件
自 将IE1位清0。
外部中断1触 方式控制位。IT1=0 ,外部中断1 低 平触 方式,当INT1(P3.
3) 入低 平 ,置位IE1。采用低 平触 方式 ,外部中断源( 入到INT1)必 保
持低 平有效,直到 中断被CPU响 ,同 在 中断服 程序 行完之前,外部中断源
必 被清除(P3.3要 高), 否 将 生另一次中断。当IT1=1 , 外部中断1(INT1)
端口由“1”→“0”下降沿跳 ,激活中断 求 志位IE1,向主机 求中断 理。
TCON.2
TCON.1
IT1
IE0
外部中断0中断 求 志位。当主机响 中断 向 中断服 程序 行 ,由内部硬件
自 将IE0位清0。
外部中断1触 方式控制位。IT0=0 ,外部中断0 低 平触 方式,当INT0(P3.
2) 入低 平 ,置位IE0。采用低 平触 方式 ,外部中断源( 入到INT0)必 保
持低 平有效,直到 中断被CPU响 ,同 在 中断服 程序 行完之前,外部中断源
必 被清除(P3.2要 高), 否 将 生另一次中断。当IT0=1 , 外部中断0(INT0)
端口由“1”→“0”下降沿跳 ,激活中断 求 志位IE1,向主机 求中断 理。
TCON.0
IT0
13位寄存器包含THn全部8个位及TLn的低5位。TLn的高3位不定,可将其忽略。置位运行
志(TRn)不能清零此寄存器。模式0的操作 于定 器0及定 器1都是相同的。2个不同的GATE位(TMOD.
7和TMOD.3)分 分配 定 器1及定 器0。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 44
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
2.模式1
模式1 除了使用了THn 及TLn 全部16 位外,其他与模式0 完全相同。
OSC
÷d*
C/T=0
TLn
THn
ꢀ
TFn
中断
(8 位)
(8 位)
C/T=1
Tn 脚
控制
TRn
定 器n
GATE 位
INTn 脚
* 在T0x12 = 0 模式下,d=12(12
模式); 在T0x12 = 1 模式下,d=1(1T)。
定 器/ 数器0 和定 器/ 数器1 的模式1
:
16 位定 / 数器
3.模式2
此模式下定 器/ 数器0 和1 作 可自 重装 的8 位 数器(TLn), 如下 所示。TLn 的溢
出不 置位TFn,而且将THn内容重新装入TLn,THn内容由 件 置,重装 THn内容不 。模式2的操
作 于定 器0及定 器1是相同的。
OSC
÷d*
C/T=0
ꢀ
TLn
TFn
中断
(8 位)
C/T=1
Tn 脚
控制
重装
TRn
定 器n
GATE 位
THn
(8 位)
INTn 脚
* 在T0x12 = 0模式下,d=12(12
模式); 在T0x12 = 1 模式下,d=1(1T)。
定 器/ 数器0 和1 的模式2
: 8 位自 重装
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 45
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
4.模式3
定 器1,在模式3 ,定 器1 停止 数,效果与将TR1 置 0 相同。
定 器0,此模式下定 器0的TL0及TH0作 2个独立的8位 数器。下
模式3 的定 器
0
。TL0占用定 器0的控制位:C/T、GATE、TR0、INT0及TF0。TH0限定 定 器功能( 数器周
期), 占用定 器1 的TR1 及TF1。此 ,TH0 控制定 器1 中断。
模式3 是 了增加一个附加的8 位定 器/ 数器而提供的,使 片机具有三个定 器/ 数器。
模式3只适用于定 器/ 数器0,定 器T1 于模式3 相当于TR1=0,停止 数(此 T1 可用来作
串行口波特率 生器), 而T0可作 两个定 器用。
OSC
÷d*
C/T=0
ꢀ
TL0
TF0
中断
(8 位)
C/T=1
T0 脚
控制
TR0
定 器0
GATE 位
INT0 脚
TH0
OSC
÷d*
TF1
中断
(8 位)
控制
TR1
* 在T0x12 = 0 模式下,d=12(12
模式); 在T0x12 = 1 模式下,d=1(1T)。
定 / 数器0 的模式3
:
两个8 位 数器
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 46
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
定 器 用 例
【例1】 定 / 数器 程,定 / 数器的 用 程主要需考 :根据 用要求,通 程序初
始化,正确 置控制字,正确 算和 算 数初 , 写中断服 程序,适
置 序大致如下:
置控制位等。通常情况下,
1)工作方式控制字(TMOD、T2CON)的 置;
2) 数初 的 算并装入THx、TLx、RCAP2H、RCAP2L;
3)中断允 位ETx、EA的 置,使主机开放中断;
4) 启/停位TRx的 置等。
以定 / 数器0 或1 例作一 要介 。
8051系列 片机的定 器/ 数器0或1是以不断加1 行 数的,即属加1 数器,因此,就不能
直接将
的 数 作
数初 送入 数寄存器THx、TLx中去,而必 将
数 以28、213、216
模求 ,以其
:
作
数
数初
置THx和TLx。
X, 数器 度 n(n=8、13、16),
装入 数器THx、TLx中的 数初
2n-x,式中2n 取模 。例如,工作方式0 的 数 度 13 位, n=13,以213 模,工作方式1
的 数 度 16, n=16,以216 模等等。所以, 数初 (x)= 2 n-x。
于定 模式,是 机器周期 数,而机器周期与 定的主 密切相关。因此,需根据 用系 所
算出机器周期 。 以主 6MHz 例, 机器周期 :
定的主
12
12
μs
一个机器周期=
2μs
=
=
6×106
主振 率
定
Tc = x · Tp
式中Tp 机器周期,Tc 所需定
Tp后即可求得所需 数 x,再将x求
,x 所需 数次数。Tp 和Tp 一般 已知 ,在求出
,即求得定
数初 。即
(x) = 2n - x
例如, 定
Tc = 5ms ,机器周期TP = 2 μs,可求得定
数次数
5ms
x =
= 2500次
数初
2μs
用工作方式1, n=16,
置的定
:(x) = 216 - x=65536-2500=63036,
需将它分解成两个8位十六 制数,分 求得低8位 3CH装入TLx,高8位 F6H装入THx中。
工作方式0、1、2的最大 数次数分
外部事件 数模式,只需根据
8192、65536和256。
数次数求 后 成两个十六 制 即可。
定 / 数器1定 模式,定
【例2】 定 / 数器 用 程, 某 用系 ,
Tc = 10ms,
F0H,高8
主
率 12MHz,每10ms向主机 求 理。 定工作方式1。 算得 数初 :低8位初
位初
D8H。
(1)初始化程序
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 47
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
所 初始化,一般在主程序中根据 用要求 定 / 数器 行功能
本例初始化程序如下:
及参数 定等 置程序,
START:
;主程序段
MOV SP,#60H
MOV TMOD,#10H
MOV TH1,#0D8H
MOV TL1,#0F0H
SETB EA
; 置堆 区域
;
T 1 、定 模式,工作方式1
; 置高字
; 置低字
数初
数初
;
开中断
SETB ET1
;
}
;
其他初始化程序
SETB TR1
;启 T1 开始
主程序
;
(2 )中断服 程序
INTT1:
PUSH A
;
PUSH DPL
PUSH DPH
;
}
保
;
MOV TL1,#0F0H
MOV TH1,#0D8H
;
重新置初
;
}
;中断 理主体程序
POP DPH
POP DPL
POP A
RETI
;
;
}
恢复
;
;返回
里展示了中断服 子程序的基本格式。8052系列 片机的中断属于矢量中断,每一个矢量中断源
只留有8 个字
【例3】 外部正脉冲
定 / 数器1 行 操作。本例 用定 / 数器0(T0)以定 模式,工作方式1 INT0引脚上的正
脉冲 行脉
元,一般是不 用的,常需用 移指令 到真正的中断服 子程序区去 行。
。
定 / 数器2 行脉 方便,但也可 用定 / 数器0或
。
INT0 引脚
T0 数
启
停止
置GATE 1,机器周期TP 1 μs。本例程序段 制如下:
INTT0: MOV TMOD,#09H ; T0 定 方式1,GATE 1
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 48
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
MOV TL0,#00H
MOV TH0,#00H
CLR EX0
;
TH0,TL0清0
;
}
;关INT0 中断
LOP1:
LOP2:
JB
P3.2,LOP1
;等待INT0 引低 平
;等待INT0 引脚高 平
;启 T0 开始 数
;等待INT0 低 平
;停止T0 数
JNB P3.2,LOP2
SETB TR0
LOP3:
JB
P3.2,LOP3
CLR TR0
MOV A,TL0
MOV B,TH0
;低字
;高字
数 送A
数 送B
; 算脉 和 理
【例4】 利用定 / 数器0 或定 / 数器1 的Tx 端口改造成外部中断源 入端口的 用
在某些 用系 中常会出 原有的两个外部中断源INT0 和INT1 不 用,而定 / 数器有多余,
可将Tx 用于增加的外部中断源。 定 / 数器1 外部事件 数模式工作方式2(自 再装
入), 置 数初 FFH, T1 端口 入一个 跳 脉冲, 数器即回0 溢出,置位 的中断
。
求 志位TF1 1,向主机 求中断 理,从而达到了增加一个外部中断源的目的。 用定 / 数器
1 (T 1 )的中断矢量 入中断服 程序 理。其程序示例如下:
(1 )主程序段:
ORG 0000H
AJMP MAIN
ORG 001BH
LJMP INTER
; 主程序
; T1中断服 程序
;主程序入口
ORG 0100
MAIN:⋯
MOV SP,#60H
MOV TMOD,#60H
MOV TL1,#0FFH
MOV TH1,#0FFH
SETB EA
; 置堆 区
; 置定 / 数器1, 数方式2
; 置 数常数
;开中断
SETB ET1
;开定 / 数器1中断
;启 定 / 数器1 数
SETB TR1
(2)中断服 程序(具体 理程序略)
ORG 1000H
INTER:
PUSH A
;
;
PUSH DPL
PUSH DPH
入 保
}
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 49
;
宏晶科技:
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;
}
中断 理主体程序
;
POP DPH
;
POP DPL
;
}
出 复原
POP A
RETI
;
;返回
是中断服 程序的基本格式。
【例5】 某 用系 需通 P1.0 和P1.1 分
定 器/ 数器0(T0), 定 方式3,主
本例程序段 制如下:
出周期 200 μs 和400 μs 的方波。 此,系
6MHz,TP=2μs, 算得定 常数 9CH和38H。
用
(1)初始化程序段
PLT0:MOV TMOD,#03H
MOV TL0,#9CH
MOV TH0,#38H
SETB EA
; 置T0 定 方式3
; 置TL0初
; 置TH0初
;
开中断
SETB ET0
;
}
SETB ET1
;
SETB TR0
;启
;启
SETB TR1
(2)中断服 程序段
1)
INT0P:
MOV TL0,#9CH
CPL P1.0
;重新 置初
; P1.0 出信号取反
RETI
;返回
2)
INT1P
MOV TH0,#38H
CPL P1.1
;重新 置初
; P1.1 出信号取反
RETI
;返回
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 50
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
用中 注意的 如下。
Fax: 0755-82944243
在
(1)定 / 数器的
定 / 数器启
性
数后,当
回0溢出向主机 求中断 理,由内部硬件自
延 ,且 种延 随中断 求 的
理 来 差。大多数 用 合可忽略不 ,但 某些要求
行。但从回0溢
出 求中断到主机响 中断并作出 理存在
一般需延 3 个机器周期以上, 就
境的不同而不同,
性苛刻的 合, 采用
种由中断响 引起的
措施。
延 , 定 / 数器工作于方式0或1而言有两种含 :一是由于中断
理的 差;二是如需多次且 不 断地定 / 数,由于中断响 延 , 在
响 延 而引起的
中断服 程序中再置 数初
例如 用定 方式1 置系
已延 了若干个 数 而引起 差,特 是用于定 就更明 。
,由于上述原因就会 生
差。 种 合 采用
法
以减少系 始
差。所
,即在中断服 程序中 THx、TLx重新置 数初
, 将THx、TLx
从回0溢出又重新从0开始
法:
数的
出,并
到原 数初 中去 行重新 置。可考 如下
方
CLR EA
;禁止中断
MOV A,TLx
ADD A,#LOW
MOV TLx,A
MOV A,#HIGH
ADDC A,THx
MOV THx,A
SETB EA
; TLx中已 数
;LOW 原低字
数初
; 置低字
;原高字
;高字
数初
数初 送A
数初
数初
;置高字
;开中断
(2 )
在
取运行中的 数
取运行中的定 / 数器的 数
,如果不加注意,就可能出 。 是因 不可能在同一
刻同
取THx和TLx中的 数 。比如,先 TLx后 THx,因 定 / 数器 于运行状 ,在 TLx
尚未 生向THx 位,而在 THx前已 生 位,
可能出 。
得的THx就不 了;同 ,先 THx后 TLx也
一种可避免
的方法是:先 THx,后 TLx,将两次 得的THx 行比 ;若两次 得的 相等,
可确定 的 是正确的,否 重复上述 程,重复 得的 一般不会再 。此法的 件 程如下:
RDTM: MOV A,THx
MOV R0,TLx
; 取THx 存A 中
; 取TLx 存R0 中
CJNE A,THx,RDTM
;比 两次THx ,若相等,
;确,程序往下 行,否 重
;将THx存于R1中
得的 正
MOV R1 ,A
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 51
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
定 器1做波特率 生器
;------------------------------------------------------------------------------
本程序演示 STC12C2052AD、STC12C5410AD 系列 片机用定 器1作 RS-232 通信
;波特率 生器的使用方法, 有关波特率自 重装数的 算 看程序后面的内容
本程序同 演示 STC89C51RC/STC89C52RC/STC89C53RC/STC89C54RD+/STC89C58RD+/
;STC89C516RD+系列 片机用定 器1作 RS-232 通信波特率 生器的使用方法。
STC12C2052AD 、STC12C5410AD 系列是 "一个 /机器周期" 的 8051 片机。它
;的定 器0、定 器1 有两种 数速率,一种是12T 模式:每12 个 加 1,与普通的
;
;
;
;8051 片机相同;另一种是1T 模式:每个
STC89C51RC/RD+ 系列是 "12个
; 机相同。
STC12C2052AD 、STC12C5410AD 系列的 片机, 定 器0、定 器1 的 数速率由
加 1,是普通8051 片机的 12 倍。
;
/机器周期" 的 8051 片机, 与普通的 8051 片
;
;特殊功能寄存器 AUXR 的 bit7, bit6 决定,bit7 的符号是 T0x12, 如果 T0x12=1,
;定 器0 就工作在 1T 模式。bit6 的符号是 T1x12, 如果 T1x12=1,定 器1 就工作在
;1T模式。有关 情 参考 STC12C5410AD 系列 片机器件手册(中文 用指南)。
;使用方法:
; 1. 修改程序, 改 波特率参数或改 定 器1的 数速率(1T模式/12T模式)
; 2.
; 3.
;
程序, 将代 下 到 片机中
整串口
助手的波特率与 片机的波特率相同, 并打开
助手的串口。STC
下 程序 STC-ISP.exe 版本 3.2 以上有串口
助手功能。
; 4. 打开 片机 源, 可以在串口
; 5. 用串口 助手 送 个字 到 片机, 片机收到后会立即回 到串口
; 6. 反复步 1-5, 波特率参数是否正确, 特 要 察定 器1 工作在 1T 模式
的波特率。例如,先 置定 器1 工作在 12T 模式, 置波特率 9600, 行
将定 器1 的 数速率改成
本程序的波特率 成了 115200,波特率是
助手的接收区看到 片机 出的数据
助手
;
;
;
;
;
步 2-5,
波特率参数是否正确。然后
1T 模式, 行步 2-5,就会
12T 模式的 12 倍。
;------------------------------------------------------------------------------
;定 STC12C5410AD 系列 MCU 特殊功能寄存器
AUXR
EQU 8EH
;------------------------------------------------------------------------------
;定 波特率自 重装数
;******************************************************************************
;以下是 Fosc = 22.1184MHz, 1T 模式, SMOD=1
, 算出的自 重装数和波特率
;RELOAD_COUNT EQU 0FFH
;RELOAD_COUNT EQU 0FEH
;RELOAD_COUNT EQU 0FDH
;RELOAD_COUNT EQU 0FCH
;RELOAD_COUNT EQU 0FBH
;RELOAD_COUNT EQU 0FAH
;RELOAD_COUNT EQU 0F4H
;Baud=1,382,400 bps
;Baud=691,200 bps
;Baud=460,800 bps
;Baud=345,600 bps
;Baud=276,480 bps
;Baud=230,400 bps
;Baud=115,200 bps
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 52
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;RELOAD_COUNT EQU 0E8H
;RELOAD_COUNT EQU 0DCH
;RELOAD_COUNT EQU 0B8H
;RELOAD_COUNT EQU 70H
;Baud=57,600 bps
;Baud=38,400 bps
;Baud=19,200 bps
;Baud=9,600 bps
;以上是 Fosc = 22.1184MHz, 1T 模式, SMOD=1
, 算出的自 重装数和波特率
;******************************************************************************
;******************************************************************************
;以下是 Fosc = 1.8432MHz, 1T 模式, SMOD=1
, 算出的自 重装数和波特率
;RELOAD_COUNT EQU 0FFH
;RELOAD_COUNT EQU 0FEH
;RELOAD_COUNT EQU 0FDH
;RELOAD_COUNT EQU 0FCH
;RELOAD_COUNT EQU 0FAH
;Baud=115,200 bps
;Baud=57,600 bps
;Baud=38,400 bps
;Baud=28,800 bps
;Baud=19,200 bps
;RELOAD_COUNT EQU 0F4H
;RELOAD_COUNT EQU 0E8H
;RELOAD_COUNT EQU 0D0H
;RELOAD_COUNT EQU 0A0H
;Baud=9,600 bps
;Baud=4,800 bps
;Baud=2,400 bps
;Baud=1,200 bps
;以上是 Fosc = 1.8432MHz, 1T 模式, SMOD=1
, 算出的自 重装数和波特率
;******************************************************************************
;******************************************************************************
;以下是 Fosc = 18.432MHz, 1T 模式, SMOD=1
, 算出的自 重装数和波特率
;RELOAD_COUNT EQU 0FFH
;RELOAD_COUNT EQU 0FEH
;RELOAD_COUNT EQU 0FDH
;RELOAD_COUNT EQU 0FCH
;RELOAD_COUNT EQU 0F6H
;RELOAD_COUNT EQU 0ECH
;RELOAD_COUNT EQU 0E2H
;RELOAD_COUNT EQU 0D8H
;RELOAD_COUNT EQU 0C4H
;RELOAD_COUNT EQU 088H
;Baud=1,152,000 bps
;Baud=576,000 bps
;Baud=288,000 bps
;Baud=144,000 bps
;Baud=115,200 bps
;Baud=57,600 bps
;Baud=38,400 bps
;Baud=28,800 bps
;Baud=19,200 bps
;Baud=9,600 bps
;以上是 Fosc = 18.432MHz, 1T 模式, SMOD=1
, 算出的自 重装数和波特率
;******************************************************************************
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 53
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;******************************************************************************
;以下是 Fosc = 18.432MHz, 1T 模式, SMOD=0 , 算出的自 重装数和波特率
;RELOAD_COUNT EQU 0FFH
;RELOAD_COUNT EQU 0FEH
;RELOAD_COUNT EQU 0FDH
;RELOAD_COUNT EQU 0FCH
;RELOAD_COUNT EQU 0F6H
;RELOAD_COUNT EQU 0ECH
;RELOAD_COUNT EQU 0E2H
;RELOAD_COUNT EQU 0D8H
;RELOAD_COUNT EQU 0C4H
;RELOAD_COUNT EQU 088H
;Baud=576,000 bps
;Baud=288,000 bps
;Baud=144,000 bps
;Baud=115,200 bps
;Baud=57,600 bps
;Baud=38,400 bps
;Baud=28,800 bps
;Baud=19,200 bps
;Baud=9,600 bps
;Baud=4,800 bps
;以上是 Fosc = 18.432MHz, 1T 模式, SMOD=0
, 算出的自 重装数和波特率
;******************************************************************************
;******************************************************************************
;以下是 Fosc = 18.432MHz, 12T 模式, SMOD=0
, 算出的自 重装数和波特率
RELOAD_COUNT EQU 0FBH
;RELOAD_COUNT EQU 0F6H
;RELOAD_COUNT EQU 0ECH
;RELOAD_COUNT EQU 0D8H
;Baud=9,600 bps
;Baud=4,800 bps
;Baud=2,400 bps
;Baud=1,200 bps
;以上是 Fosc = 18.432MHz, 12T 模式, SMOD=0
, 算出的自 重装数和波特率
;******************************************************************************
;******************************************************************************
;以下是 Fosc = 18.432MHz, 12T 模式, SMOD=1
, 算出的自 重装数和波特率
;RELOAD_COUNT EQU 0FBH
;RELOAD_COUNT EQU 0F6H
;RELOAD_COUNT EQU 0ECH
;RELOAD_COUNT EQU 0D8H
;RELOAD_COUNT EQU 0B0H
;Baud=19,200 bps
;Baud=9,600 bps
;Baud=4,800 bps
;Baud=2,400 bps
;Baud=1,200 bps
;以上是 Fosc = 18.432MHz, 12T 模式, SMOD=1
, 算出的自 重装数和波特率
;******************************************************************************
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 54
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;******************************************************************************
;以下是 Fosc = 11.0592MHz, 12T 模式, SMOD=0 , 算出的自 重装数和波特率
;RELOAD_COUNT EQU 0FFH
;RELOAD_COUNT EQU 0FEH
;RELOAD_COUNT EQU 0FDH
;RELOAD_COUNT EQU 0FAH
;RELOAD_COUNT EQU 0F4H
;RELOAD_COUNT EQU 0E8H
;Baud=28,800 bps
;Baud=14,400 bps
;Baud=9,600 bps
;Baud=4,800 bps
;Baud=2,400 bps
;Baud=1,200 bps
;以上是 Fosc = 11.0592MHz, 12T 模式, SMOD=0
, 算出的自 重装数和波特率
;******************************************************************************
;******************************************************************************
;以下是 Fosc = 11.0592MHz, 12T 模式, SMOD=1
, 算出的自 重装数和波特率
;RELOAD_COUNT EQU 0FFH
;RELOAD_COUNT EQU 0FEH
;RELOAD_COUNT EQU 0FDH
;RELOAD_COUNT EQU 0FAH
;RELOAD_COUNT EQU 0F4H
;RELOAD_COUNT EQU 0E8H
;RELOAD_COUNT EQU 0D0H
;Baud=57,600 bps
;Baud=28,800 bps
;Baud=14,400 bps
;Baud=9,600 bps
;Baud=4,800 bps
;Baud=2,400 bps
;Baud=1,200 bps
;以上是 Fosc = 11.0592MHz, 12T 模式, SMOD=1
, 算出的自 重装数和波特率
;******************************************************************************
;定 指示灯
LED_MCU_START EQU P1.7
;MCU 工作指示灯
;------------------------------------------------------------------------------
ORG 0000H
AJMP MAIN
;------------------------------------------------------------------------------
ORG 0023H
AJMP UART_Interrupt
;RS232 串口中断服 程序
NOP
NOP
;------------------------------------------------------------------------------
MAIN:
MOV SP, #7FH
; 置堆 指
CLR LED_MCU_START
ACALL Initial_UART
MOV R0, #30H
; 点亮 MCU 工作指示灯
; 初始化串口
;30H = 可打印字符 '0' 的ASCII
; 送10个字符'0123456789'
MOV R2, #10
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 55
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
LOOP:
MOV A, R0
ACALL Send_One_Byte
; 送一个字 ,可将PC串口
助手 置成字符 示
;如果是字符 示, 示 0123456789,
;如 置成 16 制 示, 示 30 31 32 33 34 35 36 37 38 39
INC R0
DJNZ R2, LOOP
MAIN_WAIT:
SJMP MAIN_WAIT
;------------------------------------------------------------------------------
; 跳 到本行, 无限循
UART_Interrupt:
; 串口中断服 程序
JB
RI, Is_UART_Receive
CLR TI
; 清零串口 送中断 志
RETI
;
送 使用的是
方式,不使用中断
Is_UART_Receive:
CLR RI
PUSH ACC
MOV A, SBUF
ACALL Send_One_Byte
POP ACC
RETI
; 取接收到的字
; 回 收到的字
;------------------------------------------------------------------------------
Initial_UART:
; 初始化串口
; SCON Bit: 7
6
5
4
3
2
1
0
;
SM0/FE SM1 SM2 REN TB8 RB8
TI RI
MOV SCON, #50H
; 0101,0000 8 位可 波特率, 无奇偶校
MOV TMOD, #21H
; 置定 器1
8位自 重装 数器
MOV TH1, #RELOAD_COUNT
MOV TL1, #RELOAD_COUNT
; 置定 器1 自 重装数
;---------------------------------------
ORL PCON, #80H ; 若本行有效, 波特率可以加倍
;
;---------------------------------------
;以下两行指令只能有一行有效
;
ORL AUXR, #01000000B
12倍
; 定 器1工作在1T模式,波特率可以快
ANL AUXR, #10111111B
; 定 器1工作在12T模式,与普通的8051相同
;以上两行指令只能有一行有效
;---------------------------------------
SETB TR1
SETB ES
SETB EA
RET
; 启 定 器1
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 56
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;------------------------------------------------------------------------------
;入口参数: A = 要 送的字
Send_One_Byte:
CLR ES
; 送一个字
CLR TI
; 清零串口 送中断 志
MOV SBUF, A
Wait_Send_Finish:
JNB TI, Wait_Send_Finish
CLR TI
; 等待 送完
; 清零串口 送中断 志
SETB ES
RET
;------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------
; 算自 重装数 RELOAD (SMOD = 0, SMOD 是 PCON 特殊功能寄存器的最高位):
; 1. 算 RELOAD (以下是 SMOD = 0 的 算公式)
;
;
;
;
;
;
;
;
a) 12T 模式的 算公式: RELOAD = 256 - INT(Fosc/Baud0/32/12 + 0.5)
b) 1T 模式的 算公式: RELOAD = 256 - INT(Fosc/Baud0/32 + 0.5)
式中: INT() 表示取整运算即舍去小数, 在式中加 0.5 可以达到四舍五入的目的
Fosc = 晶振 率
Baud0 =
准波特率
; 2. 算用 RELOAD 生的波特率:
;
;
;
a) Baud = Fosc/(256 - RELOAD)/32/12
b) Baud = Fosc/(256 - RELOAD)/32
12T 模式
1T 模式
; 3. 算 差
;
error = (Baud - Baud0)/Baud0 * 100%
; 4. 如果 差
> 4.5% 要更 波特率或者更 晶体 率, 重复步 1-4
;
;
;例: Fosc = 22.1184MHz, Baud0 = 57600 (12T 模式)
; 1. RELOAD = 256 - INT( 22118400/57600/32/12 + 0.5)
;
;
;
;
= 256 - INT( 1.5 )
= 256 - 1
= 255
= 0FFH
; 2. Baud = 22118400/(256-255)/32/12
= 57600
; 3. 差等于零
;
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 57
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;例: Fosc = 18.432MHz, Baud0 = 57600 (12T 模式)
; 1. RELOAD = 256 - INT( 18432000/57600/32/12 + 0.5)
;
;
;
;
;
= 256 - INT( 0.833 + 0.5 )
= 256 - INT( 1.333 )
= 256 - 1
= 255
= 0FFH
; 2. Baud = 18432000/(256-255)/32/12
= 48000
; 3. error = (48000 - 57600)/57600 * 100%
= -16.66%
;
;
; 4. 差很大, 要更 波特率或者更 晶体 率, 重新 算
下一例
;例: Fosc = 18.432MHz, Baud0 = 9600 (12T 模式)
; 1. RELOAD = 256 - INT( 18432000/9600/32/12 + 0.5)
;
;
;
;
= 256 - INT( 5.5 )
= 256 - 5
= 251
= 0FBH
; 2. Baud = 18432000/(256-251)/32/12
= 9600
;
; 3. 一目了然, 差等于零
;例: Fosc = 2.000MHz, Baud = 4800 (1T 模式)
; 1. RELOAD = 256 - INT( 2000000/4800/32 + 0.5)
;
;
;
;
;
= 256 - INT( 13.02 + 0.5 )
= 256 - INT( 13.52 )
= 256 - 13
= 243
= 0F3H
; 2. Baud = 2000000/(256-243)/32
= 4808
; 3. error = 0.16%
;------------------------------------------------------------------------------
;
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 58
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
A/D 及 A/D
程序
STC12C5410AD系列 A/D
的 片机在P1口,有8路10位高速A/D
入型A/D,可做温度 、 池 、按
件 置将8路中的任何一路 置 A/D
器, 速度可达100KHz。
P1.7 - P1.0 共8路
描、
等。上 复位
后P1口 弱上拉型I/O口,用 可以通
,不需作 A/D使
用的口可
作 I/O口使用。需作 A/D使用的口需先将其 置 高阻 入或开漏模式。在P1M0、P1M1
中 相 的位 行 置。
P1M0【7:0】
地址:91h
P1M1【7:0】
地址:92h
口模式(
如做
使用,需先将其 置成开漏或高阻 入)
A/D
I/O
P1.x
准双向口(
灌 流可达
口模式)
8051 I/O
,
0
0
拉 流
20mA ,
推挽 出( 上拉 出,可达
230µA
20mA
0
1
1
1
0
1
,尽量少用)
入(高阻),如果
口需作
使用,可 此模式
I/O
A/D
使用,可 此模式
A/D
开漏
7
,如果
口需作
(Open Drain)
I/O
Mnemonic Add Name
ADC_CONTR C5h A/D
ADC_DATA C6h A/D
ADC_LOW2 BEh A/D
6
5
4
3
2
1
0
Reset Value
控制寄存器
ADC_POWER SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 0xx0,0000
果寄存器,高8位
果寄存器,低2位
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
xxxx,xxxx
xxxx,xxxx
ADC_CONTR 特殊功能寄存器: A/D
控制特殊功能寄存器
A/D
控制寄存器
ADC_POWER SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 0xx0,0000
CHS2 / CHS1 / CHS0 :模
入通道
,CHS2 / CHS1 / CHS0
A n a l o g
模
I n p u t
入 通 道
C h a n n e l
S e l e c t
C H S 2
C H S 1
C H S 0
0
0
0
P 1 . 0 作
P 1 . 1 作
P 1 . 2 作
P 1 . 3 作
P 1 . 4 作
P 1 . 5 作
P 1 . 6 作
P 1 . 7 作
A / D
A / D
A / D
A / D
A / D
A / D
A / D
A / D
入 来 用
入 来 用
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
入 来 用
入 来 用
入 来 用
入 来 用
入 来 用
入 来 用
ADC_START: 模数
ADC_FLAG: 模数
器(ADC)
束 志位,当A/D
完成后由 位申
完成后,ADC_FLAG = 1,一定要 件清0。
启 控制位, 置 “1” ,开始
完成后,ADC_FLAG = 1 ,要由 件清0。
生中断, 是由 件 志位A/D 是否 束,
,
束后 0。
器
不管是A/D
当A/D
SPEED1,SPEED0:模数
器
速度控制位
A / D
S P E E D 1
S P E E D 0
所 需
周 期
率 2 0 M H z
速 度
2 1 0 个
C P U 工 作
A / D
一 次 ,
,
1 0 0 K H z
1
1
1
0
0
0
1
0
4 2 0 个
6 3 0 个
8 4 0 个
周 期
周 期
周 期
一 次
一 次
一 次
ADC_POWER: ADC 源控制位。
0:关 ADC 源;1:打开A/D
器 源
启 AD
前一定要确 AD 源已打开,AD
束后关 AD 源可降低功耗,也可不关 。
初次打开内部A/D
模
源,需适当延 ,等内部模
源 定后,再启 A/D
建 启 A/D
后,在A/D
束之前,不改 任何I/O 口的状 ,有利于高精度A/D
ADC_DATA / ADC_LOW2 特殊功能寄存器: A/D
果特殊功能寄存器
ADC_DATA C6h A/D
ADC_LOW2 BEh A/D
果寄存器,全部8位有效, 10位A/D
果寄存器,只有低2位有效, 10位A/D
果的高8位
- - - - - - - - xxxx,xxxx
果的低2位 x x x x x x - - xxxx,xxxx
模
/ 数字
Vin 模
取ADC_DATA的8位 ADC
如果舍弃ADC_LOW2的低2位,只用ADC_DATA寄存器的8位, A/D
果 算公式如下: 果( ADC_DATA[7:0],ADC_LOW2[1:0] ) = 1024 x Vin / Vcc
入通道 入 ,Vcc 片机 工作 ,用 片机工作 作 模 参考
的高8位,取ADC_LOW2的低2位 ADC
。
的低2位,
10位精度。
果 8位精度。
果 ADC_DATA[7:0] = 256 x Vin / Vcc
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 59
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
A/D 典型 用 路,按 描
Vcc
P2.2
1
28
27
26
25
24
23
22
21
20
19
18
17
16
15
VDD
P2.3
2
P2.1
10K
10K
10K
10K
10K
RST
RxD/P3.0
3
P2.0/CEX2/PCA2/PWM2
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P1.4/SS/ADC4
P1.3/ADC3
47pF以上
4
TxD/P3.1
5
XTAL2
6
XTAL1
7
1/2 Vcc
2/3 Vcc
INT0/P3.2
8
INT1/P3.3
9
P1.2/ADC2
ECI/T0/P3.4
PWM1/PCA1/CEX1/T1/P3.5
PWM3/PCA3/CEX3/P2.4
P2.5
10
11
12
13
14
P1.1/ADC1
P1.0/ADC0
P3.7/CEX0/PCA0/PWM0
P2.7
3/4 Vcc
4/5 Vcc
VSS
P2.6
A/D
在P1口, P1.0 - P1.7共八路
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 60
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
A/D 功能 程序示例
;/* --- STC International Limited ---------------- */
;/* --- 宏晶科技 姚永平
2006/1/6 V1.0 ----- */
;/* --- 演示 STC12C5410AD 系列 MCU 的 A/D
;/* --- 演示 STC12C2052AD 系列 MCU 的 A/D
功能- */
功能- */
;/* --- Mobile: 13922805190 ---------------------- */
;/* --- Fax: 0755-82944243 ----------------------- */
;/* --- Tel: 0755-82948409 ----------------------- */
;/* --- Web: www.mcu-memory.com ------------------ */
;ADC DEMO_5410_ASM.ASM
程序演示 STC12C5410AD 系列 MCU 的 A/D
功能。
;本演示程序在STC-ISP Ver 3.0A.PCB 的下
程工具上
通 ,相关的A/D
程序 察 出 果。
果在P1口上 示
;
;
;
果也以 16
制形式 出到串行口,可以用串行口
18.432MHz, 波特率 = 9600。
果也在 P1 口利用 LED 示出来, 方便 察。
LED_MCU_START EQU P3.7
ADC_CONTR EQU 0C5H ;A/D
ADC_DATA EQU 0C6H ;A/D
;ADC_LOW2 EQU 0BEH ;A/D
寄存器
果寄存器,
果寄存器, 低2位有效,
;如果不用ADC_LOW2的低2位,只用ADC_DATA的8位,
10位 A/D
果的高8位
10位 A/D
果的低2位
8位A/D
P1M0
P1M1
EQU 91H
EQU 92H
;P1 口模式
;P1 口模式
寄存器0
寄存器1
ADC_Power_On_Speed_Channel_0 EQU 11100000B
ADC_Power_On_Speed_Channel_1 EQU 11100001B
ADC_Power_On_Speed_Channel_2 EQU 11100010B
ADC_Power_On_Speed_Channel_3 EQU 11100011B
ADC_Power_On_Speed_Channel_4 EQU 11100100B
ADC_Power_On_Speed_Channel_5 EQU 11100101B
ADC_Power_On_Speed_Channel_6 EQU 11100110B
ADC_Power_On_Speed_Channel_7 EQU 11100111B
;P1.0 作 A/D 入
;P1.1 作 A/D 入
;P1.2 作 A/D 入
;P1.3 作 A/D 入
;P1.4 作 A/D 入
;P1.5 作 A/D 入
;P1.6 作 A/D 入
;P1.7 作 A/D 入
;-------------------------------------------------
;定
量
ADC_Channel_0_Result
ADC_Channel_1_Result
ADC_Channel_2_Result
ADC_Channel_3_Result
ADC_Channel_4_Result
ADC_Channel_5_Result
ADC_Channel_6_Result
ADC_Channel_7_Result
EQU 30H
EQU 31H
EQU 32H
EQU 33H
EQU 34H
EQU 35H
EQU 36H
EQU 37H
;0 通道A/D
;1 通道A/D
;2 通道A/D
;3 通道A/D
;4 通道A/D
;5 通道A/D
;6 通道A/D
;7 通道A/D
果
果
果
果
果
果
果
果
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 61
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;--------------------------------------------------
ORG 0000H
LJMP MAIN
ORG 0050H
MAIN:
CLR LED_MCU_START
MOV SP, #7FH
;MCU 工作指示灯 LED_MCU_START EQU P3.7
; 置堆
ACALL Initiate_RS232
ACALL ADC_Power_On
; 初始化串口
; 开ADC 源, 第一次使用 要打开内部模
源
;开ADC 源, 可适当加延 ,1mS以内就足 了
; 置 P1.2 开漏
ACALL Set_P12_Open_Drain
ACALL Set_ADC_Channel_2
; 置 P1.2 作 A/D
通道
ACALL Get_AD_Result
ACALL Send_AD_Result
; 量
; 送
并且取A/D
果到 PC 机
果
ACALL Set_P12_Normal_IO
; 置 P1.2 普通IO
MOV A, ADC_Channel_2_Result ; 用 P1 口 示A/D
果
CPL A
MOV P1, A
Wait_Loop:
SJMP Wait_Loop
; 停机
;-------------------------------------------------------------
;-------------------------------------------------------------
;-------------------------------------------------------------
;-------------------------------------------------------------
Initiate_RS232:
CLR ES
; 串口初始化
; 禁止串口中断
MOV TMOD, #20H
; 置 T1 波特率 生器
;0101,0000 8 位数据位, 无奇偶校
;18.432MHz 晶振, 波特率 = 9600
MOV SCON, #50H
MOV TH1, #0FBH
MOV TL1, #0FBH
SETB TR1
RET
; 启 T1
;--------------------------------------------------------------
Send_Byte:
CLR TI
MOV SBUF, A
Send_Byte_Wait_Finish:
JNB TI, Send_Byte_Wait_Finish
CLR TI
RET
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 62
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;--------------------------------------------------------------
ADC_Power_On:
PUSH ACC
ORL ADC_CONTR, #80H
MOV A, #20H
ACALL Delay
POP ACC
; 开A/D
源
; 开A/D
源后要加延 ,1mS以内就足 了
RET
;-------------------------------------------------------------
; 置P1.2, 置A/D通道所在的I/O 开漏模式
Set_P12_Open_Drain:
PUSH ACC
MOV A, #00000100B
ORL P1M0, A
ORL P1M1, A
POP ACC
RET
;-------------------------------------------------------------
; 置 P1.2 普通IO
Set_P12_Normal_IO:
PUSH ACC
MOV A, #11111011B
ANL P1M0, A
ANL P1M1, A
POP ACC
RET
;-------------------------------------------------------------
Set_ADC_Channel_2:
MOV ADC_CONTR, #ADC_Power_On_Speed_Channel_2
;
P1.2作 A/D
通道
MOV A, #05H ; 更 A/D
通道后要适当延 , 使 入
定
;以后如果不更 A/D
通道的 , 不需要加延
ACALL Delay
RET
; 切 A/D 通道,加延 20uS~200uS就可以了,与 入
源的内阻有关
;-------------------------------------------------------------
Send_AD_Result:
PUSH ACC
MOV A, ADC_Channel_2_Result ; 取 AD
果
ACALL Send_Byte
POP ACC
RET
; 送
果到 PC 机
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 63
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;----------------------------------------------------------
Get_AD_Result:
PUSH ACC
; 入 保
MOV ADC_DATA, #0
ORL ADC_CONTR, #00001000B
; 启 AD
Wait_AD_Finishe:
MOV A, #00010000B
ANL A, ADC_CONTR
; 判断 AD
;AD
是否完成
JZ
Wait_AD_Finishe
尚未完成,
等待
ANL ADC_CONTR, #11100111B
MOV A, ADC_DATA
; 清0 ADC_FLAG, ADC_START 位, 停止A/D
MOV ADC_Channel_2_Result, A ; 保存 AD
果
POP ACC
RET
;---------------------------------------------------------------
Delay:
PUSH 02
PUSH 03
PUSH 04
MOV R4, A
; 将寄存器 0 的 R2 入
; 将寄存器 0 的 R3 入
; 将寄存器 0 的 R4 入
Delay_Loop0:
MOV R3, #200
;2 CLOCK ---------------------+
Delay_Loop1:
;
|
|
MOV R2, #249
;2 CLOCK ------+
Delay_Loop:
;
| 1002 CLOCK |200406 CLOCK
DJNZ R2, Delay_Loop
DJNZ R3, Delay_Loop1
DJNZ R4, Delay_Loop0
;4 CLOCK
|
|
|
;4 CLOCK ------+
;4 CLOCK ---------------------+
POP 04
POP 03
POP 02
RET
;----------------------------------------------------------------
END
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 64
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410 系列 片机PWM/PCA 用及 程序
PCA/PWM SFRs
STC12C5410AD系列 1T 8051
片机 PCA/PWM 特殊功能寄存器
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset value
CCF3 CCF2 CCF1 CCF0 00xx,0000
CPS1 CPS0 ECF 0xxx,x000
CCON
CMOD
D8h PCA Control Register CF
CR
-
-
-
D9h PCA Mode Register
CIDL
-
-
-
PCA Module 0
DAh
CCAPM0
CCAPM1
CCAPM2
CCAPM3
-
-
-
-
ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 x000,0000
ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 x000,0000
ECOM2 CAPP2 CAPN2 MAT2 TOG2 PWM2 ECCF2 x000,0000
ECOM3 CAPP3 CAPN3 MAT3 TOG3 PWM3 ECCF3 x000,0000
Mode Register
PCA Module 1
DBh
Mode Register
PCA Module 2
DCh
Mode Register
PCA Module 3
DDh
Mode Register
CL
CH
E9h PCA Base Timer Low
F9h PCA Base Timer High
0000,0000
0000,0000
PCA Module-0 Capture
Register Low
CCAP0L
CCAP0H
CCAP1L
CCAP1H
CCAP2L
CCAP2H
CCAP3L
CCAP3H
EAh
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
0000,0000
PCA Module-0 Capture
Register High
FAh
PCA Module-1 Capture
Register Low
EBh
PCA Module-1 Capture
Register High
FBh
PCA Module-2 Capture
Register Low
ECh
PCA Module-2 Capture
Register High
FCh
PCA Module-3 Capture
Register Low
EDh
PCA Module-3 Capture
Register High
FDh
PCA PWM Mode
Auxiliary Register 0
PCA_PWM0 F2h
PCA_PWM1 F3h
PCA_PWM2 F4h
PCA_PWM3 F5h
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
EPC0H EPC0L xxxx,xx00
EPC1H EPC1L xxxx,xx00
EPC2H EPC2L xxxx,xx00
EPC3H EPC3L xxxx,xx00
PCA PWM Mode
Auxiliary Register 1
PCA PWM Mode
Auxiliary Register 2
PCA PWM Mode
Auxiliary Register 3
CMOD - PCA 模式 寄存器的位分配 (地址:D9H)
位
7
6
-
5
-
4
-
3
-
2
1
0
符 号
C I D L
C P S 1
C P S 0
E C F
CMOD - PCA 模式 寄存器的位描述 (地址:D9H)
位
符号
CIDL
-
描述
数器 列空 控制:CIDL=0 ,空 模式下PCA 数器
,空 模式下PCA 数器停止工作。
工作。CIDL=1
7
6 - 3
2 - 1
保留 将来之用。
CPS1,CPS0 PCA 数脉冲
( 下表)。
PCA 数溢出中断使能:ECF=1 ,使能寄存器CCON CF位的中断。ECF=0 ,
禁止 功能。
0
ECF
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 65
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
CMOD - PCA 数器 列的 数脉冲
(地址:D9H)
C P S 1
C P S 0
P C A
源
入
0
0
0
1
0 , 内 部
1 , 内 部
2 , 定
, F o s c / 1 2
, F o s c / 2
器 0 溢 出 , 由 于 定
一 个 就 溢 出 ,
器 0 可 以 工 作 在 1 T 方 式 , 所 以 可 以 达
率 反 而 是 最 高 的 , 可 达 到 F o s c
1
1
0
1
到
3 , E C I / P 3 . 4 脚 的 外 部
入 ( 最 大 速 率 = F o s c / 2 )
CCON - PCA 控制寄存器的位分配 (地址:D8H)
位
7
6
5
-
4
-
3
-
2
-
1
0
符 号
C F
C R
C C F 1
C C F 0
CCON - PCA 控制寄存器的位描述 (地址:D8H)
位
符号
描述
PCA 数器 列溢出 志。
的ECF位置位,CF 志可用来 生中断。CF位可通 硬件或 件置位,但只
可通 件清零。
数
翻
位由硬件置位。如果CMOD寄存器
7
CF
PCA 数器 列运行控制位。 位通
数。 位通
件置位,用来起 PCA 数器
件清零,用来关 PCA 数器。
列
6
CR
-
5 - 2
1
保留位,保留 将来使用。
PCA模 1中断 志。当出 匹配或捕
件清零。
位由硬件置位。 位必
位由硬件置位。 位必
通
通
CCF1
PCA模 0中断 志。当出 匹配或捕
件清零。
0
CCF0
CCAPMn - PCA 比 / 捕 模 寄存器的位分配(CCAPM0 地址:0DAH;CCAPM1 地址:0DBH)
位
7
-
6
5
4
3
2
1
0
符 号
E C O M n
C A P P n
C A P N n
M A T n
T O G n P W M n
E C C F n
CCAPMn - PCA 比 /捕 模 寄存器的位描述 ( n:0,1,2,3 )
位
7
符号
-
描述
n : 0,1,2,3
保留 将来之用。
6
ECOMn 使能比 器。ECOMn=1 使能比 器功能。
CAPPn 正捕 。CAPPn=1 使能上升沿捕 。
5
4
CAPNn
MATn
捕 。CAPNn=1 使能下降沿捕 。
匹配。当MATn=1 ,PCA 数 与模 的比 /捕 寄存器的 的匹配将置
位CCON寄存器的中断 志位CCFn。
3
2
翻 。当TOGn=1 ,工作在PCA高速 出模式,PCA 数器的 与模 的比
/捕 寄存器的 的匹配将使CEXn脚翻 。
(CEX0/P3.7,CEX1/P3.5,CEX2/P2.0,CEX3/P2.4)
TOGn
PWMn
1
0
脉
模式。当PWMn=1 ,使能CEXn脚用作脉
出。
ECCFn 使能CCFn中断。使能寄存器CCON的比 /捕
志CCFn,用来 生中断。
PCA 模 工作模式(CCAPMn 寄存器,n:0,1,2,3)
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
模 功能
0
X
X
X
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
X
X
X
X
X
0
无此操作
16位捕 模式,由CEXn的上升沿触
16位捕 模式,由CEXn的下降沿触
16位捕 模式,由CEXn的跳 触
16位 件定 器
16位高速 出
8位PWM
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 66
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机可 程 数器 列(PCA)
PCA 含有一个特殊的16位定 器,有4个16位的捕 /比 模 与之相 。每个模 可 程工作
在4 种模式下:上升/ 下降沿捕 、 件定 器、高速 出或可 制脉冲 出。模 0 接到P3.7
(CEX0/PCA0/PWM0), 模 1 接到P3.5(CEX1/PCA1/PWM1), 模 2 接到P2.0(CEX2/PCA2/
PWM2), 模 3 接到P2.4(CEX3/PCA3/PWM3)。 寄存器CH和CL的内容是正在自由 增 数的16位
PCA定 器的 。PCA定 器是4个模 的公共
基准,可通
程工作在:1/12振
率、1/2振
率、定 器0溢出或ECI脚的 入(P3.4)。 定 器的 数源由CMOD SFR的CPS1和CPS0位来确定(
CMOD特殊功能寄存器 明)。
Module 0
P3.7/CEX0/PCA0/PWM0
16 Bit
Module 1
P3.5/CEX1/PCA1/PWM1
PCA Timer/Counter
Module 2
P2.0/CEX2/PCA2/PWM2
P2.4/CEX3/PCA3/PWM3
Module 3
Programmable Counter Array
TO PCA module
Fosc/12
Fosc/2
CH
CL
PCA
interrupt
16-Bit counter
Timer 0 overflow
External input
ECI (P3.4)
IDLE
CIDL
-
-
-
-
-
-
CPS1
CCF2
CPS0
CCF1
ECF
CMOD
CF
CR
CCF3
CCF0
CCON
PCA Timer/Counter
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 67
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
CMOD SFR 有2 个位与PCA 相关。它 分 是:CIDL,空 模式下允 停止PCA;ECF,置位
,使能PCA 中断,当PCA 定 器溢出将PCA 数溢出 志CF(CCON SFR )置位。
CCON SFR 包含PCA 的运行控制位(CR)和PCA 定 器 志(CF)以及各个模 的 志(CCF3/
CCF2/CCF1/CCF0)。 通 件置位CR 位(CCON.6)来运行PCA。CR 位被清零 PCA 关 。当PCA
数器溢出 ,CF 位(CCON.7)置位,如果CMOD 寄存器的ECF 位置位,就 生中断。CF 位只可通
件清除。CCON 寄存器的位0~3 是PCA 各个模 的 志(位0
模 2,位3 模 3), 当 生匹配或比 由硬件置位。 些 志也只能通
用一个中断向量。PCA的中断系 如 所示。
PCA 的每个模 都 一个特殊功能寄存器。它 分 是:模 0
CCAPM1,模 2 CCAPM2,模 3 CCAPM3.特殊功能寄存器包含了相 模 的工作模式控制位。
当模 生匹配或比 ,ECCFn 位(CCAPMn.0,n =0,1,2,3 由工作的模 决定)使能
模 0,位1
模 1,位2
件清除。所有模 共
CCAPM0,模 1
CCON SFR 的CCFn 志来 生中断。
PWM (CCAPMn.1)用来使能脉
制模式。
当PCA 数 与模 的捕 / 比 寄存器的 相匹配 ,如果TOG 位(CCAPMn.2)置位,模 的
CEXn 出将 生翻 。
当PCA 数 与模 的捕 / 比 寄存器的 相匹配 ,如果匹配位MATn(CCAPMn.3)置位,
CCON寄存器的CCFn位将被置位。
CAPNn (CCAPMn.4)和CAPPn(CCAPMn.5)用来 置捕
入的有效沿。CAPNn 位使能下降沿
有效,CAPPn 位使能上升沿有效。如果两位都置位, 两种跳 沿都被使能,捕 可在两种跳 沿 生。
通 置位CCAPMn寄存器的ECOMn位(CCAPMn.6)来使能比 器功能。
每个PCA 模
另外两个寄存器,CCAPnH 和CCAPnL。当出 捕 或比
,它 用来保存
16位的 数 。当PCA模 用在PWM模式中 ,它 用来控制 出的占空比。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 68
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
PCA 捕 模式
要使一个PCA 模 工作在捕 模式(下 ), 寄存器CCAPMn 的两位(CAPNn 和CAPPn)或其中任
何一位必 置1。 模 的外部CEXn 入(CEX0/P3.7,CEX1/P3.5,CEX2/P2.0,CEX3/P2.4口)的
跳
行采 。当采 到有效跳
,PCA硬件就将PCA 数器 列寄存器(CH和CL)的 装 到模
的捕 寄存器中(CCAPnL和CCAPnH)。
CCON(C0h)
CF
CR
–
-
CCF3
CCF2
CCF1 CCF0
PCA interrupt
CL
CH
Capture
CEXn
CCAPnH
CCAPnL
CCAPMn,n=0,1
(地址:DAh和DBh)
–
ECOMn CAPPn
CAPNn
MATn
TOGn
PWMn ECCFn
0
0
0
0
PCA Capture Mode (PCA 捕 模式 )
如果CCON SFR 的位CCFn和CCAPMn SFR 的位ECCFn位被置位,将 生中断。
16 位 件定 器模式
通 置位CCAPMn 寄存器的ECOM 和MAT 位,可使PCA 模 用作 件定 器(下 )。 PCA 定 器的
与模 捕 寄存器的 相比 ,当两者相等 ,如果位CCFn(在CCON SFR 中)和位ECCFn(在
CCAPMn SFR 中)都置位,将 生中断。
先写
后写
Write to CCAPnL
Write to CCAPnH
CCON
CF
CR
–
-
CCF3
CCF2
CCF1 CCF0
1
0
PCA
Interrupt
CCAPnH
CCAPnL
(To CCFn)
Match
Enable
16-Bit Comparator
CL
CH
CCAPMn
–
ECOMn CAPPn
CAPNn
MATn
TOGn
PWMn ECCFn
0
0
1
0
0
PCA Software Timer Mode/ 件定 器模式/PCA比 模式
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 69
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
高速 出模式
模式中(下 ), 当PCA 数器的 数 与模 捕 寄存器的 相匹配 ,PCA模 的CEXn 出将
生翻 。要激活高速 出模式,模 CCAPMn SFR的TOG,MAT和ECOM位必 都置位。
先写
Write to CCAPnL
后写
Write to CCAPnH
CCON
CF
CR
–
-
CCF3
CCF2
CCF1 CCF0
1
0
CCAPnH
CCAPnL
PCA
Interupt
(To CCFn)
Match
Enable
16-Bit comparator
Toggle
CL
CH
CEXn
翻
CCAPMn
–
ECOMn CAPPn
CAPNn
MATn
TOGn
PWMn ECCFn
0
0
1
1
0
PCA High-Speed Output Mode / PCA 高速 出模式
在使用PCA 高速 出模式 的特 用注意事 :
如果某一PCA模 工作在高速脉冲 出模式,要用 件 出改 同一 其它普通I/O口的状 ,需先
做判断CH是否等于CCAPnH,若不等,可自由修改,若相等,再判断CL>CCAPnL情况下才允 改 同一
其它普通I/O 口的状 。如用P3.7/PCA0/PWM0做PCA高速脉冲 出,同 程序里面又要用 件 出
改 P3.4 口的状
,就需要做判断。
当某个具有PCA高速脉冲 出功能的I/O口工作在高速脉冲 出模式 ,如果 件 同一 的其它
I/O口 行操作,如果遇上PCA比 器匹配 , 操作有可能会改 此具有PCA高速脉冲 出功能的I/O
口的状 ,所以同一 的其它I/O 口建 不要做 出用,如果做 出用 ,要 行判断。
具 有 PCA高 速 脉 冲 出
同 一 的 其 它 I/O口
模 式 的 I/O口
PCA0/P3.7
PCA1/P3.5
PCA2/P2.0
PCA3/P2.4
P3.0,P3.1,P3.2,P3.3,P3.4,P3.5
P3.0,P3.1,P3.2,P3.3,P3.4,P3.7
P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7
P2.0,P2.1,P2.2,P2.3,P2.5,P2.6,P2.7
当 以 上 管 脚 用 在 PCA高 速 脉
冲 出 模 式 , 建 同 一
的 其 它 I/O口 工 作 在 入
模 式 , 如 工 作 在 PCA高 速
出 模 式 , 而 同 一 的 它
I/O口 又 必 工 作 在 出 模
式 , 建 如 右 列 所 示 。
要 用 件 出 改 同 一 其 它 普 通 I/O口 的 状 ,
需 先 做 判 断 CH是 否 等 于 CCAPnH, 若 不 等 , 可 自 由
修 改 , 若 相 等 , 再 判 断 CL>CCAPnL情 况 下 才 允 改
同 一 其 它 普 通 I/O口 的 状 。 防 止 在 PCA比
器 匹 配 做 出 工 作。
其它几种工作模式无
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 70
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
源。
脉
模式
所有PCA 模 都可用作PWM 出(下 )。 出 率取决于PCA 定 器的
EPCnH
CCAPnH
出0
(0,CL) < (EPCnL,CCAPnL)
CEXn
EPCnL
CCAPnL
(0,CL) >= (EPCnL,CCAPnL)
出1
Enable
9-BIT
COMPARATOR
CL
0
CL overflow
CCAPMn, n=0,1
–
ECOMn CAPPn
CAPNn
MATn
TOGn
PWMn ECCFn
1
0
0
0
0
1
0
PCA PWM mode / 可 制脉冲 度 出模式
由于所有模 共用 有的PCA 定 器,所有它 的 出 率相同。各个模 的 出占空比是独立
化的,与使用的捕 寄存器{EPCnL,CCAPnL}有关。当 CL SFR 的 小于{EPCnL,CCAPnL} , 出
低,当PCA CL SFR 的 等于或大于{EPCnL,CCAPnL} , 出 高。当CL 的 由FF 00
无干 地更新PWM。要
溢出 ,{EPCnH,CCAPnH}的内容装 到{EPCnL,CCAPnL}中。
使能PWM模式,模 CCAPMn寄存器的PWMn和ECOMn位必 置位。
就可
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 71
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
PCA 功能 展外部中断的示例程序
;/* --- STC International Limited ---------------------- */
;/* --- 宏晶科技
姚永平
2006/1/6
V1.0 ---------- */
;/* --- PCA_5410_ASM_INT ------------------------------- */
;/* --- STC12C5412AD, STC12C5410AD, STC12C5408AD ------- */
;/* --- STC12C5406AD, STC12C5404AD, STC12C5402AD ------- */
;/* --- STC12C5052AD, STC12C4052AD, STC12C3052AD ------- */
;/* --- STC12C2052AD, STC12C1052AD, STC12C0552AD ------- */
;/* --- Mobile: 13922805190 ---------------------------- */
;/* --- Fax: 0755-82944243 ----------------------------- */
;/* --- Tel: 0755-82948409 ----------------------------- */
;/* --- Web: www.mcu-memory.com ------------------------ */
;------------------------------------------------------------------------------
;使用 STC12C2052AD 系列 片机 PCA 功能 展外部中断的示例程序。
;使用 STC12C5410AD 系列 片机 PCA 功能 展外部中断的示例程序。
;
;P3.7(PCA 模 0) 展 下降沿外部中断,
;P3.5(PCA 模 1) 展 上升沿/下降沿都可触 的外部中断。
;
;1)
源程序, 把
程序 生的的程序代 下 到 片机中, 上 运行本程序。
;2) 将 P3.7/PCA0 短路到地, 一 作 生一个下降沿,此 本演示程序 P1.6 取反,
; P1.6 控制的 LED 灯将会 化一次。
;3) 改 P3.5/PCA1 的外部高低状 (由高到低-- 生下降沿; 由低到高-- 生上升沿),
;
本演示程序在 P3.5/PCA1 的下降沿/上升沿都 生中断,此 本演示程序 P1.5 取反,
; P1.5 控制的 LED 灯状 将会 生 化。
所 LED 灯状 生 化是指 LED 由
;
亮或由亮
。
;------------------------------------------------------------------------------
;声明 STC12C2052AD 和STC12C5410AD系列 MCU 特殊功能寄存器地址
IPH
EQU 0B7H
; 中断 先 高位寄存器
EPCA_LVD EQU IE.6
;PCA 中断和 LVD(低
)中断共享的 中断控制位
CH
CL
EQU 0F9H
EQU 0E9H
;PCA
;PCA
数器高8位。
数器低8位。
;------------------------
CCON
CCF0
CCF1
CCF2
CCF3
CCF4
CCF5
EQU 0D8H
;PCA 控制寄存器。
EQU CCON.0
EQU CCON.1
EQU CCON.2
EQU CCON.3
EQU CCON.4
EQU CCON.5
;PCA 模 0 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 1 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 2 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 3 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 4 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 5 中断 志, 由硬件置位, 必 由 件清0。
CR
CF
EQU CCON.6
EQU CCON.7
;1: 允 PCA 数器 数, 必 由 件清0。
;PCA
;PCA
数器溢出(CH,CL由 FFFFH
0000H) 志,
数器溢出后由硬件置位,必 由 件清0。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 72
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
;------------------------
Fax: 0755-82944243
CMOD
EQU 0D9H
CIDL: idle 状
;PCA 工作模式寄存器。
PCA 数器是否 数, 0:
;CMOD.7
数, 1: 停止 数。
;CMOD.2
CPS1: PCA
CPS0: PCA
CPS1 CPS0
数器 数脉冲源
数器 数脉冲源
位 1。
位 0。
;CMOD.1
;
;
;
;
;
;
0
0
1
0
1
0
外部晶体 率/12。
外部晶体 率/2。
Timer 0 溢出脉冲,
Timer 0
可通 AUXR寄存器 置成工作在 12T 或 1T 模式。
1
1
从 ECI/P3.4 脚 入的外部
。
;CMOD.0
ECF: PCA 数器溢出中断允 位, 1-- 允 CF(CCON.7) 生中断。
;------------------------
CCAP0H EQU 0FAH
CCAP1H EQU 0FBH
CCAP2H EQU 0FCH
CCAP3H EQU 0FDH
CCAP4H EQU 0FEH
CCAP5H EQU 0FFH
;PCA 模 0的捕捉/比 寄存器高 8 位。
;PCA 模 1的捕捉/比 寄存器高 8 位。
;PCA 模 2的捕捉/比 寄存器高 8 位。
;PCA 模 3的捕捉/比 寄存器高 8 位。
;PCA 模 4的捕捉/比 寄存器高 8 位。
;PCA 模 5的捕捉/比 寄存器高 8 位。
CCAP0L EQU 0EAH
CCAP1L EQU 0EBH
CCAP2L EQU 0ECH
CCAP3L EQU 0EDH
CCAP4L EQU 0EEH
CCAP5L EQU 0EFH
;PCA 模 0的捕捉/比 寄存器低 8 位。
;PCA 模 1的捕捉/比 寄存器低 8 位。
;PCA 模 2的捕捉/比 寄存器低 8 位。
;PCA 模 3的捕捉/比 寄存器低 8 位。
;PCA 模 4的捕捉/比 寄存器低 8 位。
;PCA 模 5的捕捉/比 寄存器低 8 位。
;------------------------
PCA_PWM0 EQU 0F2H
PCA_PWM1 EQU 0F3H
PCA_PWM2 EQU 0F4H
PCA_PWM3 EQU 0F5H
PCA_PWM4 EQU 0F6H
PCA_PWM5 EQU 0F7H
;PCA 模 0 PWM 寄存器。
;PCA 模 1 PWM 寄存器。
;PCA 模 2 PWM 寄存器。
;PCA 模 3 PWM 寄存器。
;PCA 模 4 PWM 寄存器。
;PCA 模 5 PWM 寄存器。
;PCA_PWMn:
;
7
-
6
-
5
-
4
-
3
-
2
-
1
0
EPCnH EPCnL
;B7-B2: 保留
;B1(EPCnH): 在 PWM 模式下,与 CCAPnH
;B0(EPCnL): 在 PWM 模式下,与 CCAPnL
成 9 位数。
成 9 位数。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 73
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
;------------------------
Fax: 0755-82944243
CCAPM0 EQU 0DAH
CCAPM1 EQU 0DBH
CCAPM2 EQU 0DCH
CCAPM3 EQU 0DDH
CCAPM4 EQU 0DEH
CCAPM5 EQU 0DFH
;PCA 模 0的工作模式寄存器。
;PCA 模 1的工作模式寄存器。
;PCA 模 2的工作模式寄存器。
;PCA 模 3的工作模式寄存器。
;PCA 模 4的工作模式寄存器。
;PCA 模 5的工作模式寄存器。
;CCAPMn:
7
-
6
5
4
3
2
1
0
;
;
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
;ECOMn = 1:允 比 功能。
;CAPPn = 1:允 上升沿触 捕捉功能。
;CAPNn = 1:允 下降沿触 捕捉功能。
;MATn = 1:当匹配情况 生 , 允 CCON 中的 CCFn 置位。
;TOGn = 1:当匹配情况 生 , CEXn 将翻 。
;PWMn = 1:将 CEXn 置 PWM 出。
;ECCFn = 1:允 CCON 中的 CCFn 触 中断。
;ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
; 0
; x
; x
; x
; 1
; 1
; 1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0 00H 未启用任何功能。
x 21H 16 位CEXn上升沿触 捕捉功能。
x 11H 16 位CEXn下降沿触 捕捉功能。
x 31H 16 位CEXn 沿(上、下沿)触 捕捉功能。
x 49H 16 位 件定 器。
x 4DH 16 位高速脉冲 出。
0 42H 8 位 PWM。
;------------------------------------------------------------------------------
;定 片机管脚
LED_MCU_START
LED_PCA_INT0
LED_PCA_INT1
EQU P1.7
EQU P1.6
EQU P1.5
;------------------------------------------------------------------------------
ORG 0000H
LJMP MAIN
;------------------------------------------------------------------------------
ORG 0033H
;interrupt 6(0,1,2,3,4,5,6)
LJMP PCA_Interrupt
;------------------------------------------------------------------------------
ORG 0050H
MAIN:
MOV SP, #7FH
CLR LED_MCU_START
LCALL PCA_Initiate
; 点亮 LED_MCU_START LED, 表示程序正在运行
; 初始化 PCA
WAIT:
SJMP WAIT
; 跳 到本行,无限循 。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 74
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;------------------------------------------------------------------------------
PCA_Initiate:
MOV CMOD, #10000000B ;PCA 在空 模式下停止 PCA 数器工作
;PCA
源 fosc/12
;禁止 PCA 数器溢出(CH,CL由 FFFFH
;CF = 0 ,清0 PCA 数器溢出中断 求 志位
;CR = 0, 不允 PCA 数器 数
0000H )中断
MOV CCON, #00H
;清0 PCA 各模 中断 求 志位,如 CCF1,CCF0
; 清0 PCA 数器
MOV CL, #00H
MOV CH, #00H
;-------------------------
; 置模 0
MOV CCAPM0, #11H
; MOV CCAPM0, #21H
;-------------------------
; 置模 1
; 置 PCA 模 0 下降沿触 捕捉功能。
; 如果送的是 #21h,
PCA 模 0 上升沿触 。
MOV CCAPM1, #31H
;-------------------------
SETB EPCA_LVD
; 置 PCA 模 1 上升沿/下降沿均可触 的捕捉功能。
; 开 PCA 中断和 LVD(低
)中断共享的 中断控制位
SETB EA
; 开整个 片机所有中断共享的 中断控制位
; 启 PCA 数器(CH,CL) 数
SETB CR
RET
;------------------------------------------------------------------------------
PCA_Interrupt:
PUSH ACC
PUSH PSW
JNB CCF0, Not_PCA0_Else_PCA1 ; 如果 CCF0 不等于 1 就不是 PCA 模 0 中断
;就直接去判是否是 PCA 模 1 中断
;模 0 中断服 程序
CPL LED_PCA_INT0
CLR CCF0
;P1.6 LED
化一次, 表示PCA模 0 生了一次中断
; 清 PCA 模 0 中断 志
Not_PCA0_Else_PCA1:
JNB CCF1, PCA_Interrupt_Exit ; 如果 CCF1 不等于 1 就不是 PCA 模 1 中断
;就立即退出
;模 1 中断服 程序
CPL LED_PCA_INT1
CLR CCF1
;P1.5 LED
化一次, 表示PCA模 1 生了一次中断
; 清 PCA 模 1 中断 志
PCA_Interrupt_Exit:
POP PSW
POP ACC
RETI
;------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 75
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
PCA 功能做定 器的示例程序
;/* --- STC International Limited ---------------------- */
;/* --- 宏晶科技
姚永平
2006/1/6
V1.0 ---------- */
;/* --- PCA_5410_ASM_Timer ----------------------------- */
;/* --- STC12C5412AD, STC12C5410AD, STC12C5408AD ------- */
;/* --- STC12C5406AD, STC12C5404AD, STC12C5402AD ------- */
;/* --- STC12C5052AD, STC12C4052AD, STC12C3052AD ------- */
;/* --- STC12C2052AD, STC12C1052AD, STC12C0552AD ------- */
;/* --- Mobile: 13922805190 ---------------------------- */
;/* --- Fax: 0755-82944243 ----------------------------- */
;/* --- Tel: 0755-82948409 ----------------------------- */
;/* --- Web: www.mcu-memory.com ------------------------ */
;------------------------------------------------------------------------------
;使用 STC12C2052AD 系列 片机 PCA 功能做定 器的示例程序
;使用 STC12C5410AD 系列 片机 PCA 功能做定 器的示例程序
;晶振 率 Fosc = 18.432MHz,在P1.5 出脉冲 度 1 秒 的方波
;------------------------------------------------------------------------------
;声明 STC12C2052AD 和STC12C5410AD系列 MCU 特殊功能寄存器地址
IPH
EQU 0B7H
; 中断 先 高位寄存器
;PCA 中断和 LVD(低
EPCA_LVD EQU IE.6
)中断共享的 中断控制位
CH
CL
EQU 0F9H
EQU 0E9H
;PCA
;PCA
数器高8位。
数器低8位。
;------------------------
CCON
CCF0
CCF1
CCF2
CCF3
CCF4
CCF5
CR
EQU 0D8H
;PCA 控制寄存器。
EQU CCON.0
EQU CCON.1
EQU CCON.2
EQU CCON.3
EQU CCON.4
EQU CCON.5
EQU CCON.6
EQU CCON.7
;PCA 模 0 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 1 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 2 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 3 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 4 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 5 中断 志, 由硬件置位, 必 由 件清0。
;1: 允 PCA 数器 数, 必 由 件清0。
CF
;PCA
;PCA
数器溢出(CH,CL由 FFFFH
0000H) 志,
数器溢出后由硬件置位,必 由 件清0。
;------------------------
CMOD
EQU 0D9H
CIDL: idle 状
;PCA 工作模式寄存器。
PCA 数器是否 数, 0:
;CMOD.7
数, 1: 停止 数。
;CMOD.2
CPS1: PCA
CPS0: PCA
CPS1 CPS0
数器 数脉冲源
数器 数脉冲源
位 1。
位 0。
;CMOD.1
;
;
;
;
;
;
0
0
外部晶体 率/12。
外部晶体 率/2。
0
1
1
0
Timer 0 溢出脉冲,
Timer 0
可通 AUXR寄存器 置成工作在 12T 或 1T 模式。
1
1
从 ECI/P3.4 脚 入的外部
。
;CMOD.0
宏晶科技:
ECF: PCA 数器溢出中断允 位, 1-- 允 CF(CCON.7) 生中断。
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 76
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
;------------------------
Fax: 0755-82944243
CCAP0H EQU 0FAH
CCAP1H EQU 0FBH
CCAP2H EQU 0FCH
CCAP3H EQU 0FDH
CCAP4H EQU 0FEH
CCAP5H EQU 0FFH
;PCA 模 0的捕捉/比 寄存器高 8 位。
;PCA 模 1的捕捉/比 寄存器高 8 位。
;PCA 模 2的捕捉/比 寄存器高 8 位。
;PCA 模 3的捕捉/比 寄存器高 8 位。
;PCA 模 4的捕捉/比 寄存器高 8 位。
;PCA 模 5的捕捉/比 寄存器高 8 位。
CCAP0L EQU 0EAH
CCAP1L EQU 0EBH
CCAP2L EQU 0ECH
CCAP3L EQU 0EDH
CCAP4L EQU 0EEH
CCAP5L EQU 0EFH
;PCA 模 0的捕捉/比 寄存器低 8 位。
;PCA 模 1的捕捉/比 寄存器低 8 位。
;PCA 模 2的捕捉/比 寄存器低 8 位。
;PCA 模 3的捕捉/比 寄存器低 8 位。
;PCA 模 4的捕捉/比 寄存器低 8 位。
;PCA 模 5的捕捉/比 寄存器低 8 位。
;------------------------
PCA_PWM0 EQU 0F2H
PCA_PWM1 EQU 0F3H
PCA_PWM2 EQU 0F4H
PCA_PWM3 EQU 0F5H
PCA_PWM4 EQU 0F6H
PCA_PWM5 EQU 0F7H
;PCA 模 0 PWM 寄存器。
;PCA 模 1 PWM 寄存器。
;PCA 模 2 PWM 寄存器。
;PCA 模 3 PWM 寄存器。
;PCA 模 4 PWM 寄存器。
;PCA 模 5 PWM 寄存器。
;PCA_PWMn:
;
7
-
6
-
5
-
4
-
3
-
2
-
1
0
EPCnH EPCnL
;B7-B2: 保留
;B1(EPCnH): 在 PWM 模式下,与 CCAPnH
;B0(EPCnL): 在 PWM 模式下,与 CCAPnL
成 9 位数。
成 9 位数。
;------------------------
CCAPM0 EQU 0DAH
CCAPM1 EQU 0DBH
CCAPM2 EQU 0DCH
CCAPM3 EQU 0DDH
CCAPM4 EQU 0DEH
CCAPM5 EQU 0DFH
;PCA 模 0的工作模式寄存器。
;PCA 模 1的工作模式寄存器。
;PCA 模 2的工作模式寄存器。
;PCA 模 3的工作模式寄存器。
;PCA 模 4的工作模式寄存器。
;PCA 模 5的工作模式寄存器。
;CCAPMn:
7
-
6
5
4
3
2
1
0
;
;
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
;ECOMn = 1:允 比 功能。
;CAPPn = 1:允 上升沿触 捕捉功能。
;CAPNn = 1:允 下降沿触 捕捉功能。
;MATn = 1:当匹配情况 生 , 允 CCON 中的 CCFn 置位。
;TOGn = 1:当匹配情况 生 , CEXn 将翻 。
;PWMn = 1:将 CEXn 置 PWM 出。
;ECCFn = 1:允 CCON 中的 CCFn 触 中断。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 77
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
;ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
Fax: 0755-82944243
; 0
; x
; x
; x
; 1
; 1
; 1
0
1
0
0
0
0
0
0 00H 未启用任何功能。
0
0
0
0
x 21H 16 位CEXn上升沿触 捕捉功能。
x 11H 16 位CEXn下降沿触 捕捉功能。
x 31H 16 位CEXn 沿(上、下沿)触 捕捉功能。
x 49H 16 位 件定 器。
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
x 4DH 16 位高速脉冲 出。
0 42H 8位 PWM。
;------------------------------------------------------------------------------
;定 片机管脚
LED_MCU_START
EQU P1.7
EQU P1.6
EQU P1.5
LED_5mS_Flashing
LED_1S_Flashing
;------------------------------------------------------------------------------
;定 常量
;Channe0_5mS_H, Channe0_5mS_L 的 算方法 PCA 中断服 程序内的注
Channe0_5mS_H
Channe0_5mS_L
EQU 1EH
EQU 00H
; 模 0 5mS 定 常数高位
; 模 0 5mS 定 常数低位
;------------------------------------------------------------------------------
;定
Counter
量
EQU 30H
; 声明一个 数器,用来 数中断的次数
;------------------------------------------------------------------------------
ORG 0000H
LJMP MAIN
;------------------------------------------------------------------------------
ORG 0033H
;interrupt 6(0,1,2,3,4,5,6)
LJMP PCA_interrupt
;------------------------------------------------------------------------------
ORG 0050H
MAIN:
CLR LED_MCU_START
MOV SP, #7FH
; 点亮 MCU 开始工作指示灯
; 清Counter 数器
MOV Counter, #0
ACALL PCA_Initiate
; 初始化 PCA
WAIT:
SJMP WAIT
; 跳 到本行,无限循 。
;------------------------------------------------------------------------------
PCA_Initiate:
MOV CMOD, #10000000B ;PCA 在空 模式下停止 PCA 数器工作
;PCA
源 fosc/12
;禁止 PCA 数器溢出(CH,CL由 FFFFH
;CF = 0 ,清0 PCA 数器溢出中断 求 志位
;CR = 0, 不允 PCA 数器 数
0000H )中断
MOV CCON, #00H
;清0 PCA 各模 中断 求 志位,如 CCF1,CCF0
; 清0 PCA 数器
MOV CL, #00H
MOV CH, #00H
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 78
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;-------------------------
;Channe0_5mS_H, Channe0_5mS_L 的 算方法 PCA 中断服 程序内的注
MOV CCAP0L, #Channe0_5mS_L ;
MOV CCAP0H, #Channe0_5mS_H ;
PCA 模 0 的 CCAP0L 置初
PCA 模 0 的 CCAP0H 置初
MOV CCAPM0, #49H
; 置 PCA 模 0
16位 件定 器,ECCF0=1允 PCA模 0中断
;当[CH,CL]==[CCAP0H,CCAP0L] , 生中断 求,CCF0=1, 求中断
SETB EPCA_LVD
SETB EA
SETB CR
RET
; 开 PCA 中断和 LVD(低
)中断共享的 中断控制位
; 开整个 片机所有中断共享的 中断控制位
; 启 PCA 数器(CH,CL) 数
;------------------------------------------------------------------------------
PCA_Interrupt:
PUSH ACC
PUSH PSW
CPL LED_5mS_Flashing ; 本程序PCA模 0每5mS中断一次, 每次 中断将 灯状 取反
;在本程序中[CH,CL]每12个
脉冲加1, 当[CH,CL] 增加到等于 [CCAP0H,CCAP0L]
;CCF0=1, 生中断 求。如果每次 PCA 模 0 中断后, 在中断服 程序中
;[CCAP0H,CCAP0L] 增加一个相同的数 ,那么下一次中断来 的 隔
;同的。本程序中 个"相同的数 " 就是 Channe0_5mS_H, Channe0_5mS_L
T 也是相
; 例:
率 Fosc = 18.432MHz, PCA
数器 数 1E00H 次才是 5mS。
; 算PCA 数器 数多少次:
;
;
;
;
;
;
Channe0_5mS_H, Channe0_5mS_L = T/( (1/Fosc)*12 )
= 0.005/ ( (1/18432000)*12 )
= 7680 (10 制数)
= 1E00H (16 制数)
即 Channe0_5mS_H = 1EH, Channe0_5mS_L = 00H
; Channe0_5mS_H, Channe0_5mS_L :每次 [CCAP0H,CCAP0L] 增加的数 (步 )
MOV A, #Channe0_5mS_L
ADD A, CCAP0L
; [CCAP0H,CCAP0L] 增加一个数
MOV CCAP0L, A
MOV A, #Channe0_5mS_H
ADDC A, CCAP0H
MOV CCAP0H, A
CLR CCF0
; 清 PCA 模 0 中断 志
; 中断次数 数器 + 1
INC Counter
MOV A, Counter
CLR C
SUBB A, #200
;
是否中断了 200 次(1秒)
JC
PCA_Interrupt_Exit
; 有借位,表示 Counter 小于 200,立即跳 退出
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 79
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
MOV Counter, #0
;已中断了 200 次,清 0 中断次数 数器
; 在LED_1S_Flashing 出脉冲 度 1 秒 的方波
CPL LED_1S_Flashing
PCA_Interrupt_Exit:
POP PSW
POP ACC
RETI
;------------------------------------------------------------------------------
END
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 80
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机PWM 出C 言示例
PWM 出C 言示例
#include<reg52.h>
sfr CCON = 0xD8;
sfr CMOD = 0xD9;
sfr CL
sfr CH
= 0xE9;
= 0xF9;
sfr CCAP0L = 0xEA;
sfr CCAP0H = 0xFA;
sfr CCAPM0 = 0xDA;
sfr CCAPM1 = 0xDB;
sbit CR = 0xDE;
void main(void)
{
CMOD = 0x02; // Setup PCA timer
CL = 0x00;
CH = 0x00;
CCAP0L = 0xc0; //Set the initial value same as CCAP0H
CCAP0H = 0xc0; //25% Duty Cycle
CCAPM0 = 0x42; //0100,0010 Setup PCA module 0 in PWM mode
CR = 1; //Start PCA Timer.
while(1){};
}
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 81
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD系列 片机PCA/PWM新增特殊功能寄存器声明
;STC12C5410AD特殊功能寄存器 文件, STC12_PCA_SFR.ASM
;声明 STC12C2052AD 和STC12C5410AD系列 MCU 特殊功能寄存器地址
IPH
EQU 0B7H
; 中断 先 高位寄存器
;PCA 中断和 LVD(低
EPCA_LVD EQU IE.6
)中断共享的 中断控制位
CH
CL
EQU 0F9H
EQU 0E9H
;PCA
;PCA
数器高8位。
数器低8位。
;------------------------
CCON
CCF0
CCF1
CCF2
CCF3
CCF4
CCF5
CR
EQU 0D8H
;PCA 控制寄存器。
EQU CCON.0
EQU CCON.1
EQU CCON.2
EQU CCON.3
EQU CCON.4
EQU CCON.5
EQU CCON.6
EQU CCON.7
;PCA 模 0 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 1 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 2 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 3 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 4 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 5 中断 志, 由硬件置位, 必 由 件清0。
;1: 允 PCA 数器 数, 必 由 件清0。
CF
;PCA
;PCA
数器溢出(CH,CL由 FFFFH
0000H) 志,
数器溢出后由硬件置位,必 由 件清0。
;------------------------
CMOD
EQU 0D9H
CIDL: idle 状
;PCA 工作模式寄存器。
PCA 数器是否 数, 0:
;CMOD.7
数, 1: 停止 数。
;CMOD.2
CPS1: PCA
CPS0: PCA
CPS1 CPS0
数器 数脉冲源
位 1。
位 0。
;CMOD.1
数器 数脉冲源
;
;
;
;
;
;
0
0
外部晶体 率/12。
外部晶体 率/2。
0
1
1
1
0
1
Timer 0 溢出脉冲,
Timer 0 可通 AUXR寄存器 置成工作在 12T 或 1T 模式。
从 ECI/P3.4 脚 入的外部
。
;CMOD.0
ECF: PCA 数器溢出中断允 位, 1-- 允 CF(CCON.7) 生中断。
;------------------------
CCAP0H EQU 0FAH
CCAP1H EQU 0FBH
CCAP2H EQU 0FCH
CCAP3H EQU 0FDH
CCAP4H EQU 0FEH
CCAP5H EQU 0FFH
;PCA 模 0的捕捉/比 寄存器高 8 位。
;PCA 模 1的捕捉/比 寄存器高 8 位。
;PCA 模 2的捕捉/比 寄存器高 8 位。
;PCA 模 3的捕捉/比 寄存器高 8 位。
;PCA 模 4的捕捉/比 寄存器高 8 位。
;PCA 模 5的捕捉/比 寄存器高 8 位。
CCAP0L EQU 0EAH
CCAP1L EQU 0EBH
CCAP2L EQU 0ECH
CCAP3L EQU 0EDH
CCAP4L EQU 0EEH
CCAP5L EQU 0EFH
;PCA 模 0的捕捉/比 寄存器低 8 位。
;PCA 模 1的捕捉/比 寄存器低 8 位。
;PCA 模 2的捕捉/比 寄存器低 8 位。
;PCA 模 3的捕捉/比 寄存器低 8 位。
;PCA 模 4的捕捉/比 寄存器低 8 位。
;PCA 模 5的捕捉/比 寄存器低 8 位。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 82
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
;------------------------
Fax: 0755-82944243
PCA_PWM0 EQU 0F2H
PCA_PWM1 EQU 0F3H
PCA_PWM2 EQU 0F4H
PCA_PWM3 EQU 0F5H
PCA_PWM4 EQU 0F6H
PCA_PWM5 EQU 0F7H
;PCA 模 0 PWM 寄存器。
;PCA 模 1 PWM 寄存器。
;PCA 模 2 PWM 寄存器。
;PCA 模 3 PWM 寄存器。
;PCA 模 4 PWM 寄存器。
;PCA 模 5 PWM 寄存器。
;PCA_PWMn:
;
7
-
6
-
5
-
4
-
3
-
2
-
1
0
EPCnH EPCnL
;B7-B2: 保留
;B1(EPCnH): 在 PWM 模式下,与 CCAPnH
;B0(EPCnL): 在 PWM 模式下,与 CCAPnL
成 9 位数。
成 9 位数。
;------------------------
CCAPM0 EQU 0DAH
CCAPM1 EQU 0DBH
CCAPM2 EQU 0DCH
CCAPM3 EQU 0DDH
CCAPM4 EQU 0DEH
CCAPM5 EQU 0DFH
;PCA 模 0的工作模式寄存器。
;PCA 模 1的工作模式寄存器。
;PCA 模 2的工作模式寄存器。
;PCA 模 3的工作模式寄存器。
;PCA 模 4的工作模式寄存器。
;PCA 模 5的工作模式寄存器。
;CCAPMn:
7
-
6
5
4
3
2
1
0
;
;
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
;ECOMn = 1: 允 比 功能。
;CAPPn = 1:允 上升沿触 捕捉功能。
;CAPNn = 1:允 下降沿触 捕捉功能。
;MATn = 1:当匹配情况 生 , 允 CCON 中的 CCFn 置位。
;TOGn = 1:当匹配情况 生 , CEXn 将翻 。
;PWMn = 1:将 CEXn 置 PWM
出。
;ECCFn = 1:允 CCON 中的 CCFn 触 中断。
;ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
; 0
; x
; x
; x
; 1
; 1
; 1
0
1
0
0
0
0
0
0
1
0 00H 未启用任何功能。
0
0
0
0
0
0
x 21H 16 位CEXn上升沿触 捕捉功能。
x 11H 16 位CEXn下降沿触 捕捉功能。
x 31H 16 位CEXn 沿(上、下沿)触 捕捉功能。
x 49H 16 位 件定 器。
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
x 4DH 16 位高速脉冲 出。
0
0
0 42H 8 位 PWM。
;------------------------------------------------------------------------------
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 83
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机 PCA 功能 PWM 出程序
;STC12C5410AD 系列 片机 PCA 功能 PWM 示例程序,使用18.432MHz晶振。
;------------------------------------------------------------
#include <..\STC12_PCA_SFR.ASM>
;定 PCA 特殊功能寄存器
;------------------------------------------------------------
;定 常量
;pulse_width_MAX = pulse_width_MIN
pulse_width_MAX EQU 0F0H
pulse_width_MIN EQU 10H
, 出脉冲 度不 。
;PWM 脉 最大 , 占空比 = 93.75%
;PWM 脉 最小 , 占空比 = 6.25%
step
;------------------------------------------------------------
;定
pulse_width
EQU 38H
;PWM 脉
化步
量
EQU 30H
;------------------------------------------------------------
ORG 0000H
AJMP main
;------------------------------------------------------------
ORG 0050H
main:
MOV SP, #0E0H
ACALL PCA_init
main_loop:
ACALL PWM
SJMP main_loop
;------------------------------------------------------------
PCA_init:
MOV CMOD, #80H;
;PCA 在空 模式下停止 PCA 数器工作
;PCA 模式 fosc/12
;禁止 PCA 数器溢出中断
MOV
CCON, #00H
;禁止 PCA 数器工作, 清除中断 志、 数器溢出 志
; 清0 数器
MOV CL, #00H
MOV CH, #00H
;-------------------------
; 置模 0
8 位 PWM
出模式, PWM 无需中断支持。脉冲在P3.7(第11脚) 出
;*** 示例程序核心 句, ---->0100,0010
;*** 示例程序核心 句
MOV CCAPM0, #42H
MOV PCA_PWM0, #00H
; MOV PCA_PWM0, #03H
; 放本行注 , PWM 出就一直是 0, 无脉冲。
;-------------------------
; 置模 1 8 位 PWM
出模式, PWM 无需中断支持。脉冲在P3.5(第9脚) 出
;*** 示例程序核心 句, ---->0100,0010
;*** 示例程序核心 句
MOV CCAPM1, #42H
MOV PCA_PWM1, #00H
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 84
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
; MOV PCA_PWM1, #03H
; 放本行注 , PWM 出就一直是 0, 无脉冲。
SETB EPCA_LVD
SETB EA
SETB CR
RET
; 开 PCA 中断
; 开 中断
; 将PCA 数器打开
;------------------------------------------------------------
PWM:
; 用示波器 行 察
理想。
;逐
MOV
MOV
亮。
A, #pulse_width_MIN ;
出脉冲 度 置初 。
pulse_width, A
;pulse_width 数字越大脉 越窄,P3.5 的 LED 越亮。
PWM_loop1:
MOV
A, pulse_width
; 判是否到达最大 。
CLR C
SUBB A, #pulse_width_MAX
JNC PWM_a
; 到达最大 就 到逐
暗。
MOV A, pulse_width
MOV CCAP0H, A
; 置脉冲 度。数字越大、脉 越窄、LED 越亮。
;*** 示例程序核心 句
MOV CCAP1H, A
;*** 示例程序核心 句
CPL A
; 用 P1 口的 LED 示占空比,
MOV P1, A
;占空比 = ( pulse_width/256 ) * 100% 。
MOV
A, pulse_width
; 算下一次 出脉冲 度数 。
ADD A, #step
MOV pulse_width, A
ACALL delay
; 在一段
内保持 出脉冲 度不 。
SJMP PWM_loop1
PWM_a:
;逐
MOV
暗。
A, #pulse_width_MAX ;
出脉冲 度 置初 。
;pulse_width 数字越大脉 越窄,P3.5 的 LED 越亮。
MOV
PWM_loop2:
MOV
pulse_width, A
A, pulse_width
; 判是否到达最小 。
CLR C
SUBB A, #pulse_width_MIN
JC
JZ
PWM_b
PWM_b
; 到达最小 就返回。
; 到达最小 就返回。
MOV A, pulse_width
MOV CCAP0H, A
;
置脉冲 度。数字越大、脉 越窄、LED 越亮。
;*** 示例程序核心 句
;*** 示例程序核心 句
MOV CCAP1H, A
CPL A
; 用 P1 口的 LED 示占空比,
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 85
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
MOV P1, A ;占空比 = ( pulse_width/256 ) * 100% 。
MOV
A, pulse_width
; 算下一次 出脉冲 度数 。
CLR C
SUBB A, #step
MOV pulse_width, A
ACALL delay
SJMP PWM_loop2
; 在一段
内保持 出脉冲 度不 。
PWM_b:
RET
;------------------------------------------------------------
delay:
CLR A
MOV R1, A
MOV R2, A
MOV R3, #80H
delay_loop:
NOP
NOP
NOP
DJNZ R1, delay_loop
DJNZ R2, delay_loop
DJNZ R3, delay_loop
RET
;------------------------------------------------------------
END
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 86
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机 PCA 的高速脉冲 出
;******************************************************************************
;
;
出 125.0KHz 的脉冲(晶体 率 = 33.000MHz)
;示例程序: 使用 功能, 在P3.5(第9脚) 出
125.0KHz 的方脉冲。
;------------------------------------------------------------------------------
;
;
;
;
;
;
;
;
程序中定 的常量 CCAPnL_Value 决定了 PCA 模 n 出脉冲的 率 f:
f = Fosc / (4 * CCAPnL_Value )
式中 Fosc = 晶体 率
CCAPnL_Value = Fosc / (4 * f)
如算出的 果不是整数,
行取整 CCAPnL_Value = INT(Fosc / (4 * f) + 0.5)
INT() 取整数运算, 直接去掉小数。
;******************************************************************************
;定 STC12C5410 系列 MCU 特殊功能寄存器
IPH
EQU 0B7H
; 中断 先 高位寄存器
EPCA_LVD EQU IE.6
;PCA/LVD 中断允 位。
;要打开 PCA 中断 要打开相 的 ECF,ECCF0,ECCF1 位
;要打开 LVD 中断 要打开相 的 ELVDI 位
CH
CL
EQU 0xF9
EQU 0xE9
;PCA
;PCA
数器高8位。
数器低8位。
;------------------------
CCON
CCF0
CCF1
CR
EQU 0D8H
;PCA 控制寄存器。
EQU CCON.0
EQU CCON.1
EQU CCON.6
EQU CCON.7
;PCA 模 0 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 1 中断 志, 由硬件置位, 必 由 件清0。
;1: 允 PCA 数器 数, 必 由 件清0。
CF
;PCA
数器溢出 志,由硬件或 件置位,必 由 件清0。
;------------------------
CMOD
EQU 0D9H
CIDL: idle 状
;PCA 工作模式寄存器。
PCA 数器是否 数, 0:
;CMOD.7
数, 1: 停止 数。
;CMOD.2
CPS1: PCA
CPS0: PCA
CPS1 CPS0
数器脉冲源
数器脉冲源
位 1。
位 0。
;CMOD.1
;
;
;
;
;
0
0
1
1
0
1
0
1
内部
内部
, fosc/12。
, fosc/2。
Timer0 溢出。
由 ECI/P3.4 脚 入的外部
。
;CMOD.0
ECF: PCA 数器溢出中断允 位, 1-- 允 CF(CCON.7) 生中断。
;------------------------
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 87
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
CCAP0H EQU 0FAH
CCAP1H EQU 0FBH
CCAP0L EQU 0EAH
;PCA 模 0的捕捉/比 寄存器高 8 位。
;PCA 模 1的捕捉/比 寄存器高 8 位。
;PCA 模 0的捕捉/比 寄存器低 8 位。
;PCA 模 1的捕捉/比 寄存器低 8 位。
CCAP1L EQU
0EBH
;------------------------
PCA_PWM0 EQU
PCA_PWM1 EQU
0F2H
0F3H
;PCA 模 0 PWM 寄存器。
;PCA 模 1 PWM 寄存器。
;PCA_PWMn:
;
7
-
6
-
5
-
4
-
3
-
2
-
1
0
EPCnH EPCnL
;B7-B2: 保留
;B1(EPCnH): 在 PWM 模式下,与 CCAPnH 成 9 位数。
;B0(EPCnL): 在 PWM 模式下,与 CCAPnL 成 9 位数。
;------------------------
CCAPM0 EQU 0DAH
CCAPM1 EQU 0DBH
;PCA 模 0的工作模式寄存器。
;PCA 模 1的工作模式寄存器。
;CCAPMn:
7
-
6
5
4
3
2
1
0
;
;
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
;ECOMn = 1:允 比 功能。
;CAPPn = 1:允 上升沿触 捕捉功能。
;CAPNn = 1:允 下降沿触 捕捉功能。
;MATn = 1:当匹配情况 生 , 允 CCON 中的 CCFn 置位。
;TOGn = 1:当匹配情况 生 , CEXn 将翻 。
;PWMn = 1:将 CEXn 置 PWM 出。
;ECCFn = 1:允 CCON 中的 CCFn 触 中断。
;ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
; 0
; x
; x
; x
; 1
; 1
; 1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0 0x00
未启用任何功能。
x 0x21 16 位CEXn上升沿触 捕捉功能。
x 0x11 16 位CEXn下降沿触 捕捉功能。
x 0x31 16 位CEXn 沿(上、下沿)触 捕捉功能。
x 0x49 16 位 件定 器。
x 0x4d 16 位高速脉冲 出。
0 0x42 8 位 PWM。
;------------------------------------------------------------
;定 常量 CCAPnL_Value
;CCAPnL_Value 决定了模 1 出脉冲的 率 f:
;
;
;
;
;
f = Fosc / (4 * CCAPnL_Value )
式中 Fosc = 晶体 率
或 CCAPnL_Value = INT(Fosc / (4 * f) + 0.5)
INT()
取整数运算。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 88
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;
;
;
;
;
;
;
;
假定 fosc = 20MHz , 要求 PCA 高速脉冲 出 125KHz 的方波:
CCAPnL_Value = INT( 20000000/4/125000 + 0.5)
= INT( 40 + 0.5)
= INT( 40.5 )
= 40
= 28H
出脉冲的 率 f = 20000000/4/40
= 125000 (125.0KHz)
;CCAPnL_Value EQU 25H
;CCAPnL_Value EQU 28H
CCAPnL_Value EQU 42H
;25H = 37, fosc = 18.432MHz
;28H = 40, fosc = 20MHz
;42H = 66, fosc = 33MHz
, 高速脉冲 出 = 124.540KHz
, 高速脉冲 出 = 125KHz
, 高速脉冲 出 = 125KHz
;------------------------------------------------------------
ORG 0000H
AJMP main
;------------------------------------------------------------
ORG 0033H
PCA_interrupt:
PUSH ACC
;interrupt 6
;4 Clock
;4 Clock
PUSH PSW
CLR CCF1
;1 Clock, 清 PCA 模 1 中断 志
MOV A, #CCAPnL_Value ;2 Clock
ADD A, CCAP1L
;3 Clock
;3 Clock
;1 Clock
;3 Clock
;3 Clock
MOV CCAP1L, A
CLR A
ADDC A, CCAP1H
MOV CCAP1H, A
POP PSW
POP ACC
RETI
;3 Clock
;3 Clock
;4 Clock
;此中断服 程序共用 34 Clock,
入中断服 程序 要数个 Clock
;------------------------------------------------------------
ORG 0060H
main:
MOV SP, #0E0H
ACALL PCA_init
; 置堆 指
; 用 PCA 初始化程序
main_loop:
NOP
NOP
NOP
SJMP main_loop
;------------------------------------------------------------
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 89
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
PCA_init:
MOV CMOD, #00000010B
;PCA
;PCA 初始化程序
;02H,PCA 数器在空 模式下
工作, CIDL = 0
数器 数脉冲来源 系
源fosc/2, CPS1, CPS0 = (0,1)
;禁止PCA 数器(CH, CL) 数溢出(CH, CL=0000H)中断, ECF = 0
; 清除 PCA 数器(CH, CL) 数溢出中断 志, CF = 0
;停止 PCA 数器(CH, CL) 数, CR = 0
;清除 模 1 中断 志, CCF1 = 0
MOV CCON, #00H
;清除 模 0 中断 志, CCF0 = 0
MOV CH, #00H
MOV CL, #00H
; 清0 PCA 数器高 8 位
; 清0 PCA 数器低 8 位
;-------------------------
; 置模 1 高速脉冲 出模式, 脉冲在P3.5(第9脚) 出
MOV CCAPM1, #01001101B
;4DH,
4
置 PCA 模 1 高速脉冲 出模式,允 触 中断
;CCAPMn:
7
-
0
6
5
3
2
1
0
;
;
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
1
0
0
1
1
0
1
MOV CCAP1L, #CCAPnL_Value ; 模 1置初 , 此句不可少
MOV CCAP1H, #0 ; 模 1置初 , 此句不可少
;其它中断服 可能会使模 1 高速脉冲 出的某个周期突然 得很大,因此必 将
;PCA 中断的 先 置 唯一的最高 , 其它中断的 先 都要比它低。
MOV IPH, #01000000B
MOV IP, #01000000B
;PCA 中断的 先
置 唯一的最高
SETB EPCA_LVD
SETB EA
SETB CR
RET
; 开 PCA 中断
; 开 中断
; 将PCA 数器打开
;------------------------------------------------------------
END
;------------------------------------------------------------
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 90
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
利用定 器0的溢出作 PCA模 的 入源
--- 利用PCA模 0 了可 率的PWM 出
--- 利用PCA模 1重新 了16位定 器
;---------------------------------------------------------------------
;使用 定 器0 的溢出,作 PCA 模 的
入源,利用PCA 模 的多种功能
了定 器功能
;
了可 率的PWM 出( 可以改 占空比),同 利用PCA 模 再
;使用 STC12C2052AD 系列 片机 PCA 模 的模 0的PWM功能 做PWM 出的示例程序
;使用 STC12C2052AD 系列 片机 PCA 模 的模 1的16位 定 器功能做定 器的示例程序
;使用 STC12C5410AD 系列 片机 PCA 模 的模 0的PWM功能 做PWM 出的示例程序
;使用 STC12C5410AD 系列 片机 PCA 模 的模 1的16位 定 器功能做定 器的示例程序
;晶振 率 Fosc = 18.432MHz,在P1.5 出脉冲 度 1 秒 的方波
;------------------------------------------------------------------------------
;声明 STC12C2052AD 和STC12C5410AD系列 MCU 特殊功能寄存器地址
IPH
EQU 0B7H
; 中断 先 高位寄存器
EPCA_LVD EQU IE.6
;PCA 中断和 LVD(低
)中断共享的 中断控制位
CH
CL
EQU 0F9H
EQU 0E9H
;PCA
;PCA
数器高8位。
数器低8位。
;------------------------
CCON
CCF0
CCF1
CCF2
CCF3
CCF4
CCF5
EQU 0D8H
;PCA 控制寄存器。
EQU CCON.0
EQU CCON.1
EQU CCON.2
EQU CCON.3
EQU CCON.4
EQU CCON.5
;PCA 模 0 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 1 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 2 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 3 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 4 中断 志, 由硬件置位, 必 由 件清0。
;PCA 模 5 中断 志, 由硬件置位, 必 由 件清0。
CR
CF
EQU CCON.6
EQU CCON.7
;1: 允 PCA 数器 数, 必 由 件清0。
;PCA
;PCA
数器溢出(CH,CL由 FFFFH
0000H) 志,
数器溢出后由硬件置位,必 由 件清0。
;------------------------
CMOD
EQU 0D9H
CIDL: idle 状
;PCA 工作模式寄存器。
PCA 数器是否 数, 0:
;CMOD.7
数, 1: 停止 数。
;CMOD.2
CPS1: PCA
CPS0: PCA
CPS1 CPS0
数器 数脉冲源
数器 数脉冲源
位 1。
位 0。
;CMOD.1
;
;
;
;
;
;
0
0
1
0
1
0
外部晶体 率/12。
外部晶体 率/2。
Timer 0 溢出脉冲,
Timer 0
可通 AUXR寄存器 置成工作在 12T 或 1T 模式。
1
1
从 ECI/P3.4 脚 入的外部
。
;CMOD.0
宏晶科技:
ECF: PCA 数器溢出中断允 位, 1-- 允 CF(CCON.7) 生中断。
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 91
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
;------------------------
Fax: 0755-82944243
CCAP0H EQU 0FAH
CCAP1H EQU 0FBH
CCAP2H EQU 0FCH
CCAP3H EQU 0FDH
CCAP4H EQU 0FEH
CCAP5H EQU 0FFH
;PCA 模 0的捕捉/比 寄存器高 8 位。
;PCA 模 1的捕捉/比 寄存器高 8 位。
;PCA 模 2的捕捉/比 寄存器高 8 位。
;PCA 模 3的捕捉/比 寄存器高 8 位。
;PCA 模 4的捕捉/比 寄存器高 8 位。
;PCA 模 5的捕捉/比 寄存器高 8 位。
CCAP0L EQU 0EAH
CCAP1L EQU 0EBH
CCAP2L EQU 0ECH
CCAP3L EQU 0EDH
CCAP4L EQU 0EEH
CCAP5L EQU 0EFH
;PCA 模 0的捕捉/比 寄存器低 8 位。
;PCA 模 1的捕捉/比 寄存器低 8 位。
;PCA 模 2的捕捉/比 寄存器低 8 位。
;PCA 模 3的捕捉/比 寄存器低 8 位。
;PCA 模 4的捕捉/比 寄存器低 8 位。
;PCA 模 5的捕捉/比 寄存器低 8 位。
;------------------------
PCA_PWM0 EQU 0F2H
PCA_PWM1 EQU 0F3H
PCA_PWM2 EQU 0F4H
PCA_PWM3 EQU 0F5H
PCA_PWM4 EQU 0F6H
PCA_PWM5 EQU 0F7H
;PCA 模 0 PWM 寄存器。
;PCA 模 1 PWM 寄存器。
;PCA 模 2 PWM 寄存器。
;PCA 模 3 PWM 寄存器。
;PCA 模 4 PWM 寄存器。
;PCA 模 5 PWM 寄存器。
;PCA_PWMn:
;
7
-
6
-
5
-
4
-
3
-
2
-
1
0
EPCnH EPCnL
;B7-B2: 保留
;B1(EPCnH): 在 PWM 模式下,与 CCAPnH
;B0(EPCnL): 在 PWM 模式下,与 CCAPnL
成 9 位数。
成 9 位数。
;------------------------
CCAPM0 EQU 0DAH
CCAPM1 EQU 0DBH
CCAPM2 EQU 0DCH
CCAPM3 EQU 0DDH
CCAPM4 EQU 0DEH
CCAPM5 EQU 0DFH
;PCA 模 0的工作模式寄存器。
;PCA 模 1的工作模式寄存器。
;PCA 模 2的工作模式寄存器。
;PCA 模 3的工作模式寄存器。
;PCA 模 4的工作模式寄存器。
;PCA 模 5的工作模式寄存器。
;CCAPMn:
7
-
6
5
4
3
2
1
0
;
;
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
;ECOMn = 1: 允 比 功能。
;CAPPn = 1:允 上升沿触 捕捉功能。
;CAPNn = 1:允 下降沿触 捕捉功能。
;MATn = 1:当匹配情况 生 , 允 CCON 中的 CCFn 置位。
;TOGn = 1:当匹配情况 生 , CEXn 将翻 。
;PWMn = 1:将 CEXn 置 PWM
出。
宏晶科技: 片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 92
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;ECCFn = 1:允 CCON 中的 CCFn 触 中断。
;ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
; 0
; x
; x
; x
; 1
; 1
; 1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0 00H 未启用任何功能。
x 21H 16 位CEXn上升沿触 捕捉功能。
x 11H 16 位CEXn下降沿触 捕捉功能。
x 31H 16 位CEXn 沿(上、下沿)触 捕捉功能。
x 49H 16 位 件定 器。
x 4DH 16 位高速脉冲 出。
0 42H 8 位 PWM。
;------------------------------------------------------------------------------
;定 片机管脚
LED_MCU_START
EQU P1.7
EQU P1.6
EQU P1.5
LED_5mS_Flashing
LED_1S_Flashing
;------------------------------------------------------------------------------
;定 常量
;Channe1_5mS_H, Channe1_5mS_L 的 算方法 PCA 中断服 程序内的注
;-----------------------------------
;用定 器0 的溢出率作 PCA 数器(CH,CL)的
源
;Channe1_5mS_H
Channe1_5mS_H
EQU 03H
EQU 01H
EQU 00H
EQU 03H
EQU 099H
;PCA 模 1 5mS 定 常数高位, Fosc = 18.432
;PCA 模 1 5mS 定 常数高位, Fosc = 18.432
;PCA 模 1 5mS 定 常数低位, Fosc = 18.432
;PCA 模 1 5mS 定 常数高位, Fosc = 22.1184
;PCA 模 1 5mS 定 常数低位, Fosc = 22.1184
Channe1_5mS_L
;Channe1_5mS_H
;Channe1_5mS_L
;------------------
;内部
率(fosc)/12 作 PCA 数器(CH,CL)的
源
;Channe1_5mS_H
;Channe1_5mS_L
EQU 1EH
EQU 00H
;PCA 模 1 5mS 定 常数高位
;PCA 模 1 5mS 定 常数低位
;-----------------------------------
Timer0_Reload_1
Timer0_Reload_2
EQU 0F6H
EQU 0ECH
;Timer0 自 重装数 = -10
;Timer0 自 重装数 = -20
;-----------------------------------
PWM_PULSE_WIDTH EQU 0FFH ; 数字越大脉 越窄(占空比越小),P3.5 的 LED 越亮。
;------------------------------------------------------------------------------
;定
Counter
量
EQU 30H
; 声明一个 数器,用来 数中断的次数
;------------------------------------------------------------------------------
ORG 0000H
LJMP MAIN
;------------------------------------------------------------------------------
ORG 0033H
;interrupt 6(0,1,2,3,4,5,6)
LJMP PCA_interrupt
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 93
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;------------------------------------------------------------------------------
ORG 0050H
MAIN:
CLR LED_MCU_START
MOV SP, #7FH
; 点亮 MCU 开始工作指示灯
MOV Counter, #0
ACALL PCA_Initiate
ACALL Timer0_Initiate
; 清Counter 数器
; 初始化 PCA
; 初始化 T0
MAIN_Loop:
;######### P3.5 的 LED 亮 #################
MOV TH0, #Timer0_Reload_1 ;T0 溢出率高
MOV TL0, #Timer0_Reload_1
MOV A, #PWM_PULSE_WIDTH ; 亮, 数字越大 PWM 占空比越小,P3.5 的 LED 越亮。
MOV CCAP0H, A
ACALL delay
;--------------------
; 注意T0溢出率 低后定 器脉冲的 LED
速度 慢, 而 PWM 的 LED 亮度未改
MOV TH0, #Timer0_Reload_2 ;T0 溢出率低
MOV TL0, #Timer0_Reload_2
ACALL delay
;######### P3.5 的 LED 亮 ################
MOV TH0, #Timer0_Reload_1 ;T0 溢出率高
MOV TL0, #Timer0_Reload_1
MOV A, #PWM_PULSE_WIDTH
ACALL RL_A
ACALL RL_A
; 改 PWM 占空比
MOV CCAP0H, A
ACALL delay
; 亮, 数字越大 PWM 占空比越小,P3.5 的 LED 越亮
;--------------------
; 注意T0溢出率 低后定 器脉冲的 LED
速度 慢, 而 PWM 的 LED 亮度未改
MOV TH0, #Timer0_Reload_2 ;T0 溢出率低
MOV TL0, #Timer0_Reload_2
ACALL delay
;######### P3.5 的 LED 暗 ##################
MOV TH0, #Timer0_Reload_1 ;T0 溢出率高
MOV TL0, #Timer0_Reload_1
MOV A, #PWM_PULSE_WIDTH
ACALL RL_A
ACALL RL_A
; 改 PWM 占空比
ACALL RL_A
ACALL RL_A
MOV CCAP0H, A
ACALL delay
; 暗, 数字越大 PWM 占空比越小,P3.5 的 LED 越亮
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 94
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
;--------------------
Fax: 0755-82944243
; 注意T0溢出率 低后定 器脉冲的 LED
速度 慢, 而 PWM 的 LED 亮度未改
MOV TH0, #Timer0_Reload_2 ;T0 溢出率低
MOV TL0, #Timer0_Reload_2
ACALL delay
;############################################
SJMP MAIN_Loop
; 无限循 。
;------------------------------------------------------------------------------
RL_A:
CLR C
RRC A
RET
;------------------------------------------------------------------------------
Timer0_Initiate:
;初始化 T0, 其溢出脉冲作 PCA 数器(CH,CL)的
源
MOV TMOD, #02H
MOV TH0, #Timer0_Reload_1
MOV TL0, #Timer0_Reload_1
SETB TR0
; 置定 器0 自 重装工作模式
; 启 定 器0
RET
;------------------------------------------------------------------------------
PCA_Initiate:
; MOV CMOD, #10000000B ;PCA 在空 模式下停止 PCA 数器工作
;
;
;PCA
源 fosc/12
; 禁止 PCA 数器溢出(CH,CL由 FFFFH
0000H )中断
0000H )中断
MOV CMOD, #10000100B ;PCA 在空 模式下停止 PCA 数器工作
;PCA
源 定 器0 (T0) 的溢出率
;禁止 PCA 数器溢出(CH,CL由 FFFFH
;CF = 0 ,清0 PCA 数器溢出中断 求 志位
;CR = 0, 不允 PCA 数器 数
MOV CCON, #00H
;清0 PCA 各模 中断 求 志位,如 CCF1,CCF0
; 清0 PCA 数器
MOV CL, #00H
MOV CH, #00H
;-------------------------
; 置模 0 8 位 PWM 出模式, PWM 无需中断支持。脉冲在P3.7(第11脚) 出
MOV CCAPM0, #42H
MOV PCA_PWM0, #00H
; MOV PCA_PWM0, #03H
;*** 示例程序核心 句, 置模 0
8 位 PWM 出模式
;*** 示例程序核心 句, 清 0 PWM 模式下的第 9 位
; 放本行注 , PWM 出就一直是 0, 无脉冲。
MOV CCAP0H, #PWM_PULSE_WIDTH ;*** 示例程序核心 句
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 95
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;-------------------------
; 置 PCA 模 1
;Channe1_5mS_H, Channe1_5mS_L 的 算方法 PCA 中断服 程序内的注
MOV CCAP1L, #Channe1_5mS_L ;
MOV CCAP1H, #Channe1_5mS_H ;
PCA 模 1 的 CCAP1L 置初
PCA 模 1 的 CCAP1H 置初
MOV CCAPM1, #49H
; 置 PCA 模 1
16位 件定 器,ECCF1=1允 PCA模 1中断
;当[CH,CL]==[CCAP1H,CCAP1L] , 生中断 求,CCF1=1, 求中断
SETB EPCA_LVD
SETB EA
; 开 PCA 中断和 LVD(低
)中断共享的 中断控制位
; 开整个 片机所有中断共享的 中断控制位
; 启 PCA 数器(CH,CL) 数
SETB CR
RET
;------------------------------------------------------------------------------
PCA_Interrupt:
PUSH ACC
PUSH PSW
CPL LED_5mS_Flashing ; 本程序PCA模 1每5mS中断一次, 每次 中断将 灯状 取反
;用定 器0 的溢出率作 PCA 数器(CH,CL)的
;在本程序中定 器0 每12个 脉冲加1, 定 器0每加 10 次后 生 1 次溢出, 即每
;120 个 脉冲 PCA 数器(CH,CL)加1。当[CH,CL] 增加到等于 [CCAP1H,CCAP1L]
;CCF0=1, PCA 模 1 生中断 求。如果每次 PCA 模 1 中断后, 在中断服 程序中
源 , 算 Channe1_5mS_H, Channe1_5mS_L
;[CCAP1H,CCAP1L] 增加一个相同的数 ,那么下一次中断来 的 隔
;同的。本程序中 个"相同的数 " 就是 Channe1_5mS_H, Channe1_5mS_L
T 也是相
; 例:
率 Fosc = 18.432MHz, PCA
Channe1_5mS_H, Channe1_5mS_L = T/( (1/Fosc)*120 )
= 0.005/ ( (1/18432000)*120 )
= 768 (10 制数)
= 300H (16 制数)
即 Channe1_5mS_H = 03H, Channe1_5mS_L = 00H
数器 数 300H 次等于 5mS。
;
;
;
;
;
;
; Channe1_5mS_H, Channe1_5mS_L :每次 [CCAP1H,CCAP1L] 增加的数 (步 )
;内部
;在本程序中[CH,CL]每12个
;CCF0=1, PCA 模 1 生中断 求。如果每次 PCA 模 1 中断后, 在中断服 程序中
率(fosc)/12 作 PCA 数器(CH,CL)的
源, 算 Channe1_5mS_H,Channe1_5mS_L
脉冲加1, 当[CH,CL] 增加到等于 [CCAP1H,CCAP1L]
;[CCAP1H,CCAP1L] 增加一个相同的数 ,那么下一次中断来 的 隔
;同的。本程序中 个"相同的数 " 就是 Channe1_5mS_H, Channe1_5mS_L
T 也是相
; 例:
率 Fosc = 18.432MHz, PCA
Channe1_5mS_H, Channe1_5mS_L = T/( (1/Fosc)*12 )
= 0.005/ ( (1/18432000)*12 )
= 7680 (10 制数)
= 1E00H (16 制数)
即 Channe1_5mS_H = 1EH, Channe1_5mS_L = 00H
数器 数 1E00H 次才是 5mS。
;
;
;
;
;
;
; Channe1_5mS_H, Channe1_5mS_L :每次 [CCAP1H,CCAP1L] 增加的数 (步 )
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 96
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
MOV A, #Channe1_5mS_L
ADD A, CCAP1L
; [CCAP1H,CCAP1L] 增加一个数
MOV CCAP1L, A
MOV A, #Channe1_5mS_H
ADDC A, CCAP1H
MOV CCAP1H, A
CLR CCF1
; 清 PCA 模 1 中断 志
; 中断次数 数器 + 1
INC Counter
MOV A, Counter
CLR C
SUBB A, #100
;
是否中断了 100 次(0.5秒)
JC
PCA_Interrupt_Exit
; 有借位,表示 Counter 小于 100,立即跳 退出
MOV Counter, #0
; 已中断了 100 次,清 0 中断次数 数器
CPL LED_1S_Flashing
; 在LED_1S_Flashing 出脉冲 度 0.5 秒 的方波
PCA_Interrupt_Exit:
POP PSW
POP ACC
RETI
;------------------------------------------------------------------------------
delay:
CLR A
MOV R1, A
MOV R2, A
MOV R3, #80H
delay_loop:
NOP
NOP
NOP
DJNZ R1, delay_loop
DJNZ R2, delay_loop
DJNZ R3, delay_loop
RET
;------------------------------------------------------------------------------
END
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 97
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
PCON 寄存器的高
用,上 复位 志, 入掉 模式
Mnemonic Add Name
7
6
5
4
3
2
1
0 Reset value
IDL 0011,0000
PCON
87h Power Control SMOD
SMOD0 LVDF
POF
GF1
GF0
PD
POF:上 复位 志位, 片机停 后,上 复位 志位 1,可由 件清0。
用:要判断是上 复位(冷启 ), 是外部复位脚 入复位信号 生的复位, 是内部看
狗复位,可通 如下方法来判断:
在初始化程序,
判POF是否 1
否 POF=0
冷启
是
上 复位
POF=1
外部手 复位
或看 狗复位
将POF清0
PD:将其置1 , 入Power Down 模式,可由外部中断低 平触 或下降沿触 中断模式 醒。
入掉 模式 ,外部
停振,CPU、定 器、串行口全部停止工作,只有外部中断
工作。
IDL:将其置1 , 入IDLE模式(空 ), 除CPU不工作外,其余仍
工作,可由任何一个中断 醒。
C版本开始大量供 ,C版本IDLE模式可正常使用(原A版本和B版本建 不要用IDLE模式)。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 98
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列1T 片机通 外部中断从掉 模式 醒
;*************************************************************************
;Wake Up Idle and Wake Up Power Down
;*************************************************************************
ORG 0000H
AJMP MAIN
ORG 0003H
int0_interrupt:
CLR P1.7
ACALL delay
CLR EA
RETI
; 点亮 P1.7 LED 表示已响 int0 中断
; 延 是 了便于 察,
; 关 中断, 化
用不需延
.
用不需关 中断
ORG 0013H
int1_interrupt:
CLR P1.6
ACALL delay
CLR EA
; 点亮 P1.6 LED 表示已响 int1 中断
; 延 是 了便于 察,
; 关 中断, 化
用不需延
.
用不需关 中断
RETI
ORG 0100H
delay:
CLR A
MOV R0, A
MOV R1, A
MOV R2, #02
delay_loop:
DJNZ R0, delay_loop
DJNZ R1, delay_loop
DJNZ R2, delay_loop
RET
main:
MOV R3, #0
main_loop:
MOV A, R3
CPL A
;P1 LED
增方式 化, 表示程序开始运行
MOV P1, A
ACALL delay
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 99
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
INC R3
MOV A, R3
SUBB A, #18H
JC
main_loop
MOV P1, #0FFH
; 熄 全部灯表示 入 Power Down 状
; 置低 平激活外部中断
CLR IT0
; SETB IT0
SETB EX0
; 允 外部中断0
CLR IT1
; SETB IT1
SETB EX1
; 置低 平激活外部中断
; 允 外部中断1
; SETB ET0 ;如果是STC12C2052AD系列A版本,
;要由外部中断1 醒,“ET0=1”是必 的,硬件就
做的,C版本就不需要
;外部中断0就无此必要,建 Powerdown用外部中断0 醒
SETB EA
; 开中断, 若不开中断就不能 醒 Power Down
;下条 句将使 MCU 入 idle 状 或 Power Down 状
;低 平激活外部中断可以将 MCU 从 Power Down 状 中 醒
;其方法 :将外部中断脚拉低
MOV A, PCON
ORL A, #02H
MOV PCON, A
; 令 PD=1, 入 Power Down 状 , PD = PCON.2
MOV PCON, #01H
MOV P1, #0DFH
; 除本 句前的";", 同 将前3条 句前加上注 符号";",
;令 IDL=1, 可 入 idle 状 , IDL = PCON.1
; 注意:
; 1. 外部中断使MCU退出 Power Down 状 , 行本条指令后
;响 中断, 表
; 2. 外部中断使MCU退出 idle 状 ,先响 中断然后再 行本
;条指令, 表 P1.7的LED先亮(INT0 醒)P1.5的LED后亮
P1.5与P1.7的LED同 亮(INT0 醒)
WAIT1:
SJMP WAIT1
END
; 跳 到本 句, 停机
;A版本和B版本建 不要用IDLE模式, C版本可以正常使用
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 100
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
入掉 模式前的I/O 置特 注意事
A版本, 供 的是最新版本C版本
---
※STC12C5410AD 系列 片机最新的C 版本已开始大量供 ,已解决此
,B 版本
也无
,只有A 版本需要注意
A 版本如下 用注意事 :
STC12Cxxꢀ要Power Downꢀ<ꢀ0.1uA,
1.
入Power Down 之前
如果您系 外部所接的口是 入,我 STC12Cxx 是 出,
将我 的 I/O Push-Pull 出
外部是低,你就要 低; 外部是高,你就要 高, 否 就 > 0.1uA
如果是后 的版本,不一定要 置成Push-Pull 出,用弱上拉就可以了。
2.
如果您系 外部所接的口是 出,我 STC12Cxx 是 入,
将我 的 I/O
Only-Input, 高阻
入
如果是后 的版本,不一定要 置成Only-Input 出,用弱上拉就可以了。
3.
如果您系 外部所接的口是高阻,我 STC12Cxx ,
将我 的 I/O
Push-Pull 出
Only-Input/ 高阻
不要将我 的 I/O
如果是后 的版本,不一定要 置成Push-Pull 出,用弱上拉就可以了。
在C 版本已开始供 ,定
指定C 版本就可以了
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 101
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机 气特性
ELECTRICAL CHARACTERISTICS
Absolute Maximum Ratings
Parameter
Symbol
MIN
-55
-40
0
MAX
UNIT
Storage temperature
TST
+125 ℃
Operating Temperature(I) TA
Operating Temperature(C) TA
DC Power Supply(5V MCU) VDD - VSS
DC Power Supply(3V MCU) VDD - VSS
Voltage on any Pin
+85
+70
℃
℃
-0.3
-0.3
-0.5
+6.0 V
+4.0 V
+5.5 V
DC Specification(5V MCU)
Specification
Min. Typ. Max. Unit
Test
Condition
Symbol Parameter
VDD
Operating Voltage
3.4
5.0
5.5
V
IPWDN
IIDLE
ICC
Power Down Current
Idle Current
<0.1
3.0
uA
mA
mA
5V
5V
5V
Operating Current
4 mA 20
0.8
Input low voltage
(P0,P1,P2,P3)
VIL1
VIL2
VIH1
VIH2
V
V
V
V
5V
5V
5V
5V
Input low voltage
(RESET,XTAL1)
1.5
Input High voltage
(P0,P1,P2,P3)
2.0
3.0
Input High voltage
(RESET)
Sinking Current
for Output Low
(P0,P1,P2,P3)
IOL1
IOH1
20
mA
uA
5V
5V
Sourcing Current
for Output High
(P0,P1,P2,P3)
150
230
Sourcing Current
for Output High
(P0,P1,P2,P3)
(Push-Pull)
IOH2
20
mA
5V
Logic 0 input
current
(P0,P1,P2,P3)
IIL
18
50
uA
uA
VPIN=0V
VPIN=2V
Logic 1 to 0
transition current
(P0,P1,P2,P3)
ITL
270
600
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 102
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
DC Specification(3.3V MCU)
Specification
Test
Condition
Symbol Parameter
Min. Typ. Max. Unit
VDD
Operating Voltage 2.0 3.3 4.0 V
IPWDN
IIDLE
ICC
Power Down Current
Idle Current
<0.1
uA
mA
mA
3.3V
3.3V
3.3V
2.0
Operating Current
4 mA 10
Input low voltage
(P0,P1,P2,P3)
VIL1
VIL2
VIH1
VIH2
0.8 V
3.3V
3.3V
3.3V
3.3V
Input low voltage
(RESET,XTAL1)
1.5 V
Input High voltage
(P0,P1,P2,P3)
2.0
3.0
V
V
Input High voltage
(RESET)
Sinking Current
for Output Low
(P0,P1,P2,P3)
IOL1
IOH1
20
70
mA
3.3V
3.3V
Sourcing Current
for Output High
(P0,P1,P2,P3)
40
uA
mA
uA
Sourcing Current
for Output High
(P0,P1,P2,P3)
(Push-Pull)
IOH2
20
8
3.3V
Logic 0 input
current
(P0,P1,P2,P3)
IIL
ITL
50
VPIN=0V
VPIN=2V
Logic 1 to 0
transition current
(P0,P1,P2,P3)
110 600 uA
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 103
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD 系列 片机ISP 程原理 使用 明
片机 底没
外部手 复位,看 狗复位, 片
片机上 复位,冷起
机不会运行ISP程序
片机运行ISP程序,
有无合法下
冷起 , 片机运行系 ISP 控程序
P3.0/RxD有没有合法下 命令流
命令流,占 几十mS - 几百mS,如无
合法下 命令流, 立即跑用 程序
如果已 置P1.0/P1.1=0/0,才会判断是否下
用 程序, 冷启 后,如P1.0/P1.1 ≠0/0,
直接跑用 程序,只会占 50uS,可忽略不 。
有
建 用
P1.0/P1.1 不同
0/0, 立即
无
跑用 程序,跨 系 ISP 控程序。
下 用 程序 用 程序区
PC机端控制 件 STC-ISP-V3.1及以后的版本从
www.MCU-Memory.com下 ,如何使用,本文相关部
分有 明
PC 机端的控制 件必需先 下 命令流,
复位到用 程序区,运行用 程序
再
片机上 复位
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 104
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC 12C5410AD 系列 片机在系 可 程的使用
---将用 代 下
片机内部,不用 程器
Vcc
PC /
串口
STC3232,STC232,MAX232,SP232
通
端的
10μF
Vcc
2
3
1
2
3
4
5
6
7
8
C1+
V+
Vcc 16
GND 15
STC-ISP 件
控制下
0.1uF
0.1uF
Gnd
PC_RxD (COM Pin2)
5
C1-
T1OUT 14
R1IN 13
PC_TxD (COM Pin3)
“用 程序”
到STC 片机
C2+
C2-
USB +5V
R1OUT 12
T1IN 11
建 用 在系 上
留此接口,可方便
在 下 用 程序
V-
0.1uF
SW1
T2OUT
R2IN
T2IN 10
USB+5V T1OUT R1IN GND
R2OUT
9
Power On
源开关
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB1
晶振 率在20M以下 :
可以不用C1,R1可 0~10K
Vcc
R1
10K
Vcc
10μF
C1
1 RST
VCC 20
1K
1K
2 RxD/P3.0
3 TxD/P3.1
4 XTAL2
P1.7/SCLK/ADC7 19
P1.6/MISO/ADC6 18
P1.5/MOSI/ADC5 17
P1.4/SS/ADC4 16
P1.3/ADC3 15
<33pF
<33pF
0.1μF
10μF
5 XTAL1
6 INT0/P3.2
7 INT1/P3.3
8 ECI/T0/P3.4
P1.2/ADC2 14
P1.1/ADC1 13
9 PWM1/PCA1/T1/P3.5 P1.0/ADC0 12
10 Gnd P3.7/PCA0/PWM0 11
STC12C5410AD 系列 片机具有在系 可 程(ISP)特性,ISP 的好 是:省去
器, 片机在用 系 上即可下 / 用 程序,而无 将 片机从已生 好的 品上拆下,再用通用
程器将程序代 片机内部。有些程序尚未定型的 品可以一 生 ,一 完善,加快了 品
入市 的速度,减小了新 品由于 件缺陷 来的 。由于可以在用 的目 系 上将程序直接下
片机看运行 果 ,故无 仿真器。
STC12系列 片机内部固化有ISP系 引 固件,配合PC端的控制程序即可将用 的程序代 下
片机内部,故无 程器(速度比通用 程器快,几秒一片)。
如何 得及使用STC 提供的ISP 下 工具(STC-ISP.exe 件):
(1). 得STC 提供的ISP 下 工具( 件)
www.MCU-Memory.com 网站,从STC 半 体
将其自解 ,再安装即可( 行setup.exe),注意随 更新 件。
(2). 使用STC-ISP 下 工具( 件), 随 更新,目前已到Ver3.1 版本以上,支持*.bin,
通用 程
登
下 PC(
)端的ISP 程序,然后
*.hex(Intel 16
制格式)文件。
)端的ISP 程序。
随 注意升 PC(
(3).STC12C5410AD系列 片机出厂 就已完全加密。需要 片机内部的 放光后上 复位(冷起 )才运
行系 ISP程序,如从 P3.0/RxD
程序区。
到合法的下 命令流就下 用 程序,如
不到就系 复位到用
(4).如果用 板上P3.0/RxD,P3.1/Txd接了RS-485等 路,下
485等通信 路,推荐在 下次冷启
需要将其断开。用 系 接了RS-
中
需P1.0/P1.1=0/0才判是否下 程序。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 105
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
第一次 文件
要 几个文件
冲区,要清 冲区。
冲区,如EEPROM里的
数据文件需要和 用程序文件一次同
ISP 下 片机:
程
除每次均要指定 冲区起始地址外,第
二次及以后不能清 冲区
如可将要写入EEPROM区的数据文件 入
从 冲区2800H开始的地方,并不清 冲
区,然后和 用程序一起写入
用 根据
使用效果
限制最高通信
波特率,如57600,38400,19200
如P3.0/P3.1外接RS-485/RS-232等通
信 路,建
如P1.0/P1.1不同
等于0/0, 直接运行用 程序,跨
系 ISP引 程序
新的 置冷启 ( 底停 后再上 )
后才生效
开
,可考
此
大批量生
使用
Step1/步 1:
Step2/步 2:打开文件,要
Step3/步 3: 串行口,你所使用的
有些新式笔 本
你所使用的 片机型号,如STC12C5410,STC12C5410AD等
用 程序,必 入用 的程序代 (*.bin, *.hex)
串口,如串行口1--COM1, 串行口2--COM2,...
没有RS-232串行口,可 一条USB-RS232 接器,人民 50元左右。
有些USB-RS232 接器,不能兼容,可 宏晶帮你
的
器。
Step4/步 4:
下次冷启 后,
“Download/ 下 ”按 下 用 的程序
Step5/ 步 5, 也可
注意看提示,主要看是否要 片机上 或复位, 下 速度比一般通用 程器快。
“Download/ 下 ”按 ,然后再 片机上 复位(先 底断 ),而不要
不到合法的下 命令流, 片机就直接跑用 程序了。
源 “内部R/C振 器” 是“外部晶体或
”。
Step5/ 步 5:
片机内部,可重复 行
“Re-Download/重复下 ”按
下
一定要先
先上 ,先上 ,
关于硬件 接:
(1). MCU/ 片机 RXD(P3.0) --- RS-232
(2). MCU/ 片机 TXD(P3.1) --- RS-232
器 --- PC/
器 --- PC/
TXD(COM Port Pin3)
RXD(COM Port Pin2)
GND(COM Port Pin5)
(3). MCU/ 片机 GND
(4). 如果您的系 P3.0/P3.1 接到 RS-485
“下次冷启 需要P1.0/P1.1 = 0,0 才判P3.0/RxD有无合法下 命令流”
冷启 后如 P1.0, P1.1 不同 0, 片机直接运行用 程序,免得由于RS-485
的乱 造成 片机反复判断乱 是否 合法,浪 几百mS的
---------------------- PC/
路,推荐
在
里
上
(5). RS-232
器可 用STC232/MAX232/SP232(4.5-5.5V),STC3232/MAX3232/SP3232(3V-5.5V).
STC232/MAX232/SP232 尽量 用SOP封装(窄体),STC3232尽量 用SOP封装(窄体).
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 106
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
如用 系 没有RS-232 接口,
可使用STC-ISP Ver 3.0A.PCB 演示板作 程工具
STC-ISP Ver 3.0APCB 板如 接的是STC12C5410AD的 路,
可完成STC12C5410AD系列 片机的ISP下
在STC-ISP Ver 3.0A PCB 板完成下 /
程/
用 程序的功能。
:
关于硬件 接:
(1.) 根据 片机的工作
片机 源
A. 5V 片机,短接JP1的MCU-VCC, +5V 源管脚
B.3V 片机,短接JP1的MCU-VCC, 3.3V 源管脚
(2.) 接 (宏晶提供)
A. 将一端有9芯 接座的插 插入PC/
RS-232串行接口插座用于通信
B. 将同一端的USB插 插入PC/ USB接口用于取
C. 将只有一个USB插 的一端插入宏晶的STC-ISP Ver 3.0A PCB 板USB1插座用于RS-232通
信和供 ,此 USB +5V Power 灯亮(D43,USB接口有 )
(3.)其他插座不需 接
(4.)SW1开关 于非按下状 ,此 MCU-VCC Power 灯不亮(D41), 没有
(5.)SW3开关
片机通
于非按下状 ,P1.0, P1.1 = 1, 1, 不短接到地。
于按下状 , P1.0, P1.1 = 0, 0, 短接到地。
如果 片机已被 成“下次冷启 P1.0/P1.1 = 0,0 才判P3.0/RxD有无合法下 命令流”
就必 将SW3开关 于按下状 ,
片机的P1.0/P1.1短接到地
(6.)将 片机插 U1-Socket
是40-PIN,我 的
座,
片机,注意 片机是20-PIN,而U1-Socket
座
是靠下插,靠近晶体的那一端插。
片机上 之前 PC 先 一串合法下 命令)
片机上 复位, 此 MCU-VCC Power 灯亮(D41)
入ISP)
(7.)关于 件:
“Download/ 下 ”( 必 在
(8.)按下SW1开关,
此 STC 片机 入ISP 模式(STC12C5410AD系列冷启
(9.)下 成功后,再按SW1开关,此 SW1开关 于非按下状 ,MCU-VCC Power 灯不亮(D41),
片机断 ,取下 片机。
利用STC-ISP Ver 3.0A PCB 板 行RS-232
片机在用 自己的板上完成下 / :
1.U1-Socket
座不得插入 片机
2.将用 系 上的 源(MCU-VCC,GND)及 片机的P3.0/RXD,P3.1/TXD接入
板CN2插座
用 系 上的 片机就具 了与PC/
行通信的能力
3. 将用 系 的 片机的P1.0,P1.1接入
板CN2插座(如果需要的 )
4. 如 P1.0, P1.1 = 0, 0, 短接到地,可在用 系 上将其短接到地,或将P1.0/P1.1也从
用 系 上引到STC-ISP Ver3.0A PCB 板上,将SW3开关按下, P1.0/P1.1=0,0。
5. 关于 件:
“Download/下 ”
6. 片机系 上 复位(注意是从用 系 自供 ,不要从
USB取 ,
USB座不插)
7. 下 程序 ,如用 板有外部看 狗 路,不得启 , 片机必 有正确的复位,但不能在ISP下
程序 被外部看 狗复位,如有,可将外部看 狗 路WDI端/或WDO端浮空
8. 如有RS-485晶片 到P3.0/Rxd,P3.1/Txd,或其他 路,在下
将其断开。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 107
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C5410AD系列 器/ 器, 程器,仿真器
STC 片机 使用何种 器/
器:
1.任何老的
器/
器都可以支持,流行用Keil C51
2.把STC 片机,当成Intel的8052/87C52/87C54/87C58,Philips的P87C52/P87C54/P87C58就可以了
3.如果要用到 展的 用特殊功能寄存器,直接
地址 好
地址 元 置就行了,当然先声明特殊功能寄存器的
程 器:
我 有: STC12C5410AD 系列 ISP
型下
程工具(人民 50元,可申 免
品)
注意:有 下 28PIN/20PIN的不同演示板,
28PIN 是28PIN的演示板,20PIN是20PIN的演示板
仿真器:如您已有老的仿真器,可仿真普通8052的基本功能
STC12C5410AD系列 片机 展功能如它仿不了
可以用 STC-ISP 直接下 用 程序看运行 果就可以了
无 添加新的
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 108
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 A:
内部数据RAM存 器
内部数据RAM 存 器
STC12C5410AD系列 片机内部有256字 常 的RAM,256字 的 展RAM
器件的内部常 数据存 器由3部分 成:
1.低128 字 RAM(00H~7FH), 可直接和 接 址,用“MOV”和“MOV @Ri ”
2.高128字 RAM(80H~FFH), 接 址,用“MOV @Ri”
3.特殊功能寄存器(80H~FFH), 只可直接 址, 用“MOV”
由于高128字 RAM和SFR(特殊功能寄存器)占用相同的地址,因此高128字 RAM空 必 用 接 址
(MOV @Ri )来区分。特殊功能寄存器(80H~FFH), 只可直接 址(用“MOV”)来区分。尽管RAM
和SFR的地址相同,但它 在物理上是独立的。
展数据RAM
STC12C5410AD系列有256字 的 展RAM,称其 XRAM(附加RAM), 用“MOVX” 址。
展的256 字 RAM(0000H~00FFH), 通 MOVX 指令 接 址。
使用“MOVX @DPTR ” / “MOVX @Ri ”
C 言中,可使用xdata声明存
unsigned char xdata i = 0;
型即可,如:
FFH
FFH
00FFH
( 接 址)
(直接 址)
特殊功能寄存器
(S F R )
展RAM
256字
高128字 内部RAM
80H
7FH
80H
低128字 内部RAM
(外部 接 址)
( 接& 直接 址)
00H
0000H
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 109
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
内部常 256字 RAM 接 址 程序
TEST_CONSTEQU 5AH
;TEST_RAM EQU 03H
ORG 0000H
LJMP INITIAL
ORG 0050H
INITIAL:
MOV R0, #253
MOV R1, #3H
TEST_ALL_RAM:
MOV R2, #0FFH
TEST_ONE_RAM:
MOV A,
R2
MOV @R1, A
CLR A
MOV A,
@R1
CJNE A,
2H, ERROR_DISPLAY
DJNZ R2, TEST_ONE_RAM
INC R1
DJNZ R0, TEST_ALL_RAM
OK_DISPLAY:
MOV P1, #11111110B
Wait1:
SJMP Wait1
ERROR_DISPLAY:
MOV A,
R1
MOV P1, A
Wait2:
SJMP Wait2
END
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 110
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 B:
串行外 接口(SPI)及 程序
STC12C5410AD系列 片机 提供另一种高速串行通信接口— — SPI 接口。SPI是一种全双工、高速、同
步的通信 ,有两种操作模式:主模式和从模式。在主模式中支持高达3Mbit/s 的速率(工作 率
12MHz ,如果CPU主 采用20MHz到36MHz, 可更高,从模式 速度无法太快,Fosc/8以内 好),
具有 完成 志和写冲突 志保 。
STC12C5410AD系列 1T 8051 片机SPI功能模 特殊功能寄存器 SPI Management SFRs
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset value
SPCTL
SPSTAT
SPDAT
85h SPI Control Register SSIG
84h SPI Status Register SPIF
86h SPI Data Register
SPEN
WCOL
DORD MSTR CPOL CPHA SPR1 SPR0 0000,0000
-
-
-
-
-
-
00xx,xxxx
0000,0000
S
M
MISO
P1.6
CPU
M
S
8位移位寄存器
数据 冲区
MOSI
P1.5
管脚
控制
分 器
4, 16, 64, 128
SPICLK
P1.7
clock
SPI
(主机)
S
M
SS
P1.4
MSTR
SPEN
SPI 控制
SPI 控制寄存器
SPI 状 寄存器
SPI
中断 求
内部
数据
SPI 方框
SPI 接口有4个管脚:SPICLK/P1.7, MOSI/P1.5, MISO/P1.6 和SS/P1.4。
● SPICLK, MOSI 和MISO 通常和两个或更多SPI 器件 接在一起。数据通 MOSI由主机 送到从机,通
MISO
由从机 送到主机。SPICLK 信号在主模式
SPEN
(SPCTL.6)=0(复位 ), 些管脚都可作 I/O 口使用。
● /SS 从机 管脚。在典型的配置中,SPI主机使用I/O 口
SPI 从器件通 其/SS脚确定是否被
出,在从模式
入。如果SPI 系 被禁止,即
一个SPI器件作 当前的从机。
出(通 P1M0.4 和P1M1.4)
。如果 足下面的条件之一,/SS就被忽略:
-如果SPI系 被禁止,即SPEN(SPCTL.6)=0(复位 )
-如果SPI配置 主机,即MSTR(SPCTL.4)=1,并且P1.4 配置
-如果/SS脚被忽略,即SSIG(SPCTL.7)位=1, 脚配置用于I/O口功能。
注:即使SPI被配置 主机(MSTR=1), 它仍然可以通 拉低/SS 脚配置 从机(如果P1.4 配置
入且SSIG=0)。 要使能 特性, 当置位SPIF(SPSTAT.7)。
典型 接如SPI 1~3所示。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 111
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
SPI 控制寄存器的位分配(SPCTL- 地址:85h)
位
7
S S I G
0
6
S P E N
0
5
D O R D
0
4
M S T R
0
3
C P O L
0
2
C P H A
1
1
S P R 1
0
0
S P R 0
0
符 号
复 位
SPI 控制寄存器的位描述(SPCTL – 地址:85h)
位
0
符号
SPR0
描 述
SPR0/SPR1是SPI
SPR1, SPR0:
速率
控制位。
0
0
1
1
0-CPU_CLK/4
1-CPU_CLK/16
0-CPU_CLK/64
1-CPU_CLK/128
1
SPR1
SPI
相位
( SPI 4~ 7):
,并在后
0:数据在/SS 低(SSIG=00) 被
沿被改 ,并在前 沿被采 。
(注:SSIG=1 的操作未定 )
1:数据在SPICLK 的前
沿
沿采 。
,在SPICLK 的后
2
3
CPHA
CPOL
SPI 极性( SPI 4~ 7):
1:SPICLK 空
0:SPICLK 空
高 平。SPICLK 的前
低 平。SPICLK 的前
沿 下降沿而后沿 上升沿。
沿 上升沿而后沿 下降沿。
4
5
MSTR
DORD
主/从模式
( SPI 主从
表)。
SPI 数据 序:
1:数据字的LSB(最低位) 最先 送;0:数据字的MSB(最高位) 最先 送。
SPI 使能。
1:SPI 使能。
0:SPI 被禁止,所有SPI 管脚都作 I/O 口使用。
3
7
SPEN
SSIG
/SS 忽略。
1:MSTR(位4)确定器件 主机 是从机。
0:/SS 脚用于确定器件 主机 是从机。/SS 脚可作 I/O 口使用( SPI 主
从
表)。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 112
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
SPI 状 寄存器的位分配(SPSTAT – 地址:84h)
位
7
6
5
-
X
4
-
X
3
-
X
2
-
X
1
-
X
0
-
X
符号
复位
SPIF WCOL
0
0
SPI 状 寄存器的位描述(SPSTAT – 地址:84h)
位
符号
符号
SPI
和EA都置位
完成 志。当一次串行
完成 ,SPIF置位,并当ESPI
生中断。当SPI 于主模式且SSIG=0 ,如果/SS
7
SPIF
入
件向其写入“1”清零。
并被
低 平,SPIF也将置位。SPIF 志通
SPI写冲突 志。在数据
操作,WCOL将置位。WCOL 志通
的 程中如果 SPI数据寄存器SPDAT 行写
件向其写入“1”清零。
6
WCOL
-
5 - 0
保留
SPI 数据寄存器的位分配(SPDAT – 地址:86h)
位
7
MSB
0
6
5
4
3
0
2
0
1
0
0
LSB
0
符 号
复 位
0
0
0
SPDAT.7 - SPDAT.0:
的数据位Bit7~Bit0
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 113
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
主机
Fax: 0755-82944243
从机
MISO
MISO
8位移位寄存器
8位移位寄存器
MOSI
MOSI
SPICLK
SPICLK
SPI
生器
Port
/SS
SPI 1 SPI
主机- 从机 配置
在上 SPI 1中,从机的SSIG(SPCTL.7) 0,/SS 用于
(包括P1.4/SS)来 /SS脚。
从机。SPI 主机可使用任何端口
从机
主机
MISO
MISO
8位移位寄存器
8位移位寄存器
MOSI
MOSI
SPICLK
SPICLK
SPI
生器
SPI
生器
/SS
/SS
SPI
上 SPI 2 所示 两个器件互 主从的情况。当没有 生SPI操作 ,两个器件都可配置 主机
(MSTR=1), 将SSIG清零并将P1.4(/SS)配置 准双向模式。当其中一个器件启 ,它可将P1.4
配置 出并 低 平, 就 制另一个器件 从机。
主机
2 SPI 双器件配置(可器件可互 主从)
从机
MISO
MISO
8位移位寄存器
8位移位寄存器
MOSI
MOSI
SPICLK
/SS
SPICLK
SPI
生器
Port
8位移位寄存器
Port
/SS
SPI 3 SPI 主机-多从机 配置
在上 SPI 3中,从机的SSIG(SPCTL.7) 0,从机通 的/SS 信号被 中。SPI主机可
使用任何端口(包括P1.4/SS)来 /SS 脚。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 114
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
SPI 行配置
Fax: 0755-82944243
下表 所示 主/从模式的配置以及模式的使用和
SPI 主从模式
方向。
/SS 脚
P1.4
主或从
模式
MISO
P1.6
MOSI
P1.5
SPICLK
SPEN SSIG
MSTR
注
P1.7
P1.7
入
SPI 禁止。P1.4/P1.5/P1.6/P1.7作 普通I/O口
使用
0
1
1
X
0
0
P1.4
X
0
0
SPI 功能禁止 P1.6
P1.5
入
0
1
从机模式
出
作 从机
从机模式
未被 中
高阻
入
入
未被 中。MISO 高阻状 ,以避免
冲突
P1.4/ SS 配置
果 /SS 被
入或准双向口。SSIG 0。如
低 平, 被
作 从机。
低 平
1
1
0
0
0
1
1— >0
从机模式
主(空 )
出
入
入
入
当SS
低 平 ,MSTR将清零。
注:当/SS 于 入模式 ,如被
且SSIG=0
当主机空
,MSTR 位自 清零。
MOSI 和SPICLK 高阻 以避免
冲突。用 必 将SPICLK 上拉或下拉(根
据CPOL-SPCTL.3 的取 )以避免SPICLK出
状 。
高阻
高阻
浮
1
主(激活)
出
入
出
出
入
出
作 主机激活 ,MOSI 和SPICLK 推挽 出
1
1
1
1
P1.4
P1.4
0
1
从
主
出
入
作 从机 的 外注意事
当CPHA=0 ,SSIG必
0,/SS脚必 取反并且在每个
的串行字 之 重新 置 高
平。如果SPDAT 寄存器在/SS 有效(低 平)
CPHA=0且SSIG=0 的操作未定 。
行写操作,那么将 致一个写冲突
。
当CPHA =1 ,SSIG 可以置位。如果SSIG =0,/SS 脚可在
之 保持低有效(即一直
固定 低 平)。 种方式有 适用于具有 固定主机和 从机
MISO数据 的系 。
作 主机 的 外注意事
在SPI 中,
是由主机启 的。如果SPI 使能(SPEN=1)并
作 主机,主机 SPI 数
据寄存器的写操作将启 SPI
后,数据将出 在MOSI脚。
需要注意的是,主机可以通 将
生器和数据的
。在数据写入SPDAT之后的半个到一个SPI位
器件的/SS脚
低 平
与之通信。写入主机SPDAT 寄
存器的数据从MOSI脚移出 送到从机的MOSI脚。同 从机SPDAT寄存器的数据从MISO脚移出 送到主
机的MISO脚。
完一个字 后,SPI
生器停止,
完成 志(SPIF)置位并 生一个中断(如果
SPI中断使能)。 主机和从机CPU的两个移位寄存器可以看作是一个16 循 移位寄存器。当数据从主机
移位 送到从机的同 ,数据也以相反的方向移入。 意味着在一个移位周期中,主机和从机的数据相
互交 。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 115
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
入或准双向模式。
通 /SS 改 模式
如果SPEN=1, SSIG=0 且MSTR=1,SPI使能 主机模式。/SS脚可配置
种情况下,另外一个主机可将 脚
了避免争 ,SPI系
1)MSTR 清零并且CPU 成从机。
MISO 出模式。
2)SPSTAT 的SPIF 志位置位。如果SPI 中断已被使能,
件必 一直 MSTR位 行 ,如果 位被一个从机
就必 重新置位MSTR,否 就 入从机模式。
低 平,从而将 器件
行以下 作:
SPI就 成从机。MOSI和SPICLK 制
SPI 从机并向其 送数据。
入模式,而
生SPI 中断。
用
所清零而用 想
将SPI作 主
机,
写冲突
SPI 在 送
写入移位寄存器。当 送 程中 数据寄存器 行写操作 ,WCOL位(SPSTAT.6)将置位以指示数据冲
冲,在接收
双 冲。
在前一次 送尚未完成之前,不能将新的数据
突。在 种情况下,当前 送的数据
当 主机或从机 行写冲突
送,而新写入的数据将 失。
,主机 生写冲突的情况是很罕 的,因 主机 有数据
的
完全控制 。但从机有可能 生写冲突,因 当主机启
,从机无法 行控制。
将 放移位寄存器以 行下一个数
接收数据 ,接收到的数据 送到一个并行 数据 冲区,
据的接收。但必 在下个字符完全移入之前从数据寄存器中 出接收到的数据,否 ,前一个接收数据
将 失。
WCOL 可通
件向其写入“1”清零。
数据模式
相位位(CPHA)允 用
置采 和改 数据的
沿。
极性位CPOL允 用
置
极
性。 SPI 4~ 7 所示
周期
相位位CPHA 的不同 定。
1
2
3
4
5
6
7
8
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MOSI( 入)
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
(1)
MISO( 出)
SS(如果SSIG位=0)
(1)
未定
SPI
4 SPI 从机
格式(CPHA=0)
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 116
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
8
周期
1
2
3
4
5
6
7
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MOSI( 入)
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
MISO( 出)
(1)
SS(如果SSIG位=0)
(1)
未定
SPI
5 SPI 从机
格式(CPHA=1)
周期
1
2
3
4
5
6
7
8
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
MOSI( 出)
MISO( 入)
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
SS(如果SSIG位=0)
SPI
6 SPI 主机
格式(CPHA=0)
1
2
3
4
5
6
7
8
周期
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
MOSI( 出)
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
MISO( 入)
SS(如果SSIG位=0)
SPI
7 SPI 主机
格式(CPHA=1)
SPI
分 器
分 器
SPI
是通 SPCTL寄存器中的SPR1-SPR0 位
的
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 117
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
SPI 功能示例程序(适用于 主 从系 )
;/* --- STC International Limited ---------------------- */
;/* --- 宏晶科技
姚永平
2006/1/6
V1.0 ---------- */
;/* --- one_master_one_slave --------------------------- */
;/* --- STC12C5412AD, STC12C5410AD, STC12C5408AD ------- */
;/* --- STC12C5406AD, STC12C5404AD, STC12C5402AD ------- */
;/* --- STC12C5052AD, STC12C4052AD, STC12C3052AD ------- */
;/* --- STC12C2052AD, STC12C1052AD, STC12C0552AD ------- */
;/* --- Mobile: 13922805190 ---------------------------- */
;/* --- Fax: 0755-82944243 ----------------------------- */
;/* --- Tel: 0755-82948409 ----------------------------- */
;/* --- Web: www.mcu-memory.com ------------------------ */
;------------------------------------------------------------------------------
;1. 本示例程序演示 STC12C2052AD 和 STC12C5410AD 系列 MCU 的 SPI 功能, 适用于
;
主 从系
;------------------------------------------------------------------------------
;2. 硬件 接:三
;
接
;
;
;
;
;
;
;
;
;
;
;
;
主 片机
I/O 口
I/O 口
从 片机
+--------------+ MISO
SPI |<<---------------------------- -|
|8 位移位寄存器 |
<-- 位流方向
MISO +--------------+
|
SPI
|
|8位移位寄存器 |
|
|-----------------------------> >|
|
+-------+------+ MOSI
|
位流方向 -->
MOSI +-------^------+
|
|
SCLK
SCLK
|
+--------------------->>-----------------------+
除此之外,主 片机的 RS-232 串行口通 RS-232
器与 PC 机的 RS-232
;串行口相 接。
;
;3. SPI 通
程:
;
主 片机与从 片机的 SPI 8位移位寄存器 接成一个循 的 16 位移位寄存器。
;当主 片机程序向 SPDAT 写入一个字
,立即启 一个
的 8 位移位通
程:
;主 片机的 SCLK 脚向从 片机的 SCLK 脚 出一串脉冲,在 串脉冲的
下, 主
; 片机 SPI 8 位移位寄存器中的数据移到了从 片机的 SPI 8 位移位寄存器中; 与此
;同 ,从 片机 SPI 8 位移位寄存器中的数据移到了主 片机的 SPI 8 位移位寄存器
;中。利用
;中的数据。
;
的数据交 机制,主 片机既可向从 片机 送数据,又可 从 片机
;4. 使用方法
; a) 修改程序,使 MASTER EQU 1 的那行有效。
; b) 修改程序,使 MASTER EQU 0 的那行有效。
后的程序代 下 到主 片机中。
后的程序代 下 到从 片机中。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 118
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
; c)
主、从 片机上 。
助手(STC 的 ISP 下 程序 STC-ISP.exe 3.2 以上版本提供了 功能)
向主 片机 送一串数据。
; d) 用串口
;
;
;
;
;
;
主 片机的 RS-232 串口每收到一个字 就立刻将收到的字 通 SPI 口
送到从 片机中,与此同 主 片机会收到从 片机 回的一个字 ( 3. SPI
程),主 片机又立刻把 个字 通 RS-232 口 送到 PC 机。
通
从 片机的 SPI 口收到的数据后,把收到的数据放到自己的 SPDAT 寄存器
中,当下一次主 片机 送一个字
把数据 回到主 片机。
; e) 在串口
;
助手接收区 察接收的数据。
;5. 怎 用巡 方式接收 SPI数据
;
;
本示例 中断方式接收 SPI 口数据,若想用巡 方式接收 SPI 数据可以用以下
几行指令
:
; Wait_SPI_Receive_Byte:
;
MOV A, SPSTAT
ANL A, #80H
; 判收到从 SPI 回的数据否
;
;
JZ Wait_SPI_Receive_Byte
MOV A, SPDAT
...
;SPI 未收到数据,
等待
;
;SPI 已收到数据, 将收到的数据送累加器 A
;
;
;6.
;
条件: MCU 晶振 率 Fosc = 18.432MHz, PC 机 RS232 串口波特率等于 57600
果: SPI 口 数据无 。
;
由于本程序的 RS232 接收,SPI 端口的接收都没有使用接收 冲区,所以 RS232
串口波特率不要高于 57600,若使用接收 冲区,波特率可以到 115200 以上。
;
;------------------------------------------------------------------------------
;定 常量
;-----------------
;定 功能常量,以下两行注 其中一行,取消另一行注 使之有效
;MASTER EQU 1
;
后的程序代 下 到主 片机中
后的程序代 下 到从 片机中
MASTER EQU 0
;
;-----------------
;定 波特率自 重装数常量
;以下波特率是 PCON.7 = 0
的数 , 若使 PCON.7 = 1 可将波特率加倍
;RELOAD_8BIT_DATA EQU 0FFH ;Fosc=22.1184MHz, Baud = 57600
;RELOAD_8BIT_DATA EQU 0FBH ;Fosc=18.432MHz, Baud=9600, 1T 运行 Baud=115200
RELOAD_8BIT_DATA EQU 0F6H ;Fosc=18.432MHz, Baud=4800, 1T 运行 Baud=57600
;RELOAD_8BIT_DATA EQU 0FFH ;Fosc=11.059MHz, Baud = 28800 、
;------------------------------------------------------------------------------
;定 特殊功能寄存器
AUXR
EQU 8EH
;AUXR 特殊功能寄存器的 bit3 是 SPI 中断允 控制位 ESPI
;IE 特殊功能寄存器的 bit5 是ADC和SPI两个中断共享的 中断允 控制位 EADC_SPI
;要 生 SPI 中断, 需要 ESPI/EADC_SPI/EA 都 1
;------------------------------------------------------------------------------
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 119
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;定 SPI 特殊功能寄存器,
SPCTL EQU 85H
明 本程序的后部或 STC 12C5410AD 中文指南
SPSTAT EQU 84H
SPDAT EQU 86H
EADC_SPI EQU IE.5
;------------------------------------------------------------------------------
;定 SPI 脚
SCLK
MISO
MOSI
SS
EQU P1.7
EQU P1.6
EQU P1.5
EQU P1.4
;------------------------------------------------------------------------------
;定 片机管脚
LED_MCU_START
;------------------------------------------------------------------------------
EQU P3.4
;定
量
Flags
EQU 20H
SPI_Receive EQU Flags.0
SPI_buffer EQU 30H
;SPI 端口收到数据 志位
量用于保存 SPI 端口收到的数据
;
;------------------------------------------------------------------------------
ORG 0000H
LJMP MAIN
;------------------------------------------------------------------------------
ORG 002BH
;ADC_SPI 中断服 程序入口
LJMP ADC_SPI_Interrupt_Routine
;------------------------------------------------------------------------------
ORG 0080H
MAIN:
CLR LED_MCU_START
MOV SP, #7FH
; 点亮 MCU 开始工作指示灯
; 系 初始化
ACALL Init_System
if MASTER
Check_RS232:
JNB RI, Master_Check_SPI ; 判 RS-232 串口中收到数据否
;主 片机 RS-232 串口已收到新的数据
ACALL Get_Byte_From_RS232 ; 主 片机将RS-232串口中收到的数据送到累加器 A
ACALL SPI_Send_Byte
SJMP Check_RS232
; 主 片机将累加器 A 中的数据 送到从机 SPI
Master_Check_SPI:
JNB SPI_Receive, Check_RS232 ; 判收到从 SPI 回的数据否
;主 片机 SPI 端口已收到新的数据
MOV A, SPI_buffer
CLR SPI_Receive
ACALL RS232_Send_Byte
SJMP Check_RS232
; 将 "从 SPI 回的数据"送到累加器 A
; 清0 主 片机 SPI 端口收到数据 志位
; 将累加器 A 中的数据 送到 PC 机
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 120
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
else
Slave_Check_SPI:
JNB SPI_Receive, Slave_Check_SPI ; 判收到主 SPI 回的数据否
;从 片机 SPI 端口已收到新的数据
MOV A, SPI_buffer
CLR SPI_Receive
MOV SPDAT, A
; 取 "主 片机 SPI 端口 的数据"
; 清0 从 片机 SPI 端口收到数据 志位
; 将收到数据送 SPDAT, 准 下一次通
回
SJMP Slave_Check_SPI
endif
;------------------------------------------------------------------------------
ADC_SPI_Interrupt_Routine:
;SPI 中断服 程序
;ADC_SPI 中断服 程序
MOV SPSTAT, #11000000B
;0C0H, 清0 志位 SPIF 和 WCOL
;特 注意:是向 志位 SPIF/WCOL 写1,将 SPIF/WCOL 清成0
;特 注意:不是向 志位 SPIF/WCOL 写0,将 SPIF/WCOL 清成0
; 保存收到的数据
MOV A, SPDAT
MOV SPI_buffer, A
SETB SPI_Receive
RETI
; 立 SPI 端口收到数据 志
;------------------------------------------------------------------------------
Init_System:
ACALL Initial_UART
ACALL Initial_SPI
MOV Flags, #0
SETB EA
; 初始化串口
; 初始化 SPI
; 清 志字
; 开 中断
RET
;------------------------------------------------------------------------------
Initial_UART:
; 初始化串口
; SCON Bit: 7
6
5
4
3
2
1
0
;
SM0/FE SM1 SM2 REN TB8 RB8
TI RI
MOV SCON, #50H
;0101,0000 8 位可 波特率, 无奇偶校
MOV TMOD, #21H
;T1
自 重装模式
MOV TH1, #RELOAD_8BIT_DATA
MOV TL1, #RELOAD_8BIT_DATA
;
MOV PCON, #80H
; 取消本行指令注 ,波特率加倍。
;使以下两行有效,波特率快12倍,即波特率 = 4800*12=57600
MOV A, #01000000B
ORL AUXR, A
;T1 以 1T 的速度 数,是普通8051的12倍
SETB TR1
RET
; 启 定 器1 开始 数
;------------------------------------------------------------------------------
Initial_SPI:
; 初始化 SPI
;SPI 控制寄存器
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 121
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;
7
6
5
4
3
2
1
0
;SPCTL SSIG SPEN DORD MSTR CPOL CPHA SPR1 SPR0
if MASTER
MOV SPCTL,#11111100B
;SSIG=1: 忽略SS脚
;0FCH, 忽略 SS 脚,
主机
;SPEN=1 :允 SPI 工作
;DORD=1 :先 低位 LSB
;MSTR=1 :
主机
;CPOL=1 :SPI 空
SPICLK = 1 ,前跳 沿是下降沿,后跳 沿是上升沿。
;CPHA=1 :数据由 SPICLK 前跳 沿
;SPR1 ,SPR0 = 00:主模式 SPI
到 SPI 口 ,SPI 模 在后跳 沿采 数据。
fosc/4
源
else
MOV SPCTL,#11101100B
;SSIG=1: 忽略SS脚
;0ECH, 忽略 SS 脚,
从机
;SPEN=1 :允 SPI 工作
;DORD=1 :先 低位 LSB
;MSTR=0 :
从机
;CPOL=1 :SPI 空
SPICLK = 1 ,前跳 沿是下降沿,后跳 沿是上升沿。
;CPHA=1 :数据由 SPICLK 前跳 沿
;SPR1 ,SPR0 = 00:主模式 SPI
到 SPI 口 ,SPI 模 在后跳 沿采 数据。
fosc/4
源
endif
MOV SPSTAT,#11000000B
; 清0 志位 SPIF(SPSTAT.7), WCOL(SPSTAT.6)
;向 两个 志位写"1" 会将它 清0
MOV A, #00001000B
ORL AUXR, A
SETB EADC_SPI
RET
; 令ESPI(AUXR.3)=1,允 SPIF(SPSTAT.7) 生中断
; 开 ADC 中断和 SPI 中断共享的 中断控制位
;------------------------------------------------------------------------------
RS232_Send_Byte:
CLR TI
;RS232 串口 送一个字
; 清零串口 送中断 志
MOV SBUF, A
RS232_Send_Wait:
JNB TI, RS232_Send_Wait
CLR TI
; 等待 送完 , 未 送完 跳回本行
; 清零串口 送中断 志
RET
;------------------------------------------------------------------------------
;此段程序只有主 MCU 用
SPI_Send_Byte:
CLR EADC_SPI
;SPI
; 关 ADC 中断和 SPI 中断共享的 中断控制位
;SPI 送数据
送一个字
MOV SPDAT, A
SPI_Send_Byte_Wait:
MOV A, SPSTAT
ANL A, #80H
; 等待 SPIF=1 即等待 SPI 送完
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 122
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
JZ
SPI_Send_Byte_Wait
SETB EADC_SPI
RET
; 开 ADC 中断和 SPI 中断共享的 中断控制位
;------------------------------------------------------------------------------
Get_Byte_From_RS232:
MOV A, SBUF
CLR RI
; 取 RS-232 串口中收到的数据送累加器 A
RET
;------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------
;更
;
的 料可以参 STC12C5410AD.pdf (中文使用 明)。
;SPI 控制寄存器
;
7
6
5
4
3
2
1
0
;SPCTL SSIG SPEN DORD MSTR CPOL CPHA SPR1 SPR0
;
;SSIG: 忽略SS脚, 如果 SSIG=1, 由 MSTR 位决定 SPI 主模式或从模式,
;
如果 SSIG=0, 由 SS 脚决定 SPI 主模式或从模式。
;SPEN:SPI使能位。如果 SPEN=0,SPI功能被禁止,SPI 脚用作普通IO口
;DORD:SPI 数据 序。
1:先 低位 LSB
0:先 高位 MSB
;
;
;MSTR:SPI 主/从模式
;CPOL:SPI 信号极性
1:SPI 空
0:SPI 空
信号相位
1:数据由 SPICLK 前跳 沿
0:当 SS 脚 低(SSIG=0) 数据被
位
位
;
;
SPICLK = 1,前跳 沿是下降沿,后跳 沿是上升沿。
SPICLK = 0,前跳 沿是上升沿,后跳 沿是下降沿。
;CPHA:SPI
位
;
;
;
;
到 SPI 口 ,SPI 模 在后跳 沿采 数据。
到口 ,并且在 SPICLK 后跳 沿数据
被改 (被
到口 ),在 SPICLK 前跳 沿数据被采 。注意:SSIG = 1
操作未定 。
;SPR1-SPR0:主模式 SPI
源
;
;
;
;
;
;
00:fosc/4
01:fosc/16
10:fosc/64
11:fosc/128
当 CPHA=0,SSIG 必 等于零并且在
SS 脚也必 一直保持 低。当 SS 有效
,WCOL 志被置 1。
;(=0) 向 SPDATA 寄存器写数据就会 生写冲突
;
当 CPHA=1,SSIG 可以等于 0 或 1。如果 SSIG=0,SS 脚在
的
0(可以
;一直保持 0)。当系 中只有一个主和一个从 SPI
;--------------------
, 是首 配置。
;SPI 状 寄存器
;
7
6
5
-
4
-
3
-
2
1
0
;SPSTAT SPIF WCOL
-
-
-
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 123
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;SPIF:SPI
束 志。当一次
ESPI(AUXR.3)=1 ,EADC_SPI(IE.5)=1,EA(IE.7)=1, 就引起中断。如果原来 SPI
由 SS 脚确定 是主模式(SSIG=0,SS=1),当 SS 成 0 ,SPIF 也会被置 1,
表示"模式改 "。向 SPIF 位写 1 将 志清 0。
束 , SPIF 被置 1,如果 SPI 中断被打开:
;
;
;
;WCOL:SPI 写冲突 志。当一个数据 在
就会被被置 1。向 WCOL 位写 1 将
,又向数据寄存器 SPDAT 写入数据,WCOL
志清 0。
;
;--------------------
;SPI 主/从模式
;
;SPEN SSIG SS MATR
模式 MISO MOSI SPICLK
注
; 0 X X X
; 1 0 0 0
; 1 0 1 0
; 1 0 0 1->0
; 1 0 1 1
; 1 1 X 0
; 1 1 X 1
禁止SPI
入
出
入
出
入
出
入
入
入
入
入
出
入
出
入
入
禁止 SPI 功能
从
未 从
从
被
从
入
从,但没有被 中
入
出
入
出
由主
从
主
从
从
主
主
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 124
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
SPI 功能示例程序(适用于 主多从系 )
;/* --- STC International Limited ---------------- */
;/* --- 宏晶科技
姚永平
2006/1/6
V1.0 ---- */
;/* --- one_master_more_slave --------------------- */
;/* --- STC12C5412AD, STC12C5410AD, STC12C5408AD ------- */
;/* --- STC12C5406AD, STC12C5404AD, STC12C5402AD ------- */
;/* --- STC12C5052AD, STC12C4052AD, STC12C3052AD ------- */
;/* --- STC12C2052AD, STC12C1052AD, STC12C0552AD ------- */
;/* --- Mobile: 13922805190 ---------------------- */
;/* --- Fax: 0755-82944243 ----------------------- */
;/* --- Tel: 0755-82948409 ----------------------- */
;/* --- Web: www.mcu-memory.com ------------------ */
;------------------------------------------------------------------------------
;1. 本示例程序演示 STC12C2052AD 和 STC12C5410AD 系列 MCU 的 SPI 功能, 适用于
;
主多从系
;------------------------------------------------------------------------------
;2. 硬件 接:
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
主 片机
从 片机 #1
+--------------+
<-- 位流方向
+--------------+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MISO |<<-------------------*---------| MISO
位流方向 -->
MOSI |-----------------*---|------->>| MOSI
| |
SCLK |-------------*---|---|------->>| SCLK
| | | | __
P1.2 |-------------|---|---|------->>| SS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | |
| | |
| | |
| | |
| | |
|
+--------------+
从 片机 #2
+--------------+
| | <<--------| MISO
| |
| +----------->>| MOSI
|
|
|
|
|
|
|
|
|
|
|
+--------------->>| SCLK
| __
P1.3 |----------------------------->>| SS
|
|
+--------------+
+--------------+
除此之外,主 片机的 RS-232 串行口通 RS-232
器与 PC 机的 RS-232
;串行口相 接。
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 125
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
;
Fax: 0755-82944243
;3. SPI 通
主 片机与从 片机的 SPI 8 位移位寄存器 接成一个循 的 16 位移位寄存器。
;当主 片机程序向 SPDAT 写入一个字 ,立即启 一个 的 8 位移位通 程:
;主 片机的 SCLK 脚向从 片机的 SCLK 脚 出一串脉冲,在 串脉冲的 下, 主
程:
;
; 片机 SPI 8 位移位寄存器中的数据移到了从 片机的 SPI 8 位移位寄存器中; 与此
;同 ,从 片机 SPI 8 位移位寄存器中的数据移到了主 片机的 SPI 8 位移位寄存器
;中。利用
; 中的数据。
;
的数据交 机制,主 片机既可向从 片机 送数据,又可 从 片机
;4. 使用方法
; a) 修改程序,使 MASTER_SLAVE EQU 0 的那行有效。
主 片机中。
; b) 修改程序,使 MASTER_SLAVE EQU 1 的那行有效。
从 片机 #1 中。
; c) 修改程序,使 MASTER_SLAVE EQU 2 的那行有效。
后的程序代 下 到
后的程序代 下 到
后的程序代 下 到
;
;
;
从 片机 #2 中。
主、从 片机上 。
; d)
; e) 主 片机用 Slave1_SS 和 Slave2_SS 口
当前 中的从 片机, 每一 刻
;
;
;
;
;
;
;
;
只有一个从 片机被 中。当 Slave1_SS 的 LED 灯亮 ,从 片机 #1 被 中;
当 Slave2_SS 的 LED 灯亮 ,从 片机 #2 被 中。
用串口
助手(STC 的 ISP 下 程序 STC-ISP.exe 3.2 以上版本提供了
功能)向主 片机 送一串数据。主 片机每收到一个字 就立刻将收到的字
通 SPI 口 送到当前 中的从 片机中。从 片机 #1 将 SPI 口收到的数据
再放到自己的 SPDAT 寄存器中,当下一次主 片机 送一个字
主 片机; 从 片机 #2 将 SPI 口收到的数据加 1 以后再放到自己的 SPDAT
寄存器中,当下一次主 片机 送一个字 把数据 回到主 片机。
把数据 回到
; f) 在串口
;
助手接收区 察接收的数据。
;5. 用巡 方式接收 SPI 数据
;
;
本示例 中断方式接收 SPI 口数据,若想用巡 方式接收 SPI 数据可以用以下
几行指令
:
; Wait_SPI_Receive_Byte:
;
MOV A, SPSTAT
; 判收到从 SPI 回的数据?
;
ANL A, #80H
;
JZ Wait_SPI_Receive_Byte
;SPI 未收到数据,
;SPI 已收到数据
等待
;
...
...
;
;
;6.
;
条件: MCU 晶振 率 Fosc = 18.432MHz, PC 机 RS232 串口波特率等于 57600
果: SPI 口 数据无 。
;------------------------------------------------------------------------------
;定 常量
;-----------------
;定 功能常量,以下 3 行注 其中 2 行,使一行有效
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 126
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
MASTER_SLAVE EQU 0
;MASTER_SLAVE EQU 1
;MASTER_SLAVE EQU 2
;-----------------
;
后的程序代 下 到主 片机中
;
;
后的程序代 下 到从 片机 #1 中
后的程序代 下 到从 片机 #2 中
;定 波特率自 重装数常量
;以下波特率是 PCON.7 = 0
的数 , 若使 PCON.7 = 1 可将波特率加倍
;RELOAD_8BIT_DATA EQU 0FFH ;Fosc=22.1184MHz, Baud = 57600
;RELOAD_8BIT_DATA EQU 0FBH ;Fosc=18.432MHz, Baud=9600, 1T 运行 Baud=115200
RELOAD_8BIT_DATA EQU 0F6H ;Fosc=18.432MHz, Baud=4800, 1T 运行 Baud=57600
;RELOAD_8BIT_DATA EQU 0FFH ;Fosc=11.059MHz, Baud = 28800 、
;------------------------------------------------------------------------------
;定 特殊功能寄存器
AUXR
EQU 8EH
;AUXR 特殊功能寄存器的 bit3 是 SPI 中断允 控制位 ESPI
;IE 特殊功能寄存器的 bit5 是ADC和SPI两个中断共享的 中断允 控制位 EADC_SPI
;要 生 SPI 中断, 需要 ESPI/EADC_SPI/EA 都 1
;------------------------------------------------------------------------------
;定 SPI 特殊功能寄存器,
明 本程序的后部
SPCTL
SPSTAT
SPDAT
EQU 85H
EQU 84H
EQU 86H
EADC_SPI
EQU IE.5
;------------------------------------------------------------------------------
;定 SPI 脚
SCLK
MISO
MOSI
SS
EQU P1.7
EQU P1.6
EQU P1.5
EQU P1.4
Slave1_SS
Slave2_SS
EQU P1.2
EQU P1.3
;------------------------------------------------------------------------------
;定 片机管脚
LED_MCU_START EQU P3.4
;------------------------------------------------------------------------------
;定
量
Flags
EQU 20H
SPI_Receive
EQU Flags.0
;SPI 端口收到数据 志位
T0_10mS_count EQU 30H
SPI_buffer EQU 31H
;
;
量用于保存 10 毫秒 数(T0 中断次数)
量用于保存 SPI 端口收到的数据
;------------------------------------------------------------------------------
ORG 0000H
AJMP MAIN
;------------------------------------------------------------------------------
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 127
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
ORG 000BH
; 定 器0 中断服 程序入口
AJMP timer0_Routine
;------------------------------------------------------------------------------
ORG 002BH
;ADC_SPI 中断服 程序入口
AJMP ADC_SPI_Interrupt_Routine
;------------------------------------------------------------------------------
ORG 0080H
MAIN:
CLR LED_MCU_START
MOV SP, #7FH
; 点亮 MCU 开始工作指示灯
; 系 初始化
ACALL Initial_System
if MASTER_SLAVE == 0
CLR Slave1_SS
;
从 片机 #1 当前的从 片机
Check_RS232:
JNB RI, Master_Check_SPI ; 判 RS-232 串口中收到数据否
;主 片机 RS-232 串口已收到新的数据
ACALL Get_Byte_From_RS232 ; 主 片机将RS-232串口中收到的数据送到累加器 A
;
;
ACALL RS232_Send_Byte
SJMP Check_RS232
;
用, 将累加器 A 中的数据 送到 PC 机
用
;
ACALL SPI_Send_Byte
SJMP Check_RS232
; 主 片机将累加器 A 中的数据 送到从机 SPI
Master_Check_SPI:
JNB SPI_Receive, Check_RS232 ; 判收到从 SPI 回的数据否
;主 片机 SPI 端口已收到新的数据
MOV A, SPI_buffer
CLR SPI_Receive
ACALL RS232_Send_Byte
SJMP Check_RS232
; 将 "从 SPI 回的数据"送到累加器 A
; 清0 主 片机 SPI 端口收到数据 志位
; 将累加器 A 中的数据 送到 PC 机
else
Slave_Check_SPI:
JNB SPI_Receive, Slave_Check_SPI ; 判收到主 SPI 回的数据否
;从 片机 SPI 端口已收到新的数据
MOV A, SPI_buffer
CLR SPI_Receive
if MASTER_SLAVE == 2
ADD A, #1
; 取 "主 片机 SPI 端口 的数据"
; 清0 从 片机 SPI 端口收到数据 志位
; 如果是从 片机 #2,就把收到的数据加1
; 将收到数据送 SPDAT, 准 下一次通
endif
MOV SPDAT, A
回
SJMP Slave_Check_SPI
endif
;------------------------------------------------------------------------------
if MASTER_SLAVE == 0
timer0_Routine:
PUSH PSW
PUSH ACC
; 保存断点
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 128
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
MOV TH0, #0C4H
; 重装数 = 65536-15360 = 50176 = C400H
; 晶振 率=18.432MHz , 每 10mS 中断 1 次
;10 毫秒 数(T0 中断次数) + 1
INC T0_10mS_count
MOV A, #0C7H
;0C8H = 199,
是否中断了 200 次(2秒)
CLR C
SUBB A, T0_10mS_count
JNC timer0_Exit
CPL Slave1_SS
; 改 当前
的从 片机
CPL Slave2_SS
MOV T0_10mS_count, #0
; 清0 10 毫秒 数(T0 中断次数)
timer0_Exit:
POP ACC
POP PSW
RETI
; 恢复断点
else
timer0_Routine:
RETI
; 本程序中从 片机不需要使用定 器0
endif
;------------------------------------------------------------------------------
ADC_SPI_Interrupt_Routine:
;SPI 中断服 程序
;ADC_SPI 中断服 程序
MOV SPSTAT, #11000000B
;0C0H, 清0 志位 SPIF 和 WCOL
;特 注意:是向 志位 SPIF/WCOL 写1,将 SPIF/WCOL 清成0
;特 注意:不是向 志位 SPIF/WCOL 写0,将 SPIF/WCOL 清成0
; 保存收到的数据
MOV A, SPDAT
MOV SPI_buffer, A
SETB SPI_Receive
RETI
; 立 SPI 端口收到数据 志
;------------------------------------------------------------------------------
Initial_System:
ACALL Initial_UART
ACALL Initial_SPI
; 初始化串口
; 初始化 SPI
SETB TR0
SETB ET0
; 启 T0
; 开 T0 中断
MOV Flags, #0
SETB EA
RET
; 清 志字
; 开 中断
;------------------------------------------------------------------------------
Initial_UART:
; 初始化串口
; SCON Bit: 7
6
5
4
3
2
1
0
;
SM0/FE SM1 SM2 REN TB8 RB8
Tl Rl
MOV SCON, #50H
;0101,0000 8 位可 波特率, 无奇偶校
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 129
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
MOV TMOD, #21H
;T1
自 重装模式
MOV TH1, #RELOAD_8BIT_DATA
MOV TL1, #RELOAD_8BIT_DATA
MOV PCON, #80H
;
; 取消本行指令注 ,波特率加倍。
;使以下两行有效,波特率快12倍,即波特率 = 4800*12=57600
MOV A, #01000000B
ORL AUXR, A
;T1 以 1T 的速度 数,是普通8051的12倍
SETB TR1
RET
; 启 定 器1 开始 数
;------------------------------------------------------------------------------
Initial_SPI:
; 初始化 SPI
if MASTER_SLAVE == 0
MOV SPCTL,#11111100B
;SSIG=1: 忽略SS脚
;SPEN=1:允 SPI 工作
;DORD=1:先 低位 LSB
;0FCH, 忽略 SS 脚,
主机
;MSTR=1:
主机
;CPOL=1:SPI 空
SPICLK = 1,前跳 沿是下降沿,后跳 沿是上升沿。
;CPHA=1:数据由 SPICLK 前跳 沿
;SPR1,SPR0 = 00:主模式 SPI
到 SPI 口 ,SPI 模 在后跳 沿采 数据。
源
fosc/4
else
MOV SPCTL,#01101100B
;6CH,
从机, 由 SS 脚决定是否已被 中
;SSIG=0: 由 SS 脚决定主模式或从模式。
;SPEN=1:允 SPI 工作
;DORD=1:先 低位 LSB
;MSTR=0:
从机
;CPOL=1:SPI 空
SPICLK = 1,前跳 沿是下降沿,后跳 沿是上升沿。
;CPHA=1:数据由 SPICLK 前跳 沿
;SPR1,SPR0 = 00:主模式 SPI
到 SPI 口 ,SPI 模 在后跳 沿采 数据。
fosc/4
源
endif
MOV SPSTAT,#11000000B
; 清0 志位 SPIF(SPSTAT.7), WCOL(SPSTAT.6)
;向 两个 志位写"1" 会将它 清0
MOV A, #00001000B
ORL AUXR, A
SETB EADC_SPI
RET
; 令ESPI(AUXR.3)=1,允 SPIF(SPSTAT.7) 生中断
; 开 ADC 中断和 SPI 中断共享的 中断控制位
;------------------------------------------------------------------------------
RS232_Send_Byte:
CLR TI
;RS232 串口 送一个字
; 清零串口 送中断 志
MOV SBUF, A
RS232_Send_Wait:
JNB TI, RS232_Send_Wait
; 等待 送完 , 未 送完 跳回本行
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 130
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
CLR TI
RET
; 清零串口 送中断 志
;------------------------------------------------------------------------------
;此段程序只有主 MCU 用
SPI_Send_Byte:
CLR EADC_SPI
;SPI
; 关 ADC 中断和 SPI 中断共享的 中断控制位
;SPI 送数据
送一个字
MOV SPDAT, A
SPI_Send_Byte_Wait:
MOV A, SPSTAT
ANL A, #80H
; 等待 SPIF=1 即等待 SPI 送完
JZ
SPI_Send_Byte_Wait
SETB EADC_SPI
RET
; 开 ADC 中断和 SPI 中断共享的 中断控制位
;------------------------------------------------------------------------------
Get_Byte_From_RS232:
MOV A, SBUF
CLR RI
; 取 RS-232 串口中收到的数据累加器 A
RET
;------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------
;更
;
的 料可以参 STC12C5410AD.pdf (中文使用 明)。
;SPI 控制寄存器
;
7
6
5
4
3
2
1
0
;SPCTL SSIG SPEN DORD MSTR CPOL CPHA SPR1 SPR0
;
;SSIG: 忽略SS脚, 如果 SSIG=1, 由 MSTR 位决定主模式或从模式,
;
如果 SSIG=0, 由 SS 脚决定主模式或从模式。
;SPEN:SPI使能位。如果 SPEN=0,SPI功能被禁止,SPI 脚用作普通IO口
;DORD:SPI 数据
序。
1:先 低位 LSB
0:先 高位 MSB
;
;
;MSTR:主/从模式
位
;CPOL:SPI
信号极性
1:SPI 空
0:SPI 空
信号相位
1:数据由 SPICLK 前跳 沿
0:当 SS 脚 低(SSIG=0) 数据被
位
;
;
SPICLK = 1,前跳 沿是下降沿,后跳 沿是上升沿。
SPICLK = 0,前跳 沿是上升沿,后跳 沿是下降沿。
;CPHA:SPI
位
;
;
;
;
到口 ,后跳 沿采 。
到口 ,并且在 SPICLK 后跳 沿数据
被改 (被
到口 ),在 SPICLK 前跳 沿数据被采 。注意:SSIG = 1
操作未定 。
;SPR1-SPR0:主模式 SPI
速率
;
;
;
00:fosc/4
01:fosc/16
10:fosc/64
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 131
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;
;
;
11 :fosc/128
当 CPHA=0,SSIG 必 等于零并且在
SS 脚也必 一直保持 低。当 SS 有效
,WCOL 志被置 1。
当 CPHA=1,SSIG 可以等于 0 或 1。如果 SSIG=0,SS 脚在 0(可以
;(=0) 向 SPDATA 寄存器写数据就会 生写冲突
;
的
;一直保持 0) 。当系 中只有一个主和一个从 SPI
;--------------------
, 是首 配置。
;SPI 状 寄存器
;
7
6
5
-
4
-
3
-
2
1
0
;SPSTAT SPIF WCOL
;SPIF:SPI
-
-
-
束 志。当一次
ESPI(AUXR.3)=1 ,EADC_SPI(IE.5)=1,EA(IE.7)=1, 就引起中断。如果原来 SPI
由 SS 脚确定 是主模式(SSIG=0,SS=1),当 SS 成 0 ,SPIF 也会被置 1,
表示"模式改 "。向 SPIF 位写 1 将 志清 0。
束 , SPIF 被置 1,如果 SPI 中断被打开:
;
;
;
;WCOL:SPI 写冲突 志。当一个数据 在
就会被被置 1。向 WCOL 位写 1 将
,又向数据寄存器 SPDAT 写入数据,WCOL
志清 0。
;
;--------------------
;SPI 主/从模式
;
;SPEN SSIG SS MATR
模式 MISO MOSI SPICLK
注
; 0 X X X
; 1 0 0 0
; 1 0 1 0
; 1 0 0 1->0
; 1 0 1 1
; 1 1 X 0
; 1 1 X 1
禁止SPI
入
出
入
出
入
出
入
入
入
入
入
出
入
出
入
入
禁止SPI
从
未 从
从
被
从
入
从,但没有被 中
入
出
入
出
由主
从
主
从
从
主
主
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 132
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 C:
用串行口 展I/O接口
STC12Cxxxx 串行口的方式0 可用于I/O 展。如果在 用系 中,串行口未被占用,那么将它用
来 展并行I/O口是一种 、 用的方法。
在操作方式0 ,串行口作同步移位寄存器,其波特率是固定的, fosc/12(fosc 振 器
率)。 数据由RXD端(P3.0)出入,同步移位
在先。
由TXD端(P3.1) 出。 送、接收的是8位数据,低位
一、用74LS165 展并行 入口
下 是利用两片74LS165 展二个8位并行 入口的接口 路 。
12Cxxxx
6 5 4 3 14 13 12 11
6 5 4 3 14 13 12 11
H G F E D C B A
H G F E D C B A
SIN
10 9
9
7
10
QH
QH
SIN
QH
QH
P3.0
P3.1
74LS165
CP
74LS165
S/L CP
7
P1.0
S/L
1
2
8
16
104
2
8
16
104
15
1
15
VCC
VCC
74LS165 是8位并行置入移位寄存器。当移位/置入端(S/L)由高到低跳
入寄存器;当S/L=1,且 禁止端(第15 脚) 低 平 ,允
用下,数据将由QA 到QH 方向移位。
,并行 入端的数据置
入, 脉冲的作
在
上 中,TXD(P3.1)作 移位脉冲 出端与所有74LS165的移位脉冲 入端CP相 ;RXD(P3.0)
作 串行 入端与74LS165的串行 出端QH 相 ;P1.0用来控制74LS165的移位与置入而同S/L相 ;
74LS165 的
禁止端(15 脚)接地,表示允
入。当 展多个8 位 入口 ,两芯片的首尾
(Q H 与S I N )相 。
下面的程序是从16位 展口 入5 数据(每 二个字 ), 并把它
存到内部RAM 20H 开始的
元中。
MOV R7,#05H
MOV RO,#20H
START: CLR P1.0
; 置 入 数
; 置内部RAM 数据区首址
;并行置入数据,S/L=0
;允 串行移位S/L=1
SETB P1.0
MOV R1,#02H
; 置每 字 数,即外 74LS165 的个数
; 串行方式0 ,允 接收,启 接收 程
;未接收完一 ,循 等待
;清RI 志,准 下次接收
; 入数据
RXDATA: MOV SCON,#00010000B
WAIT:
JNB RI,WAIT
CLR RI
MOV A,SBUF
MOV @R0,A
INC R0
;送至RAM 冲区
;指向下一个地址
DJNZ R1,RXDATA
DJNZ R7,START
⋯ ⋯
;
完一 数据,
;5 数据未 完重新并行置入
; 数据 行 理
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 133
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
上面的程序 串行接收 程采用的是 等待的控制方式,如有必要,也可改用中断方式。从理
上 ,按上 方法 展的 入口几乎是无限的,但 展的越多,口的操作速度也就越慢。
二、用74LS164 展并行 出口
74LS164 是8位串入并出移位寄存器。下 是利用74LS164 展二个8位 出口的接口 路。
12Cxxxx
3 4 5 6 10 11 12 13
QA QB QC QD QE QF QG QH
3 4 5 6 10 11 12 13
QA QB QC QD QE QF QG QH
1,2
1,2
A,B
A,B
P3.0
P3.1
74LS164
74LS164
14
7
14
7
VCC
VCC
GND
GND
104
104
P1.0
CLR
9
CP
8
CLR
9
CP
8
当 片机串行口工作在方式0 的 送状
(TXD)送出。在移位 的作用下,串行口 送 冲器的数据一位一位地移入74LS164中。需要指出的是,
由于74LS164无并行 出控制端,因而在串行 入 程中,其 出端的状 会不断 化,故在某些 用
合,在74LS164的 出端 加接 出三 控制,以便保 串行 入 束后再 出数据。
下面是将RAM 冲区30H、31H的内容串行口由74LS164并行 出的子程序。
,串行数据由P3.0(RXD)送出,移位
由P3.1
START: MOV
R7,#02H
R0,#30H
SCON,#00H
A,@R0
; 置要 送的字 个数
; 置地址指
MOV
MOV
; 置串行口方式0
SEND:
MOV
MOV
JNB
CLR
INC
DJNZ
RET
SBUF,A
TI,WAIT
TI
;启 串行口 送 程
WAIT:
;一 数据未 送完,循 等待
R0
;取下一个数
R7,SEND
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 134
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 D: STC12C2052AD系列 1T 片机 介
STC12C2052系列 片机是
/机器周期(1T)的兼容8051内核 片机,是高速/低功耗的新一代
8051 片机,全新的流水 / 精 指令集 构,内部集成MAX810 用复位 路。
特 点 :
1. 增 型 1T 流水 /精 指令集 构 8051 CPU
2. 工作
3. 工作 率范 :0 - 35 MHz ,相当于普通8051的 0~420MHz.
4. 用 用程序空 512 / 1K / 2K / 3K / 4K / 5K 字
:5.5V - 3.4V(5V 片机) / 3.8V - 2.4V (3V 片机)
工作 率可达48MHz.
5. 片上集成 256 字 RAM
6. 通用I/O 口(15 个),复位后 : 准双向口/ 弱上拉(普通8051
可 置成四种模式:准双向口/ 弱上拉,推挽/ 上拉,
I/O 口)
入/ 高阻,开漏
每个I/O口
7. ISP(在系 可 程)/IAP(在 用可 程), 无需 用 程器
可通 串口(P3.0/P3.1)直接下 用 程序,2秒 ~ 3秒即可完成一片
8. EEPROM 功能
能力均可达到20mA,但整个芯片最大不得超 55mA
9. 看 狗
10.内部集成MAX810 用复位 路
11.
源:高精度外部晶体/
用 在下 用 程序 ,可
常温下内部R/C 振 器 率 :5.65MHz ~ 5.95MHz
精度要求不高 ,可 使用内部 ,但因 有温漂,
12.共2个16位定 器/ 数器
,内部R/C 振 器
是使用内部R/C振 器 是外部晶体/
是4MHz ~ 8MHz
13.外部中断2路,下降沿中断或低 平触 中断,Power Down 模式可由外部中断低 平触 中断方式 醒
14.PWM(2 路)/PCA(可 程 数器 列)
--- 也可用来再
15.ADC, 8路8位精度
2个定 器或2个外部中断(上升沿中断/下降沿中断均可支持)
16.通用异步串行口(UART)
17.SPI同步通信口, 主模式/从模式
18.工作温度范 : 0 - 75℃ / -40 - +85℃
19.封装: PDIP-20,SOP-20( 体),TSSOP-20(超小封状,定 )
供 :
已大批量供 (PDIP-20/SOP-20), 迎提前定 。
STC12C5410AD系列是STC12C2052AD系列的后 品
1.内部 RAM 增加到 512 字
2.内部 I/O 口 增加到 23 个(PDIP-28/SOP-28), PLCC-32
3.内部 PCA/PWM 模 增加到 4 个
27个
4.内部 A/D 模 提升到 10 位 精度
5.内部 Flash 程序空
2K / 4K / 6K / 8K / 10K / 12K
6.封装:PDIP-28(窄体),SOP-28,PLCC-32,PDIP-20,SOP-20,TSSOP-20
7.供 :2005-12-5开始提供 品(PDIP-28/SOP28/PLCC32), 2005年12月底批量供
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 135
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12C2052AD系列 片机管脚 及封装尺寸
RST
RxD/P3.0
TxD/P3.1
1
2
3
4
20
19
18
17
16
15
14
13
12
11
VCC
RST
RxD/P3.0
TxD/P3.1
1
2
3
4
5
20
19
18
17
16
15
14
13
12
11
VCC
P1.7/SCLK
P1.6/MISO
P1.5/MOSI
P1.4/SS
P1.3
P1.2
P1.1
P1.0
P3.7/CEX0/PWM0
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P1.4/SS/ADC4
P1.3/ADC3
XTAL2
XTAL1
XTAL2
XTAL1
5
INT0/P3.2
INT1/P3.3
ECI/T0/P3.4
PWM1/CEX1/T1/P3.5
Gnd
6
7
8
9
10
INT0/P3.2
INT1/P3.3
ECI/T0/P3.4
PWM1/CEX1/T1/P3.5
Gnd
6
7
8
P1.2/ADC2
P1.1/ADC1
9
10
P1.0/ADC0
P3.7/CEX0/PWM0
STC12C2052AD
STC12C2052
20S, 20-lead, 0.300" Wide, Plastic Gull WIng Small
Outline (SOIC-20 / SOP-20)
20P3, 20-lead, 0.300" Wide, Plastic Dual Inline
Package (PDIP-20)
Dimensions in Inches and (Millimeters)
Dimensions in Inches and (Millimeters)
JEDEC STANDARD MS-001 AD
0.020 (0.508)
0.013 (0.330)
1.060 (26.9)
0.980 (24.9)
PIN1
0.299 (7.60)
0.291 (7.39)
0.280 (7.11)
0.240 (6.10)
0.420 (10.7)
0.393 (9.98)
PIN1
0.090(2.29)
MAX
0.900(22.86) REF
0.050 (1.27)
0.210(5.33)
MAX
0.005(0.127)
MIN
SEATING
PLANE
0.513 (13.0)
0.497 (12.6)
0.105 (2.67)
0.092 (2.34)
0.015(0.381)MIN
0.150 (3.81)
0.115 (2.92)
0.022 (0.559)
0.014 (0.356)
0.070(1.78)
0.045(1.13)
0.012 (0.305)
0.003 (0.076)
0.100 (2.54)
0.325(8.26)
0.300(7.62)
0
REF
8
0.013 (0.330)
0.009 (0.229)
0
0.014(0.356)
0.008(0.203)
REF
15
0.035 (0.889)
0.015 (0.381)
0.430(10.92)MAX
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 136
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
STC12LE4052AD提供TSSOP-20封装
STC12C4052AD提供TSSOP-20封装
PACKAGE:PLASTIC SHRINK SMALL OUTLINE (TSSOP-20,6.4mm ×6.4mm)
D(6.40mm~6.60mm)
Φ
e(0.65mm)
B(0.19mm~0.30mm)
L(0.50mm~0.75mm)
DIMENSIONS
in inches (mm)
Minimum/Maximum
20-PIN
- /0.043
A
(- /1.10)
0.002/0.006
A1
(0.05/0.15mm)
0.007/0.012
B
D
(0.19/0.30mm)
0.252/0.260
(6.40/6.60mm)
0.169/0.177
E
(4.30/4.50mm)
0.026 BSC
e
(0.65mm BSC)
0.126 BSC
(3.20mm BSC)
E2
L
0.020/0.030
(0.50/0.75mm)
Φ
0°/8°
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 137
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 E: STC 片机普通I/O口 LCD 示
VCC
21K
Seg3
U2
VCC
Com0
Com1
Seg0
Seg1
Seg2
Seg3
Seg4
Seg5
Seg6
Seg7
Seg8 10
Seg9 11
Seg10 12
Seg11 13
Seg12 14
Seg13 15
Seg14 16
Seg15 17
Seg16 18
Seg17 19
Seg18 20
Seg19 21
Seg20 22
Seg21 23
Seg22 24
Seg23 25
Com2 26
0
1
2
3
4
5
6
7
8
9
Com0
Com1
Seg0
Seg1
Seg2
Seg3
Seg4
Seg5
Seg6
Seg7
Seg8
Seg9
Seg10
Seg11
Seg12
Seg13
Seg14
Seg15
Seg16
Seg17
Seg18
Seg19
Seg20
Seg21
Seg22
Seg23
Com2
C1
Seg13
Seg14
Seg15
7
8
9
39
38
37
36
35
34
33
32
31
30
29
P1.5
P1.6
P1.7
RST
P3.0
P4.3
P3.1
P3.2
P3.3
P3.4
P3.5
P0.4
P0.5
P0.6
P0.7
EA
P4.1
ALE
PSEN
P2.7
P2.6
P2.5
10uF
10
11
12
13
14
15
16
17
STC89C58RD+
PLCC-44
VCC
R1
10K
Seg23
Seg22
Seg21
<33pF
<33pF
本 料不提供技 支持, 自行消化吸收
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 138
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
NAME LcdDriver
$include(STC89C51RC.h)
;**************************************************************************************
;the LCD is 1/3 duty and 1/3 bias; 3Com*24Seg; 9 display RAM;
;
;
Bit7
Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
;Com0: Com0Data0: Seg7
Seg6 Seg5 Seg4 Seg3 Seg2
Seg1 Seg0
Seg9 Seg8
Seg17 Seg16
Seg1 Seg0
Seg9 Seg8
Seg17 Seg16
Seg1 Seg0
Seg9 Seg8
Seg17 Seg16
;
;
Com0Data1: Seg15 Seg14 Seg13 Seg12 Seg11 Seg10
Com0Data2: Seg23 Seg22 Seg21 Seg20 Seg19 Seg18
;Com1: Com1Data0: Seg7
Seg6 Seg5 Seg4 Seg3 Seg2
;
;
Com1Data1: Seg15 Seg14 Seg13 Seg12 Seg11 Seg10
Com1Data2: Seg23 Seg22 Seg21 Seg20 Seg19 Seg18
;Com2: Com2Data0: Seg7
Seg6 Seg5 Seg4 Seg3 Seg2
;
;
Com2Data1: Seg15 Seg14 Seg13 Seg12 Seg11 Seg10
Com2Data2: Seg23 Seg22 Seg21 Seg20 Seg19 Seg18
;**************************************************************************************
;Com0: P3^0,P3^1 when P3^0 = P3^1 = 1
then Com0=VCC(=5V);
then Com0=GND(=0V);
then Com0=1/2 VCC;
;
;
P3^0 = P3^1 = 0
P3^0 = 1, P3^1=0
;Com1: P3^2,P3^3 the same as the Com0
;Com2: P3^4,P3^5 the same as the Com0
;
sbit SEG0 =P0^0
sbit SEG1 =P0^1
sbit SEG2 =P0^2
sbit SEG3 =P0^3
sbit SEG4 =P0^4
sbit SEG5 =P0^5
sbit SEG6 =P0^6
sbit SEG7 =P0^7
sbit SEG8 =P1^0
sbit SEG9 =P1^1
sbit SEG10 =P1^2
sbit SEG11 =P1^3
sbit SEG12 =P1^4
sbit SEG13 =P1^5
sbit SEG14 =P1^6
sbit SEG15 =P1^7
sbit SEG16 =P2^0
sbit SEG17 =P2^1
sbit SEG18 =P2^2
sbit SEG19 =P2^3
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 139
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
sbit SEG20 =P2^4
sbit SEG21 =P2^5
sbit SEG22 =P2^6
sbit SEG23 =P2^7
;******************************************************************************************
;======Interrupt===============================
CSEG AT 0000H
LJMP start
CSEG AT 000BH
LJMP int_t0
;======register===============================
lcdd_bit SEGMENT BIT
RSEG lcdd_bit
OutFlag:
DBIT 1
;the output display reverse flag
lcdd_data SEGMENT DATA
RSEG lcdd_data
Com0Data0:
Com0Data1:
Com0Data2:
Com1Data0:
Com1Data1:
Com1Data2:
Com2Data0:
Com2Data1:
Com2Data2:
TimeS:
DS 1
DS 1
DS 1
DS 1
DS 1
DS 1
DS 1
DS 1
DS 1
DS 1
;======Interrupt Code==========================
t0_int SEGMENT CODE
RSEG t0_int
USING 1
;*****************************************************************
;Time0 interrupt
;ths system crystalloid is 22.1184MHz
;the time to get the Time0 interrupr is 2.5mS
;the whole duty is 2.5mS*6=15mS, including reverse
;*****************************************************************
int_t0:
ORL TL0,#00H
MOV TH0,#0EEH
PUSH ACC
PUSH PSW
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 140
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
MOV PSW,#08H
ACALL OutData
POP PSW
POP ACC
RETI
;======SUB CODE================================
uart_sub SEGMENT CODE
RSEG uart_sub
USING 0
;******************************************************************
;initial the display RAM data
;if want to display other,then you may add other data to this RAM
;Com0: Com0Data0,Com0Data1,Com0Data2
;Com1: Com1Data0,Com1Data1,Com1Data2
;Com2: Com2Data0,Com0Data1,Com0Data2
;*******************************************************************
InitComData:
MOV Com0Data0,#24H
;it will display "11111111"
MOV Com0Data1,#49H
MOV Com0Data2,#92H
MOV Com1Data0,#92H
MOV Com1Data1,#24H
MOV Com1Data2,#49H
MOV Com2Data0,#00H
MOV Com2Data1,#00H
MOV Com2Data2,#00H
RET
;********************************************************************
;reverse the display data
;********************************************************************
RetComData:
MOV R0,#Com0Data0
MOV R7,#9
;get the first data address
RetCom_0:
MOV A,@R0
CPL A
MOV @R0,A
INC R0
DJNZ R7,RetCom_0
RET
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 141
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;**********************************************************************
;get the display Data and send to Output register
;**********************************************************************
OutData:
INC TimeS
MOV A,TimeS
MOV P3,#11010101B
CJNE A,#01H,OutData_1
MOV P0,Com0Data0
MOV P1,Com0Data1
MOV P2,Com0Data2
JNB OutFlag,OutData_00
MOV P3,#11010111B
RET
;clear display,all Com are 1/2VCC and invalidate
;judge the duty
;Com0 is work and is VCC
;Com0 is work and is GND
OutData_00:
MOV P3,#11010100B
RET
OutData_1:
CJNE A,#02H,OutData_2
MOV P0,Com1Data0
MOV P1,Com1Data1
MOV P2,Com1Data2
JNB OutFlag,OutData_10
MOV P3,#11011101B
RET
;Com1 is work and is VCC
;Com1 is work and is GND
OutData_10:
MOV P3,#11010001B
RET
OutData_2:
MOV P0,Com2Data0
MOV P1,Com2Data1
MOV P2,Com2Data2
JNB OutFlag,OutData_20
MOV P3,#11110101B
SJMP OutData_21
;Com2 is work and is VCC
;Com2 is work and is GND
OutData_20:
MOV P3,#11000101B
OutData_21:
MOV TimeS,#00H
ACALL RetComData
CPL OutFlag
RET
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 142
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
;======Main Code===============================
uart_main SEGMENT CODE
RSEG uart_main
USING 0
start:
MOV SP,#40H
CLR OutFlag
MOV TimeS,#00H
MOV TL0,#00H
MOV TH0,#0EEH
MOV TMOD,#01H
MOV IE,#82H
ACALL InitComData
SETB TR0
Main:
NOP
SJMP Main
END
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 143
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 F: 一个I/O口 光二极管并 描按
1K
P1.7
1K
1K
P1.6
1K
1K
P1.5
1K
1K
P1.4
1K
利用STC12C5410系列 片机的I/O口可 置成弱上拉, 上拉(推挽) 出,
入(高阻),开漏四种模式
及按 用,可以大幅
的特性,可以利用STC12C5410系列 片机的I/O口同 作
省I/O 口。
光二极管
当
当
光二极管 ,将 I/O 口 置成 上拉推挽 出, 出高即可点亮 光二极管
,将 I/O 口 置成弱上拉,然后 出1,再 外部口的状 ,即可
按
按
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 144
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 G: 典型MCU/DSP/uC 复位、 源 控、外部看 狗 用 路
源
1.高 平复位信号 出
VCC
STC6344
STC810 *推荐
VCC RESET
RESET
片机
89C51RC
89C54RD+
89C58RD+
89LE516AD
GND
PFI
MR
100K
Vc
<1.25V
PFO=0
PFO
Interrupt
2
RESET
RESET
人民 2元
上 复位, 掉 复位
上 复位, 掉 复位,外部手 复位,
前端掉
VCC
源
源
STC89C51RC
STC89C52RC
STC89C53RC
STC89C54RD+
STC89C58RD+
STC89C516RD+
STC813L
STC6345
VCC
RESET
VCC RESET
MR
WDO
GND RESET
片机
VCC
RESET
RESET
10K
100K
GND
PFI
WDI
PFO
I/O
<1.25V
PFO=0
PFI
PFO
Interrupt
<1.25V
PFO=0
Interrupt
RESET
人民 2元
uC / DSP
上 复位, 掉 复位,外部手 复位,
前端掉
上 复位, 掉 复位
前端掉
源
,
源
,
外部硬件看 狗
高/低 平2路复位信号 出
2.低 平复位信号 出
STC809 *推荐
源
VCC
STC6342
VCC RESET
RESET
uC / DSP
Interrupt
1
GND
uC / DSP
GND
PFI
MR
10K
VCC
3
Vcc
<1.25V
PFO=0
PFO
2
RESET
RESET
上 复位, 掉 复位
上 复位, 掉 复位,外部手 复位,
前端掉
源
VCC
uC / DSP
源
VCC
STC706S
STC708
MR
RESET
RESET
RESET
MR
WDO
VCC
片机
VCC
RESET
RESET
100K
GND
NC
100K
GND
PFI
WDI
PFO
I/O
<1.25V
PFI
PFO
Interrupt
<1.25V
PFO=0
PFO=0
Interrupt
RESET
uC / DSP
上 复位, 掉 复位,外部手 复位,
前端掉
高/低 平2路复位信号 出
使用外部 用复位 路的好 :(推荐使用STC6344,STC6345,STC810)
上 复位, 掉 复位,外部手 复位,
前端掉
外部硬件看 狗
源
,
源
,
1.确保上
2.确保掉
,在用
,在用
定的 源
定的 源
之上,
振
定后, 片机才开始工作
片机复位,以免 片机
之下,立即
作
3.具有 源
4.复位
前端掉
可 : L:4.63V; M:4.38V; J: 4.00V; T:3.08V; S:2.93V; R:2.63V
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 145
的 用复位 路,确保掉 前有充分的
保存数据
宏晶科技:
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 H:
STC 高性能SRAM 型一 表
STC62WV256
型号
容量
工作
温度
速度 推荐封状
供
STC62WV256
32K x 8 2.4 - 5.5V -40℃~85℃ 70nS SOP/TSOP/DIP
A14
1
28
VCC
A12
A7
2
3
27
26
WE
STC62WV1024 128K x 8 2.4 - 5.5V -40℃~85℃ 70nS SOP/STSOP/TSOP
STC62WV2568 256K x 8 2.4 - 5.5V -40℃~85℃ 70nS STSOP-32
STC62WV5128 512K x 8 2.4 - 5.5V -40℃~85℃ 70nS STSOP/SOP-32
A13
A6
A5
A4
A3
A2
4
5
6
7
8
25
24
23
22
21
A8
A9
A11
OE
STC62WV1M8
1M x 8 2.4 - 5.5V -40℃~85℃ 70nS TSOP2-44
SOP-28
A10
STC62WV6416 64K x 8 2.4 - 5.5V -40℃~85℃ 70nS TSOP2-44
STC62WV12816 128K x 16 2.4 - 5.5V -40℃~85℃ 70nS TSOP2-44
STC62LV12816 128K x 16 2.4 - 3.6V -40℃~85℃ 70nS TSOP2-44
STC62WV25616 256K x 16 2.4 - 5.5V -40℃~85℃ 70nS TSOP2-44
STC62WV51216 512K x 16 2.4 - 5.5V -40℃~85℃ 70nS TSOP2-44
A1
A0
9
20
19
18
17
16
15
CE
10
11
12
13
14
DQ7
DQ6
DQ5
DQ4
DQ3
DQ0
DQ1
DQ2
GND
STC62WV1M8
1
STC62WV1024
STC62WV1024
A11
A9
1
2
32
31
30
29
28
27
OE
A10
A4
A3
44
A5
NC
1
32
VCC
2
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
A6
A8
A13
WE
3
4
5
6
CE1
DQ7
DQ6
DQ5
DQ4
DQ3
GND
DQ2
DQ1
DQ0
A0
A2
3
A7
A16
A14
A12
A7
2
3
4
5
6
7
31
30
29
28
27
26
A15
CE2
WE
A1
4
OE
CE2
A15
VCC
NC
A16
A14
A12
A7
A6
A5
A4
7
8
9
26
A0
5
CE2
A8
25
24
23
22
21
20
19
18
17
TSOP / STSOP-32
CE1
NC
6
10
11
7
NC
A13
A8
12
13
14
15
16
NC
8
NC
A6
DQ0
DQ1
VCC
GND
DQ2
DQ3
NC
9
DQ7
DQ6
GND
VCC
DQ5
DQ4
NC
A1
A2
A3
A5
A9
10
TSOP-Ⅱ-44
SOP-32
11
A4
A3
8
9
25
24
A11
OE
12
13
14
15
16
17
18
STC62WV5128
A11
A9
A8
A13
WE
A17
A15
VCC
A18
A16
A14
A12
A7
1
2
3
4
5
6
7
32
OE
A10
CE
A2
A1
10
11
12
13
23
22
21
20
A10
CE1
DQ7
DQ6
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
DQ7
DQ6
DQ5
DQ4
DQ3
GND
DQ2
DQ1
DQ0
A0
NC
NC
A0
WE
A9
DQ0
A19
A10
8
9
STSOP-32
A18
A17
A16
A15
19
20
21
22
26
25
24
23
A11
A12
A13
A14
10
11
12
13
14
15
16
DQ1
DQ2
14
15
19
18
DQ5
DQ4
A6
A5
A4
A1
A2
A3
GND
16
17
DQ3
STC62WV12816
STC62WV25616
STC62WV51216
A4
1
2
3
4
5
6
7
44
43
42
41
40
39
38
A5
A6
A4
A3
1
2
3
4
5
6
7
44
43
A5
A4
A3
1
2
3
4
5
6
7
44
43
A5
A6
A3
A2
A6
A7
A2
42
41
A7
A2
42
41
A7
OE
A1
OE
A1
OE
A1
A0
UB
A0
40
UB
A0
40
UB
CE
LB
CE
39
38
LB
CE
39
38
LB
DQ0
DQ15
DQ0
DQ15
DQ0
DQ15
DQ1
DQ2
8
9
37
36
DQ14
DQ13
DQ1
DQ2
8
9
37
36
DQ14
DQ13
DQ1
DQ2
8
9
37
36
DQ14
DQ13
TSOP-Ⅱ-44
TSOP-Ⅱ-44
DQ3
VCC
GND
DQ4
DQ5
DQ6
10
11
12
13
14
15
35
34
33
32
31
30
DQ12
GND
TSOP-Ⅱ-44
DQ3
VCC
GND
DQ4
DQ5
DQ6
DQ7
WE
10
35
34
33
32
31
30
29
28
27
26
25
24
23
DQ12
GND
VCC
DQ11
DQ10
DQ9
DQ8
NC
DQ3
VCC
VSS
DQ4
DQ5
DQ6
10
35
34
33
32
31
DQ12
VSS
11
12
13
14
15
16
17
18
19
20
21
22
11
12
13
14
15
VCC
VCC
DQ11
DQ10
DQ9
DQ11
DQ10
DQ9
30
DQ7
WE
16
17
18
19
20
21
22
29
28
27
26
25
24
23
DQ8
NC
DQ7
WE
16
17
18
19
20
21
22
29
28
27
26
DQ8
A8
A16
A15
A14
A13
A12
A8
A17
A16
A15
A14
A13
A8
A18
A17
A16
A15
A14
A9
A9
A9
A10
A11
A12
A13
A10
A11
NC
A10
A11
A12
25
24
23
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 146
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 I: 超 抗干 数据, 4000V快速脉冲干
--- 在 威的SGS 气 室
Iss Date Jan 06 ,2006
SGS
WORKSHEET: EFT Test (EN 61000-4-4)
EUT NAME:STC12C5410AD Development Tool
Environmental conditions
Air Temperature (℃) 20 Relative Humidity(%RH) 56 Air Pressure (mBar) 1003
Set-Up EUT for Compliance Test
EN 61000-4-4
Set up the EUT as
Test Requirement Standard
Table-top
Operating mode during test ON MODE
Detail EUT monitor system:
STC12C5410AD control LED flashing function
Compliance-Test Record
Compliance Test Result On AC Cable ( 2 wire )
Lead under test
Level
+/-4kV
+/-4kV
+/-4kV
EUT operating mode
ON MODE
Observations
NLOF
L
N
ON MODE
NLOF
L+N
ON MODE
NLOF
Test Conclusion and Reason
Test Conclusion:
Pass
Reason(explain why? ):
Class A
Note: This sample pass the Class A(2kV)
According to the customer ’s require up to 4kV,test result: PASS 4kV
我 提供 4000V 快速脉冲干
服 ,陪同在 威的SGS 气
。
室
,
1 小 收取人民 3000 元,提前一周
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 147
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 J: STC12C5410AD 系列 片机 用注意事
关于复位 路:
晶振 率在20M 以下 :可以不用外部复位 路,原复位 路可以保留,也可以不用,不用 复位脚可
直接短到地。不 建
关于
如果使用内部R/C振 器
PCB 板上保留R/C 复位 路,
使用 再决定用或不用。
:
(4MHz~8MHz,制造 差加温漂),XTAL1和XTAL2脚浮空.
率在33MHz以上 ,建 直接使用外部有源石英晶体振 器, 从XTAL1脚 入,XTAL2脚
如果外部
必 浮空.
A 版/ B 版,老版本 用注意事 ( 新版本C 版本已 改好,并开始大量供 ):
★空 模式(IDLE)不要用,新版本C 版本已修改好
★ 普通可位 址的RAM(20H - 2FH)的位(位地址: 00H - 7FH),用JBC RAM_Bit 无任何
★ 可位 址的特殊功能寄存器的位(80H - FFH)
不要用 JBC SFR_Bit 指令
用
JB SFR_Bit / CLR SFR_Bit 指令取代
例:
定 器0、定 器1使用 建 直接用中断方式,与普通8051 片机完全兼容
但如不用中断,而用 方式,建 用
/ 再CLR TF0;JB TF1
JB TF0
不要用
/ 再CLR TF1。
JBC TF0 / JBC TF1
此
新版本正在修正中,但
并不影响用 使用。
原 因 :
主要是特殊功能寄存器的整个8位 被 出后,如在我 判断 位 1后,将 位清零,并将整个8位 再一
起写回之前,它的部分其它位如已由硬件 置 生 化,而我 JBC判断后再写回 ,新的 被破坏,被写成
了老的 。
如果 位是0, 不会再写回,就不会 生此事。
如果 位 成了1, 特殊功能寄存器的其它位在此瞬 未 生 化,再一起写回,也无
。
如果 位 成了1, 特殊功能寄存器的其它位在此瞬
又被写成老的 。
生 化,其它在此瞬
生 化的位就会被破坏,
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 148
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409
Fax: 0755-82944243
附 K:
料升 史 忘
※STC12C5410AD系列 片机新的C版本已开始大量供
2006-4-15 版本在2006-3-25 版本的基 上:
部分目 和内容做了 整
通知新版本C 版本已 大量供
2006-3-25 版本在2006-2-6 版本的基 上:
在PWM/PCA 的 用部分增加了在使用PCA 高速 出模式 的特
用注意事
2006-2-6 版本在2005-1-16 版本的基 上:
增加了定 器1 做波特率 生器的程序
增加了如何用 件
系 复位
增加了附 I 典型MCU/DSP/uC 复位、 源 控、外部看 狗 用 路
增加了附 J STC 高性能SRAM 型一 表
增加了附 L: 超 抗干
数据, 4000V 快速脉冲干
明部分做了加
EEPROM
看 狗
程序的解
程序的解
明部分做了加
------------------------------------------------------------------------------
2006-1-16 版本在2005-12-31 版本的基 上:
1.A/D
程序做了 化
2.PCA/PWM 模 增加了新的演示程序( 展 件定 器, 展外部中断)
------------------------------------------------------------------------------
2005-12-31 版本在2005-12-24 版本的基 上:
1.修正了PCA/PWM 部分笔 ,4 路PCA/PWM 原有些部分笔
2 路
果(ADC_DATA[7:0],ADC_LOW2[1:0])=256 x Vin / Vcc
果 ( ADC_DATA[7:0],ADC_LOW2[1:0] ) = 1024 x Vin / Vcc
LCD 示的参考 路及演示程序
光二极管并 描按
5.增加了STC12C5410 系列 片机 用注意事
2.原A/D
改
果 算公式 :笔
3.增加了STC 片机普通I/O 口
4.增加了一个I/O 口
宏晶科技:
片机/存 器供 商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 片机中文指南 149
相关型号:
©2020 ICPDF网 联系我们和版权申明