STC micro
TM
宏 晶 科 技
江苏国芯科技有限公司
STC8 系列单片机
技术参考手册
技术支持网站:www.STCMCUDATA.com / www.STCMCU.com
资料更新日期:2018/5/7
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
目录
1
2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
3
3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.1.6
3.1.7
3.1.8
3.1.9
3.1.10
3.2
3.2.1
3.2.2
3.2.3
3.2.4
3.3
3.3.1
3.4
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
概述.......................................................................................................................................... 1
特性及价格.............................................................................................................................. 3
STC8A8K64S4A12 系列特性及价格 ..................................................................................... 3
STC8A4K64S2A12 系列特性及价格 ..................................................................................... 5
STC8F2K64S4 系列特性及价格 ............................................................................................ 7
STC8F2K64S2 系列特性及价格 ............................................................................................ 9
STC8F1K08S2 系列特性及价格 ...........................................................................................11
STC8C1K08S2A10 系列提前通告 ....................................................................................... 13
STC8P1K08S2A10 系列提前通告........................................................................................ 14
STC8P1K16S2A10 系列提前通告........................................................................................ 15
STC8P2K32S4A12 系列提前通告........................................................................................ 16
STC8H04A10 系列提前通告 ................................................................................................ 17
STC8H04 系列提前通告....................................................................................................... 18
管脚及说明............................................................................................................................ 19
管脚图.................................................................................................................................... 19
STC8A8K64S4A12 系列管脚图........................................................................................... 19
STC8A4K64S2A12 系列管脚图........................................................................................... 23
STC8F2K64S4 系列管脚图 .................................................................................................. 27
STC8F2K64S2 系列管脚图 .................................................................................................. 30
STC8F1K08S2 系列管脚图 .................................................................................................. 34
STC8C1K08S2A10 系列管脚图 ........................................................................................... 35
GX8S003 系列管脚图 ........................................................................................................... 36
STC8P1K08S2A10 系列管脚图............................................................................................ 37
STC8P1K16S2A10 系列管脚图............................................................................................ 38
STC8P2K32S4A12 系列管脚图............................................................................................ 39
管脚说明................................................................................................................................ 40
STC8A8K64S4A12 系列管脚说明....................................................................................... 40
STC8A4K64S2A12 系列管脚说明....................................................................................... 47
STC8F2K64S4 系列管脚说明 .............................................................................................. 54
STC8F2K64S2 系列管脚说明 .............................................................................................. 58
功能脚切换 ............................................................................................................................ 62
功能脚切换相关寄存器 ........................................................................................................ 62
范例程序................................................................................................................................ 65
串口 1 切换............................................................................................................................ 65
串口 2 切换............................................................................................................................ 66
串口 3 切换............................................................................................................................ 66
串口 4 切换............................................................................................................................ 67
SPI切换 .................................................................................................................................. 67
PWM切换 .............................................................................................................................. 68
PCA/CCP/PWM切换............................................................................................................. 70
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-i-
STC8 系列技术手册
3.4.8
3.4.9
3.4.10
4
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
5
5.1
5.1.1
5.1.2
5.1.3
5.1.4
5.1.5
5.1.6
5.2
5.2.1
5.2.2
5.2.3
5.2.4
5.2.5
5.2.6
5.2.7
6
6.1
6.2
6.3
6.4
6.5
6.6
6.6.1
6.6.2
6.6.3
6.6.4
6.6.5
6.6.6
6.6.7
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
I2C切换.................................................................................................................................. 71
比较器输出切换 .................................................................................................................... 71
主时钟输出切换 .................................................................................................................... 72
封装尺寸图............................................................................................................................ 74
LQFP64S封装尺寸图(12mm*12mm).............................................................................. 74
LQFP64L封装尺寸图(16mm*16mm).............................................................................. 75
LQFP48 封装尺寸图(9mm*9mm) ................................................................................... 76
LQFP44 封装尺寸图(12mm*12mm) ............................................................................... 79
LQFP32 封装尺寸图(9mm*9mm) ................................................................................... 82
QFN32 封装尺寸图(4mm*4mm)..................................................................................... 83
PDIP40 封装尺寸图 .............................................................................................................. 84
TSSOP20 封装尺寸图 ........................................................................................................... 85
SOP16 封装尺寸图................................................................................................................ 86
STC8 系列单片机命名规则.................................................................................................. 87
ISP下载及典型应用线路图.................................................................................................. 88
STC8F系列ISP下载应用线路图........................................................................................... 88
使用RS-232 转换器下载....................................................................................................... 88
使用PL2303-SA下载 ............................................................................................................. 89
使用PL2303-GL下载............................................................................................................. 90
使用U8-Mini工具下载 .......................................................................................................... 91
使用U8W工具下载 ............................................................................................................... 92
USB直接ISP下载 .................................................................................................................. 93
STC8A系列ISP下载应用线路图 .......................................................................................... 94
使用RS-232 转换下载(使用高精度ADC)....................................................................... 94
使用RS-232 转换下载(ADC一般应用)........................................................................... 95
使用PL2303-SA下载 ............................................................................................................. 96
使用PL2303-GL下载............................................................................................................. 97
使用U8-Mini工具下载 .......................................................................................................... 98
使用U8W工具下载 ............................................................................................................... 99
USB直接ISP下载 ................................................................................................................ 100
时钟、复位与电源管理...................................................................................................... 101
系统时钟控制 ...................................................................................................................... 101
STC8 系列内部IRC频率调整 ............................................................................................. 104
STC15 系列内部IRC频率调整 ........................................................................................... 106
系统复位.............................................................................................................................. 108
系统电源管理 .......................................................................................................................110
范例程序...............................................................................................................................111
选择系统时钟源 ...................................................................................................................111
主时钟分频输出 ...................................................................................................................112
看门狗定时器应用 ...............................................................................................................113
软复位实现自定义下载 .......................................................................................................114
低压检测...............................................................................................................................115
省电模式...............................................................................................................................116
使用INT0/INT1/INT2/INT3/INT4 中断唤醒MCU .............................................................117
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- ii -
STC8 系列技术手册
6.6.8
6.6.9
6.6.10
6.6.11
6.6.12
6.6.13
7
7.1
7.2
7.2.1
7.2.2
7.2.3
7.3
7.3.1
7.3.2
7.3.3
7.3.4
7.3.5
7.3.6
7.3.7
7.3.8
8
8.1
8.2
8.3
8.4
8.5
9
9.1
9.2
9.3
9.3.1
9.3.2
9.3.3
9.3.4
9.4
9.4.1
9.4.2
9.5
9.5.1
9.5.2
10
11
11.1
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
使用T0/T1/T2/T3/T4 中断唤醒MCU ..................................................................................119
使用RxD/RxD2/RxD3/RxD4 中断唤醒MCU..................................................................... 123
使用LVD中断唤醒MCU ..................................................................................................... 125
使用CCP0/CCP1/CCP2/CCP3 中断唤醒MCU................................................................... 126
CMP中断唤醒MCU ............................................................................................................ 129
使用LVD功能检测工作电压(电池电压) ...................................................................... 130
存储器.................................................................................................................................. 134
程序存储器 .......................................................................................................................... 134
数据存储器 .......................................................................................................................... 135
内部RAM............................................................................................................................. 135
内部扩展RAM..................................................................................................................... 136
外部扩展RAM..................................................................................................................... 137
存储器中的特殊参数 .......................................................................................................... 139
读取Bandgap电压值 (从ROM中读取) .............................................................................. 140
读取Bandgap电压值 (从RAM中读取) .............................................................................. 142
读取全球唯一ID号 (从ROM中读取) ................................................................................ 144
读取全球唯一ID号 (从RAM中读取) ................................................................................ 147
读取 32K掉电唤醒定时器的频率 (从ROM中读取)......................................................... 149
读取 32K掉电唤醒定时器的频率 (从RAM中读取)......................................................... 151
手动设置内部IRC频率 (从ROM中读取).......................................................................... 153
手动设置内部IRC频率 (从RAM中读取).......................................................................... 154
特殊功能寄存器.................................................................................................................. 156
STC8A8K64S4A12 系列..................................................................................................... 156
STC8A4K64S2A12 系列..................................................................................................... 157
STC8F2K64S4 系列 ............................................................................................................ 158
STC8F2K64S2 系列 ............................................................................................................ 159
特殊功能寄存器列表 .......................................................................................................... 160
I/O口 .................................................................................................................................... 165
I/O口相关寄存器................................................................................................................. 165
配置I/O口............................................................................................................................. 169
I/O的结构图......................................................................................................................... 170
准双向口(弱上拉) .......................................................................................................... 170
推挽输出.............................................................................................................................. 170
高阻输入.............................................................................................................................. 170
开漏输出.............................................................................................................................. 171
特殊I/O口说明..................................................................................................................... 172
P2.0/RSTCV......................................................................................................................... 172
PWM相关I/O口 ................................................................................................................... 172
范例程序.............................................................................................................................. 173
端口模式设置 ...................................................................................................................... 173
双向口读写操作 .................................................................................................................. 174
指令系统.............................................................................................................................. 176
中断系统.............................................................................................................................. 180
STC8 系列中断源................................................................................................................ 180
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- iii -
STC8 系列技术手册
11.1.1
11.1.2
11.1.3
11.1.4
11.2
11.3
11.4
11.4.1
11.4.2
11.4.3
11.5
11.5.1
11.5.2
11.5.3
11.5.4
11.5.5
11.5.6
11.5.7
11.5.8
11.5.9
11.5.10
11.5.11
11.5.12
11.5.13
11.5.14
11.5.15
11.5.16
11.5.17
11.5.18
11.5.19
11.5.20
11.5.21
11.5.22
11.5.23
12
12.1
12.2
12.3
12.4
12.5
12.6
12.6.1
12.6.2
12.6.3
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
STC8A8K64S4A12 系列中断源......................................................................................... 181
STC8A4K64S2A12 系列中断源......................................................................................... 181
STC8F2K64S4 系列中断源 ................................................................................................ 181
STC8F2K64S2 系列中断源 ................................................................................................ 182
STC8 中断结构图................................................................................................................ 183
STC8 系列中断列表............................................................................................................ 184
中断相关寄存器 .................................................................................................................. 187
中断使能寄存器(中断允许位) ...................................................................................... 188
中断请求寄存器(中断标志位) ...................................................................................... 191
中断优先级寄存器 .............................................................................................................. 194
范例程序.............................................................................................................................. 197
INT0 中断(上升沿和下降沿) ........................................................................................ 197
INT0 中断(下降沿) ........................................................................................................ 198
INT1 中断(上升沿和下降沿) ........................................................................................ 198
INT1 中断(下降沿) ........................................................................................................ 199
INT2 中断(下降沿) ........................................................................................................ 200
INT3 中断(下降沿) ........................................................................................................ 201
INT4 中断(下降沿) ........................................................................................................ 202
定时器 0 中断 ...................................................................................................................... 203
定时器 1 中断 ...................................................................................................................... 204
定时器 2 中断 ...................................................................................................................... 205
定时器 3 中断 ...................................................................................................................... 206
定时器 4 中断 ...................................................................................................................... 207
UART1 中断 ........................................................................................................................ 208
UART2 中断 ........................................................................................................................ 210
UART3 中断 ........................................................................................................................ 212
UART4 中断 ........................................................................................................................ 213
ADC中断 ............................................................................................................................. 215
LVD中断 .............................................................................................................................. 216
PCA中断 .............................................................................................................................. 217
SPI中断 ................................................................................................................................ 219
CMP中断 ............................................................................................................................. 220
PWM中断 ............................................................................................................................ 221
I2C中断................................................................................................................................ 224
定时器/计数器..................................................................................................................... 227
定时器的相关寄存器 .......................................................................................................... 227
定时器 0/1............................................................................................................................ 229
定时器 2............................................................................................................................... 232
定时器 3/4............................................................................................................................ 233
掉电唤醒定时器 .................................................................................................................. 235
范例程序.............................................................................................................................. 236
定时器 0(模式 0-16 位自动重载) ............................................................................... 236
定时器 0(模式 1-16 位不自动重载) ........................................................................... 237
定时器 0(模式 2-8 位自动重载) ................................................................................. 238
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- iv -
STC8 系列技术手册
12.6.4
12.6.5
12.6.6
12.6.7
12.6.8
12.6.9
12.6.10
12.6.11
12.6.12
12.6.13
12.6.14
12.6.15
12.6.16
12.6.17
12.6.18
12.6.19
12.6.20
12.6.21
12.6.22
12.6.23
12.6.24
12.6.25
12.6.26
12.6.27
12.6.28
12.6.29
12.6.30
13
13.1
13.2
13.2.1
13.2.2
13.2.3
13.2.4
13.2.5
13.3
13.3.1
13.3.2
13.4
13.4.1
13.4.2
13.5
13.5.1
13.5.2
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
定时器 0(模式 3-16 位自动重载不可屏蔽中断) ....................................................... 239
定时器 0(外部计数-扩展T0 为外部下降沿中断)...................................................... 240
定时器 0(测量脉宽-INT0 高电平宽度)...................................................................... 241
定时器 0(时钟分频输出) ............................................................................................... 242
定时器 1(模式 0-16 位自动重载) ............................................................................... 242
定时器 1(模式 1-16 位不自动重载) ........................................................................... 243
定时器 1(模式 2-8 位自动重载) ................................................................................. 244
定时器 1(外部计数-扩展T1 为外部下降沿中断)...................................................... 245
定时器 1(测量脉宽-INT1 高电平宽度)...................................................................... 246
定时器 1(时钟分频输出) ............................................................................................... 248
定时器 1(模式 0)做串口 1 波特率发生器 .................................................................... 248
定时器 1(模式 2)做串口 1 波特率发生器 .................................................................... 251
定时器 2(16 位自动重载) .............................................................................................. 254
定时器 2(外部计数-扩展T2 为外部下降沿中断)...................................................... 255
定时器 2(时钟分频输出) ............................................................................................... 257
定时器 2 做串口 1 波特率发生器 ...................................................................................... 257
定时器 2 做串口 2 波特率发生器 ...................................................................................... 260
定时器 2 做串口 3 波特率发生器 ...................................................................................... 263
定时器 2 做串口 4 波特率发生器 ...................................................................................... 266
定时器 3(16 位自动重载) .............................................................................................. 269
定时器 3(外部计数-扩展T3 为外部下降沿中断)...................................................... 271
定时器 3(时钟分频输出) ............................................................................................... 272
定时器 3 做串口 3 波特率发生器 ...................................................................................... 273
定时器 4(16 位自动重载) .............................................................................................. 276
定时器 4(外部计数-扩展T4 为外部下降沿中断)...................................................... 277
定时器 4(时钟分频输出) ............................................................................................... 278
定时器 4 做串口 4 波特率发生器 ...................................................................................... 279
串口通信.............................................................................................................................. 283
串口相关寄存器 .................................................................................................................. 283
串口 1................................................................................................................................... 284
串口 1 模式 0 ....................................................................................................................... 285
串口 1 模式 1 ....................................................................................................................... 286
串口 1 模式 2 ....................................................................................................................... 289
串口 1 模式 3 ....................................................................................................................... 289
自动地址识别 ...................................................................................................................... 290
串口 2................................................................................................................................... 292
串口 2 模式 0 ....................................................................................................................... 292
串口 2 模式 1 ....................................................................................................................... 293
串口 3................................................................................................................................... 295
串口 3 模式 0 ....................................................................................................................... 295
串口 3 模式 1 ....................................................................................................................... 296
串口 4................................................................................................................................... 298
串口 4 模式 0 ....................................................................................................................... 298
串口 4 模式 1 ....................................................................................................................... 299
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-v-
STC8 系列技术手册
13.6
13.7
13.7.1
13.7.2
13.7.3
13.7.4
13.7.5
13.7.6
13.7.7
13.7.8
14
14.1
14.2
14.3
14.3.1
14.3.2
14.3.3
14.3.4
15
15.1
15.2
15.3
15.3.1
15.3.2
16
16.1
16.2
16.2.1
16.2.2
16.3
16.3.1
16.3.2
16.3.3
16.3.4
17
17.1
17.2
17.2.1
17.2.2
17.2.3
17.2.4
17.3
17.3.1
17.3.2
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
串口注意事项 ...................................................................................................................... 301
范例程序.............................................................................................................................. 302
串口 1 使用定时器 2 做波特率发生器 .............................................................................. 302
串口 1 使用定时器 1(模式 0)做波特率发生器 ............................................................ 304
串口 1 使用定时器 1(模式 2)做波特率发生器 ............................................................ 307
串口 2 使用定时器 2 做波特率发生器 .............................................................................. 310
串口 3 使用定时器 2 做波特率发生器 .............................................................................. 313
串口 3 使用定时器 3 做波特率发生器 .............................................................................. 316
串口 4 使用定时器 2 做波特率发生器 .............................................................................. 319
串口 4 使用定时器 4 做波特率发生器 .............................................................................. 322
比较器,掉电检测,内部固定比较电压 .......................................................................... 326
比较器内部结构图 .............................................................................................................. 326
比较器相关的寄存器 .......................................................................................................... 327
范例程序.............................................................................................................................. 329
比较器的使用(中断方式) .............................................................................................. 329
比较器的使用(查询方式) .............................................................................................. 330
比较器作外部掉电检测 ...................................................................................................... 332
比较器检测工作电压(电池电压) .................................................................................. 334
IAP/EEPROM .................................................................................................................... 338
EEPROM相关的寄存器...................................................................................................... 338
关于EEPROM编程和擦除等待时间的重要说明 .............................................................. 340
范例程序.............................................................................................................................. 341
EEPROM基本操作.............................................................................................................. 341
使用串口送出EEPROM数据.............................................................................................. 344
ADC模数转换 ..................................................................................................................... 348
ADC相关的寄存器.............................................................................................................. 348
ADC典型应用线路图.......................................................................................................... 350
高精度ADC应用.................................................................................................................. 350
ADC一般应用(对ADC精度要求不高的应用) ............................................................. 351
范例程序.............................................................................................................................. 352
ADC基本操作(查询方式).............................................................................................. 352
ADC基本操作(中断方式).............................................................................................. 353
格式化ADC转换结果.......................................................................................................... 354
利用ADC第 16 通道测量外部电压或电池电压................................................................ 356
PCA/CCP/PWM应用 ......................................................................................................... 359
PCA相关的寄存器 .............................................................................................................. 359
PCA工作模式 ...................................................................................................................... 363
捕获模式.............................................................................................................................. 363
软件定时器模式 .................................................................................................................. 363
高速脉冲输出模式 .............................................................................................................. 364
PWM脉宽调制模式 ............................................................................................................ 364
范例程序.............................................................................................................................. 368
PCA输出PWM(6/7/8/10 位) .......................................................................................... 368
PCA捕获测量脉冲宽度 ...................................................................................................... 370
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- vi -
STC8 系列技术手册
17.3.3
17.3.4
17.3.5
18
18.1
18.2
18.2.1
18.2.2
18.2.3
19
19.1
19.2
19.2.1
19.2.2
19.2.3
19.3
19.4
19.5
19.5.1
19.5.2
19.5.3
19.5.4
19.5.5
19.5.6
20
20.1
20.2
20.3
20.4
20.4.1
20.4.2
20.4.3
20.4.4
20.4.5
20.4.6
21
21.1
21.1.1
21.1.2
附录A
A.1
A.2
A.3
A.4
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
PCA实现 16 位软件定时 .................................................................................................... 373
PCA输出高速脉冲 .............................................................................................................. 375
PCA扩展外部中断 .............................................................................................................. 378
增强型PWM........................................................................................................................ 381
PWM相关的寄存器 ............................................................................................................ 381
范例程序.............................................................................................................................. 387
输出任意周期和任意占空比的波形 .................................................................................. 387
两路PWM实现互补对称带死区控制的波形..................................................................... 389
PWM实现渐变灯(呼吸灯)............................................................................................. 393
同步串行外设接口SPI........................................................................................................ 398
SPI相关的寄存器 ................................................................................................................ 398
SPI通信方式 ........................................................................................................................ 400
单主单从.............................................................................................................................. 400
互为主从.............................................................................................................................. 400
单主多从.............................................................................................................................. 401
配置SPI ................................................................................................................................ 402
数据模式.............................................................................................................................. 404
范例程序.............................................................................................................................. 405
SPI单主单从系统主机程序(中断方式) ........................................................................ 405
SPI单主单从系统从机程序(中断方式) ........................................................................ 406
SPI单主单从系统主机程序(查询方式) ........................................................................ 407
SPI单主单从系统从机程序(查询方式) ........................................................................ 409
SPI互为主从系统程序(中断方式) ................................................................................ 410
SPI互为主从系统程序(查询方式) ................................................................................ 412
I2C总线 ................................................................................................................................ 414
I2C相关的寄存器................................................................................................................. 414
I2C主机模式......................................................................................................................... 415
I2C从机模式......................................................................................................................... 419
范例程序.............................................................................................................................. 422
I2C主机模式访问AT24C256(中断方式) ....................................................................... 422
I2C主机模式访问AT24C256(查询方式) ....................................................................... 427
I2C主机模式访问PCF8563.................................................................................................. 432
I2C从机模式(中断方式)................................................................................................. 436
I2C从机模式(查询方式)................................................................................................. 440
测试I2C从机模式代码的主机代码..................................................................................... 443
增强型双数据指针.............................................................................................................. 448
范例程序.............................................................................................................................. 450
示例代码 1 ........................................................................................................................... 450
示例代码 2 ........................................................................................................................... 450
应用注意事项...................................................................................................................... 452
关于使用CLR指令关闭EA的重要说明 ............................................................................ 452
关于EEPROM编程和擦除等待时间的重要说明 ............................................................ 453
STC8F2K64S4 系列应用注意事项 ................................................................................... 455
STC8F2K64S2 系列应用注意事项 ................................................................................... 458
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- vii -
STC8 系列技术手册
A.5
A.6
A.7
附录B
附录C
附录D
附录E
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
STC8A8K64S4A12 系列应用注意事项 ............................................................................ 460
STC8A4K64S2A12 系列应用注意事项 ............................................................................ 464
使用外部晶振对STC8 系列进行仿真的注意事项 ........................................................... 465
STC仿真器使用指南 .......................................................................................................... 466
STC-USB驱动程序安装说明 ............................................................................................. 471
电气特性.............................................................................................................................. 516
更新记录.............................................................................................................................. 518
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- viii -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
1 概述
STC8 系列单片机是不需要外部晶振和外部复位的单片机,是以超强抗干扰/超低价/高速/低功耗为
目标的 8051 单片机,在相同的工作频率下,STC8 系列单片机比传统的 8051 约快 12 倍(速度快 11.2~13.2
倍),依次按顺序执行完全部的 111 条指令,STC8 系列单片机仅需 147 个时钟,而传统 8051 则需要
1944 个时钟。STC8 系列单片机是 STC 生产的单时钟/机器周期(1T)的单片机,是宽电压/高速/高可靠/
低功耗/强抗静电/较强抗干扰的新一代 8051 单片机,超级加密。指令代码完全兼容传统 8051。
MCU 内部集成高精度 R/C 时钟(±0.3%,常温下+25℃),-1.8%~+0.8%温飘(-40℃~+85℃) ,-1.0%~
+0.5%温飘(-20℃~+65℃)。ISP 编程时 5MHz~30MHz 宽范围可设置,可彻底省掉外部昂贵的晶振和外
部复位电路(内部已集成高可靠复位电路,ISP 编程时 4 级复位门槛电压可选)。
MCU 内部有 3 个可选时钟源:内部 24MHz 高精度 IRC 时钟(可适当调高或调低)、内部 32KHz
的低速 IRC、外部 4M~33M 晶振或外部时钟信号。用户代码中可自由选择时钟源,时钟源选定后可再
经过 8-bit 的分频器分频后再将时钟信号提供给 CPU 和各个外设(如定时器、串口、SPI 等)。
MCU 提供两种低功耗模式:IDLE 模式和 STOP 模式。IDLE 模式下,MCU 停止给 CPU 提供时钟,
CPU 无时钟,CPU 停止执行指令,但所有的外设仍处于工作状态,此时功耗约为 1.3mA(6MHz 工作
频率)。STOP 模式即为主时钟停振模式,即传统的掉电模式/停电模式/停机模式,此时 CPU 和全部外
设都停止工作,功耗可降低到 0.1uA 以下。IDLE 模式可以由外部中断(INT0/INT1/INT2/INT3/INT4)、
定时器中断(定时器 0/定时器 1/定时器 2/定时器 3/定时器 4)、串口中断(串口 1/串口 2/串口 3/串口 4)、
PCA/CCP/PWM 中断、增强型 PWM、增强型 PWM 异常检测、ADC 模数转换中断、LVD 低压检测、
SPI 中断、I2C 中断、比较器中断唤醒。
STOP 模式可以由 INT0/INT1 端口上升沿/下降沿、INT2/INT3/INT4
端口下降沿、T0/T1/T2/T3/T4 端口下降沿、RxD/RxD_2/RxD_3/RxD_4 端口下降沿、RxD2/RxD2_2 端口
下 降 沿 、 RxD2/RxD2_2 端 口 下 降 沿 、 RxD3/RxD3_2 端 口 下 降 沿 、 RxD4/RxD4_2 端 口 下 降 沿 、
CCP0/CCP0_2/CCP0_3/CCP0_4 端 口 下 降 沿 、 CCP1/CCP1_2/CCP1_3/CCP1_4 端 口 下 降 沿 、
CCP2/CCP2_2/CCP2_3/CCP2_4 端口下降沿、CCP3/CCP3_2/CCP3_3/CCP3_4 端口下降沿、LVD 低压检
测以及掉电唤醒定时器(进入掉电模式前需要先使能掉电唤醒定时器)唤醒。
MCU 提供了丰富的数字外设(4 个串口、5 个定时器、4 组 PCA、8 组增强型 PWM 以及 I2C、SPI)
接口与模拟外设(速度高达 800K 即每秒 80 万次采样的 12 位*15 路超高速 ADC、比较器),可满足广
大用户的设计需求。
数字功能可使用程序在多个管脚之间进行切换。串口 1 可以组为单位([TxD/RxD]为一组)在
[P3.0/P3.1]、[P3.6/P3.7]、[P1.6/P1.7]、[P4.3/P4.4]这 4 组之间进行任意切换;串口 2 可以组为单位
([TxD2/RxD2]为一组)在[P1.0/P1.1]、[P4.0/P4.2]这 2 组之间进行任意切换;串口 3 可以组为单位
([TxD3/RxD3]为一组)在[P0.0/P0.1]、[P5.0/P5.1]这 2 组之间进行任意切换;串口 4 可以组为单位
([TxD4/RxD4]为一组)在[P0.2/P0.3]、[P5.2/P5.3]这 2 组之间进行任意切换;PCA 可以组为单位
( [ECI/CCP0/CCP1/CCP2/CCP3] 为 一 组 ) 在 [P1.2/P1.7/P1.6/P1.5/P1.4] 、 [P2.2/P2.3/P2.4/P2.5/P2.6] 、
[P7.4/P7.0/P7.1/P7.2/P7.3]、[P3.5/P3.3/P3.2/P3.1/P3.0]这 4 组之间进行任意切换;SPI 可以组为单位
([SS/MOSI/MISO/SCLK]为一组)在[P1.2/P1.3/P1.4/P1.5]、[P2.2/P2.3/P2.4/P2.5]、[P7.4/P7.5/P7.6/P7.7]、
[P3.5/P3.4/P3.3/P3.2]这 4 组之间进行任意切换;I2C 可以组为单位([SCL/SDA]为一组)在[P1.5/P1.4]、
[P2.5/P2.4]、[P7.7/P7.6]、[P3.2/P3.3]这 4 组之间进行任意切换;增强型 PWM 的每一路均可各自独立地
在 3 个端口之间任意切换(详细切换介绍请参考第 3.3 章的功能脚切换)。
STC8 系列单片机内部集成了增强型的双数据指针。通过程序控制,可实现数据指针自动递增或递
减功能以及两组数据指针的自动切换功能。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-1-
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
产品线
UART
定时器
ADC
STC8A8K64S4A12
●
●
●
STC8A4K64S2A12
●
●
●
STC8F2K64S4
●
STC8F2K64S2
增强型
高级
PWM
PWM
技术支持: 13922829991
研发顾问: 13922805190
PCA
比较器
SPI
I2C
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
STC8H1K64S2A10
●
●
●
●
●
●
●
STC8H1K08S2A10
●
●
●
●
●
●
●
STC8H1K08S2
●
●
●
●
●
STC8H04A10
●
●
●
●
●
STC8H04
●
●
●
●
●
江苏国芯科技有限公司
●
总机: 0513-5501 2928/2929/2966
RTC
备注
传真: 0513-5501 2926/2956/2947
-2-
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
2 特性及价格
2.1 STC8A8K64S4A12 系列特性及价格
选型价格(不需要外部晶振、不需要外部复位,12 位 ADC,15 通道)
年新品供货信息
2017
STC8A8K16S4A12 2.0-5.5 16K 8K
2 48K 59
4
有
有
5
-
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是 ¥3.4
¥3.2
¥3.2
STC8A8K32S4A12 2.0-5.5 32K 8K
2 32K 59
4
有
有
5
-
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是 ¥3.6
¥3.3
¥3.3
STC8A8K60S4A12 2.0-5.5 60K 8K
2
4K 59
4
有
有
5
-
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是 ¥3.8
¥3.4
¥3.4
STC8A8K64S4A12 2.0-5.5 64K 8K
2
IAP 59
4
有
有
5
-
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是 ¥3.8
¥3.4
¥3.4
PDIP40
LQFP44
LQFP48
QFN48
LQFP64S
QFN64
直接下载
USB
本身就可在线仿真
支持
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
看门狗 复位定时器
内部低压检测中断并可掉电唤醒
内部高精准时钟( 24MHz
可调)
内部高可靠复位(可选复位门槛电压)
比较器(可当 路
,可作外部掉电检测)
1
A/D
( 路
可当 路
使用)
ADC
8 PWM
8 D/A
掉电唤醒专用定时器
路高速
15
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
位高级
定时器 互补对称死区
16
PWM
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
I2 C
SPI
串口并可掉电唤醒
口最多数量
I/O
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
字节
SRAM
万次 字节
10
工作电压( )
V
单片机型号
程序存储器
Flash
封装
各个版本芯片的使用注意事项请参考“附录 A、应用注意事项”
内核
超高速 8051 内核(1T),比传统 8051 约快 12 倍以上
指令代码完全兼容传统 8051
22 个中断源,4 级中断优先级
支持在线仿真
工作电压
2.0V~5.5V
内建 LDO
工作温度
-40℃~85℃
Flash 存储器
最大 64K 字节 FLASH 空间,用于存储用户代码
支持用户配置 EEPROM 大小,512 字节单页擦除,擦写次数可达 10 万次以上
支持在系统编程方式(ISP)更新用户应用程序,无需专用编程器
支持单芯片仿真,无需专用仿真器,理论断点个数无限制
SRAM
128 字节内部直接访问 RAM(DATA)
128 字节内部间接访问 RAM(IDATA)
8192 字节内部扩展 RAM(内部 XDATA)
外部最大可扩展 64K 字节 RAM(外部 XDATA)
时钟控制
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-3-
大
量
供
货
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
内部 24MHz 高精度 IRC(ISP 编程时可进行上下调整)
误差±0.3%(常温下 25℃)
-1.8%~+0.8%温漂(全温度范围,-40℃~85℃)
-1.0%~+0.5%温漂(温度范围,-20℃~65℃)
内部 32KHz 低速 IRC(误差较大)
外部晶振(4MHz~33MHz)和外部时钟
用户可自由选择上面的 3 种时钟源
复位
硬件复位
上电复位
复位脚复位(高电平复位),出厂时 P5.4 默认为 IO 口,ISP 下载时可将 P5.4 管脚设置为复位脚
看门狗溢出复位
低压检测复位,提供 4 级低压检测电压:2.2V、2.4V、2.7V、3.0V
软件复位
软件方式写复位触发寄存器
中断
提供 22 个中断源:INT0、INT1、INT2、INT3、INT4、定时器 0、定时器 1、定时器 2、定时器 3、定时器
4、串口 1、串口 2、串口 3、串口 4、ADC 模数转换、LVD 低压检测、SPI、I2C、比较器、PCA/CCP/PWM、
增强型 PWM、增强型 PWM 异常检测
提供 4 级中断优先级
数字外设
5 个 16 位定时器:定时器 0、定时器 1、定时器 2、定时器 3、定时器 4,其中定时器 0 的模式 3 具有 NMI
(不可屏蔽中断)功能,定时器 0 和定时器 1 的模式 0 为 16 位自动重载模式
4 个高速串口:串口 1、串口 2、串口 3、串口 4,波特率时钟源最快可为 FOSC/4
4 组 16 位 PCA 模块:CCP0、CCP1、CCP2、CCP3,可用于捕获、高速脉冲输出,及 6/7/8/10 位的 PWM
输出
8 组 15 位增强型 PWM,可实现带死区的控制信号,并支持外部异常检测功能,另外还有 4 组传统的
PCA/CCP/PWM 可作 PWM
SPI:支持主机模式和从机模式以及主机/从机自动切换
I2C:支持主机模式和从机模式
模拟外设
超高速 ADC,支持 12 位精度 15 通道的模数转换,速度最快可达 800K(即每秒可进行 80 万次模数转换)
比较器,一组比较器附近
GPIO
最多可达 59 个 GPIO:P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7、P4.0~P4.4、P5.0~P5.5、P6.0~P6.7、
P7.0~P7.7
所有的 GPIO 均支持如下 4 种模式:准双向口模式、强推挽输出模式、开漏输出模式、高阻输入模式
封装
LQFP64S、LQFP48、LQFP44、PDIP40(暂未生产)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-4-
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
2.2 STC8A4K64S2A12 系列特性及价格
选型价格(不需要外部晶振、不需要外部复位,12 位 ADC,15 通道)
年新品供货信息
2017
STC8A4K16S2A12 2.0-5.5 16K 4K
2 48K 59
2
有
有
5
-
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是 ¥3.1
¥2.9
¥2.9
STC8A4K32S2A12 2.0-5.5 32K 4K
2 32K 59
2
有
有
5
-
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是 ¥3.3
¥3.0
¥3.0
STC8A4K60S2A12 2.0-5.5 60K 4K
2
4K 59
2
有
有
5
-
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是 ¥3.6
¥3.2
¥3.2
STC8A4K64S2A12 2.0-5.5 64K 4K
2
IAP 59
2
有
有
5
-
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是 ¥3.6
¥3.2
¥3.2
PDIP40
LQFP44
LQFP48
QFN48
LQFP64S
QFN64
直接下载
USB
本身就可在线仿真
支持
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
看门狗 复位定时器
内部低压检测中断并可掉电唤醒
内部高精准时钟( 24MHz
可调)
内部高可靠复位(可选复位门槛电压)
比较器(可当 路
,可作外部掉电检测)
1
A/D
( 路
可当 路
使用)
ADC
8 PWM
8 D/A
掉电唤醒专用定时器
路高速
15
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
位高级
定时器 互补对称死区
16
PWM
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
I2 C
SPI
串口并可掉电唤醒
口最多数量
I/O
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
字节
SRAM
万次 字节
10
工作电压( )
V
单片机型号
程序存储器
Flash
封装
各个版本芯片的使用注意事项请参考“附录 A、应用注意事项”
内核
超高速 8051 内核(1T),比传统 8051 约快 12 倍以上
指令代码完全兼容传统 8051
20 个中断源,4 级中断优先级
支持在线仿真
工作电压
2.0V~5.5V
内建 LDO
工作温度
-40℃~85℃
Flash 存储器
最大 64K 字节 FLASH 空间,用于存储用户代码
支持用户配置 EEPROM 大小,512 字节单页擦除,擦写次数可达 10 万次以上
支持在系统编程方式(ISP)更新用户应用程序,无需专用编程器
支持单芯片仿真,无需专用仿真器,理论断点个数无限制
SRAM
128 字节内部直接访问 RAM(DATA)
128 字节内部间接访问 RAM(IDATA)
4096 字节内部扩展 RAM(内部 XDATA)
外部最大可扩展 64K 字节 RAM(外部 XDATA)
时钟控制
内部 24MHz 高精度 IRC(ISP 编程时可进行上下调整)
误差±0.3%(常温下 25℃)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-5-
大
量
供
货
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
-1.8%~+0.8%温漂(全温度范围,-40℃~85℃)
-1.0%~+0.5%温漂(温度范围,-20℃~65℃)
内部 32KHz 低速 IRC(误差较大)
外部晶振(4MHz~33MHz)和外部时钟
用户可自由选择上面的 3 种时钟源
复位
硬件复位
上电复位
复位脚复位(高电平复位),出厂时 P5.4 默认为 IO 口,ISP 下载时可将 P5.4 管脚设置为复位脚
看门狗溢出复位
低压检测复位,提供 4 级低压检测电压:2.2V、2.4V、2.7V、3.0V
软件复位
软件方式写复位触发寄存器
中断
提供 20 个中断源:INT0、INT1、INT2、INT3、INT4、定时器 0、定时器 1、定时器 2、定时器 3、定时器
4、串口 1、串口 2、ADC 模数转换、LVD 低压检测、SPI、I2C、比较器、PCA/CCP/PWM、增强型 PWM、
增强型 PWM 异常检测
提供 4 级中断优先级
数字外设
5 个 16 位定时器:定时器 0、定时器 1、定时器 2、定时器 3、定时器 4,其中定时器 0 的模式 3 具有 NMI
(不可屏蔽中断)功能,定时器 0 和定时器 1 的模式 0 为 16 位自动重载模式
2 个高速串口:串口 1、串口 2,波特率时钟源最快可为 FOSC/4
4 组 16 位 PCA 模块:CCP0、CCP1、CCP2、CCP3,可用于捕获、高速脉冲输出,及 6/7/8/10 位的 PWM
输出
8 组 15 位增强型 PWM,可实现带死区的控制信号,并支持外部异常检测功能,另外还有 4 组传统的
PCA/CCP/PWM 可作 PWM
SPI:支持主机模式和从机模式以及主机/从机自动切换
I2C:支持主机模式和从机模式
模拟外设
超高速 ADC,支持 12 位精度 15 通道的模数转换,速度最快可达 800K(即每秒可进行 80 万次模数转换)
比较器,一组比较器附近
GPIO
最多可达 59 个 GPIO:P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7、P4.0~P4.4、P5.0~P5.5、P6.0~P6.7、
P7.0~P7.7
所有的 GPIO 均支持如下 4 种模式:准双向口模式、强推挽输出模式、开漏输出模式、高阻输入模式
封装
LQFP64S、LQFP48、LQFP44、PDIP40(暂未生产)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-6-
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
2.3 STC8F2K64S4 系列特性及价格
选型价格(不需要外部晶振、不需要外部复位)
年新品供货信息
2017
有
5
-
-
-
有
-
有
有
有 4级 有
是
有
是
是
是
是 ¥2.7 ¥2.6
STC8F2K32S4 2.0-5.5 32K 2K
2 32K 42
4
有
有
5
-
-
-
有
-
有
有
有 4级 有
是
有
是
是
是
是 ¥2.8 ¥2.7
STC8F2K60S4 2.0-5.5 60K 2K
2
4K 42
4
有
有
5
-
-
-
有
-
有
有
有 4级 有
是
有
是
是
是
是 ¥2.9 ¥2.8
STC8F2K64S4 2.0-5.5 64K 2K
2
IAP 42
4
有
有
5
-
-
-
有
-
有
有
有 4级 有
是
有
是
是
是
是 ¥2.9 ¥2.8
SOP8
有
PDIP40
4
SOP16
2 48K 42
TSSOP20
LQFP32
LQFP44
STC8F2K16S4 2.0-5.5 16K 2K
QFN32
直接下载
USB
本身就可在线仿真
支持
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
看门狗 复位定时器
内部高精准时钟( 24MHz
可调)
内部高可靠复位(可选复位门槛电压)
内部低压检测中断并可掉电唤醒
比较器(可当 路
,可作外部掉电检测)
1 A/D
( 路
可当 路
使用)
ADC
8 PWM
8 D/A
掉电唤醒专用定时器
路高速
15
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
I2 C
位高级 PWM
定时器 互补对称死区
16
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
SPI
串口并可掉电唤醒
口最多数量
I/O
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
SRAM字节
万次 字节
10
工作电压( )
V
单片机型号
程序存储器
Flash
封装
开
始
供
货
各个版本芯片的使用注意事项请参考“附录 A、应用注意事项”
内核
超高速 8051 内核(1T),比传统 8051 约快 12 倍以上
指令代码完全兼容传统 8051
18 个中断源,4 级中断优先级
支持在线仿真
工作电压
2.0V~5.5V
内建 LDO
工作温度
-40℃~85℃
Flash 存储器
最大 64K 字节 FLASH 空间,用于存储用户代码
支持用户配置 EEPROM 大小,512 字节单页擦除,擦写次数可达 10 万次以上
支持在系统编程方式(ISP)更新应用程序,无需专用编程器
支持单芯片仿真,无需专用仿真器,理论断点个数无限制
SRAM
128 字节内部直接访问 RAM(DATA)
128 字节内部间接访问 RAM(IDATA)
2048 字节内部扩展 RAM(内部 XDATA)
外部最大可扩展 64K 字节 RAM(外部 XDATA)
时钟控制
内部 24MHz 高精度 IRC(ISP 编程时可进行上下调整)
误差±0.3%(常温下 25℃)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-7-
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
-1.8%~+0.8%温漂(全温度范围,-40℃~85℃)
-1.0%~+0.5%温漂(温度范围,-20℃~65℃)
内部 32KHz 低速 IRC(误差较大)
外部晶振(4MHz~33MHz)和外部时钟输入
用户可自由选择上面的 3 种时钟源
复位
硬件复位
上电复位
复位脚复位(高电平复位),出厂时 P5.4 默认为 IO 口,ISP 下载时可将 P5.4 管脚设置为复位脚
看门狗溢出复位
低压检测复位,提供 4 级低压检测电压:2.2V、2.4V、2.7V、3.0V
软件复位
软件方式写复位触发寄存器
中断
提供 18 个中断源:INT0、INT1、INT2、INT3、INT4、定时器 0、定时器 1、定时器 2、定时器 3、定时器
4、串口 1、串口 2、串口 3、串口 4、LVD 低压检测、PCA/CCP/PWM、SPI、I2C、比较器
提供 4 级中断优先级
数字外设
5 个 16 位定时器:定时器 0、定时器 1、定时器 2、定时器 3、定时器 4,其中定时器 0 的模式 3 具有 NMI
(不可屏蔽中断)功能,定时器 0 和定时器 1 的模式 0 为 16 位自动重载模式
4 个高速串口:串口 1、串口 2、串口 3、串口 4,波特率时钟源最快可为 FOSC/4
4 组 16 位 PCA 模块:CCP0、CCP1、CCP2、CCP3,可用于捕获、高速脉冲输出,及 6/7/8/10 位的 PWM
输出(A 版和 B 版有此功能,C 版芯片无此功能)
SPI:支持主机模式和从机模式以及主机/从机自动切换
I2C:支持主机模式和从机模式
模拟外设
比较器
GPIO
最多可达 42 个 GPIO:P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7、P4.0~P4.7、P5.4~P5.5
所有的 GPIO 均支持如下 4 种模式:准双向口模式、强推挽输出模式、开漏输出模式、高阻输入模式
封装
LQFP44、LQFP32、PDIP40
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-8-
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
2.4 STC8F2K64S2 系列特性及价格
选型价格(不需要外部晶振、不需要外部复位)
年新品供货信息
2017
2
4K 18
2
有
有
5
-
-
-
有
-
有
有
有 4级 有
是
有
是
是
是
是
STC8F2K16S2 2.0-5.5 16K 2K
2
4K 42
2
有
有
5
-
-
-
有
-
有
有
有 4级 有
是
有
是
是
是
是 ¥1.8 ¥1.6 1.65 ¥1.4 1.35
STC8F2K32S2 2.0-5.5 32K 2K
2 32K 42
2
有
有
5
-
-
-
有
-
有
有
有 4级 有
是
有
是
是
是
是 1.99 ¥1.8 1.85
STC8F2K60S2 2.0-5.5 60K 2K
2
4K 42
2
有
有
5
-
-
-
有
-
有
有
有 4级 有
是
有
是
是
是
是 ¥2.2 ¥2.0
STC8F2K64S2 2.0-5.5 64K 2K
2
IAP 42
2
有
有
5
-
-
-
有
-
有
有
有 4级 有
是
有
是
是
是
是 ¥2.2 ¥2.0
SOP8
STC8F2K08S2 2.0-5.5 8K 2K
PDIP40
SOP16
TSSOP20
LQFP32
LQFP44
QFN32
直接下载
USB
本身就可在线仿真
支持
程序加密后传输(防拦截)
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
看门狗 复位定时器
内部高精准时钟( 24MHz
可调)
内部高可靠复位(可选复位门槛电压)
内部低压检测中断并可掉电唤醒
比较器(可当 路
,可作外部掉电检测)
1 A/D
( 路
可当 路
使用)
ADC
8 PWM
8 D/A
掉电唤醒专用定时器
路高速
15
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
I2 C
位高级 PWM
定时器 互补对称死区
16
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
SPI
串口并可掉电唤醒
口最多数量
I/O
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
SRAM字节
万次 字节
10
工作电压( )
V
单片机型号
程序存储器
Flash
封装
¥1.2 1.15
大
量
供
货
各个版本芯片的使用注意事项请参考“附录 A、应用注意事项”
内核
超高速 8051 内核(1T),比传统 8051 约快 12 倍以上
指令代码完全兼容传统 8051
16 个中断源,4 级中断优先级
支持在线仿真
工作电压
2.0V~5.5V
内建 LDO
工作温度
-40℃~85℃
Flash 存储器
最大 64K 字节 FLASH 空间,用于存储用户代码
支持用户配置 EEPROM 大小,512 字节单页擦除,擦写次数可达 10 万次以上
支持在系统编程方式(ISP)更新应用程序,无需专用编程器
支持单芯片仿真,无需专用仿真器,理论断点个数无限制
SRAM
128 字节内部直接访问 RAM(DATA)
128 字节内部间接访问 RAM(IDATA)
2048 字节内部扩展 RAM(内部 XDATA)
外部最大可扩展 64K 字节 RAM(外部 XDATA)
时钟控制
内部 24MHz 高精度 IRC(ISP 编程时可进行上下调整)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-9-
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
误差±0.3%(常温下 25℃)
-1.8%~+0.8%温漂(全温度范围,-40℃~85℃)
-1.0%~+0.5%温漂(温度范围,-20℃~65℃)
内部 32KHz 低速 IRC(误差较大)
外部晶振(4MHz~33MHz)和外部时钟输入
用户可自由选择上面的 3 种时钟源
复位
硬件复位
上电复位
复位脚复位(高电平复位),出厂时 P5.4 默认为 IO 口,ISP 下载时可将 P5.4 管脚设置为复位脚
看门狗溢出复位
低压检测复位,提供 4 级低压检测电压:2.2V、2.4V、2.7V、3.0V
软件复位
软件方式写复位触发寄存器
中断
提供 16 个中断源:INT0、INT1、INT2、INT3、INT4、定时器 0、定时器 1、定时器 2、定时器 3、定时器
4、串口 1、串口 2、LVD 低压检测、SPI、I2C、比较器
提供 4 级中断优先级
数字外设
5 个 16 位定时器:定时器 0、定时器 1、定时器 2、定时器 3、定时器 4,其中定时器 0 的模式 3 具有 NMI
(不可屏蔽中断)功能,定时器 0 和定时器 1 的模式 0 为 16 位自动重载模式
2 个高速串口:串口 1、串口 2,波特率时钟源最快可为 FOSC/4
SPI:支持主机模式和从机模式以及主机/从机自动切换
I2C:支持主机模式和从机模式
模拟外设
比较器
GPIO
最多可达 42 个 GPIO:P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7、P4.0~P4.7、P5.4~P5.5
所有的 GPIO 均支持如下 4 种模式:准双向口模式、强推挽输出模式、开漏输出模式、高阻输入模式
封装
LQFP44、LQFP32、PDIP40、TSSOP20、SOP16
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 10 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
2.5 STC8F1K08S2 系列特性及价格
选型价格(不需要外部复位)
比较器(可当 路
,可作外部掉电检测)
1
A/D
( 路
可当 路
使用)
ADC
8 PWM
8 D/A
掉电唤醒专用定时器
年新品供货信息
2018
直接下载
USB
本身就可在线仿真
支持
SOP8
SOP16
TSSOP20
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
内部高精准时钟( 24MHz
可调)
内部高可靠复位(可选复位门槛电压)
看门狗 复位定时器
内部低压检测中断并可掉电唤醒
路高速
15
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
位高级
定时器 互补对称死区
16
PWM
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
I2 C
2.0-5.5 8K 1.2K 2
SPI
串口并可掉电唤醒
STC8F1K08
口最多数量
I/O
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
字节
SRAM
万次 字节
10
程序存储器
Flash
工作电压( )
V
单片机型号
STC8F1K08S2 2.0-5.5 8K 1.2K 2
封装
3K 18
2
有
有
3
-
-
-
有
有
有
有 4级 有
是
有
是
是
是
是 ¥1.15 ¥1.1
-
3K
1
有
有
3
-
-
-
有
-
有
有 4级 有
是
有
是
是
是
是
-
?
6
-
5
月
送
样
内核
超高速 8051 内核(1T),比传统 8051 约快 12 倍以上
指令代码完全兼容传统 8051
14 个中断源,4 级中断优先级
支持在线仿真
工作电压
2.0V~5.5V
内建 LDO
工作温度
-40℃~85℃
Flash 存储器
最大 11K 字节 FLASH 空间,用于存储用户代码
512 字节单页擦除,擦写次数可达 10 万次以上
支持在系统编程方式(ISP)更新应用程序,无需专用编程器
支持单芯片仿真,无需专用仿真器,理论断点个数无限制
SRAM
128 字节内部直接访问 RAM(DATA)
128 字节内部间接访问 RAM(IDATA)
1024 字节内部扩展 RAM(内部 XDATA)
时钟控制
内部 24MHz 高精度 IRC(ISP 编程时可进行上下调整)
误差±0.3%(常温下 25℃)
-1.8%~+0.8%温漂(全温度范围,-40℃~85℃)
-1.0%~+0.5%温漂(温度范围,-20℃~65℃)
内部 32KHz 低速 IRC(误差较大)
注意:此型号不可使用外部晶振作为系统时钟源
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 11 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
复位
硬件复位
上电复位
复位脚复位(高电平复位),出厂时 P5.4 默认为 IO 口,ISP 下载时可将 P5.4 管脚设置为复位脚
看门狗溢出复位
低压检测复位,提供 4 级低压检测电压:2.2V、2.4V、2.7V、3.0V
软件复位
软件方式写复位触发寄存器
中断
提供 14 个中断源:INT0、INT1、INT2、INT3、INT4、定时器 0、定时器 1、定时器 2、串口 1、串口 2、
LVD 低压检测、SPI、I2C、比较器
提供 4 级中断优先级
数字外设
3 个 16 位定时器:定时器 0、定时器 1、定时器 2,其中定时器 0 的模式 3 具有 NMI(不可屏蔽中断)功
能,定时器 0 和定时器 1 的模式 0 为 16 位自动重载模式
2 个高速串口:串口 1、串口 2,波特率时钟源最快可为 FOSC/4
SPI:支持主机模式和从机模式以及主机/从机自动切换
I2C:支持主机模式和从机模式
模拟外设
比较器
GPIO
最多可达 18 个 GPIO: P1.0~P1.7、P3.0~P3.7、P5.4~P5.5
所有的 GPIO 均支持如下 4 种模式:准双向口模式、强推挽输出模式、开漏输出模式、高阻输入模式
封装
TSSOP20、SOP16、SOP8
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 12 -
年新品供货信息
2018
直接下载
USB
本身就可在线仿真
支持
SOP16
TSSOP20
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
看门狗 复位定时器
内部高精准时钟( 35/20MHz
可调)
内部高可靠复位(可选复位门槛电压)
,可作外部掉电检测)
A/D
内部低压检测中断并可掉电唤醒
比较器(可当 路
1
路高速 ADC
15
掉电唤醒专用定时器
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
I2 C
位高级 PWM
定时器 互补对称死区
16
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
SPI
串口并可掉电唤醒
口最多数量
I/O
SRAM字节
万次 字节
10
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
程序存储器
Flash
工作电压( )
V
单片机型号
- 13 -
传真: 0513-5501 2926/2956/2947
总机: 0513-5501 2928/2929/2966
江苏国芯科技有限公司
封装
6
月
送
样
是
是
是
是
有
是
有 4级 有
有
有 10 位 有
3
3
有
有
2
4K 18
STC8C1K08S2A10 1.7-5.5 8K 1.2K 2
研发顾问: 13922805190
技术支持: 13922829991
官方网站: www.STCMCUDATA.com / www.STCMCU.com
STC8 系列技术手册
2.6 STC8C1K08S2A10 系列提前通告
选型价格(不需要外部晶振、不需要外部复位)
年新品供货信息
2018
直接下载
USB
本身就可在线仿真
支持
SOP16
TSSOP20
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
看门狗 复位定时器
内部高精准时钟( 35/20MHz
可调)
内部高可靠复位(可选复位门槛电压)
,可作外部掉电检测)
A/D
内部低压检测中断并可掉电唤醒
比较器(可当 路
1
路
9 高速 ADC
掉电唤醒专用定时器
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
I2 C
位高级 PWM
定时器 互补对称死区
16
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
SPI
串口并可掉电唤醒
口最多数量
I/O
SRAM字节
万次 字节
10
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
程序存储器
Flash
工作电压( )
V
单片机型号
- 14 -
传真: 0513-5501 2926/2956/2947
总机: 0513-5501 2928/2929/2966
江苏国芯科技有限公司
封装
8
月
送
样
是
是
是
是
有
是
有 4级 有
有
有 10 位 有
3 4组
有
有
2
4K 17
STC8P1K08S2A10 1.7-5.5 8K 1.2K 2
研发顾问: 13922805190
技术支持: 13922829991
官方网站: www.STCMCUDATA.com / www.STCMCU.com
STC8 系列技术手册
2.7 STC8P1K08S2A10 系列提前通告
选型价格(不需要外部晶振、不需要外部复位)
年新品供货信息
2018
直接下载
USB
本身就可在线仿真
支持
LQFP32
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
看门狗 复位定时器
内部高精准时钟( 35/20MHz
可调)
内部高可靠复位(可选复位门槛电压)
,可作外部掉电检测)
A/D
内部低压检测中断并可掉电唤醒
比较器(可当 路
1
路高速 ADC
12
掉电唤醒专用定时器
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
I2 C
位高级 PWM
定时器 互补对称死区
16
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
SPI
串口并可掉电唤醒
口最多数量
I/O
SRAM字节
万次 字节
10
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
程序存储器
Flash
工作电压( )
V
单片机型号
- 15 -
传真: 0513-5501 2926/2956/2947
总机: 0513-5501 2928/2929/2966
江苏国芯科技有限公司
封装
8
月
送
样
是
是
是
是
有
是
有 4级 有
有
有 10 位 有
5 4组
有
有
2
STC8P1K16S2A10 1.7-5.5 16K 1.2K 2 12K 29
研发顾问: 13922805190
技术支持: 13922829991
官方网站: www.STCMCUDATA.com / www.STCMCU.com
STC8 系列技术手册
2.8 STC8P1K16S2A10 系列提前通告
选型价格(不需要外部晶振、不需要外部复位)
年新品供货信息
2018
直接下载
USB
本身就可在线仿真
支持
LQFP48
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
看门狗 复位定时器
内部高精准时钟( 35/20MHz
可调)
内部高可靠复位(可选复位门槛电压)
,可作外部掉电检测)
A/D
内部低压检测中断并可掉电唤醒
比较器(可当 路
1
路高速 ADC
15
掉电唤醒专用定时器
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
I2 C
位高级 PWM
定时器 互补对称死区
16
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
SPI
串口并可掉电唤醒
口最多数量
I/O
SRAM字节
万次 字节
10
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
程序存储器
Flash
工作电压( )
V
单片机型号
- 16 -
传真: 0513-5501 2926/2956/2947
总机: 0513-5501 2928/2929/2966
江苏国芯科技有限公司
封装
8
月
送
样
是
是
是
是
有
是
有 4级 有
有
有 12 位 有
5 4组
有
有
4
STC8P2K32S4A12 1.7-5.5 32K 2.2K 2 32K 45
研发顾问: 13922805190
技术支持: 13922829991
官方网站: www.STCMCUDATA.com / www.STCMCU.com
STC8 系列技术手册
2.9 STC8P2K32S4A12 系列提前通告
选型价格(不需要外部晶振、不需要外部复位)
封装
年新品供货信息
2018
直接下载
USB
本身就可在线仿真
支持
SOP8
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
内部高精准时钟( 24MHz
可调)
内部高可靠复位(可选复位门槛电压)
看门狗 复位定时器
内部低压检测中断并可掉电唤醒
比较器(可当 路
,可作外部掉电检测)
1
A/D
( 路
可当 路
使用)
ADC
8 PWM
8 D/A
掉电唤醒专用定时器
路高速
15
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
位高级
定时器 互补对称死区
16
PWM
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
I2 C
SPI
串口并可掉电唤醒
口最多数量
I/O
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
字节
SRAM
万次 字节
10
程序存储器
Flash
工作电压( )
V
单片机型号
- 17 -
传真: 0513-5501 2926/2956/2947
总机: 0513-5501 2928/2929/2966
江苏国芯科技有限公司
7
月
送
样
是 ¥0.7
是
是
是
有
是
有 4级 有
有
有 10 位 有
3
有
有
1
6
3K
1
1.7-5.5 4K 256
STC8H04A10
研发顾问: 13922805190
技术支持: 13922829991
官方网站: www.STCMCUDATA.com / www.STCMCU.com
STC8 系列技术手册
2.10 STC8H04A10 系列提前通告
选型价格(不需要外部晶振、不需要外部复位)
封装
年新品供货信息
2018
直接下载
USB
本身就可在线仿真
支持
SOP8
支持 RS485
下载
可设置下次更新程序需口令
可对外输出时钟及复位
程序加密后传输(防拦截)
内部高精准时钟( 24MHz
可调)
内部高可靠复位(可选复位门槛电压)
看门狗 复位定时器
内部低压检测中断并可掉电唤醒
比较器(可当 路
,可作外部掉电检测)
1
A/D
( 路
可当 路
使用)
ADC
8 PWM
8 D/A
掉电唤醒专用定时器
路高速
15
(可当外部中断并可掉电唤醒)
PCA/CCP/PWM
位增强型 PWM
(带死区控制)
15
位高级
定时器 互补对称死区
16
PWM
定时器 计/数器( T0-T4
外部管脚也可掉电唤醒)
I2 C
SPI
串口并可掉电唤醒
口最多数量
I/O
万次 字节
EEPROM 10
强大的双 DPTR
可增可减
大容量扩展
字节
SRAM
万次 字节
10
程序存储器
Flash
工作电压( )
V
单片机型号
- 18 -
传真: 0513-5501 2926/2956/2947
总机: 0513-5501 2928/2929/2966
江苏国芯科技有限公司
1
月
送
样
是 ¥0.6
是
是
是
有
是
有 4级 有
有
有
有
3
有
有
1
6
3K
1
1.7-5.5 4K 256
STC8H04
研发顾问: 13922805190
技术支持: 13922829991
官方网站: www.STCMCUDATA.com / www.STCMCU.com
STC8 系列技术手册
2.11 STC8H04 系列提前通告
选型价格(不需要外部晶振、不需要外部复位)
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
3 管脚及说明
3.1 管脚图
STC8A8K64S4A12 系列管脚图
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
P2.5/A13/PWM5/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/PWM4/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/PWM3/MOSI_2/CCP0_2
P2.2/A10/PWM2/SS_2/ECI_2
P2.1/A9/PWM1
P4.2/RD_3/TxD2_2
P2.0/A8/PWM0/RSTSV
P7.3/CCP3_3
P7.2/CCP2_3
P7.1/CCP1_3
P7.0/CCP0_3
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP5.1/TxD3_2
P5.0/RxD3_2
3.1.1
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
STC8A8K64S4A12
LQFP64
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
P3.5/T1/T0CLKO/ECI_4/SS_4/PWMFLT
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
P6.7/PWM7_3
P6.6/PWM6_3
P6.5/PWM5_3
P6.4/PWM4_3
P4.0/WR_3/RxD2_2
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
ADC_AVcc
CAN_Rx_2/RxD4_2/P5.2
CAN_Tx_2/TxD4_2/P5.3
TxD2/PWM1_2/ADC1/P1.1
ECI/T2/SS/PWM2_2/ADC2/P1.2
T2CLKO/MOSI/PWM3_2/ADC3/P1.3
PWM0_3/P6.0
PWM1_3/P6.1
PWM2_3/P6.2
PWM3_3/P6.3
CCP3/I2CSDA/MISO/PWM4_2/ADC4/P1.4
TxD_4/RD/P4.4
CCP2/I2CSCL/SCLK/PWM5_2/ADC5/P1.5
XTALO/CCP1/MCLKO_2/PWM6_2/RxD_3/ADC6/P1.6
XTALI/CCP0/PWM7_2/TxD_3/ADC7/P1.7
ADC_AGnd
AVref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CCP3_2/PWM6/A14/P2.6
PWM7/A15/P2.7
RxD3/ADC8/AD0/P0.0
TxD3/ADC9/AD1/P0.1
CAN_Rx/RxD4/ADC10/AD2/P0.2
ECI_3/SS_3/P7.4
MOSI_3/P7.5
I2CSDA_3/MISO_3/P7.6
I2CSCL_3/SCLK_3/P7.7
RxD_4/WR/P4.3
CAN_Tx/TxD4/ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/ADC15/AD7/P0.7
RxD2/PWM0_2/ADC0/P1.0
STC
第一脚
STC
第一脚
STC
正看芯片丝印左下方小圆点处为第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
第一脚
传真: 0513-5501 2926/2956/2947
- 19 -
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
36
35
34
33
32
31
30
29
28
27
26
25
P2.5/A13/PWM5/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/PWM4/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/PWM3/MOSI_2/CCP0_2
P2.2/A10/PWM2/SS_2/ECI_2
P2.1/A9/PWM1
P4.2/RD_3/TxD2_2
P2.0/A8/PWM0/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP5.1/TxD3_2
P5.0/RxD3_2
STC8 系列技术手册
STC8A8K64S4A12
LQFP48
1
2
3
4
5
6
7
8
9
10
11
12
37
38
39
40
41
42
43
44
45
46
47
48
CAN_Rx_2/RxD4_2/P5.2
CAN_Tx_2/TxD4_2/P5.3
TxD2/PWM1_2/ADC1/P1.1
ECI/T2/SS/PWM2_2/ADC2/P1.2
T2CLKO/MOSI/PWM3_2/ADC3/P1.3
CCP3/I2CSDA/MISO/PWM4_2/ADC4/P1.4
TxD_4/RD/P4.4
CCP2/I2CSCL/SCLK/PWM5_2/ADC5/P1.5
XTALO/CCP1/MCLKO_2/PWM6_2/RxD_3/ADC6/P1.6
XTALI/CCP0/PWM7_2/TxD_3/ADC7/P1.7
ADC_AGnd
AVref
CCP3_2/PWM6/A14/P2.6
PWM7/A15/P2.7
RxD3/ADC8/AD0/P0.0
TxD3/ADC9/AD1/P0.1
CAN_Rx/RxD4/ADC10/AD2/P0.2
RxD_4/WR/P4.3
CAN_Tx/TxD4/ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/ADC15/AD7/P0.7
RxD2/PWM0_2/ADC0/P1.0
24
23
22
21
20
19
18
17
16
15
14
13
P3.5/T1/T0CLKO/ECI_4/SS_4/PWMFLT
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
P4.0/WR_3/RxD2_2
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
ADC_AVcc
STC
第一脚
STC
第一脚
STC
正看芯片丝印左下方小圆点处为第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
第一脚
传真: 0513-5501 2926/2956/2947
- 20 -
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
33
32
31
30
29
28
27
26
25
24
23
P2.5/A13/PWM5/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/PWM4/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/PWM3/MOSI_2/CCP0_2
P2.2/A10/PWM2/SS_2/ECI_2
P2.1/A9/PWM1
P4.2/RD_3/TxD2_2
P2.0/A8/PWM0/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/ECI_4/SS_4/PWMFLT
STC8 系列技术手册
34
35
36
37
38
39
40
41
42
43
44
STC8A8K64S4A12
LQFP44
22
21
20
19
18
17
16
15
14
13
12
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
P4.0/WR_3/RxD2_2
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
ADC_AVcc
RxD2/PWM0_2/ADC0/P1.0
TxD2/PWM1_2/ADC1/P1.1
ECI/T2/SS/PWM2_2/ADC2/P1.2
T2CLKO/MOSI/PWM3_2/ADC3/P1.3
CCP3/I2CSDA/MISO/PWM4_2/ADC4/P1.4
TxD_4/RD/P4.4
CCP2/I2CSCL/SCLK/PWM5_2/ADC5/P1.5
XTALO/CCP1/MCLKO_2/PWM6_2/RxD_3/ADC6/P1.6
XTALI/CCP0/PWM7_2/TxD_3/ADC7/P1.7
ADC_AGnd
AVref
1
2
3
4
5
6
7
8
9
10
11
CCP3_2/PWM6/A14/P2.6
PWM7/A15/P2.7
RxD3/ADC8/AD0/P0.0
TxD3/ADC9/AD1/P0.1
CAN_Rx/RxD4/ADC10/AD2/P0.2
RxD_4/WR/P4.3
CAN_Tx/TxD4/ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/ADC15/AD7/P0.7
正看芯片丝印左下方小圆点处为第一脚
STC
第一脚
STC
第一脚
STC
第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 21 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
江苏国芯科技有限公司
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
STC8A8K64S4A12
PDIP40
CAN_Tx/TxD4/ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/ADC15/AD7/P0.7
RxD2/PWM0_2/ADC0/P1.0
TxD2/PWM1_2/ADC1/P1.1
ECI/T2/SS/PWM2_2/ADC2/P1.2
T2CLKO/MOSI/PWM3_2/ADC3/P1.3
CCP3/I2CSDA/MISO/PWM4_2/ADC4/P1.4
CCP2/I2CSCL/SCLK/PWM5_2/ADC5/P1.5
XTALO/CCP1/MCLKO_2/PWM6_2/RxD_3/ADC6/P1.6
XTALI/CCP0/PWM7_2/TxD_3/ADC7/P1.7
ADC_AGnd
AVref
ADC_AVcc
MCLKO/RST/P5.4
Vcc
P5.5
Gnd
总机: 0513-5501 2928/2929/2966
技术支持: 13922829991
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
研发顾问: 13922805190
P0.2/AD2/ADC10/RxD4/CAN_Rx
P0.1/AD1/ADC9/TxD3
P0.0/AD0/ADC8/RxD3
P2.7/A15/PWM7
P2.6/A14/PWM6/CCP3_2
P2.5/A13/PWM5/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/PWM4/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/PWM3/MOSI_2/CCP0_2
P2.2/A10/PWM2/SS_2/ECI_2
P2.1/A9/PWM1
P2.0/A8/PWM0/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/ECI_4/SS_4/PWMFLT
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
传真: 0513-5501 2926/2956/2947
- 22 -
STC8 系列技术手册
技术支持: 13922829991
研发顾问: 13922805190
STC8A4K64S2A12 系列管脚图
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
P2.5/A13/PWM5/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/PWM4/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/PWM3/MOSI_2/CCP0_2
P2.2/A10/PWM2/SS_2/ECI_2
P2.1/A9/PWM1
P4.2/RD_3/TxD2_2
P2.0/A8/PWM0/RSTSV
P7.3/CCP3_3
P7.2/CCP2_3
P7.1/CCP1_3
P7.0/CCP0_3
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP5.1
P5.0
3.1.2
官方网站: www.STCMCUDATA.com / www.STCMCU.com
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
STC8A4K64S2A12
LQFP64
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
P3.5/T1/T0CLKO/ECI_4/SS_4/PWMFLT
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
P6.7/PWM7_3
P6.6/PWM6_3
P6.5/PWM5_3
P6.4/PWM4_3
P4.0/WR_3/RxD2_2
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
ADC_AVcc
P5.2
P5.3
TxD2/PWM1_2/ADC1/P1.1
ECI/T2/SS/PWM2_2/ADC2/P1.2
T2CLKO/MOSI/PWM3_2/ADC3/P1.3
PWM0_3/P6.0
PWM1_3/P6.1
PWM2_3/P6.2
PWM3_3/P6.3
CCP3/I2CSDA/MISO/PWM4_2/ADC4/P1.4
TxD_4/RD/P4.4
CCP2/I2CSCL/SCLK/PWM5_2/ADC5/P1.5
XTALO/CCP1/MCLKO_2/PWM6_2/RxD_3/ADC6/P1.6
XTALI/CCP0/PWM7_2/TxD_3/ADC7/P1.7
ADC_AGnd
AVref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CCP3_2/PWM6/A14/P2.6
PWM7/A15/P2.7
ADC8/AD0/P0.0
ADC9/AD1/P0.1
ADC10/AD2/P0.2
ECI_3/SS_3/P7.4
MOSI_3/P7.5
I2CSDA_3/MISO_3/P7.6
I2CSCL_3/SCLK_3/P7.7
RxD_4/WR/P4.3
ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/ADC15/AD7/P0.7
RxD2/PWM0_2/ADC0/P1.0
STC
第一脚
STC
第一脚
STC
正看芯片丝印左下方小圆点处为第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
第一脚
传真: 0513-5501 2926/2956/2947
- 23 -
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
36
35
34
33
32
31
30
29
28
27
26
25
P2.5/A13/PWM5/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/PWM4/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/PWM3/MOSI_2/CCP0_2
P2.2/A10/PWM2/SS_2/ECI_2
P2.1/A9/PWM1
P4.2/RD_3/TxD2_2
P2.0/A8/PWM0/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP5.1
P5.0
STC8 系列技术手册
37
38
39
40
41
42
43
44
45
46
47
48
STC8A4K64S2A12
LQFP48
24
23
22
21
20
19
18
17
16
15
14
13
P3.5/T1/T0CLKO/ECI_4/SS_4/PWMFLT
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
P4.0/WR_3/RxD2_2
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
ADC_AVcc
P5.2
P5.3
TxD2/PWM1_2/ADC1/P1.1
ECI/T2/SS/PWM2_2/ADC2/P1.2
T2CLKO/MOSI/PWM3_2/ADC3/P1.3
CCP3/I2CSDA/MISO/PWM4_2/ADC4/P1.4
TxD_4/RD/P4.4
CCP2/I2CSCL/SCLK/PWM5_2/ADC5/P1.5
XTALO/CCP1/MCLKO_2/PWM6_2/RxD_3/ADC6/P1.6
XTALI/CCP0/PWM7_2/TxD_3/ADC7/P1.7
ADC_AGnd
AVref
1
2
3
4
5
6
7
8
9
10
11
12
CCP3_2/PWM6/A14/P2.6
PWM7/A15/P2.7
ADC8/AD0/P0.0
ADC9/AD1/P0.1
ADC10/AD2/P0.2
RxD_4/WR/P4.3
ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/ADC15/AD7/P0.7
RxD2/PWM0_2/ADC0/P1.0
STC
第一脚
STC
第一脚
STC
正看芯片丝印左下方小圆点处为第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
第一脚
传真: 0513-5501 2926/2956/2947
- 24 -
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
33
32
31
30
29
28
27
26
25
24
23
P2.5/A13/PWM5/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/PWM4/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/PWM3/MOSI_2/CCP0_2
P2.2/A10/PWM2/SS_2/ECI_2
P2.1/A9/PWM1
P4.2/RD_3/TxD2_2
P2.0/A8/PWM0/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/ECI_4/SS_4/PWMFLT
STC8 系列技术手册
34
35
36
37
38
39
40
41
42
43
44
STC8A4K64S2A12
LQFP44
22
21
20
19
18
17
16
15
14
13
12
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
P4.0/WR_3/RxD2_2
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
ADC_AVcc
RxD2/PWM0_2/ADC0/P1.0
TxD2/PWM1_2/ADC1/P1.1
ECI/T2/SS/PWM2_2/ADC2/P1.2
T2CLKO/MOSI/PWM3_2/ADC3/P1.3
CCP3/I2CSDA/MISO/PWM4_2/ADC4/P1.4
TxD_4/RD/P4.4
CCP2/I2CSCL/SCLK/PWM5_2/ADC5/P1.5
XTALO/CCP1/MCLKO_2/PWM6_2/RxD_3/ADC6/P1.6
XTALI/CCP0/PWM7_2/TxD_3/ADC7/P1.7
ADC_AGnd
AVref
1
2
3
4
5
6
7
8
9
10
11
CCP3_2/PWM6/A14/P2.6
PWM7/A15/P2.7
ADC8/AD0/P0.0
ADC9/AD1/P0.1
ADC10/AD2/P0.2
RxD_4/WR/P4.3
ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/ADC15/AD7/P0.7
STC
第一脚
STC
第一脚
STC
正看芯片丝印左下方小圆点处为第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
第一脚
传真: 0513-5501 2926/2956/2947
- 25 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
江苏国芯科技有限公司
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
STC8A4K64S2A12
PDIP40
ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/ADC15/AD7/P0.7
RxD2/PWM0_2/ADC0/P1.0
TxD2/PWM1_2/ADC1/P1.1
ECI/T2/SS/PWM2_2/ADC2/P1.2
T2CLKO/MOSI/PWM3_2/ADC3/P1.3
CCP3/I2CSDA/MISO/PWM4_2/ADC4/P1.4
CCP2/I2CSCL/SCLK/PWM5_2/ADC5/P1.5
XTALO/CCP1/MCLKO_2/PWM6_2/RxD_3/ADC6/P1.6
XTALI/CCP0/PWM7_2/TxD_3/ADC7/P1.7
ADC_AGnd
AVref
ADC_AVcc
MCLKO/RST/P5.4
Vcc
P5.5
Gnd
总机: 0513-5501 2928/2929/2966
技术支持: 13922829991
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
研发顾问: 13922805190
P0.2/AD2/ADC10
P0.1/AD1/ADC9
P0.0/AD0/ADC8
P2.7/A15/PWM7
P2.6/A14/PWM6/CCP3_2
P2.5/A13/PWM5/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/PWM4/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/PWM3/MOSI_2/CCP0_2
P2.2/A10/PWM2/SS_2/ECI_2
P2.1/A9/PWM1
P2.0/A8/PWM0/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/ECI_4/SS_4/PWMFLT
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
传真: 0513-5501 2926/2956/2947
- 26 -
STC8 系列技术手册
技术支持: 13922829991
研发顾问: 13922805190
STC8F2K64S4 系列管脚图
33
32
31
30
29
28
27
26
25
24
23
P2.5/A13/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/MOSI_2/CCP0_2
P2.2/A10/SS_2/ECI_2
P2.1/A9
P4.2/RD_3/TxD2_2
P2.0/A8/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/ECI_4/SS_4
3.1.3
官方网站: www.STCMCUDATA.com / www.STCMCU.com
34
35
36
37
38
39
40
41
42
43
44
STC8F2K64S4
LQFP44
22
21
20
19
18
17
16
15
14
13
12
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
P4.0/WR_3/RxD2_2
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
P4.7
RxD2/P1.0
TxD2/P1.1
ECI/T2/SS/P1.2
T2CLKO/MOSI/P1.3
CCP3/I2CSDA/MISO/P1.4
TxD_4/RD/P4.4
CCP2/I2CSCL/SCLK/P1.5
XTALO/CCP1/MCLKO_2/RxD_3/P1.6
XTALI/CCP0/TxD_3/P1.7
P4.5
P4.6
1
2
3
4
5
6
7
8
9
10
11
CCP3_2/A14/P2.6
A15/P2.7
RxD3/AD0/P0.0
TxD3/AD1/P0.1
RxD4/AD2/P0.2
RxD_4/WR/P4.3
TxD4/AD3/P0.3
T3/AD4/P0.4
T3CLKO/AD5/P0.5
T4/AD6/P0.6
T4CLKO/AD7/P0.7
STC
第一脚
STC
第一脚
STC
正看芯片丝印左下方小圆点处为第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
第一脚
传真: 0513-5501 2926/2956/2947
- 27 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
江苏国芯科技有限公司
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
STC8F2K64S4
PDIP40
TxD4/AD3/P0.3
T3/AD4/P0.4
T3CLKO/AD5/P0.5
T4/AD6/P0.6
T4CLKO/AD7/P0.7
RxD2/P1.0
TxD2/P1.1
ECI/T2/SS/P1.2
T2CLKO/MOSI/P1.3
CCP3/I2CSDA/MISO/P1.4
CCP2/I2CSCL/SCLK/P1.5
XTALO/CCP1/MCLKO_2/RxD_3/P1.6
XTALI/CCP0/TxD_3/P1.7
P4.5
P4.6
P4.7
MCLKO/RST/P5.4
Vcc
P5.5
Gnd
总机: 0513-5501 2928/2929/2966
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
技术支持: 13922829991
研发顾问: 13922805190
P0.2/AD2/RxD4
P0.1/AD1/TxD3
P0.0/AD0/RxD3
P2.7/A15
P2.6/A14/CCP3_2
P2.5/A13/SCLK_2/CCP2_2/I2CSCL_2
P2.4/A12/MISO_2/CCP1_2/I2CSDA_2
P2.3/A11/MOSI_2/CCP0_2
P2.2/A10/SS_2/ECI_2
P2.1/A9
P2.0/A8/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/ECI_4/SS_4
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
传真: 0513-5501 2926/2956/2947
- 28 -
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
24
23
22
21
20
19
18
17
P2.3/MOSI_2/CCP0_2
P2.2/SS_2/ECI_2
P2.1
P2.0/RSTSV
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/ECI_4/SS_4
P3.4/T0/T1CLKO/MOSI_4/CMPO
STC8 系列技术手册
25
26
27
28
29
30
31
32
STC8F2K64S4
LQFP32
QFN32
1
2
3
4
5
6
7
8
I2CSDA_2/MISO_2/CCP1_2/P2.4
I2CSCL_2/SCLK_2/CCP2_2/P2.5
CCP3_2/P2.6
P2.7
RxD3/P0.0
TxD3/P0.1
RxD4/P0.2
TxD4/P0.3
16
15
14
13
12
11
10
9
P3.3/INT1/CCP0_4/MISO_4/I2CSDA_4
P3.2/INT0/CCP1_4/SCLK_4/I2CSCL_4
P3.1/TxD/CCP2_4
P3.0/RxD/CCP3_4/INT4
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
STC
RxD2/P1.0
TxD2/P1.1
ECI/T2/SS/P1.2
T2CLKO/MOSI/P1.3
CCP3/I2CSDA/MISO/P1.4
CCP2/I2CSCL/SCLK/P1.5
XTALO/CCP1/MCLKO_2/RxD_3/P1.6
XTALI/CCP0/TxD_3/P1.7
第一脚
正看芯片丝印左下方小圆点处为第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
STC
第一脚
STC
第一脚
传真: 0513-5501 2926/2956/2947
- 29 -
STC8 系列技术手册
技术支持: 13922829991
研发顾问: 13922805190
STC8F2K64S2 系列管脚图
33
32
31
30
29
28
27
26
25
24
23
P2.5/A13/SCLK_2/I2CSCL_2
P2.4/A12/MISO_2/I2CSDA_2
P2.3/A11/MOSI_2
P2.2/A10/SS_2
P2.1/A9
P4.2/RD_3/TxD2_2
P2.0/A8/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/SS_4
3.1.4
官方网站: www.STCMCUDATA.com / www.STCMCU.com
34
35
36
37
38
39
40
41
42
43
44
STC8F2K64S2
LQFP44
22
21
20
19
18
17
16
15
14
13
12
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/MISO_4/I2CSDA_4
P3.2/INT0/SCLK_4/I2CSCL_4
P3.1/TxD
P3.0/RxD/INT4
P4.0/WR_3/RxD2_2
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
P4.7
RxD2/P1.0
TxD2/P1.1
T2/SS/P1.2
T2CLKO/MOSI/P1.3
I2CSDA/MISO/P1.4
TxD_4/RD/P4.4
I2CSCL/SCLK/P1.5
XTALO/MCLKO_2/RxD_3/P1.6
XTALI/TxD_3/P1.7
P4.5
P4.6
1
2
3
4
5
6
7
8
9
10
11
A14/P2.6
A15/P2.7
AD0/P0.0
AD1/P0.1
AD2/P0.2
RxD_4/WR/P4.3
AD3/P0.3
T3/AD4/P0.4
T3CLKO/AD5/P0.5
T4/AD6/P0.6
T4CLKO/AD7/P0.7
STC
第一脚
STC
第一脚
STC
正看芯片丝印左下方小圆点处为第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
第一脚
传真: 0513-5501 2926/2956/2947
- 30 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
江苏国芯科技有限公司
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
STC8F2K64S2
PDIP40
AD3/P0.3
T3/AD4/P0.4
T3CLKO/AD5/P0.5
T4/AD6/P0.6
T4CLKO/AD7/P0.7
RxD2/P1.0
TxD2/P1.1
T2/SS/P1.2
T2CLKO/MOSI/P1.3
I2CSDA/MISO/P1.4
I2CSCL/SCLK/P1.5
XTALO/MCLKO_2/RxD_3/P1.6
XTALI/TxD_3/P1.7
P4.5
P4.6
P4.7
MCLKO/RST/P5.4
Vcc
P5.5
Gnd
总机: 0513-5501 2928/2929/2966
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
技术支持: 13922829991
研发顾问: 13922805190
P0.2/AD2
P0.1/AD1
P0.0/AD0
P2.7/A15
P2.6/A14
P2.5/A13/SCLK_2/I2CSCL_2
P2.4/A12/MISO_2/I2CSDA_2
P2.3/A11/MOSI_2
P2.2/A10/SS_2
P2.1/A9
P2.0/A8/RSTSV
P4.1/ALE/CMPO_2
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/SS_4
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/MISO_4/I2CSDA_4
P3.2/INT0/SCLK_4/I2CSCL_4
P3.1/TxD
P3.0/RxD/INT4
传真: 0513-5501 2926/2956/2947
- 31 -
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
24
23
22
21
20
19
18
17
P2.3/MOSI_2
P2.2/SS_2
P2.1
P2.0/RSTSV
P3.7/INT3/RD_2/TxD_2/CMP+
P3.6/INT2/WR_2/RxD_2/CMPP3.5/T1/T0CLKO/SS_4
P3.4/T0/T1CLKO/MOSI_4/CMPO
STC8 系列技术手册
25
26
27
28
29
30
31
32
STC8F2K64S2
LQFP32
QFN32
1
2
3
4
5
6
7
8
I2CSDA_2/MISO_2/P2.4
I2CSCL_2/SCLK_2/P2.5
P2.6
P2.7
P0.0
P0.1
P0.2
P0.3
16
15
14
13
12
11
10
9
P3.3/INT1/MISO_4/I2CSDA_4
P3.2/INT0/SCLK_4/I2CSCL_4
P3.1/TxD
P3.0/RxD/INT4
Gnd
P5.5
Vcc
P5.4/RST/MCLKO
STC
RxD2/P1.0
TxD2/P1.1
T2/SS/P1.2
T2CLKO/MOSI/P1.3
I2CSDA/MISO/P1.4
I2CSCL/SCLK/P1.5
XTALO/MCLKO_2/RxD_3/P1.6
XTALI/TxD_3/P1.7
第一脚
STC
第一脚
STC
正看芯片丝印左下方小圆点处为第一脚
第一脚
正看芯片丝印最下面一行最后一个字母为芯片版本号
江苏国芯科技有限公司
1
2
3
4
5
6
7
8
9
10
STC8F2K64S2
TSSOP20/SOP20
T2/SS/P1.2
T2CLKO/MOSI/P1.3
I2CSDA/MISO/P1.4
I2CSCL/SCLK/P1.5
MCLKO_2/XTALO/RxD_3/P1.6
XTALI/TxD_3/P1.7
MCLKO/RST/P5.4
Vcc
P5.5
Gnd
总机: 0513-5501 2928/2929/2966
20
19
18
17
16
15
14
13
12
11
P1.1/TxD2
P1.0 /RxD2
P3.7/CMP+/INT3/TxD_2
P3.6/INT2/RxD_2/CMPP3.5/T1/T0CLKO/SS_4
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/MISO_4/I2CSDA_4
P3.2/INT0/SCLK_4/I2CSCL_4
P3.1/TxD
P3.0/RxD/INT4
传真: 0513-5501 2926/2956/2947
- 32 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
江苏国芯科技有限公司
1
2
3
4
5
6
7
8
STC8F2K64S2
SOP16
RxD2/P1.0
TxD2/P1.1
MCLKO_2/XTALO/RxD_3/P1.6
XTALI/TxD_3/P1.7
MCLKO/RST/P5.4
Vcc
P5.5
Gnd
总机: 0513-5501 2928/2929/2966
16
15
14
13
12
11
10
9
技术支持: 13922829991
研发顾问: 13922805190
P3.7/CMP+/INT3/TxD_2
P3.6/INT2/RxD_2/CMPP3.5/T1/T0CLKO/SS_4
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/MISO_4/I2CSDA_4
P3.2/INT0/SCLK_4/I2CSCL_4
P3.1/TxD
P3.0/RxD/INT4
传真: 0513-5501 2926/2956/2947
- 33 -
STC8 系列技术手册
3.1.5
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
STC8F1K08S2 系列管脚图
1
2
3
4
5
6
7
8
MCLKO/RST/P5.4
Vcc
P5.5
Gnd
1
2
3
4
江苏国芯科技有限公司
P1.1/TxD2
P1.0 /RxD2
P3.7/INT3/TxD_2/CMP+
P3.6/INT2/RxD_2/CMPP3.5/T1/T0CLKO/SS_4
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/MISO_4/I2CSDA_4
P3.2/INT0/SCLK_4/I2CSCL_4
P3.1/TxD
P3.0/RxD/INT4
16
15
14
13
12
11
10
9
P3.7/INT3/TxD_2/CMP+
P3.6/INT2/RxD_2/CMPP3.5/T1/T0CLKO/SS_4
P3.4/T0/T1CLKO/MOSI_4/CMPO
P3.3/INT1/MISO_4/I2CSDA_4
P3.2/INT0/SCLK_4/I2CSCL_4
P3.1/TxD
P3.0/RxD/INT4
SOP8
TxD2/P1.1
RxD2/P1.0
MCLKO_2/RxD_3/P1.6
TxD_3/P1.7
MCLKO/RST/P5.4
Vcc
P5.5
Gnd
20
19
18
17
16
15
14
13
12
11
SOP16
注意:P1.0和P1.1
两个管脚的排列与
STC8F2K系列不一样
1
2
3
4
5
6
7
8
9
10
TSSOP20/SOP20
T2/SS/P1.2
T2CLKO/MOSI/P1.3
I2CSDA/MISO/P1.4
I2CSCL/SCLK/P1.5
MCLKO_2/RxD_3/P1.6
TxD_3/P1.7
MCLKO/RST/P5.4
Vcc
P5.5
Gnd
8
7
6
5
总机: 0513-5501 2928/2929/2966
P3.3/INT1/MISO_4/I2CSDA_4
P3.2/INT0/SCLK_4/I2CSCL_4
P3.1/TxD
P3.0/RxD/INT4
传真: 0513-5501 2926/2956/2947
- 34 -
STC8 系列技术手册
3.1.6
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
STC8C1K08S2A10 系列管脚图
TxD2/CCP0/ADC1/P1.1
RxD2/CCP1/ADC0/P1.0
MCLKO_2/RxD_3/ADC6/P1.6
TxD_3/ADC7/P1.7
I2CSDA_2/MCLKO/RST/P5.4
Vcc/ADC_AVcc
I2CSCL_2/P5.5
Gnd/ADC_AGnd
1
2
3
4
5
6
7
8
江苏国芯科技有限公司
SOP16
1
2
3
4
5
6
7
8
9
10
TSSOP20/SOP20
ECI/SS/ADC2/P1.2
MOSI/ADC3/P1.3
I2CSDA/MISO/ADC4/P1.4
I2CSCL/SCLK/ADC5/P1.5
MCLKO_2/RxD_3/ADC6/P1.6
TxD_3/ADC7/P1.7
I2CSDA_2/MCLKO/RST/P5.4
Vcc/ADC_AVcc
I2CSCL_2/P5.5
Gnd/ADC_AGnd
20
19
18
17
16
15
14
13
12
11
P1.1/ADC1/TxD2/CCP0
P1.0/ADC0/RxD2/CCP1
P3.7/INT3/TxD_2/CCP2_2/CCP2/CMP+
P3.6/ADC14/INT2/RxD_2/CCP1_2/CMPP3.5/ADC13/T1/T0CLKO/CCP0_2
P3.4/ADC12/T0/T1CLKO/ECI_2/CMPO
P3.3/ADC11/INT1/SCLK_2
P3.2/ADC10/INT0/MISO_2
P3.1/ADC9/TxD/T2/MOSI_2
P3.0/ADC8/RxD/T2CLKO/INT4/SS_2
16
15
14
13
12
11
10
9
P3.7/INT3/TxD_2/CCP2/CCP2_2CMP+
P3.6/ADC14/INT2/RxD_2/CCP1_2/CMPP3.5/ADC13/T1/T0CLKO/CCP0_2
P3.4/ADC12/T0/T1CLKO/ECI_2/CMPO
P3.3/ADC11/INT1/SCLK_2
P3.2/ADC10/INT0/MISO_2
P3.1/ADC9/TxD/T2/MOSI_2
P3.0/ADC8/RxD/T2CLKO/INT4/SS_2
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 35 -
STC8 系列技术手册
3.1.7
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
GX8S003 系列管脚图
客户需求的特殊管脚封装
江苏国芯科技有限公司
1
2
3
4
5
6
7
8
9
10
TSSOP20/SOP20
BEEP/PWM7/CCP1_3/ADC3/P1.3
CMP-/TxD/ADC4/P1.4
CMP+/RxD/ADC5/P1.5
ECI/RST/P5.4
RxD_3/INT2/XTALI/ADC6/P1.6
TxD_3/INT3/XTALO/ADC7/P1.7
Gnd
ICPSDA/I2CSDA_2/TxD_2/P5.5
Vcc
SPI_SS/PWM5_2/CCP2_3/T2CLKO/ADC8/P3.0
20
19
18
17
16
15
14
13
12
11
总机: 0513-5501 2928/2929/2966
P1.2/ADC2/PWM6/CCP0_3/TxD2/ADC_ETR
P1.1/ADC1/PWM5/CCP2_2/RxD2
P1.0/ADC0/RxD_2/I2CSCL_2/ICPSCL/INT4
P3.7/SPI_MISO/PWM4/CCP1_2
P3.6/ADC14/SPI_MOSI/PWM3/CCP0_2
P3.5/ADC13/T1/T0CLKO/SPI_SCLK/PWM2/CCP2
P3.4/ADC12/T0/T1CLKO/PWM1/CCP1/MCLKO/CMPO
P3.3/ADC11/PWM0/CCP0/INT1
P3.2/ADC10/I2CSCL/ADC_ETR_2/INT0
P3.1/ADC9/T2/I2CSDA/PWMFLT/PWM1_2
传真: 0513-5501 2926/2956/2947
- 36 -
STC8 系列技术手册
3.1.8
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
STC8P1K08S2A10 系列管脚图
江苏国芯科技有限公司
1
2
3
4
5
6
7
8
9
10
TSSOP20
T2/SS/PWM2P/P1.2
T2CLKO/MOSI/PWM2N/P1.3
I2CSDA/MISO/PWM3P/P1.4
I2CSCL/SCLK/PWM3N/P1.5
MCLKO_2/XTALO/RxD_3/PWM4P/P1.6
XTALI/TxD_3/PWM5_2/PWM4N/P1.7
MCLKO/PWM6_2/RST/P5.4
Vcc/ADC_AVcc
ADC_Vref+
Gnd/ADC_AGnd/ADC_Vref-
20
19
18
17
16
15
14
13
12
11
P1.1/ADC1/TxD2/PWM1N
P1.0/ADC0/RxD2/PWM1P
P3.7/INT3/TxD_2/CMP+
P3.6/ADC14/INT2/RxD_2/CMPP3.5/ADC13/T1/T0CLKO/SS_4/PWMFLT
P3.4/ADC12/T0/T1CLKO/MOSI_4/CMPO/PWM4P_2/PWM8_2
P3.3/ADC11/INT1/MISO_4/I2CSDA_4/PWM4N_2/PWM7_2
P3.2/ADC10/INT0/SCLK_4/I2CSCL_4/PWMETI/PWMETI2
P3.1/ADC9/TxD
P3.0/ADC8/RxD/INT4
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 37 -
STC8 系列技术手册
技术支持: 13922829991
研发顾问: 13922805190
STC8P1K16S2A10 系列管脚图
24
23
22
21
20
19
18
17
P2.3/MOSI_2/PWM2N_2/PWM8
P2.2/SS_2/PWM2P_2/PWM7
P2.1/PWM1N_2/PWM6
P2.0/PWM1P_2/PWM5
P3.7/INT3/TxD_2/CMP+
P3.6/INT2/RxD_2/CMPP3.5/T1/T0CLKO/SS_4/PWMFLT
P3.4/T0/T1CLKO/MOSI_4/PWM4P_4/PWM8_2/CMPO
3.1.9
官方网站: www.STCMCUDATA.com / www.STCMCU.com
LQFP32
QFN32
1
2
3
4
5
6
7
8
25
26
27
28
29
30
31
32
16
15
14
13
12
11
10
9
P3.3/INT1/MISO_4/I2CSDA_4/PWM4N_4/PWM7_2
P3.2/INT0/SCLK_4/I2CSCL_4/PWMETI/PWMETI2
P3.1/TxD
P3.0/RxD/INT4
Gnd/ADC_AGnd/ADC_VrefADC_Vref+
Vcc/ADC_AVcc
P5.4/RST/MCLKO/PWM6_2
RxD2/PWM1P/ADC0/P1.0
TxD2/PWM1N/ADC1/P1.1
T2/SS/PWM2P/ADC2/P1.2
T2CLKO/MOSI/PWM2N/ADC3/P1.3
I2CSDA/MISO/PWM3P/ADC4/P1.4
I2CSCL/SCLK/PWM3N/ADC5/P1.5
XTALO/MCLKO_2/RxD_3/PWM4P/ADC6/P1.6
XTALI/TxD_3/PWM5_2/PWM4N/ADC7/P1.7
PWM3P_2/I2CSDA_2/MISO_2/P2.4
PWM3N_2/I2CSCL_2/SCLK_2/P2.5
PWM4P_2/P2.6
PWM4N_2/P2.7
T3/RxD3/PWM5_3/ADC8/P0.0
T3CLKO/TxD3/PWM6_3/ADC9/P0.1
T4/RxD4/PWM7_3/ADC10/P0.2
T4CLKO/TxD4PWM8_3//ADC11/P0.3
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 38 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
36
35
34
33
32
31
30
29
28
27
26
25
P2.3/A11/PWM2N_2/PWM8/MOSI_2
P2.2/A10/PWM2P_2/PWM7/SS_2
P2.1/A9/PWM1N_2/PWM6
P2.0/A8/PWM1P_2/PWM5
P4.4/RD/TxD_4
P4.3/RxD_4/SCLK_3
P4.2/WR
P4.1/MISO_3/CMPO_2/PWMETI_2
P3.7/INT3/TxD_2/CMP+
P3.6/INT2/RxD_2/CMPP3.5/T1/T0CLKO/SS_4/PWMFLT
P5.1/RxD3_2
3.1.10 STC8P2K32S4A12 系列管脚图
LQFP48
QFN48
1
2
3
4
5
6
7
8
9
10
11
12
37
38
39
40
41
42
43
44
45
46
47
48
24
23
22
21
20
19
18
17
16
15
14
13
P5.0/RxD3_2
P3.4/T0/T1CLKO/MOSI_4/PWM4P_4/PWM8_2/CMPO
P3.3/INT1/MISO_4/I2CSDA_4/PWM4N_4/PWM7_2
P3.2/INT0/SCLK_4/I2CSCL_4/PWMETI/PWMETI2
P3.1/TxD
P3.0/RxD/INT4
P4.0/MOSI_3
Gnd/ADC_AGnd/ADC_VrefADC_Vref+
Vcc/ADC_AVcc
P5.4/RST/MCLKO/PWM6_2/SS_3
P1.7/ADC7/PWM4N/PWM5_2/TxD_3/XTALI
TxD4_2/P5.3
T3CLKO/AD5/ADC13/P0.5
PWMETI2_2/T4/AD6/ADC14/P0.6
T4CLKO/AD7/P0.7
RxD2/PWM1P/ADC0/P1.0
TxD2/PWM1N/ADC1/P1.1
TxD2_2/P4.7
T2/SS/PWM2P/ADC2/P1.2
T2CLKO/MOSI/PWM2N/ADC3/P1.3
I2CSDA/MISO/PWM3P/ADC4/P1.4
I2CSCL/SCLK/PWM3N/ADC5/P1.5
MCLKO_2/XTALO/RxD_3/PWM4P/ADC6/P1.6
MISO_2/I2CSDA_2/PWM3P_2/A12/P2.4
SCLK_2/I2CSCL_2/PWM3N_2/A13/P2.5
PWM4P_2/A14/P2.6
PWM4N_2/A15/P2.7
ALE/P4.5
RxD2_2/P4.6
PWM5_3/RxD3/AD0/ADC8/P0.0
PWM6_3/TxD3/AD1/ADC9/P0.1
PWM7_3/RxD4/AD2/ADC10/P0.2
PWM8_3/TxD4/AD3/ADC11/P0.3
T3/AD4/ADC12/P0.4
RxD4_2/P5.2
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 39 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
3.2 管脚说明
3.2.1
STC8A8K64S4A12 系列管脚说明
编号
LQFP64S
LQFP48
1
1
2
2
3
4
5
3
4
5
6
7
8
9
江苏国芯科技有限公司
LQFP44
2
3
4
名称
类
型
P5.2
I/O
RxD4_2
I
P5.3
I/O
TxD4_2
O
P1.1
I/O
ADC1
I
ADC 模拟输入通道 1
PWM1_2
O
增强 PWM 通道 1 输出脚
TxD2
O
串口 2 的发送脚
P1.2
I/O
ADC2
I
ADC 模拟输入通道 2
PWM2_2
O
增强 PWM 通道 2 输出脚
SS
I/O
T2
I
定时器 2 外部时钟输入
ECI
I
PCA 的外部脉冲输入
P1.3
I/O
ADC3
I
ADC 模拟输入通道 3
PWM3_2
O
增强 PWM 通道 3 输出脚
MOSI
I/O
SPI 主机输出从机输入
T2CLKO
O
定时器 2 时钟分频输出
P6.0
I/O
标准 IO 口
PWM0_3
O
P6.1
I/O
PWM1_3
O
P6.2
I/O
PWM2_3
O
P6.3
I/O
PWM3_3
O
PDIP40
7
8
9
总机: 0513-5501 2928/2929/2966
说明
标准 IO 口
串口 4 的接收脚
标准 IO 口
串口 4 的发送脚
标准 IO 口
标准 IO 口
SPI 从机选择
标准 IO 口
增强 PWM 通道 0 输出脚
标准 IO 口
增强 PWM 通道 1 输出脚
标准 IO 口
增强 PWM 通道 2 输出脚
标准 IO 口
增强 PWM 通道 3 输出脚
传真: 0513-5501 2926/2956/2947
- 40 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
10
11
12
13
14
LQFP48
6
7
8
9
10
LQFP44
5
8
9
名称
类型
说明
P1.4
I/O
ADC4
I
ADC 模拟输入通道 4
10
PWM4_2
O
增强 PWM 通道 4 输出脚
MISO
I/O
SPI 主机输入从机输出
SDA
I/O
I2C 接口的数据线
CCP3
I/O
PCA 的捕获输入和脉冲输出
P4.4
I/O
标准 IO 口
RD
O
外部总线的读信号线
TxD_4
O
串口 1 的发送脚
P1.5
I/O
ADC5
I
ADC 模拟输入通道 5
11
PWM5_2
O
增强 PWM 通道 5 输出脚
SCLK
I/O
SPI 的时钟脚
SCL
I/O
I2C 的时钟线
CCP2
I/O
PCA 的捕获输入和脉冲输出
P1.6
I/O
标准 IO 口
ADC6
I
ADC 模拟输入通道 6
RxD_3
I
串口 1 的接收脚
12
PWM6_2
O
增强 PWM 通道 6 输出脚
MCLKO_2
O
主时钟分频输出
CCP1
I/O
XTALO
O
P1.7
I/O
ADC7
I
ADC 模拟输入通道 7
13
TxD_3
O
串口 1 的发送脚
PWM7_2
O
增强 PWM 通道 7 输出脚
CCP0
I/O
PCA 的捕获输入和脉冲输出
XTALI
I
外部晶振/外部时钟的输入脚
标准 IO 口
标准 IO 口
PCA 的捕获输入和脉冲输出
外部晶振的输出脚
标准 IO 口
15
11
10
14
ADC_AGnd
GND
16
12
11
15
AVref
I
17
13
12
16
ADC_AVcc
VCC
P5.4
I/O
标准 IO 口
RST
I
复位引脚
MCLKO
O
主时钟分频输出
18
14
13
17
19
15
14
18
Vcc
VCC
20
16
15
19
P5.5
I/O
21
17
16
20
Gnd
GND
江苏国芯科技有限公司
研发顾问: 13922805190
PDIP40
6
7
技术支持: 13922829991
总机: 0513-5501 2928/2929/2966
ADC 地线
ADC 的参考电压脚
ADC 电源脚
电源脚
标准 IO 口
地线
传真: 0513-5501 2926/2956/2947
- 41 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
22
LQFP48
18
LQFP44
17
24
25
26
28
29
30
31
19
20
21
22
23
江苏国芯科技有限公司
18
19
20
21
22
研发顾问: 13922805190
名称
类型
说明
P4.0
I/O
WR_3
O
外部总线的写信号线
RxD2_2
I
串口 2 的接收脚
P6.4
I/O
PWM4_3
O
P6.5
I/O
PWM5_3
O
P6.6
I/O
PWM6_3
O
P6.7
I/O
PWM7_3
O
P3.0
I/O
RxD
I
CCP3_4
I/O
INT4
I
外部中断 4
P3.1
I/O
标准 IO 口
TxD
O
CCP2_4
I/O
PCA 的捕获输入和脉冲输出
P3.2
I/O
标准 IO 口
INT0
I
外部中断 0
CCP1_4
I/O
PCA 的捕获输入和脉冲输出
SCLK_4
I/O
SPI 的时钟脚
SCL_4
I/O
I2C 的时钟线
P3.3
I/O
标准 IO 口
INT1
I
外部中断 1
CCP0_4
I/O
PCA 的捕获输入和脉冲输出
MISO_4
I/O
SPI 主机输入从机输出
SDA_4
I/O
I2C 接口的数据线
P3.4
I/O
标准 IO 口
T0
I
定时器 0 外部时钟输入
T1CLKO
O
定时器 1 时钟分频输出
MOSI_4
I/O
SPI 主机输出从机输入
CMPO
O
PDIP40
23
27
技术支持: 13922829991
21
22
23
24
25
总机: 0513-5501 2928/2929/2966
标准 IO 口
标准 IO 口
增强 PWM 通道 4 输出脚
标准 IO 口
增强 PWM 通道 5 输出脚
标准 IO 口
增强 PWM 通道 6 输出脚
标准 IO 口
增强 PWM 通道 7 输出脚
标准 IO 口
串口 1 的接收脚
PCA 的捕获输入和脉冲输出
串口 1 的发送脚
比较器输出
传真: 0513-5501 2926/2956/2947
- 42 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
32
LQFP48
24
33
25
34
26
35
36
37
27
28
29
LQFP44
23
24
25
26
26
27
28
29
39
40
41
43
30
31
江苏国芯科技有限公司
27
28
研发顾问: 13922805190
名称
类型
说明
P3.5
I/O
T1
I
定时器 1 外部时钟输入
T0CLKO
O
定时器 0 时钟分频输出
ECI_4
I
PCA 的外部脉冲输入
SS_4
I
SPI 的从机选择脚(主机为输出)
PWMFLT
I
增强 PWM 的外部异常检测脚
P5.0
I/O
RxD3_2
I
P5.1
I/O
TxD3_2
O
P3.6
I/O
标准 IO 口
INT2
I
外部中断 2
WR_2
O
外部总线的写信号线
RxD_2
I
串口 1 的接收脚
CMP-
I
比较器负极输入
P3.7
I/O
标准 IO 口
INT3
I
外部中断 3
RD_2
O
外部总线的读信号线
TxD_2
O
串口 1 的发送脚
CMP+
I
比较器正极输入
P4.1
I/O
ALE
O
地址锁存信号
CMPO_2
O
比较器输出
P7.0
I/O
标准 IO 口
CCP0_3
I/O
PCA 的捕获输入和脉冲输出
P7.1
I/O
标准 IO 口
CCP1_3
I/O
PCA 的捕获输入和脉冲输出
P7.2
I/O
标准 IO 口
CCP2_3
I/O
PCA 的捕获输入和脉冲输出
P7.3
I/O
标准 IO 口
CCP3_3
I/O
PCA 的捕获输入和脉冲输出
P2.0
I/O
标准 IO 口
A8
I
地址总线
PWM0
O
增强 PWM 通道 0 输出脚
RSTSV
-
端口的初始电平可 ISP 下载时配置
P4.2
I/O
RD_3
O
外部总线的读信号线
TxD2_2
O
串口 2 的发送脚
PDIP40
38
42
技术支持: 13922829991
30
总机: 0513-5501 2928/2929/2966
标准 IO 口
标准 IO 口
串口 3 的接收脚
标准 IO 口
串口 3 的发送脚
标准 IO 口
标准 IO 口
传真: 0513-5501 2926/2956/2947
- 43 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
44
45
46
47
48
49
50
51
LQFP48
32
33
34
35
36
37
38
39
江苏国芯科技有限公司
LQFP44
29
30
31
32
33
34
35
36
技术支持: 13922829991
研发顾问: 13922805190
名称
类型
说明
P2.1
I/O
标准 IO 口
A9
I
地址总线
PWM1
O
增强 PWM 通道 1 输出脚
P2.2
I/O
标准 IO 口
A10
I
地址总线
PWM2
O
增强 PWM 通道 2 输出脚
SS_2
I
SPI 的从机选择脚(主机为输出)
ECI_2
I
PCA 的外部脉冲输入
P2.3
I/O
标准 IO 口
A11
I
地址总线
PWM3
O
增强 PWM 通道 3 输出脚
MOSI_2
I/O
SPI 主机输出从机输入
CCP0_2
I/O
PCA 的捕获输入和脉冲输出
P2.4
I/O
标准 IO 口
A12
I
地址总线
PWM4
O
增强 PWM 通道 4 输出脚
MISO_2
I/O
SPI 主机输入从机输出
SDA_2
I/O
I2C 接口的数据线
CCP1_2
I/O
PCA 的捕获输入和脉冲输出
P2.5
I/O
标准 IO 口
A13
I
地址总线
PWM5
O
增强 PWM 通道 5 输出脚
SCLK_2
I/O
SPI 的时钟脚
SCL_2
I/O
I2C 的时钟线
CCP2_2
I/O
PCA 的捕获输入和脉冲输出
P2.6
I/O
标准 IO 口
A14
I
地址总线
PWM6
O
增强 PWM 通道 6 输出脚
CCP3_2
I/O
PCA 的捕获输入和脉冲输出
P2.7
I/O
标准 IO 口
A15
I
地址总线
PWM7
O
增强 PWM 通道 7 输出脚
P0.0
I/O
标准 IO 口
AD0
I
地址总线
ADC8
I
ADC 模拟输入通道 8
RxD3
I
串口 3 的接收脚
PDIP40
31
32
33
34
35
36
37
38
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 44 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
52
53
LQFP48
40
41
LQFP44
37
38
39
40
55
56
57
59
60
42
43
44
江苏国芯科技有限公司
39
40
41
研发顾问: 13922805190
名称
类型
说明
P0.1
I/O
标准 IO 口
AD1
I
地址总线
ADC9
I
ADC 模拟输入通道 9
TxD3
O
串口 3 的发送脚
P0.2
I/O
标准 IO 口
AD2
I
地址总线
ADC10
I
ADC 模拟输入通道 10
RxD4
I
串口 4 的接收脚
P7.4
I/O
SS_3
I
SPI 的从机选择脚(主机为输出)
ECI_3
I
PCA 的外部脉冲输入
P7.5
I/O
标准 IO 口
MOSI_3
I/O
SPI 主机输出从机输入
P7.6
I/O
标准 IO 口
MISO_3
I/O
SPI 主机输入从机输出
SDA_3
I/O
I2C 接口的数据线
P7.7
I/O
标准 IO 口
SCLK_3
I/O
SPI 的时钟脚
SCL_3
I/O
I2C 的时钟线
P4.3
I/O
标准 IO 口
WR
O
外部总线的写信号线
RxD_4
I
串口 1 的接收脚
P0.3
I/O
标准 IO 口
AD3
I
地址总线
ADC11
I
ADC 模拟输入通道 11
TxD4
O
串口 4 的发送脚
P0.4
I/O
标准 IO 口
AD4
I
地址总线
ADC12
I
ADC 模拟输入通道 12
T3
I
定时器 3 外部时钟输入
PDIP40
54
58
技术支持: 13922829991
1
2
总机: 0513-5501 2928/2929/2966
标准 IO 口
传真: 0513-5501 2926/2956/2947
- 45 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
61
62
63
64
LQFP48
45
46
47
48
江苏国芯科技有限公司
LQFP44
42
43
44
1
技术支持: 13922829991
研发顾问: 13922805190
名称
类型
说明
P0.5
I/O
标准 IO 口
AD5
I
地址总线
ADC13
I
ADC 模拟输入通道 13
T3CLKO
O
定时器 3 时钟分频输出
P0.6
I/O
标准 IO 口
AD6
I
地址总线
ADC14
I
ADC 模拟输入通道 14
T4
I
定时器 4 外部时钟输入
P0.7
I/O
标准 IO 口
AD7
I
地址总线
T4CLKO
O
定时器 4 时钟分频输出
P1.0
I/O
标准 IO 口
ADC0
I
ADC 模拟输入通道 0
PWM0_2
O
增强 PWM 通道 0 输出脚
RxD2
I
串口 2 的接收脚
PDIP40
3
4
5
6
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 46 -
STC8 系列技术手册
3.2.2
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
STC8A4K64S2A12 系列管脚说明
编号
类
型
1
1
P5.2
I/O
标准 IO 口
2
2
P5.3
I/O
标准 IO 口
P1.1
I/O
标准 IO 口
ADC1
I
ADC 模拟输入通道 1
PWM1_2
O
增强 PWM 通道 1 输出脚
TxD2
O
串口 2 的发送脚
P1.2
I/O
ADC2
I
ADC 模拟输入通道 2
PWM2_2
O
增强 PWM 通道 2 输出脚
SS
I/O
T2
I
定时器 2 外部时钟输入
ECI
I
PCA 的外部脉冲输入
P1.3
I/O
ADC3
I
ADC 模拟输入通道 3
PWM3_2
O
增强 PWM 通道 3 输出脚
MOSI
I/O
SPI 主机输出从机输入
T2CLKO
O
定时器 2 时钟分频输出
P6.0
I/O
标准 IO 口
PWM0_3
O
P6.1
I/O
PWM1_3
O
P6.2
I/O
PWM2_3
O
P6.3
I/O
PWM3_3
O
4
5
4
5
6
7
8
9
江苏国芯科技有限公司
2
3
4
PDIP40
说明
LQFP48
3
LQFP44
名称
LQFP64S
3
研发顾问: 13922805190
7
8
9
总机: 0513-5501 2928/2929/2966
标准 IO 口
SPI 从机选择
标准 IO 口
增强 PWM 通道 0 输出脚
标准 IO 口
增强 PWM 通道 1 输出脚
标准 IO 口
增强 PWM 通道 2 输出脚
标准 IO 口
增强 PWM 通道 3 输出脚
传真: 0513-5501 2926/2956/2947
- 47 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
10
11
12
13
14
LQFP48
6
7
8
9
10
LQFP44
5
8
9
名称
类型
说明
P1.4
I/O
ADC4
I
ADC 模拟输入通道 4
10
PWM4_2
O
增强 PWM 通道 4 输出脚
MISO
I/O
SPI 主机输入从机输出
SDA
I/O
I2C 接口的数据线
CCP3
I/O
PCA 的捕获输入和脉冲输出
P4.4
I/O
标准 IO 口
RD
O
外部总线的读信号线
TxD_4
O
串口 1 的发送脚
P1.5
I/O
ADC5
I
ADC 模拟输入通道 5
11
PWM5_2
O
增强 PWM 通道 5 输出脚
SCLK
I/O
SPI 的时钟脚
SCL
I/O
I2C 的时钟线
CCP2
I/O
PCA 的捕获输入和脉冲输出
P1.6
I/O
标准 IO 口
ADC6
I
ADC 模拟输入通道 6
RxD_3
I
串口 1 的接收脚
12
PWM6_2
O
增强 PWM 通道 6 输出脚
MCLKO_2
O
主时钟分频输出
CCP1
I/O
XTALO
O
P1.7
I/O
ADC7
I
ADC 模拟输入通道 7
13
TxD_3
O
串口 1 的发送脚
PWM7_2
O
增强 PWM 通道 7 输出脚
CCP0
I/O
PCA 的捕获输入和脉冲输出
XTALI
I
外部晶振/外部时钟的输入脚
标准 IO 口
标准 IO 口
PCA 的捕获输入和脉冲输出
外部晶振的输出脚
标准 IO 口
15
11
10
14
ADC_AGnd
GND
16
12
11
15
AVref
I
17
13
12
16
ADC_AVcc
VCC
P5.4
I/O
标准 IO 口
RST
I
复位引脚
MCLKO
O
主时钟分频输出
18
14
13
17
19
15
14
18
Vcc
VCC
20
16
15
19
P5.5
I/O
21
17
16
20
Gnd
GND
江苏国芯科技有限公司
研发顾问: 13922805190
PDIP40
6
7
技术支持: 13922829991
总机: 0513-5501 2928/2929/2966
ADC 地线
ADC 的参考电压脚
ADC 电源脚
电源脚
标准 IO 口
地线
传真: 0513-5501 2926/2956/2947
- 48 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
22
LQFP48
18
LQFP44
17
24
25
26
28
29
30
31
19
20
21
22
23
江苏国芯科技有限公司
18
19
20
21
22
研发顾问: 13922805190
名称
类型
说明
P4.0
I/O
WR_3
O
外部总线的写信号线
RxD2_2
I
串口 2 的接收脚
P6.4
I/O
PWM4_3
O
P6.5
I/O
PWM5_3
O
P6.6
I/O
PWM6_3
O
P6.7
I/O
PWM7_3
O
P3.0
I/O
RxD
I
CCP3_4
I/O
INT4
I
外部中断 4
P3.1
I/O
标准 IO 口
TxD
O
CCP2_4
I/O
PCA 的捕获输入和脉冲输出
P3.2
I/O
标准 IO 口
INT0
I
外部中断 0
CCP1_4
I/O
PCA 的捕获输入和脉冲输出
SCLK_4
I/O
SPI 的时钟脚
SCL_4
I/O
I2C 的时钟线
P3.3
I/O
标准 IO 口
INT1
I
外部中断 1
CCP0_4
I/O
PCA 的捕获输入和脉冲输出
MISO_4
I/O
SPI 主机输入从机输出
SDA_4
I/O
I2C 接口的数据线
P3.4
I/O
标准 IO 口
T0
I
定时器 0 外部时钟输入
T1CLKO
O
定时器 1 时钟分频输出
MOSI_4
I/O
SPI 主机输出从机输入
CMPO
O
PDIP40
23
27
技术支持: 13922829991
21
22
23
24
25
总机: 0513-5501 2928/2929/2966
标准 IO 口
标准 IO 口
增强 PWM 通道 4 输出脚
标准 IO 口
增强 PWM 通道 5 输出脚
标准 IO 口
增强 PWM 通道 6 输出脚
标准 IO 口
增强 PWM 通道 7 输出脚
标准 IO 口
串口 1 的接收脚
PCA 的捕获输入和脉冲输出
串口 1 的发送脚
比较器输出
传真: 0513-5501 2926/2956/2947
- 49 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
32
LQFP48
24
LQFP44
23
技术支持: 13922829991
研发顾问: 13922805190
名称
类型
说明
P3.5
I/O
T1
I
定时器 1 外部时钟输入
T0CLKO
O
定时器 0 时钟分频输出
ECI_4
I
PCA 的外部脉冲输入
SS_4
I
SPI 的从机选择脚(主机为输出)
PWMFLT
I
增强 PWM 的外部异常检测脚
PDIP40
26
标准 IO 口
33
25
P5.0
I/O
标准 IO 口
34
26
P5.1
I/O
标准 IO 口
P3.6
I/O
标准 IO 口
INT2
I
外部中断 2
WR_2
O
外部总线的写信号线
RxD_2
I
串口 1 的接收脚
CMP-
I
比较器负极输入
P3.7
I/O
标准 IO 口
INT3
I
外部中断 3
RD_2
O
外部总线的读信号线
TxD_2
O
串口 1 的发送脚
CMP+
I
比较器正极输入
P4.1
I/O
ALE
O
地址锁存信号
CMPO_2
O
比较器输出
P7.0
I/O
标准 IO 口
CCP0_3
I/O
PCA 的捕获输入和脉冲输出
P7.1
I/O
标准 IO 口
CCP1_3
I/O
PCA 的捕获输入和脉冲输出
P7.2
I/O
标准 IO 口
CCP2_3
I/O
PCA 的捕获输入和脉冲输出
P7.3
I/O
标准 IO 口
CCP3_3
I/O
PCA 的捕获输入和脉冲输出
P2.0
I/O
标准 IO 口
A8
I
地址总线
PWM0
O
增强 PWM 通道 0 输出脚
RSTSV
-
端口的初始电平可 ISP 下载时配置
P4.2
I/O
RD_3
O
外部总线的读信号线
TxD2_2
O
串口 2 的发送脚
35
36
37
27
28
29
24
25
26
27
28
29
38
39
40
41
42
43
30
31
江苏国芯科技有限公司
27
28
30
总机: 0513-5501 2928/2929/2966
标准 IO 口
标准 IO 口
传真: 0513-5501 2926/2956/2947
- 50 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
44
45
46
47
48
49
50
51
LQFP48
32
33
34
35
36
37
38
39
江苏国芯科技有限公司
LQFP44
29
30
31
32
33
34
35
36
技术支持: 13922829991
研发顾问: 13922805190
名称
类型
说明
P2.1
I/O
标准 IO 口
A9
I
地址总线
PWM1
O
增强 PWM 通道 1 输出脚
P2.2
I/O
标准 IO 口
A10
I
地址总线
PWM2
O
增强 PWM 通道 2 输出脚
SS_2
I
SPI 的从机选择脚(主机为输出)
ECI_2
I
PCA 的外部脉冲输入
P2.3
I/O
标准 IO 口
A11
I
地址总线
PWM3
O
增强 PWM 通道 3 输出脚
MOSI_2
I/O
SPI 主机输出从机输入
CCP0_2
I/O
PCA 的捕获输入和脉冲输出
P2.4
I/O
标准 IO 口
A12
I
地址总线
PWM4
O
增强 PWM 通道 4 输出脚
MISO_2
I/O
SPI 主机输入从机输出
SDA_2
I/O
I2C 接口的数据线
CCP1_2
I/O
PCA 的捕获输入和脉冲输出
P2.5
I/O
标准 IO 口
A13
I
地址总线
PWM5
O
增强 PWM 通道 5 输出脚
SCLK_2
I/O
SPI 的时钟脚
SCL_2
I/O
I2C 的时钟线
CCP2_2
I/O
PCA 的捕获输入和脉冲输出
P2.6
I/O
标准 IO 口
A14
I
地址总线
PWM6
O
增强 PWM 通道 6 输出脚
CCP3_2
I/O
PCA 的捕获输入和脉冲输出
P2.7
I/O
标准 IO 口
A15
I
地址总线
PWM7
O
增强 PWM 通道 7 输出脚
P0.0
I/O
标准 IO 口
AD0
I
地址总线
ADC8
I
ADC 模拟输入通道 8
PDIP40
31
32
33
34
35
36
37
38
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 51 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
52
53
LQFP48
40
41
LQFP44
37
38
39
40
55
56
57
59
60
42
43
44
江苏国芯科技有限公司
39
40
41
研发顾问: 13922805190
名称
类型
说明
P0.1
I/O
标准 IO 口
AD1
I
地址总线
ADC9
I
ADC 模拟输入通道 9
P0.2
I/O
标准 IO 口
AD2
I
地址总线
ADC10
I
ADC 模拟输入通道 10
P7.4
I/O
SS_3
I
SPI 的从机选择脚(主机为输出)
ECI_3
I
PCA 的外部脉冲输入
P7.5
I/O
标准 IO 口
MOSI_3
I/O
SPI 主机输出从机输入
P7.6
I/O
标准 IO 口
MISO_3
I/O
SPI 主机输入从机输出
SDA_3
I/O
I2C 接口的数据线
P7.7
I/O
标准 IO 口
SCLK_3
I/O
SPI 的时钟脚
SCL_3
I/O
I2C 的时钟线
P4.3
I/O
标准 IO 口
WR
O
外部总线的写信号线
RxD_4
I
串口 1 的接收脚
P0.3
I/O
标准 IO 口
AD3
I
地址总线
ADC11
I
ADC 模拟输入通道 11
P0.4
I/O
标准 IO 口
AD4
I
地址总线
ADC12
I
ADC 模拟输入通道 12
T3
I
定时器 3 外部时钟输入
PDIP40
54
58
技术支持: 13922829991
1
2
总机: 0513-5501 2928/2929/2966
标准 IO 口
传真: 0513-5501 2926/2956/2947
- 52 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP64S
61
62
63
64
LQFP48
45
46
47
48
江苏国芯科技有限公司
LQFP44
42
43
44
1
技术支持: 13922829991
研发顾问: 13922805190
名称
类型
说明
P0.5
I/O
标准 IO 口
AD5
I
地址总线
ADC13
I
ADC 模拟输入通道 13
T3CLKO
O
定时器 3 时钟分频输出
P0.6
I/O
标准 IO 口
AD6
I
地址总线
ADC14
I
ADC 模拟输入通道 14
T4
I
定时器 4 外部时钟输入
P0.7
I/O
标准 IO 口
AD7
I
地址总线
T4CLKO
O
定时器 4 时钟分频输出
P1.0
I/O
标准 IO 口
ADC0
I
ADC 模拟输入通道 0
PWM0_2
O
增强 PWM 通道 0 输出脚
RxD2
I
串口 2 的接收脚
PDIP40
3
4
5
6
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 53 -
STC8 系列技术手册
3.2.3
官方网站: www.STCMCUDATA.com / www.STCMCU.com
LQFP44
PDIP40
LQFP32
2
7
2
4
5
8
9
10
3
4
5
6
7
8
9
11
12
13
6
7
8
名称
类型
说明
P1.1
I/O
TxD2
O
P1.2
I/O
SS
I
SPI 的从机选择脚(主机为输出)
T2
I
定时器 2 外部时钟输入
P1.3
I/O
标准 IO 口
MOSI
I/O
SPI 主机输出从机输入
T2CLKO
O
定时器 2 时钟分频输出
P1.4
I/O
标准 IO 口
MISO
I/O
SPI 主机输入从机输出
SDA
I/O
I2C 接口的数据线
P4.4
I/O
标准 IO 口
RD
O
外部总线的读信号线
TxD_4
O
串口 1 的发送脚
P1.5
I/O
标准 IO 口
SCLK
I/O
SPI 的时钟脚
SCL
I/O
I2C 的时钟线
P1.6
I/O
标准 IO 口
RxD_3
I
串口 1 的接收脚
XTALO
O
外部晶振的输出脚
MCLKO_2
O
主时钟分频输出
P1.7
I/O
TxD_3
O
串口 1 的发送脚
XTALI
I
外部晶振/外部时钟的输入脚
标准 IO 口
串口 2 的发送脚
标准 IO 口
标准 IO 口
10
14
P4.5
I/O
标准 IO 口
11
15
P4.6
I/O
标准 IO 口
12
16
P4.7
I/O
标准 IO 口
P5.4
I/O
标准 IO 口
13
17
RST
I
复位引脚
MCLKO
O
主时钟分频输出
Vcc
VCC
14
研发顾问: 13922805190
STC8F2K64S4 系列管脚说明
编号
3
技术支持: 13922829991
18
江苏国芯科技有限公司
9
10
总机: 0513-5501 2928/2929/2966
电源脚
传真: 0513-5501 2926/2956/2947
- 54 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
类型
11
P5.5
I/O
12
Gnd
GND
P4.0
I/O
WR_3
O
外部总线的写信号线
RxD2_2
I
串口 2 的接收脚
P3.0
I/O
RxD
I
串口 1 的接收脚
INT4
I
外部中断 4
P3.1
I/O
标准 IO 口
TxD
O
P3.2
I/O
标准 IO 口
INT0
I
外部中断 0
SCL_4
I/O
I2C 的时钟线
SCLK_4
I/O
SPI 的时钟脚
P3.3
I/O
标准 IO 口
INT1
I
外部中断 1
SDA_4
I/O
I2C 接口的数据线
MISO_4
I/O
SPI 主机输入从机输出
P3.4
I/O
标准 IO 口
T0
I
定时器 0 外部时钟输入
T1CLKO
O
定时器 1 时钟分频输出
MOSI_4
I/O
SPI 主机输出从机输入
CMPO
O
比较器输出
P3.5
I/O
标准 IO 口
T1
I
定时器 1 外部时钟输入
T0CLKO
O
定时器 0 时钟分频输出
SS_4
I
SPI 的从机选择脚(主机为输出)
P3.6
I/O
标准 IO 口
INT2
I
外部中断 2
WR_2
O
外部总线的写信号线
RxD_2
I
串口 1 的接收脚
CMP-
I
比较器负极输入
PDIP40
LQFP32
15
19
16
20
17
19
20
21
22
23
24
21
22
23
24
25
26
27
江苏国芯科技有限公司
研发顾问: 13922805190
名称
LQFP44
18
技术支持: 13922829991
13
14
15
16
17
18
19
说明
标准 IO 口
地线
标准 IO 口
标准 IO 口
串口 1 的发送脚
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 55 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP44
25
26
27
PDIP40
28
LQFP32
20
29
30
21
28
29
30
31
32
33
31
32
33
34
35
22
23
24
25
26
34
36
27
35
37
28
江苏国芯科技有限公司
技术支持: 13922829991
研发顾问: 13922805190
名称
类型
说明
P3.7
I/O
标准 IO 口
INT3
I
外部中断 3
RD_2
O
外部总线的读信号线
TxD_2
O
串口 1 的发送脚
CMP+
I
比较器正极输入
P4.1
I/O
ALE
O
地址锁存信号
CMPO_2
O
比较器输出
P2.0
I/O
标准 IO 口
A8
I
地址总线
RSTSV
-
端口的初始电平可 ISP 下载时配置
P4.2
I/O
RD_3
O
外部总线的读信号线
TxD2_2
O
串口 2 的发送脚
P2.1
I/O
标准 IO 口
A9
I
地址总线
P2.2
I/O
标准 IO 口
A10
I
地址总线
SS_2
I
SPI 的从机选择脚(主机为输出)
P2.3
I/O
标准 IO 口
A11
I
地址总线
MOSI_2
I/O
SPI 主机输出从机输入
P2.4
I/O
标准 IO 口
A12
I
地址总线
MISO_2
I/O
SPI 主机输入从机输出
SDA_2
I/O
I2C 接口的数据线
P2.5
I/O
标准 IO 口
A13
I
地址总线
SCLK_2
I/O
SPI 的时钟脚
SCL_2
I/O
I2C 的时钟线
P2.6
I/O
标准 IO 口
A14
I
地址总线
P2.7
I/O
标准 IO 口
A15
I
地址总线
标准 IO 口
标准 IO 口
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 56 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP44
36
37
38
PDIP40
38
39
40
LQFP32
29
30
31
39
40
41
42
43
44
1
1
32
2
3
4
5
6
江苏国芯科技有限公司
1
技术支持: 13922829991
名称
类型
P0.0
I/O
标准 IO 口
AD0
I
地址总线
RxD3
I
串口 3 的接收脚
P0.1
I/O
标准 IO 口
AD1
I
地址总线
TxD3
O
串口 3 的发送脚
P0.2
I/O
标准 IO 口
AD2
I
地址总线
RxD4
I
串口 4 的接收脚
P4.3
I/O
WR
O
外部总线的写信号线
RxD_4
I
串口 1 的接收脚
P0.3
I/O
标准 IO 口
AD3
I
地址总线
TxD4
O
串口 4 的发送脚
P0.4
I/O
标准 IO 口
AD4
I
地址总线
T3
I
定时器 3 外部时钟输入
P0.5
I/O
标准 IO 口
AD5
I
地址总线
T3CLKO
O
定时器 3 时钟分频输出
P0.6
I/O
标准 IO 口
AD6
I
地址总线
T4
I
定时器 4 外部时钟输入
P0.7
I/O
标准 IO 口
AD7
I
地址总线
T4CLKO
O
定时器 4 时钟分频输出
P1.0
I/O
RxD2
I
研发顾问: 13922805190
说明
标准 IO 口
标准 IO 口
串口 2 的接收脚
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 57 -
STC8 系列技术手册
3.2.4
官方网站: www.STCMCUDATA.com / www.STCMCU.com
LQFP44
PDIP40
LQFP32
2
7
2
4
5
8
9
10
3
4
5
6
7
8
9
11
12
13
6
7
8
名称
类型
说明
P1.1
I/O
TxD2
O
P1.2
I/O
SS
I
SPI 的从机选择脚(主机为输出)
T2
I
定时器 2 外部时钟输入
P1.3
I/O
标准 IO 口
MOSI
I/O
SPI 主机输出从机输入
T2CLKO
O
定时器 2 时钟分频输出
P1.4
I/O
标准 IO 口
MISO
I/O
SPI 主机输入从机输出
SDA
I/O
I2C 接口的数据线
P4.4
I/O
标准 IO 口
RD
O
外部总线的读信号线
TxD_4
O
串口 1 的发送脚
P1.5
I/O
标准 IO 口
SCLK
I/O
SPI 的时钟脚
SCL
I/O
I2C 的时钟线
P1.6
I/O
标准 IO 口
RxD_3
I
串口 1 的接收脚
XTALO
O
外部晶振的输出脚
MCLKO_2
O
主时钟分频输出
P1.7
I/O
TxD_3
O
串口 1 的发送脚
XTALI
I
外部晶振/外部时钟的输入脚
标准 IO 口
串口 2 的发送脚
标准 IO 口
标准 IO 口
10
14
P4.5
I/O
标准 IO 口
11
15
P4.6
I/O
标准 IO 口
12
16
P4.7
I/O
标准 IO 口
P5.4
I/O
标准 IO 口
13
17
RST
I
复位引脚
MCLKO
O
主时钟分频输出
Vcc
VCC
14
研发顾问: 13922805190
STC8F2K64S2 系列管脚说明
编号
3
技术支持: 13922829991
18
江苏国芯科技有限公司
9
10
总机: 0513-5501 2928/2929/2966
电源脚
传真: 0513-5501 2926/2956/2947
- 58 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
类型
11
P5.5
I/O
12
Gnd
GND
P4.0
I/O
WR_3
O
外部总线的写信号线
RxD2_2
I
串口 2 的接收脚
P3.0
I/O
RxD
I
串口 1 的接收脚
INT4
I
外部中断 4
P3.1
I/O
标准 IO 口
TxD
O
P3.2
I/O
标准 IO 口
INT0
I
外部中断 0
SCL_4
I/O
I2C 的时钟线
SCLK_4
I/O
SPI 的时钟脚
P3.3
I/O
标准 IO 口
INT1
I
外部中断 1
SDA_4
I/O
I2C 接口的数据线
MISO_4
I/O
SPI 主机输入从机输出
P3.4
I/O
标准 IO 口
T0
I
定时器 0 外部时钟输入
T1CLKO
O
定时器 1 时钟分频输出
MOSI_4
I/O
SPI 主机输出从机输入
CMPO
O
比较器输出
P3.5
I/O
标准 IO 口
T1
I
定时器 1 外部时钟输入
T0CLKO
O
定时器 0 时钟分频输出
SS_4
I
SPI 的从机选择脚(主机为输出)
P3.6
I/O
标准 IO 口
INT2
I
外部中断 2
WR_2
O
外部总线的写信号线
RxD_2
I
串口 1 的接收脚
CMP-
I
比较器负极输入
PDIP40
LQFP32
15
19
16
20
17
19
20
21
22
23
24
21
22
23
24
25
26
27
江苏国芯科技有限公司
研发顾问: 13922805190
名称
LQFP44
18
技术支持: 13922829991
13
14
15
16
17
18
19
说明
标准 IO 口
地线
标准 IO 口
标准 IO 口
串口 1 的发送脚
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 59 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP44
25
26
27
PDIP40
28
LQFP32
20
29
30
21
28
29
30
31
32
33
31
32
33
34
35
22
23
24
25
26
34
36
27
35
37
28
江苏国芯科技有限公司
技术支持: 13922829991
研发顾问: 13922805190
名称
类型
说明
P3.7
I/O
标准 IO 口
INT3
I
外部中断 3
RD_2
O
外部总线的读信号线
TxD_2
O
串口 1 的发送脚
CMP+
I
比较器正极输入
P4.1
I/O
ALE
O
地址锁存信号
CMPO_2
O
比较器输出
P2.0
I/O
标准 IO 口
A8
I
地址总线
RSTSV
-
端口的初始电平可 ISP 下载时配置
P4.2
I/O
RD_3
O
外部总线的读信号线
TxD2_2
O
串口 2 的发送脚
P2.1
I/O
标准 IO 口
A9
I
地址总线
P2.2
I/O
标准 IO 口
A10
I
地址总线
SS_2
I
SPI 的从机选择脚(主机为输出)
P2.3
I/O
标准 IO 口
A11
I
地址总线
MOSI_2
I/O
SPI 主机输出从机输入
P2.4
I/O
标准 IO 口
A12
I
地址总线
MISO_2
I/O
SPI 主机输入从机输出
SDA_2
I/O
I2C 接口的数据线
P2.5
I/O
标准 IO 口
A13
I
地址总线
SCLK_2
I/O
SPI 的时钟脚
SCL_2
I/O
I2C 的时钟线
P2.6
I/O
标准 IO 口
A14
I
地址总线
P2.7
I/O
标准 IO 口
A15
I
地址总线
标准 IO 口
标准 IO 口
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 60 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
编号
LQFP44
PDIP40
LQFP32
36
38
29
37
39
30
38
40
31
39
40
41
42
43
44
1
1
32
2
3
4
5
6
江苏国芯科技有限公司
1
技术支持: 13922829991
名称
类型
P0.0
I/O
标准 IO 口
AD0
I
地址总线
P0.1
I/O
标准 IO 口
AD1
I
地址总线
P0.2
I/O
标准 IO 口
AD2
I
地址总线
P4.3
I/O
标准 IO 口
WR
O
P0.3
I/O
标准 IO 口
AD3
I
地址总线
P0.4
I/O
标准 IO 口
AD4
I
地址总线
T3
I
定时器 3 外部时钟输入
P0.5
I/O
标准 IO 口
AD5
I
地址总线
T3CLKO
O
定时器 3 时钟分频输出
P0.6
I/O
标准 IO 口
AD6
I
地址总线
T4
I
定时器 4 外部时钟输入
P0.7
I/O
标准 IO 口
AD7
I
地址总线
T4CLKO
O
定时器 4 时钟分频输出
P1.0
I/O
RxD2
I
研发顾问: 13922805190
说明
外部总线的写信号线
标准 IO 口
串口 2 的接收脚
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 61 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
3.3 功能脚切换
STC8 系列单片机的特殊外设串口 1、串口 2、串口 3、串口 4、SPI、PCA、PWM、I2C 以及总线控
制脚可以在多个 I/O 直接进行切换,以实现一个外设当作多个设备进行分时复用。
3.3.1
功能脚切换相关寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
BUS_SPEED
总线速度控制寄存器
A1H
RW_S[1:0]
P_SW1
外设端口切换寄存器 1
A2H
S1_S[1:0]
P_SW2
外设端口切换寄存器 2
BAH
符号
描述
地址
EAXFR
B5
B4
B3
CCP_S[1:0]
CAN_S
B2
CMPO_S
B0
SPEED[1:0]
00xx,xx00
0
-
nn00,000x
S4_S
S3_S
S2_S
0x00,0000
B2
B1
SPI_S[1:0]
I2C_S[1:0]
B1
位地址与符号
复位值
B7
B6
B5
B4
B3
B0
PWM0CR
PWM0 控制寄存器
FF04H
ENC0O
C0INI
-
C0_S[1:0]
EC0I
EC0T2SI EC0T1SI 00x0,0000
PWM1CR
PWM1 控制寄存器
FF14H
ENC1O
C1INI
-
C1_S[1:0]
EC1I
EC1T2SI EC1T1SI 00x0,0000
PWM2CR
PWM2 控制寄存器
FF24H
ENC2O
C2INI
-
C2_S[1:0]
EC2I
EC2T2SI EC2T1SI 00x0,0000
PWM3CR
PWM3 控制寄存器
FF34H
ENC3O
C3INI
-
C3_S[1:0]
EC3I
EC3T2SI EC3T1SI 00x0,0000
PWM4CR
PWM4 控制寄存器
FF44H
ENC4O
C4INI
-
C4_S[1:0]
EC4I
EC4T2SI EC4T1SI 00x0,0000
PWM5CR
PWM5 控制寄存器
FF54H
ENC5O
C5INI
-
C5_S[1:0]
EC5I
EC5T2SI EC5T1SI 00x0,0000
PWM6CR
PWM6 控制寄存器
FF64H
ENC6O
C6INI
-
C6_S[1:0]
EC6I
EC6T2SI EC6T1SI 00x0,0000
PWM7CR
PWM7 控制寄存器
FF74H
ENC7O
C7INI
-
C7_S[1:0]
EC7I
EC7T2SI EC7T1SI 00x0,0000
CKSEL
时钟选择寄存器
FE00H
MCLKODIV[3:0]
MCLKO_S
-
MCKSEL[1:0]
B2
B1
0000,0000
总线速度控制寄存器
符号
地址
BUS_SPEED
A1H
B7
B6
B5
B4
B3
RW_S[1:0]
B0
SPEED[1:0]
RW_S[1:0]:外部总线 RD/WR 控制线选择位
RW_S[1:0]
RD
WR
00
P4.4
P4.3
01
P3.7
P3.6
10
P4.2
P4.0
11
保留
外设端口切换控制寄存器 1
符号
地址
P_SW1
A2H
B7
B6
S1_S[1:0]
B5
B4
CCP_S[1:0]
B3
SPI_S[1:0]
B2
B1
B0
0
-
S1_S[1:0]:串口 1 功能脚选择位
S1_S[1:0]
RxD
TxD
00
P3.0
P3.1
01
P3.6
P3.7
10
P1.6
P1.7
11
P4.3
P4.4
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 62 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
CCP_S[1:0]:PCA 功能脚选择位
CCP_S[1:0]
ECI
CCP0
CCP1
CCP2
CCP3
00
P1.2
P1.7
P1.6
P1.5
P1.4
01
P2.2
P2.3
P2.4
P2.5
P2.6
10
P7.4
P7.0
P7.1
P7.2
P7.3
11
P3.5
P3.3
P3.2
P3.1
P3.0
SPI_S[1:0]:SPI 功能脚选择位
SPI_S[1:0]
SS
MOSI
MISO
SCLK
00
P1.2
P1.3
P1.4
P1.5
01
P2.2
P2.3
P2.4
P2.5
10
P7.4
P7.5
P7.6
P7.7
11
P3.5
P3.4
P3.3
P3.2
外设端口切换控制寄存器 2
符号
P_SW2
地址
B7
B6
BAH
EAXFR
CAN_S
B5
B4
I2C_S[1:0]
B3
B2
B1
B0
CMPO_S
S4_S
S3_S
S2_S
B3
B2
B1
B0
MCLKO_S
-
2
I2C_S[1:0]:I C 功能脚选择位
I2C_S[1:0]
SCL
SDA
00
P1.5
P1.4
01
P2.5
P2.4
10
P7.7
P7.6
11
P3.2
P3.3
CMPO_S:比较器输出脚选择位
CMPO_S
CMPO
0
P3.4
1
P4.1
S4_S:串口 4 功能脚选择位
S4_S
RxD4
TxD4
0
P0.2
P0.3
1
P5.2
P5.3
S3_S:串口 3 功能脚选择位
S3_S
RxD3
TxD3
0
P0.0
P0.1
1
P5.0
P5.1
S2_S:串口 2 功能脚选择位
S2_S
RxD2
TxD2
0
P1.0
P1.1
1
P4.0
P4.2
时钟选择寄存器
符号
地址
CKSEL
FE00H
江苏国芯科技有限公司
B7
B6
B5
B4
MCLKODIV[3:0]
总机: 0513-5501 2928/2929/2966
MCKSEL[1:0]
传真: 0513-5501 2926/2956/2947
- 63 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
MCLKO_S:主时钟输出脚选择位
MCLKO_S
MCLKO
0
P5.4
1
P1.6
增强型 PWM 控制寄存器
符号
地址
B7
B6
B5
PWM0CR
FF04H
ENC0O
C0INI
-
PWM1CR
FF14H
ENC1O
C1INI
PWM2CR
FF24H
ENC2O
PWM3CR
FF34H
PWM4CR
B4
B3
B2
B1
B0
C0_S[1:0]
EC0I
EC0T2SI
EC0T1SI
-
C1_S[1:0]
EC1I
EC1T2SI
EC1T1SI
C2INI
-
C2_S[1:0]
EC2I
EC2T2SI
EC2T1SI
ENC3O
C3INI
-
C3_S[1:0]
EC3I
EC3T2SI
EC3T1SI
FF44H
ENC4O
C4INI
-
C4_S[1:0]
EC4I
EC4T2SI
EC4T1SI
PWM5CR
FF54H
ENC5O
C5INI
-
C5_S[1:0]
EC5I
EC5T2SI
EC5T1SI
PWM6CR
FF64H
ENC6O
C6INI
-
C6_S[1:0]
EC6I
EC6T2SI
EC6T1SI
PWM7CR
FF74H
ENC7O
C7INI
-
C7_S[1:0]
EC7I
EC7T2SI
EC7T1SI
C0_S[1:0]:增强型 PWM 通道 0 输出脚选择位
C0_S[1:0]
PWM0
00
P2.0
01
P1.0
10
P6.0
11
保留
C1_S[1:0]:增强型 PWM 通道 1 输出脚选择位
C1_S[1:0]
PWM1
00
P2.1
01
P1.1
10
P6.1
11
保留
C2_S[1:0]:增强型 PWM 通道 2 输出脚选择位
C2_S[1:0]
PWM2
00
P2.2
01
P1.2
10
P6.2
11
保留
C3_S[1:0]:增强型 PWM 通道 3 输出脚选择位
C3_S[1:0]
PWM3
00
P2.3
01
P1.3
10
P6.3
11
保留
C4_S[1:0]:增强型 PWM 通道 4 输出脚选择位
C4_S[1:0]
PWM4
00
P2.4
01
P1.4
10
P6.4
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 64 -
STC8 系列技术手册
11
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
保留
C5_S[1:0]:增强型 PWM 通道 5 输出脚选择位
C5_S[1:0]
PWM5
00
P2.5
01
P1.5
10
P6.5
11
保留
C6_S[1:0]:增强型 PWM 通道 6 输出脚选择位
C6_S[1:0]
PWM6
00
P2.6
01
P1.6
10
P6.6
11
保留
C7_S[1:0]:增强型 PWM 通道 7 输出脚选择位
C7_S[1:0]
PWM7
00
P2.7
01
P1.7
10
P6.7
11
保留
3.4 范例程序
串口 1 切换
3.4.1
汇编代码
P_SW1
DATA
0A2H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #3FH
MOV
MOV
MOV
MOV
P_SW1,#00H
P_SW1,#40H
P_SW1,#80H
P_SW1,#0C0H
SJMP
$
MAIN:
;
;
;
;RXD/P3.0, TXD/P3.1
;RXD_2/P3.6, TXD_2/P3.7
;RXD_3/P1.6, TXD_3/P1.7
;RXD_4/P4.3, TXD_4/P4.4
END
C 语言代码
#include "reg51.h"
sfr P_SW1 = 0xa2;
void main()
{
P_SW1 = 0x00;
江苏国芯科技有限公司
//RXD/P3.0, TXD/P3.1
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 65 -
STC8 系列技术手册
//
//
//
官方网站: www.STCMCUDATA.com / www.STCMCU.com
P_SW1 = 0x40;
P_SW1 = 0x80;
P_SW1 = 0xc0;
技术支持: 13922829991
研发顾问: 13922805190
//RXD_2/P3.6, TXD_2/P3.7
//RXD_3/P1.6, TXD_3/P1.7
//RXD_4/P4.3, TXD_4/P4.4
while (1);
}
串口 2 切换
3.4.2
汇编代码
P_SW2
DATA
0BAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #3FH
MOV
MOV
P_SW2,#00H
P_SW2,#01H
SJMP
$
MAIN:
;
;RXD2/P1.0, TXD2/P1.1
;RXD2_2/P4.0, TXD2_2/P4.2
END
C 语言代码
#include "reg51.h"
sfr P_SW2 = 0xba;
void main()
{
P_SW2 = 0x00;
//
P_SW2 = 0x01;
//RXD2/P1.0, TXD2/P1.1
//RXD2_2/P4.0, TXD2_2/P4.2
while (1);
}
串口 3 切换
3.4.3
汇编代码
P_SW2
DATA
0BAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #3FH
MOV
MOV
P_SW2,#00H
P_SW2,#02H
SJMP
$
MAIN:
;
江苏国芯科技有限公司
;RXD3/P0.0, TXD3/P0.1
;RXD3_2/P5.0, TXD3_2/P5.1
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 66 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
END
C 语言代码
#include "reg51.h"
sfr P_SW2 = 0xba;
void main()
{
P_SW2 = 0x00;
//
P_SW2 = 0x02;
// RXD3/P0.0, TXD3/P0.1
// RXD3_2/P5.0, TXD3_2/P5.1
while (1);
}
串口 4 切换
3.4.4
汇编代码
P_SW2
DATA
0BAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #3FH
MOV
MOV
P_SW2,#00H
P_SW2,#04H
SJMP
$
MAIN:
;
;RXD4/P0.2, TXD4/P0.3
;RXD4_2/P5.2, TXD4_2/P5.3
END
C 语言代码
#include "reg51.h"
sfr P_SW2 = 0xba;
void main()
{
P_SW2 = 0x00;
//
P_SW2 = 0x04;
//RXD4/P0.2, TXD4/P0.3
//RXD4_2/P5.2, TXD4_2/P5.3
while (1);
}
3.4.5
SPI切换
汇编代码
P_SW1
DATA
0A2H
ORG
0000H
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 67 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
LJMP
MAIN
ORG
0100H
MOV
SP, #3FH
MOV
MOV
MOV
MOV
P_SW1,#00H
P_SW1,#04H
P_SW1,#08H
P_SW1,#0CH
SJMP
$
技术支持: 13922829991
研发顾问: 13922805190
MAIN:
;
;
;
;SS/P1.2, MOSI/P1.3, MISO/P1.4, SCLK/P1.5
;SS_2/P2.2, MOSI_2/P2.3, MISO_2/P2.4, SCLK_2/P2.5
;SS_3/P7.4, MOSI_3/P7.5, MISO_3/P7.6, SCLK_3/P7.7
;SS_4/P3.5, MOSI_4/P3.4, MISO_4/P3.3, SCLK_4/P3.2
END
C 语言代码
#include "reg51.h"
sfr P_SW1 = 0xa2;
void main()
{
P_SW1 = 0x00;
//
P_SW1 = 0x04;
//
P_SW1 = 0x08;
//
P_SW1 = 0x0c;
//SS/P1.2, MOSI/P1.3, MISO/P1.4, SCLK/P1.5
//SS_2/P2.2, MOSI_2/P2.3, MISO_2/P2.4, SCLK_2/P2.5
//SS_3/P7.4, MOSI_3/P7.5, MISO_3/P7.6, SCLK_3/P7.7
//SS_4/P3.5, MOSI_4/P3.4, MISO_4/P3.3, SCLK_4/P3.2
while (1);
}
3.4.6
PWM切换
汇编代码
P_SW2
PWM0CR
PWM1CR
PWM2CR
PWM3CR
PWM4CR
PWM5CR
PWM6CR
PWM7CR
DATA
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0BAH
0FF04H
0FF14H
0FF24H
0FF34H
0FF44H
0FF54H
0FF64H
0FF74H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #3FH
MOV
MOV
MOV
MOV
MOV
MOVX
MOV
P_SW2,#80H
A,#00H
A,#08H
A,#10H
DPTR,#PWM0CR
@DPTR,A
A,#00H
MAIN:
;
;
江苏国芯科技有限公司
;PWM0/P2.0
;PWM0_2/P1.0
;PWM0_3/P6.0
;PWM1/P2.1
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 68 -
STC8 系列技术手册
;
;
;
;
;
;
;
;
;
;
;
;
;
;
官方网站: www.STCMCUDATA.com / www.STCMCU.com
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
A,#08H
A,#10H
DPTR,#PWM1CR
@DPTR,A
A,#00H
A,#08H
A,#10H
DPTR,#PWM2CR
@DPTR,A
A,#00H
A,#08H
A,#10H
DPTR,#PWM3CR
@DPTR,A
A,#00H
A,#08H
A,#10H
DPTR,#PWM4CR
@DPTR,A
A,#00H
A,#08H
A,#10H
DPTR,#PWM5CR
@DPTR,A
A,#00H
A,#08H
A,#10H
DPTR,#PWM6CR
@DPTR,A
A,#00H
A,#08H
A,#10H
DPTR,#PWM7CR
@DPTR,A
P_SW2,#00H
SJMP
$
技术支持: 13922829991
研发顾问: 13922805190
;PWM1_2/P1.1
;PWM1_3/P6.1
;PWM2/P2.2
;PWM2_2/P1.2
;PWM2_3/P6.2
;PWM3/P2.3
;PWM3_2/P1.3
;PWM3_3/P6.3
;PWM4/P2.4
;PWM4_2/P1.4
;PWM4_3/P6.4
;PWM5/P2.5
;PWM5_2/P1.5
;PWM5_3/P6.5
;PWM6/P2.6
;PWM6_2/P1.6
;PWM6_3/P6.6
;PWM7/P2.7
;PWM7_2/P1.7
;PWM7_3/P6.7
END
C 语言代码
#include "reg51.h"
#define PWM0CR
#define PWM1CR
#define PWM2CR
#define PWM3CR
#define PWM4CR
#define PWM5CR
#define PWM6CR
#define PWM7CR
(*(unsigned char volatile xdata *)0xff04)
(*(unsigned char volatile xdata *)0xff14)
(*(unsigned char volatile xdata *)0xff24)
(*(unsigned char volatile xdata *)0xff34)
(*(unsigned char volatile xdata *)0xff44)
(*(unsigned char volatile xdata *)0xff54)
(*(unsigned char volatile xdata *)0xff64)
(*(unsigned char volatile xdata *)0xff74)
sfr P_SW2 = 0xba;
void main()
{
P_SW2 = 0x80;
PWM0CR = 0x00;
江苏国芯科技有限公司
//PWM0/P2.0
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 69 -
STC8 系列技术手册
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
官方网站: www.STCMCUDATA.com / www.STCMCU.com
PWM0CR = 0x08;
PWM0CR = 0x10;
PWM1CR = 0x00;
PWM1CR = 0x08;
PWM1CR = 0x10;
PWM2CR = 0x00;
PWM2CR = 0x08;
PWM2CR = 0x10;
PWM3CR = 0x00;
PWM3CR = 0x08;
PWM3CR = 0x10;
PWM4CR = 0x00;
PWM4CR = 0x08;
PWM4CR = 0x10;
PWM5CR = 0x00;
PWM5CR = 0x08;
PWM5CR = 0x10;
PWM6CR = 0x00;
PWM6CR = 0x08;
PWM6CR = 0x10;
PWM7CR = 0x00;
PWM7CR = 0x08;
PWM7CR = 0x10;
P_SW2 = 0x00;
技术支持: 13922829991
研发顾问: 13922805190
//PWM0_2/P1.0
//PWM0_3/P6.0
//PWM1/P2.1
//PWM1_2/P1.1
//PWM1_3/P6.1
//PWM2/P2.2
//PWM2_2/P1.2
//PWM2_3/P6.2
//PWM3/P2.3
//PWM3_2/P1.3
//PWM3_3/P6.3
//PWM4/P2.4
//PWM4_2/P1.4
//PWM4_3/P6.4
//PWM5/P2.5
//PWM5_2/P1.5
//PWM5_3/P6.5
//PWM6/P2.6
//PWM6_2/P1.6
//PWM6_3/P6.6
//PWM7/P2.7
//PWM7_2/P1.7
//PWM7_3/P6.7
while (1);
}
3.4.7
PCA/CCP/PWM切换
汇编代码
P_SW1
DATA
0A2H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #3FH
MOV
MOV
MOV
MOV
P_SW1,#00H
P_SW1,#10H
P_SW1,#20H
P_SW1,#30H
SJMP
$
MAIN:
;
;
;
;ECI/P1.2, CCP0/P1.7, CCP1/P1.6, CCP2/P1.5,CCP3/P1.4
;ECI_2/P2.2, CCP0_2/P2.3, CCP1_2/P2.4, CCP2_2/P2.5,CCP3_2/P2.6
;ECI_3/P7.4, CCP0_3/P7.0, CCP1_3/P7.1, CCP2_3/P7.2,CCP3_3/P7.3
;ECI_4/P3.5, CCP0_4/P3.3, CCP1_4/P3.2, CCP2_4/P3.1,CCP3_4/P3.0
END
C 语言代码
#include "reg51.h"
sfr P_SW1 = 0xa2;
void main()
{
P_SW1 = 0x00;
江苏国芯科技有限公司
//ECI/P1.2, CCP0/P1.7, CCP1/P1.6, CCP2/P1.5,CCP3/P1.4
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 70 -
STC8 系列技术手册
//
//
//
官方网站: www.STCMCUDATA.com / www.STCMCU.com
P_SW1 = 0x10;
P_SW1 = 0x20;
P_SW1 = 0x30;
技术支持: 13922829991
研发顾问: 13922805190
//ECI_2/P2.2, CCP0_2/P2.3, CCP1_2/P2.4, CCP2_2/P2.5,CCP3_2/P2.6
//ECI_3/P7.4, CCP0_3/P7.0, CCP1_3/P7.1, CCP2_3/P7.2,CCP3_3/P7.3
//ECI_4/P3.5, CCP0_4/P3.3, CCP1_4/P3.2, CCP2_4/P3.1,CCP3_4/P3.0
while (1);
}
3.4.8
I2C切换
汇编代码
P_SW2
DATA
0BAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #3FH
MOV
MOV
MOV
MOV
P_SW2,#00H
P_SW2,#10H
P_SW2,#20H
P_SW2,#30H
SJMP
$
MAIN:
;
;
;
;SCL/P1.5, SDA/P1.4
;SCL_2/P2.5, SDA_2/P2.4
;SCL_3/P7.7, SDA_3/P7.6
;SCL_4/P3.2, SDA_4/P3.3
END
C 语言代码
#include "reg51.h"
sfr P_SW2 = 0xba;
void main()
{
P_SW2 = 0x00;
//
P_SW2 = 0x10;
//
P_SW2 = 0x20;
//
P_SW2 = 0x30;
//SCL/P1.5, SDA/P1.4
//SCL_2/P2.5, SDA_2/P2.4
//SCL_3/P7.7, SDA_3/P7.6
//SCL_4/P3.2, SDA_4/P3.3
while (1);
}
比较器输出切换
3.4.9
汇编代码
P_SW2
DATA
0BAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #3FH
MAIN:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 71 -
STC8 系列技术手册
;
官方网站: www.STCMCUDATA.com / www.STCMCU.com
MOV
MOV
P_SW2,#00H
P_SW2,#08H
SJMP
$
技术支持: 13922829991
研发顾问: 13922805190
;CMPO/P3.4
;CMPO_2/P4.1
END
C 语言代码
#include "reg51.h"
sfr P_SW2 = 0xba;
void main()
{
P_SW2 = 0x00;
//
P_SW2 = 0x08;
//CMPO/P3.4
//CMPO_2/P4.1
while (1);
}
3.4.10 主时钟输出切换
汇编代码
P_SW2
CKSEL
DATA
EQU
0BAH
0FE00H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #3FH
MOV
MOV
MOV
MOV
MOV
MOVX
MOV
P_SW2,#80H
A,#40H
A,#48H
A,#0E8H
DPTR,#CKSEL
@DPTR,A
P_SW2,#00H
SJMP
$
MAIN:
;
;
;IRC24M/4 output via MCLKO/P5.4
;IRC24M/4 output via MCLKO_2/P1.6
;IRC24M/128 output via MCLKO_2/P1.6
END
C 语言代码
#include "reg51.h"
#define CKSEL
(*(unsigned char volatile xdata *)0xfe00)
sfr P_SW2 = 0xba;
void main()
{
P_SW2 = 0x80;
CKSEL = 0x40;
江苏国芯科技有限公司
//IRC24M/4 output via MCLKO/P5.4
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 72 -
STC8 系列技术手册
//
//
官方网站: www.STCMCUDATA.com / www.STCMCU.com
CKSEL = 0x48;
CKSEL = 0xe8;
P_SW2 = 0x00;
技术支持: 13922829991
研发顾问: 13922805190
//IRC24M/4 output via MCLKO_2/P1.6
//IRC24M/128 output via MCLKO_2/P1.6
while (1);
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 73 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
4 封装尺寸图
4.1 LQFP64S封装尺寸图(12mm*12mm)
A
D (12mm)
A2
D1 (10mm)
48
A3
33
49
32
E1 (10mm)
E (12mm)
TOP E-MARK 2-Φ1.8±0.1 DEPTH 0.1±0.05
BTM E-MARK 2-Φ1.8±0.1 DEPTH 0.1±0.05
INDEX Φ1.2±0.1 DEPTH 0.2±0.1
64
17
1
正看芯片丝印左下方小圆点处为第一脚
SYMBOL
A
A1
A2
A3
b
b1
c
c1
D
D1
E
E1
e
L
L1
L2
R1
R2
S
?
?1
?2
?3
江苏国芯科技有限公司
16
e (0.5mm)
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.05
1.35
1.40
0.59
0.64
0.18
0.17
0.20
0.13
0.12
0.127
11.80
12.00
9.90
10.00
11.80
12.00
9.90
10.00
0.50BSC
0.45
0.60
1.00REF
0.25BSC
0.08
0.08
0.20
0°
3.5°
0°
11°
12°
11°
12°
A1
b
R1
MAX
1.60
0.15
1.45
0.69
0.27
0.23
0.18
0.134
12.20
10.10
12.20
10.10
R2
总机: 0513-5501 2928/2929/2966
?3
?
L2
L1
L
S
b
0.75
0.20
7°
13°
13°
?2
?1
b1
c
c1
(A-A的截面图)
传真: 0513-5501 2926/2956/2947
- 74 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
4.2 LQFP64L封装尺寸图(16mm*16mm)
STC8 系列暂无此封装
A
D (16mm)
A2
D1 (14mm)
48
A3
33
49
32
E1 (14mm)
E (16mm)
TOP E-MARK 2-Φ1.8±0.1 DEPTH 0.1±0.05
BTM E-MARK 2-Φ1.8±0.1 DEPTH 0.1±0.05
INDEX Φ1.2±0.1 DEPTH 0.2±0.1
64
17
1
正看芯片丝印左下方小圆点处为第一脚
SYMBOL
A
A1
A2
A3
b
b1
c
c1
D
D1
E
E1
e
L
L1
L2
R1
R2
S
?
?1
?2
?3
江苏国芯科技有限公司
16
e (0.8mm)
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.05
1.35
1.40
0.59
0.64
0.31
0.30
0.35
0.13
0.12
0.127
15.80
16.00
13.90
14.00
15.80
16.00
13.90
14.00
0.70
0.80
0.45
0.60
1.00REF
0.25BSC
0.08
0.08
0.20
0°
3.5°
0°
11°
12°
11°
12°
A1
b
R1
MAX
1.60
0.15
1.45
0.69
0.44
0.40
0.18
0.134
16.20
14.10
16.20
14.10
0.90
0.75
0.20
7°
13°
13°
总机: 0513-5501 2928/2929/2966
?2
?1
R2
?
L2
?3
L1
L
S
b
b1
c
c1
(A-A的截面图)
传真: 0513-5501 2926/2956/2947
- 75 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
4.3 LQFP48 封装尺寸图(9mm*9mm)
D (9mm)
D1 (7mm)
25
37
24
48
13
E1 (7mm)
E (9mm)
36
1
12
SYMBOL
A
A1
A2
A3
b
b1
c
c1
D
D1
E
E1
e
L
L1
L2
R1
R2
S
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.05
1.35
1.40
0.59
0.64
0.18
0.30
0.35
0.13
0.12
0.127
8.80
9.00
6.90
7.00
8.80
9.00
6.90
7.00
0.45
0.50
0.45
0.60
1.00REF
0.25BSC
0.08
0.08
0.20
-
MAX
1.60
0.15
1.45
0.69
0.27
0.40
0.18
0.134
9.20
7.10
9.20
7.10
0.55
0.75
0.20
-
正看芯片丝印左下方小圆点处为第一脚
e (0.5mm)
b
A
A2
A3
R1
A1
R2
L2
L
b
b1
c
L1
c1
(A-A的截面图)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 76 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
D (9mm)
D1 (7mm)
25
37
24
48
13
E1 (7mm)
E (9mm)
36
1
12
SYMBOL
A
A1
A2
A3
b
b1
c
c1
D
D1
E
E1
e
L
L1
L2
R1
R2
S
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.05
1.35
1.40
0.59
0.64
0.18
0.30
0.35
0.13
0.12
0.127
8.80
9.00
6.90
7.00
8.80
9.00
6.90
7.00
0.45
0.50
0.45
0.60
1.00REF
0.25BSC
0.08
0.08
0.20
-
MAX
1.60
0.15
1.45
0.69
0.27
0.40
0.18
0.134
9.20
7.10
9.20
7.10
0.55
0.75
0.20
-
正看芯片丝印左下方小圆点处为第一脚
b
R1
A2
A3
R2
A1
A
e (0.5mm)
L2
L
b
b1
c
L1
c1
(A-A的截面图)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 77 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
D (9mm)
D1 (7mm)
25
37
24
48
13
E1 (7mm)
E (9mm)
36
1
12
SYMBOL
A
A1
A2
A3
b
b1
c
c1
D
D1
E
E1
e
L
L1
L2
R1
R2
S
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.05
1.35
1.40
0.59
0.64
0.18
0.30
0.35
0.13
0.12
0.127
8.80
9.00
6.90
7.00
8.80
9.00
6.90
7.00
0.45
0.50
0.45
0.60
1.00REF
0.25BSC
0.08
0.08
0.20
-
MAX
1.60
0.15
1.45
0.69
0.27
0.40
0.18
0.134
9.20
7.10
9.20
7.10
0.55
0.75
0.20
-
正看芯片丝印左下方小圆点处为第一脚
b
A3
R1
R2
A1
A
A2
e (0.5mm)
L2
L
b
b1
c
L1
c1
(A-A的截面图)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 78 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
4.4 LQFP44 封装尺寸图(12mm*12mm)
D (12mm)
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.05
1.35
1.40
0.59
0.64
0.25
0.30
0.09
11.80
12.00
9.90
10.00
11.80
12.00
9.90
10.00
0.70
0.80
0.45
0.60
1.00REF
0.25BSC
0.08
0.08
-
D1 (10mm)
23
34
22
44
12
E1 (10mm)
E (12mm)
33
1
SYMBOL
A
A1
A2
A3
b
c1
D
D1
E
E1
e
L
L1
L2
R1
R2
MAX
1.60
0.15
1.45
0.69
0.35
0.16
12.20
10.10
12.20
10.10
0.90
0.75
0.20
11
正看芯片丝印左下方小圆点处为第一脚
e (0.80mm)
R1
b(0.30mm)
L2
A1
A
A2
A3
c1
R2
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
?
L
L1
传真: 0513-5501 2926/2956/2947
- 79 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
D (12mm)
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.05
1.35
1.40
0.59
0.64
0.25
0.30
0.09
11.80
12.00
9.90
10.00
11.80
12.00
9.90
10.00
0.70
0.80
0.45
0.60
1.00REF
0.25BSC
0.08
0.08
-
D1 (10mm)
23
34
22
44
12
E1 (10mm)
E (12mm)
33
1
SYMBOL
A
A1
A2
A3
b
c1
D
D1
E
E1
e
L
L1
L2
R1
R2
MAX
1.60
0.15
1.45
0.69
0.35
0.16
12.20
10.10
12.20
10.10
0.90
0.75
0.20
11
正看芯片丝印左下方小圆点处为第一脚
e (0.80mm)
R1
b(0.30mm)
L2
A1
A
A2
A3
c1
R2
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
?
L
L1
传真: 0513-5501 2926/2956/2947
- 80 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
D (12mm)
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.05
1.35
1.40
0.59
0.64
0.25
0.30
0.09
11.80
12.00
9.90
10.00
11.80
12.00
9.90
10.00
0.70
0.80
0.45
0.60
1.00REF
0.25BSC
0.08
0.08
-
D1 (10mm)
23
34
22
44
12
E1 (10mm)
E (12mm)
33
1
SYMBOL
A
A1
A2
A3
b
c1
D
D1
E
E1
e
L
L1
L2
R1
R2
MAX
1.60
0.15
1.45
0.69
0.35
0.16
12.20
10.10
12.20
10.10
0.90
0.75
0.20
11
正看芯片丝印左下方小圆点处为第一脚
e (0.80mm)
R1
b(0.30mm)
A
A2
A3
c1
R2
A1
L2
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
?
L
L1
传真: 0513-5501 2926/2956/2947
- 81 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
4.5 LQFP32 封装尺寸图(9mm*9mm)
D (9mm)
D1 (7mm)
17
25
16
32
9
SYMBOL
A
A1
A2
A3
b
b1
c
D
D1
E
E1
e
L
L
L1
R
R1
E1 (7mm)
E (9mm)
24
1
8
e (0.80mm) b(0.30mm)
?
一般尺寸
测量单位:毫米/mm
MIN
TYP
1.45
1.55
0.01
1.35
1.40
0.254
0.30
0.35
0.31
0.37
0.127
8.80
9.00
6.90
7.00
8.80
9.00
6.90
7.00
0.70
0.80
0.43
1.00REF
0.25BSC
0.1
0.1
0°
-
MAX
1.65
0.21
1.45
0.40
0.43
9.20
7.10
9.20
7.10
0.90
0.71
0.25
10°
正看芯片丝印左下方小圆点处为第一脚
(A-A的截面图)
R1
R
A3
A2
b1
b
?
L
A1
A
c
L1
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 82 -
STC8 系列技术手册
4.6
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
QFN32 封装尺寸图(4mm*4mm)
D (4mm)
32
19
1
SYMBOL
A
A1
A2
A3
b
D
E
D2
E2
e
L
K
R
C1
18
E (4mm)
PIN 1
8
17
9
16
K
27
C2
32
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.70
0.75
0
0.02
0.50
0.55
0.20REF
0.15
0.20
3.90
4.00
3.90
4.00
2.60
2.70
2.60
2.70
0.30
0.40
0.35
0.40
0.25REF
0.09
0.16
0.16
MAX
0.80
0.05
0.60
0.25
4.10
4.10
2.80
2.80
0.50
0.45
-
L
e(0.4mm)
1
E2
R
b(0.20mm)
江苏国芯科技有限公司
12
C1
A3
7
17
A1
A
D2
C2
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 83 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
4.7 PDIP40 封装尺寸图
D (2060mil)
1
20
A1
L
A
A2
C
E (600mil)
E1 (545mil)
21
e? (650mil)
?°
40
e (100mil)
b
b1
SYMBOL
A
A1
A2
b
b1
C
D
E
E1
e?
L
?
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
一般尺寸
测量单位:米尔/mil
MIN
TYP
15
150
155
45
15
8
2025
2060
600 BSC
540
545
630
650
120
130
0°
7°
MAX
190
20
160
67
21
15
2070
传真: 0513-5501 2926/2956/2947
550
690
140
15°
- 84 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
4.8 TSSOP20 封装尺寸图
D (6.5mm)
11
SYMBOL
A
A1
A2
A3
b
D
E
E1
e
L
L1
L2
R1
R2
E1 (4.4mm)
E (6.5mm)
20
1
10
e (0.65mm)
MAX
1.20
0.15
1.05
0.54
0.28
6.60
6.60
4.50
0.75
-
R1
A3
R
b(0.24mm)
A1
A
A2
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.05
0.90
1.00
0.34
0.44
0.20
0.24
6.40
6.50
6.20
6.50
4.30
4.40
0.65BSC
0.45
0.60
1.00REF
0.25BSC
0.09
0.09
-
L2
?
L
L1
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 85 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
4.9 SOP16 封装尺寸图
16
9
1
8
e (1.27mm)
MAX
1.75
0.25
1.65
0.75
0.45
10.00
6.20
4.00
0.80
-
R1
A3
R
b(0.40mm)
A1
A
A2
一般尺寸
测量单位:毫米/mm
MIN
TYP
1.35
1.60
0.10
0.15
1.25
1.45
0.55
0.65
0.35
0.40
9.80
9.90
5.80
6.00
3.80
3.90
1.27BSC
0.45
0.60
1.04REF
0.25BSC
0.07
0.07
-
SYMBOL
A
A1
A2
A3
b
D
E
E1
e
L
L1
L2
R1
R2
E1 (3.9mm)
E (6.0mm)
D (9.9mm)
L2
?
L
L1
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 86 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
4.10 STC8 系列单片机命名规则
STC
8x
xK
64
Sx
Ax
ADC精度
A12:12位ADC
A10:10位ADC
独立串口个数
S4:4个独立串口
S2:2个独立串口
S :1个独立串口
程序空间大小
64:64K字节
32:32K字节
16:16K字节
SRAM空间大小
8K:8K字节
2K:2K字节
子系列
8F:STC8F系列(没有AVcc、AGnd、AVref管脚)
8A:STC8A系列(有AVcc、AGnd、AVref管脚)
8H:STC8H系列
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 87 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
5 ISP下载及典型应用线路图
5.1 STC8F系列ISP下载应用线路图
5.1.1
使用RS-232 转换器下载
系统电源
(可从USB取电)
Vin
Power On
Vcc
47u
C?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P4.5
P4.6
P4.7
P5.4
Vcc
P5.5
Gnd
P0.2
P0.1
P0.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P4.1
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
Vcc
Vcc
SP3232/
SP232/
MAX3232/
MAX232
0.1u
0.1u
0.1u
0.1u
1
2
3
4
5
6
7
8
C1+
VCC
V+
GND
C1T1OUT
C2+
R1IN
C2R1OUT
VT1IN
T2OUT
T2IN
R2IN
R2OUT
16 10u
15
14
13
12
11
10
9
0.1u
1
6
2
7
3
8
4
9
5
300R
STC8F2K64S4
1N5819
47u钽电容(封装3528)参考价 8;
T4T3M = 0x0a;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void Uart3Send(char dat)
{
while (busy);
busy = 1;
S3BUF = dat;
}
void Uart3SendStr(char *p)
{
while (*p)
{
Uart3Send(*p++);
}
}
void main()
{
Uart3Init();
IE2 = 0x08;
EA = 1;
Uart3SendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart3Send(buffer[rptr++]);
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 275 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
rptr &= 0x0f;
}
}
}
12.6.27 定时器 4(16 位自动重载)
汇编代码
;测试工作频率为 11.0592MHz
T4L
T4H
T4T3M
IE2
ET4
AUXINTIF
T4IF
DATA
DATA
DATA
DATA
EQU
DATA
EQU
0D3H
0D2H
0D1H
0AFH
40H
0EFH
04H
ORG
LJMP
ORG
LJMP
0000H
MAIN
00A3H
TM4ISR
ORG
0100H
CPL
ANL
RETI
P1.0
AUXINTIF,#NOT T4IF
MOV
SP,#3FH
MOV
MOV
MOV
MOV
SETB
T4L,#66H
T4H,#0FCH
T4T3M,#80H
IE2,#ET4
EA
JMP
$
TM4ISR:
;测试端口
;清中断标志
MAIN:
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sfr
sfr
sfr
#define
sfr
#define
T4L
T4H
T4T3M
IE2
ET4
AUXINTIF
T4IF
江苏国芯科技有限公司
=
=
=
=
=
0xd3;
0xd2;
0xd1;
0xaf;
0x40
0xef;
0x04
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 276 -
STC8 系列技术手册
sbit
官方网站: www.STCMCUDATA.com / www.STCMCU.com
P10
=
技术支持: 13922829991
研发顾问: 13922805190
P1^0;
void TM4_Isr() interrupt 20
{
P10 = !P10;
AUXINTIF &= ~T4IF;
}
//测试端口
//清中断标志
void main()
{
T4L = 0x66;
T4H = 0xfc;
T4T3M = 0x80;
IE2 = ET4;
EA = 1;
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
while (1);
}
12.6.28 定时器 4(外部计数-扩展T4 为外部下降沿中断)
汇编代码
;测试工作频率为 11.0592MHz
T4L
T4H
T4T3M
IE2
ET4
AUXINTIF
T4IF
DATA
DATA
DATA
DATA
EQU
DATA
EQU
0D3H
0D2H
0D1H
0AFH
40H
0EFH
04H
ORG
LJMP
ORG
LJMP
0000H
MAIN
00A3H
TM4ISR
ORG
0100H
CPL
ANL
RETI
P1.0
AUXINTIF,#NOT T4IF
MOV
SP,#3FH
MOV
MOV
MOV
MOV
SETB
T4L,#0FFH
T4H,#0FFH
T4T3M,#0C0H
IE2,#ET4
EA
JMP
$
TM4ISR:
;测试端口
;清中断标志
MAIN:
;设置外部计数模式并启动定时器
;使能定时器中断
END
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 277 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sfr
sfr
sfr
#define
sfr
#define
T4L
T4H
T4T3M
IE2
ET4
AUXINTIF
T4IF
=
=
=
=
sbit
P10
=
=
0xd3;
0xd2;
0xd1;
0xaf;
0x40
0xef;
0x04
P1^0;
void TM4_Isr() interrupt 20
{
P10 = !P10;
AUXINTIF &= ~T4IF;
}
//测试端口
//清中断标志
void main()
{
T4L = 0xff;
T4H = 0xff;
T4T3M = 0xc0;
IE2 = ET4;
EA = 1;
//设置外部计数模式并启动定时器
//使能定时器中断
while (1);
}
12.6.29 定时器 4(时钟分频输出)
汇编代码
;测试工作频率为 11.0592MHz
T4L
T4H
T4T3M
DATA
DATA
DATA
0D3H
0D2H
0D1H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP,#3FH
MOV
MOV
MOV
T4L,#66H
T4H,#0FCH
T4T3M,#90H
JMP
$
MAIN:
;65536-11.0592M/12/1000
;使能时钟输出并启动定时器
END
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 278 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sfr
sfr
T4L
T4H
T4T3M
=
=
=
0xd3;
0xd2;
0xd1;
void main()
{
T4L = 0x66;
T4H = 0xfc;
T4T3M = 0x90;
//65536-11.0592M/12/1000
//使能时钟输出并启动定时器
while (1);
}
12.6.30 定时器 4 做串口 4 波特率发生器
汇编代码
T4T3M
T4H
T4L
S4CON
S4BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
0D1H
0D2H
0D3H
84H
085H
0AFH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
ORG
LJMP
ORG
LJMP
0000H
MAIN
0093H
UART4_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
MOV
JNB
ANL
CLR
A,S4CON
ACC.1,CHKRI
S4CON,#NOT 02H
BUSY
JNB
ANL
MOV
ANL
ADD
MOV
ACC.0,UART4ISR_EXIT
S4CON,#NOT 01H
A,WPTR
A,#0FH
A,#BUFFER
R0,A
;16 bytes
UART4_ISR:
CHKRI:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 279 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
MOV
INC
UART4ISR_EXIT:
POP
POP
RETI
技术支持: 13922829991
研发顾问: 13922805190
@R0,S4BUF
WPTR
PSW
ACC
UART4_INIT:
MOV
MOV
MOV
MOV
CLR
MOV
MOV
RET
S4CON,#50H
T4L,#0E8H
T4H,#0FFH
T4T3M,#0A0H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
S4BUF,A
;65536-11059200/115200/4=0FFE8H
UART4_SEND:
UART4_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SEND4END:
RET
A
A,@A+DPTR
SEND4END
UART4_SEND
DPTR
UART4_SENDSTR
MAIN:
MOV
SP,#3FH
LCALL
MOV
SETB
UART4_INIT
IE2,#10H
EA
MOV
LCALL
DPTR,#STRING
UART4_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
ADD
MOV
MOV
LCALL
INC
JMP
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
A,#BUFFER
R0,A
A,@R0
UART4_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
LOOP:
STRING:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 280 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
sfr
sfr
sfr
sfr
sfr
T4T3M
T4H
T4L
S4CON
S4BUF
IE2
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
11059200UL
(65536 - FOSC / 115200 / 4)
=
=
=
=
=
=
0xd1;
0xd2;
0xd3;
0x84;
0x85;
0xaf;
void Uart4Isr() interrupt 18
{
if (S4CON & 0x02)
{
S4CON &= ~0x02;
busy = 0;
}
if (S4CON & 0x01)
{
S4CON &= ~0x01;
buffer[wptr++] = S4BUF;
wptr &= 0x0f;
}
}
void Uart4Init()
{
S4CON = 0x50;
T4L = BRT;
T4H = BRT >> 8;
T4T3M = 0xa0;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void Uart4Send(char dat)
{
while (busy);
busy = 1;
S4BUF = dat;
}
void Uart4SendStr(char *p)
{
while (*p)
{
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 281 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
Uart4Send(*p++);
}
}
void main()
{
Uart4Init();
IE2 = 0x10;
EA = 1;
Uart4SendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart4Send(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 282 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
13 串口通信
STC8 系列单片机具有 4 个全双工异步串行通信接口(串口 1、串口 2、串口 3 和串口 4)。每个串行
口由 2 个数据缓冲器、一个移位寄存器、一个串行控制寄存器和一个波特率发生器等组成。每个串行口
的数据缓冲器由 2 个互相独立的接收、发送缓冲器构成,可以同时发送和接收数据。
STC8 系列单片机的串口 1 有 4 种工作方式,其中两种方式的波特率是可变的,另两种是固定的,
以供不同应用场合选用。串口 2/串口 3/串口 4 都只有两种工作方式,这两种方式的波特率都是可变的。
用户可用软件设置不同的波特率和选择不同的工作方式。主机可通过查询或中断方式对接收/发送进行
程序处理,使用十分灵活。
串口 1、串口 2、串口 3、串口 4 的通讯口均可以通过功能管脚的切换功能切换到多组端口,从而
可以将一个通讯口分时复用为多个通讯口。
13.1 串口相关寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
SM0/FE
SM1
SM2
REN
TB8
RB8
TI
RI
SCON
串口 1 控制寄存器
98H
SBUF
串口 1 数据寄存器
99H
S2CON
串口 2 控制寄存器
9AH
S2BUF
串口 2 数据寄存器
9BH
S3CON
串口 3 控制寄存器
ACH
S3BUF
串口 3 数据寄存器
ADH
S4CON
串口 4 控制寄存器
84H
S4BUF
串口 4 数据寄存器
85H
PCON
电源控制寄存器
87H
SMOD
SMOD0
LVDF
POF
GF1
AUXR
辅助寄存器 1
8EH
T0x12
T1x12
UART_M0x6
T2R
T2_C/T
AUXR2
辅助寄存器 2
97H
-
-
-
TXLNRX
-
SADDR
串口 1 从机地址寄存器
A9H
0000,0000
SADEN
串口 1 从机地址屏蔽寄存器
B9H
0000,0000
江苏国芯科技有限公司
0000,0000
0000,0000
S2SM0
-
S2SM2
S2REN
S2TB8
S2RB8
S2TI
S2RI
0100,0000
0000,0000
S3SM0
S3ST3
S3SM2
S3REN
S3TB8
S3RB8
S3TI
S3RI
0000,0000
0000,0000
S4SM0
S4ST4
S4SM2
S4REN
S4TB8
S4RB8
S4TI
S4RI
0000,0000
0000,0000
总机: 0513-5501 2928/2929/2966
GF0
PD
T2x12 EXTRAM
-
IDL
0011,0000
S1ST2
0000,0001
-
xxxn,xxxx
-
传真: 0513-5501 2926/2956/2947
- 283 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
13.2 串口 1
串口 1 控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
SCON
98H
SM0/FE
SM1
SM2
REN
TB8
RB8
TI
RI
SM0/FE:当PCON寄存器中的SMOD0位为1时,该位为帧错误检测标志位。当UART在接收过程中检测
到一个无效停止位时,通过UART接收器将该位置1,必须由软件清零。当PCON寄存器中的SMOD0
位为0时,该位和SM1一起指定串口1的通信工作模式,如下表所示:
SM0
SM1
串口1工作模式
功能说明
0
0
模式0
同步移位串行方式
0
1
模式1
可变波特率8位数据方式
1
0
模式2
固定波特率9位数据方式
1
1
模式3
可变波特率9位数据方式
SM2:允许模式 2 或模式 3 多机通信控制位。当串口 1 使用模式 2 或模式 3 时,如果 SM2 位为 1 且 REN
位为 1,则接收机处于地址帧筛选状态。此时可以利用接收到的第 9 位(即 RB8)来筛选地址帧,
若 RB8=1,说明该帧是地址帧,地址信息可以进入 SBUF,并使 RI 为 1,进而在中断服务程序
中再进行地址号比较;若 RB8=0,说明该帧不是地址帧,应丢掉且保持 RI=0。在模式 2 或模式
3 中,如果 SM2 位为 0 且 REN 位为 1,接收收机处于地址帧筛选被禁止状态,不论收到的 RB8
为 0 或 1,均可使接收到的信息进入 SBUF,并使 RI=1,此时 RB8 通常为校验位。模式 1 和模
式 0 为非多机通信方式,在这两种方式时,SM2 应设置为 0。
REN:允许/禁止串口接收控制位
0:禁止串口接收数据
1:允许串口接收数据
TB8:当串口 1 使用模式 2 或模式 3 时,TB8 为要发送的第 9 位数据,按需要由软件置位或清 0。在模
式 0 和模式 1 中,该位不用。
RB8:当串口 1 使用模式 2 或模式 3 时,RB8 为接收到的第 9 位数据,一般用作校验位或者地址帧/数
据帧标志位。在模式 0 和模式 1 中,该位不用。
TI:串口 1 发送中断请求标志位。在模式 0 中,当串口发送数据第 8 位结束时,由硬件自动将 TI 置 1,
向主机请求中断,响应中断后 TI 必须用软件清零。在其他模式中,则在停止位开始发送时由硬
件自动将 TI 置 1,向 CPU 发请求中断,响应中断后 TI 必须用软件清零。
RI:串口 1 接收中断请求标志位。在模式 0 中,当串口接收第 8 位数据结束时,由硬件自动将 RI 置 1,
向主机请求中断,响应中断后 RI 必须用软件清零。在其他模式中,串行接收到停止位的中间时
刻由硬件自动将 RI 置 1,向 CPU 发中断申请,响应中断后 RI 必须由软件清零。
串口 1 数据寄存器
符号
地址
SBUF
99H
B7
B6
B5
B4
B3
B2
B1
B0
SBUF:串口 1 数据接收/发送缓冲区。SBUF 实际是 2 个缓冲器,读缓冲器和写缓冲器,两个操作分别
对应两个不同的寄存器,1 个是只写寄存器(写缓冲器),1 个是只读寄存器(读缓冲器)。对 SBUF
进行读操作,实际是读取串口接收缓冲区,对 SBUF 进行写操作则是触发串口开始发送数据。
电源管理寄存器
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 284 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PCON
87H
SMOD
SMOD0
LVDF
POF
GF1
GF0
PD
IDL
SMOD:串口 1 波特率控制位
0:串口 1 的各个模式的波特率都不加倍
1:串口 1 模式 1、模式 2、模式 3 的波特率加倍
SMOD0:帧错误检测控制位
0:无帧错检测功能
1:使能帧错误检测功能。此时 SCON 的 SM0/FE 为 FE 功能,即为帧错误检测标志位。
辅助寄存器 1
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
AUXR
8EH
T0x12
T1x12
UART_M0x6
T2R
T2_C/T
T2x12
EXTRAM
S1ST2
UART_M0x6:串口 1 模式 0 的通讯速度控制
0:串口 1 模式 0 的波特率不加倍,固定为 Fosc/12
1:串口 1 模式 0 的波特率 6 倍速,即固定为 Fosc/12*6 = Fosc/2
S1ST2:串口 1 波特率发射器选择位
0:选择定时器 1 作为波特率发射器
1:选择定时器 2 作为波特率发射器
辅助寄存器 2
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
AUXR2
97H
-
-
-
TXLNRX
-
-
-
-
TXLNRX:串口 1 中继广播方式控制位
0:串口 1 为正常模式
1:串口 1 为中继广播方式。即将 RxD 端口输入的电平状态实时输出在 TxD 外部管脚上,TxD 外
部管脚可以对 RxD 管脚的输入信号进行实时整形放大输出。
13.2.1
串口 1 模式 0
当串口 1 选择工作模式为模式 0 时,串行通信接口工作在同步移位寄存器模式,当串行口模式 0
的通信速度设置位 UART_M0x6 为 0 时,其波特率固定为系统时钟时钟的 12 分频(SYSclk/12);当设
置 UART_M0x6 为 1 时,其波特率固定为系统时钟频率的 2 分频(SYSclk/2)。RxD 为串行通讯的数据
口,TxD 为同步移位脉冲输出脚,发送、接收的是 8 位数据,低位在先。
模式 0 的发送过程:当主机执行将数据写入发送缓冲器 SBUF 指令时启动发送,串行口即将 8 位数
据以 SYSclk/12 或 SYSclk/2(由 UART_M0x6 确定是 12 分频还是 2 分频)的波特率从 RxD 管脚输出(从
低位到高位),发送完中断标志 TI 置 1,TxD 管脚输出同步移位脉冲信号。当写信号有效后,相隔一个
时钟,发送控制端 SEND 有效(高电平),允许 RxD 发送数据,同时允许 TxD 输出同步移位脉冲。一帧
(8 位)数据发送完毕时,各控制端均恢复原状态,只有 TI 保持高电平,呈中断申请状态。在再次发送数
据前,必须用软件将 TI 清 0。
模式 0 的接收过程:首先将接收中断请求标志 RI 清零并置位允许接收控制位 REN 时启动模式 0
接收过程。启动接收过程后,RxD 为串行数据输入端,TxD 为同步脉冲输出端。串行接收的波特率为
SYSclk/12 或 SYSclk/2(由 UART_M0x6 确定是 12 分频还是 2 分频)。当接收完成一帧数据(8 位)后,
控制信号复位,中断标志 RI 被置 1,呈中断申请状态。当再次接收时,必须通过软件将 RI 清 0
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 285 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
写SBUF
TxD
RxD
D0
D1
D2
D3
D4
D5
D6
D7
D6
D7
TI
RI
发送数据(串口1模式0)
写SCON
REN=1, RI=0
TxD
RxD
D0
D1
D2
D3
D4
D5
TI
RI
接收数据(串口1模式0)
工作于模式 0 时,必须清 0 多机通信控制位 SM2,使之不影响 TB8 位和 RB8 位。由于波特率固定
为 SYSclk/12 或 SYSclk/2,无需定时器提供,直接由单片机的时钟作为同步移位脉冲。
串口 1 模式 0 的波特率计算公式如下表所示(SYSclk 为系统工作频率):
UART_M0x6
波特率计算公式
0
波特率 =
1
波特率 =
13.2.2
SYSclk
12
SYSclk
2
串口 1 模式 1
当软件设置 SCON 的 SM0、SM1 为“01”时,串行口 1 则以模式 1 进行工作。此模式为 8 位 UART
格式,一帧信息为 10 位:1 位起始位,8 位数据位(低位在先)和 1 位停止位。波特率可变,即可根据
需要进行设置波特率。TxD 为数据发送口,RxD 为数据接收口,串行口全双工接受/发送。
模式 1 的发送过程:串行通信模式发送时,数据由串行发送端 TxD 输出。当主机执行一条写 SBUF
的指令就启动串行通信的发送,写“SBUF”信号还把“1”装入发送移位寄存器的第 9 位,并通知 TX
控制单元开始发送。移位寄存器将数据不断右移送 TxD 端口发送,在数据的左边不断移入“0”作补充。
当数据的最高位移到移位寄存器的输出位置,紧跟其后的是第 9 位“1”,在它的左边各位全为“0”,这
个状态条件,使 TX 控制单元作最后一次移位输出,然后使允许发送信号“SEND”失效,完成一帧信
息的发送,并置位中断请求位 TI,即 TI=1,向主机请求中断处理。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 286 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
模式 1 的接收过程:当软件置位接收允许标志位 REN,即 REN=1 时,接收器便对 RxD 端口的信
号进行检测,当检测到 RxD 端口发送从“1”→“0”的下降沿跳变时就启动接收器准备接收数据,并
立即复位波特率发生器的接收计数器,将 1FFH 装入移位寄存器。接收的数据从接收移位寄存器的右边
移入,已装入的 1FFH 向左边移出,当起始位"0"移到移位寄存器的最左边时,使 RX 控制器作最后一次
移位,完成一帧的接收。若同时满足以下两个条件:
·RI=0;
·SM2=0 或接收到的停止位为 1。
则接收到的数据有效,实现装载入 SBUF,停止位进入 RB8,RI 标志位被置 1,向主机请求中断,
若上述两条件不能同时满足,则接收到的数据作废并丢失,无论条件满足与否,接收器重又检测 RxD
端口上的"1"→"0"的跳变,继续下一帧的接收。接收有效,在响应中断后,RI 标志位必须由软件清 0。
通常情况下,串行通信工作于模式 1 时,SM2 设置为"0"。
写SBUF
TxD
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
TI
发送数据(串口1模式1)
写SCON
RxD
REN=1, RI=0
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
RI
接收数据(串口1模式1)
串口 1 的波特率是可变的,其波特率可由定时器 1 或者定时器 2 产生。当定时器采用 1T 模式时(12
倍速),相应的波特率的速度也会相应提高 12 倍。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 287 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
串口 1 模式 1 的波特率计算公式如下表所示:(SYSclk 为系统工作频率)
选择定时器
定时器速
波特率计算公式
度
1T
定时器2重载值 = 65536 -
12T
定时器2重载值 = 65536 -
1T
定时器1重载值 = 65536 -
12T
定时器1重载值 = 65536 -
1T
定时器1重载值 = 256 -
12T
定时器1重载值 = 256 -
SYSclk
4×波特率
定时器2
SYSclk
12×4×波特率
SYSclk
4×波特率
定时器1模式0
SYSclk
12×4×波特率
2SMOD×SYSclk
32×波特率
定时器1模式2
2SMOD×SYSclk
12×32×波特率
下面为常用频率与常用波特率所对应定时器的重载值
频率
(MHz)
11.0592
18.432
22.1184
定时器 2
波特率
定时器 1 模式 0
1T 模式
12T 模式
1T 模式
12T 模式
115200
FFE8H
FFFEH
FFE8H
57600
FFD0H
FFFCH
38400
FFB8H
19200
定时器 1 模式 2
SMOD=1
SMOD=0
1T 模式
12T 模式
1T 模式
12T 模式
FFFEH
FAH
-
FDH
-
FFD0H
FFFCH
F4H
FFH
FAH
-
FFFAH
FFB8H
FFFAH
EEH
-
F7H
-
FF70H
FFF4H
FF70H
FFF4H
DCH
FDH
EEH
-
9600
FEE0H
FFE8H
FEE0H
FFE8H
B8H
FAH
DCH
FDH
115200
FFD8H
-
FFD8H
-
F6H
-
FBH
-
57600
FFB0H
-
FFB0H
-
ECH
-
F6H
-
38400
FF88H
FFF6H
FF88H
FFF6H
E2H
-
F1H
-
19200
FF10H
FFECH
FF10H
FFECH
C4H
FBH
E2H
-
9600
FE20H
FFD8H
FE20H
FFD8H
88H
F6H
C4H
FBH
115200
FFD0H
FFFCH
FFD0H
FFFCH
F4H
FFH
FAH
-
57600
FFA0H
FFF8H
FFA0H
FFF8H
E8H
FEH
F4H
FFH
38400
FF70H
FFF4H
FF70H
FFF4H
DCH
FDH
EEH
-
19200
FEE0H
FFE8H
FEE0H
FFE8H
B8H
FAH
DCH
FDH
9600
FDC0H
FFD0H
FDC0H
FFD0H
70H
F4H
B8H
FAH
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 288 -
STC8 系列技术手册
13.2.3
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
串口 1 模式 2
当 SM0、SM1 两位为 10 时,串行口 1 工作在模式 2。串行口 1 工作模式 2 为 9 位数据异步通信
UART 模式,其一帧的信息由 11 位组成:1 位起始位,8 位数据位(低位在先),1 位可编程位(第 9
位数据)和 1 位停止位。发送时可编程位(第 9 位数据)由 SCON 中的 TB8 提供,可软件设置为 1 或
0,或者可将 PSW 中的奇/偶校验位 P 值装入 TB8(TB8 既可作为多机通信中的地址数据标志位,又可
作为数据的奇偶校验位)
。接收时第 9 位数据装入 SCON 的 RB8。TxD 为发送端口,RxD 为接收端口,
以全双工模式进行接收/发送。
模式 2 的波特率固定为系统时钟的 64 分频或 32 分频(取决于 PCON 中 SMOD 的值)
串口 1 模式 2 的波特率计算公式如下表所示(SYSclk 为系统工作频率):
SMOD
波特率计算公式
0
波特率 =
1
波特率 =
SYSclk
64
SYSclk
32
模式 2 和模式 1 相比,除波特率发生源略有不同,发送时由 TB8 提供给移位寄存器第 9 数据位不
同外,其余功能结构均基本相同,其接收/发送操作过程及时序也基本相同。
当接收器接收完一帧信息后必须同时满足下列条件:
·RI=0
·SM2=0 或者 SM2=1 且接收到的第 9 数据位 RB8=1。
当上述两条件同时满足时,才将接收到的移位寄存器的数据装入 SBUF 和 RB8 中,RI 标志位被置
1,并向主机请求中断处理。如果上述条件有一个不满足,则刚接收到移位寄存器中的数据无效而丢失,
也不置位 RI。无论上述条件满足与否,接收器又重新开始检测 RxD 输入端口的跳变信息,接收下一帧
的输入信息。在模式 2 中,接收到的停止位与 SBUF、RB8 和 RI 无关。
通过软件对 SCON 中的 SM2、TB8 的设置以及通信 Ð 议的约定,为多机通信提供了方便。
写SBUF
TxD
Start
D0
D1
D2
D3
D4
D5
D6
D7
TB8
Stop
D6
D7
RB8
Stop
TI
发送数据(串口1模式2)
写SCON
RxD
REN=1,RI=0
Start
D0
D1
D2
D3
D4
D5
RI
接收数据(串口1模式2)
13.2.4
串口 1 模式 3
当 SM0、SM1 两位为 11 时,串行口 1 工作在模式 3。串行通信模式 3 为 9 位数据异步通信 UART
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 289 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
模式,其一帧的信息由 11 位组成:1 位起始位,8 位数据位(低位在先),1 位可编程位(第 9 位数据)
和 1 位停止位。发送时可编程位(第 9 位数据)由 SCON 中的 TB8 提供,可软件设置为 1 或 0,或者
可将 PSW 中的奇/偶校验位 P 值装入 TB8(TB8 既可作为多机通信中的地址数据标志位,又可作为数据
的奇偶校验位)。接收时第 9 位数据装入 SCON 的 RB8。TxD 为发送端口,RxD 为接收端口,以全双工
模式进行接收/发送。
模式 3 和模式 1 相比,除发送时由 TB8 提供给移位寄存器第 9 数据位不同外,其余功能结构均基
本相同,其接收‘发送操作过程及时序也基本相同。
当接收器接收完一帧信息后必须同时满足下列条件:
·RI=0
·SM2=0 或者 SM2=1 且接收到的第 9 数据位 RB8=1。
当上述两条件同时满足时,才将接收到的移位寄存器的数据装入 SBUF 和 RB8 中,RI 标志位被置
1,并向主机请求中断处理。如果上述条件有一个不满足,则刚接收到移位寄存器中的数据无效而丢失,
也不置位 RI。无论上述条件满足与否,接收器又重新开始检测 RxD 输入端口的跳变信息,接收下一帧
的输入信息。在模式 3 中,接收到的停止位与 SBUF、RB8 和 RI 无关。
通过软件对 SCON 中的 SM2、TB8 的设置以及通信协议的约定,为多机通信提供了方便。
写SBUF
TxD
Start
D0
D1
D2
D3
D4
D5
D6
D7
TB8
Stop
D6
D7
RB8
Stop
TI
发送数据(串口1模式3)
写SCON
RxD
REN=1,RI=0
Start
D0
D1
D2
D3
D4
D5
RI
接收数据(串口1模式3)
串口 1 模式 3 的波特率计算公式与模式 1 是完全相同的。请参考模式 1 的波特率计算公式。
13.2.5
自动地址识别
串口 1 从机地址控制寄存器
符号
地址
SADDR
A9H
SADEN
B9H
B7
B6
B5
B4
B3
B2
B1
B0
SADDR:从机地址寄存器
SADEN:从机地址屏蔽位寄存器
自动地址识别功能典型应用在多机通讯领域,其主要原理是从机系统通过硬件比较功能来识别来自
于主机串口数据流中的地址信息,通过寄存器 SADDR 和 SADEN 设置的本机的从机地址,硬件自动对
从机地址进行过滤,当来自于主机的从机地址信息与本机所设置的从机地址相匹配时,硬件产生串口中
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 290 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
断;否则硬件自动丢弃串口数据,而不产生中断。当众多处于空闲模式的从机链接在一起时,只有从机
地址相匹配的从机才会从空闲模式唤醒,从而可以大大降低从机 MCU 的功耗,即使从机处于正常工作
状态也可避免不停地进入串口中断而降低系统执行效率。
要使用串口的自动地址识别功能,首先需要将参与通讯的 MCU 的串口通讯模式设置为模式 2 或者
模式 3(通常都选择波特率可变的模式 3,因为模式 2 的波特率是固定的,不便于调节),并开启从机的
SCON 的 SM2 位。对于串口模式 2 或者模式 3 的 9 位数据位中,第 9 位数据(存放在 RB8 中)为地址
/数据的标志位,当第 9 位数据为 1 时,表示前面的 8 位数据(存放在 SBUF 中)为地址信息。当 SM2
被设置为 1 时,从机 MCU 会自动过滤掉非地址数据(第 9 位为 0 的数据),而对 SBUF 中的地址数据
(第 9 位为 1 的数据)自动与 SADDR 和 SADEN 所设置的本机地址进行比较,若地址相匹配,则会将
RI 置“1”,并产生中断,否则不予处理本次接收的串口数据。
从机地址的设置是通过 SADDR 和 SADEN 两个寄存器进行设置的。SADDR 为从机地址寄存器,
里面存放本机的从机地址。SADEN 为从机地址屏蔽位寄存器,用于设置地址信息中的忽略位,设置方
法如下:
例如
11001010
SADDR =
SADEN =
10000001
则匹配地址为 1xxxxxx0
即,只要主机送出的地址数据中的 bit0 为 0 且 bit7 为 1 就可以和本机地址相匹配
再例如
11001010
SADDR =
00001111
SADEN =
则匹配地址为 xxxx1010
即,只要主机送出的地址数据中的低 4 位为 1010 就可以和本机地址相匹配,而高 4 为被忽略,可
以为任意值。
主机可以使用广播地址(FFH)同时选中所有的从机来进行通讯。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 291 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
13.3 串口 2
串口 2 控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
S2CON
9AH
S2SM0
-
S2SM2
S2REN
S2TB8
S2RB8
S2TI
S2RI
S2SM0:指定串口2的通信工作模式,如下表所示:
S2SM0
串口2工作模式
功能说明
0
模式0
可变波特率8位数据方式
1
模式1
可变波特率9位数据方式
S2SM2:允许串口 2 在模式 1 时允许多机通信控制位。在模式 1 时,如果 S2SM2 位为 1 且 S2REN 位为
1,则接收机处于地址帧筛选状态。此时可以利用接收到的第 9 位(即 S2RB8)来筛选地址帧:
若 S2RB8=1,说明该帧是地址帧,地址信息可以进入 S2BUF,并使 S2RI 为 1,进而在中断服务
程序中再进行地址号比较;若 S2RB8=0,说明该帧不是地址帧,应丢掉且保持 S2RI=0。在模式
1 中,如果 S2SM2 位为 0 且 S2REN 位为 1,接收收机处于地址帧筛选被禁止状态。不论收到的
S2RB8 为 0 或 1,均可使接收到的信息进入 S2BUF,并使 S2RI=1,此时 S2RB8 通常为校验位。
模式 0 为非多机通信方式,在这种方式时,要设置 S2SM2 应为 0。
S2REN:允许/禁止串口接收控制位
0:禁止串口接收数据
1:允许串口接收数据
S2TB8:当串口 2 使用模式 1 时,S2TB8 为要发送的第 9 位数据,一般用作校验位或者地址帧/数据帧
标志位,按需要由软件置位或清 0。在模式 0 中,该位不用。
S2RB8:当串口 2 使用模式 1 时,S2RB8 为接收到的第 9 位数据,一般用作校验位或者地址帧/数据帧
标志位。在模式 0 中,该位不用。
S2TI:串口 2 发送中断请求标志位。在停止位开始发送时由硬件自动将 S2TI 置 1,向 CPU 发请求中断,
响应中断后 S2TI 必须用软件清零。
S2RI:串口 2 接收中断请求标志位。串行接收到停止位的中间时刻由硬件自动将 S2RI 置 1,向 CPU 发
中断申请,响应中断后 S2RI 必须由软件清零。
串口 2 数据寄存器
符号
地址
S2BUF
9BH
B7
B6
B5
B4
B3
B2
B1
B0
S2BUF:串口 1 数据接收/发送缓冲区。S2BUF 实际是 2 个缓冲器,读缓冲器和写缓冲器,两个操作分
别对应两个不同的寄存器,1 个是只写寄存器(写缓冲器),1 个是只读寄存器(读缓冲器)。对
S2BUF 进行读操作,实际是读取串口接收缓冲区,对 S2BUF 进行写操作则是触发串口开始发送
数据。
13.3.1
串口 2 模式 0
串行口 2 的模式 0 为 8 位数据位可变波特率 UART 工作模式。此模式一帧信息为 10 位:1 位起始
位,8 位数据位(低位在先)和 1 位停止位。波特率可变,可根据需要进行设置波特率。TxD2 为数据
发送口,RxD2 为数据接收口,串行口全双工接受/发送。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 292 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
写S2BUF
TxD2
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
S2TI
发送数据(串口2模式0)
写S2CON
S2REN=1, S2RI=0
RxD2
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
S2RI
接收数据(串口2模式0)
串口 2 的波特率是可变的,其波特率由定时器 2 产生。当定时器采用 1T 模式时(12 倍速),相应
的波特率的速度也会相应提高 12 倍。
串口 2 模式 0 的波特率计算公式如下表所示:(SYSclk 为系统工作频率)
选择定时器
定时器速度
波特率计算公式
1T
定时器2重载值 = 65536 -
12T
定时器2重载值 = 65536 -
SYSclk
4×波特率
定时器2
13.3.2
SYSclk
12×4×波特率
串口 2 模式 1
串行口 2 的模式 1 为 9 位数据位可变波特率 UART 工作模式。此模式一帧信息为 11 位:1 位起始
位,9 位数据位(低位在先)和 1 位停止位。波特率可变,可根据需要进行设置波特率。TxD2 为数据
发送口,RxD2 为数据接收口,串行口全双工接受/发送。
写S2BUF
TxD2
Start
D0
D1
D2
D3
D4
D5
D6
D7
TB8
Stop
D6
D7
RB8
Stop
S2TI
发送数据(串口2模式1)
写S2CON
RxD2
S2REN=1,S2RI=0
Start
D0
D1
D2
D3
D4
D5
S2RI
接收数据(串口2模式1)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 293 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
串口 2 模式 1 的波特率计算公式与模式 0 是完全相同的。请参考模式 0 的波特率计算公式。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 294 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
13.4 串口 3
串口 3 控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
S3CON
ACH
S3SM0
S3ST3
S3SM2
S3REN
S3TB8
S3RB8
S3TI
S3RI
S3SM0:指定串口3的通信工作模式,如下表所示:
S3SM0
串口3工作模式
功能说明
0
模式0
可变波特率8位数据方式
1
模式1
可变波特率9位数据方式
S3ST3:选择串口 3 的波特率发生器
0:选择定时器 2 为串口 3 的波特率发生器
1:选择定时器 3 为串口 3 的波特率发生器
S3SM2:允许串口 3 在模式 1 时允许多机通信控制位。在模式 1 时,如果 S3SM2 位为 1 且 S3REN 位为
1,则接收机处于地址帧筛选状态。此时可以利用接收到的第 9 位(即 S3RB8)来筛选地址帧:
若 S3RB8=1,说明该帧是地址帧,地址信息可以进入 S3BUF,并使 S3RI 为 1,进而在中断服务
程序中再进行地址号比较;若 S3RB8=0,说明该帧不是地址帧,应丢掉且保持 S3RI=0。在模式
1 中,如果 S3SM2 位为 0 且 S3REN 位为 1,接收收机处于地址帧筛选被禁止状态。不论收到的
S3RB8 为 0 或 1,均可使接收到的信息进入 S3BUF,并使 S3RI=1,此时 S3RB8 通常为校验位。
模式 0 为非多机通信方式,在这种方式时,要设置 S3SM2 应为 0。
S3REN:允许/禁止串口接收控制位
0:禁止串口接收数据
1:允许串口接收数据
S3TB8:当串口 3 使用模式 1 时,S3TB8 为要发送的第 9 位数据,一般用作校验位或者地址帧/数据帧
标志位,按需要由软件置位或清 0。在模式 0 中,该位不用。
S3RB8:当串口 3 使用模式 1 时,S3RB8 为接收到的第 9 位数据,一般用作校验位或者地址帧/数据帧
标志位。在模式 0 中,该位不用。
S3TI:串口 3 发送中断请求标志位。在停止位开始发送时由硬件自动将 S3TI 置 1,向 CPU 发请求中断,
响应中断后 S3TI 必须用软件清零。
S3RI:串口 3 接收中断请求标志位。串行接收到停止位的中间时刻由硬件自动将 S3RI 置 1,向 CPU 发
中断申请,响应中断后 S3RI 必须由软件清零。
串口 3 数据寄存器
符号
地址
S3BUF
ADH
B7
B6
B5
B4
B3
B2
B1
B0
S3BUF:串口 1 数据接收/发送缓冲区。S3BUF 实际是 2 个缓冲器,读缓冲器和写缓冲器,两个操作分
别对应两个不同的寄存器,1 个是只写寄存器(写缓冲器),1 个是只读寄存器(读缓冲器)。对
S3BUF 进行读操作,实际是读取串口接收缓冲区,对 S3BUF 进行写操作则是触发串口开始发送
数据。
13.4.1
串口 3 模式 0
串行口 3 的模式 0 为 8 位数据位可变波特率 UART 工作模式。此模式一帧信息为 10 位:1 位起始
位,8 位数据位(低位在先)和 1 位停止位。波特率可变,可根据需要进行设置波特率。TxD3 为数据
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 295 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
发送口,RxD3 为数据接收口,串行口全双工接受/发送。
写S3BUF
TxD3
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
S3TI
发送数据(串口3模式0)
写S3CON
RxD3
S3REN=1, S3RI=0
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
S3RI
接收数据(串口3模式0)
串口 3 的波特率是可变的,其波特率可由定时器 2 或定时器 3 产生。当定时器采用 1T 模式时(12
倍速),相应的波特率的速度也会相应提高 12 倍。
串口 3 模式 0 的波特率计算公式如下表所示:(SYSclk 为系统工作频率)
选择定时器
定时器速度
波特率计算公式
1T
定时器2重载值 = 65536 -
12T
定时器2重载值 = 65536 -
1T
定时器3重载值 = 65536 -
12T
定时器3重载值 = 65536 -
SYSclk
4×波特率
定时器2
SYSclk
12×4×波特率
SYSclk
4×波特率
定时器3
13.4.2
SYSclk
12×4×波特率
串口 3 模式 1
串行口 3 的模式 1 为 9 位数据位可变波特率 UART 工作模式。此模式一帧信息为 11 位:1 位起始
位,9 位数据位(低位在先)和 1 位停止位。波特率可变,可根据需要进行设置波特率。TxD3 为数据
发送口,RxD3 为数据接收口,串行口全双工接受/发送。
写S3BUF
TxD3
Start
D0
D1
D2
D3
D4
D5
D6
D7
TB8
Stop
S3TI
发送数据(串口3模式1)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 296 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
写S3CON
RxD3
技术支持: 13922829991
研发顾问: 13922805190
S3REN=1,S3RI=0
Start
D0
D1
D2
D3
D4
D5
D6
D7
RB8
Stop
S3RI
接收数据(串口3模式1)
串口 3 模式 1 的波特率计算公式与模式 0 是完全相同的。请参考模式 0 的波特率计算公式。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 297 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
13.5 串口 4
串口 4 控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
S4CON
84H
S4SM0
S4ST4
S4SM2
S4REN
S4TB8
S4RB8
S4TI
S4RI
S4SM0:指定串口4的通信工作模式,如下表所示:
S4SM0
串口4工作模式
功能说明
0
模式0
可变波特率8位数据方式
1
模式1
可变波特率9位数据方式
S4ST4:选择串口 4 的波特率发生器
0:选择定时器 2 为串口 4 的波特率发生器
1:选择定时器 4 为串口 4 的波特率发生器
S4SM2:允许串口 4 在模式 1 时允许多机通信控制位。在模式 1 时,如果 S4SM2 位为 1 且 S4REN 位为
1,则接收机处于地址帧筛选状态。此时可以利用接收到的第 9 位(即 S4RB8)来筛选地址帧:
若 S4RB8=1,说明该帧是地址帧,地址信息可以进入 S4BUF,并使 S4RI 为 1,进而在中断服务
程序中再进行地址号比较;若 S4RB8=0,说明该帧不是地址帧,应丢掉且保持 S4RI=0。在模式
1 中,如果 S4SM2 位为 0 且 S4REN 位为 1,接收收机处于地址帧筛选被禁止状态。不论收到的
S4RB8 为 0 或 1,均可使接收到的信息进入 S4BUF,并使 S4RI=1,此时 S4RB8 通常为校验位。
模式 0 为非多机通信方式,在这种方式时,要设置 S4SM2 应为 0。
S4REN:允许/禁止串口接收控制位
0:禁止串口接收数据
1:允许串口接收数据
S4TB8:当串口 4 使用模式 1 时,S4TB8 为要发送的第 9 位数据,一般用作校验位或者地址帧/数据帧
标志位,按需要由软件置位或清 0。在模式 0 中,该位不用。
S4RB8:当串口 4 使用模式 1 时,S4RB8 为接收到的第 9 位数据,一般用作校验位或者地址帧/数据帧
标志位。在模式 0 中,该位不用。
S4TI:串口 4 发送中断请求标志位。在停止位开始发送时由硬件自动将 S4TI 置 1,向 CPU 发请求中断,
响应中断后 S4TI 必须用软件清零。
S4RI:串口 4 接收中断请求标志位。串行接收到停止位的中间时刻由硬件自动将 S4RI 置 1,向 CPU 发
中断申请,响应中断后 S4RI 必须由软件清零。
串口 4 数据寄存器
符号
地址
S4BUF
85H
B7
B6
B5
B4
B3
B2
B1
B0
S4BUF:串口 1 数据接收/发送缓冲区。S4BUF 实际是 2 个缓冲器,读缓冲器和写缓冲器,两个操作分
别对应两个不同的寄存器,1 个是只写寄存器(写缓冲器),1 个是只读寄存器(读缓冲器)。对
S4BUF 进行读操作,实际是读取串口接收缓冲区,对 S4BUF 进行写操作则是触发串口开始发送
数据。
13.5.1
串口 4 模式 0
串行口 4 的模式 0 为 8 位数据位可变波特率 UART 工作模式。此模式一帧信息为 10 位:1 位起始
位,8 位数据位(低位在先)和 1 位停止位。波特率可变,可根据需要进行设置波特率。TxD4 为数据
发送口,RxD4 为数据接收口,串行口全双工接受/发送。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 298 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
写S4BUF
TxD4
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
S4TI
发送数据(串口4模式0)
写S4CON
RxD4
S4REN=1, S4RI=0
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
S4RI
接收数据(串口4模式0)
串口 4 的波特率是可变的,其波特率可由定时器 2 或定时器 4 产生。当定时器采用 1T 模式时(12
倍速),相应的波特率的速度也会相应提高 12 倍。
串口 4 模式 0 的波特率计算公式如下表所示:(SYSclk 为系统工作频率)
选择定时器
定时器速度
波特率计算公式
1T
定时器2重载值 = 65536 -
12T
定时器2重载值 = 65536 -
1T
定时器4重载值 = 65536 -
12T
定时器4重载值 = 65536 -
SYSclk
4×波特率
定时器2
SYSclk
12×4×波特率
SYSclk
4×波特率
定时器4
13.5.2
SYSclk
12×4×波特率
串口 4 模式 1
串行口 4 的模式 1 为 9 位数据位可变波特率 UART 工作模式。此模式一帧信息为 11 位:1 位起始
位,9 位数据位(低位在先)和 1 位停止位。波特率可变,可根据需要进行设置波特率。TxD4 为数据
发送口,RxD4 为数据接收口,串行口全双工接受/发送。
写S4BUF
TxD4
Start
D0
D1
D2
D3
D4
D5
D6
D7
TB8
Stop
S4TI
发送数据(串口4模式1)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 299 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
写S4CON
RxD4
技术支持: 13922829991
研发顾问: 13922805190
S4REN=1,S4RI=0
Start
D0
D1
D2
D3
D4
D5
D6
D7
RB8
Stop
S4RI
接收数据(串口4模式1)
串口 4 模式 1 的波特率计算公式与模式 0 是完全相同的。请参考模式 0 的波特率计算公式。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 300 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
13.6 串口注意事项
关于串口中断请求有如下问题需要注意:(串口 1、串口 2、串口 3、串口 4 均类似,下面以串口 1
为例进行说明)
8 位数据模式时,发送完成整个停止位后产生 TI 中断请求,如下图所示:
写SBUF
TxD
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
TI
发送数据(8位数据)
8 位数据模式时,接收完成一半个停止位后产生 RI 中断请求,如下图所示:
写SCON
RxD
REN=1, RI=0
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
RI
接收数据(8位数据)
9 位数据模式时,发送完成整个第 9 位数据位后产生 TI 中断请求,如下图所示:
写SBUF
TxD
Start
D0
D1
D2
D3
D4
D5
D6
D7
TB8
Stop
TI
发送数据(9位数据)
9 位数据模式时,接收完成一半个第 9 位数据位后产生 RI 中断请求,如下图所示:
写SCON
RxD
REN=1,RI=0
Start
D0
D1
D2
D3
D4
D5
D6
D7
RB8
Stop
RI
接收数据(9位数据)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 301 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
13.7 范例程序
13.7.1
串口 1 使用定时器 2 做波特率发生器
汇编代码
AUXR
T2H
T2L
DATA
DATA
DATA
8EH
0D6H
0D7H
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
ORG
LJMP
ORG
LJMP
0000H
MAIN
0023H
UART_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
JNB
CLR
CLR
TI,CHKRI
TI
BUSY
JNB
CLR
MOV
ANL
ADD
MOV
MOV
INC
RI,UARTISR_EXIT
RI
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,SBUF
WPTR
POP
POP
RETI
PSW
ACC
MOV
MOV
MOV
MOV
CLR
MOV
MOV
RET
SCON,#50H
T2L,#0E8H
T2H,#0FFH
AUXR,#15H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
SBUF,A
;16 bytes
UART_ISR:
CHKRI:
UARTISR_EXIT:
UART_INIT:
;65536-11059200/115200/4=0FFE8H
UART_SEND:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 302 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
UART_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SENDEND:
RET
技术支持: 13922829991
研发顾问: 13922805190
A
A,@A+DPTR
SENDEND
UART_SEND
DPTR
UART_SENDSTR
MAIN:
MOV
SP,#3FH
LCALL
SETB
SETB
UART_INIT
ES
EA
MOV
LCALL
DPTR,#STRING
UART_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
ADD
MOV
MOV
LCALL
INC
JMP
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
A,#BUFFER
R0,A
A,@R0
UART_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
LOOP:
STRING:
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
sfr
sfr
AUXR
T2H
T2L
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
11059200UL
(65536 - FOSC / 115200 / 4)
=
=
=
0x8e;
0xd6;
0xd7;
void UartIsr() interrupt 4
{
if (TI)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 303 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
buffer[wptr++] = SBUF;
wptr &= 0x0f;
}
}
void UartInit()
{
SCON = 0x50;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x15;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void UartSendStr(char *p)
{
while (*p)
{
UartSend(*p++);
}
}
void main()
{
UartInit();
ES = 1;
EA = 1;
UartSendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
UartSend(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
13.7.2
串口 1 使用定时器 1(模式 0)做波特率发生器
汇编代码
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 304 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
AUXR
DATA
8EH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
ORG
LJMP
ORG
LJMP
0000H
MAIN
0023H
UART_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
JNB
CLR
CLR
TI,CHKRI
TI
BUSY
JNB
CLR
MOV
ANL
ADD
MOV
MOV
INC
RI,UARTISR_EXIT
RI
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,SBUF
WPTR
POP
POP
RETI
PSW
ACC
MOV
MOV
MOV
MOV
SETB
MOV
CLR
MOV
MOV
RET
SCON,#50H
TMOD,#00H
TL1,#0E8H
TH1,#0FFH
TR1
AUXR,#40H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
SBUF,A
技术支持: 13922829991
研发顾问: 13922805190
;16 bytes
UART_ISR:
CHKRI:
UARTISR_EXIT:
UART_INIT:
;65536-11059200/115200/4=0FFE8H
UART_SEND:
UART_SENDSTR:
CLR
MOVC
JZ
LCALL
江苏国芯科技有限公司
A
A,@A+DPTR
SENDEND
UART_SEND
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 305 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
INC
JMP
技术支持: 13922829991
研发顾问: 13922805190
DPTR
UART_SENDSTR
SENDEND:
RET
MAIN:
MOV
SP,#3FH
LCALL
SETB
SETB
UART_INIT
ES
EA
MOV
LCALL
DPTR,#STRING
UART_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
ADD
MOV
MOV
LCALL
INC
JMP
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
A,#BUFFER
R0,A
A,@R0
UART_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
LOOP:
STRING:
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
AUXR
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
11059200UL
(65536 - FOSC / 115200 / 4)
=
0x8e;
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
buffer[wptr++] = SBUF;
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 306 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
wptr &= 0x0f;
}
}
void UartInit()
{
SCON = 0x50;
TMOD = 0x00;
TL1 = BRT;
TH1 = BRT >> 8;
TR1 = 1;
AUXR = 0x40;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void UartSendStr(char *p)
{
while (*p)
{
UartSend(*p++);
}
}
void main()
{
UartInit();
ES = 1;
EA = 1;
UartSendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
UartSend(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
13.7.3
串口 1 使用定时器 1(模式 2)做波特率发生器
汇编代码
AUXR
DATA
8EH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
江苏国芯科技有限公司
;16 bytes
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 307 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
ORG
LJMP
ORG
LJMP
0000H
MAIN
0023H
UART_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
JNB
CLR
CLR
TI,CHKRI
TI
BUSY
JNB
CLR
MOV
ANL
ADD
MOV
MOV
INC
RI,UARTISR_EXIT
RI
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,SBUF
WPTR
POP
POP
RETI
PSW
ACC
MOV
MOV
MOV
MOV
SETB
MOV
CLR
MOV
MOV
RET
SCON,#50H
TMOD,#20H
TL1,#0FDH
TH1,#0FDH
TR1
AUXR,#40H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
SBUF,A
技术支持: 13922829991
研发顾问: 13922805190
UART_ISR:
CHKRI:
UARTISR_EXIT:
UART_INIT:
;256-11059200/115200/32=0FDH
UART_SEND:
UART_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SENDEND:
RET
A
A,@A+DPTR
SENDEND
UART_SEND
DPTR
UART_SENDSTR
MAIN:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 308 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
MOV
SP,#3FH
LCALL
SETB
SETB
UART_INIT
ES
EA
MOV
LCALL
DPTR,#STRING
UART_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
ADD
MOV
MOV
LCALL
INC
JMP
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
A,#BUFFER
R0,A
A,@R0
UART_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
技术支持: 13922829991
研发顾问: 13922805190
LOOP:
STRING:
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
AUXR
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
11059200UL
(256 - FOSC / 115200 / 32)
=
0x8e;
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
buffer[wptr++] = SBUF;
wptr &= 0x0f;
}
}
void UartInit()
{
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 309 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
SCON = 0x50;
TMOD = 0x20;
TL1 = BRT;
TH1 = BRT;
TR1 = 1;
AUXR = 0x40;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void UartSendStr(char *p)
{
while (*p)
{
UartSend(*p++);
}
}
void main()
{
UartInit();
ES = 1;
EA = 1;
UartSendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
UartSend(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
13.7.4
串口 2 使用定时器 2 做波特率发生器
汇编代码
AUXR
T2H
T2L
S2CON
S2BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
8EH
0D6H
0D7H
9AH
9BH
0AFH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
江苏国芯科技有限公司
;16 bytes
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 310 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
ORG
LJMP
ORG
LJMP
0000H
MAIN
0043H
UART2_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
MOV
JNB
ANL
CLR
A,S2CON
ACC.1,CHKRI
S2CON,#NOT 02H
BUSY
技术支持: 13922829991
研发顾问: 13922805190
UART2_ISR:
CHKRI:
JNB
ANL
MOV
ANL
ADD
MOV
MOV
INC
UART2ISR_EXIT:
POP
POP
RETI
ACC.0,UART2ISR_EXIT
S2CON,#NOT 01H
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,S2BUF
WPTR
PSW
ACC
UART2_INIT:
MOV
MOV
MOV
MOV
CLR
MOV
MOV
RET
S2CON,#50H
T2L,#0E8H
T2H,#0FFH
AUXR,#14H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
S2BUF,A
;65536-11059200/115200/4=0FFE8H
UART2_SEND:
UART2_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SEND2END:
RET
A
A,@A+DPTR
SEND2END
UART2_SEND
DPTR
UART2_SENDSTR
MAIN:
MOV
江苏国芯科技有限公司
SP,#3FH
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 311 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
LCALL
MOV
SETB
UART2_INIT
IE2,#01H
EA
MOV
LCALL
DPTR,#STRING
UART2_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
ADD
MOV
MOV
LCALL
INC
JMP
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
A,#BUFFER
R0,A
A,@R0
UART2_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
技术支持: 13922829991
研发顾问: 13922805190
LOOP:
STRING:
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
sfr
sfr
sfr
sfr
sfr
AUXR
T2H
T2L
S2CON
S2BUF
IE2
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
11059200UL
(65536 - FOSC / 115200 / 4)
=
=
=
=
=
=
0x8e;
0xd6;
0xd7;
0x9a;
0x9b;
0xaf;
void Uart2Isr() interrupt 8
{
if (S2CON & 0x02)
{
S2CON &= ~0x02;
busy = 0;
}
if (S2CON & 0x01)
{
S2CON &= ~0x01;
buffer[wptr++] = S2BUF;
wptr &= 0x0f;
}
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 312 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
void Uart2Init()
{
S2CON = 0x50;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x14;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void Uart2Send(char dat)
{
while (busy);
busy = 1;
S2BUF = dat;
}
void Uart2SendStr(char *p)
{
while (*p)
{
Uart2Send(*p++);
}
}
void main()
{
Uart2Init();
IE2 = 0x01;
EA = 1;
Uart2SendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart2Send(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
13.7.5
串口 3 使用定时器 2 做波特率发生器
汇编代码
AUXR
T2H
T2L
S3CON
S3BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
8EH
0D6H
0D7H
0ACH
0ADH
0AFH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
江苏国芯科技有限公司
;16 bytes
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 313 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
ORG
LJMP
ORG
LJMP
0000H
MAIN
008BH
UART3_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
MOV
JNB
ANL
CLR
A,S3CON
ACC.1,CHKRI
S3CON,#NOT 02H
BUSY
技术支持: 13922829991
研发顾问: 13922805190
UART3_ISR:
CHKRI:
JNB
ANL
MOV
ANL
ADD
MOV
MOV
INC
UART3ISR_EXIT:
POP
POP
RETI
ACC.0,UART3ISR_EXIT
S3CON,#NOT 01H
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,S3BUF
WPTR
PSW
ACC
UART3_INIT:
MOV
MOV
MOV
MOV
CLR
MOV
MOV
RET
S3CON,#10H
T2L,#0E8H
T2H,#0FFH
AUXR,#14H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
S3BUF,A
;65536-11059200/115200/4=0FFE8H
UART3_SEND:
UART3_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SEND3END:
RET
A
A,@A+DPTR
SEND3END
UART3_SEND
DPTR
UART3_SENDSTR
MAIN:
MOV
江苏国芯科技有限公司
SP,#3FH
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 314 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
LCALL
MOV
SETB
UART3_INIT
IE2,#08H
EA
MOV
LCALL
DPTR,#STRING
UART3_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
ADD
MOV
MOV
LCALL
INC
JMP
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
A,#BUFFER
R0,A
A,@R0
UART3_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
技术支持: 13922829991
研发顾问: 13922805190
LOOP:
STRING:
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
sfr
sfr
sfr
sfr
sfr
AUXR
T2H
T2L
S3CON
S3BUF
IE2
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
11059200UL
(65536 - FOSC / 115200 / 4)
=
=
=
=
=
=
0x8e;
0xd6;
0xd7;
0xac;
0xad;
0xaf;
void Uart3Isr() interrupt 17
{
if (S3CON & 0x02)
{
S3CON &= ~0x02;
busy = 0;
}
if (S3CON & 0x01)
{
S3CON &= ~0x01;
buffer[wptr++] = S3BUF;
wptr &= 0x0f;
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 315 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
}
void Uart3Init()
{
S3CON = 0x10;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x14;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void Uart3Send(char dat)
{
while (busy);
busy = 1;
S3BUF = dat;
}
void Uart3SendStr(char *p)
{
while (*p)
{
Uart3Send(*p++);
}
}
void main()
{
Uart3Init();
IE2 = 0x08;
EA = 1;
Uart3SendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart3Send(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
13.7.6
串口 3 使用定时器 3 做波特率发生器
汇编代码
T4T3M
T4H
T4L
T3H
T3L
S3CON
S3BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D1H
0D2H
0D3H
0D4H
0D5H
0ACH
0ADH
0AFH
BUSY
BIT
20H.0
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 316 -
STC8 系列技术手册
WPTR
RPTR
BUFFER
官方网站: www.STCMCUDATA.com / www.STCMCU.com
DATA
DATA
DATA
21H
22H
23H
ORG
LJMP
ORG
LJMP
0000H
MAIN
008BH
UART3_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
MOV
JNB
ANL
CLR
A,S3CON
ACC.1,CHKRI
S3CON,#NOT 02H
BUSY
技术支持: 13922829991
研发顾问: 13922805190
;16 bytes
UART3_ISR:
CHKRI:
JNB
ANL
MOV
ANL
ADD
MOV
MOV
INC
UART3ISR_EXIT:
POP
POP
RETI
ACC.0,UART3ISR_EXIT
S3CON,#NOT 01H
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,S3BUF
WPTR
PSW
ACC
UART3_INIT:
MOV
MOV
MOV
MOV
CLR
MOV
MOV
RET
S3CON,#50H
T3L,#0E8H
T3H,#0FFH
T4T3M,#0AH
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
S3BUF,A
;65536-11059200/115200/4=0FFE8H
UART3_SEND:
UART3_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SEND3END:
RET
江苏国芯科技有限公司
A
A,@A+DPTR
SEND3END
UART3_SEND
DPTR
UART3_SENDSTR
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 317 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
MAIN:
MOV
SP,#3FH
LCALL
MOV
SETB
UART3_INIT
IE2,#08H
EA
MOV
LCALL
DPTR,#STRING
UART3_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
ADD
MOV
MOV
LCALL
INC
JMP
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
A,#BUFFER
R0,A
A,@R0
UART3_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
LOOP:
STRING:
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
T4T3M
T4H
T4L
T3H
T3L
S3CON
S3BUF
IE2
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
11059200UL
(65536 - FOSC / 115200 / 4)
=
=
=
=
=
=
=
=
0xd1;
0xd2;
0xd3;
0xd4;
0xd5;
0xac;
0xad;
0xaf;
void Uart3Isr() interrupt 17
{
if (S3CON & 0x02)
{
S3CON &= ~0x02;
busy = 0;
}
if (S3CON & 0x01)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 318 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
{
S3CON &= ~0x01;
buffer[wptr++] = S3BUF;
wptr &= 0x0f;
}
}
void Uart3Init()
{
S3CON = 0x50;
T3L = BRT;
T3H = BRT >> 8;
T4T3M = 0x0a;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void Uart3Send(char dat)
{
while (busy);
busy = 1;
S3BUF = dat;
}
void Uart3SendStr(char *p)
{
while (*p)
{
Uart3Send(*p++);
}
}
void main()
{
Uart3Init();
IE2 = 0x08;
EA = 1;
Uart3SendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart3Send(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
13.7.7
串口 4 使用定时器 2 做波特率发生器
汇编代码
AUXR
T2H
T2L
S4CON
S4BUF
DATA
DATA
DATA
DATA
DATA
江苏国芯科技有限公司
8EH
0D6H
0D7H
84H
085H
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 319 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
IE2
DATA
0AFH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
ORG
LJMP
ORG
LJMP
0000H
MAIN
0093H
UART4_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
MOV
JNB
ANL
CLR
A,S4CON
ACC.1,CHKRI
S4CON,#NOT 02H
BUSY
技术支持: 13922829991
研发顾问: 13922805190
;16 bytes
UART4_ISR:
CHKRI:
JNB
ANL
MOV
ANL
ADD
MOV
MOV
INC
UART4ISR_EXIT:
POP
POP
RETI
ACC.0,UART4ISR_EXIT
S4CON,#NOT 01H
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,S4BUF
WPTR
PSW
ACC
UART4_INIT:
MOV
MOV
MOV
MOV
CLR
MOV
MOV
RET
S4CON,#10H
T2L,#0E8H
T2H,#0FFH
AUXR,#14H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
S4BUF,A
;65536-11059200/115200/4=0FFE8H
UART4_SEND:
UART4_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
江苏国芯科技有限公司
A
A,@A+DPTR
SEND4END
UART4_SEND
DPTR
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 320 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
JMP
技术支持: 13922829991
研发顾问: 13922805190
UART4_SENDSTR
SEND4END:
RET
MAIN:
MOV
SP,#3FH
LCALL
MOV
SETB
UART4_INIT
IE2,#10H
EA
MOV
LCALL
DPTR,#STRING
UART4_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
ADD
MOV
MOV
LCALL
INC
JMP
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
A,#BUFFER
R0,A
A,@R0
UART4_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
LOOP:
STRING:
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
sfr
sfr
sfr
sfr
sfr
AUXR
T2H
T2L
S4CON
S4BUF
IE2
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
11059200UL
(65536 - FOSC / 115200 / 4)
=
=
=
=
=
=
0x8e;
0xd6;
0xd7;
0x84;
0x85;
0xaf;
void Uart4Isr() interrupt 18
{
if (S4CON & 0x02)
{
S4CON &= ~0x02;
busy = 0;
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 321 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
if (S4CON & 0x01)
{
S4CON &= ~0x01;
buffer[wptr++] = S4BUF;
wptr &= 0x0f;
}
}
void Uart4Init()
{
S4CON = 0x10;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x14;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void Uart4Send(char dat)
{
while (busy);
busy = 1;
S4BUF = dat;
}
void Uart4SendStr(char *p)
{
while (*p)
{
Uart4Send(*p++);
}
}
void main()
{
Uart4Init();
IE2 = 0x10;
EA = 1;
Uart4SendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart4Send(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
13.7.8
串口 4 使用定时器 4 做波特率发生器
汇编代码
T4T3M
T4H
T4L
T3H
DATA
DATA
DATA
DATA
江苏国芯科技有限公司
0D1H
0D2H
0D3H
0D4H
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 322 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
T3L
S4CON
S4BUF
IE2
DATA
DATA
DATA
DATA
0D5H
84H
085H
0AFH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
ORG
LJMP
ORG
LJMP
0000H
MAIN
0093H
UART4_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
MOV
JNB
ANL
CLR
A,S4CON
ACC.1,CHKRI
S4CON,#NOT 02H
BUSY
技术支持: 13922829991
研发顾问: 13922805190
;16 bytes
UART4_ISR:
CHKRI:
JNB
ANL
MOV
ANL
ADD
MOV
MOV
INC
UART4ISR_EXIT:
POP
POP
RETI
ACC.0,UART4ISR_EXIT
S4CON,#NOT 01H
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,S4BUF
WPTR
PSW
ACC
UART4_INIT:
MOV
MOV
MOV
MOV
CLR
MOV
MOV
RET
S4CON,#50H
T4L,#0E8H
T4H,#0FFH
T4T3M,#0A0H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
S4BUF,A
;65536-11059200/115200/4=0FFE8H
UART4_SEND:
UART4_SENDSTR:
CLR
MOVC
江苏国芯科技有限公司
A
A,@A+DPTR
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 323 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
JZ
LCALL
INC
JMP
技术支持: 13922829991
研发顾问: 13922805190
SEND4END
UART4_SEND
DPTR
UART4_SENDSTR
SEND4END:
RET
MAIN:
MOV
SP,#3FH
LCALL
MOV
SETB
UART4_INIT
IE2,#10H
EA
MOV
LCALL
DPTR,#STRING
UART4_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
ADD
MOV
MOV
LCALL
INC
JMP
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
A,#BUFFER
R0,A
A,@R0
UART4_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
LOOP:
STRING:
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
T4T3M
T4H
T4L
T3H
T3L
S4CON
S4BUF
IE2
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
11059200UL
(65536 - FOSC / 115200 / 4)
=
=
=
=
=
=
=
=
0xd1;
0xd2;
0xd3;
0xd4;
0xd5;
0x84;
0x85;
0xaf;
void Uart4Isr() interrupt 18
{
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 324 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
if (S4CON & 0x02)
{
S4CON &= ~0x02;
busy = 0;
}
if (S4CON & 0x01)
{
S4CON &= ~0x01;
buffer[wptr++] = S4BUF;
wptr &= 0x0f;
}
}
void Uart4Init()
{
S4CON = 0x50;
T4L = BRT;
T4H = BRT >> 8;
T4T3M = 0xa0;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
void Uart4Send(char dat)
{
while (busy);
busy = 1;
S4BUF = dat;
}
void Uart4SendStr(char *p)
{
while (*p)
{
Uart4Send(*p++);
}
}
void main()
{
Uart4Init();
IE2 = 0x10;
EA = 1;
Uart4SendStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart4Send(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 325 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
14 比较器,掉电检测,内部固定比较电压
STC8 系列单片机内部集成了一个比较器。比较器的正极可以是 P3.7 端口或者 ADC 的模拟输入通
道,而负极可以 P3.6 端口或者是内部 BandGap 经过 OP 后的 REFV 电压(内部固定比较电压)
。
比较器内部有可程序控制的两级滤波:模拟滤波和数字滤波。模拟滤波可以过滤掉比较输入信号中
的毛刺信号,数字滤波可以等待输入信号更加稳定后再进行比较。比较结果可直接通过读取内部寄存器
位获得,也可将比较器结果正向或反向输出到外部端口。将比较结果输出到外部端口可用作外部事件的
触发信号和反馈信号,可扩大比较的应用范围。
14.1 比较器内部结构图
P3.7
0
ADCIN
1
0.1us
PIS
REFV
(内部1.344V)
P3.6
CMPRES
模拟滤波
0
LCC
1
0
DISFLT
数字滤波
延时LCDTY个
CPU 时钟
CMPO
E
PIE
1
0
P3.4
1
P4.1
CMPO_S
CMPIF
NIS
NIE
比较器内部结构
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 326 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
14.2 比较器相关的寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
PIE
NIE
PIS
NIS
CMPCR1
比较器控制寄存器 1
E6H
CMPEN
CMPIF
CMPCR2
比较器控制寄存器 2
E7H
INVCMPO
DISFLT
B1
B0
CMPOE CMPRES 0000,0000
LCDTY[5:0]
0000,0000
比较器控制寄存器 1
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
CMPCR1
E6H
CMPEN
CMPIF
PIE
NIE
PIS
NIS
CMPOE
CMPRES
CMPEN:比较器模块使能位
0:关闭比较功能
1:使能比较功能
CMPIF:比较器中断标志位。当 PIE 或 NIE 被使能后,若产生相应的中断信号,硬件自动将 CMPIF 置
1,并向 CPU 提出中断请求。此标志位必须用户软件清零。
(注意:没有使能比较器中断时,硬件不会设置此中断标志,即使用查询方式访问比较器时,不
能查询此中断标志)
PIE:比较器上升沿中断使能位。
0:禁止比较器上升沿中断。
1:使能比较器上升沿中断。使能比较器的比较结果由 0 变成 1 时产生中断请求。
NIE:比较器下降沿中断使能位。
0:禁止比较器下降沿中断。
1:使能比较器下降沿中断。使能比较器的比较结果由 1 变成 0 时产生中断请求。
PIS:比较器的正极选择位
0:选择外部端口 P3.7 为比较器正极输入源。
1:通过 ADC_CONTR 中的 ADC_CHS 位选择 ADC 的模拟输入端作为比较器正极输入源。
NIS:比较器的负极选择位
0:选择内部 BandGap 经过 OP 后的电压 REFV 作为比较器负极输入源(REFV 的电压值为 1.344V,
由于制造误差,实际电压值可能在 1.34V~1.35V 之间)。
1:选择外部端口 P3.6 为比较器负极输入源。
CMPOE:比较器结果输出控制位
0:禁止比较器结果输出
1:使能比较器结果输出。比较器结果输出到 P3.4 或者 P4.1(由 P_SW2 中的 CMPO_S 进行设定)
CMPRES:比较器的比较结果。此位为只读。
0:表示 CMP+的电平低于 CMP-的电平
1:表示 CMP+的电平高于 CMP-的电平
CMPRES 是经过数字滤波后的输出信号,而不是比较器的直接输出结果。
比较器控制寄存器 2
符号
地址
B7
B6
CMPCR2
E7H
INVCMPO
DISFLT
B5
B4
B3
B2
B1
B0
LCDTY[5:0]
INVCMPO:比较器结果输出控制
0:比较器结果正向输出。若 CMPRES 为 0,则 P3.4/P4.1 输出低电平,反之输出高电平。
1:比较器结果反向输出。若 CMPRES 为 0,则 P3.4/P4.1 输出高电平,反之输出低电平。
DISFLT:模拟滤波功能控制
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 327 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
0:使能 0.1us 模拟滤波功能
1:关闭 0.1us 模拟滤波功能,可略微提高比较器的比较速度。
LCDTY[5:0]:数字滤波功能控制
数字滤波功能即为数字信号去抖动功能。当比较结果发生上升沿或者下降沿变化时,比较器侦测变
化后的信号必须维持 LCDTY 所设置的 CPU 时钟数不发生变化,才认为数据变化是有效的;否
则将视同信号无变化。
若 LCDTY 设置为 0 时表示关闭数字滤波功能。
比较器输出
CMPRES
LCDTY[5:0]
个CPU时钟
比较器输出
CMPRES
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 328 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
14.3 范例程序
14.3.1
比较器的使用(中断方式)
汇编代码
CMPCR1
CMPCR2
DATA
DATA
0E6H
0E7H
ORG
LJMP
ORG
LJMP
0000H
MAIN
00ABH
CMPISR
ORG
0100H
PUSH
ANL
MOV
JB
ACC
CMPCR1,#NOT 40H
A,CMPCR1
ACC.0,RSING
CPL
POP
RETI
P1.0
ACC
;下降沿中断测试端口
CPL
POP
RETI
P1.1
ACC
;上升沿中断测试端口
MOV
SP,#3FH
MOV
ANL
ORL
ANL
ORL
ANL
ORL
MOV
ORL
ANL
ORL
ANL
ORL
ANL
ORL
ANL
ORL
ANL
ORL
ORL
SETB
CMPCR2,#00H
CMPCR2,#NOT 80H
CMPCR2,#80H
CMPCR2,#NOT 40H
CMPCR2,#40H
CMPCR2,#NOT 3FH
CMPCR2,#10H
CMPCR1,#00H
CMPCR1,#30H
CMPCR1,#NOT 20H
CMPCR1,#20H
CMPCR1,#NOT 10H
CMPCR1,#10H
CMPCR1,#NOT 08H
CMPCR1,#08H
CMPCR1,#NOT 04H
CMPCR1,#04H
CMPCR1,#NOT 02H
CMPCR1,#02H
CMPCR1,#80H
EA
JMP
$
CMPISR:
;清中断标志
FALLING:
RSING:
MAIN:
;
;
;
;
;
;
;
;
;
;
;比较器正向输出
;比较器反向输出
;禁止 0.1us 滤波
;使能 0.1us 滤波
;比较器结果直接输出
;比较器结果经过 16 个去抖时钟后输出
;使能比较器边沿中断
;禁止比较器上升沿中断
;使能比较器上升沿中断
;禁止比较器下降沿中断
;使能比较器下降沿中断
;P3.7 为 CMP+输入脚
;ADC 输入脚为 CMP+输入教
;内部参考电压为 CMP-输入脚
;P3.6 为 CMP-输入脚
;禁止比较器输出
;使能比较器输出
;使能比较器模块
END
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 329 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
C 语言代码
#include "reg51.h"
#include "intrins.h"
sfr
sfr
CMPCR1
CMPCR2
=
=
0xe6;
0xe7;
sbit
sbit
P10
P11
=
=
P1^0;
P1^1;
void CMP_Isr() interrupt 21
{
CMPCR1 &= ~0x40;
if (CMPCR1 & 0x01)
{
P10 = !P10;
}
else
{
P11 = !P11;
}
}
//清中断标志
//下降沿中断测试端口
//上升沿中断测试端口
void main()
{
CMPCR2 = 0x00;
CMPCR2 &= ~0x80;
//
CMPCR2 |= 0x80;
CMPCR2 &= ~0x40;
//
CMPCR2 |= 0x40;
//
CMPCR2 &= ~0x3f;
CMPCR2 |= 0x10;
CMPCR1 = 0x00;
CMPCR1 |= 0x30;
//
CMPCR1 &= ~0x20;
//
CMPCR1 |= 0x20;
//
CMPCR1 &= ~0x10;
//
CMPCR1 |= 0x10;
CMPCR1 &= ~0x08;
//
CMPCR1 |= 0x08;
//
CMPCR1 &= ~0x04;
CMPCR1 |= 0x04;
//
CMPCR1 &= ~0x02;
CMPCR1 |= 0x02;
CMPCR1 |= 0x80;
//比较器正向输出
//比较器反向输出
//禁止 0.1us 滤波
//使能 0.1us 滤波
//比较器结果直接输出
//比较器结果经过 16 个去抖时钟后输出
//使能比较器边沿中断
//禁止比较器上升沿中断
//使能比较器上升沿中断
//禁止比较器下降沿中断
//使能比较器下降沿中断
//P3.7 为 CMP+输入脚
//ADC 输入脚为 CMP+输入教
//内部参考电压为 CMP-输入脚
//P3.6 为 CMP-输入脚
//禁止比较器输出
//使能比较器输出
//使能比较器模块
EA = 1;
while (1);
}
14.3.2
比较器的使用(查询方式)
汇编代码
CMPCR1
CMPCR2
DATA
DATA
江苏国芯科技有限公司
0E6H
0E7H
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 330 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP,#3FH
MOV
ANL
ORL
ANL
ORL
ANL
ORL
MOV
ORL
ANL
ORL
ANL
ORL
ANL
ORL
ANL
ORL
ANL
ORL
ORL
CMPCR2,#00H
CMPCR2,#NOT 80H
CMPCR2,#80H
CMPCR2,#NOT 40H
CMPCR2,#40H
CMPCR2,#NOT 3FH
CMPCR2,#10H
CMPCR1,#00H
CMPCR1,#30H
CMPCR1,#NOT 20H
CMPCR1,#20H
CMPCR1,#NOT 10H
CMPCR1,#10H
CMPCR1,#NOT 08H
CMPCR1,#08H
CMPCR1,#NOT 04H
CMPCR1,#04H
CMPCR1,#NOT 02H
CMPCR1,#02H
CMPCR1,#80H
MOV
MOV
MOV
JMP
A,CMPCR1
C,ACC.0
P1.0,C
LOOP
技术支持: 13922829991
研发顾问: 13922805190
MAIN:
;
;
;
;
;
;
;
;
;
;
;比较器正向输出
;比较器反向输出
;禁止 0.1us 滤波
;使能 0.1us 滤波
;比较器结果直接输出
;比较器结果经过 16 个去抖时钟后输出
;使能比较器边沿中断
;禁止比较器上升沿中断
;使能比较器上升沿中断
;禁止比较器下降沿中断
;使能比较器下降沿中断
;P3.7 为 CMP+输入脚
;ADC 输入脚为 CMP+输入教
;内部参考电压为 CMP-输入脚
;P3.6 为 CMP-输入脚
;禁止比较器输出
;使能比较器输出
;使能比较器模块
LOOP:
;读取比较器比较结果
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
sfr
sfr
CMPCR1
CMPCR2
=
=
0xe6;
0xe7;
sbit
sbit
P10
P11
=
=
P1^0;
P1^1;
void main()
{
CMPCR2 = 0x00;
CMPCR2 &= ~0x80;
//
CMPCR2 |= 0x80;
CMPCR2 &= ~0x40;
//
CMPCR2 |= 0x40;
//
CMPCR2 &= ~0x3f;
CMPCR2 |= 0x10;
CMPCR1 = 0x00;
CMPCR1 |= 0x30;
//
CMPCR1 &= ~0x20;
江苏国芯科技有限公司
//比较器正向输出
//比较器反向输出
//禁止 0.1us 滤波
//使能 0.1us 滤波
//比较器结果直接输出
//比较器结果经过 16 个去抖时钟后输出
//使能比较器边沿中断
//禁止比较器上升沿中断
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 331 -
STC8 系列技术手册
//
//
//
//
//
//
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
//使能比较器上升沿中断
//禁止比较器下降沿中断
//使能比较器下降沿中断
//P3.7 为 CMP+输入脚
//ADC 输入脚为 CMP+输入教
//内部参考电压为 CMP-输入脚
//P3.6 为 CMP-输入脚
//禁止比较器输出
//使能比较器输出
//使能比较器模块
CMPCR1 |= 0x20;
CMPCR1 &= ~0x10;
CMPCR1 |= 0x10;
CMPCR1 &= ~0x08;
CMPCR1 |= 0x08;
CMPCR1 &= ~0x04;
CMPCR1 |= 0x04;
CMPCR1 &= ~0x02;
CMPCR1 |= 0x02;
CMPCR1 |= 0x80;
while (1)
{
P10 = CMPCR1 & 0x01;
}
//读取比较器比较结果
}
14.3.3
比较器作外部掉电检测
Vcc
7805
Vin
470u
104
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
AGnd
AVref
AVcc
P5.4
Vcc
P5.5
Gnd
P0.2
P0.1
P0.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P4.1
CMP+ / P3.7
CMP- / P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
R1
100K以上
R2
?
STC8A8K64S4A12
上图中电阻 R1 和 R2 对稳压块 7805 的前端电压进行分压,分压后的电压作为比较器 CMP+的外部
输入与内部参考电压(约 1.344V 附近)进行比较。
一般当交流电在 220V 时,稳压块 7805 前端的直流电压为 11V,但当交流电压降到 160V 时,稳压
块 7805 前端的直留电压为 8.5V。当稳压块 7805 前端的直留电压低于或等于 8.5V 时,该前端输入的直
留电压被电阻 R1 和 R2 分压到比较器正极输入端 CMP+,CMP+端输入电压低于内部参考电压,此时可
产生比较器中断,这样在掉电检测时就有充足的时间将数据保存到 EEPROM 中。当稳压块 7805 前端的
直留电压高高于 8.5V 时,
该前端输入的直流电压被电阻 R1 和 R2 分压到比较器正极输入端 CMP+,
CMP+
端输入电压高于内部参考电压,此时 CPU 可继续正常工作。
内部参考电压即为内部 BandGap 经过 OP 后的电压 REFV,REFV 的电压值约在 1.344V 附近,由
于制造误差,实际电压值可能在 1.34V~1.35V 之间。具体的数值要通过读取内部参考电压在内部 RAM
区或者 ROM 区所占用的地址的值获得。对于 STC8 系列,内部参考电压值在 RAM 和 ROM 中的存储
地址如下表所示:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 332 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
单片机型号
技术支持: 13922829991
研发顾问: 13922805190
RAM 中存储的地址
ROM 中存储的地址
(高字节在前)
(高字节在前)
0EFH-0F0H
3FF7H-3FF8H
0EFH-0F0H
7FF7H-7FF8H
0EFH-0F0H
EFF7H-EFF8H
0EFH-0F0H
FDF7H-FDF8H
STC8A8K16S4A12/STC8A4K16S4A12
STC8F2K16S4/STC8F2K16S2
STC8A8K32S4A12/STC8A4K32S4A12
STC8F2K32S4/STC8F2K32S2
STC8A8K60S4A12/STC8A4K60S4A12
STC8F2K60S4/STC8F2K60S2
STC8A8K64S4A12/STC8A4K64S4A12
STC8F2K64S4/STC8F2K64S2
注:若需要从 ROM 中读取参考电压值,则需要在进行 ISP 下载时勾选下列选项
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 333 -
STC8 系列技术手册
14.3.4
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
比较器检测工作电压(电池电压)
Vcc
47u
C?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
AGnd
AVref
AVcc
P5.4
Vcc
P5.5
Gnd
P0.2
P0.1
P0.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P4.1
CMP+/P3.7
CMP-/P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
R0
100K
R6
36.5K (约5.0V)
R5
42.2K (约4.5V)
R4
49.9K (约4.0V)
R3
61.9K (约3.5V)
R2
80.6K (约3.0V)
R1
115K (约2.5V)
STC8A8K64S4A12
C?
系统时钟10MHz
103(0.01uF)
上图中,利用电阻分压的原理可以近似的测量出 MCU 的工作电压(选通的通道,MCU 的 IO 口输
出低电平,端口电压值接近 GND,未选通的通道,MCU 的 IO 口输出开漏模式的高,不影响其他通道)。
比较器的负端选择内部参考电压(约 1.344V),正端选择通过电阻分压后输入到 CMP+管脚的电压
值。
初始化时 P2.5~P2.0 口均设置为开漏模式,并输出高。首先 P2.0 口输出低电平,此时若 VCC 电压
低于 2.5V 则比较器的比较值为 0,反之若 VCC 电压高于 2.5V 则比较器的比较值为 1;
若确定 VCC 高于 2.5V,则将 P2.0 口输出高,P2.1 口输出低电平,此时若 VCC 电压低于 3.0V 则
比较器的比较值为 0,反之若 VCC 电压高于 3.0V 则比较器的比较值为 1;
若确定 VCC 高于 3.0V,则将 P2.1 口输出高,P2.2 口输出低电平,此时若 VCC 电压低于 3.5V 则
比较器的比较值为 0,反之若 VCC 电压高于 3.5V 则比较器的比较值为 1;
若确定 VCC 高于 3.5V,则将 P2.2 口输出高,P2.3 口输出低电平,此时若 VCC 电压低于 4.0V 则
比较器的比较值为 0,反之若 VCC 电压高于 4.0V 则比较器的比较值为 1;
若确定 VCC 高于 4.0V,则将 P2.3 口输出高,P2.4 口输出低电平,此时若 VCC 电压低于 4.5V 则
比较器的比较值为 0,反之若 VCC 电压高于 4.5V 则比较器的比较值为 1;
若确定 VCC 高于 4.5V,则将 P2.4 口输出高,P2.5 口输出低电平,此时若 VCC 电压低于 5.0V 则
比较器的比较值为 0,反之若 VCC 电压高于 5.0V 则比较器的比较值为 1。
汇编代码
CMPCR1
CMPCR2
P2M0
DATA
DATA
DATA
江苏国芯科技有限公司
0E6H
0E7H
96H
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 334 -
STC8 系列技术手册
P2M1
官方网站: www.STCMCUDATA.com / www.STCMCU.com
DATA
95H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP,#3FH
MOV
MOV
MOV
MOV
MOV
ANL
ANL
ANL
ORL
P2M0,#00111111B
P2M1,#00111111B
P2,#0FFH
CMPCR2,#10H
CMPCR1,#00H
CMPCR1,#NOT 08H
CMPCR1,#NOT 04H
CMPCR1,#NOT 02H
CMPCR1,#80H
MOV
MOV
CALL
MOV
JNB
MOV
MOV
CALL
MOV
JNB
MOV
MOV
CALL
MOV
JNB
MOV
MOV
CALL
MOV
JNB
MOV
MOV
CALL
MOV
JNB
MOV
MOV
CALL
MOV
JNB
MOV
R0,#00000000B
P2,#11111110B
DELAY
A,CMPCR1
ACC.0,SKIP
R0,#00000001B
P2,#11111101B
DELAY
A,CMPCR1
ACC.0,SKIP
R0,#00000011B
P2,#11111011B
DELAY
A,CMPCR1
ACC.0,SKIP
R0,#00000111B
P2,#11110111B
DELAY
A,CMPCR1
ACC.0,SKIP
R0,#00001111B
P2,#11101111B
DELAY
A,CMPCR1
ACC.0,SKIP
R0,#00011111B
P2,#11011111B
DELAY
A,CMPCR1
ACC.0,SKIP
R0,#00111111B
MOV
MOV
CPL
MOV
JMP
P2,#11111111B
A,R0
A
P0,A
LOOP
MOV
R0,#20
技术支持: 13922829991
研发顾问: 13922805190
MAIN:
;P2.5~P2.0 初始化为开漏模式
;比较器结果经过 16 个去抖时钟后输出
;P3.7 为 CMP+输入脚
;内部参考电压为 CMP-输入脚
;禁止比较器输出
;使能比较器模块
LOOP:
;电压2.5V
;P2.1 输出 0
;电压>3.0V
P2.2 输出 0
;电压>3.5V
;P2.3 输出 0
;电压>4.0V
;P2.4 输出 0
;电压>4.5V
;P2.5 输出 0
;电压>5.0V
SKIP:
;P0.5~P0.0 口显示电压
DELAY:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 335 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
DJNZ
RET
技术支持: 13922829991
研发顾问: 13922805190
R0,$
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
sfr
sfr
CMPCR1
CMPCR2
=
=
0xe6;
0xe7;
sfr
sfr
P2M0
P2M1
=
=
0x96;
0x95;
void delay ()
{
char i;
for (i=0; i3.0V
P2 = 0xfb;
//P2.2 输出 0
delay();
if (!(CMPCR1 & 0x01)) goto ShowVol;
v = 0x07;
//电压>3.5V
P2 = 0xf7;
//P2.3 输出 0
delay();
if (!(CMPCR1 & 0x01)) goto ShowVol;
v = 0x0f;
//电压>4.0V
P2 = 0xef;
//P2.4 输出 0
delay();
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 336 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
if (!(CMPCR1 & 0x01)) goto ShowVol;
v = 0x1f;
//电压>4.5V
P2 = 0xdf;
//P2.5 输出 0
delay();
if (!(CMPCR1 & 0x01)) goto ShowVol;
v = 0x3f;
//电压>5.0V
ShowVol:
P2 = 0xff;
P0 = ~v;
}
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 337 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
15 IAP/EEPROM
STC8 系列单片机内部集成了大容量的 EEPROM 。利用 ISP/IAP 技术可将内部 Data Flash 当
EEPROM,擦写次数在 10 万次以上。EEPROM 可分为若干个扇区,每个扇区包含 512 字节。使用时,
建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同的扇区,不一定要用满。数据
存储器的擦除操作是按扇区进行的。
EEPROM 可用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。在用户程序中,可
以对 EEPROM 进行字节读/字节编程/扇区擦除操作。在工作电压偏低时,建议不要进行 EEPROM 操作,
以免发送数据丢失的情况。
15.1 EEPROM相关的寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
IAP_DATA
IAP 数据寄存器
C2H
1111,1111
IAP_ADDRH
IAP 高地址寄存器
C3H
0000,0000
IAP_ADDRL
IAP 低地址寄存器
C4H
0000,0000
IAP_CMD
IAP 命令寄存器
C5H
IAP_TRIG
IAP 触发寄存器
C6H
IAP_CONTR
IAP 控制寄存器
C7H
-
-
-
-
-
-
CMD[1:0]
xxxx,xx00
0000,0000
IAPEN
SWBS
SWRST
-
CMD_FAIL
IAP_WT[2:0]
0000,x000
EEPROM 数据寄存器(IAP_DATA)
符号
地址
IAP_DATA
C2H
B7
B6
B5
B4
B3
B2
B1
B0
在进行 EEPROM 的读操作时,命令执行完成后读出的 EEPROM 数据保存在 IAP_DATA 寄存器中。
在进行 EEPROM 的写操作时,在执行写命令前,必须将待写入的数据存放在 IAP_DATA 寄存器中,再
发送写命令。擦除 EEPROM 命令与 IAP_DATA 寄存器无关。
EEPROM 地址寄存器
符号
地址
IAP_ADDRH
C3H
IAP_ADDRL
C4H
B7
B6
B5
B4
B3
B2
B1
B0
EEPROM 进行读、写、擦除操作的目标地址寄存器。IAP_ADDRH 保存地址的高字节,IAP_ADDRL
保存地址的低字节
EEPROM 命令寄存器(IAP_CMD)
符号
地址
B7
B6
B5
B4
B3
B2
IAP_CMD
C5H
-
-
-
-
-
-
B1
B0
CMD[1:0]
CMD[1:0]:发送EEPROM操作命令
00:空操作
01:读 EEPROM 命令。读取目标地址所在的 1 字节。
10:写 EEPROM 命令。写目标地址所在的 1 字节。
11:擦除 EEPROM。擦除目标地址所在的 1 页(1 扇区/512 字节)。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 338 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
EEPROM 触发寄存器
符号
地址
IAP_TRIG
C6H
B7
B6
B5
B4
B3
B2
B1
B0
设置完成 EEPROM 读、写、擦除的命令寄存器、地址寄存器、数据寄存器以及控制寄存器后,需
要向触发寄存器 IAP_TRIG 依次写入 5AH、A5H(顺序不能交换)两个触发命令来触发相应的读、写、
擦除操作。操作完成后,EEPROM 地址寄存器 IAP_ADDRH、IAP_ADDRL 和 EEPROM 命令寄存器
IAP_CMD 的 内 容 不 变。 如 果 接 下来 要 对 下 一个 地 址 的 数据 进 行 操 作, 需 手 动 更新 地 址 寄 存 器
IAP_ADDRH 和寄存器 IAP_ADDRL 的值。
注意:每次 EEPROM 操作时,都要对 IAP_TRIG 先写入 5AH,再写入 A5H,相应的命令才会生效。
写完触发命令后,CPU 会处于 IDLE 等待状态,直到相应的 IAP 操作执行完成后 CPU 才会从 IDLE 状
态返回正常状态继续执行 CPU 指令。
EEPROM 控制寄存器
符号
地址
B7
B6
B5
B4
B3
IAP_CONTR
C7H
IAPEN
SWBS
SWRST
CMD_FAIL
-
B2
B1
B0
IAP_WT[2:0]
IAPEN:EEPROM操作使能控制位
0:禁止 EEPROM 操作
1:使能 EEPROM 操作
SWBS:软件复位选择控制位,(需要与SWRST配合使用)
0:软件复位后从用户代码开始执行程序
1:软件复位后从系统 ISP 监控代码区开始执行程序
SWRST:软件复位控制位
0:无动作
1:产生软件复位
CMD_FAIL:EEPROM操作失败状态位,需要软件清零
0:EEPROM 操作正确
1:EEPROM 操作失败
IAP_WT[2:0]:设置EEPROM操作的等待时间
IAP_WT[2:0]
读字节
(2 个时钟)
写字节
(约 7us)
擦除扇区
(约 5ms)
时钟频率
1
1
1
2 个时钟
7 个时钟
5000 个时钟
1MHz
1
1
0
2 个时钟
14 个时钟
10000 个时钟
2MHz
1
0
1
2 个时钟
21 个时钟
15000 个时钟
3MHz
1
0
0
2 个时钟
42 个时钟
30000 个时钟
6MHz
0
1
1
2 个时钟
84 个时钟
60000 个时钟
12MHz
0
1
0
2 个时钟
140 个时钟
100000 个时钟
20MHz
0
0
1
2 个时钟
168 个时钟
120000 个时钟
24MHz
0
0
0
2 个时钟
301 个时钟
215000 个时钟
30MHz
此时 MCU 系统不给 CPU 供应时钟,CPU 没有时钟,所以无法工作,也就是说,针对 EEPROM 操
作所需要的等待时间是硬件自动完成的,用户不需要加额外的软件延时。但 MCU 给串口、定时器、SPI、
I2C 等外设供应时钟,故除 CPU 无法执行指令外,其他外设仍然继续工作。
EEPROM 的读操作其实可不用 IAP 读方式,可用 MOVC 指令进行读取,CPU 就可继续执行指令,
不用等待两个时钟。(汇编、C 如何读待后续介绍)
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 339 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
15.2 关于EEPROM编程和擦除等待时间的重要说明
表一(STC8A 系列和 STC8F 系列 EEPROM 操作时间需求)
EEPROM 操作
最短时间
最长时间
编程
6us
7.5us
擦除
4ms
6ms
表二(STC8A 系列和 STC8F 系列 EEPROM 操作相应等待参数的时间等待周期)
IAP_WT[2:0]
编程等待时钟数
擦除等待时钟数
适合的频率
1
1
1
7 个时钟
5000 个时钟
1MHz
1
1
0
14 个时钟
10000 个时钟
2MHz
1
0
1
21 个时钟
15000 个时钟
3MHz
1
0
0
42 个时钟
30000 个时钟
6MHz
0
1
1
84 个时钟
60000 个时钟
12MHz
0
1
0
140 个时钟
100000 个时钟
20MHz
0
0
1
168 个时钟
120000 个时钟
24MHz
0
0
0
301 个时钟
215000 个时钟
30MHz
STC8A 系列和 STC8F 系列 MCU 的内部 EEPROM 的编程和擦除等待时间必须达到表一中的要求,
等待时间不可过短,也不可过长。
编程的等待时间必须在 6us~7.5us 之间,编程等待时间过小(小于最短时间 6us)
,则被编程的目
标存储单元内部的数据可能不可靠(数据的保存期限可能达不到 25 年);若等待时间过长(大于最长时
间 7.5us 的 1.5 倍,即大于 11.25us)
,也可能由于有数据干扰而导致写入的数据不正确。在确保编程的
等待时间要求,并在编程完成后进行数据读出对比校验,若校验正确,数据便编程正确了。
擦除的等待时间必须在 4ms~6ms 之间,擦除等待时间过小(小于最短时间 4ms),则被擦除的目
标存储扇区可能没有被擦除干净;若等待时间过长(大于最长时间 6ms 的 1.5 倍,即大于 9ms),则会
缩短 EEPROM 的使用寿命,即原本 10 万次的擦除寿命可能会缩短为 5 万次。
编程与擦除的等待时间请严格按照表二所给的推荐频率进行合适的选择,假如工作频率为 12MHz,
请按照表二推荐将等待参数设置为 011B,若 CPU 实际的工作频率并不在表二所推荐的频率之列,则需
要根据实际的频率以及表二中实际的等待时钟数进行计算,找出满足表一时间需求的等待时间参数。
例如:工作频率为 4MHz,若选择等待参数为 101B,则编程时间为 21/4MHz = 5.25us,擦除时间为
15000/4MHz = 3.75ms,时间明显不够,所以应该选择等待参数为 100B,则编程时间为 42/4MHz = 10.5us,
擦除时间为 30000/4MHz = 7.5ms,时间均在最短时间和最长时间的 1.5 倍之间。
注意:EEPROM 等待操作的时钟是指对主时钟进行分频后的系统时钟,即 CPU 实际的工作时钟。
若单片机使用的是内部高精度 IRC,则 EEPROM 等待操作的时钟为使用 ISP 下载软件下载时经过调节
后的频率;若单片机使用的外部晶振,则 EEPROM 等待操作的时钟为外部晶振频率经过 CLKDIV 寄存
器分频后的时钟(例如:若单片机使用外部晶振,且外部晶振的频率为 24MHz,CLKDIV 寄存器的值
设置为 4,则 EEPROM 等待操作的时钟频率为 24MHz/4 = 6MHz,此时等待参数应选择 100B,而不能
选择 001B)
。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 340 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
15.3 范例程序
15.3.1
EEPROM基本操作
汇编代码
;测试工作频率为 11.0592MHz
IAP_DATA
IAP_ADDRH
IAP_ADDRL
IAP_CMD
IAP_TRIG
IAP_CONTR
DATA
DATA
DATA
DATA
DATA
DATA
0C2H
0C3H
0C4H
0C5H
0C6H
0C7H
WT_30M
WT_24M
WT_20M
WT_12M
WT_6M
WT_3M
WT_2M
WT_1M
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
80H
81H
82H
83H
84H
85H
86H
87H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
RET
IAP_CONTR,#0
IAP_CMD,#0
IAP_TRIG,#0
IAP_ADDRH,#80H
IAP_ADDRL,#0
;关闭 IAP 功能
;清除命令寄存器
;清除触发寄存器
;将地址设置到非 IAP 区域
MOV
MOV
MOV
MOV
MOV
MOV
NOP
MOV
LCALL
RET
IAP_CONTR,#WT_12M
IAP_CMD,#1
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置 IAP 读命令
;设置 IAP 低地址
;设置 IAP 高地址
;写触发命令(0x5a)
;写触发命令(0xa5)
A,IAP_DATA
IAP_IDLE
;读取 IAP 数据
;关闭 IAP 功能
IAP_CONTR,#WT_12M
IAP_CMD,#2
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_DATA,A
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置 IAP 写命令
;设置 IAP 低地址
;设置 IAP 高地址
;写 IAP 数据
;写触发命令(0x5a)
;写触发命令(0xa5)
IAP_IDLE
;关闭 IAP 功能
IAP_IDLE:
IAP_READ:
IAP_PROGRAM:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
NOP
LCALL
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 341 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
RET
IAP_ERASE:
MOV
MOV
MOV
MOV
MOV
MOV
NOP
LCALL
RET
IAP_CONTR,#WT_12M
IAP_CMD,#3
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置 IAP 擦除命令
;设置 IAP 低地址
;设置 IAP 高地址
;写触发命令(0x5a)
;写触发命令(0xa5)
IAP_IDLE
;关闭 IAP 功能
MAIN:
MOV
SP,#3FH
MOV
LCALL
MOV
LCALL
MOV
MOV
MOV
LCALL
MOV
LCALL
MOV
DPTR,#0400H
IAP_ERASE
DPTR,#0400H
IAP_READ
P0,A
DPTR,#0400H
A,#12H
IAP_PROGRAM
DPTR,#0400H
IAP_READ
P1,A
SJMP
$
;P0=0FFH
;P1=12H
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sfr
sfr
sfr
sfr
sfr
IAP_DATA
IAP_ADDRH
IAP_ADDRL
IAP_CMD
IAP_TRIG
IAP_CONTR
#define
#define
#define
#define
#define
#define
#define
#define
WT_30M
WT_24M
WT_20M
WT_12M
WT_6M
WT_3M
WT_2M
WT_1M
=
=
=
=
=
=
void IapIdle()
{
IAP_CONTR = 0;
IAP_CMD = 0;
江苏国芯科技有限公司
0xC2;
0xC3;
0xC4;
0xC5;
0xC6;
0xC7;
0x80
0x81
0x82
0x83
0x84
0x85
0x86
0x87
//关闭 IAP 功能
//清除命令寄存器
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 342 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
IAP_TRIG = 0;
IAP_ADDRH = 0x80;
IAP_ADDRL = 0;
技术支持: 13922829991
研发顾问: 13922805190
//清除触发寄存器
//将地址设置到非 IAP 区域
}
char IapRead(int addr)
{
char dat;
IAP_CONTR = WT_12M;
IAP_CMD = 1;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
dat = IAP_DATA;
IapIdle();
//使能 IAP
//设置 IAP 读命令
//设置 IAP 低地址
//设置 IAP 高地址
//写触发命令(0x5a)
//写触发命令(0xa5)
//读 IAP 数据
//关闭 IAP 功能
return dat;
}
void IapProgram(int addr, char dat)
{
IAP_CONTR = WT_12M;
IAP_CMD = 2;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_DATA = dat;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
IapIdle();
}
void IapErase(int addr)
{
IAP_CONTR = WT_12M;
IAP_CMD = 3;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
IapIdle();
}
void main()
{
IapErase(0x0400);
P0 = IapRead(0x0400);
IapProgram(0x0400, 0x12);
P1 = IapRead(0x0400);
//使能 IAP
//设置 IAP 写命令
//设置 IAP 低地址
//设置 IAP 高地址
//写 IAP 数据
//写触发命令(0x5a)
//写触发命令(0xa5)
//关闭 IAP 功能
//使能 IAP
//设置 IAP 擦除命令
//设置 IAP 低地址
//设置 IAP 高地址
//写触发命令(0x5a)
//写触发命令(0xa5)
//
//关闭 IAP 功能
//P0=0xff
//P1=0x12
while (1);
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 343 -
STC8 系列技术手册
15.3.2
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
使用串口送出EEPROM数据
汇编代码
AUXR
T2H
T2L
DATA
DATA
DATA
8EH
0D6H
0D7H
IAP_DATA
IAP_ADDRH
IAP_ADDRL
IAP_CMD
IAP_TRIG
IAP_CONTR
DATA
DATA
DATA
DATA
DATA
DATA
0C2H
0C3H
0C4H
0C5H
0C6H
0C7H
WT_30M
WT_24M
WT_20M
WT_12M
WT_6M
WT_3M
WT_2M
WT_1M
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
80H
81H
82H
83H
84H
85H
86H
87H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
RET
SCON,#5AH
T2L,#0E8H
T2H,#0FFH
AUXR,#15H
JNB
CLR
MOV
RET
TI,$
TI
SBUF,A
MOV
MOV
MOV
MOV
MOV
RET
IAP_CONTR,#0
IAP_CMD,#0
IAP_TRIG,#0
IAP_ADDRH,#80H
IAP_ADDRL,#0
;关闭 IAP 功能
;清除命令寄存器
;清除触发寄存器
;将地址设置到非 IAP 区域
MOV
MOV
MOV
MOV
MOV
MOV
NOP
MOV
IAP_CONTR,#WT_12M
IAP_CMD,#1
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置 IAP 读命令
;设置 IAP 低地址
;设置 IAP 高地址
;写触发命令(0x5a)
;写触发命令(0xa5)
A,IAP_DATA
;读取 IAP 数据
UART_INIT:
;65536-11059200/115200/4=0FFE8H
UART_SEND:
IAP_IDLE:
IAP_READ:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 344 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
LCALL
RET
IAP_IDLE
;关闭 IAP 功能
MOV
MOV
MOV
MOV
MOV
MOV
MOV
NOP
LCALL
RET
IAP_CONTR,#WT_12M
IAP_CMD,#2
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_DATA,A
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置 IAP 写命令
;设置 IAP 低地址
;设置 IAP 高地址
;写 IAP 数据
;写触发命令(0x5a)
;写触发命令(0xa5)
IAP_IDLE
;关闭 IAP 功能
IAP_CONTR,#WT_12M
IAP_CMD,#3
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置 IAP 擦除命令
;设置 IAP 低地址
;设置 IAP 高地址
;写触发命令(0x5a)
;写触发命令(0xa5)
IAP_IDLE
;关闭 IAP 功能
研发顾问: 13922805190
IAP_PROGRAM:
IAP_ERASE:
MOV
MOV
MOV
MOV
MOV
MOV
NOP
LCALL
RET
MAIN:
MOV
SP,#3FH
LCALL
MOV
LCALL
MOV
LCALL
LCALL
MOV
MOV
LCALL
MOV
LCALL
LCALL
UART_INIT
DPTR,#0400H
IAP_ERASE
DPTR,#0400H
IAP_READ
UART_SEND
DPTR,#0400H
A,#12H
IAP_PROGRAM
DPTR,#0400H
IAP_READ
UART_SEND
SJMP
$
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
sfr
sfr
sfr
AUXR
T2H
T2L
=
=
=
0x8e;
0xd6;
0xd7;
sfr
IAP_DATA
=
0xC2;
江苏国芯科技有限公司
11059200UL
(65536 - FOSC / 115200 / 4)
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 345 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
sfr
sfr
sfr
sfr
sfr
IAP_ADDRH
IAP_ADDRL
IAP_CMD
IAP_TRIG
IAP_CONTR
#define
#define
#define
#define
#define
#define
#define
#define
WT_30M
WT_24M
WT_20M
WT_12M
WT_6M
WT_3M
WT_2M
WT_1M
=
=
=
=
=
技术支持: 13922829991
研发顾问: 13922805190
0xC3;
0xC4;
0xC5;
0xC6;
0xC7;
0x80
0x81
0x82
0x83
0x84
0x85
0x86
0x87
void UartInit()
{
SCON = 0x5a;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x15;
}
void UartSend(char dat)
{
while (!TI);
TI = 0;
SBUF = dat;
}
void IapIdle()
{
IAP_CONTR = 0;
IAP_CMD = 0;
IAP_TRIG = 0;
IAP_ADDRH = 0x80;
IAP_ADDRL = 0;
}
//关闭 IAP 功能
//清除命令寄存器
//清除触发寄存器
//将地址设置到非 IAP 区域
char IapRead(int addr)
{
char dat;
IAP_CONTR = WT_12M;
IAP_CMD = 1;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
dat = IAP_DATA;
IapIdle();
//使能 IAP
//设置 IAP 读命令
//设置 IAP 低地址
//设置 IAP 高地址
//写触发命令(0x5a)
//写触发命令(0xa5)
//读 IAP 数据
//关闭 IAP 功能
return dat;
}
void IapProgram(int addr, char dat)
{
IAP_CONTR = WT_12M;
江苏国芯科技有限公司
//使能 IAP
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 346 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
IAP_CMD = 2;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_DATA = dat;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
IapIdle();
技术支持: 13922829991
研发顾问: 13922805190
//设置 IAP 写命令
//设置 IAP 低地址
//设置 IAP 高地址
//写 IAP 数据
//写触发命令(0x5a)
//写触发命令(0xa5)
//关闭 IAP 功能
}
void IapErase(int addr)
{
IAP_CONTR = WT_12M;
IAP_CMD = 3;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
IapIdle();
}
//使能 IAP
//设置 IAP 擦除命令
//设置 IAP 低地址
//设置 IAP 高地址
//写触发命令(0x5a)
//写触发命令(0xa5)
//
//关闭 IAP 功能
void main()
{
UartInit();
IapErase(0x0400);
UartSend(IapRead(0x0400));
IapProgram(0x0400, 0x12);
UartSend(IapRead(0x0400));
while (1);
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 347 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
16 ADC模数转换
STC8 系列单片机内部集成了一个 12 位 15 通道的高速 A/D 转换器(注:第 16 通道只能用于检测
内部 REFV 参考电压,REFV 的电压值为 1.344V,由于制造误差,实际电压值可能在 1.34V~1.35V 之
间)。ADC 的时钟频率为系统频率 2 分频再经过用户设置的分频系数进行再次分频(ADC 的时钟频率
范围为 SYSclk/2/1~SYSclk/2/16)。每固定 16 个 ADC 时钟可完成一次 A/D 转换。ADC 的速度最快可
达 800K(即每秒可进行 80 万次模数转换)
ADC 转换结果的数据格式有两种:左对齐和右对齐。可方便用户程序进行读取和引用。
16.1 ADC相关的寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
BCH ADC_POWER ADC_START ADC_FLAG
B4
B3
B1
B0
ADC_CONTR
ADC 控制寄存器
ADC_RES
ADC 转换结果高位寄存器
BDH
0000,0000
ADC_RESL
ADC 转换结果低位寄存器
BEH
0000,0000
ADCCFG
ADC 配置寄存器
DEH
-
-
RESFMT
-
B2
ADC_CHS[3:0]
-
000x,0000
SPEED[3:0]
xx0x,0000
ADC 控制寄存器
符号
地址
B7
B6
B5
B4
ADC_CONTR
BCH
ADC_POWER
ADC_START
ADC_FLAG
-
B3
B2
B1
B0
ADC_CHS[3:0]
ADC_POWER:ADC 电源控制位
0:关闭 ADC 电源
1:打开 ADC 电源。
建议进入空闲模式和掉电模式前将 ADC 电源关闭,以降低功耗
ADC_START:ADC 转换启动控制位。写入 1 后开始 ADC 转换,转换完成后硬件自动将此位清零。
0:无影响。即使 ADC 已经开始转换工作,写 0 也不会停止 A/D 转换。
1:开始 ADC 转换,转换完成后硬件自动将此位清零。
ADC_FLAG:ADC 转换结束标志位。当 ADC 完成一次转换后,硬件会自动将此位置 1,并向 CPU 提
出中断请求。此标志位必须软件清零。
ADC_CHS[3:0]:ADC 模拟通道选择位
ADC_CHS[3:0]
ADC 通道
ADC_CHS[3:0]
ADC 通道
0000
P1.0
1000
P0.0
0001
P1.1
1001
P0.1
0010
P1.2
1010
P0.2
0011
P1.3
1011
P0.3
0100
P1.4
1100
P0.4
0101
P1.5
1101
P0.5
0110
P1.6
1110
P0.6
0111
P1.7
1111
测试内部 1.344V
的 REFV 电压
ADC 配置寄存器
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 348 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
符号
地址
B7
B6
B5
B4
ADCCFG
DEH
-
-
RESFMT
-
B3
B2
研发顾问: 13922805190
B1
B0
SPEED[3:0]
RESFMT:ADC 转换结果格式控制位
0:转换结果左对齐。ADC_RES 保存结果的高 8 位,ADC_RESL 保存结果的低 4 位。格式如下:
ADC_RES
ADC_RESL
D11 D10 D9 D8 D7 D6 D5 D4
D3 D2 D1 D0
0
0
0
0
自动填0
12位转换结果
RESFMT=0
1:转换结果右对齐。ADC_RES 保存结果的高 4 位,ADC_RESL 保存结果的低 8 位。格式如下:
ADC_RES
0
0
0
ADC_RESL
0 D11 D10 D9 D8
自动填0
D7 D6 D5 D4 D3 D2 D1 D0
12位转换结果
RESFMT=1
SPEED[3:0]:ADC 时钟控制(FADC=SYSclk/2/16/SPEED)
SPEED[3:0]
ADC 转换时间
(CPU 时钟数)
SPEED[3:0]
ADC 转换时间
(CPU 时钟数)
0000
32
1000
288
0001
64
1001
320
0010
96
1010
352
0011
128
1011
384
0100
160
1100
416
0101
192
1101
448
0110
224
1110
480
0111
256
1111
512
ADC 转换结果寄存器
符号
地址
ADC_RES
BDH
ADC_RESL
BEH
B7
B6
B5
B4
B3
B2
B1
B0
当 A/D 转换完成后,12 为的转换结果会自动保存到 ADC_RES 和 ADC_RESL 中。保存结果的数据
格式请参考 ADC_CFG 寄存器中的 RESFMT 设置。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 349 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
16.2 ADC典型应用线路图
16.2.1 高精度ADC应用
CD431/TL431(2.5V基准源)
511R
0.1u
外部模拟
信号输入
系统电源
(可从USB取电)
103
0.1u
22u
10uH
Vin
AVcc
Power On
Vcc
47u
0R
模拟地
0R
系统地
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
AGnd
AVref
AVcc
P5.4
Vcc
P5.5
Gnd
P0.2
P0.1
P0.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P4.1
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
STC8A8K64S4A12
数字地
C?
江苏国芯科技有限公司
C?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
系统时钟10MHz
103(0.01uF)
传真: 0513-5501 2926/2956/2947
- 350 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
16.2.2 ADC一般应用(对ADC精度要求不高的应用)
外部模拟
信号输入
系统电源
(可从USB取电)
103
Vin
Power On
Vcc
47u
C?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
AGnd
AVref
AVcc
P5.4
Vcc
P5.5
Gnd
P0.2
P0.1
P0.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P4.1
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
STC8A8K64S4A12
系统时钟10MHz
103(0.01uF)
传真: 0513-5501 2926/2956/2947
- 351 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
16.3 范例程序
16.3.1
ADC基本操作(查询方式)
汇编代码
;测试工作频率为 11.0592MHz
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
DATA
DATA
DATA
DATA
0BCH
0BDH
0BEH
0DEH
P1M0
P1M1
DATA
DATA
092H
091H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP,#3FH
MOV
MOV
MOV
MOV
P1M0,#00H
P1M1,#01H
ADCCFG,#0FH
ADC_CONTR,#80H
;设置 P1.0 为 ADC 口
ORL
NOP
NOP
MOV
JNB
ANL
MOV
ADC_CONTR,#40H
;启动 AD 转换
A,ADC_CONTR
ACC.5,$-2
ADC_CONTR,#NOT 20H
P2,ADC_RES
;查询 ADC 完成标志
SJMP
LOOP
MAIN:
;设置 ADC 时钟为系统时钟/2/16/16
;使能 ADC 模块
LOOP:
;清完成标志
;读取 ADC 结果
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sfr
sfr
sfr
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
=
=
=
=
0xbc;
0xbd;
0xbe;
0xde;
sfr
sfr
P1M0
P1M1
=
=
0x92;
0x91;
void main()
{
P1M0 = 0x00;
江苏国芯科技有限公司
//设置 P1.0 为 ADC 口
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 352 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
P1M1 = 0x01;
ADCCFG = 0x0f;
ADC_CONTR = 0x80;
技术支持: 13922829991
研发顾问: 13922805190
//设置 ADC 时钟为系统时钟/2/16/16
//使能 ADC 模块
while (1)
{
ADC_CONTR |= 0x40;
//启动 AD 转换
_nop_();
_nop_();
while (!(ADC_CONTR & 0x20)); //查询 ADC 完成标志
ADC_CONTR &= ~0x20;
//清完成标志
P2 = ADC_RES;
//读取 ADC 结果
}
}
16.3.2
ADC基本操作(中断方式)
汇编代码
;测试工作频率为 11.0592MHz
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
DATA
DATA
DATA
DATA
0BCH
0BDH
0BEH
0DEH
EADC
BIT
IE.5
P1M0
P1M1
DATA
DATA
092H
091H
ORG
LJMP
ORG
LJMP
0000H
MAIN
002BH
ADCISR
ORG
0100H
ANL
MOV
ORL
RETI
ADC_CONTR,#NOT 20H
P2,ADC_RES
ADC_CONTR,#40H
MOV
SP,#3FH
MOV
MOV
MOV
MOV
SETB
SETB
ORL
P1M0,#00H
P1M1,#01H
ADCCFG,#0FH
ADC_CONTR,#80H
EADC
EA
ADC_CONTR,#40H
SJMP
$
ADCISR:
;清完成标志
;读取 ADC 结果
;继续 AD 转换
MAIN:
;设置 P1.0 为 ADC 口
;设置 ADC 时钟为系统时钟/2/16/16
;使能 ADC 模块
;使能 ADC 中断
;启动 AD 转换
END
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 353 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sfr
sfr
sfr
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
=
=
=
=
0xbc;
0xbd;
0xbe;
0xde;
sbit
EADC
=
IE^5;
sfr
sfr
P1M0
P1M1
=
=
0x92;
0x91;
void ADC_Isr() interrupt 5
{
ADC_CONTR &= ~0x20;
P2 = ADC_RES;
ADC_CONTR |= 0x40;
}
//清中断标志
//读取 ADC 结果
//继续 AD 转换
void main()
{
P1M0 = 0x00;
P1M1 = 0x01;
ADCCFG = 0x0f;
ADC_CONTR = 0x80;
EADC = 1;
EA = 1;
ADC_CONTR |= 0x40;
//设置 P1.0 为 ADC 口
//设置 ADC 时钟为系统时钟/2/16/16
//使能 ADC 模块
//使能 ADC 中断
//启动 AD 转换
while (1);
}
16.3.3
格式化ADC转换结果
汇编代码
;测试工作频率为 11.0592MHz
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
DATA
DATA
DATA
DATA
0BCH
0BDH
0BEH
0DEH
P1M0
P1M1
DATA
DATA
092H
091H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP,#3FH
MOV
P1M0,#00H
MAIN:
江苏国芯科技有限公司
;设置 P1.0 为 ADC 口
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 354 -
STC8 系列技术手册
;
;
;
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
MOV
MOV
MOV
P1M1,#01H
ADCCFG,#0FH
ADC_CONTR,#80H
;设置 ADC 时钟为系统时钟/2/16/16
;使能 ADC 模块
ORL
NOP
NOP
MOV
JNB
ANL
ADC_CONTR,#40H
;启动 AD 转换
A,ADC_CONTR
ACC.5,$-2
ADC_CONTR,#NOT 20H
;查询 ADC 完成标志
;清完成标志
MOV
MOV
MOV
ADCCFG,#00H
A,ADC_RES
B,ADC_RESL
;设置结果左对齐
;A 存储 ADC 的 12 位结果的高 8 位
;B[7:4]存储 ADC 的 12 位结果的低 4 位,B[3:0]为 0
MOV
MOV
MOV
ADCCFG,#20H
A,ADC_RES
B,ADC_RESL
;设置结果右对齐
;A[3:0]存储 ADC 的 12 位结果的高 4 位,A[7:4]为 0
;B 存储 ADC 的 12 位结果的低 8 位
SJMP
$
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sfr
sfr
sfr
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
=
=
=
=
0xbc;
0xbd;
0xbe;
0xde;
sfr
sfr
P1M0
P1M1
=
=
0x92;
0x91;
void main()
{
P1M0 = 0x00;
P1M1 = 0x01;
ADCCFG = 0x0f;
ADC_CONTR = 0x80;
ADC_CONTR |= 0x40;
_nop_();
_nop_();
while (!(ADC_CONTR & 0x20));
ADC_CONTR &= ~0x20;
//
//
//
//设置 P1.0 为 ADC 口
//设置 ADC 时钟为系统时钟/2/16/16
//使能 ADC 模块
//启动 AD 转换
//查询 ADC 完成标志
//清完成标志
ADCCFG = 0x00;
ACC = ADC_RES;
B = ADC_RESL;
//设置结果左对齐
//A 存储 ADC 的 12 位结果的高 8 位
//B[7:4]存储 ADC 的 12 位结果的低 4 位,B[3:0]为 0
ADCCFG = 0x20;
ACC = ADC_RES;
B = ADC_RESL;
//设置结果右对齐
//A[3:0]存储 ADC 的 12 位结果的高 4 位,A[7:4]为 0
//B 存储 ADC 的 12 位结果的低 8 位
while (1);
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 355 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
}
利用ADC第 16 通道测量外部电压或电池电压
16.3.4
STC8 系列 ADC 的第 16 通道是用来测试内部 BandGap 参考电压的,由于内部 BandGap 参考电压
很稳定,约为 1.35V,且不会随芯片的工作电压的改变而变化,所以可以通过测量内部 BandGap 参考电
压,然后通过 ADC 的值便可反推出外部电压或外部电池电压。
下图为参考线路图:
外部供电
或电池供电
Vin
Power On
Vcc
47u
103
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
AGnd
AVref
AVcc
P5.4
Vcc
P5.5
Gnd
P0.2
P0.1
P0.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P4.1
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
STC8A8K64S4A12
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
AUXR
=
0x8e;
sfr
ADC_CONTR
=
0xbc;
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 356 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
sfr
sfr
sfr
ADC_RES
ADC_RESL
ADCCFG
=
=
=
0xbd;
0xbe;
0xde;
sfr
sfr
P1M0
P1M1
=
=
0x92;
0x91;
int
*BGV;
bit
busy;
技术支持: 13922829991
研发顾问: 13922805190
//内部 Bandgap 电压值存放在 idata 中
//idata 的 EFH 地址存放高字节
//idata 的 F0H 地址存放低字节
//电压单位为毫伏(mV)
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
}
}
void UartInit()
{
SCON = 0x50;
TMOD = 0x00;
TL1 = BRT;
TH1 = BRT >> 8;
TR1 = 1;
AUXR = 0x40;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void ADCInit()
{
ADCCFG = 0x2f;
ADC_CONTR = 0x8f;
}
int
{
//设置 ADC 时钟为系统时钟/2/16/16
//使能 ADC 模块,并选择第 16 通道
ADCRead()
int res;
ADC_CONTR |= 0x40;
_nop_();
_nop_();
while (!(ADC_CONTR & 0x20));
ADC_CONTR &= ~0x20;
江苏国芯科技有限公司
//启动 AD 转换
//查询 ADC 完成标志
//清完成标志
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 357 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
res = (ADC_RES = 3;
vcc = (int)(4095L * *BGV / res);
UartSend(vcc >> 8);
UartSend(vcc);
//前两个数据丢弃
//读取 8 次数据
//取平均值
//计算 VREF 管脚电压,即电池电压
//注意,此电压的单位为毫伏(mV)
//输出电压值到串口
while (1);
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 358 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
17 PCA/CCP/PWM应用
STC8 系列单片机内部集成了 4 组可编程计数器阵列(PCA/CCP/PWM)模块,可用于软件定时器、
外部脉冲捕获、高速脉冲输出和 PWM 脉宽调制输出。
PCA 内部含有一个特殊的 16 位计数器,4 组 PCA 模块均与之相连接。PCA 计数器的结构图如下:
PCA模块0
PCA模块1
SYSclk/12
000
PCA模块2
SYSclk/2
001
PCA模块3
T0溢出
010
外部ECI
011
SYSclk
100
SYSclk/4
101
SYSclk/6
110
SYSclk/8
111
CH CL
PCA中断
16位计数器
进入IDLE模式
CCON CF CR -
- CF3 CF2 CF1 CF0
CMOD
-
CIDL
-
-
CPS[2:0]
ECF
PCA计数器结构图
17.1 PCA相关的寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
CCF3
CCF2
CCF1
CCF0
00xx,0000
ECF
0xxx,0000
CCON
PCA 控制寄存器
D8H
CF
CR
-
-
CMOD
PCA 模式寄存器
D9H
CIDL
-
-
-
CCAPM0
PCA 模块 0 模式控制寄存器
DAH
-
ECOM0
CCAPP0
CCAPN0
MAT0
TOG0
PWM0
ECCF0 x000,0000
CCAPM1
PCA 模块 1 模式控制寄存器
DBH
-
ECOM1
CCAPP1
CCAPN1
MAT1
TOG1
PWM1
ECCF1 x000,0000
CCAPM2
PCA 模块 2 模式控制寄存器
DCH
-
ECOM2
CCAPP2
CCAPN2
MAT2
TOG2
PWM2
ECCF2 x000,0000
CCAPM3
PCA 模块 3 模式控制寄存器
DDH
-
ECOM3
CCAPP3
CCAPN3
MAT3
TOG3
PWM3
ECCF3 x000,0000
CL
PCA 计数器低字节
E9H
0000,0000
CCAP0L
PCA 模块 0 低字节
EAH
0000,0000
CCAP1L
PCA 模块 1 低字节
EBH
0000,0000
CCAP2L
PCA 模块 2 低字节
ECH
0000,0000
CCAP3L
PCA 模块 3 低字节
EDH
0000,0000
PCA_PWM0
PCA0 的 PWM 模式寄存器
F2H
EBS0[1:0]
XCCAP0H[1:0]
XCCAP0L[1:0]
EPC0H
EPC0L 0000,0000
PCA_PWM1
PCA1 的 PWM 模式寄存器
F3H
EBS1[1:0]
XCCAP1H[1:0]
XCCAP1L[1:0]
EPC1H
EPC1L 0000,0000
PCA_PWM2
PCA2 的 PWM 模式寄存器
F4H
EBS2[1:0]
XCCAP2H[1:0]
XCCAP2L[1:0]
EPC2H
EPC2L 0000,0000
PCA_PWM3
PCA3 的 PWM 模式寄存器
F5H
EBS3[1:0]
XCCAP3H[1:0]
XCCAP3L[1:0]
EPC3H
EPC3L 0000,0000
CH
PCA 计数器高字节
F9H
0000,0000
CCAP0H
PCA 模块 0 高字节
FAH
0000,0000
CCAP1H
PCA 模块 1 高字节
FBH
0000,0000
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
CPS[2:0]
传真: 0513-5501 2926/2956/2947
- 359 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
CCAP2H
PCA 模块 2 高字节
FCH
0000,0000
CCAP3H
PCA 模块 3 高字节
FDH
0000,0000
PCA 控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
CCON
D8H
CF
CR
-
-
CCF3
CCF2
CCF1
CCF0
CF:PCA 计数器溢出中断标志。当 PCA 的 16 位计数器计数发生溢出时,硬件自动将此位置 1,并向
CPU 提出中断请求。此标志位需要软件清零。
CR:PCA 计数器允许控制位。
0:停止 PCA 计数
1:启动 PCA 计数
CCFn(n=0,1,2,3):PCA 模块中断标志。当 PCA 模块发生匹配或者捕获时,硬件自动将此位置 1,并
向 CPU 提出中断请求。此标志位需要软件清零。
PCA 模式寄存器
符号
地址
B7
B6
B5
B4
CMOD
D9H
CIDL
-
-
-
B5
B4
B3
B2
B1
CPS[2:0]
B0
ECF
CIDL:空闲模式下是否停止 PCA 计数。
0:空闲模式下 PCA 继续计数
1:空闲模式下 PCA 停止计数
CPS[2:0]:PCA 计数脉冲源选择位
CPS[2:0]
PCA 的输入时钟源
000
系统时钟/12
001
系统时钟/2
010
定时器 0 的溢出脉冲
011
ECI 脚的外部输入时钟
100
系统时钟
101
系统时钟/4
110
系统时钟/6
111
系统时钟 8
ECF:PCA 计数器溢出中断允许位。
0:禁止 PCA 计数器溢出中断
1:使能 PCA 计数器溢出中断
PCA 计数器寄存器
符号
地址
CL
E9H
CH
F9H
B7
B6
B3
B2
B1
B0
由 CL 和 CH 两个字节组合成一个 16 位计数器,CL 为低 8 位计数器,CH 为高 8 位计数器。每个 PCA
时钟 16 位计数器自动加 1。
PCA 模块模式控制寄存器
符号
地址
江苏国芯科技有限公司
B7
B6
B5
总机: 0513-5501 2928/2929/2966
B4
B3
B2
B1
传真: 0513-5501 2926/2956/2947
B0
- 360 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
CCAPM0
DAH
-
ECOM0
CCAPP0
CCAPN0
MAT0
TOG0
PWM0
ECCF0
CCAPM1
DBH
-
ECOM1
CCAPP1
CCAPN1
MAT1
TOG1
PWM1
ECCF1
CCAPM2
DCH
-
ECOM2
CCAPP2
CCAPN2
MAT2
TOG2
PWM2
ECCF2
CCAPM3
DDH
-
ECOM3
CCAPP3
CCAPN3
MAT3
TOG3
PWM3
ECCF3
B5
B4
B3
B2
B1
B0
ECOMn:允许 PCA 模块 n 的比较功能
CCAPPn:允许 PCA 模块 n 进行上升沿捕获
CCAPNn:允许 PCA 模块 n 进行下降沿捕获
MATn:允许 PCA 模块 n 的匹配功能
TOGn:允许 PCA 模块 n 的高速脉冲输出功能
PWMn:允许 PCA 模块 n 的脉宽调制输出功能
ECCFn:允许 PCA 模块 n 的匹配/捕获中断
PCA 模块模式捕获值/比较值寄存器
符号
地址
CCAP0L
EAH
CCAP1L
EBH
CCAP2L
ECH
CCAP3L
EDH
CCAP0H
FAH
CCAP1H
FBH
CCAP2H
FCH
CCAP3H
FDH
B7
B6
当 PCA 模块捕获功能使能时,CCAPnL 和 CCAPnH 用于保存发生捕获时的 PCA 的计数值(CL 和 CH);
当 PCA 模块比较功能使能时,PCA 控制器会将当前 CL 和 CH 中的计数值与保存在 CCAPnL 和
CCAPnH 中的值进行比较,并给出比较结果;当 PCA 模块匹配功能使能时,PCA 控制器会将当前
CL 和 CH 中的计数值与保存在 CCAPnL 和 CCAPnH 中的值进行比较,看是否匹配(相等),并给
出匹配结果。
PCA 模块 PWM 模式控制寄存器
B7
B6
B5
B4
B1
B0
XCCAP0L[1:0]
EPC0H
EPC0L
XCCAP1H[1:0]
XCCAP1L[1:0]
EPC1H
EPC1L
EBS2[1:0]
XCCAP2H[1:0]
XCCAP2L[1:0]
EPC2H
EPC2L
EBS3[1:0]
XCCAP3H[1:0]
XCCAP3L[1:0]
EPC3H
EPC3L
符号
地址
PCA_PWM0
F2H
EBS0[1:0]
XCCAP0H[1:0]
PCA_PWM1
F3H
EBS1[1:0]
PCA_PWM2
F4H
PCA_PWM3
F5H
B3
B2
EBSn[1:0]:PCA 模块 n 的 PWM 位数控制
EBSn[1:0]
PWM 位数
重载值
比较值
00
8 位 PWM
{EPCnH, CCAPnH[7:0]}
{EPCnL, CCAPnL[7:0]}
01
7 位 PWM
{EPCnH, CCAPnH[6:0]}
{EPCnL, CCAPnL[6:0]}
10
6 位 PWM
{EPCnH, CCAPnH[5:0]}
{EPCnL, CCAPnL[5:0]}
11
10 位 PWM
{EPCnH, XCCAPnH[1:0], CCAPnH[7:0]}
{EPCnL, XCCAPnL[1:0], CCAPnL[7:0]}
XCCAPnH[1:0]:10 位 PWM 的第 9 位和第 10 位的重载值
XCCAPnL[1:0]:10 位 PWM 的第 9 位和第 10 位的比较值
EPCnH:PWM 模式下,重载值的最高位(8 为 PWM 的第 9 位,7 位 PWM 的第 8 位,6 位 PWM 的第
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 361 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
7 位,10 位 PWM 的第 11 位)
EPCnL:PWM 模式下,比较值的最高位(8 为 PWM 的第 9 位,7 位 PWM 的第 8 位,6 位 PWM 的第
7 位,10 位 PWM 的第 11 位)
注意:在更新 10 位 PWM 的重载值时,必须先写高两位 XCCAPnH[1:0],再写低 8 位 CCAPnH[7:0]。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 362 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
17.2 PCA工作模式
STC8 系列单片机共有 4 组 PCA 模块,每组模块都可独立设置工作模式。模式设置如下所示:
CCAPMn
模块功能
-
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
-
0
0
0
0
0
0
0
无操作
-
1
0
0
0
0
1
0
6/7/8/10 位 PWM 模式,无中断
-
1
1
0
0
0
1
1
6/7/8/10 位 PWM 模式,产生上升沿中断
-
1
0
1
0
0
1
1
6/7/8/10 位 PWM 模式,产生下降沿中断
-
1
1
1
0
0
1
1
6/7/8/10 位 PWM 模式,产生边沿中断
-
0
1
0
0
0
0
x
16 位上升沿捕获
-
0
0
1
0
0
0
x
16 位下降沿捕获
-
0
1
1
0
0
0
x
16 位边沿捕获
-
1
0
0
1
0
0
x
16 位软件定时器
-
1
0
0
1
1
0
x
16 为高速脉冲输出
17.2.1
捕获模式
要使一个 PCA 模块工作在捕获模式,寄存器 CCAPMn 中的 CAPNn 和 CAPPn 至少有一位必须置 1
(也可两位都置 1)。PCA 模块工作于捕获模式时,对模块的外部 CCP0/CCP1/CCP2/CCP3 管脚的输入
跳变进行采样。当采样到有效跳变时,PCA 控制器立即将 PCA 计数器 CH 和 CL 中的计数值装载到模
块的捕获寄存器中 CCAPnL 和 CCAPnH,同时将 CCON 寄存器中相应的 CCFn 置 1。若 CCAPMn 中的
ECCFn 位被设置为 1,将产生中断。由于所有 PCA 模块的中断入口地址是共享的,所以在中断服务程
序中需要判断是哪一个模块产生了中断,并注意中断标志位需要软件清零。
PCA 模块工作于捕获模式的结构图如下图所示:
CCON CF CR
CH
-
- CF3 CF2 CF1 CF0
CL
PCA中断
CCAPnH CCAPnL
CCP0
CCP1
CCP2
CCP3
CCAPMn
-
ECOMn
0
0
CAPPn
CAPNn MATn TOGn PWMn
0
0
ECCFn
0
PCA模块捕获模式
17.2.2
软件定时器模式
通过置位 CCAPMn 寄存器的 ECOM 和 MAT 位,可使 PCA 模块用作软件定时器。PCA 计数器值
CL 和 CH 与模块捕获寄存器的值 CCAPnL 和 CCAPnH 相比较,当两者相等时,CCON 中的 CCFn 会被
置 1,若 CCAPMn 中的 ECCFn 被设置为 1 时将产生中断。CCFn 标志位需要软件清零。
PCA 模块工作于软件定时器模式的结构图如下图所示:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 363 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
先写
CCAPnL
后写
CCAPnH
0
CCON CF CR
1
CH
使能
-
研发顾问: 13922805190
- CF3 CF2 CF1 CF0
CL
匹配
16位比较器
PCA中断
CCAPnH CCAPnL
ECOMn=0,停止比较
ECOMn=1,恢复比较
CCAPMn
-
技术支持: 13922829991
ECOMn
CAPPn
0
0
CAPNn MATn TOGn PWMn
0
1
0
ECCFn
0
PCA模块软件定时器模式
17.2.3
高速脉冲输出模式
当 PCA 计数器的计数值与模块捕获寄存器的值相匹配时,PCA 模块的 CCPn 输出将发生翻转转。要
激活高速脉冲输出模式,CCAPMn 寄存器的 TOGn、MATn 和 ECOMn 位必须都置 1。
PCA 模块工作于高速脉冲输出模式的结构图如下图所示:
先写
CCAPnL
后写
CCAPnH
0
CCON CF CR -
1
CH
使能
ECOMn=0,停止比较
ECOMn=1,恢复比较
CCAPMn
-
ECOMn
0
- CF3 CF2 CF1 CF0
CL
PCA中断
匹配
16位比较器
CCPn
CCAPnH CCAPnL
CAPPn
0
CAPNn MATn TOGn PWMn
0
1
1
ECCFn
0
PCA模块高速脉冲输出模式
17.2.4
17.2.4.1
PWM脉宽调制模式
8 位PWM模式
脉宽调制是使用程序来控制波形的占空比、周期、相位波形的一种技术,在三相电机驱动、D/A 转
换等场合有广泛的应用。STC8 系列单片机的 PCA 模块可以通过设定各自的 PCA_PWMn 寄存器使其工
作于 8 位 PWM 或 7 位 PWM 或 6 位 PWM 或 10 位 PWM 模式。要使能 PCA 模块的 PWM 功能,模块
寄存器 CCAPMn 的 PWMn 和 ECOMn 位必须置 1。
PCA_PWMn 寄存器中的 EBSn[1:0]设置为 00 时,PCA 模块 n 工作于 8 位 PWM 模式,此时将
{0,CL[7:0]}与捕获寄存器{EPCnL,CCAPnL[7:0]}进行比较。当 PCA 模块工作于 8 位 PWM 模式时,由
于所有模块共用一个 PCA 计数器,所有它们的输出频率相同。各个模块的输出占空比使用寄存器
{EPCnL,CCAPnL[7:0]}进行设置。当{0,CL[7:0]}的值小于{EPCnL,CCAPnL[7:0]}时,输出为低电平;当
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 364 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
{0,CL[7:0]}的值等于或大于{EPCnL,CCAPnL[7:0]}时,输出为高电平。当 CL[7:0]的值由 FF 变为 00 溢
出时,{EPCnH,CCAPnH[7:0]}的内容重新装载到{EPCnL,CCAPnL[7:0]}中。这样就可实现无干扰地更新
PWM。
PCA 模块工作于 8 位 PWM 模式的结构图如下图所示:
重载
EPCnH
CCAPnH[7:0]
EPCnL
CCAPnL[7:0]
输出0
{0,CL[7:0]}小于
{EPCnL,CCAPnL[7:0]}
使能
CCPn
9位比较器
{0,CL[7:0]}大于等于
{EPCnL,CCAPnL[7:0]}
0
CL[7:0]
输出1
CL溢出
-
ECOMn
CAPPn
0
1
0
CAPNn MATn TOGn PWMn
0
0
ECCFn
CCAPMn
0
PCA模块8位PWM模式
17.2.4.2
7 位PWM模式
PCA_PWMn 寄存器中的 EBSn[1:0]设置为 01 时,PCA 模块 n 工作于 7 位 PWM 模式,此时将
{0,CL[6:0]}与捕获寄存器{EPCnL,CCAPnL[6:0]}进行比较。当 PCA 模块工作于 7 位 PWM 模式时,由
于所有模块共用一个 PCA 计数器,所有它们的输出频率相同。各个模块的输出占空比使用寄存器
{EPCnL,CCAPnL[6:0]}进行设置。当{0,CL[6:0]}的值小于{EPCnL,CCAPnL[6:0]}时,输出为低电平;当
{0,CL[6:0]}的值等于或大于{EPCnL,CCAPnL[6:0]}时,输出为高电平。当 CL[6:0]的值由 7F 变为 00 溢
出时,{EPCnH,CCAPnH[6:0]}的内容重新装载到{EPCnL,CCAPnL[6:0]}中。这样就可实现无干扰地更新
PWM。
PCA 模块工作于 7 位 PWM 模式的结构图如下图所示:
EPCnH
重载
CCAPnH[6:0]
输出0
EPCnL
CCAPnL[6:0]
{0,CL[6:0]}小于
{EPCnL,CCAPnL[6:0]}
使能
CCPn
8位比较器
{0,CL[6:0]}大于等于
{EPCnL,CCAPnL[6:0]}
0
CL[6:0]
输出1
CL溢出
-
ECOMn
CAPPn
0
1
0
CAPNn MATn TOGn PWMn
0
0
ECCFn
CCAPMn
0
PCA模块7位PWM模式
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 365 -
STC8 系列技术手册
17.2.4.3
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
6 位PWM模式
PCA_PWMn 寄存器中的 EBSn[1:0]设置为 10 时,PCA 模块 n 工作于 6 位 PWM 模式,此时将
{0,CL[5:0]}与捕获寄存器{EPCnL,CCAPnL[5:0]}进行比较。当 PCA 模块工作于 6 位 PWM 模式时,由
于所有模块共用一个 PCA 计数器,所有它们的输出频率相同。各个模块的输出占空比使用寄存器
{EPCnL,CCAPnL[5:0]}进行设置。当{0,CL[5:0]}的值小于{EPCnL,CCAPnL[5:0]}时,输出为低电平;当
{0,CL[5:0]}的值等于或大于{EPCnL,CCAPnL[5:0]}时,输出为高电平。当 CL[5:0]的值由 3F 变为 00 溢
出时,{EPCnH,CCAPnH[5:0]}的内容重新装载到{EPCnL,CCAPnL[5:0]}中。这样就可实现无干扰地更新
PWM。
PCA 模块工作于 6 位 PWM 模式的结构图如下图所示:
重载
EPCnH
CCAPnH[5:0]
EPCnL
CCAPnL[5:0]
输出0
{0,CL[5:0]}小于
{EPCnL,CCAPnL[5:0]}
使能
CCPn
7位比较器
{0,CL[5:0]}大于等于
{EPCnL,CCAPnL[5:0]}
0
CL[5:0]
输出1
CL溢出
-
ECOMn
CAPPn
0
1
0
CAPNn MATn TOGn PWMn
0
0
ECCFn
CCAPMn
0
PCA模块6位PWM模式
17.2.4.4
10 位PWM模式
PCA_PWMn 寄存器中的 EBSn[1:0]设置为 11 时,PCA 模块 n 工作于 10 位 PWM 模式,此时将
{CH[1:0],CL[7:0]}与捕获寄存器{EPCnL,XCCAPnL[1:0],CCAPnL[7:0]}进行比较。当 PCA 模块工作于 10
位 PWM 模式时,由于所有模块共用一个 PCA 计数器,所有它们的输出频率相同。各个模块的输出占
空 比 使 用 寄 存 器 {EPCnL,XCCAPnL[1:0],CCAPnL[7:0]} 进 行 设 置 。 当 {CH[1:0],CL[7:0]} 的 值 小 于
{EPCnL,XCCAPnL[1:0],CCAPnL[7:0]} 时 , 输 出 为 低 电 平 ; 当 {CH[1:0],CL[7:0]} 的 值 等 于 或 大 于
{EPCnL,XCCAPnL[1:0],CCAPnL[7:0]}时,输出为高电平。当{CH[1:0],CL[7:0]}的值由 3FF 变为 00 溢出
时,{EPCnH,XCCAPnH[1:0],CCAPnH[7:0]}的内容重新装载到{EPCnL,XCCAPnL[1:0],CCAPnL[7:0]}中。
这样就可实现无干扰地更新 PWM。
PCA 模块工作于 10 位 PWM 模式的结构图如下图所示:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 366 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
EPCnH XCCAPnH[1:0] CCAPnH[7:0]
重载
输出0
EPCnL XCCAPnL[1:0] CCAPnL[7:0]
{0,CH[1:0],CL[7:0]}小于
{EPCnL,XCCAPnL[1:0],CCAPnL[7:0]}
使能
CCPn
11位比较器
{0,CH[1:0],CL[7:0]}大于等于
{EPCnL,XCCAPnL[1:0],CCAPnL[7:0]}
0
CH[1:0]
CL[7:0]
输出1
CL溢出
-
ECOMn
CAPPn
0
1
0
CAPNn MATn TOGn PWMn
0
0
ECCFn
CCAPMn
0
PCA模块10位PWM模式
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 367 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
17.3 范例程序
17.3.1
PCA输出PWM(6/7/8/10 位)
汇编代码
;测试工作频率为 11.0592MHz
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
DATA
BIT
BIT
BIT
BIT
BIT
BIT
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D8H
CCON.7
CCON.6
CCON.3
CCON.2
CCON.1
CCON.0
0D9H
0E9H
0F9H
0DAH
0EAH
0FAH
0F2H
0DBH
0EBH
0FBH
0F3H
0DCH
0ECH
0FCH
0F4H
0DDH
0EDH
0FDH
0F5H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP,#3FH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
CCON,#00H
CMOD,#08H
CL,#00H
CH,#0H
CCAPM0,#42H
PCA_PWM0,#80H
CCAP0L,#20H
CCAP0H,#20H
CCAPM1,#42H
PCA_PWM1,#40H
CCAP1L,#20H
CCAP1H,#20H
CCAPM2,#42H
PCA_PWM2,#00H
CCAP2L,#20H
CCAP2H,#20H
CCAPM3,#42H
MAIN:
江苏国芯科技有限公司
;PCA 时钟为系统时钟
;PCA 模块 0 为 PWM 工作模式
;PCA 模块 0 输出 6 位 PWM
;PWM 占空比为 50%[(40H-20H)/40H]
;PCA 模块 1 为 PWM 工作模式
;PCA 模块 1 输出 7 位 PWM
;PWM 占空比为 75%[(80H-20H)/80H]
;PCA 模块 2 为 PWM 工作模式
;PCA 模块 2 输出 8 位 PWM
;PWM 占空比为 87.5%[(100H-20H)/100H]
;PCA 模块 3 为 PWM 工作模式
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 368 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
MOV
MOV
MOV
SETB
PCA_PWM3,#0C0H
CCAP3L,#20H
CCAP3H,#20H
CR
JMP
$
技术支持: 13922829991
研发顾问: 13922805190
;PCA 模块 3 输出 10 位 PWM
;PWM 占空比为 96.875%[(400H-20H)/400H]
;启动 PCA 计时器
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sbit
sbit
sbit
sbit
sbit
sbit
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
void main()
{
CCON = 0x00;
CMOD = 0x08;
CL = 0x00;
CH = 0x00;
CCAPM0 = 0x42;
PCA_PWM0 = 0x80;
CCAP0L = 0x20;
CCAP0H = 0x20;
CCAPM1 = 0x42;
PCA_PWM1 = 0x40;
CCAP1L = 0x20;
CCAP1H = 0x20;
CCAPM2 = 0x42;
PCA_PWM2 = 0x00;
江苏国芯科技有限公司
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0xd8;
CCON^7;
CCON^6;
CCON^3;
CCON^2;
CCON^1;
CCON^0;
0xd9;
0xe9;
0xf9;
0xda;
0xea;
0xfa;
0xf2;
0xdb;
0xeb;
0xfb;
0xf3;
0xdc;
0xec;
0xfc;
0xf4;
0xdd;
0xed;
0xfd;
0xf5;
//PCA 时钟为系统时钟
//PCA 模块 0 为 PWM 工作模式
//PCA 模块 0 输出 6 位 PWM
//PWM 占空比为 50%[(40H-20H)/40H]
//PCA 模块 1 为 PWM 工作模式
//PCA 模块 1 输出 7 位 PWM
//PWM 占空比为 75%[(80H-20H)/80H]
//PCA 模块 2 为 PWM 工作模式
//PCA 模块 2 输出 8 位 PWM
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 369 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
//PWM 占空比为 87.5%[(100H-20H)/100H]
CCAP2L = 0x20;
CCAP2H = 0x20;
CCAPM3 = 0x42;
PCA_PWM3 = 0xc0;
CCAP3L = 0x20;
CCAP3H = 0x20;
CR = 1;
//PCA 模块 3 为 PWM 工作模式
//PCA 模块 3 输出 10 位 PWM
//PWM 占空比为 96.875%[(400H-20H)/400H]
//启动 PCA 计时器
while (1);
}
17.3.2
PCA捕获测量脉冲宽度
汇编代码
;测试工作频率为 11.0592MHz
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
DATA
BIT
BIT
BIT
BIT
BIT
BIT
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D8H
CCON.7
CCON.6
CCON.3
CCON.2
CCON.1
CCON.0
0D9H
0E9H
0F9H
0DAH
0EAH
0FAH
0F2H
0DBH
0EBH
0FBH
0F3H
0DCH
0ECH
0FCH
0F4H
0DDH
0EDH
0FDH
0F5H
CNT
COUNT0
COUNT1
LENGTH
DATA
DATA
DATA
DATA
20H
21H
24H
27H
ORG
LJMP
ORG
LJMP
0000H
MAIN
003BH
PCAISR
ORG
0100H
PUSH
PUSH
JNB
ACC
PSW
CF,CHECKCCF0
;3 bytes
;3 bytes
;3 bytes, (COUNT1-COUNT0)
PCAISR:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 370 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
;清中断标志
; PCA 计时溢出次数+1
CLR
INC
CF
CNT
JNB
CLR
MOV
MOV
MOV
MOV
MOV
MOV
CLR
MOV
SUBB
MOV
MOV
SUBB
MOV
MOV
SUBB
MOV
CCF0,ISREXIT
CCF0
COUNT0,COUNT1
COUNT0+1,COUNT1+1
COUNT0+2,COUNT1+2
COUNT1,CNT
COUNT1+1,CCAP0H
COUNT1+2,CCAP0L
C
A,COUNT1+2
A,COUNT0+2
LENGTH+2,A
A,COUNT1+1
A,COUNT0+1
LENGTH+1,A
A,COUNT1
A,COUNT0
LENGTH,A
POP
POP
RETI
PSW
ACC
MOV
SP,#3FH
CLR
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
A
CNT,A
COUNT0,A
COUNT0+1,A
COUNT0+2,A
COUNT1,A
COUNT1+1,A
COUNT1+2,A
LENGTH,A
LENGTH+1,A
LENGTH+2,A
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SETB
SETB
CCON,#00H
CMOD,#09H
CL,#00H
CH,#0H
CCAPM0,#11H
CCAPM0,#21H
CCAPM0,#31H
CCAP0L,#00H
CCAP0H,#00H
CR
EA
JMP
$
CHECKCCF0:
;备份上一次的捕获值
;保存本次的捕获值
;计算两次的捕获差值
;LENGTH 保存的即为捕获的脉冲宽度
ISREXIT:
MAIN:
;
;
;用户变量初始化
;PCA 时钟为系统时钟,使能 PCA 计时中断
;PCA 模块 0 为 16 位捕获模式(下降沿捕获)
;PCA 模块 0 为 16 位捕获模式(上升沿捕获)
;PCA 模块 0 为 16 位捕获模式(边沿捕获)
;启动 PCA 计时器
END
C 语言代码
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 371 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sbit
sbit
sbit
sbit
sbit
sbit
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
unsigned char
unsigned long
unsigned long
unsigned long
cnt;
count0;
count1;
length;
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0xd8;
CCON^7;
CCON^6;
CCON^3;
CCON^2;
CCON^1;
CCON^0;
0xd9;
0xe9;
0xf9;
0xda;
0xea;
0xfa;
0xf2;
0xdb;
0xeb;
0xfb;
0xf3;
0xdc;
0xec;
0xfc;
0xf4;
0xdd;
0xed;
0xfd;
0xf5;
//存储 PCA 计时溢出次数
//记录上一次的捕获值
//记录本次的捕获值
//存储信号的时间长度
void PCA_Isr() interrupt 7
{
if (CF)
{
CF = 0;
cnt++;
//PCA 计时溢出次数+1
}
if (CCF0)
{
CCF0 = 0;
count0 = count1;
//备份上一次的捕获值
((unsigned char *)&count1)[3] = CCAP0L;
((unsigned char *)&count1)[2] = CCAP0H;
((unsigned char *)&count1)[1] = cnt;
((unsigned char *)&count1)[0] = 0;
length = count1 - count0;
//length 保存的即为捕获的脉冲宽度
}
}
void main()
{
cnt = 0;
江苏国芯科技有限公司
//用户变量初始化
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 372 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
count0 = 0;
count1 = 0;
length = 0;
CCON = 0x00;
CMOD = 0x09;
CL = 0x00;
CH = 0x00;
CCAPM0 = 0x11;
CCAPM0 = 0x21;
CCAPM0 = 0x31;
CCAP0L = 0x00;
CCAP0H = 0x00;
CR = 1;
EA = 1;
技术支持: 13922829991
研发顾问: 13922805190
//PCA 时钟为系统时钟,使能 PCA 计时中断
//PCA 模块 0 为 16 位捕获模式(下降沿捕获)
//PCA 模块 0 为 16 位捕获模式(下降沿捕获)
//PCA 模块 0 为 16 位捕获模式(下降沿捕获)
//启动 PCA 计时器
while (1);
}
17.3.3
PCA实现 16 位软件定时
汇编代码
;测试工作频率为 11.0592MHz
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
DATA
BIT
BIT
BIT
BIT
BIT
BIT
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D8H
CCON.7
CCON.6
CCON.3
CCON.2
CCON.1
CCON.0
0D9H
0E9H
0F9H
0DAH
0EAH
0FAH
0F2H
0DBH
0EBH
0FBH
0F3H
0DCH
0ECH
0FCH
0F4H
0DDH
0EDH
0FDH
0F5H
T50HZ
EQU
2400H
ORG
LJMP
ORG
LJMP
0000H
MAIN
003BH
PCAISR
ORG
0100H
江苏国芯科技有限公司
;11059200/12/2/50
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 373 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
PCAISR:
PUSH
PUSH
CLR
MOV
ADD
MOV
MOV
ADDC
MOV
CPL
POP
POP
RETI
ACC
PSW
CCF0
A,CCAP0L
A,#LOW T50HZ
CCAP0L,A
A,CCAP0H
A,#HIGH T50HZ
CCAP0H,A
P1.0
PSW
ACC
MOV
SP,#3FH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SETB
SETB
CCON,#00H
CMOD,#00H
CL,#00H
CH,#0H
CCAPM0,#49H
CCAP0L,#LOW T50HZ
CCAP0H,#HIGH T50HZ
CR
EA
JMP
$
;测试端口,闪烁频率为 50Hz
MAIN:
;PCA 时钟为系统时钟/12
;PCA 模块 0 为 16 位定时器模式
;启动 PCA 计时器
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
#define
T50HZ
sfr
sbit
sbit
sbit
sbit
sbit
sbit
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
江苏国芯科技有限公司
(11059200L / 12 / 2 / 50)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0xd8;
CCON^7;
CCON^6;
CCON^3;
CCON^2;
CCON^1;
CCON^0;
0xd9;
0xe9;
0xf9;
0xda;
0xea;
0xfa;
0xf2;
0xdb;
0xeb;
0xfb;
0xf3;
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 374 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
=
=
=
=
=
=
=
=
0xdc;
0xec;
0xfc;
0xf4;
0xdd;
0xed;
0xfd;
0xf5;
sbit
P10
=
P1^0;
unsigned int
技术支持: 13922829991
研发顾问: 13922805190
value;
void PCA_Isr() interrupt 7
{
CCF0 = 0;
CCAP0L = value;
CCAP0H = value >> 8;
value += T50HZ;
//测试端口
P10 = !P10;
}
void main()
{
CCON = 0x00;
CMOD = 0x00;
CL = 0x00;
CH = 0x00;
CCAPM0 = 0x49;
value = T50HZ;
CCAP0L = value;
CCAP0H = value >> 8;
value += T50HZ;
CR = 1;
EA = 1;
//PCA 时钟为系统时钟/12
//PCA 模块 0 为 16 位定时器模式
//启动 PCA 计时器
while (1);
}
17.3.4
PCA输出高速脉冲
汇编代码
;测试工作频率为 11.0592MHz
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
DATA
BIT
BIT
BIT
BIT
BIT
BIT
DATA
DATA
DATA
DATA
DATA
DATA
江苏国芯科技有限公司
0D8H
CCON.7
CCON.6
CCON.3
CCON.2
CCON.1
CCON.0
0D9H
0E9H
0F9H
0DAH
0EAH
0FAH
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 375 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0F2H
0DBH
0EBH
0FBH
0F3H
0DCH
0ECH
0FCH
0F4H
0DDH
0EDH
0FDH
0F5H
T38K4HZ
EQU
90H
ORG
LJMP
ORG
LJMP
0000H
MAIN
003BH
PCAISR
ORG
0100H
PUSH
PUSH
CLR
MOV
ADD
MOV
MOV
ADDC
MOV
POP
POP
RETI
ACC
PSW
CCF0
A,CCAP0L
A,#LOW T38K4HZ
CCAP0L,A
A,CCAP0H
A,#HIGH T38K4HZ
CCAP0H,A
PSW
ACC
MOV
SP,#3FH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SETB
SETB
CCON,#00H
CMOD,#08H
CL,#00H
CH,#0H
CCAPM0,#4DH
CCAP0L,#LOW T38K4HZ
CCAP0H,#HIGH T38K4HZ
CR
EA
JMP
$
技术支持: 13922829991
研发顾问: 13922805190
;11059200/2/38400
PCAISR:
MAIN:
;PCA 时钟为系统时钟
;PCA 模块 0 为 16 位定时器模式并使能脉冲输出
;启动 PCA 计时器
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 376 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
#define
T38K4HZ
sfr
sbit
sbit
sbit
sbit
sbit
sbit
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
unsigned int
技术支持: 13922829991
研发顾问: 13922805190
(11059200L / 2 / 38400)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0xd8;
CCON^7;
CCON^6;
CCON^3;
CCON^2;
CCON^1;
CCON^0;
0xd9;
0xe9;
0xf9;
0xda;
0xea;
0xfa;
0xf2;
0xdb;
0xeb;
0xfb;
0xf3;
0xdc;
0xec;
0xfc;
0xf4;
0xdd;
0xed;
0xfd;
0xf5;
value;
void PCA_Isr() interrupt 7
{
CCF0 = 0;
CCAP0L = value;
CCAP0H = value >> 8;
value += T38K4HZ;
}
void main()
{
CCON = 0x00;
CMOD = 0x08;
CL = 0x00;
CH = 0x00;
CCAPM0 = 0x4d;
value = T38K4HZ;
CCAP0L = value;
CCAP0H = value >> 8;
value += T38K4HZ;
CR = 1;
EA = 1;
//PCA 时钟为系统时钟
//PCA 模块 0 为 16 位定时器模式并使能脉冲输出
//启动 PCA 计时器
while (1);
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 377 -
STC8 系列技术手册
17.3.5
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
PCA扩展外部中断
汇编代码
;测试工作频率为 11.0592MHz
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
DATA
BIT
BIT
BIT
BIT
BIT
BIT
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D8H
CCON.7
CCON.6
CCON.3
CCON.2
CCON.1
CCON.0
0D9H
0E9H
0F9H
0DAH
0EAH
0FAH
0F2H
0DBH
0EBH
0FBH
0F3H
0DCH
0ECH
0FCH
0F4H
0DDH
0EDH
0FDH
0F5H
ORG
LJMP
ORG
LJMP
0000H
MAIN
003BH
PCAISR
ORG
0100H
CLR
CPL
RETI
CCF0
P1.0
MOV
SP,#3FH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SETB
SETB
CCON,#00H
CMOD,#08H
CL,#00H
CH,#0H
CCAPM0,#11H
CCAPM0,#21H
CCAPM0,#31H
CCAP0L,#0
CCAP0H,#0
CR
EA
PCAISR:
MAIN:
;
;
江苏国芯科技有限公司
;PCA 时钟为系统时钟
;扩展外部端口 CCP0 为下降沿中断口
;扩展外部端口 CCP0 为上升沿中断口
;扩展外部端口 CCP0 为边沿中断口
;启动 PCA 计时器
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 378 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
JMP
技术支持: 13922829991
研发顾问: 13922805190
$
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sbit
sbit
sbit
sbit
sbit
sbit
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
CCON
CF
CR
CCF3
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0xd8;
CCON^7;
CCON^6;
CCON^3;
CCON^2;
CCON^1;
CCON^0;
0xd9;
0xe9;
0xf9;
0xda;
0xea;
0xfa;
0xf2;
0xdb;
0xeb;
0xfb;
0xf3;
0xdc;
0xec;
0xfc;
0xf4;
0xdd;
0xed;
0xfd;
0xf5;
sbit
P10
=
P1^0;
void PCA_Isr() interrupt 7
{
CCF0 = 0;
P10 = !P10;
}
void main()
{
CCON = 0x00;
CMOD = 0x08;
CL = 0x00;
CH = 0x00;
CCAPM0 = 0x11;
//
CCAPM0 = 0x21;
//
CCAPM0 = 0x31;
CCAP0L = 0;
CCAP0H = 0;
CR = 1;
EA = 1;
江苏国芯科技有限公司
//PCA 时钟为系统时钟
//扩展外部端口 CCP0 为下降沿中断口
//扩展外部端口 CCP0 为上升沿中断口
//扩展外部端口 CCP0 为边沿中断口
//启动 PCA 计时器
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 379 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
while (1);
}
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 380 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
18 增强型PWM
STC8 系列单片机集成了一组(各自独立 8 路)增强型的 PWM 波形发生器。PWM 波形发生器内
部有一个 15 位的 PWM 计数器供 8 路 PWM 使用,用户可以设置每路 PWM 的初始电平。另外,PWM
波形发生器为每路 PWM 又设计了两个用于控制波形翻转的计数器 T1/T2,可以非常灵活的每路 PWM
的高低电平宽度,从而达到对 PWM 的占空比以及 PWM 的输出延迟进行控制的目的。由于 8 路 PWM
是各自独立的,且每路 PWM 的初始状态可以进行设定,所以用户可以将其中的任意两路配合起来使用,
即可实现互补对称输出以及死区控制等特殊应用。
增强型的 PWM 波形发生器还设计了对外部异常事件(包括外部端口 P3.5 电平异常、比较器比较
结果异常)进行监控的功能,可用于紧急关闭 PWM 输出。PWM 波形发生器还可与 ADC 相关联,设
置 PWM 周期的任一时间点触发 ADC 转换事件。
18.1 PWM相关的寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
PWMCFG
增强型 PWM 配置寄存器
F1H
CBIF
ETADC
-
-
-
-
-
-
00xx,xxxx
PWMIF
增强型 PWM 中断标志寄存器
F6H
C7IF
C6IF
C5IF
C4IF
C3IF
C2IF
C1IF
C0IF
0000,0000
PWMFDCR
PWM 异常检测控制寄存器
F7H
INVCMP
INVIO
ENFD
FLTFLIO
EFDI
FDCMP
FDIO
FDIF
0000,0000
PWMCR
PWM 控制寄存器
FEH
ENPWM
ECBI
-
-
-
-
-
-
00xx,xxxx
符号
描述
地址
B3
B2
B1
位地址与符号
复位值
B7
B6
B5
PWMCH
PWM 计数器高字节
FFF0H
PWMCL
PWM 计数器低字节
FFF1H
PWMCKS
PWM 时钟选择
FFF2H
-
TADCPH
触发 ADC 计数值高字节
FFF3H
-
TADCPL
触发 ADC 计数值低字节
FFF4H
PWM0T1H
PWM0T1 计数值高字节
FF00H
PWM0T1L
PWM0T1 计数值低节
FF01H
PWM0T2H
PWM0T2 数值高字节
FF02H
PWM0T2L
PWM0T2 数值低节
FF03H
PWM0CR
PWM0 控制寄存器
FF04H
ENC0O
C0INI
-
PWM0HLD
PWM0 电平保持控制寄存器
FF05H
-
-
-
PWM1T1H
PWM1T1 计数值高字节
FF10H
-
PWM1T1L
PWM1T1 计数值低节
FF11H
PWM1T2H
PWM1T2 数值高字节
FF12H
PWM1T2L
PWM1T2 数值低节
FF13H
PWM1CR
PWM1 控制寄存器
FF14H
ENC1O
C1INI
-
PWM1HLD
PWM1 电平保持控制寄存器
FF15H
-
-
-
PWM2T1H
PWM2T1 计数值高字节
FF20H
-
PWM2T1L
PWM2T1 计数值低节
FF21H
PWM2T2H
PWM2T2 数值高字节
FF22H
江苏国芯科技有限公司
B4
B0
-
x000,0000
0000,0000
-
-
SELT2
PWM_PS[3:0]
xxx0,0000
x000,0000
0000,0000
-
x000,0000
0000,0000
-
x000,0000
0000,0000
C0_S[1:0]
-
EC0I
-
-
EC0T2SI EC0T1SI 00x0,0000
HC0H
HC0L
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
C1_S[1:0]
-
EC1I
-
-
EC1T2SI EC1T1SI 00x0,0000
HC1H
HC1L
xxxx,xx00
x000,0000
0000,0000
-
总机: 0513-5501 2928/2929/2966
x000,0000
传真: 0513-5501 2926/2956/2947
- 381 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
PWM2T2L
PWM2T2 数值低节
FF23H
PWM2CR
PWM2 控制寄存器
FF24H
ENC2O
C2INI
-
PWM2HLD
PWM2 电平保持控制寄存器
FF25H
-
-
-
PWM3T1H
PWM3T1 计数值高字节
FF30H
-
PWM3T1L
PWM3T1 计数值低节
FF31H
PWM3T2H
PWM3T2 数值高字节
FF32H
PWM3T2L
PWM3T2 数值低节
FF33H
PWM3CR
PWM3 控制寄存器
FF34H
ENC3O
C3INI
-
PWM3HLD
PWM3 电平保持控制寄存器
FF35H
-
-
-
PWM4T1H
PWM4T1 计数值高字节
FF40H
-
PWM4T1L
PWM4T1 计数值低节
FF41H
PWM4T2H
PWM4T2 数值高字节
FF42H
PWM4T2L
PWM4T2 数值低节
FF43H
PWM4CR
PWM4 控制寄存器
FF44H
ENC4O
C4INI
-
PWM4HLD
PWM4 电平保持控制寄存器
FF45H
-
-
-
PWM5T1H
PWM5T1 计数值高字节
FF50H
-
PWM5T1L
PWM5T1 计数值低节
FF51H
PWM5T2H
PWM5T2 数值高字节
FF52H
PWM5T2L
PWM5T2 数值低节
FF53H
PWM5CR
PWM5 控制寄存器
FF54H
ENC5O
C5INI
-
PWM5HLD
PWM5 电平保持控制寄存器
FF55H
-
-
-
PWM6T1H
PWM6T1 计数值高字节
FF60H
-
PWM6T1L
PWM6T1 计数值低节
FF61H
PWM6T2H
PWM6T2 数值高字节
FF62H
PWM6T2L
PWM6T2 数值低节
FF63H
PWM6CR
PWM6 控制寄存器
FF64H
ENC6O
C6INI
-
PWM6HLD
PWM6 电平保持控制寄存器
FF65H
-
-
-
PWM7T1H
PWM7T1 计数值高字节
FF70H
-
PWM7T1L
PWM7T1 计数值低节
FF71H
PWM7T2H
PWM7T2 数值高字节
FF72H
PWM7T2L
PWM7T2 数值低节
FF73H
PWM7CR
PWM7 控制寄存器
FF74H
ENC7O
C7INI
-
PWM7HLD
PWM7 电平保持控制寄存器
FF75H
-
-
-
技术支持: 13922829991
研发顾问: 13922805190
0000,0000
C2_S[1:0]
-
EC2I
-
-
EC2T2SI EC2T1SI 00x0,0000
HC2H
HC2L
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
C3_S[1:0]
-
EC3I
-
-
EC3T2SI EC3T1SI 00x0,0000
HC3H
HC3L
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
C4_S[1:0]
-
EC4I
-
-
EC4T2SI EC4T1SI 00x0,0000
HC4H
HC4L
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
C5_S[1:0]
-
EC5I
-
-
EC5T2SI EC5T1SI 00x0,0000
HC5H
HC5L
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
C6_S[1:0]
-
EC6I
-
-
EC6T2SI EC6T1SI 00x0,0000
HC6H
HC6L
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
C7_S[1:0]
-
EC7I
-
-
EC7T2SI EC7T1SI 00x0,0000
HC7H
HC7L
xxxx,xx00
PWM 配置寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMCFG
F1H
CBIF
ETADC
-
-
-
-
-
-
CBIF:PWM 计数器归零中断标志位。
当 15 位的 PWM 计数器记满溢出归零时,硬件自动将此位置 1,并向 CPU 提出中断请求,此标志
位需要软件清零。
ETADC:PWM 是否与 ADC 关联
0:PWM 与 ADC 不关联
允许在 PWM 周期中某个时间点触发 A/D 转换。使用 TADCPH 和 TADCPL
1:PWM 与 ADC 相关联。
进行设置。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 382 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
PWM 中断标志寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMIF
F6H
C7IF
C6IF
C5IF
C4IF
C3IF
C2IF
C1IF
C0IF
CnIF:第 n 通道 PWM 的中断标志位。
可设置在各路 PWM 的翻转点 1 和翻转点 2。当所设置的翻转点发生翻转事件时,硬件自动将此位
置 1,并向 CPU 提出中断请求,此标志位需要软件清零。
PWM 异常检测控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMFDCR
F7H
INVCMP
INVIO
ENFD
FLTFLIO
EFDI
FDCMP
FDIO
FDIF
INVCMP:比较器器结果异常信号处理
0:比较器器结果由低变高为异常信号
1:比较器器结果由高变低为异常信号
INVIO:外部端口 P3.5 异常信号处理
0:外部端口 P3.5 信号由低变高为异常信号
1:外部端口 P3.5 信号由高变低为异常信号
ENFD:PWM 外部异常检测控制位
0:关闭 PWM 外部异常检测功能
1:使能 PWM 外部异常检测功能
FLTFLIO:发生 PWM 外部异常时对 PWM 输出口控制位
0:发生 WM 外部异常时,PWM 的输出口不作任何改变
(注:只有 ENCnO=1 所对
1:发生 WM 外部异常时,PWM 的输出口立即被设置为高阻输入模式。
应的端口才会被强制悬空)
EFDI:PWM 异常检测中断使能位
0:关闭 PWM 异常检测中断(FDIF 依然会被硬件置位)
1:使能 PWM 异常检测中断
FDCMP:比较器输出异常检测使能位
0:比较器与 PWM 无关
1:设定 PWM 异常检测源为比较器输出(异常类型有 INVCMP 设定)
FDIO:P3.5 口电平异常检测使能位
0:P3.5 口电平与 PWM 无关
1:设定 PWM 异常检测源为 P3.5 口(异常类型有 INVIO 设定)
FDIF:PWM 异常检测中断标志位
当发生 PWM 异常(比较器的输出由低变高或者 P3.5 的电平由低变高)时,硬件自动将此位置 1。
当 EFDI==1 时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。
PWM 控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMCR
FEH
ENPWM
ECBI
-
-
-
-
-
-
ENPWM:使能增强型 PWM 波形发生器
0:关闭 PWM 波形发生器
1:使能 PWM 波形发生器,PWM 计数器开始计数
关于 ENPWM 控制位的重要说明:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 383 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
ENPWM 一旦被使能后,内部的 PWM 计数器会立即开始计数,并与 T1/T2 两个翻转点的值进
行比较。所以 ENPWM 必须在其他所有的 PWM 设置(包括 T1/T2 翻转点的设置、初始电平
的设置、PWM 异常检测的设置以及 PWM 中断设置)都完成后,最后才能使能 ENPWM 位。
也是 PWM 计数器开始计数的控制位。
在 PWM
ENPWM 控制位既是整个 PWM 模块的的使能位,
计数器计数的过程中,ENPWM 控制位被关闭时,PWM 计数会立即停止,当再次使能 ENPWM
控制位时,PWM 的计数会从 0 开始重新计数,而不会记忆 PWM 停止计数前的计数值
ECBI:PWM 计数器归零中断使能位
0:关闭 PWM 计数器归零中断(CBIF 依然会被硬件置位)
1:使能 PWM 计数器归零中断
PWM 计数器寄存器
符号
地址
B7
PWMCH
FFF0H
-
PWMCL
FFF1H
B6
B5
B4
B3
B2
B1
B0
PWM 计数器位一个 15 位的寄存器,可设定 1~32767 之间的任意值作为 PWM 的周期。PWM 波形发生
器内部的计数器从 0 开始计数,每个 PWM 时钟周期递增 1,当内部计数器的计数值达到[PWMCH,
PWMCL]所设定的 PWM 周期时,PWM 波形发生器内部的计数器将会从 0 重新开始开始计数,硬
件会自动将 PWM 归零中断中断标志位 CBIF 置 1,若 ECBI=1,程序将跳转到相应中断入口执行中
断服务程序。
PWM 时钟选择寄存器
符号
地址
B7
B6
B5
B4
PWMCKS
FFF2H
-
-
-
SELT2
B3
B2
B1
B0
PWM_PS[3:0]
SELT2:PWM 时钟源选择
0:PWM 时钟源为系统时钟经分频器分频之后的时钟
1:PWM 时钟源为定时器 2 的溢出脉冲
PWM_PS[3:0]:系统时钟预分频参数
SELT2
PWM_PS[3:0]
PWM 输入时钟源频率
1
xxxx
定时器 2 的溢出脉冲
0
0000
SYSclk/1
0
0001
SYSclk/2
0
0010
SYSclk/3
…
…
…
0
x
SYSclk/(x+1)
…
…
…
0
1111
SYSclk/16
PWM 触发 ADC 计数器寄存器
符号
地址
B7
TADCPH
FFF3H
-
TADCPL
FFF4H
B6
B5
B4
B3
B2
B1
B0
在 ETADC=1 且 ADC_POWER=1 时,{TADCPH,TADCPL}组成一个 15 位的寄存器。在 PWM 的计数周
期中,当 PWM 的内部计数值与{TADCPH,TADCPL}的值相等时,硬件自动触发 A/D 转换。
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 384 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
PWM 翻转点设置计数值寄存器
符号
地址
B7
PWM0T1H
FF00H
-
PWM0T1L
FF01H
PWM0T2H
FF02H
PWM0T2L
FF03H
PWM1T1H
FF10H
PWM1T1L
FF11H
PWM1T2H
FF12H
PWM1T2L
FF13H
PWM2T1H
FF20H
PWM2T1L
FF21H
PWM2T2H
FF22H
PWM2T2L
FF23H
PWM3T1H
FF30H
PWM3T1L
FF31H
PWM3T2H
FF32H
PWM3T2L
FF33H
PWM4T1H
FF40H
PWM4T1L
FF41H
PWM4T2H
FF42H
PWM4T2L
FF43H
PWM5T1H
FF50H
PWM5T1L
FF51H
PWM5T2H
FF52H
PWM5T2L
FF53H
PWM6T1H
FF60H
PWM6T1L
FF61H
PWM6T2H
FF62H
PWM6T2L
FF63H
PWM7T1H
FF70H
PWM7T1L
FF71H
PWM7T2H
FF72H
PWM7T2L
FF73H
B6
B5
B4
B3
B2
B1
B0
-
PWM 每个通道的{PWMnT1H, PWMnT1L}和{PWMnT2H, PWMnT2L}分别组合成两个 15 位的寄存器,
用于控制各路 PWM 每个周期中输出 PWM 波形的两个翻转点。在 PWM 的计数周期中,当 PWM
的内部计数值与所设置的第 1 个翻转点的值{PWMnT1H, PWMnT1L}相等时,PWM 的输出波形会
自动翻转为低电平;当 PWM 的内部计数值与所设置的第 2 个翻转点的值{PWMnT2H, PWMnT2L}
相等时,PWM 的输出波形会自动翻转为高电平。
注意:当{PWMnT1H, PWMnT1L}与{PWMnT2H, PWMnT2L}的值设置相等时,第 2 组翻转点的匹配将
被忽略,即只会翻转为低电平。
PWM 通道控制寄存器
符号
地址
江苏国芯科技有限公司
B7
B6
B5
总机: 0513-5501 2928/2929/2966
B4
B3
B2
B1
传真: 0513-5501 2926/2956/2947
B0
- 385 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
PWM0CR
FF04H
ENC0O
C0INI
-
C0_S[1:0]
EC0I
EC0T2SI
EC0T1SI
PWM1CR
FF14H
ENC1O
C1INI
-
C1_S[1:0]
EC1I
EC1T2SI
EC1T1SI
PWM2CR
FF24H
ENC2O
C2INI
-
C2_S[1:0]
EC2I
EC2T2SI
EC2T1SI
PWM3CR
FF34H
ENC3O
C3INI
-
C3_S[1:0]
EC3I
EC3T2SI
EC3T1SI
PWM4CR
FF44H
ENC4O
C4INI
-
C4_S[1:0]
EC4I
EC4T2SI
EC4T1SI
PWM5CR
FF54H
ENC5O
C5INI
-
C5_S[1:0]
EC5I
EC5T2SI
EC5T1SI
PWM6CR
FF64H
ENC6O
C6INI
-
C6_S[1:0]
EC6I
EC6T2SI
EC6T1SI
PWM7CR
FF74H
ENC7O
C7INI
-
C7_S[1:0]
EC7I
EC7T2SI
EC7T1SI
ENCnO:PWM 输出使能位
0:相应 PWM 通道的端口为 GPIO
1:相应 PWM 通道的端口为 PWM 输出口,受 PWM 波形发生器控制
CnINI:设置 PWM 输出端口的初始电平
0:第 n 通道的 PWM 初始电平为低电平
1:第 n 通道的 PWM 初始电平为高电平
Cn_S[1:0]:PWM 输出功能脚切换选择,请参考功能脚切换章节。
ECnI:第 n 通道的 PWM 中断使能控制位
0:关闭第 n 通道的 PWM 中断
1:使能第 n 通道的 PWM 中断
ECnT2SI:第 n 通道的 PWM 在第 2 个翻转点中断使能控制位
0:关闭第 n 通道的 PWM 在第 2 个翻转点中断
1:使能第 n 通道的 PWM 在第 2 个翻转点中断
ECnT1SI:第 n 通道的 PWM 在第 1 个翻转点中断使能控制位
0:关闭第 n 通道的 PWM 在第 1 个翻转点中断
1:使能第 n 通道的 PWM 在第 1 个翻转点中断
PWM 通道电平保持控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWM0HLD
FF05H
-
-
-
-
-
-
HC0H
HC0L
PWM1HLD
FF15H
-
-
-
-
-
-
HC1H
HC1L
PWM2HLD
FF25H
-
-
-
-
-
-
HC2H
HC2L
PWM3HLD
FF35H
-
-
-
-
-
-
HC3H
HC3L
PWM4HLD
FF45H
-
-
-
-
-
-
HC4H
HC4L
PWM5HLD
FF55H
-
-
-
-
-
-
HC5H
HC5L
PWM6HLD
FF65H
-
-
-
-
-
-
HC6H
HC6L
PWM7HLD
FF75H
-
-
-
-
-
-
HC7H
HC7L
HCnH:第 n 通道 PWM 强制输出高电平控制位
0:第 n 通道 PWM 正常输出
1:第 n 通道 PWM 强制输出高电平
HCnL:第 n 通道 PWM 强制输出低电平控制位
0:第 n 通道 PWM 正常输出
1:第 n 通道 PWM 强制输出低电平
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 386 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
18.2 范例程序
18.2.1
输出任意周期和任意占空比的波形
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
PWMCFG
PWMIF
PWMFDCR
PWMCR
PWMCH
PWMCL
PWMCKS
TADCPH
TADCPL
PWM0T1H
PWM0T1L
PWM0T2H
PWM0T2L
PWM0CR
PWM0HLD
PWM1T1H
PWM1T1L
PWM1T2H
PWM1T2L
PWM1CR
PWM1HLD
PWM2T1H
PWM2T1L
PWM2T2H
PWM2T2L
PWM2CR
PWM2HLD
PWM3T1H
PWM3T1L
PWM3T2H
PWM3T2L
PWM3CR
PWM3HLD
PWM4T1H
PWM4T1L
PWM4T2H
PWM4T2L
PWM4CR
PWM4HLD
PWM5T1H
PWM5T1L
PWM5T2H
PWM5T2L
PWM5CR
PWM5HLD
PWM6T1H
PWM6T1L
PWM6T2H
PWM6T2L
DATA
DATA
DATA
DATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
0F1H
0F6H
0F7H
0FEH
0FFF0H
0FFF1H
0FFF2H
0FFF3H
0FFF4H
0FF00H
0FF01H
0FF02H
0FF03H
0FF04H
0FF05H
0FF10H
0FF11H
0FF12H
0FF13H
0FF14H
0FF15H
0FF20H
0FF21H
0FF22H
0FF23H
0FF24H
0FF25H
0FF30H
0FF31H
0FF32H
0FF33H
0FF34H
0FF35H
0FF40H
0FF41H
0FF42H
0FF43H
0FF44H
0FF45H
0FF50H
0FF51H
0FF52H
0FF53H
0FF54H
0FF55H
0FF60H
0FF61H
0FF62H
0FF63H
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 387 -
STC8 系列技术手册
PWM6CR
PWM6HLD
PWM7T1H
PWM7T1L
PWM7T2H
PWM7T2L
PWM7CR
PWM7HLD
官方网站: www.STCMCUDATA.com / www.STCMCU.com
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
0FF64H
0FF65H
0FF70H
0FF71H
0FF72H
0FF73H
0FF74H
0FF75H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
CLR
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
P_SW2,#80H
A
DPTR,#PWMCKS
@DPTR,A
A,#10H
DPTR,#PWMCH
@DPTR,A
A,#00H
DPTR,#PWMCL
@DPTR,A
A,#01H
DPTR,#PWM0T1H
@DPTR,A
A,#00H
DPTR,#PWM0T1L
@DPTR,A
A,#05H
DPTR,#PWM0T2H
@DPTR,A
A,#00H
DPTR,#PWM0T2L
@DPTR,A
A,#80H
DPTR,#PWM0CR
@DPTR,A
P_SW2,#00H
MOV
PWMCR,#080H
JMP
$
技术支持: 13922829991
研发顾问: 13922805190
MAIN:
;PWM 时钟为系统时钟
;设置 PWM 周期为 1000H 个 PWM 时钟
;在计数值为 100H 地方输出低电平
;在计数值为 500H 地方输出高电平
;使能 PWM0 输出
;启动 PWM 模块
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
sfr
sfr
sfr
sfr
sfr
P_SW2
PWMCFG
PWMIF
PWMFDCR
PWMCR
江苏国芯科技有限公司
=
=
=
=
=
0xba;
0xf1;
0xf6;
0xf7;
0xfe;
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 388 -
STC8 系列技术手册
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
官方网站: www.STCMCUDATA.com / www.STCMCU.com
PWMC
PWMCKS
TADCP
PWM0T1
PWM0T2
PWM0CR
PWM0HLD
PWM1T1
PWM1T2
PWM1CR
PWM1HLD
PWM2T1
PWM2T2
PWM2CR
PWM2HLD
PWM3T1
PWM3T2
PWM3CR
PWM3HLD
PWM4T1
PWM4T2
PWM4CR
PWM4HLD
PWM5T1
PWM5T2
PWM5CR
PWM5HLD
PWM6T1
PWM6T2
PWM6CR
PWM6HLD
PWM7T1
PWM7T2
PWM7CR
PWM7HLD
技术支持: 13922829991
研发顾问: 13922805190
(*(unsigned int volatile xdata *)0xfff0)
(*(unsigned char volatile xdata *)0xfff2)
(*(unsigned int volatile xdata *)0xfff3)
(*(unsigned int volatile xdata *)0xff00)
(*(unsigned int volatile xdata *)0xff02)
(*(unsigned char volatile xdata *)0xff04)
(*(unsigned char volatile xdata *)0xff05)
(*(unsigned int volatile xdata *)0xff10)
(*(unsigned int volatile xdata *)0xff12)
(*(unsigned char volatile xdata *)0xff14)
(*(unsigned char volatile xdata *)0xff15)
(*(unsigned int volatile xdata *)0xff20)
(*(unsigned int volatile xdata *)0xff22)
(*(unsigned char volatile xdata *)0xff24)
(*(unsigned char volatile xdata *)0xff25)
(*(unsigned int volatile xdata *)0xff30)
(*(unsigned int volatile xdata *)0xff32)
(*(unsigned char volatile xdata *)0xff34)
(*(unsigned char volatile xdata *)0xff35)
(*(unsigned int volatile xdata *)0xff40)
(*(unsigned int volatile xdata *)0xff42)
(*(unsigned char volatile xdata *)0xff44)
(*(unsigned char volatile xdata *)0xff45)
(*(unsigned int volatile xdata *)0xff50)
(*(unsigned int volatile xdata *)0xff52)
(*(unsigned char volatile xdata *)0xff54)
(*(unsigned char volatile xdata *)0xff55)
(*(unsigned int volatile xdata *)0xff60)
(*(unsigned int volatile xdata *)0xff62)
(*(unsigned char volatile xdata *)0xff64)
(*(unsigned char volatile xdata *)0xff65)
(*(unsigned int volatile xdata *)0xff70)
(*(unsigned int volatile xdata *)0xff72)
(*(unsigned char volatile xdata *)0xff74)
(*(unsigned char volatile xdata *)0xff75)
void main()
{
P_SW2 = 0x80;
PWMCKS = 0x00;
PWMC = 0x1000;
PWM0T1= 0x0100;
PWM0T2= 0x0500;
PWM0CR= 0x80;
P_SW2 = 0x00;
// PWM 时钟为系统时钟
//设置 PWM 周期为 1000H 个 PWM 时钟
//在计数值为 100H 地方输出低电平
//在计数值为 500H 地方输出高电平
//使能 PWM0 输出
//启动 PWM 模块
PWMCR = 0x80;
while (1);
}
18.2.2
两路PWM实现互补对称带死区控制的波形
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
江苏国芯科技有限公司
0BAH
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 389 -
STC8 系列技术手册
PWMCFG
PWMIF
PWMFDCR
PWMCR
PWMCH
PWMCL
PWMCKS
TADCPH
TADCPL
PWM0T1H
PWM0T1L
PWM0T2H
PWM0T2L
PWM0CR
PWM0HLD
PWM1T1H
PWM1T1L
PWM1T2H
PWM1T2L
PWM1CR
PWM1HLD
PWM2T1H
PWM2T1L
PWM2T2H
PWM2T2L
PWM2CR
PWM2HLD
PWM3T1H
PWM3T1L
PWM3T2H
PWM3T2L
PWM3CR
PWM3HLD
PWM4T1H
PWM4T1L
PWM4T2H
PWM4T2L
PWM4CR
PWM4HLD
PWM5T1H
PWM5T1L
PWM5T2H
PWM5T2L
PWM5CR
PWM5HLD
PWM6T1H
PWM6T1L
PWM6T2H
PWM6T2L
PWM6CR
PWM6HLD
PWM7T1H
PWM7T1L
PWM7T2H
PWM7T2L
PWM7CR
PWM7HLD
官方网站: www.STCMCUDATA.com / www.STCMCU.com
DATA
DATA
DATA
DATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
江苏国芯科技有限公司
技术支持: 13922829991
研发顾问: 13922805190
0F1H
0F6H
0F7H
0FEH
0FFF0H
0FFF1H
0FFF2H
0FFF3H
0FFF4H
0FF00H
0FF01H
0FF02H
0FF03H
0FF04H
0FF05H
0FF10H
0FF11H
0FF12H
0FF13H
0FF14H
0FF15H
0FF20H
0FF21H
0FF22H
0FF23H
0FF24H
0FF25H
0FF30H
0FF31H
0FF32H
0FF33H
0FF34H
0FF35H
0FF40H
0FF41H
0FF42H
0FF43H
0FF44H
0FF45H
0FF50H
0FF51H
0FF52H
0FF53H
0FF54H
0FF55H
0FF60H
0FF61H
0FF62H
0FF63H
0FF64H
0FF65H
0FF70H
0FF71H
0FF72H
0FF73H
0FF74H
0FF75H
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 390 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
CLR
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
P_SW2,#80H
A
DPTR,#PWMCKS
@DPTR,A
A,#08H
DPTR,#PWMCH
@DPTR,A
A,#00H
DPTR,#PWMCL
@DPTR,A
A,#01H
DPTR,#PWM0T1H
@DPTR,A
A,#00H
DPTR,#PWM0T1L
@DPTR,A
A,#07H
DPTR,#PWM0T2H
@DPTR,A
A,#00H
DPTR,#PWM0T2L
@DPTR,A
A,#00H
DPTR,#PWM1T2H
@DPTR,A
A,#80H
DPTR,#PWM1T2L
@DPTR,A
A,#07H
DPTR,#PWM1T1H
@DPTR,A
A,#80H
DPTR,#PWM1T1L
@DPTR,A
A,#080H
DPTR,#PWM0CR
@DPTR,A
A,#80H
DPTR,#PWM1CR
@DPTR,A
P_SW2,#00H
MOV
PWMCR,#080H
JMP
$
技术支持: 13922829991
研发顾问: 13922805190
MAIN:
;PWM 时钟为系统时钟
;设置 PWM 周期为 0800H 个 PWM 时钟
;PWM0 在计数值为 0100H 地方输出低电平
;PWM0 在计数值为 0700H 地方输出高电平
;PWM1 在计数值为 0080H 地方输出高电平
;PWM1 在计数值为 0780H 地方输出低电平
;使能 PWM0 输出
;使能 PWM1 输出
;启动 PWM 模块
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 391 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
sfr
sfr
sfr
sfr
sfr
P_SW2
PWMCFG
PWMIF
PWMFDCR
PWMCR
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
PWMC
PWMCKS
TADCP
PWM0T1
PWM0T2
PWM0CR
PWM0HLD
PWM1T1
PWM1T2
PWM1CR
PWM1HLD
PWM2T1
PWM2T2
PWM2CR
PWM2HLD
PWM3T1
PWM3T2
PWM3CR
PWM3HLD
PWM4T1
PWM4T2
PWM4CR
PWM4HLD
PWM5T1
PWM5T2
PWM5CR
PWM5HLD
PWM6T1
PWM6T2
PWM6CR
PWM6HLD
PWM7T1
PWM7T2
PWM7CR
PWM7HLD
void main()
{
P_SW2 = 0x80;
PWMCKS = 0x00;
PWMC = 0x0800;
PWM0T1= 0x0100;
PWM0T2= 0x0700;
PWM1T2= 0x0080;
PWM1T1= 0x0780;
PWM0CR= 0x80;
PWM1CR= 0x80;
P_SW2 = 0x00;
PWMCR = 0x80;
=
=
=
=
=
技术支持: 13922829991
研发顾问: 13922805190
0xba;
0xf1;
0xf6;
0xf7;
0xfe;
(*(unsigned int volatile xdata *)0xfff0)
(*(unsigned char volatile xdata *)0xfff2)
(*(unsigned int volatile xdata *)0xfff3)
(*(unsigned int volatile xdata *)0xff00)
(*(unsigned int volatile xdata *)0xff02)
(*(unsigned char volatile xdata *)0xff04)
(*(unsigned char volatile xdata *)0xff05)
(*(unsigned int volatile xdata *)0xff10)
(*(unsigned int volatile xdata *)0xff12)
(*(unsigned char volatile xdata *)0xff14)
(*(unsigned char volatile xdata *)0xff15)
(*(unsigned int volatile xdata *)0xff20)
(*(unsigned int volatile xdata *)0xff22)
(*(unsigned char volatile xdata *)0xff24)
(*(unsigned char volatile xdata *)0xff25)
(*(unsigned int volatile xdata *)0xff30)
(*(unsigned int volatile xdata *)0xff32)
(*(unsigned char volatile xdata *)0xff34)
(*(unsigned char volatile xdata *)0xff35)
(*(unsigned int volatile xdata *)0xff40)
(*(unsigned int volatile xdata *)0xff42)
(*(unsigned char volatile xdata *)0xff44)
(*(unsigned char volatile xdata *)0xff45)
(*(unsigned int volatile xdata *)0xff50)
(*(unsigned int volatile xdata *)0xff52)
(*(unsigned char volatile xdata *)0xff54)
(*(unsigned char volatile xdata *)0xff55)
(*(unsigned int volatile xdata *)0xff60)
(*(unsigned int volatile xdata *)0xff62)
(*(unsigned char volatile xdata *)0xff64)
(*(unsigned char volatile xdata *)0xff65)
(*(unsigned int volatile xdata *)0xff70)
(*(unsigned int volatile xdata *)0xff72)
(*(unsigned char volatile xdata *)0xff74)
(*(unsigned char volatile xdata *)0xff75)
// PWM 时钟为系统时钟
//设置 PWM 周期为 0800H 个 PWM 时钟
//PWM0 在计数值为 100H 地方输出低电平
//PWM0 在计数值为 700H 地方输出高电平
//PWM1 在计数值为 0080H 地方输出高电平
//PWM1 在计数值为 0780H 地方输出低电平
//使能 PWM0 输出
//使能 PWM1 输出
//启动 PWM 模块
while (1);
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 392 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
}
18.2.3
PWM实现渐变灯(呼吸灯)
汇编代码
;测试工作频率为 11.0592MHz
CYCLE
EQU
1000H
P_SW2
DATA
0BAH
PWMCFG
PWMIF
PWMFDCR
PWMCR
PWMCH
PWMCL
PWMCKS
TADCPH
TADCPL
PWM0T1H
PWM0T1L
PWM0T2H
PWM0T2L
PWM0CR
PWM0HLD
PWM1T1H
PWM1T1L
PWM1T2H
PWM1T2L
PWM1CR
PWM1HLD
PWM2T1H
PWM2T1L
PWM2T2H
PWM2T2L
PWM2CR
PWM2HLD
PWM3T1H
PWM3T1L
PWM3T2H
PWM3T2L
PWM3CR
PWM3HLD
PWM4T1H
PWM4T1L
PWM4T2H
PWM4T2L
PWM4CR
PWM4HLD
PWM5T1H
PWM5T1L
PWM5T2H
PWM5T2L
PWM5CR
PWM5HLD
PWM6T1H
PWM6T1L
DATA
DATA
DATA
DATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
0F1H
0F6H
0F7H
0FEH
0FFF0H
0FFF1H
0FFF2H
0FFF3H
0FFF4H
0FF00H
0FF01H
0FF02H
0FF03H
0FF04H
0FF05H
0FF10H
0FF11H
0FF12H
0FF13H
0FF14H
0FF15H
0FF20H
0FF21H
0FF22H
0FF23H
0FF24H
0FF25H
0FF30H
0FF31H
0FF32H
0FF33H
0FF34H
0FF35H
0FF40H
0FF41H
0FF42H
0FF43H
0FF44H
0FF45H
0FF50H
0FF51H
0FF52H
0FF53H
0FF54H
0FF55H
0FF60H
0FF61H
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 393 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
PWM6T2H
PWM6T2L
PWM6CR
PWM6HLD
PWM7T1H
PWM7T1L
PWM7T2H
PWM7T2L
PWM7CR
PWM7HLD
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
0FF62H
0FF63H
0FF64H
0FF65H
0FF70H
0FF71H
0FF72H
0FF73H
0FF74H
0FF75H
DIR
VALL
VALH
BIT
DATA
DATA
20H.0
21H
22H
ORG
LJMP
ORG
LJMP
0000H
MAIN
00B3H
PWMISR
ORG
0100H
PUSH
PUSH
PUSH
PUSH
PUSH
ACC
PSW
DPL
DPH
P_SW2
MOV
MOV
JNB
ANL
JNB
P_SW2,#80H
A,PWMCFG
ACC.7,ISREXIT
PWMCFG,#NOT 80H
DIR,PWMDN
MOV
ADD
MOV
MOV
ADDC
MOV
CJNE
MOV
CJNE
CLR
JMP
A,VALL
A,#1
VALL,A
A,VALH
A,#0
VALH,A
A,#HIGH CYCLE,SETPWM
A,VALL
A,#LOW CYCLE,SETPWM
DIR
SETPWM
MOV
ADD
MOV
MOV
ADDC
MOV
JNZ
MOV
CJNE
SETB
A,VALL
A,#0FFH
VALL,A
A,VALH
A,#0FFH
VALH,A
SETPWM
A,VALL
A,#1,SETPWM
DIR
MOV
MOV
A,VALH
DPTR,#PWM0T2H
技术支持: 13922829991
研发顾问: 13922805190
PWMISR:
;清中断标志
PWMUP:
PWMDN:
SETPWM:
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 394 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
MOVX
MOV
MOV
MOVX
@DPTR,A
A,VALL
DPTR,#PWM0T2L
@DPTR,A
POP
POP
POP
POP
POP
RETI
P_SW2
DPH
DPL
PSW
ACC
MOV
SP,#3FH
SETB
MOV
MOV
DIR
VALH,#00H
VALL,#01H
MOV
CLR
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
P_SW2,#80H
A
DPTR,#PWMCKS
@DPTR,A
A,#HIGH CYCLE
DPTR,#PWMCH
@DPTR,A
A,#LOW CYCLE
DPTR,#PWMCL
@DPTR,A
A,#00H
DPTR,#PWM0T1H
@DPTR,A
A,#00H
DPTR,#PWM0T1L
@DPTR,A
A,VALH
DPTR,#PWM0T2H
@DPTR,A
A,VALL
DPTR,#PWM0T2L
@DPTR,A
A,#80H
DPTR,#PWM0CR
@DPTR,A
P_SW2,#00H
MOV
SETB
JMP
PWMCR,#0C0H
EA
$
技术支持: 13922829991
研发顾问: 13922805190
ISREXIT:
MAIN:
;PWM 时钟为系统时钟
;设置 PWM 周期
;使能 PWM0 输出
;启动 PWM 模块并使能 PWM 中断
END
C 语言代码
#include "reg51.h"
#include "intrins.h"
//测试工作频率为 11.0592MHz
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 395 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
#define
CYCLE
sfr
sfr
sfr
sfr
sfr
P_SW2
PWMCFG
PWMIF
PWMFDCR
PWMCR
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
PWMC
PWMCKS
TADCP
PWM0T1
PWM0T2
PWM0CR
PWM0HLD
PWM1T1
PWM1T2
PWM1CR
PWM1HLD
PWM2T1
PWM2T2
PWM2CR
PWM2HLD
PWM3T1
PWM3T2
PWM3CR
PWM3HLD
PWM4T1
PWM4T2
PWM4CR
PWM4HLD
PWM5T1
PWM5T2
PWM5CR
PWM5HLD
PWM6T1
PWM6T2
PWM6CR
PWM6HLD
PWM7T1
PWM7T2
PWM7CR
PWM7HLD
技术支持: 13922829991
研发顾问: 13922805190
0x1000
=
=
=
=
=
0xba;
0xf1;
0xf6;
0xf7;
0xfe;
(*(unsigned int volatile xdata *)0xfff0)
(*(unsigned char volatile xdata *)0xfff2)
(*(unsigned int volatile xdata *)0xfff3)
(*(unsigned int volatile xdata *)0xff00)
(*(unsigned int volatile xdata *)0xff02)
(*(unsigned char volatile xdata *)0xff04)
(*(unsigned char volatile xdata *)0xff05)
(*(unsigned int volatile xdata *)0xff10)
(*(unsigned int volatile xdata *)0xff12)
(*(unsigned char volatile xdata *)0xff14)
(*(unsigned char volatile xdata *)0xff15)
(*(unsigned int volatile xdata *)0xff20)
(*(unsigned int volatile xdata *)0xff22)
(*(unsigned char volatile xdata *)0xff24)
(*(unsigned char volatile xdata *)0xff25)
(*(unsigned int volatile xdata *)0xff30)
(*(unsigned int volatile xdata *)0xff32)
(*(unsigned char volatile xdata *)0xff34)
(*(unsigned char volatile xdata *)0xff35)
(*(unsigned int volatile xdata *)0xff40)
(*(unsigned int volatile xdata *)0xff42)
(*(unsigned char volatile xdata *)0xff44)
(*(unsigned char volatile xdata *)0xff45)
(*(unsigned int volatile xdata *)0xff50)
(*(unsigned int volatile xdata *)0xff52)
(*(unsigned char volatile xdata *)0xff54)
(*(unsigned char volatile xdata *)0xff55)
(*(unsigned int volatile xdata *)0xff60)
(*(unsigned int volatile xdata *)0xff62)
(*(unsigned char volatile xdata *)0xff64)
(*(unsigned char volatile xdata *)0xff65)
(*(unsigned int volatile xdata *)0xff70)
(*(unsigned int volatile xdata *)0xff72)
(*(unsigned char volatile xdata *)0xff74)
(*(unsigned char volatile xdata *)0xff75)
void PWM_Isr() interrupt 22
{
static bit dir = 1;
static int val = 0;
if (PWMCFG & 0x80)
{
PWMCFG &= ~0x80;
//清中断标志
if (dir)
{
val++;
if (val >= CYCLE) dir = 0;
}
else
{
江苏国芯科技有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 396 -
STC8 系列技术手册
官方网站: www.STCMCUDATA.com / www.STCMCU.com
技术支持: 13922829991
研发顾问: 13922805190
val--;
if (val