STC micro
TM
宏 晶 科 技
深圳国芯人工智能有限公司
STC8A8K64D4 系列单片机
技术参考手册
技术支持网站:www.STCMCUDATA.com
资料更新日期:2021/10/08
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
目录
1
2
2.1
2.1.1
2.1.2
2.1.3
3
3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.1.6
3.2
3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.2.6
3.2.7
3.2.8
3.2.9
3.2.10
4
4.1
4.2
4.3
4.4
4.5
5
5.1
5.1.1
5.1.2
5.1.3
5.1.4
5.1.5
5.1.6
5.1.7
概述 .......................................................................................................................................... 1
特性、价格及管脚 .................................................................................................................. 2
STC8A8K64D4-64Pin/48Pin 系列 .......................................................................................... 2
特性及价格(有 16 位硬件乘除法器 MDU16,准 16 位单片机) .................................... 2
管脚图,最小系统 .................................................................................................................. 5
管脚说明 ................................................................................................................................ 12
功能脚切换 ............................................................................................................................ 19
功能脚切换相关寄存器 ........................................................................................................ 19
总线速度控制寄存器(BUS_SPEED) .............................................................................. 20
外设端口切换控制寄存器 1(P_SW1),串口 1、CCP、SPI 切换 .................................. 20
外设端口切换控制寄存器 2(P_SW2),串口 2/3/4、I2C、比较器输出切换 ................ 20
时钟选择寄存器(MCLKOCR) ........................................................................................ 21
增强型 PWM 控制寄存器(PWMnCR) ............................................................................ 21
LCM 接口配置寄存器(LCMIFCFG)............................................................................... 24
范例程序 ................................................................................................................................ 25
串口 1 切换 ............................................................................................................................ 25
串口 2 切换 ............................................................................................................................ 26
串口 3 切换 ............................................................................................................................ 28
串口 4 切换 ............................................................................................................................ 29
SPI 切换 ................................................................................................................................. 31
PWM 切换 ............................................................................................................................. 32
PCA/CCP/PWM 切换 ............................................................................................................ 35
I2C 切换 ................................................................................................................................. 37
比较器输出切换 .................................................................................................................... 38
主时钟输出切换 .................................................................................................................... 40
封装尺寸图 ............................................................................................................................ 43
LQFP48 封装尺寸图(9mm*9mm) ................................................................................... 43
QFN48 封装尺寸图(6mm*6mm) ..................................................................................... 44
LQFP64S 封装尺寸图(12mm*12mm) ............................................................................. 45
QFN64 封装尺寸图(8mm*8mm) ..................................................................................... 46
STC8A8K64D4 系列单片机命名规则 ................................................................................. 47
ISP 下载及典型应用线路图 ................................................................................................. 48
STC8A8K64D4 系列 ISP 下载应用线路图 ......................................................................... 48
使用 RS-232 转换器下载,也可支持仿真(使用高精度 ADC) ..................................... 48
使用 RS-232 转换器下载,也可支持仿真(使用一般精度 ADC) ................................. 49
使用 PL2303-GL 下载,也可支持仿真 ............................................................................... 50
使用通用 USB 转串口工具下载,支持 ISP 在线下载,也可支持仿真 ........................... 51
使用 U8-Mini 工具下载,支持 ISP 在线和脱机下载,也可支持仿真 ............................. 52
使用 U8W 工具下载,支持 ISP 在线和脱机下载,也可支持仿真 .................................. 53
模拟 USB 直接 ISP 下载,仅支持 ISP 下载,不支持仿真 ............................................... 55
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-i-
STC8A8K64D4 系列技术手册
5.1.8
6
6.1
6.1.1
6.1.2
6.1.3
6.1.4
6.1.5
6.1.6
6.2
6.2.1
6.2.2
6.2.3
6.2.4
6.2.5
6.3
6.3.1
6.3.2
6.3.3
6.3.4
6.3.5
6.3.6
6.4
6.4.1
6.4.2
6.5
6.5.1
6.6
6.6.1
6.7
6.7.1
6.7.2
6.7.3
6.7.4
6.7.5
6.7.6
6.7.7
6.7.8
6.7.9
6.7.10
6.7.11
6.7.12
6.7.13
6.7.14
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
单片机电源控制参考电路 .................................................................................................... 56
时钟、复位、省电模式与系统电源管理 ............................................................................ 57
系统时钟控制 ........................................................................................................................ 57
系统时钟选择寄存器(CLKSEL) ..................................................................................... 57
时钟分频寄存器(CLKDIV) ............................................................................................. 58
内部高速高精度 IRC 控制寄存器(HIRCCR) ................................................................. 58
外部振荡器控制寄存器(XOSCCR) ................................................................................ 58
内部 32KHz 低速 IRC 控制寄存器(IRC32KCR) ........................................................... 59
主时钟输出控制寄存器(MCLKOCR) ............................................................................ 59
STC8A8K64D4 系列内部 IRC 频率调整............................................................................. 60
IRC 频段选择寄存器(IRCBAND)................................................................................... 60
内部 IRC 频率调整寄存器(IRTRIM) .............................................................................. 60
内部 IRC 频率微调寄存器(LIRTRIM) ........................................................................... 61
时钟分频寄存器(CLKDIV) ............................................................................................. 61
分频出 3MHz 用户工作频率,并用户动态改变频率追频示例 ........................................ 62
系统复位 ................................................................................................................................ 65
看门狗复位(WDT_CONTR) ........................................................................................... 66
软件复位(IAP_CONTR) .................................................................................................. 68
低压复位(RSTCFG) ......................................................................................................... 69
低电平上电复位参考电路(一般不需要) ........................................................................ 70
低电平按键手动复位参考电路 ............................................................................................ 70
传统 8051 高电平上电复位参考电路 .................................................................................. 71
外部晶振及外部时钟电路 .................................................................................................... 72
外部晶振输入电路 ................................................................................................................ 72
外部时钟输入电路(P1.6 不可用作普通 I/O) .................................................................. 72
时钟停振/省电模式与系统电源管理 ................................................................................... 72
电源控制寄存器(PCON) ................................................................................................. 72
掉电唤醒定时器 .................................................................................................................... 74
掉电唤醒定时器计数寄存器(WKTCL,WKTCH) ....................................................... 74
范例程序 ................................................................................................................................ 75
选择系统时钟源 .................................................................................................................... 75
主时钟分频输出 .................................................................................................................... 77
看门狗定时器应用 ................................................................................................................ 79
软复位实现自定义下载 ........................................................................................................ 81
低压检测 ................................................................................................................................ 83
省电模式 ................................................................................................................................ 85
使用 INT0/INT1/INT2/INT3/INT4 管脚中断唤醒省电模式............................................... 87
使用 T0/T1/T2/T3/T4 管脚中断唤醒 MCU 省电模式......................................................... 90
使用 RxD/RxD2/RxD3/RxD4 管脚中断唤醒 MCU 省电模式 ............................................ 95
使用 I2C 的 SDA 脚唤醒 MCU 省电模式 ........................................................................... 98
使用掉电唤醒定时器唤醒省电模式 ...................................................................................101
LVD 中断唤醒省电模式,建议配合使用掉电唤醒定时器...............................................103
比较器中断唤醒省电模式,建议配合使用掉电唤醒定时器 ...........................................105
使用 LVD 功能检测工作电压(电池电压) .....................................................................108
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- ii -
STC8A8K64D4 系列技术手册
7
7.1
7.2
7.2.1
7.2.2
7.2.3
7.2.4
7.2.5
7.2.6
7.2.7
7.3
7.4
7.4.1
7.4.2
7.4.3
7.4.4
7.4.5
7.4.6
7.4.7
7.4.8
7.4.9
7.4.10
7.4.11
7.4.12
8
8.1
8.2
9
9.1
9.1.1
9.1.2
9.1.3
9.1.4
9.1.5
9.1.6
9.1.7
9.2
9.3
9.3.1
9.3.2
9.3.3
9.3.4
9.3.5
9.3.6
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
存储器 ................................................................................................................................... 113
程序存储器 ........................................................................................................................... 113
数据存储器 ........................................................................................................................... 114
内部 RAM ............................................................................................................................. 114
程序状态寄存器(PSW) ................................................................................................... 114
内部扩展 RAM,XRAM,XDATA .................................................................................... 115
辅助寄存器(AUXR) ........................................................................................................ 116
外部扩展 RAM,XRAM,XDATA .................................................................................... 117
总线速度控制寄存器(BUS_SPEED) ............................................................................. 117
8051 中可位寻址的数据存储器 .......................................................................................... 119
存储器中的特殊参数,在 ISP 下载时可烧录进程序 FLASH ..........................................121
硬件数字 ID 中存储器特殊参数(CHIPID) ....................................................................123
读取内部 1.19V 参考信号源值 (从 CHIPID 中读取) .......................................................124
读取内部 1.19V 参考信号源值 (从 Flash 程序存储器(ROM)中读取) ......................127
读取内部 1.19V 参考信号源值 (从 RAM 中读取)............................................................130
读取全球唯一 ID 号 (从 CHIPID 中读取) .........................................................................133
读取全球唯一 ID 号 (从 Flash 程序存储器(ROM)中读取) ........................................137
读取全球唯一 ID 号 (从 RAM 中读取) .............................................................................140
读取 32K 掉电唤醒定时器的频率 (从 CHIPID 中读取) ..................................................143
读取 32K 掉电唤醒定时器的频率 (从 Flash 程序存储器(ROM)中读取) .................147
读取 32K 掉电唤醒定时器的频率 (从 RAM 中读取) .......................................................150
用户自定义内部 IRC 频率 (从 CHIPID 中读取)...............................................................153
用户自定义内部 IRC 频率 (从 Flash 程序存储器(ROM)中读取) .............................159
用户自定义内部 IRC 频率 (从 RAM 中读取) ...................................................................165
特殊功能寄存器 ...................................................................................................................168
STC8A8K64D4-64Pin/48Pin 系列 .......................................................................................168
特殊功能寄存器列表 ...........................................................................................................170
I/O 口 ....................................................................................................................................180
I/O 口相关寄存器 .................................................................................................................180
端口数据寄存器(Px) .......................................................................................................181
端口模式配置寄存器(PxM0,PxM1) ............................................................................182
端口上拉电阻控制寄存器(PxPU) ..................................................................................182
端口施密特触发控制寄存器(PxNCS) ...........................................................................183
端口电平转换速度控制寄存器(PxSR) ..........................................................................183
端口驱动电流控制寄存器(PxDR) .................................................................................183
端口数字信号输入使能控制寄存器(PxIE) ...................................................................184
配置 I/O 口............................................................................................................................185
I/O 的结构图.........................................................................................................................187
准双向口(弱上拉) ...........................................................................................................187
推挽输出 ...............................................................................................................................187
高阻输入 ...............................................................................................................................188
开漏输出 ...............................................................................................................................188
新增 4.1K 上拉电阻 .............................................................................................................189
如何设置 I/O 口对外输出速度 ............................................................................................189
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- iii -
STC8A8K64D4 系列技术手册
9.3.7
9.3.8
9.4
9.4.1
9.4.2
9.5
9.6
9.7
9.8
9.9
9.10
9.11
10
11
11.1
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
12
12.1
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
如何设置 I/O 口电流驱动能力 ............................................................................................190
如何降低 I/O 口对外辐射 ....................................................................................................190
范例程序 ...............................................................................................................................191
端口模式设置 .......................................................................................................................191
双向口读写操作 ...................................................................................................................192
一种典型三极管控制电路 ...................................................................................................195
典型发光二极管控制电路 ...................................................................................................195
混合电压供电系统 3V/5V 器件 I/O 口互连 .......................................................................196
如何让 I/O 口上电复位时为低电平 ....................................................................................197
利用 74HC595 驱动 8 个数码管(串行扩展,3 根线)的线路图 ...........................................198
I/O 口直接驱动 LED 数码管应用线路图 ...........................................................................199
用 STC 系列 MCU 的 I/O 口直接驱动段码 LCD ..............................................................200
指令系统 ...............................................................................................................................219
中断系统 ...............................................................................................................................223
STC8A8K64D4 系列中断源 ................................................................................................223
STC8A8K64D4 中断结构图 ................................................................................................226
STC8A8K64D4 系列中断列表 ............................................................................................227
中断相关寄存器 ...................................................................................................................230
中断使能寄存器(中断允许位) .......................................................................................232
中断请求寄存器(中断标志位) .......................................................................................237
中断优先级寄存器 ...............................................................................................................241
范例程序 ...............................................................................................................................247
INT0 中断(上升沿和下降沿),可同时支持上升沿和下降沿 ........................................247
INT0 中断(下降沿) .........................................................................................................249
INT1 中断(上升沿和下降沿),可同时支持上升沿和下降沿 ........................................250
INT1 中断(下降沿) .........................................................................................................252
INT2 中断(下降沿),只支持下降沿中断........................................................................254
INT3 中断(下降沿),只支持下降沿中断........................................................................256
INT4 中断(下降沿),只支持下降沿中断........................................................................258
定时器 0 中断 .......................................................................................................................260
定时器 1 中断 .......................................................................................................................261
定时器 2 中断 .......................................................................................................................263
定时器 3 中断 .......................................................................................................................265
定时器 4 中断 .......................................................................................................................268
UART1 中断 .........................................................................................................................270
UART2 中断 .........................................................................................................................272
UART3 中断 .........................................................................................................................275
UART4 中断 .........................................................................................................................277
LVD 中断 ..............................................................................................................................280
SPI 中断 ................................................................................................................................282
比较器中断 ...........................................................................................................................284
I2C 中断 ................................................................................................................................286
I/O 口中断 ............................................................................................................................290
I/O 口中断相关寄存器 .........................................................................................................290
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- iv -
STC8A8K64D4 系列技术手册
12.1.1
12.1.2
12.1.3
12.1.4
12.1.5
12.2
12.2.1
12.2.2
12.2.3
12.2.4
13
13.1
13.2
13.2.1
13.2.2
13.2.3
13.2.4
13.2.5
13.2.6
13.2.7
13.2.8
13.2.9
13.2.10
13.2.11
13.2.12
13.2.13
13.2.14
13.2.15
13.3
13.3.1
13.3.2
13.3.3
13.3.4
13.3.5
13.3.6
13.4
13.4.1
13.4.2
13.4.3
13.4.4
13.4.5
13.4.6
13.4.7
13.4.8
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
端口中断使能寄存器(PxINTE) ......................................................................................291
端口中断标志寄存器(PxINTF) ......................................................................................291
端口中断模式配置寄存器(PxIM0,PxIM1) .................................................................292
端口中断优先级控制寄存器(PINIPL,PINIPH) ..........................................................292
端口中断掉电唤醒使能寄存器(PxWKUE) ...................................................................292
范例程序 ...............................................................................................................................294
P0 口下降沿中断 ..................................................................................................................294
P1 口上升沿中断 ..................................................................................................................298
P2 口低电平中断 ..................................................................................................................301
P3 口高电平中断 ..................................................................................................................305
定时器/计数器 ......................................................................................................................310
定时器的相关寄存器 ...........................................................................................................310
定时器 0/1 .............................................................................................................................312
定时器 0/1 控制寄存器(TCON) .....................................................................................312
定时器 0/1 模式寄存器(TMOD) ....................................................................................312
定时器 0 模式 0(16 位自动重装载模式) .......................................................................313
定时器 0 模式 1(16 位不可重装载模式) .......................................................................314
定时器 0 模式 2(8 位自动重装载模式) .........................................................................315
定时器 0 模式 3(不可屏蔽中断 16 位自动重装载,实时操作系统节拍器)...............315
定时器 1 模式 0(16 位自动重装载模式) .......................................................................316
定时器 1 模式 1(16 位不可重装载模式) .......................................................................317
定时器 1 模式 2(8 位自动重装载模式) .........................................................................318
定时器 0 计数寄存器(TL0,TH0) .................................................................................318
定时器 1 计数寄存器(TL1,TH1) .................................................................................318
辅助寄存器 1(AUXR) .....................................................................................................318
中断与时钟输出控制寄存器(INTCLKO) ......................................................................319
定时器 0 定时计算公式 .......................................................................................................319
定时器 1 定时计算公式 .......................................................................................................320
定时器 2(24 位定时器,8 位预分频+16 位定时) .........................................................321
辅助寄存器 1(AUXR) .....................................................................................................321
中断与时钟输出控制寄存器(INTCLKO) ......................................................................321
定时器 2 计数寄存器(T2L,T2H) .................................................................................321
定时器 2 的 8 位预分频寄存器(TM2PS) .......................................................................321
定时器 2 工作模式 ...............................................................................................................322
定时器 2 计算公式 ...............................................................................................................322
定时器 3/4(24 位定时器,8 位预分频+16 位定时) ......................................................323
定时器 4/3 控制寄存器(T4T3M)....................................................................................323
定时器 3 计数寄存器(T3L,T3H) .................................................................................323
定时器 4 计数寄存器(T4L,T4H) .................................................................................323
定时器 3 的 8 位预分频寄存器(TM3PS) .......................................................................324
定时器 4 的 8 位预分频寄存器(TM4PS) .......................................................................324
定时器 3 工作模式 ...............................................................................................................324
定时器 4 工作模式 ...............................................................................................................326
定时器 3 计算公式 ...............................................................................................................326
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-v-
STC8A8K64D4 系列技术手册
13.4.9
13.5
13.5.1
13.5.2
13.5.3
13.5.4
13.5.5
13.5.6
13.5.7
13.5.8
13.5.9
13.5.10
13.5.11
13.5.12
13.5.13
13.5.14
13.5.15
13.5.16
13.5.17
13.5.18
13.5.19
13.5.20
13.5.21
13.5.22
13.5.23
13.5.24
13.5.25
13.5.26
13.5.27
13.5.28
13.5.29
13.5.30
14
14.1
14.2
14.3
14.3.1
14.3.2
14.3.3
14.3.4
14.3.5
14.3.6
14.3.7
14.3.8
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
定时器 4 计算公式 ...............................................................................................................327
范例程序 ...............................................................................................................................328
定时器 0(模式 0-16 位自动重载),用作定时 ..............................................................328
定时器 0(模式 1-16 位不自动重载)
,用作定时 ..........................................................329
定时器 0(模式 2-8 位自动重载),用作定时 ................................................................331
定时器 0(模式 3-16 位自动重载不可屏蔽中断)
,用作定时 ......................................333
定时器 0(外部计数-扩展 T0 为外部下降沿中断) ......................................................335
定时器 0(测量脉宽-INT0 高电平宽度).......................................................................337
定时器 0(模式 0),时钟分频输出 ...................................................................................339
定时器 1(模式 0-16 位自动重载),用作定时 ..............................................................341
定时器 1(模式 1-16 位不自动重载)
,用作定时 ..........................................................343
定时器 1(模式 2-8 位自动重载),用作定时 ................................................................344
定时器 1(外部计数-扩展 T1 为外部下降沿中断) ......................................................346
定时器 1(测量脉宽-INT1 高电平宽度).......................................................................348
定时器 1(模式 0),时钟分频输出 ...................................................................................350
定时器 1(模式 0)做串口 1 波特率发生器 .....................................................................352
定时器 1(模式 2)做串口 1 波特率发生器 .....................................................................356
定时器 2(16 位自动重载),用作定时 .............................................................................360
定时器 2(外部计数-扩展 T2 为外部下降沿中断) ......................................................362
定时器 2,时钟分频输出 ....................................................................................................364
定时器 2 做串口 1 波特率发生器 .......................................................................................366
定时器 2 做串口 2 波特率发生器 .......................................................................................369
定时器 2 做串口 3 波特率发生器 .......................................................................................373
定时器 2 做串口 4 波特率发生器 .......................................................................................377
定时器 3(16 位自动重载),用作定时 .............................................................................381
定时器 3(外部计数-扩展 T3 为外部下降沿中断) ......................................................384
定时器 3,时钟分频输出 ....................................................................................................386
定时器 3 做串口 3 波特率发生器 .......................................................................................388
定时器 4(16 位自动重载),用作定时 .............................................................................392
定时器 4(外部计数-扩展 T4 为外部下降沿中断) ......................................................395
定时器 4,时钟分频输出 ....................................................................................................397
定时器 4 做串口 4 波特率发生器 .......................................................................................399
串口通信 ...............................................................................................................................404
串口功能脚切换 ...................................................................................................................404
串口相关寄存器 ...................................................................................................................404
串口 1 ....................................................................................................................................406
串口 1 控制寄存器(SCON) ............................................................................................406
串口 1 数据寄存器(SBUF) .............................................................................................406
电源管理寄存器(PCON) ................................................................................................407
辅助寄存器 1(AUXR) .....................................................................................................407
串口 1 模式 0,模式 0 波特率计算公式 ............................................................................407
串口 1 模式 1,模式 1 波特率计算公式 ............................................................................408
串口 1 模式 2,模式 2 波特率计算公式 ............................................................................ 411
串口 1 模式 3,模式 3 波特率计算公式 ............................................................................ 411
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- vi -
STC8A8K64D4 系列技术手册
14.3.9
14.3.10
14.4
14.4.1
14.4.2
14.4.3
14.4.4
14.5
14.5.1
14.5.2
14.5.3
14.5.4
14.6
14.6.1
14.6.2
14.6.3
14.6.4
14.7
14.8
14.8.1
14.8.2
14.8.3
14.8.4
14.8.5
14.8.6
14.8.7
14.8.8
14.8.9
14.8.10
15
15.1
15.2
15.3
15.3.1
15.3.2
15.3.3
15.4
15.4.1
15.4.2
15.4.3
15.4.4
16
16.1
16.2
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
自动地址识别 .......................................................................................................................412
串口 1 从机地址控制寄存器(SADDR,SADEN) ........................................................412
串口 2 ....................................................................................................................................414
串口 2 控制寄存器(S2CON) ..........................................................................................414
串口 2 数据寄存器(S2BUF) ...........................................................................................414
串口 2 模式 0,模式 0 波特率计算公式 ............................................................................414
串口 2 模式 1,模式 1 波特率计算公式 ............................................................................415
串口 3 ....................................................................................................................................417
串口 3 控制寄存器(S3CON) ..........................................................................................417
串口 3 数据寄存器(S3BUF) ...........................................................................................417
串口 3 模式 0,模式 0 波特率计算公式 ............................................................................417
串口 3 模式 1,模式 1 波特率计算公式 ............................................................................418
串口 4 ....................................................................................................................................420
串口 4 控制寄存器(S4CON) ..........................................................................................420
串口 4 数据寄存器(S4BUF) ...........................................................................................420
串口 4 模式 0,模式 0 波特率计算公式 ............................................................................420
串口 4 模式 1,模式 1 波特率计算公式 ............................................................................421
串口注意事项 .......................................................................................................................423
范例程序 ...............................................................................................................................424
串口 1 使用定时器 2 做波特率发生器 ...............................................................................424
串口 1 使用定时器 1(模式 0)做波特率发生器 .............................................................427
串口 1 使用定时器 1(模式 2)做波特率发生器 .............................................................431
串口 2 使用定时器 2 做波特率发生器 ...............................................................................435
串口 3 使用定时器 2 做波特率发生器 ...............................................................................439
串口 3 使用定时器 3 做波特率发生器 ...............................................................................443
串口 4 使用定时器 2 做波特率发生器 ...............................................................................447
串口 4 使用定时器 4 做波特率发生器 ...............................................................................451
串口多机通讯 .......................................................................................................................456
串口转 LIN 总线 ..................................................................................................................457
比较器,掉电检测,内部 1.19V 参考信号源 ...................................................................466
比较器输出功能脚切换 .......................................................................................................466
比较器内部结构图 ...............................................................................................................466
比较器相关的寄存器 ...........................................................................................................467
比较器控制寄存器 1(CMPCR1) ....................................................................................467
比较器控制寄存器 2(CMPCR2) ....................................................................................468
比较器扩展配置寄存器(CMPEXCFG) ..........................................................................468
范例程序 ...............................................................................................................................470
比较器的使用(中断方式) ...............................................................................................470
比较器的使用(查询方式) ...............................................................................................473
比较器作外部掉电检测(掉电过程中应及时保存用户数据到 EEPROM 中) .............476
比较器检测工作电压(电池电压) ...................................................................................477
IAP/EEPROM/DATA-FLASH ...........................................................................................482
EEPROM 操作时间 ..............................................................................................................482
EEPROM 相关的寄存器 ......................................................................................................482
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- vii -
STC8A8K64D4 系列技术手册
16.2.1
16.2.2
16.2.3
16.2.4
16.2.5
16.2.6
16.3
16.4
16.4.1
16.4.2
16.4.3
17
17.1
17.1.1
17.1.2
17.1.3
17.1.4
17.1.5
17.2
17.2.1
17.2.2
17.2.3
17.2.4
17.3
17.4
17.4.1
17.4.2
17.5
17.5.1
17.5.2
17.5.3
17.5.4
17.5.5
17.5.6
17.5.7
17.5.8
17.5.9
18
18.1
18.2
18.2.1
18.2.2
18.2.3
18.2.4
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
EEPROM 数据寄存器(IAP_DATA) ...............................................................................482
EEPROM 地址寄存器(IAP_ADDR) ..............................................................................483
EEPROM 命令寄存器(IAP_CMD) ................................................................................483
EEPROM 触发寄存器(IAP_TRIG) ................................................................................483
EEPROM 控制寄存器(IAP_CONTR) ............................................................................483
EEPROM 等待时间控制寄存器(IAP_TPS) ...................................................................484
EEPROM 大小及地址 ..........................................................................................................485
范例程序 ...............................................................................................................................487
EEPROM 基本操作 ..............................................................................................................487
使用 MOVC 读取 EEPROM ................................................................................................490
使用串口送出 EEPROM 数据 .............................................................................................494
ADC 模数转换,内部 1.19V 参考信号源 .........................................................................499
ADC 相关的寄存器..............................................................................................................499
ADC 控制寄存器(ADC_CONTR),PWM 触发 ADC 控制 ...........................................499
ADC 配置寄存器(ADCCFG) .........................................................................................500
ADC 转换结果寄存器(ADC_RES,ADC_RESL) ........................................................501
ADC 时序控制寄存器(ADCTIM) ..................................................................................502
ADC 扩展配置寄存器(ADCEXCFG) ............................................................................503
ADC 相关计算公式..............................................................................................................504
ADC 速度计算公式..............................................................................................................504
ADC 转换结果计算公式......................................................................................................504
反推 ADC 输入电压计算公式 .............................................................................................504
反推工作电压计算公式 .......................................................................................................505
12 位 ADC 静态特性............................................................................................................505
ADC 应用参考线路图..........................................................................................................506
高精度 ADC 应用.................................................................................................................506
ADC 一般应用(对 ADC 精度要求不高的应用) ...........................................................507
范例程序 ...............................................................................................................................508
ADC 基本操作(查询方式) ..............................................................................................508
ADC 基本操作(中断方式) ..............................................................................................510
格式化 ADC 转换结果.........................................................................................................512
ADC 自动转换多次取平均值 ..............................................................................................515
利用 ADC 第 15 通道测量外部电压或电池电压 ...............................................................517
ADC 做电容感应触摸按键 ..................................................................................................521
ADC 作按键扫描应用线路图 ..............................................................................................533
检测负电压参考线路图 .......................................................................................................535
常用加法电路在 ADC 中的应用 .........................................................................................536
PCA/CCP/PWM 应用 .........................................................................................................537
PCA 功能脚切换 ..................................................................................................................537
PCA 相关的寄存器 ..............................................................................................................537
PCA 控制寄存器(CCON) ...............................................................................................538
PCA 模式寄存器(CMOD) ..............................................................................................538
PCA 计数器寄存器(CL,CH) ........................................................................................539
PCA 模块模式控制寄存器(CCAPMn) ..........................................................................539
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- viii -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
PCA 模块模式捕获值/比较值寄存器(CCAPnL,CCAPnH) .......................................539
PCA 模块 PWM 模式控制寄存器(PCA_PWMn)..........................................................540
PCA 工作模式 ......................................................................................................................541
捕获模式 ...............................................................................................................................541
软件定时器模式 ...................................................................................................................541
高速脉冲输出模式 ...............................................................................................................542
PWM 脉宽调制模式及频率计算公式.................................................................................542
利用 CCP/PCA/PWM 模块实现 8~16 位 DAC 的参考线路图 ..........................................546
范例程序 ...............................................................................................................................547
PCA 输出 PWM(6/7/8/10 位) .........................................................................................547
PCA 捕获测量脉冲宽度 ......................................................................................................550
PCA 实现 16 位软件定时 ....................................................................................................554
PCA 输出高速脉冲 ..............................................................................................................557
PCA 扩展外部中断 ..............................................................................................................560
19
精度可达 15 位的增强型 PWM ..........................................................................................563
19.1
增强型 PWM 输出功能脚切换............................................................................................563
19.2
PWM 相关的寄存器 ............................................................................................................565
19.2.1 增强型 PWM 全局配置寄存器(PWMSET) ...................................................................566
19.2.2 增强型 PWM 配置寄存器(PWMCFG) ..........................................................................566
19.2.3 PWM 中断标志寄存器(PWMIF) ...................................................................................567
19.2.4 PWM 异常检测控制寄存器(PWMnFDCR) ...................................................................567
19.2.5 PWM 计数器寄存器(PWMCH,PWMCL) ...................................................................568
19.2.6 PWM 时钟选择寄存器(PWMCKS),输出频率计算公式 .............................................568
19.2.7 PWM 触发 ADC 计数器寄存器(PWMTADC) ..............................................................569
19.2.8 PWM 电平输出设置计数值寄存器(PWMnT1,PWMnT2) .........................................569
19.2.9 PWM 通道控制寄存器(PWMnCR) ................................................................................570
19.2.10 PWM 通道电平保持控制寄存器(PWMnHLD) .............................................................571
19.3
范例程序 ...............................................................................................................................572
19.3.1 输出任意周期和任意占空比的波形 ...................................................................................572
19.3.2 两路 PWM 实现互补对称带死区控制的波形 ....................................................................574
19.3.3 PWM 实现渐变灯(呼吸灯).............................................................................................578
19.3.4 使用 PWM 触发 ADC 转换 .................................................................................................582
20
同步串行外设接口 SPI ........................................................................................................587
20.1
SPI 功能脚切换 ....................................................................................................................587
20.2
SPI 相关的寄存器 ................................................................................................................587
20.2.1 SPI 状态寄存器(SPSTAT)...............................................................................................587
20.2.2 SPI 控制寄存器(SPCTL),SPI 速度控制........................................................................587
20.2.3 SPI 数据寄存器(SPDAT) ................................................................................................588
20.3
SPI 通信方式 ........................................................................................................................589
20.3.1 单主单从 ...............................................................................................................................589
20.3.2 互为主从 ...............................................................................................................................589
20.3.3 单主多从 ...............................................................................................................................590
20.4
配置 SPI ................................................................................................................................591
20.5
数据模式 ...............................................................................................................................593
18.2.5
18.2.6
18.3
18.3.1
18.3.2
18.3.3
18.3.4
18.4
18.5
18.5.1
18.5.2
18.5.3
18.5.4
18.5.5
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- ix -
STC8A8K64D4 系列技术手册
20.6
20.6.1
20.6.2
20.6.3
20.6.4
20.6.5
20.6.6
21
21.1
21.2
21.3
21.3.1
21.3.2
21.3.3
21.3.4
21.4
21.4.1
21.4.2
21.4.3
21.4.4
21.5
21.5.1
21.5.2
21.5.3
21.5.4
21.5.5
21.5.6
22
22.1
22.2
22.2.1
22.2.2
22.2.3
22.2.4
22.2.5
22.3
22.3.1
22.3.2
23
23.1
23.2
23.2.1
23.2.2
23.2.3
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
范例程序 ...............................................................................................................................594
SPI 单主单从系统主机程序(中断方式) ........................................................................594
SPI 单主单从系统从机程序(中断方式) ........................................................................596
SPI 单主单从系统主机程序(查询方式) ........................................................................598
SPI 单主单从系统从机程序(查询方式) ........................................................................600
SPI 互为主从系统程序(中断方式) ................................................................................603
SPI 互为主从系统程序(查询方式) ................................................................................605
I2C 总线 ................................................................................................................................609
I2C 功能脚切换 ....................................................................................................................609
I2C 相关的寄存器 .................................................................................................................609
I2C 主机模式.........................................................................................................................610
I2C 配置寄存器(I2CCFG),总线速度控制 ....................................................................610
I2C 主机控制寄存器(I2CMSCR) ................................................................................... 611
I2C 主机辅助控制寄存器(I2CMSAUX) ........................................................................612
I2C 主机状态寄存器(I2CMSST) ....................................................................................612
I2C 从机模式.........................................................................................................................614
I2C 从机控制寄存器(I2CSLCR) ....................................................................................614
I2C 从机状态寄存器(I2CSLST) .....................................................................................614
I2C 从机地址寄存器(I2CSLADR) .................................................................................616
I2C 数据寄存器(I2CTXD,I2CRXD)............................................................................617
范例程序 ...............................................................................................................................618
I2C 主机模式访问 AT24C256(中断方式) ......................................................................618
I2C 主机模式访问 AT24C256(查询方式) ......................................................................624
I2C 主机模式访问 PCF8563.................................................................................................630
I2C 从机模式(中断方式) .................................................................................................635
I2C 从机模式(查询方式) .................................................................................................640
测试 I2C 从机模式代码的主机代码 ....................................................................................644
LCM 接口.............................................................................................................................651
LCM 接口功能脚切换 .........................................................................................................651
LCM 相关的寄存器 .............................................................................................................651
LCM 接口配置寄存器(LCMIFCFG)..............................................................................652
LCM 接口配置寄存器 2(LCMIFCFG2).........................................................................652
LCM 接口控制寄存器(LCMIFCR) ................................................................................653
LCM 接口状态寄存器(LCMIFSTA) ..............................................................................653
LCM 接口数据寄存器(LCMIFDATL,LCMIFDATH) ................................................653
LCD 接口时序图 ..................................................................................................................654
I8080 模式.............................................................................................................................654
M6800 模式 ..........................................................................................................................655
DMA(批量数据传输 BMM) ..........................................................................................656
BMM 相关的寄存器 ............................................................................................................656
存储器与存储器之间的数据读写(M2M_BMM) ..........................................................658
M2M_BMM 配置寄存器(BMM_M2M_CFG) ...............................................................658
M2M_BMM 控制寄存器(BMM_M2M_CR) .................................................................659
M2M_BMM 状态寄存器(BMM_M2M_STA) ...............................................................659
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-x-
STC8A8K64D4 系列技术手册
23.2.4
23.2.5
23.2.6
23.2.7
23.3
23.3.1
23.3.2
23.3.3
23.3.4
23.3.5
23.3.6
23.3.7
23.4
23.4.1
23.4.2
23.4.3
23.4.4
23.4.5
23.4.6
23.4.7
23.4.8
23.5
23.5.1
23.5.2
23.5.3
23.5.4
23.5.5
23.5.6
23.5.7
23.5.8
23.5.9
23.5.10
23.5.11
23.5.12
23.6
23.6.1
23.6.2
23.6.3
23.6.4
23.6.5
23.6.6
23.6.7
23.6.8
23.6.9
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
M2M_BMM 传输总字节寄存器(BMM_M2M_AMT) ..................................................659
M2M_BMM 传输完成字节寄存器(BMM_M2M_DONE) ...........................................660
M2M_BMM 发送地址寄存器(BMM_M2M_TXAx) ....................................................660
M2M_BMM 接收地址寄存器(BMM_M2M_RXAx) ....................................................660
ADC 数据自动存储(ADC_BMM) .................................................................................661
ADC_BMM 配置寄存器(BMM_ADC_CFG) ................................................................661
ADC_BMM 控制寄存器(BMM_ADC_CR) ..................................................................661
ADC_BMM 状态寄存器(BMM_ADC_STA).................................................................661
ADC_BMM 接收地址寄存器(BMM_ADC_RXAx) .....................................................661
ADC_BMM 配置寄存器 2(BMM_ADC_CFG2) ...........................................................662
ADC_BMM 通道使能寄存器(BMM_ADC_CHSWx) ..................................................662
ADC_BMM 的数据存储格式 ..............................................................................................663
SPI 与存储器之间的数据交换(SPI_BMM) ...................................................................665
SPI_BMM 配置寄存器(BMM_SPI_CFG) .....................................................................665
SPI_BMM 控制寄存器(BMM_SPI_CR) ........................................................................665
SPI_BMM 状态寄存器(BMM_SPI_STA) ......................................................................666
SPI_BMM 传输总字节寄存器(BMM_SPI_AMT) ........................................................666
SPI_BMM 传输完成字节寄存器(BMM_SPI_DONE) ..................................................666
SPI_BMM 发送地址寄存器(BMM_SPI_TXAx) ...........................................................666
SPI_BMM 接收地址寄存器(BMM_SPI_RXAx) ...........................................................666
SPI_BMM 配置寄存 2 器(BMM_SPI_CFG2) ...............................................................667
串口 1 与存储器之间的数据交换(UR1T_BMM,UR1R_BMM) ................................668
UR1T_BMM 配置寄存器(BMM_UR1T_CFG) .............................................................668
UR1T_BMM 控制寄存器(BMM_UR1T_CR) ...............................................................668
UR1T_BMM 状态寄存器(BMM_UR1T_STA) .............................................................668
UR1T_BMM 传输总字节寄存器(BMM_UR1T_AMT) ................................................669
UR1T_BMM 传输完成字节寄存器(BMM_UR1T_DONE) ..........................................669
UR1T_BMM 发送地址寄存器(BMM_UR1T_TXAx)...................................................669
UR1R_BMM 配置寄存器(BMM_UR1R_CFG) ............................................................669
UR1R_BMM 控制寄存器(BMM_UR1R_CR) ...............................................................669
UR1R_BMM 状态寄存器(BMM_UR1R_STA) .............................................................670
UR1R_BMM 传输总字节寄存器(BMM_UR1R_AMT) ...............................................670
UR1R_BMM 传输完成字节寄存器(BMM_UR1R_DONE) .........................................670
UR1R_BMM 接收地址寄存器(BMM_UR1T_RXAx) ..................................................670
串口 2 与存储器之间的数据交换(UR2T_BMM,UR2R_BMM) ................................671
UR2T_BMM 配置寄存器(BMM_UR2T_CFG) .............................................................671
UR2T_BMM 控制寄存器(BMM_UR2T_CR) ...............................................................671
UR2T_BMM 状态寄存器(BMM_UR2T_STA) .............................................................671
UR2T_BMM 传输总字节寄存器(BMM_UR2T_AMT) ................................................672
UR2T_BMM 传输完成字节寄存器(BMM_UR2T_DONE) ..........................................672
UR2T_BMM 发送地址寄存器(BMM_UR2T_TXAx)...................................................672
UR2R_BMM 配置寄存器(BMM_UR2R_CFG) ............................................................672
UR2R_BMM 控制寄存器(BMM_UR2R_CR) ...............................................................672
UR2R_BMM 状态寄存器(BMM_UR2R_STA) .............................................................673
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- xi -
STC8A8K64D4 系列技术手册
23.6.10
23.6.11
23.6.12
23.7
23.7.1
23.7.2
23.7.3
23.7.4
23.7.5
23.7.6
23.7.7
23.7.8
23.7.9
23.7.10
23.7.11
23.7.12
23.8
23.8.1
23.8.2
23.8.3
23.8.4
23.8.5
23.8.6
23.8.7
23.8.8
23.8.9
23.8.10
23.8.11
23.8.12
23.9
23.9.1
23.9.2
23.9.3
23.9.4
23.9.5
23.9.6
23.9.7
23.10
23.10.1
23.10.2
24
24.1
24.1.1
24.1.2
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
UR2R_BMM 传输总字节寄存器(BMM_UR2R_AMT) ...............................................673
UR2R_BMM 传输完成字节寄存器(BMM_UR2R_DONE) .........................................673
UR2R_BMM 接收地址寄存器(BMM_UR2T_RXAx) ..................................................673
串口 3 与存储器之间的数据交换(UR3T_BMM,UR3R_BMM) ................................674
UR3T_BMM 配置寄存器(BMM_UR3T_CFG) .............................................................674
UR3T_BMM 控制寄存器(BMM_UR3T_CR) ...............................................................674
UR3T_BMM 状态寄存器(BMM_UR3T_STA) .............................................................674
UR3T_BMM 传输总字节寄存器(BMM_UR3T_AMT) ................................................675
UR3T_BMM 传输完成字节寄存器(BMM_UR3T_DONE) ..........................................675
UR3T_BMM 发送地址寄存器(BMM_UR3T_TXAx)...................................................675
UR3R_BMM 配置寄存器(BMM_UR3R_CFG) ............................................................675
UR3R_BMM 控制寄存器(BMM_UR3R_CR) ...............................................................675
UR3R_BMM 状态寄存器(BMM_UR3R_STA) .............................................................676
UR3R_BMM 传输总字节寄存器(BMM_UR3R_AMT) ...............................................676
UR3R_BMM 传输完成字节寄存器(BMM_UR3R_DONE) .........................................676
UR3R_BMM 接收地址寄存器(BMM_UR3T_RXAx) ..................................................676
串口 4 与存储器之间的数据交换(UR4T_BMM,UR4R_BMM) ................................677
UR4T_BMM 配置寄存器(BMM_UR4T_CFG) .............................................................677
UR4T_BMM 控制寄存器(BMM_UR4T_CR) ...............................................................677
UR4T_BMM 状态寄存器(BMM_UR4T_STA) .............................................................677
UR4T_BMM 传输总字节寄存器(BMM_UR4T_AMT) ................................................678
UR4T_BMM 传输完成字节寄存器(BMM_UR4T_DONE) ..........................................678
UR4T_BMM 发送地址寄存器(BMM_UR4T_TXAx)...................................................678
UR4R_BMM 配置寄存器(BMM_UR4R_CFG) ............................................................678
UR4R_BMM 控制寄存器(BMM_UR4R_CR) ...............................................................678
UR4R_BMM 状态寄存器(BMM_UR4R_STA) .............................................................679
UR4R_BMM 传输总字节寄存器(BMM_UR4R_AMT) ...............................................679
UR4R_BMM 传输完成字节寄存器(BMM_UR4R_DONE) .........................................679
UR4R_BMM 接收地址寄存器(BMM_UR4T_RXAx) ..................................................679
LCM 与存储器之间的数据读写(LCM_BMM) .............................................................680
LCM_BMM 配置寄存器(BMM_LCM_CFG)................................................................680
LCM_BMM 控制寄存器(BMM_LCM_CR) ..................................................................680
LCM_BMM 状态寄存器(BMM_LCM_STA) ................................................................681
LCM_BMM 传输总字节寄存器(BMM_LCM_AMT)...................................................681
LCM_BMM 传输完成字节寄存器(BMM_LCM_DONE) ............................................681
LCM_BMM 发送地址寄存器(BMM_LCM_TXAx) .....................................................681
LCM_BMM 接收地址寄存器(BMM_LCM_RXAx) .....................................................681
范例程序 ...............................................................................................................................682
串口 1 中断模式与电脑收发测试 - BMM 接收超时中断 ................................................682
串口 1 中断模式与电脑收发测试 - BMM 数据校验 ........................................................687
增强型双数据指针 ...............................................................................................................694
相关的特殊功能寄存器 .......................................................................................................694
第 1 组 16 位数据指针寄存器(DPTR0) .........................................................................694
第 2 组 16 位数据指针寄存器(DPTR1) .........................................................................694
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- xii -
STC8A8K64D4 系列技术手册
24.1.3
24.1.4
24.2
24.2.1
24.2.2
25
25.1
25.1.1
25.1.2
25.1.3
25.1.4
25.2
25.3
附录 A
附录 B
附录 C
附录 D
附录 E
附录 F
附录 G
G.1
G.2
G.3
G.3.1
G.3.2
G.3.3
G.3.4
G.3.5
G.3.6
G.3.7
G.3.8
G.3.9
G.3.10
G.4
G.4.1
G.4.2
G.4.3
G.4.4
G.4.5
G.5
G.5.1
G.5.2
附录 H
附录 I
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
数据指针控制寄存器(DPS) ............................................................................................694
数据指针控制寄存器(TA) ..............................................................................................695
范例程序 ...............................................................................................................................697
示例代码 1 ............................................................................................................................697
示例代码 2 ............................................................................................................................698
MDU16 硬件 16 位乘除法器 ..............................................................................................700
相关的特殊功能寄存器 .......................................................................................................700
操作数 1 数据寄存器(MD0~MD3) ..............................................................................700
操作数 2 数据寄存器(MD4~MD5) ..............................................................................700
MDU 模式控制寄存器(ARCON),运算所需时钟数 .....................................................701
MDU 操作控制寄存器(OPCON) ...................................................................................701
关于 MDU16 的网友应用杂谈(提供思路,仅供参考) ................................................703
范例程序 ...............................................................................................................................705
编译器(汇编器)/仿真器/头文件使用指南 .....................................................................707
如何测试 I/O 口 ...................................................................................................................716
如何让传统的 8051 单片机学习板可仿真 .........................................................................717
STC-USB 驱动程序安装说明 .............................................................................................719
USB 下载步骤演示 ..............................................................................................................782
RS485 自动控制或 I/O 口控制线路图 ...............................................................................786
STC 工具使用说明书 ..........................................................................................................787
概述 .......................................................................................................................................787
系统可编程(ISP)流程说明 .............................................................................................787
USB 型联机/脱机下载工具 U8W/U8W-Mini .....................................................................788
安装 U8W/U8W-Mini 驱动程序 ..........................................................................................790
U8W 的功能介绍 .................................................................................................................793
U8W 的在线联机下载使用说明 .........................................................................................794
U8W 的脱机下载使用说明 .................................................................................................797
U8W-Mini 的功能介绍 ........................................................................................................805
U8W-Mini 的在线联机下载使用说明.................................................................................806
U8W-Mini 的脱机下载使用说明.........................................................................................807
制作/更新 U8W/U8W-Mini..................................................................................................813
U8W/U8W-Mini 设置直通模式(可用于仿真) ...............................................................815
U8W/U8W-Mini 的参考电路 ...............................................................................................815
STC 通用 USB 转串口工具 .................................................................................................817
STC 通用 USB 转串口工具外观图 .....................................................................................817
STC 通用 USB 转串口工具布局图 .....................................................................................818
STC 通用 USB 转串口工具驱动安装 .................................................................................819
使用 STC 通用 USB 转串口工具下载程序到 MCU ..........................................................820
使用 STC 通用 USB 转串口工具仿真用户代码 ................................................................822
应用线路图 ...........................................................................................................................829
U8W 工具应用参考线路图 .................................................................................................829
STC 通用 USB 转串口工具应用参考线路图 .....................................................................829
U8W 下载工具中 RS485 部分线路图 ................................................................................831
运行用户程序时收到用户命令后自动启动 ISP 下载(不停电) ........................................832
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- xiii -
STC8A8K64D4 系列技术手册
附录 J
附录 K
附录 L
附录 M
附录 N
附录 O
附录 P
P.1
P.2
P.3
P.4
P.5
附录 Q
Q.1
附录 R
附录 S
附录 T
附录 U
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
使用 STC 的 IAP 系列单片机开发自己的 ISP 程序 ........................................................834
用户程序复位到系统区进行 ISP 下载的方法(不停电) ...............................................846
使用第三方 MCU 对 STC8A8K64D4 系列单片机进行 ISP 下载范例程序 ...................852
使用第三方应用程序调用 STC 发布项目程序对单片机进行 ISP 下载 .........................860
在 Keil 中建立多文件项目的方法 ......................................................................................864
关于中断号大于 31 在 Keil 中编译出错的处理 ................................................................868
电气特性 ...............................................................................................................................878
绝对最大额定值 ...................................................................................................................878
直流特性(3.3V) ...............................................................................................................879
直流特性(5.0V) ...............................................................................................................881
内部 IRC 温漂特性(参考温度 25℃)..............................................................................882
低压复位门槛电压(测试温度 25℃) ..............................................................................882
应用注意事项 .......................................................................................................................883
STC8A8K64D4-64Pin/48Pin 系列 .......................................................................................883
触摸按键的 PCB 设计指导 .................................................................................................884
QFN/DFN 封装元器件焊接方法 ........................................................................................886
STC8A8K64D4 系列单片机取代 STC8A8K64S4A12 系列的注意事项 .........................889
更新记录 ...............................................................................................................................891
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- xiv -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
1 概述
STC8A8K64D4 系列单片机是不需要外部晶振和外部复位的单片机,是以超强抗干扰/超低价/高速/
低功耗为目标的 8051 单片机,在相同的工作频率下,STC8A8K64D4 系列单片机比传统的 8051 约快 12
倍(速度快 11.2~13.2 倍),依次按顺序执行完全部的 111 条指令,STC8A8K64D4 系列单片机仅需 147
个时钟,而传统 8051 则需要 1944 个时钟。STC8A8K64D4 系列单片机是 STC 生产的单时钟/机器周期(1T)
的单片机,是宽电压/高速/高可靠/低功耗/强抗静电/较强抗干扰的新一代 8051 单片机,超级加密。指令
代码完全兼容传统 8051。
MCU 内部集成高精度 R/C 时钟(±0.3%,常温下+25℃),-1.38%~+1.42%温飘(-40℃~+85℃) ,
-0.88%~+1.05%温飘(-20℃~+65℃)。ISP 编程时 4MHz~45MHz 宽范围可设置(注意:温度范围为-40℃
~+85℃时,最高频率须控制在 45MHz 以下),可彻底省掉外部昂贵的晶振和外部复位电路(内部已集成高
可靠复位电路,ISP 编程时 4 级复位门槛电压可选)。
MCU 内部有 3 个可选时钟源:内部高精度 IRC 时钟(ISP 下载时可进行调节)、内部 32KHz 的低
速 IRC、外部 4M~33M 晶振或外部时钟信号。用户代码中可自由选择时钟源,时钟源选定后可再经过 8-bit
的分频器分频后再将时钟信号提供给 CPU 和各个外设(如定时器、串口、SPI 等)。
MCU 提供两种低功耗模式:IDLE 模式和 STOP 模式。IDLE 模式下,MCU 停止给 CPU 提供时钟,
CPU 无时钟,CPU 停止执行指令,但所有的外设仍处于工作状态,此时功耗约为 1.0mA(6MHz 工作频
率)。STOP 模式即为主时钟停振模式,即传统的掉电模式/停电模式/停机模式,此时 CPU 和全部外设
都停止工作,功耗可降低到 0.6uA@Vcc=5.0V,0.4uA@Vcc=3.3V。
掉电模式可以使用 INT0(P3.2)、INT1(P3.3)、INT2(P3.6)、INT3(P3.7)、INT4(P3.0)、T0(P3.4)、T1(P3.5)、
T2(P1.2) 、 T3(P0.4) 、 T4(P0.6) 、 RXD(P3.0/P3.6/P1.6/P4.3) 、 RXD2(P1.0/P4.0) 、 RXD3(P0.0/P5.0) 、
RXD4(P0.2/P5.0)、CCP0(P1.7/P2.3/P7.0/P3.3)、CCP1(P1.6/P2.4/P7.1/P3.2)、CCP2(P1.5/P2.5/P7.2/P3.1)、
CCP3(P1.4/P2.6/P7.3/P3.0)、I2C_SDA(P1.4/P2.4/P3.3)、SPI_SS(P1.2/P2.2/P3.5)以及所有端口的 I/O 中断、
比较器中断、低压检测中断、掉电唤醒定时器唤醒。
MCU 提供了丰富的数字外设(串口、定时器、PCA、增强型 PWM 以及 I2C、SPI)接口与模拟外设
(速度高达 800K 即每秒 80 万次采样的 12 位*15 路超高速 ADC、比较器),可满足广大用户的设计需
求。
STC8A8K64D4 系列单片机内部集成了增强型的双数据指针。通过程序控制,可实现数据指针自动递
增或递减功能以及两组数据指针的自动切换功能。
产品线
I/O
UART
定时器
ADC
STC8A8K64D4 系列-64Pin/48Pin
59
4
5
15CH*12B
深圳国芯人工智能有限公司
增强型
PWM
PCA
CMP
SPI
I2C
MDU16
●
●
●
●
●
●
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
I/O
中断
LCM
DMA
●
●
●
-1-
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
2 特性、价格及管脚
2.1 STC8A8K64D4-64Pin/48Pin 系列
特性及价格(有 16 位硬件乘除法器 MDU16,准 16 位单片机)
2.1.1
选型价格(不需要外部晶振、不需要外部复位)
PWM
有
有
5
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是
√ √ √ √
STC8A8K32D4 1.9-5.5 32K 8K
2
32K 59
4
有
有
有
有
有
有
5
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是
√ √ √ √
STC8A8K60D4 1.9-5.5 60K 8K
2
4K 59
4
有
有
有
有
有
有
5
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是
√ √ √ √
STC8A8K64D4 1.9-5.5 64K 8K
2
IAP 59
4
有
有
有
有
有
有
5
8
4
有 12 位 有
有
有 4级 有
是
有
是
是
是
是
√ √ √ √
/
程
序
加
密
后
传
输
(
防
拦
截
)
可
设
置
下
次
更
新
程
序
需
口
令
封装
2021
支
支 持 本
身
持
就
可
直 在
线
下 接 仿
载 下 真
载
注:以上的单价为 10K 及以上订货量的价格,量小则每片需增加 0.1 元人民币。当订货的总额达到或高于 3000 元时,
可免运费发货,否则需要由客户承担运费。零售 10 片起售。
内核
超高速 8051 内核(1T),比传统 8051 约快 12 倍以上
指令代码完全兼容传统 8051
43 个中断源,4 级中断优先级
支持在线仿真
工作电压
1.9V~5.5V
内建 LDO
工作温度
-40℃~85℃(超温度范围应用请参考电器特性章节说明)
Flash 存储器
最大 64K 字节 FLASH 程序存储器(ROM),用于存储用户代码
支持用户配置 EEPROM 大小,512 字节单页擦除,擦写次数可达 10 万次以上
支持在系统编程方式(ISP)更新用户应用程序,无需专用编程器
支持单芯片仿真,无需专用仿真器,理论断点个数无限制
SRAM
128 字节内部直接访问 RAM(DATA)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-2-
PDIP40
LQFP44
LQFP48
QFN48
)
)
QFN64
LQFP64S
D/A
可
对
外
输
出
时
钟
及
复
可 位
调
)
USB
8
看
门
狗
复
位
定
时
器
内
部
高
精
准
时
钟
(
24MHz
PWM
A/D
16
SPI LCM
(8
内
部
高
可
靠
复
位
(
可
选
复
位
门
槛
电
压
)
RS485
1
16
SRAM
DPTR
掉
电
唤
醒
专
用
定
时
器
比
路 较
高 器
速 ( 内
可 部
当 低
(
压
路 检
路
测
中
, 断
可 并
可 作 可
当 外 掉
部 电
路 掉 唤
电 醒
检
使 测
用 )
)
ADC 8
ADC
I/O
xdata
10
V
等
位
(
可
当
外
部
中
断
并
可
掉
电
唤
醒
)
15
T0-T4
有
硬 彩
件 屏 ,
接 串
口
位 口 ,
驱
乘
除 动
,
法
器 位
和
15
I2 C
有
支
持
PCA/CCP/PWM
SPI
有
字
节
DMA(
有
万
次
MDU16
4
)
口
最
万 多
可 次 数
量
增
可 字
减 节
字
节
串
口
并
可
掉
电
唤
醒
8080/6800 LCM
48K 59
工
作
电
压
(
I/O
2
单
片
机
型
号
强
程 , 大
序 大 的
存 容 双
储 量
器 扩
展
EEPROM 10
STC8A8K16D4 1.9-5.5 16K 8K
Flash
定
时
所 器
有 计
的 数 位
增
器 强
( 型
口
均
支
持 外
中 部 满
断 管 足
并 脚 舞
可 也 台
掉 可 灯
电 掉 光
唤 电 要
醒 唤 求
醒
)
年
新
品
供
货
信
息
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
128 字节内部间接访问 RAM(IDATA)
8192 字节内部扩展 RAM(内部 XDATA)
时钟控制
内部高精度 IRC(4MHz~45MHz,ISP 编程时可进行上下调整,还可以用户软件分频到较低的频率工作,
如 100KHz)
误差±0.3%(常温下 25℃)
-1.38%~+1.42%温漂(全温度范围,-40℃~85℃)
-0.88%~+1.05%温漂(温度范围,-20℃~65℃)
内部 32KHz 低速 IRC(误差较大)
外部晶振(4MHz~45MHz)和外部时钟
复位
硬件复位
上电复位,实测电压值为 1.69V~1.82V。(在芯片未使能低压复位功能时有效)
上电复位电压由一个上限电压和一个下限电压组成的电压范围,当工作电压从 5V/3.3V 向下掉到上
电复位的下限门槛电压时,芯片处于复位状态;当电压从 0V 上升到上电复位的上限门槛电压时,
芯片解除复位状态。
复位脚复位,出厂时 P5.4 默认为 I/O 口,ISP 下载时可将 P5.4 管脚设置为复位脚(注意:当设置 P5.4
管脚为复位脚时,复位电平为低电平)
看门狗溢出复位
低压检测复位,提供 4 级低压检测电压:2.0V(实测为 1.90V~2.04V)、2.4V(实测为 2.30V~2.50V)、
2.7V(实测为 2.61V~2.82V)、3.0V(实测为 2.90V~3.13V)。
每级低压检测电压都是由一个上限电压和一个下限电压组成的电压范围,当工作电压从 5V/3.3V 向
下掉到低压检测的下限门槛电压时,低压检测生效;当电压从 0V 上升到低压检测的上限门槛电压
时,低压检测生效。
软件复位
软件方式写复位触发寄存器
中断
提供 43 个中断源:INT0(支持上升沿和下降沿中断)、INT1(支持上升沿和下降沿中断)、INT2(只支持
下降沿中断)、INT3(只支持下降沿中断)、INT4(只支持下降沿中断)、定时器 0、定时器 1、定时器
2、定时器 3、定时器 4、串口 1、串口 2、串口 3、串口 4、ADC 模数转换、LVD 低压检测、SPI、I2C、
比较器、PCA/CCP/PWM、增强型 PWM、增强型 PWM 异常检测、所有的 I/O 中断(8 组)、LCD 驱动
中断、串口 1 的 DMA 接收和发送中断、串口 2 的 DMA 接收和发送中断、串口 3 的 DMA 接收和发送中
断、串口 4 的 DMA 接收和发送中断、SPI 的 DMA 中断、ADC 的 DMA 中断、LCD 驱动的 DMA 中断以
及存储器到存储器的 DMA 中断。
提供 4 级中断优先级
时钟停振模式下可以唤醒的中断:INT0(P3.2)、INT1(P3.3)、INT2(P3.6)、INT3(P3.7)、INT4(P3.0)、T0(P3.4)、
T1(P3.5)、T2(P1.2)、T3(P0.4)、T4(P0.6)、RXD(P3.0/P3.6/P1.6/P4.3)、RXD2(P1.0/P4.0)、RXD3(P0.0/P5.0)、
RXD4(P0.2/P5.0) 、 CCP0(P1.7/P2.3/P7.0/P3.3) 、 CCP1(P1.6/P2.4/P7.1/P3.2) 、 CCP2(P1.5/P2.5/P7.2/P3.1) 、
CCP3(P1.4/P2.6/P7.3/P3.0)、I2C_SDA(P1.4/P2.4/P3.3)、SPI_SS(P1.2/P2.2/P3.5)以及所有端口的 I/O 中断、
比较器中断、低压检测中断、掉电唤醒定时器唤醒
数字外设
5 个 16 位定时器:定时器 0、定时器 1、定时器 2、定时器 3、定时器 4,其中定时器 0 的模式 3 具有 NMI
(不可屏蔽中断)功能,定时器 0 和定时器 1 的模式 0 为 16 位自动重载模式
4 个高速串口:串口 1、串口 2、串口 3、串口 4,波特率时钟源最快可为 FOSC/4
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-3-
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
4 组 16 位 PCA 模块:CCP0、CCP1、CCP2、CCP3,可用于捕获、高速脉冲输出,及 6/7/8/10 位的 PWM 输
出
8 组 15 位增强型 PWM,可实现带死区的控制信号,并支持外部异常检测功能,另外还有 4 组传统的
PCA/CCP/PWM 可作 PWM
SPI:支持主机模式和从机模式以及主机/从机自动切换
I2C:支持主机模式和从机模式
MDU16:硬件 16 位乘除法器(支持 32 位除以 16 位、16 位除以 16 位、16 位乘 16 位、数据移位以及数据
规格化等运算)
I/O 口中断:所有的 I/O 均支持中断,每组 I/O 中断有独立的中断入口地址,所有的 I/O 中断可支持 4 种中
断模式:高电平中断、低电平中断、上升沿中断、下降沿中断
(本系列的 I/O 口中断可以进行掉电唤醒,且有 4 级中断优先级)
LCD 驱动模块:支持 8080 和 6800 两种接口以及 8 位和 16 位数据宽度
DMA:支持 SPI 移位接收数据到存储器、SPI 移位发送存储器的数据、串口 1/2/3/4 接收数据到的存储器、
串口 1/2/3/4 发送存储器的数据、ADC 自动采样数据到存储器(同时计算平均值)、LCD 驱动发送存储器
的数据、以及存储器到存储器的数据复制
硬件数字 ID:支持 32 字节
模拟外设
超高速 ADC,支持 12 位高精度 15 通道(通道 0~通道 14)的模数转换,速度最快能达到 800K(每秒进行
80 万次 ADC 转换)
ADC 的通道 15 用于测试内部 1.19V 参考信号源(芯片在出厂时,内部参考信号源已调整为 1.19V)
比较器,一组比较器(比较器的正端可选择 CMP+端口、CMP+_2、CMP+_3 和所有的 ADC 输入端口,比较
器的负端可选择 CMP-端口和内部 1.19V 的参考源,所以比较器可当作多路比较器进行分时复用)
DAC:8 组增强型 PWM 定时器可当 8 路 DAC 使用、4 路 PCA 可当 4 路 DAC 使用
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 种模式:准双向口模式、强推挽输出模式、开漏输出模式、高阻输入模式
除 P3.0 和 P3.1 外,其余所有 I/O 口上电后的状态均为高阻输入状态,用户在使用 I/O 口时必须先设置 I/O
口模式,另外每个 I/O 均可独立使能内部 4K 上拉电阻
封装
LQFP64S、LQFP48、LQFP44(暂无样品,后续会有)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-4-
STC8A8K64D4 系列技术手册
技术支持: 19864585985
选型顾问: 13922805190
管脚图,最小系统
注意:
1、若不需要进行USB下载,芯片复位时
P3.0/P3.1/P3.2不可同时为低电平,
否则芯片将会一直处于USB下载模式
而不会运行用户代码
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
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/CMP+_3
P5.0/RxD3_2/CMP+_2
2.1.2
官方网站: www.STCMCUDATA.com
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
LQFP64
QFN64
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
MCU-VCC
P5.5
Vcc
P5.4/RST/MCLKO 22u
0.1u
ADC_AVcc
RxD4_2/P5.2
TxD4_2/P5.3
TxD2/PWM1_2/ADC1/P1.1
ADC_ETR/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
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
TxD4/ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/AD7/P0.7
RxD2/PWM0_2/ADC0/P1.0
典型下载线路见下一页
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-5-
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
Vcc
P3.0
P3.1
Gnd
连接
电脑/PC
通用USB转串口工具 (人民币30元)
ISP下载步骤:
1、按照如图所示的连接方式将通用USB转串口工具和目标芯片连接
2、按下电源按钮,确定目标芯片处于停电状态(上电指示灯为灭的状态)。
注意:工具第一次上电时是不对外供电的,因此若是第一次上电使用此工具,可跳过此步。
3、点击STC-ISP下载软件中的“下载/编程”按钮
4、再次按下电源按钮,给目标芯片上电(上电指示灯为亮的状态)
5、开始ISP下载
注意:目前有发现使用USB线供电进行ISP下载时,由于USB线太细,在USB线上的压降过大,导致ISP
下载时供电不足,所以请在使用USB线供电进行ISP下载时,务必使用USB加强线。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-6-
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
注意:
1、若不需要进行USB下载,芯片复位时
P3.0/P3.1/P3.2不可同时为低电平,
否则芯片将会一直处于USB下载模式
而不会运行用户代码
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/CMP+_3
P5.0/RxD3_2/CMP+_2
STC8A8K64D4 系列技术手册
37
38
39
40
41
42
43
44
45
46
47
48
LQFP48
QFN48
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
MCU-VCC
P5.5
Vcc
P5.4/RST/MCLKO 22u
0.1u
ADC_AVcc
RxD4_2/P5.2
TxD4_2/P5.3
TxD2/PWM1_2/ADC1/P1.1
ADC_ETR/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
RxD3/ADC8/AD0/P0.0
TxD3/ADC9/AD1/P0.1
RxD4/ADC10/AD2/P0.2
RxD_4/WR/P4.3
TxD4/ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/AD7/P0.7
RxD2/PWM0_2/ADC0/P1.0
典型下载线路见下一页
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-7-
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
Vcc
P3.0
P3.1
Gnd
连接
电脑/PC
通用USB转串口工具 (人民币30元)
ISP下载步骤:
1、按照如图所示的连接方式将通用USB转串口工具和目标芯片连接
2、按下电源按钮,确定目标芯片处于停电状态(上电指示灯为灭的状态)。
注意:工具第一次上电时是不对外供电的,因此若是第一次上电使用此工具,可跳过此步。
3、点击STC-ISP下载软件中的“下载/编程”按钮
4、再次按下电源按钮,给目标芯片上电(上电指示灯为亮的状态)
5、开始ISP下载
注意:目前有发现使用USB线供电进行ISP下载时,由于USB线太细,在USB线上的压降过大,导致ISP
下载时供电不足,所以请在使用USB线供电进行ISP下载时,务必使用USB加强线。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-8-
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
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
STC8A8K64D4 系列技术手册
选型顾问: 13922805190
33
32
31
30
29
28
27
26
25
24
23
注意:
1、若不需要进行USB下载,芯片复位时
P3.0/P3.1/P3.2不可同时为低电平,
否则芯片将会一直处于USB下载模式
而不会运行用户代码
34
35
36
37
38
39
40
41
42
43
44
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
MCU-VCC
P5.5
Vcc
P5.4/RST/MCLKO 22u
0.1u
ADC_AVcc
RxD2/PWM0_2/ADC0/P1.0
TxD2/PWM1_2/ADC1/P1.1
ADC_ETR/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
RxD4/ADC10/AD2/P0.2
RxD_4/WR/P4.3
TxD4/ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/AD7/P0.7
典型下载线路见下一页
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
-9-
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
Vcc
P3.0
P3.1
Gnd
连接
电脑/PC
通用USB转串口工具 (人民币30元)
ISP下载步骤:
1、按照如图所示的连接方式将通用USB转串口工具和目标芯片连接
2、按下电源按钮,确定目标芯片处于停电状态(上电指示灯为灭的状态)。
注意:工具第一次上电时是不对外供电的,因此若是第一次上电使用此工具,可跳过此步。
3、点击STC-ISP下载软件中的“下载/编程”按钮
4、再次按下电源按钮,给目标芯片上电(上电指示灯为亮的状态)
5、开始ISP下载
注意:目前有发现使用USB线供电进行ISP下载时,由于USB线太细,在USB线上的压降过大,导致ISP
下载时供电不足,所以请在使用USB线供电进行ISP下载时,务必使用USB加强线。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 10 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
P3.0/P3.1/P3.2不可同时为低电平,
否则芯片将会一直处于USB下载模式
而不会运行用户代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PDIP40
TxD4/ADC11/AD3/P0.3
T3/ADC12/AD4/P0.4
T3CLKO/ADC13/AD5/P0.5
T4/ADC14/AD6/P0.6
T4CLKO/AD7/P0.7
RxD2/PWM0_2/ADC0/P1.0
TxD2/PWM1_2/ADC1/P1.1
ADC_ETR/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
1、若不需要进行USB下载,芯片复位时
Gnd
技术支持: 19864585985
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
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
Vcc
P3.0
P3.1
Gnd
连接
电脑/PC
通用USB转串口工具 (人民币30元)
ISP下载步骤:
1、按照如图所示的连接方式将通用USB转串口工具和目标芯片连接
2、按下电源按钮,确定目标芯片处于停电状态(上电指示灯为灭的状态)。
注意:工具第一次上电时是不对外供电的,因此若是第一次上电使用此工具,可跳过此步。
3、点击STC-ISP下载软件中的“下载/编程”按钮
4、再次按下电源按钮,给目标芯片上电(上电指示灯为亮的状态)
5、开始ISP下载
注意:目前有发现使用USB线供电进行ISP下载时,由于USB线太细,在USB线上的压降过大,导致ISP
下载时供电不足,所以请在使用USB线供电进行ISP下载时,务必使用USB加强线。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 11 -
STC8A8K64D4 系列技术手册
2.1.3
官方网站: www.STCMCUDATA.com
编号
LQFP48
1
1
2
2
4
5
选型顾问: 13922805190
管脚说明
LQFP64S
3
技术支持: 19864585985
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 的外部脉冲输入
ADC_ETR
I
ADC 外部触发输入
P1.3
I/O
ADC3
I
ADC 模拟输入通道 3
PWM3_2
O
增强 PWM 通道 3 输出脚
MOSI
I/O
SPI 主机输出从机输入
T2CLKO
O
定时器 2 时钟分频输出
P6.0
I/O
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 口
标准 IO 口
增强 PWM 通道 0 输出脚
标准 IO 口
增强 PWM 通道 1 输出脚
标准 IO 口
增强 PWM 通道 2 输出脚
标准 IO 口
增强 PWM 通道 3 输出脚
传真: 0513-5501 2926/2956/2947
- 12 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
编号
LQFP64S
10
11
12
13
14
LQFP48
6
7
8
9
10
LQFP44
5
8
9
选型顾问: 13922805190
名称
类型
说明
P1.4
I/O
ADC4
I
ADC 模拟输入通道 4
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
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 的接收脚
PWM6_2
O
增强 PWM 通道 6 输出脚
MCLKO_2
O
主时钟分频输出
CCP1
I/O
XTALO
O
P1.7
I/O
ADC7
I
ADC 模拟输入通道 7
TxD_3
O
串口 1 的发送脚
PWM7_2
O
增强 PWM 通道 7 输出脚
CCP0
I/O
PCA 的捕获输入和脉冲输出
XTALI
I
外部晶振/外部时钟的输入脚
PDIP40
10
6
7
技术支持: 19864585985
11
12
13
标准 IO 口
标准 IO 口
PCA 的捕获输入和脉冲输出
外部晶振的输出脚
标准 IO 口
ADC 地线
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
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
ADC 的参考电压脚
ADC 电源脚
电源脚
标准 IO 口
地线
传真: 0513-5501 2926/2956/2947
- 13 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.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
技术支持: 19864585985
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
- 14 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
编号
LQFP64S
32
33
34
35
36
37
LQFP48
24
LQFP44
23
26
26
28
29
24
25
26
27
28
29
38
39
40
41
42
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
串口 3 的接收脚
CMP+_2
I
比较器正极输入
P5.1
I/O
TxD3_2
O
串口 3 的发送脚
CMP+_3
I
比较器正极输入
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
25
27
技术支持: 19864585985
30
国内分销商电话: 0513-5501 2928/2929/2966
标准 IO 口
标准 IO 口
标准 IO 口
标准 IO 口
标准 IO 口
传真: 0513-5501 2926/2956/2947
- 15 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.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
技术支持: 19864585985
选型顾问: 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
- 16 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.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
技术支持: 19864585985
1
2
国内分销商电话: 0513-5501 2928/2929/2966
标准 IO 口
传真: 0513-5501 2926/2956/2947
- 17 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
编号
LQFP64S
61
62
63
64
LQFP48
45
46
47
48
深圳国芯人工智能有限公司
LQFP44
42
43
44
1
技术支持: 19864585985
选型顾问: 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
ADC0
I
ADC 模拟输入通道 0
PWM0_2
O
增强 PWM 通道 0 输出脚
RxD2
I
串口 2 的接收脚
PDIP40
3
4
5
6
国内分销商电话: 0513-5501 2928/2929/2966
标准 IO 口
传真: 0513-5501 2926/2956/2947
- 18 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
3 功能脚切换
STC8A8K64D4 系列单片机的特殊外设串口、SPI、PCA、I2C 以及总线控制脚可以在多个 I/O 直接
进行切换,以实现一个外设当作多个设备进行分时复用。
3.1 功能脚切换相关寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
BUS_SPEED
总线速度控制寄存器
A1H
RW_S[1:0]
P_SW1
外设端口切换寄存器 1
A2H
S1_S[1:0]
P_SW2
外设端口切换寄存器 2
BAH
符号
描述
地址
B5
B4
B3
CCP_S[1:0]
EAXFR
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 控制寄存器
FF14H
ENC0O
C0INI
-
C0_S[1:0]
EC0I
EC0T2SI EC0T1SI 00x0,0000
PWM1CR
PWM1 控制寄存器
FF1CH
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 控制寄存器
FF2CH
ENC3O
C3INI
-
C3_S[1:0]
EC3I
EC3T2SI EC3T1SI 00x0,0000
PWM4CR
PWM4 控制寄存器
FF34H
ENC4O
C4INI
-
C4_S[1:0]
EC4I
EC4T2SI EC4T1SI 00x0,0000
PWM5CR
PWM5 控制寄存器
FF3CH
ENC5O
C5INI
-
C5_S[1:0]
EC5I
EC5T2SI EC5T1SI 00x0,0000
PWM6CR
PWM6 控制寄存器
FF44H
ENC6O
C6INI
-
C6_S[1:0]
EC6I
EC6T2SI EC6T1SI 00x0,0000
PWM7CR
PWM7 控制寄存器
FF4CH
ENC7O
C7INI
-
C7_S[1:0]
EC7I
EC7T2SI EC7T1SI 00x0,0000
MCLKOCR
主时钟输出控制寄存器
FE05H
MCLKO_S
LCMIFCFG
LCM 接口配置寄存器
FE50H
LCMIFIE
LCMIFCFG2
LCM 接口配置寄存器 2
FE51H
深圳国芯人工智能有限公司
MCLKODIV[6:0]
-
LCMIFIP[1:0]
LCMIFEXPS[1:0]
国内分销商电话: 0513-5501 2928/2929/2966
LCMIFPS[1:0]
SETUPT[2:0]
0000,0000
D16_D8
M68_80 0x00,0000
HOLDT[1:0]
传真: 0513-5501 2926/2956/2947
x000,0000
- 19 -
STC8A8K64D4 系列技术手册
3.1.1
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
总线速度控制寄存器(BUS_SPEED)
符号
地址
BUS_SPEED
A1H
B7
B6
B5
B4
B3
B2
RW_S[1:0]
B1
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
3.1.2
外设端口切换控制寄存器 1(P_SW1)
,串口 1、CCP、SPI
切换
符号
地址
P_SW1
A2H
B7
B6
S1_S[1:0]
B5
B4
CCP_S[1:0]
B3
B2
SPI_S[1:0]
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
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
3.1.3
外设端口切换控制寄存器 2(P_SW2),串口 2/3/4、I2C、
比较器输出切换
符号
地址
B7
B6
P_SW2
BAH
EAXFR
-
B5
B4
I2C_S[1:0]
B3
CMPO_S
B2
S4_S
B1
S3_S
B0
S2_S
EAXFR:扩展 RAM 区特殊功能寄存器(XFR)访问控制寄存器
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 20 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
0:禁止访问 XFR
1:使能访问 XFR。
当需要访问 XFR 时,必须先将 EAXFR 置 1,才能对 XFR 进行正常的读写
I2C_S[1:0]:I2C 功能脚选择位
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
3.1.4
时钟选择寄存器(MCLKOCR)
符号
地址
B7
MCLKOCR
FE05H
MCLKO_S
B6
B5
B4
B3
B2
B1
B0
B2
B1
B0
MCLKODIV[6:0]
MCLKO_S:主时钟输出脚选择位
MCLKO_S
MCLKO
0
P5.4
1
P1.6
3.1.5
增强型 PWM 控制寄存器(PWMnCR)
符号
地址
B7
B6
B5
PWM0CR
FF14H
ENC0O
C0INI
-
C0_S[1:0]
EC0I
EC0T2SI
EC0T1SI
PWM1CR
FF1CH
ENC1O
C1INI
-
C1_S[1:0]
EC1I
EC1T2SI
EC1T1SI
PWM2CR
FF24H
ENC2O
C2INI
-
C2_S[1:0]
EC2I
EC2T2SI
EC2T1SI
PWM3CR
FF2CH
ENC3O
C3INI
-
C3_S[1:0]
EC3I
EC3T2SI
EC3T1SI
PWM4CR
FF34H
ENC4O
C4INI
-
C4_S[1:0]
EC4I
EC4T2SI
EC4T1SI
深圳国芯人工智能有限公司
B4
B3
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 21 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
PWM5CR
FF3CH
ENC5O
C5INI
-
C5_S[1:0]
EC5I
EC5T2SI
EC5T1SI
PWM6CR
FF44H
ENC6O
C6INI
-
C6_S[1:0]
EC6I
EC6T2SI
EC6T1SI
PWM7CR
FF4CH
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
11
保留
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
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 22 -
STC8A8K64D4 系列技术手册
11
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
保留
C7_S[1:0]:增强型 PWM 通道 7 输出脚选择位
C7_S[1:0]
PWM7
00
P2.7
01
P1.7
10
P6.7
11
保留
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 23 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
LCM 接口配置寄存器(LCMIFCFG)
3.1.6
符号
地址
B7
B6
LCMIFCFG
FE50H
LCMIFIE
-
LCMIFCFG2
FE51H
B5
B4
B3
LCMIFIP[1:0]
B2
LCMIFDPS[1:0]
LCMIFCPS[1:0]
SETUPT[2:0]
B1
B0
D16_D8
M68_I80
HOLDT[1:0]
LCMIFCPS[1:0]:LCM 接口控制脚选择位
LCMIFCPS [1:0]
RS
I8080 的读信号 RD
M6800 的使能信号 E
I8080 的写信号 WR
M6800 的读写信号 RW
00
P4.1
P4.4
P4.3
01
P4.1
P3.7
P3.6
10
P4.1
P4.2
P4.0
11
P4.0
P3.7
P3.6
LCMIFDPS[1:0]:LCM 接口数据脚选择位
LCMIFDPS [1:0]
D16_D8
数据高字节 DB[15:8]
数据低字节 DB[7:0]
00
0
N/A
P2[7:0]
01
0
N/A
P6[7:0]
10
0
N/A
P2[7:0]
11
0
N/A
P6[7:0]
00
1
P2[7:0]
P0[7:0]
01
1
P6[7:0]
P2[7:0]
10
1
P2[7:0]
P7[7:0]
11
1
P6[7:0]
P7[7:0]
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 24 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
3.2 范例程序
串口 1 切换
3.2.1
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
sfr
P_SW1
=
0xa2;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//
//
P_SW1 = 0x00;
P_SW1 = 0x40;
P_SW1 = 0x80;
P_SW1 = 0xc0;
//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
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW1
DATA
0A2H
P0M1
P0M0
DATA
DATA
093H
094H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 25 -
STC8A8K64D4 系列技术手册
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
P_SW1,#00H
P_SW1,#40H
P_SW1,#80H
P_SW1,#0C0H
SJMP
$
技术支持: 19864585985
选型顾问: 13922805190
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
3.2.2
串口 2 切换
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
sfr
P_SW2
=
0xba;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 26 -
STC8A8K64D4 系列技术手册
sfr
sfr
sfr
sfr
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
=
=
=
=
技术支持: 19864585985
选型顾问: 13922805190
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
P_SW2 = 0x00;
P_SW2 = 0x01;
//RXD2/P1.0, TXD2/P1.1
//RXD2_2/P4.0, TXD2_2/P4.2
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 27 -
STC8A8K64D4 系列技术手册
;
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
P_SW2,#00H
P_SW2,#01H
SJMP
$
技术支持: 19864585985
选型顾问: 13922805190
;RXD2/P1.0, TXD2/P1.1
;RXD2_2/P4.0, TXD2_2/P4.2
END
串口 3 切换
3.2.3
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
sfr
P_SW2
=
0xba;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
P_SW2 = 0x00;
P_SW2 = 0x02;
//RXD3/P0.0, TXD3/P0.1
//RXD3_2/P5.0, TXD3_2/P5.1
while (1);
}
汇编代码
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 28 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
P_SW2,#00H
P_SW2,#02H
SJMP
$
MAIN:
;
;RXD3/P0.0, TXD3/P0.1
;RXD3_2/P5.0, TXD3_2/P5.1
END
3.2.4
串口 4 切换
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
sfr
P_SW2
=
0xba;
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
=
=
=
=
0x93;
0x94;
0x91;
0x92;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 29 -
STC8A8K64D4 系列技术手册
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
=
=
=
=
=
=
=
=
技术支持: 19864585985
选型顾问: 13922805190
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
P_SW2 = 0x00;
P_SW2 = 0x04;
//RXD4/P0.2, TXD4/P0.3
//RXD4_2/P5.2, TXD4_2/P5.3
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 30 -
STC8A8K64D4 系列技术手册
;
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
P_SW2,#00H
P_SW2,#04H
SJMP
$
技术支持: 19864585985
选型顾问: 13922805190
;RXD4/P0.2, TXD4/P0.3
;RXD4_2/P5.2, TXD4_2/P5.3
END
3.2.5
SPI 切换
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
sfr
P_SW1
=
0xa2;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//
P_SW1 = 0x00;
P_SW1 = 0x04;
P_SW1 = 0x08;
深圳国芯人工智能有限公司
//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
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 31 -
STC8A8K64D4 系列技术手册
//
官方网站: www.STCMCUDATA.com
P_SW1 = 0x0c;
技术支持: 19864585985
选型顾问: 13922805190
//SS_4/P3.5, MOSI_4/P3.4, MISO_4/P3.3, SCLK_4/P3.2
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW1
DATA
0A2H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
P_SW1,#00H
P_SW1,#04H
P_SW1,#08H
P_SW1,#0CH
SJMP
$
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
3.2.6
PWM 切换
汇编代码
P_SW2
PWM0CR
DATA
EQU
深圳国芯人工智能有限公司
0BAH
0FF14H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 32 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
PWM1CR
PWM2CR
PWM3CR
PWM4CR
PWM5CR
PWM6CR
PWM7CR
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0FF1CH
0FF24H
0FF2CH
0FF34H
0FF3CH
0FF44H
0FF4CH
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #3FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
P_SW2,#80H
A,#00H
A,#08H
A,#10H
DPTR,#PWM0CR
@DPTR,A
A,#00H
A,#08H
A,#10H
DPTR,#PWM1CR
@DPTR,A
A,#00H
A,#08H
A,#10H
DPTR,#PWM2CR
@DPTR,A
A,#00H
A,#08H
A,#10H
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
;
;
;
;
;
;
;
;
深圳国芯人工智能有限公司
;PWM0/P2.0
;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
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 33 -
STC8A8K64D4 系列技术手册
;
;
;
;
;
;
;
;
官方网站: www.STCMCUDATA.com
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOVX
MOV
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
$
技术支持: 19864585985
选型顾问: 13922805190
;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 *)0xff14)
(*(unsigned char volatile xdata *)0xff1c)
(*(unsigned char volatile xdata *)0xff24)
(*(unsigned char volatile xdata *)0xff2c)
(*(unsigned char volatile xdata *)0xff34)
(*(unsigned char volatile xdata *)0xff3c)
(*(unsigned char volatile xdata *)0xff44)
(*(unsigned char volatile xdata *)0xff4c)
sfr
P_SW2
=
0xba;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 34 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
P_SW2 = 0x80;
PWM0CR = 0x00;
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;
//PWM0/P2.0
//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);
}
PCA/CCP/PWM 切换
3.2.7
汇编代码
P_SW1
DATA
0A2H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 35 -
STC8A8K64D4 系列技术手册
P5M0
官方网站: www.STCMCUDATA.com
DATA
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #3FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
P_SW1,#00H
P_SW1,#10H
P_SW1,#20H
P_SW1,#30H
SJMP
$
技术支持: 19864585985
选型顾问: 13922805190
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;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 36 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//
//
P_SW1 = 0x00;
P_SW1 = 0x10;
P_SW1 = 0x20;
P_SW1 = 0x30;
//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
while (1);
}
3.2.8
I2C 切换
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
sfr
P_SW2
=
0xba;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//
//
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);
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 37 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
3.2.9
比较器输出切换
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 38 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
P_SW2
=
0xba;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
技术支持: 19864585985
选型顾问: 13922805190
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
P_SW2 = 0x00;
P_SW2 = 0x08;
//CMPO/P3.4
//CMPO_2/P4.1
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 39 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
;
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
P_SW2,#00H
P_SW2,#08H
SJMP
$
;CMPO/P3.4
;CMPO_2/P4.1
END
3.2.10 主时钟输出切换
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#define
MCLKOCR
(*(unsigned char volatile xdata *)0xfe00)
sfr
P_SW2
=
0xba;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 40 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
P_SW2 = 0x80;
MCLKOCR = 0x04;
MCLKOCR = 0x84;
P_SW2 = 0x00;
//HIRC/4 output via MCLKO/P5.4
//HIRC/4 output via MCLKO_2/P1.6
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
MCLKOCR
EQU
0FE05H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
MOVX
MOV
P_SW2,#80H
A,#04H
A,#84H
DPTR,#MCLKOCR
@DPTR,A
P_SW2,#00H
MAIN:
;
深圳国芯人工智能有限公司
;HIRC/4 output via MCLKO/P5.4
;HIRC/4 output via MCLKO_2/P1.6
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 41 -
STC8A8K64D4 系列技术手册
SJMP
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
$
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 42 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
4 封装尺寸图
4.1 LQFP48 封装尺寸图(9mm*9mm)
D (9mm)
D1 (7mm)
25
37
24
48
13
E1 (7mm)
E (9mm)
36
1
12
MAX
1.60
0.15
1.45
0.69
0.27
0.23
0.18
0.134
9.20
7.10
9.20
7.10
0.55
0.75
0.20
-
b
R1
A3
R2
A1
A2
A
e (0.5mm)
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.17
0.20
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
-
L2
L
b
b1
c
L1
c1
(A-A的截面图)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 43 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
4.2 QFN48 封装尺寸图(6mm*6mm)
D (6mm)
48
37
1
36
E (6mm)
PIN 1
12
25
13
SYMBOL
A
A1
A3
b
D
E
D2
E2
e
L
K
R
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.70
0.75
0.00
0.02
0.20REF
0.15
0.20
5.90
6.00
5.90
6.00
3.95
4.05
3.95
4.05
0.35
0.40
0.35
0.40
0.20
0.09
-
MAX
0.80
0.05
0.25
6.10
6.10
4.15
4.15
0.45
0.45
-
24
K
39
48
A3
1
35
A1
A
L
E2
e(0.4mm)
R
D2
25
12
24
b(0.20mm)
13
STC 现有 QFN48 封装芯片的背面金属片(衬底)
,在芯片内部并未接地,在用户的 PCB 板上可以接地,
也可以不接地,不会对芯片性能造成影响
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 44 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
4.3 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
16
e (0.5mm)
SYMBOL
A
A1
A2
A3
b
b1
c
c1
D
D1
E
E1
e
L
L1
L2
R1
R2
S
?
?1
?2
?3
深圳国芯人工智能有限公司
一般尺寸
测量单位:毫米/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
?2
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
?1
R2
?3
?
L2
L1
L
S
b
0.75
b1
0.20
7°
13°
13°
c
c1
国内分销商电话: 0513-5501 2928/2929/2966
(A-A的截面图)
传真: 0513-5501 2926/2956/2947
- 45 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
4.4 QFN64 封装尺寸图(8mm*8mm)
D (8mm)
64
49
1
48
E (8mm)
PIN 1
16
SYMBOL
A
A1
A2
A3
b
D
E
D2
E2
e
L
K
R
一般尺寸
测量单位:毫米/mm
MIN
TYP
0.70
0.75
0.00
0.02
0.50
0.55
0.20REF
0.15
0.20
7.90
8.00
7.90
8.00
5.90
6.00
5.90
6.00
0.30
0.40
0.30
0.40
0.40
0.09
-
MAX
0.80
0.05
0.60
0.25
8.10
8.10
6.10
6.10
0.50
0.50
-
33
17
K
51
A3
A1
A
32
64
L
1
47
R
e(0.4mm)
E2
D2
33
16
32
b(0.20mm)
17
STC 现有 QFN64 封装芯片的背面金属片(衬底)
,在芯片内部并未接地,在用户的 PCB 板上可以接地,
也可以不接地,不会对芯片性能造成影响
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 46 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
4.5 STC8A8K64D4 系列单片机命名规则
STC
8x
xK
64
D
4
4:4个串口
DMA
程序空间大小
60:60K字节
64:64K字节
SRAM空间大小
8K:8K字节
子系列
8A:STC8A系列
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 47 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
5 ISP 下载及典型应用线路图
5.1 STC8A8K64D4 系列 ISP 下载应用线路图
使用 RS-232 转换器下载,也可支持仿真(使用高精度 ADC)
5.1.1
CD431/TL431(2.5V基准源)
511R
22u
系统电源
(可从USB取电)
0.1u
22u
Vin
220uH
AVcc
Vcc
Power On
0R
0R
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
Vcc
Vcc
SP3232/
SP232/
MAX3232/
MAX232
0.1u
0.1u
0.1u
0.1u
1
2
3
4
5
6
7
8
VCC
C1+
GND
V+
T1OUT
C1R1IN
C2+
R1OUT
C2T1IN
VT2IN
T2OUT
R2OUT
R2IN
10u
0.1u
16
15
14
13
12
11
10
9
1
6
2
7
3
8
4
9
5
100R
STC8A8K64D4
模拟地
系统地
数字地
CD431(封装SOT23)参考价 8;
TR1 = 1;
AUXR = 0x40;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
BGV = (int code *)0xeff7;
UartInit();
深圳国芯人工智能有限公司
// STC8A8K60S4
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 128 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
ES = 1;
EA = 1;
UartSend(*BGV >> 8);
UartSend(*BGV);
技术支持: 19864585985
选型顾问: 13922805190
//读取内部 1.19V 参考信号源的高字节
//读取内部 1.19V 参考信号源的低字节
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
BGV
DATA
EQU
8EH
0EFF7H
BUSY
BIT
20H.0
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0023H
UART_ISR
ORG
0100H
JNB
CLR
CLR
TI,CHKRI
TI
BUSY
;STC8A8K60S4
UART_ISR:
CHKRI:
JNB
CLR
UARTISR_EXIT:
RETI
RI,UARTISR_EXIT
RI
UART_INIT:
MOV
MOV
MOV
MOV
SETB
MOV
CLR
RET
SCON,#50H
TMOD,#00H
TL1,#0E8H
TH1,#0FFH
TR1
AUXR,#40H
BUSY
JB
BUSY,$
;65536-11059200/115200/4=0FFE8H
UART_SEND:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 129 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
SETB
MOV
RET
BUSY
SBUF,A
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
LCALL
SETB
SETB
UART_INIT
ES
EA
MOV
CLR
MOVC
LCALL
MOV
MOVC
LCALL
DPTR,#BGV
A
A,@A+DPTR
UART_SEND
A,#1
A,@A+DPTR
UART_SEND
JMP
LOOP
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
;读取内部 1.19V 参考信号源的高字节
;读取内部 1.19V 参考信号源的低字节
LOOP:
END
7.4.3
读取内部 1.19V 参考信号源值 (从 RAM 中读取)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 130 -
STC8A8K64D4 系列技术手册
sfr
sfr
sfr
sfr
sfr
sfr
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
bit
int
busy;
*BGV;
官方网站: www.STCMCUDATA.com
=
=
=
=
=
=
技术支持: 19864585985
选型顾问: 13922805190
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
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 main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
BGV = (int idata *)0xef;
UartInit();
ES = 1;
EA = 1;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 131 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
//读取内部 1.19V 参考信号源的高字节
//读取内部 1.19V 参考信号源的低字节
UartSend(*BGV >> 8);
UartSend(*BGV);
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
BGV
DATA
DATA
8EH
0EFH
BUSY
BIT
20H.0
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0023H
UART_ISR
ORG
0100H
JNB
CLR
CLR
TI,CHKRI
TI
BUSY
UART_ISR:
CHKRI:
JNB
CLR
UARTISR_EXIT:
RETI
RI,UARTISR_EXIT
RI
UART_INIT:
MOV
MOV
MOV
MOV
SETB
MOV
CLR
RET
SCON,#50H
TMOD,#00H
TL1,#0E8H
TH1,#0FFH
TR1
AUXR,#40H
BUSY
JB
SETB
MOV
BUSY,$
BUSY
SBUF,A
;65536-11059200/115200/4=0FFE8H
UART_SEND:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 132 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
RET
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
LCALL
SETB
SETB
UART_INIT
ES
EA
MOV
MOV
LCALL
INC
MOV
LCALL
R0,#BGV
A,@R0
UART_SEND
R0
A,@R0
UART_SEND
JMP
LOOP
;读取内部 1.19V 参考信号源的高字节
;读取内部 1.19V 参考信号源的低字节
LOOP:
END
7.4.4
读取全球唯一 ID 号 (从 CHIPID 中读取)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
#define
CPUIDBASE
0xfde0
#define
#define
#define
#define
#define
#define
#define
#define
#define
ID_ADDR
VREF_ADDR
F32K_ADDR
T22M_ADDR
T24M_ADDR
T20M_ADDR
T27M_ADDR
T30M_ADDR
T33M_ADDR
((unsigned char volatile xdata *)(CPUIDBASE + 0x00))
(*(unsigned int volatile xdata *)(CPUIDBASE + 0x07))
(*(unsigned int volatile xdata *)(CPUIDBASE + 0x09))
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0b)) //22.1184MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0c)) //24MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0d)) //20MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0e)) //27MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0f)) //30MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x10)) //33.1776MHz
深圳国芯人工智能有限公司
11059200UL
(65536 - FOSC / 115200 / 4)
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 133 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
#define
#define
#define
#define
#define
#define
#define
#define
T35M_ADDR
T36M_ADDR
T40M_ADDR
T45M_ADDR
VRT6M_ADDR
VRT10M_ADDR
VRT27M_ADDR
VRT44M_ADDR
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x11)) //35MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x12)) //36.864MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x13)) //40MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x14)) //45MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x15)) //VRTRIM_6M
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x16)) //VRTRIM_10M
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x17)) //VRTRIM_27M
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x18)) //VRTRIM_44M
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
busy;
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 main()
{
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 134 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
char i;
UartInit();
ES = 1;
EA = 1;
for (i=0; i> 8;
TR1 = 1;
AUXR = 0x40;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
char i;
ID = (char code *)0xeff9;
UartInit();
ES = 1;
EA = 1;
// STC8A8K60S4
for (i=0; i> 8;
TR1 = 1;
AUXR = 0x40;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
char i;
ID = (char idata *)0xf1;
UartInit();
ES = 1;
EA = 1;
for (i=0; i> 8;
TR1 = 1;
AUXR = 0x40;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 144 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P5M1 = 0x00;
F32K = (int code *)0xeff5;
UartInit();
ES = 1;
EA = 1;
// STC8A8K60S4
UartSend(F32K_ADDR >> 8);
UartSend(F32K_ADDR);
//读取 32K 频率的高字节
//读取 32K 频率的低字节
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
CPUIDBASE
EQU
0FDE0H
ID_ADDR
VREF_ADDR
F32K_ADDR
T22M_ADDR
T24M_ADDR
T20M_ADDR
T27M_ADDR
T30M_ADDR
T33M_ADDR
T35M_ADDR
T36M_ADDR
T40M_ADDR
T45M_ADDR
VRT6M_ADDR
VRT10M_ADDR
VRT27M_ADDR
VRT44M_ADDR
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
CPUIDBASE + 00H
CPUIDBASE + 07H
CPUIDBASE + 09H
CPUIDBASE + 0BH
CPUIDBASE + 0CH
CPUIDBASE + 0DH
CPUIDBASE + 0EH
CPUIDBASE + 0FH
CPUIDBASE + 10H
CPUIDBASE + 11H
CPUIDBASE + 12H
CPUIDBASE + 13H
CPUIDBASE + 14H
CPUIDBASE + 15H
CPUIDBASE + 16H
CPUIDBASE + 17H
CPUIDBASE + 18H
AUXR
DATA
8EH
BUSY
BIT
20H.0
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
0000H
MAIN
0023H
深圳国芯人工智能有限公司
;22.1184MHz
;24MHz
;20MHz
;27MHz
;30MHz
;33.1776MHz
;35MHz
;36.864MHz
;40MHz
;45MHz
;VRTRIM_6M
;VRTRIM_10M
;VRTRIM_27M
;VRTRIM_44M
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 145 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
LJMP
UART_ISR
ORG
0100H
JNB
CLR
CLR
TI,CHKRI
TI
BUSY
技术支持: 19864585985
选型顾问: 13922805190
UART_ISR:
CHKRI:
JNB
CLR
UARTISR_EXIT:
RETI
RI,UARTISR_EXIT
RI
UART_INIT:
MOV
MOV
MOV
MOV
SETB
MOV
CLR
RET
SCON,#50H
TMOD,#00H
TL1,#0E8H
TH1,#0FFH
TR1
AUXR,#40H
BUSY
JB
SETB
MOV
RET
BUSY,$
BUSY
SBUF,A
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
LCALL
SETB
SETB
UART_INIT
ES
EA
MOV
CLR
MOVC
LCALL
INC
CLR
MOVC
LCALL
DPTR,# F32K_ADDR
A
A,@A+DPTR
UART_SEND
DPTR
A
A,@A+DPTR
UART_SEND
;65536-11059200/115200/4=0FFE8H
UART_SEND:
MAIN:
;读取 32K 频率的高字节
;读取 32K 频率的低字节
LOOP:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 146 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
JMP
技术支持: 19864585985
选型顾问: 13922805190
LOOP
END
7.4.8
读取 32K 掉电唤醒定时器的频率 (从 Flash 程序存储器
(ROM)中读取)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
int
busy;
*F32K;
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;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 147 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
TR1 = 1;
AUXR = 0x40;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
F32K = (int code *)0xeff5;
UartInit();
ES = 1;
EA = 1;
// STC8A8K60S4
UartSend(*F32K >> 8);
UartSend(*F32K);
//读取 32K 频率的高字节
//读取 32K 频率的低字节
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
F32K
DATA
EQU
8EH
0EFF5H
BUSY
BIT
20H.0
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
深圳国芯人工智能有限公司
; STC8A8K60S4
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 148 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
ORG
LJMP
ORG
LJMP
0000H
MAIN
0023H
UART_ISR
ORG
0100H
JNB
CLR
CLR
TI,CHKRI
TI
BUSY
技术支持: 19864585985
选型顾问: 13922805190
UART_ISR:
CHKRI:
JNB
CLR
UARTISR_EXIT:
RETI
RI,UARTISR_EXIT
RI
UART_INIT:
MOV
MOV
MOV
MOV
SETB
MOV
CLR
RET
SCON,#50H
TMOD,#00H
TL1,#0E8H
TH1,#0FFH
TR1
AUXR,#40H
BUSY
JB
SETB
MOV
RET
BUSY,$
BUSY
SBUF,A
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
LCALL
SETB
SETB
UART_INIT
ES
EA
MOV
CLR
MOVC
LCALL
INC
CLR
DPTR,#F32K
A
A,@A+DPTR
UART_SEND
DPTR
A
;65536-11059200/115200/4=0FFE8H
UART_SEND:
MAIN:
深圳国芯人工智能有限公司
;读取 32K 频率的高字节
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 149 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOVC
LCALL
A,@A+DPTR
UART_SEND
JMP
LOOP
技术支持: 19864585985
选型顾问: 13922805190
;读取 32K 频率的低字节
LOOP:
END
7.4.9
读取 32K 掉电唤醒定时器的频率 (从 RAM 中读取)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
int
busy;
*F32K;
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
}
}
void UartInit()
{
SCON = 0x50;
TMOD = 0x00;
TL1 = BRT;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 150 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
TH1 = BRT >> 8;
TR1 = 1;
AUXR = 0x40;
busy = 0;
}
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
F32K = (int idata *)0xf8;
UartInit();
ES = 1;
EA = 1;
//读取 32K 频率的高字节
//读取 32K 频率的低字节
UartSend(*F32K >> 8);
UartSend(*F32K);
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
F32K
DATA
DATA
8EH
0F8H
BUSY
BIT
20H.0
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 151 -
STC8A8K64D4 系列技术手册
P5M0
官方网站: www.STCMCUDATA.com
DATA
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0023H
UART_ISR
ORG
0100H
JNB
CLR
CLR
TI,CHKRI
TI
BUSY
技术支持: 19864585985
选型顾问: 13922805190
UART_ISR:
CHKRI:
JNB
CLR
UARTISR_EXIT:
RETI
RI,UARTISR_EXIT
RI
UART_INIT:
MOV
MOV
MOV
MOV
SETB
MOV
CLR
RET
SCON,#50H
TMOD,#00H
TL1,#0E8H
TH1,#0FFH
TR1
AUXR,#40H
BUSY
JB
SETB
MOV
RET
BUSY,$
BUSY
SBUF,A
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
LCALL
SETB
SETB
UART_INIT
ES
EA
MOV
MOV
LCALL
INC
MOV
R0,#F32K
A,@R0
UART_SEND
R0
A,@R0
;65536-11059200/115200/4=0FFE8H
UART_SEND:
MAIN:
深圳国芯人工智能有限公司
;读取 32K 频率的高字节
;读取 32K 频率的低字节
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 152 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
LCALL
UART_SEND
JMP
LOOP
技术支持: 19864585985
选型顾问: 13922805190
LOOP:
END
7.4.10 用户自定义内部 IRC 频率 (从 CHIPID 中读取)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
CLKSEL
CLKDIV
#define
CPUIDBASE
0xfde0
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
ID_ADDR
VREF_ADDR
F32K_ADDR
T22M_ADDR
T24M_ADDR
T20M_ADDR
T27M_ADDR
T30M_ADDR
T33M_ADDR
T35M_ADDR
T36M_ADDR
T40M_ADDR
T45M_ADDR
VRT6M_ADDR
VRT10M_ADDR
VRT27M_ADDR
VRT44M_ADDR
((unsigned char volatile xdata *)(CPUIDBASE + 0x00))
(*(unsigned int volatile xdata *)(CPUIDBASE + 0x07))
(*(unsigned int volatile xdata *)(CPUIDBASE + 0x09))
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0b)) //22.1184MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0c)) //24MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0d)) //20MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0e)) //27MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x0f)) //30MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x10)) //33.1776MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x11)) //35MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x12)) //36.864MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x13)) //40MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x14)) //45MHz
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x15)) //VRTRIM_6M
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x16)) //VRTRIM_10M
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x17)) //VRTRIM_27M
(*(unsigned char volatile xdata *)(CPUIDBASE + 0x18)) //VRTRIM_44M
sfr
sfr
sfr
sfr
P_SW2
IRCBAND
IRTRIM
VRTRIM
=
=
=
=
0xba;
0x9d;
0x9f;
0xa6;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
深圳国芯人工智能有限公司
(*(unsigned char volatile xdata *)0xfe00)
(*(unsigned char volatile xdata *)0xfe01)
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 153 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//
//
//
//
//
//
//选择 20MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T20M_ADDR;
VRTRIM = VRT27M_ADDR;
IRCBAND = 0x02;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 22.1184MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T22M_ADDR;
VRTRIM = VRT27M_ADDR;
IRCBAND = 0x02;
CLKDIV = 0x00;
//选择 24MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T24M_ADDR;
VRTRIM = VRT27M_ADDR;
IRCBAND = 0x02;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 27MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T27M_ADDR;
VRTRIM = VRT27M_ADDR;
IRCBAND = 0x02;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 30MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T30M_ADDR;
VRTRIM = VRT27M_ADDR;
IRCBAND = 0x02;
CLKDIV = 0x00;
//
//
//
//选择 33.1776MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 154 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
//
//
//
//
IRTRIM = T33M_ADDR;
VRTRIM = VRT27M_ADDR;
IRCBAND = 0x02;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 35MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T35M_ADDR;
VRTRIM = VRT44M_ADDR;
IRCBAND = 0x03;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 40MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T40M_ADDR;
VRTRIM = VRT44M_ADDR;
IRCBAND = 0x03;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 45MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T45M_ADDR;
VRTRIM = VRT44M_ADDR;
IRCBAND = 0x03;
CLKDIV = 0x00;
技术支持: 19864585985
选型顾问: 13922805190
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
CPUIDBASE
EQU
0FDE0H
ID_ADDR
VREF_ADDR
F32K_ADDR
T22M_ADDR
T24M_ADDR
T20M_ADDR
T27M_ADDR
T30M_ADDR
T33M_ADDR
T35M_ADDR
T36M_ADDR
T40M_ADDR
T45M_ADDR
VRT6M_ADDR
VRT10M_ADDR
VRT27M_ADDR
VRT44M_ADDR
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
CPUIDBASE + 00H
CPUIDBASE + 07H
CPUIDBASE + 09H
CPUIDBASE + 0BH
CPUIDBASE + 0CH
CPUIDBASE + 0DH
CPUIDBASE + 0EH
CPUIDBASE + 0FH
CPUIDBASE + 10H
CPUIDBASE + 11H
CPUIDBASE + 12H
CPUIDBASE + 13H
CPUIDBASE + 14H
CPUIDBASE + 15H
CPUIDBASE + 16H
CPUIDBASE + 17H
CPUIDBASE + 18H
P_SW2
CLKSEL
CLKDIV
DATA
EQU
EQU
深圳国芯人工智能有限公司
;22.1184MHz
;24MHz
;20MHz
;27MHz
;30MHz
;33.1776MHz
;35MHz
;36.864MHz
;40MHz
;45MHz
;VRTRIM_6M
;VRTRIM_10M
;VRTRIM_27M
;VRTRIM_44M
0BAH
0FE00H
0FE01H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 155 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
IRCBAND
IRCTRIM
VRTRIM
DATA
DATA
DATA
09DH
09FH
0A6H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 20MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T20M_ADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT27M_ADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#02H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
;
;
;
;
;
;选择 22.1184MHz
MOV
P_SW2,#80H
MOV
A,#4
MOV
DPTR,#CLKDIV
MOV
DPTR,#T22M_ADDR
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 156 -
STC8A8K64D4 系列技术手册
;
;
;
;
;
;
;
;
;
;
;
官方网站: www.STCMCUDATA.com
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT27M_ADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#02H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
;选择 24MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T24M_ADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT27M_ADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#02H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 27MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T27M_ADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT27M_ADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#02H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 30MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T30M_ADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT27M_ADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#02H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
技术支持: 19864585985
选型顾问: 13922805190
传真: 0513-5501 2926/2956/2947
- 157 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
;
;
;
MOV
MOV
MOV
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 33.1776MHz
MOV
P_SW2,#80H
MOV
A,#4
MOV
DPTR,#CLKDIV
MOV
DPTR,#T33M_ADDR
CLR
A
MOVC
A,@A+DPTR
MOV
IRTRIM,A
MOV
DPTR,#VRT27M_ADDR
CLR
A
MOVC
A,@A+DPTR
MOV
VRTRIM,A
MOV
IRCBAND,#02H
MOV
A,#0
MOV
DPTR,#CLKDIV
MOV
P_SW2,#00H
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 35MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 36.864MHz
MOV
P_SW2,#80H
MOV
A,#4
MOV
DPTR,#CLKDIV
MOV
DPTR,#T36M_ADDR
CLR
A
MOVC
A,@A+DPTR
MOV
IRTRIM,A
MOV
DPTR,#VRT44M_ADDR
CLR
A
MOVC
A,@A+DPTR
MOV
VRTRIM,A
MOV
IRCBAND,#03H
MOV
A,#0
MOV
DPTR,#CLKDIV
MOV
P_SW2,#00H
;
;
;
;
;选择 40MHz
MOV
MOV
MOV
深圳国芯人工智能有限公司
技术支持: 19864585985
选型顾问: 13922805190
A,#0
DPTR,#CLKDIV
P_SW2,#00H
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T35M_ADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT44M_ADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#03H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
P_SW2,#80H
A,#4
DPTR,#CLKDIV
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 158 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
;
;
;
;
;
;
;
;
;
;
;
;
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
DPTR,#T40M_ADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT44M_ADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#03H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 45MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T36M_ADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT45M_ADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#03H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
END
7.4.11 用户自定义内部 IRC 频率 (从 Flash 程序存储器(ROM)中
读取)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
CLKSEL
CLKDIV
(*(unsigned char volatile xdata *)0xfe00)
(*(unsigned char volatile xdata *)0xfe01)
//下表为 STC8A8K60S4 的参数列表
#define
ID_ROMADDR
#define
VREF_ROMADDR
#define
F32K_ROMADDR
#define
T22M_ROMADDR
#define
T24M_ROMADDR
#define
T20M_ROMADDR
#define
T27M_ROMADDR
#define
T30M_ROMADDR
深圳国芯人工智能有限公司
((unsigned char code *)0xeff9)
(*(unsigned int code *)0xeff7)
(*(unsigned int code *)0xeff5)
(*(unsigned char code *)0xeff4)
(*(unsigned char code *)0xeff3)
(*(unsigned char code *)0xeff2)
(*(unsigned char code *)0xeff1)
(*(unsigned char code *)0xeff0)
//22.1184MHz
//24MHz
//20MHz
//27MHz
//30MHz
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 159 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
#define
#define
#define
#define
#define
T33M_ROMADDR
T35M_ROMADDR
T36M_ROMADDR
VRT20M_ROMADDR
VRT35M_ROMADDR
(*(unsigned char code *)0xefef)
(*(unsigned char code *)0xefee)
(*(unsigned char code *)0xefed)
(*(unsigned char code *)0xefea)
(*(unsigned char code *)0xefe9)
sfr
sfr
sfr
sfr
P_SW2
IRCBAND
IRTRIM
VRTRIM
=
=
=
=
0xba;
0x9d;
0x9f;
0xa6;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
技术支持: 19864585985
选型顾问: 13922805190
//33.1776MHz
//35MHz
//36.864MHz
//VRTRIM_20M
//VRTRIM_35M
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//
//
//
//
//
//
//选择 20MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T20M_ROMADDR;
VRTRIM = VRT20M_ROMADDR;
IRCBAND = 0x00;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 22.1184MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T22M_ROMADDR;
VRTRIM = VRT20M_ROMADDR;
IRCBAND = 0x00;
CLKDIV = 0x00;
//选择 24MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T24M_ROMADDR;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 160 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
VRTRIM = VRT20M_ROMADDR;
IRCBAND = 0x00;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 27MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T27M_ROMADDR;
VRTRIM = VRT35M_ROMADDR;
IRCBAND = 0x01;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 30MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T30M_ROMADDR;
VRTRIM = VRT35M_ROMADDR;
IRCBAND = 0x01;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 33.1776MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T33M_ROMADDR;
VRTRIM = VRT35M_ROMADDR;
IRCBAND = 0x01;
CLKDIV = 0x00;
//
//
//
//
//
//
//
//选择 35MHz
P_SW2 = 0x80;
CLKDIV = 0x04;
IRTRIM = T35M_ROMADDR;
VRTRIM = VRT35M_ROMADDR;
IRCBAND = 0x01;
CLKDIV = 0x00;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
;下表为 STC8A8K60S4 的参数列表
ID_ROMADDR
EQU
VREF_ROMADDR
EQU
F32K_ROMADDR
EQU
T22M_ROMADDR
EQU
T24M_ROMADDR
EQU
T20M_ROMADDR
EQU
T27M_ROMADDR
EQU
T30M_ROMADDR
EQU
T33M_ROMADDR
EQU
T35M_ROMADDR
EQU
T36M_ROMADDR
EQU
VRT20M_ROMADDR
EQU
VRT35M_ROMADDR
EQU
P_SW2
DATA
深圳国芯人工智能有限公司
0EFF9H
0EFF7H
0EFF5H
0EFF4H
0EFF3H
0EFF2H
0EFF1H
0EFF0H
0EFEFH
0EFEEH
0EFEDH
0EFEAH
0EFE9H
//22.1184MHz
//24MHz
//20MHz
//27MHz
//30MHz
//33.1776MHz
//35MHz
//36.864MHz
//VRTRIM_20M
//VRTRIM_35M
0BAH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 161 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
CLKSEL
CLKDIV
EQU
EQU
0FE00H
0FE01H
IRCBAND
IRCTRIM
VRTRIM
DATA
DATA
DATA
09DH
09FH
0A6H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 20MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T20M_ROMADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT20M_ROMADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#00H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
;
;
;
;选择 22.1184MHz
MOV
P_SW2,#80H
MOV
A,#4
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 162 -
STC8A8K64D4 系列技术手册
;
;
;
;
;
;
;
;
;
;
;
;
;
官方网站: www.STCMCUDATA.com
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
DPTR,#CLKDIV
DPTR,#T22M_ROMADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT20M_ROMADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#00H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
;选择 24MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T24M_ROMADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT20M_ROMADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#00H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 27MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T27M_ROMADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT35M_ROMADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#01H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
;
;
;
;
;
;
;
;
;
;
;
;选择 30MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T30M_ROMADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT35M_ROMADDR
A
A,@A+DPTR
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
技术支持: 19864585985
选型顾问: 13922805190
传真: 0513-5501 2926/2956/2947
- 163 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
;
;
;
;
;
MOV
MOV
MOV
MOV
MOV
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 33.1776MHz
MOV
P_SW2,#80H
MOV
A,#4
MOV
DPTR,#CLKDIV
MOV
DPTR,#T33M_ROMADDR
CLR
A
MOVC
A,@A+DPTR
MOV
IRTRIM,A
MOV
DPTR,#VRT35M_ROMADDR
CLR
A
MOVC
A,@A+DPTR
MOV
VRTRIM,A
MOV
IRCBAND,#01H
MOV
A,#0
MOV
DPTR,#CLKDIV
MOV
P_SW2,#00H
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 35MHz
MOV
MOV
MOV
MOV
CLR
MOVC
MOV
MOV
CLR
MOVC
MOV
MOV
MOV
MOV
MOV
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;选择 36.864MHz
MOV
P_SW2,#80H
MOV
A,#4
MOV
DPTR,#CLKDIV
MOV
DPTR,#T36M_ROMADDR
CLR
A
MOVC
A,@A+DPTR
MOV
IRTRIM,A
MOV
DPTR,#VRT35M_ROMADDR
CLR
A
MOVC
A,@A+DPTR
MOV
VRTRIM,A
MOV
IRCBAND,#01H
MOV
A,#0
MOV
DPTR,#CLKDIV
MOV
P_SW2,#00H
JMP
深圳国芯人工智能有限公司
技术支持: 19864585985
选型顾问: 13922805190
VRTRIM,A
IRCBAND,#01H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
P_SW2,#80H
A,#4
DPTR,#CLKDIV
DPTR,#T35M_ROMADDR
A
A,@A+DPTR
IRTRIM,A
DPTR,#VRT35M_ROMADDR
A
A,@A+DPTR
VRTRIM,A
IRCBAND,#01H
A,#0
DPTR,#CLKDIV
P_SW2,#00H
$
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 164 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
END
7.4.12 用户自定义内部 IRC 频率 (从 RAM 中读取)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
CLKDIV
(*(unsigned char volatile xdata *)0xfe01)
sfr
sfr
P_SW2
IRTRIM
=
=
0xba;
0x9f;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
char
char
*IRC22M;
*IRC24M;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
IRC22M = (char idata *)0xfa;
IRC24M = (char idata *) 0xfb;
IRTRIM = *IRC22M;
IRTRIM = *IRC24M;
P_SW2 = 0x80;
CLKDIV = 0;
P_SW2 = 0x00;
深圳国芯人工智能有限公司
//装载 22.1184MHz 的 IRC 参数
//装载 24MHz 的 IRC 参数
//主时钟不预分频
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 165 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
CLKDIV
DATA
EQU
0BAH
0FE01H
IRTRIM
DATA
09FH
IRC22M
IRC24M
DATA
DATA
0FAH
0FBH
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
R0,#IRC22M
IRTRIM,@R0
R0,#IRC24M
IRTRIM,@R0
MOV
MOV
MOV
MOVX
MOV
P_SW2,#80H
A,#0
DPTR,#CLKDIV
@DPTR,A
P_SW2,#00H
MAIN:
;
;
深圳国芯人工智能有限公司
;装载 22.1184MHz 的 IRC 参数
;装载 24MHz 的 IRC 参数
;主时钟不预分频
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 166 -
STC8A8K64D4 系列技术手册
JMP
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
$
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 167 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
8 特殊功能寄存器
8.1 STC8A8K64D4-64Pin/48Pin 系列
0/8
1/9
2/A
3/B
4/C
5/D
6/E
7/F
F8H
P7
CH
CCAP0H
CCAP1H
CCAL3H
-
-
RSTCFG
F0H
B
PWMSET
PCA_PWM0
PCA_PWM1
PCA_PWM2
IAP_TPS
PWMCFG
-
E8H
P6
CL
CCAP0L
CCAP1L
CCAL2L
-
IP3H
AUXINTIF
E0H
ACC
P7M1
P7M0
DPS
DPL1
DPH1
CMPCR1
CMPCR2
D8H
CCON
CMOD
CCAPM0
CCAPM1
CCAPM2
-
ADCCFG
IP3
D0H
PSW
T4T3M
TH4
TL4
TH3
TL3
T2H
T2L
C8H
P5
P5M1
P5M0
P6M1
P6M0
SPSTAT
SPCTL
SPDAT
C0H
P4
WDT_CONTR
IAP_DATA
IAP_ADDRH
IAP_ADDRL
IAP_CMD
IAP_TRIG
IAP_CONTR
B8H
IP
SADEN
P_SW2
-
ADC_CONTR
ADC_RES
ADC_RESL
-
B0H
P3
P3M1
P3M0
P4M1
P4M0
IP2
IP2H
IPH
A8H
IE
SADDR
WKTCL
WKTCH
S3CON
S3BUF
TA
IE2
A0H
P2
BUS_SPEED
P_SW1
-
-
-
-
-
98H
SCON
SBUF
S2CON
S2BUF
IRCBAND
LIRTRIM
IRTRIM
90H
P1
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
-
88H
TCON
TMOD
TL0
TL1
TH0
TH1
AUXR
INTCLKO
80H
P0
SP
DPL
DPH
S4CON
S4BUF
-
PCON
可位寻址
不可位寻址
注意:寄存器地址能够被 8 整除的才可进行位寻址,不能被 8 整除的则不可位寻址
0/8
1/9
2/A
3/B
4/C
5/D
FF48H
PWM7T1H
PWM7T1L
PWM7T2H
PWM7T2L
PWM7CR
PWM7HLD
FF40H
PWM6T1H
PWM6T1L
PWM6T2H
PWM6T2L
PWM6CR
PWM6HLD
FF38H
PWM5T1H
PWM5T1L
PWM5T2H
PWM5T2L
PWM5CR
PWM5HLD
FF30H
PWM4T1H
PWM4T1L
PWM4T2H
PWM4T2L
PWM4CR
PWM4HLD
FF28H
PWM3T1H
PWM3T1L
PWM3T2H
PWM3T2L
PWM1CR
PWM3HLD
FF20H
PWM2T1H
PWM2T1L
PWM2T2H
PWM2T2L
PWM2CR
PWM2HLD
FF18H
PWM1T1H
PWM1T1L
PWM1T2H
PWMT2L
PWM1CR
PWM1HLD
FF10H
PWM0T1H
PWM0T1L
PWM0T2H
PWM0T2L
PWM0CR
PWM0HLD
FF00H
PWMCH
PWMCL
PWMCKS
PWMTADCH
PWMTADCL
PWMIF
PWMFDCR
FEA8H
ADCTIM
ADCEXCFG
CMPEXCFG
I2CTxD
I2CRxD
FEA0H
TM2PS
TM3PS
TM4PS
6/E
7/F
FE88H
I2CMSAUX
FE80H
I2CCFG
I2CMSCR
I2CMSST
I2CSLCR
I2CSLST
I2CSLADR
FE50H
LCMIFCFG
LCMIFCFG2
LCMIFCR
LCMIFSTA
LCMIFDATL
LCMIFDATH
FE30H
P0IE
P1IE
P2IE
P3IE
P4IE
P5IE
P6IE
P7IE
FE28H
P0DR
P1DR
P2DR
P3DR
P4DR
P5DR
P6DR
P7DR
FE20H
P0SR
P1SR
P2SR
P3SR
P4SR
P5SR
P6SR
P7SR
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 168 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
FE18H
P0NCS
P1NCS
P2NCS
P3NCS
P4NCS
P5NCS
P6NCS
P7NCS
FE10H
P0PU
P1PU
P2PU
P3PU
P4PU
P5PU
P6PU
P7PU
FE00H
CLKSEL
CLKDIV
HIRCCR
XOSCCR
IRC32KCR
MCLKOCR
IRCDB
FDF8H
CHIPID24
CHIPID25
CHIPID26
CHIPID27
CHIPID28
CHIPID29
CHIPID30
CHIPID31
FDF0H
CHIPID16
CHIPID17
CHIPID18
CHIPID19
CHIPID20
CHIPID21
CHIPID22
CHIPID23
FDE8H
CHIPID8
CHIPID9
CHIPID10
CHIPID11
CHIPID12
CHIPID13
CHIPID14
CHIPID15
FDE0H
CHIPID0
CHIPID1
CHIPID2
CHIPID3
CHIPID4
CHIPID5
CHIPID6
CHIPID7
FD60H
PINIPL
PINIPH
CCAPM3
CCAP3L
CCAP3H
PCA_PWM3
FD50H
FD40H
P0WKUE
P1WKUE
P2WKUE
P3WKUE
P4WKUE
P5WKUE
P6WKUE
P7WKUE
FD30H
P0IM1
P1IM1
P2IM1
P3IM1
P4IM1
P5IM1
P6IM1
P7IM1
FD20H
P0IM0
P1IM0
P2IM0
P3IM0
P4IM0
P5IM0
P6IM0
P7IM0
FD10H
P0INTF
P1INTF
P2INTF
P3INTF
P4INTF
P5INTF
P6INTF
P7INTF
FD00H
P0INTE
P1INTE
P2INTE
P3INTE
P4INTE
P5INTE
P6INTE
P7INTE
FCF0H
MD3
MD2
MD1
MD0
MD5
MD4
ARCON
OPCON
BMM_LCM_CR
BMM_LCM_STA
BMM_LCM_AMT
BMM_LCM_DONE
FA78H BMM_LCM_RXAL
FA70H
BMM_LCM_CFG
FA68H
BMM_UR4R_CFG BMM_UR4R_CR BMM_UR4R_STA BMM_UR4R_AMT
BMM_UR4R_DONE BMM_UR4R_RXAH BMM_UR4R_RXAL
FA60H
BMM_UR4T_CFG BMM_UR4T_CR
BMM_UR4T_AMT
BMM_UR4T_DONE BMM_UR4T_TXAH BMM_UR4T_TXAL
FA58H
BMM_UR3R_CFG BMM_UR3R_CR BMM_UR3R_STA BMM_UR3R_AMT
BMM_UR3R_DONE BMM_UR3R_RXAH BMM_UR3R_RXAL
FA50H
BMM_UR3T_CFG BMM_UR3T_CR
BMM_UR3T_AMT
BMM_UR3T_DONE BMM_UR3T_TXAH BMM_UR3T_TXAL
FA48H
BMM_UR2R_CFG BMM_UR2R_CR BMM_UR2R_STA BMM_UR2R_AMT
BMM_UR2R_DONE BMM_UR2R_RXAH BMM_UR2R_RXAL
FA40H
BMM_UR2T_CFG BMM_UR2T_CR
BMM_UR2T_AMT
BMM_UR2T_DONE BMM_UR2T_TXAH BMM_UR2T_TXAL
FA38H
BMM_UR1R_CFG BMM_UR1R_CR BMM_UR1R_STA BMM_UR1R_AMT
BMM_UR1R_DONE BMM_UR1R_RXAH BMM_UR1R_RXAL
FA30H
BMM_UR1T_CFG BMM_UR1T_CR
BMM_UR1T_DONE BMM_UR1T_TXAH BMM_UR1T_TXAL
FA28H
BMM_SPI_RXAL BMM_SPI_CFG2
FA20H
BMM_SPI_CFG
BMM_SPI_CR
BMM_UR4T_STA
BMM_UR3T_STA
BMM_UR2T_STA
BMM_UR1T_STA
BMM_UR1T_AMT
BMM_SPI_STA
BMM_SPI_AMT
BMM_SPI_DONE
BMM_LCM_TXAH BMM_LCM_TXAL BMM_LCM_RXAH
BMM_SPI_TXAH
BMM_SPI_TXAL
BMM_SPI_RXAH
FA18H BMM_ADC_RXAL BMM_ADC_CFG2 BMM_ADC_CHSW0 BMM_ADC_CHSW1
FA10H
BMM_ADC_CFG
BMM_ADC_CR
BMM_ADC_STA
BMM_M2M_CFG BMM_M2M_CR
BMM_M2M_STA
BMM_ADC_RXAH
FA08H BMM_M2M_RXAL
FA00H
深圳国芯人工智能有限公司
BMM_M2M_AMT
BMM_M2M_DONE BMM_M2M_TXAH BMM_M2M_TXAL BMM_M2M_RXAH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 169 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
8.2 特殊功能寄存器列表
注意:寄存器地址能够被 8 整除的才可进行位寻址,不能被 8 整除的则不可位寻址。
STC8A8K64D4 系列能进行位寻址的寄存器:P0(80H)
、TCON(88H)、P1(90H)、SCON(98H)
、P2
(A0H)、IE(A8H)、P3(B0H)、IP(B8H)、P4(C0H)、P5(C8H)、PSW(D0H)、ACC(E0H)
、B
(F0H)
位地址与符号
符号
描述
复位值
地址
B7
B6
B5
B4
B3
B2
B1
B0
P07
P06
P05
P04
P03
P02
P01
P00
P0
P0 端口
80H
SP
堆栈指针
81H
0000,0111
DPL
数据指针(低字节)
82H
0000,0000
DPH
数据指针(高字节)
83H
0000,0000
S4CON
串口 4 控制寄存器
84H
S4BUF
串口 4 数据寄存器
85H
PCON
电源控制寄存器
87H
SMOD
SMOD0
LVDF
POF
GF1
GF0
PD
IDL
0011,0000
TCON
定时器控制寄存器
88H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
0000,0000
TMOD
定时器模式寄存器
89H
GATE
C/T
M1
M0
GATE
C/T
M1
M0
0000,0000
TL0
定时器 0 低 8 位寄存器
8AH
0000,0000
TL1
定时器 1 低 8 位寄存器
8BH
0000,0000
TH0
定时器 0 高 8 位寄存器
8CH
0000,0000
TH1
定时器 1 高 8 位寄存器
8DH
0000,0000
辅助寄存器 1
8EH
T0x12
T1x12
UART_M0x6
T2R
T2_C/T
T2x12
EXTRAM
S1ST2
0000,0001
中断与时钟输出控制
8FH
-
EX4
EX3
EX2
-
T2CLKO
T1CLKO
T0CLKO
x000,x000
P1 端口
90H
P17
P16
P15
P14
P13
P12
P11
P10
1111,1111
P1M1
P1 口配置寄存器 1
91H
P17M1
P16M1
P15M1
P14M1
P13M1
P12M1
P11M1
P10M1
1111,1111
P1M0
P1 口配置寄存器 0
92H
P17M0
P16M0
P15M0
P14M0
P13M0
P12M0
P11M0
P10M0
0000,0000
P0M1
P0 口配置寄存器 1
93H
P07M1
P06M1
P05M1
P04M1
P03M1
P02M1
P01M1
P00M1
1111,1111
P0M0
P0 口配置寄存器 0
94H
P07M0
P06M0
P05M0
P04M0
P03M0
P02M0
P01M0
P00M0
0000,0000
P2M1
P2 口配置寄存器 1
95H
P27M1
P26M1
P25M1
P24M1
P23M1
P22M1
P21M1
P20M1
1111,1111
P2M0
P2 口配置寄存器 0
96H
P27M0
P26M0
P25M0
P24M0
P23M0
P22M0
P21M0
P20M0
0000,0000
SCON
串口 1 控制寄存器
98H
SM0/FE
SM1
SM2
REN
TB8
RB8
TI
RI
0000,0000
SBUF
串口 1 数据寄存器
99H
S2CON
串口 2 控制寄存器
9AH
S2BUF
串口 2 数据寄存器
9BH
IRCBAND
IRC 频段选择检测
9DH
-
-
-
-
-
-
LIRTRIM
IRC 频率微调寄存器
9EH
-
-
-
-
-
-
IRTRIM
IRC 频率调整寄存器
9FH
P2 端口
A0H
AUXR
INTCLKO
P1
P2
BUS_SPEED
总线速度控制寄存器
S4SM0
S4ST4
S4SM2
S4REN
S4TB8
S4RB8
S4TI
1111,1111
S4RI
0000,0000
0000,0000
0000,0000
S2SM0
-
S2SM2
S2REN
S2TB8
S2RB8
S2TI
S2RI
0x00,0000
0000,0000
SEL[1:0]
xxxx,xxnn
LIRTRIM
IRTRIM[7:0]
P27
P26
xxxx,xxxn
nnnn,nnnn
P25
P24
P23
-
-
-
P22
P21
P20
1111,1111
A1H
RW_S[1:0]
外设端口切换寄存器 1
A2H
S1_S[1:0]
中断允许寄存器
A8H
SADDR
串口 1 从机地址寄存器
A9H
0000,0000
WKTCL
掉电唤醒定时器低字节
AAH
1111,1111
P_SW1
IE
深圳国芯人工智能有限公司
EA
ELVD
CCP_S[1:0]
EADC
国内分销商电话: 0513-5501 2928/2929/2966
ES
SPEED[2:0]
SPI_S[1:0]
ET1
EX1
00xx,x000
0
-
nn00,000x
ET0
EX0
00x0,0000
传真: 0513-5501 2926/2956/2947
- 170 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
WKTCH
掉电唤醒定时器高字节
ABH
WKTEN
S3CON
串口 3 控制寄存器
ACH
S3SM0
S3BUF
串口 3 数据寄存器
ADH
0000,0000
TA
DPTR 时序控制寄存器
AEH
0000,0000
IE2
中断允许寄存器 2
AFH
-
ET4
ET3
ES4
ES3
ET2
ESPI
ES2
x000,0000
P3
P3 端口
B0H
P37
P36
P35
P34
P33
P32
P31
P30
1111,1111
P3M1
P3 口配置寄存器 1
B1H
P37M1
P36M1
P35M1
P34M1
P33M1
P32M1
P31M1
P30M1
1111,1100
P3M0
P3 口配置寄存器 0
B2H
P37M0
P36M0
P35M0
P34M0
P33M0
P32M0
P31M0
P30M0
0000,0000
P4M1
P4 口配置寄存器 1
B3H
P47M1
P46M1
P45M1
P44M1
P43M1
P42M1
P41M1
P40M1
1111,1111
P4M0
P4 口配置寄存器 0
B4H
P47M0
P46M0
P45M0
P44M0
P43M0
P42M0
P41M0
P40M0
0000,0000
中断优先级控制寄存器 2
B5H
-
PI2C
PCMP
PX4
PPWMFD
PPWM
PSPI
PS2
x000,0000
IP2H
高中断优先级控制寄存器 2 B6H
-
PI2CH
PCMPH
PX4H
PPWMFDH
PPWMH
PSPIH
PS2H
x000,0000
IPH
高中断优先级控制寄存器
B7H
PPCAH
PLVDH
PADCH
PSH
PT1H
PX1H
PT0H
PX0H
0000,0000
中断优先级控制寄存器
B8H
PPCA
PLVD
PADC
PS
PT1
PX1
PT0
PX0
0000,0000
IP2
IP
0111,1111
S3ST4
S3SM2
SADEN
串口 1 从机地址屏蔽寄存器 B9H
P_SW2
外设端口切换寄存器 2
BAH
EAXFR
-
P4 端口
C0H
P47
P46
P45
C1H
WDT_FLAG
-
EN_WDT
P4
WDT_CONTR 看门狗控制寄存器
IAP_DATA
IAP 数据寄存器
S3REN
S3TB8
S3RB8
S3TI
S3RI
0000,0000
0000,0000
I2C_S[1:0]
CMPO_S
S4_S
S3_S
S2_S
0x00,0000
P44
P43
P42
P41
P40
1111,1111
CLR_WDT
IDL_WDT
WDT_PS[2:0]
0xn0,nnnn
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
IAPEN
SWBS
SWRST
CMD_FAIL
-
-
-
-
0000,xxxx
P5 端口
C8H
-
-
P55
P54
P53
P52
P51
P50
xx11,0000
P5M1
P5 口配置寄存器 1
C9H
-
-
P55M1
P54M1
P53M1
P52M1
P51M1
P50M1
xx11,1111
P5M0
P5 口配置寄存器 0
CAH
-
-
P55M0
P54M0
P53M0
P52M0
P51M0
P50M0
P5
-
-
-
-
-
-
CMD[1:0]
xxxx,xx00
0000,0000
xx00,
0000
P6M1
P6 口配置寄存器 1
CBH
P65M1
P64M1
P65M1
P64M1
P63M1
P62M1
P61M1
P60M1
1111,1111
P6M0
P6 口配置寄存器 0
CCH
P65M0
P64M0
P65M0
P64M0
P63M0
P62M0
P61M0
P60M0
0000,0000
SPSTAT
SPI 状态寄存器
CDH
SPIF
WCOL
-
-
-
-
-
-
00xx,xxxx
SPCTL
SPI 控制寄存器
CEH
SSIG
SPEN
DORD
MSTR
CPOL
CPHA
SPDAT
SPI 数据寄存器
CFH
程序状态字寄存器
D0H
CY
AC
F0
RS1
RS0
OV
F1
P
0000,0000
定时器 4/3 控制寄存器
D1H
T4R
T4_C/T
T4x12
T4CLKO
T3R
T3_C/T
T3x12
T3CLKO
0000,0000
T4H
定时器 4 高字节
D2H
0000,0000
T4L
定时器 4 低字节
D3H
0000,0000
T3H
定时器 3 高字节
D4H
0000,0000
T3L
定时器 3 低字节
D5H
0000,0000
T2H
定时器 2 高字节
D6H
0000,0000
T2L
定时器 2 低字节
D7H
0000,0000
CCON
PCA 控制寄存器
D8H
CF
CR
-
-
CMOD
PCA 模式寄存器
D9H
CIDL
-
-
-
PCA 模块 0 控制寄存器
DAH
-
ECOM0
CCAPP0
CCAPN0
PSW
T4T3M
CCAPM0
深圳国芯人工智能有限公司
SPR[1:0]
0000,0100
0000,0000
国内分销商电话: 0513-5501 2928/2929/2966
CCF3
CCF2
CCF1
CPS[2:0]
MAT0
TOG0
PWM0
传真: 0513-5501 2926/2956/2947
CCF0
00xx,0000
ECF
0xxx,0000
ECCF0
x000,0000
- 171 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
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
ADCCFG
ADC 配置寄存器
DEH
-
-
RESFMT
-
中断优先级控制寄存器 3
DFH
-
-
-
-
ACC
累加器
E0H
P7M1
P7 口配置寄存器 1
E1H
P75M1
P74M1
P75M1
P74M1
P73M1
P72M1
P71M1
P70M1
1111,1111
P7M0
P7 口配置寄存器 0
E2H
P75M0
P74M0
P75M0
P74M0
P73M0
P72M0
P71M0
P70M0
0000,0000
DPS
DPTR 指针选择器
E3H
ID1
ID0
TSL
AU1
AU0
-
-
SEL
0000,0xx0
DPL1
第二组数据指针(低字节) E4H
0000,0000
DPH1
第二组数据指针(高字节) E5H
0000,0000
IP3
SPEED[3:0]
-
-
xx0x,0000
PS4
PS3
xxxx,xx00
0000,0000
CMPCR1
比较器控制寄存器 1
E6H
CMPEN
CMPIF
CMPCR2
比较器控制寄存器 2
E7H
INVCMPO
DISFLT
P6
P6 端口
E8H
P67
P66
CL
PCA 计数器低字节
E9H
0000,0000
CCAP0L
PCA 模块 0 低字节
EAH
0000,0000
CCAP1L
PCA 模块 1 低字节
EBH
0000,0000
CCAP2L
PCA 模块 2 低字节
ECH
0000,0000
IP3H
AUXINTIF
B
PWMSET
PIE
NIE
-
-
CMPOE
CMPRES
LCDTY[5:0]
P65
P64
P63
0000,xx00
0000,0000
P62
P61
P60
1111,1111
高中断优先级控制寄存器 3 EEH
-
-
-
-
-
-
PS4H
PS3H
xxxx,xx00
扩展外部中断标志寄存器
EFH
-
INT4IF
INT3IF
INT2IF
-
T4IF
T3IF
T2IF
x000,x000
B 寄存器
F0H
增强型 PWM 全局配置
F1H
0000,0000
-
PWMRST
-
-
-
-
-
ENPWM
x0xx,xxx0
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
IAP_TPS
IAP 等待时间控制寄存器
F5H
-
-
PWMCFG
增强型 PWM 配置寄存器
F6H
-
-
-
-
PWMCBIF
EPWMCBI
ENPWMTA
PWMCEN
xxxx,0000
P7
P7 端口
F8H
P77
P76
P75
P74
P73
P72
P71
P70
1111,1111
CH
PCA 计数器高字节
F9H
0000,0000
CCAP0H
PCA 模块 0 高字节
FAH
0000,0000
CCAP1H
PCA 模块 1 高字节
FBH
0000,0000
CCAP2H
PCA 模块 2 高字节
FCH
0000,0000
RSTCFG
复位配置寄存器
FFH
-
IAPTPS[5:0]
ENLVR
-
P54RST
-
xx00,0000
-
LVDS[1:0]
xnxn,xxnn
下列特殊功能寄存器为扩展 SFR,逻辑地址位于 XDATA 区域,访问前需要将 P_SW2(BAH)寄存
器的最高位(EAXFR)置 1,然后使用 MOVX A,@DPTR 和 MOVX @DPTR,A 指令进行访问
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
-
-
-
-
-
-
CLKSEL
时钟选择寄存器
FE00H
CLKDIV
时钟分频寄存器
FE01H
HIRCCR
内部高速振荡器控制寄存器
FE02H
ENHIRC
-
XOSCCR
外部晶振控制寄存器
FE03H
ENXOSC
XITYPE
IRC32KCR 内部 32K 振荡器控制寄存器
FE04H
ENIRC32K
-
MCLKOCR 主时钟输出控制寄存器
FE05H
MCLKO_S
深圳国芯人工智能有限公司
B1
B0
MCKSEL[1:0]
xxxx,xx00
nnnn,nnnn
-
-
XCFILTER[1:0]
-
国内分销商电话: 0513-5501 2928/2929/2966
-
-
-
-
HIRCST
NMXCG
-
-
XOSCST 0000,0xx0
-
-
-
IRC32KST 0xxx,xxx0
MCLKODIV[6:0]
传真: 0513-5501 2926/2956/2947
1xxx,xxx0
0000,0000
- 172 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
IRCDB
内部高速振荡器去抖控制
FE06H
P0PU
P0 口上拉电阻控制寄存器
FE10H
P07PU
P06PU
P05PU
P04PU
P03PU
P02PU
P01PU
P00PU
0000,0000
P1PU
P1 口上拉电阻控制寄存器
FE11H
P17PU
P16PU
P15PU
P14PU
P13PU
P12PU
P11PU
P10PU
0000,0000
P2PU
P2 口上拉电阻控制寄存器
FE12H
P27PU
P26PU
P25PU
P24PU
P23PU
P22PU
P21PU
P20PU
0000,0000
P3PU
P3 口上拉电阻控制寄存器
FE13H
P37PU
P36PU
P35PU
P34PU
P33PU
P32PU
P31PU
P30PU
0000,0000
P4PU
P4 口上拉电阻控制寄存器
FE14H
P47PU
P46PU
P45PU
P44PU
P43PU
P42PU
P41PU
P40PU
0000,0000
P5PU
P5 口上拉电阻控制寄存器
FE15H
-
-
P55PU
P54PU
P53PU
P52PU
P51PU
P50PU
xx00,0000
P6PU
P6 口上拉电阻控制寄存器
FE16H
P67PU
P66PU
P65PU
P64PU
P63PU
P62PU
P61PU
P60PU
0000,0000
P7PU
P7 口上拉电阻控制寄存器
FE17H
P77PU
P76PU
P75PU
P74PU
P73PU
P72PU
P71PU
P70PU
0000,0000
P0NCS
P0 口施密特触发控制寄存器
FE18H
P07NCS
P06NCS
P05NCS
P04NCS
P03NCS P02NCS P01NCS P00NCS 0000,0000
P1NCS
P1 口施密特触发控制寄存器
FE19H
P17NCS
P16NCS
P15NCS
P14NCS
P13NCS P12NCS P11NCS P10NCS 0000,0000
P2NCS
P2 口施密特触发控制寄存器
FE1AH
P27NCS
P26NCS
P25NCS
P24NCS
P23NCS P22NCS P21NCS P20NCS 0000,0000
P3NCS
P3 口施密特触发控制寄存器
FE1BH
P37NCS
P36NCS
P35NCS
P34NCS
P33NCS P32NCS P31NCS P30NCS 0000,0000
P4NCS
P4 口施密特触发控制寄存器
FE1CH
P47NCS
P46NCS
P45NCS
P44NCS
P43NCS P42NCS P41NCS P40NCS 0000,0000
P5NCS
P5 口施密特触发控制寄存器
FE1DH
-
-
P55NCS
P54NCS
P53NCS P52NCS P51NCS P50NCS xx00,0000
P6NCS
P6 口施密特触发控制寄存器
FE1EH
P67NCS
P66NCS
P65NCS
P64NCS
P63NCS P62NCS P61NCS P60NCS 0000,0000
P7NCS
P7 口施密特触发控制寄存器
FE1FH
P77NCS
P76NCS
P75NCS
P74NCS
P73NCS P72NCS P71NCS P70NCS 0000,0000
P0SR
P0 口电平转换速率寄存器
FE20H
P07SR
P06SR
P05SR
P04SR
P03SR
P02SR
P01SR
P00SR
1111,1111
P1SR
P1 口电平转换速率寄存器
FE21H
P17SR
P16SR
P15SR
P14SR
P13SR
P12SR
P11SR
P10SR
1111,1111
P2SR
P2 口电平转换速率寄存器
FE22H
P27SR
P26SR
P25SR
P24SR
P23SR
P22SR
P21SR
P20SR
1111,1111
P3SR
P3 口电平转换速率寄存器
FE23H
P37SR
P36SR
P35SR
P34SR
P33SR
P32SR
P31SR
P30SR
1111,1111
P4SR
P4 口电平转换速率寄存器
FE24H
P47SR
P46SR
P45SR
P44SR
P43SR
P42SR
P41SR
P40SR
1111,1111
P5SR
P5 口电平转换速率寄存器
FE25H
-
-
P55SR
P54SR
P53SR
P52SR
P51SR
P50SR
xx11,1111
P6SR
P6 口电平转换速率寄存器
FE26H
P57SR
P66SR
P65SR
P64SR
P63SR
P62SR
P61SR
P60SR
1111,1111
P7SR
P7 口电平转换速率寄存器
FE27H
P77SR
P76SR
P75SR
P74SR
P73SR
P72SR
P71SR
P70SR
1111,1111
P0DR
P0 口驱动电流控制寄存器
FE28H
P07DR
P06DR
P05DR
P04DR
P03DR
P02DR
P01DR
P00DR
1111,1111
P1DR
P1 口驱动电流控制寄存器
FE29H
P17DR
P16DR
P15DR
P14DR
P13DR
P12DR
P11DR
P10DR
1111,1111
P2DR
P2 口驱动电流控制寄存器
FE2AH
P27DR
P26DR
P25DR
P24DR
P23DR
P22DR
P21DR
P20DR
1111,1111
P3DR
P3 口驱动电流控制寄存器
FE2BH
P37DR
P36DR
P35DR
P34DR
P33DR
P32DR
P31DR
P30DR
1111,1111
P4DR
P4 口驱动电流控制寄存器
FE2CH
P47DR
P46DR
P45DR
P44DR
P43DR
P42DR
P41DR
P40DR
1111,1111
P5DR
P5 口驱动电流控制寄存器
FE2DH
-
-
P55DR
P54DR
P53DR
P52DR
P51DR
P50DR
xx11,1111
P6DR
P6 口驱动电流控制寄存器
FE2EH
P67DR
P66DR
P65DR
P64DR
P63DR
P62DR
P61DR
P60DR
1111,1111
P7DR
P7 口驱动电流控制寄存器
FE2FH
P77DR
P76DR
P75DR
P74DR
P73DR
P72DR
P71DR
P70DR
1111,1111
P0IE
P0 口输入使能控制寄存器
FE30H
P07IE
P06IE
P05IE
P04IE
P03IE
P02IE
P01IE
P00IE
1111,1111
P1IE
P1 口输入使能控制寄存器
FE31H
P17IE
P16IE
P15IE
P14IE
P13IE
P12IE
P11IE
P10IE
1111,1111
P2IE
P2 口输入使能控制寄存器
FE32H
P27IE
P26IE
P25IE
P24IE
P23IE
P22IE
P21IE
P20IE
1111,1111
P3IE
P3 口输入使能控制寄存器
FE33H
P37IE
P36IE
P35IE
P34IE
P33IE
P32IE
P31IE
P30IE
1111,1111
P4IE
P4 口输入使能控制寄存器
FE34H
P47IE
P46IE
P45IE
P44IE
P43IE
P42IE
P41IE
P40IE
1111,1111
P5IE
P5 口输入使能控制寄存器
FE35H
-
-
P55IE
P54IE
P53IE
P52IE
P51IE
P50IE
xx11,1111
P6IE
P6 口输入使能控制寄存器
FE36H
P67IE
P66IE
P65IE
P64IE
P63IE
P62IE
P61IE
P60IE
1111,1111
P7IE
P7 口输入使能控制寄存器
FE37H
P77IE
P76IE
P75IE
P74IE
P73IE
P72IE
P71IE
P70IE
1111,1111
LCMIFCFG LCM 接口配置寄存器
FE50H
LCMIFIE
-
LCMIFCFG2 LCM 接口配置寄存器 2
FE51H
-
LCMIFCR
LCM 接口控制寄存器
深圳国芯人工智能有限公司
1000,0000
IRCDB_PAR[7:0]
FE52H ENLCMIF
LCMIFIP[1:0]
LCMIFCPS[1:0]
-
-
国内分销商电话: 0513-5501 2928/2929/2966
LCMIFDPS[1:0] D16_D8 M68_I80 0x00,0000
SETUPT[2:0]
-
-
HOLDT[1:0]
CMD[2:0]
传真: 0513-5501 2926/2956/2947
x000,0000
0xxx,x000
- 173 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
LCMIFSTA LCM 接口状态寄存器
FE53H
LCMIDDATL LCM 接口低字节数据
FE54H
LCMIFDAT[7:0]
0000,0000
LCMIDDATH LCM 接口高字节数据
FE55H
LCMIFDAT[15:8]
0000,0000
-
-
-
-
-
-
-
LCMIFIF xxxx,xxx0
I C 配置寄存器
FE80H
ENI2C
MSSL
I2CMSCR
I C 主机控制寄存器
FE81H
EMSI
-
-
-
I2CMSST
I C 主机状态寄存器
FE82H
MSBUSY
MSIF
-
-
-
-
I2CSLCR
I C 从机控制寄存器
FE83H
-
ESTAI
ERXI
ETXI
ESTOI
-
-
I2CSLST
I C 从机状态寄存器
FE84H
SLBUSY
STAIF
RXIF
TXIF
STOIF
TXING
SLACKI
I2CSLADR I C 从机地址寄存器
FE85H
I2CTXD
I C 数据发送寄存器
FE86H
0000,0000
I2CRXD
I C 数据接收寄存器
FE87H
0000,0000
I2CCFG
2
2
2
2
2
2
2
2
I2CMSAUX I C 主机辅助控制寄存器
2
FE88H
MSSPEED[6:1]
0000,0000
MSCMD[3:0]
0xxx,0000
MSACKI MSACKO 00xx,xx00
SLRST
SLACKO 0000,0000
I2CSLADR[7:1]
-
-
-
-
MA
-
-
-
x000,0xx0
WDTA
0000,0000
xxxx,xxx0
TM2PS
定时器 2 时钟预分频寄存器
FEA2H
0000,0000
TM3PS
定时器 3 时钟预分频寄存器
FEA3H
0000,0000
TM4PS
定时器 4 时钟预分频寄存器
FEA4H
0000,0000
ADC 时序控制寄存器
FEA8H
CSSETUP
ADCEXCFG ADC 扩展配置寄存器
FEADH
-
CMPEXCFG 比较器扩展配置寄存器
FEAEH
ADCTIM
CHYS[1:0]
PWMCH
PWM0 计数器高字节
FF00H
PWMCL
PWM0 计数器低字节
FF01H
PWM0 时钟选择
FF02H
-
PWMTADCH PWM0 触发 ADC 计数高字节 FF03H
-
PWMCKS
CSHOLD[1:0]
0010,1010
SMPDUTY[4:0]
ADCETRS [1:0]
-
-
-
-
CVTIMESEL[2:0]
CMPNS
CMPPS[1:0]
-
PWM0 中断标志寄存器
00xx,x000
x000,0000
0000,0000
-
-
SELT2
PWM_PS[3:0]
xxx0,0000
x000,0000
PWMTADCL PWM0 触发 ADC 计数低字节 FF04H
PWMIF
xx00,x000
0000,0000
FF05H
C7IF
C6IF
C5IF
C4IF
C3IF
C2IF
C1IF
C0IF
0000,0000
PWMFDCR PWM0 异常检测控制寄存器
FF06H
INVCMP
INVIO
ENFD
FLTFLIO
EFDI
FDCMP
FDIO
FDIF
0000,0000
PWM0T1H PWM00T1 计数值高字节
FF10H
-
PWM00T1 计数值低字节
FF11H
PWM0T2H PWM00T2 计数值高字节
FF12H
PWM0T2L
PWM00T2 计数值低字节
FF13H
PWM0CR
PWM00 控制寄存器
FF14H
ENO
INI
-
PWM0HLD PWM00 电平保持控制寄存器
FF15H
-
-
-
PWM1T1H PWM01T1 计数值高字节
FF18H
-
PWM01T1 计数值低字节
FF19H
PWM1T2H PWM01T2 计数值高字节
FF1AH
PWM1T2L
PWM01T2 计数值低字节
FF1BH
PWM1CR
PWM01 控制寄存器
FF1CH
PWM0T1L
PWM1T1L
x000,0000
0000,0000
-
x000,0000
0000,0000
-
ENT2I
ENT1I
00x0,0000
-
HLDH
HLDL
xxxx,xx00
0000,0000
-
x000,0000
0000,0000
INI
-
PWM1HLD PWM01 电平保持控制寄存器 FF1DH
-
-
-
PWM2T1H PWM02T1 计数值高字节
FF20H
-
PWM02T1 计数值低字节
FF21H
PWM2T2H PWM02T2 计数值高字节
FF22H
PWM2T2L
PWM02T2 计数值低字节
FF23H
PWM2CR
PWM02 控制寄存器
FF24H
ENO
INI
-
PWM2HLD PWM02 电平保持控制寄存器
FF25H
-
-
-
PWM3T1H PWM03T1 计数值高字节
FF28H
-
深圳国芯人工智能有限公司
-
ENI
x000,0000
ENO
PWM2T1L
PWM0PS[1:0]
PWMPS[1:0]
-
-
ENI
ENT2I
ENT1I
00x0,0000
-
HLDH
HLDL
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
国内分销商电话: 0513-5501 2928/2929/2966
PWM2PS[1:0]
-
-
ENI
ENT2I
ENT1I
00x0,0000
-
HLDH
HLDL
xxxx,xx00
x000,0000
传真: 0513-5501 2926/2956/2947
- 174 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
PWM03T1 计数值低字节
FF29H
PWM3T2H PWM03T2 计数值高字节
FF2AH
PWM3T2L
PWM03T2 计数值低字节
FF2BH
PWM3CR
PWM03 控制寄存器
FF2CH
PWM3T1L
技术支持: 19864585985
0000,0000
-
x000,0000
0000,0000
ENO
INI
-
PWM3HLD PWM03 电平保持控制寄存器 FF2DH
-
-
-
PWM4T1H PWM04T1 计数值高字节
FF30H
-
PWM04T1 计数值低字节
FF31H
PWM4T2H PWM04T2 计数值高字节
FF32H
PWM4T2L
PWM04T2 计数值低字节
FF33H
PWM4CR
PWM04 控制寄存器
FF34H
ENO
INI
-
PWM4HLD PWM04 电平保持控制寄存器
FF35H
-
-
-
PWM5T1H PWM05T1 计数值高字节
FF38H
-
PWM05T1 计数值低字节
FF39H
PWM5T2H PWM05T2 计数值高字节
FF3AH
PWM5T2L
PWM05T2 计数值低字节
FF3BH
PWM5CR
PWM05 控制寄存器
FF3CH
PWM4T1L
PWM5T1L
-
ENT2I
ENT1I
00x0,0000
-
HLDH
HLDL
xxxx,xx00
-
x000,0000
0000,0000
PWM4PS[1:0]
-
-
ENI
ENT2I
ENT1I
00x0,0000
-
HLDH
HLDL
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
-
PWM5HLD PWM05 电平保持控制寄存器 FF3DH
-
-
-
PWM6T1H PWM06T1 计数值高字节
FF40H
-
PWM06T1 计数值低字节
FF41H
PWM6T2H PWM06T2 计数值高字节
FF42H
PWM6T2L
PWM06T2 计数值低字节
FF43H
PWM6CR
PWM06 控制寄存器
FF44H
ENO
INI
-
PWM6HLD PWM06 电平保持控制寄存器
FF45H
-
-
-
PWM7T1H PWM07T1 计数值高字节
FF48H
-
PWM07T1 计数值低字节
FF49H
PWM7T2H PWM07T2 计数值高字节
FF4AH
PWM7T2L
PWM07T2 计数值低字节
FF4BH
PWM7CR
PWM07 控制寄存器
FF4CH
PWM7HLD PWM07 电平保持控制寄存器 FF4DH
-
ENI
0000,0000
INI
PWM7T1L
PWM3PS[1:0]
x000,0000
ENO
PWM6T1L
选型顾问: 13922805190
PWM5PS[1:0]
-
-
ENI
ENT2I
ENT1I
00x0,0000
-
HLDH
HLDL
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
PWM6PS[1:0]
-
-
ENI
ENT2I
ENT1I
00x0,0000
-
HLDH
HLDL
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
ENO
INI
-
-
-
-
PWM7PS[1:0]
-
-
ENI
ENT2I
ENT1I
00x0,0000
-
HLDH
HLDL
xxxx,xx00
MD3
MDU 数据寄存器
FCF0H
MD3[7:0]
0000,0000
MD2
MDU 数据寄存器
FCF1H
MD2[7:0]
0000,0000
MD1
MDU 数据寄存器
FCF2H
MD1[7:0]
0000,0000
MD0
MDU 数据寄存器
FCF3H
MD0[7:0]
0000,0000
MD5
MDU 数据寄存器
FCF4H
MD5[7:0]
0000,0000
MD4
MDU 数据寄存器
FCF5H
MD4[7:0]
0000,0000
ARCON
MDU 模式控制寄存器
FCF6H
OPCON
MDU 操作控制寄存器
FCF7H
-
MDOV
-
-
-
-
RST
P0INTE
P0 口中断使能寄存器
FD00H
P07INTE
P06INTE
P05INTE
P04INTE
P03INTE
P02INTE
P01INTE
P00INTE 0000,0000
P1INTE
P1 口中断使能寄存器
FD01H
P17INTE
P16INTE
P15INTE
P14INTE
P13INTE
P12INTE
P11INTE
P10INTE 0000,0000
P2INTE
P2 口中断使能寄存器
FD02H
P27INTE
P26INTE
P25INTE
P24INTE
P23INTE
P22INTE
P21INTE
P20INTE 0000,0000
P3INTE
P3 口中断使能寄存器
FD03H
P37INTE
P36INTE
P35INTE
P34INTE
P33INTE
P32INTE
P31INTE
P30INTE 0000,0000
P4INTE
P4 口中断使能寄存器
FD04H
P47INTE
P46INTE
P45INTE
P44INTE
P43INTE
P42INTE
P41INTE
P40INTE 0000,0000
P5INTE
P5 口中断使能寄存器
FD05H
-
-
P55INTE
P54INTE
P53INTE
P52INTE
P51INTE
P50INTE xx00,0000
P6INTE
P6 口中断使能寄存器
FD06H
P67INTE
P66INTE
P65INTE
P64INTE
P63INTE
P62INTE
P61INTE
P60INTE 0000,0000
深圳国芯人工智能有限公司
MODE[2:0]
SC[4:0]
国内分销商电话: 0513-5501 2928/2929/2966
0000,0000
ENOP
传真: 0513-5501 2926/2956/2947
0000,0000
- 175 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P7INTE
P7 口中断使能寄存器
FD07H
P77INTE
P76INTE
P75INTE
P74INTE
P73INTE
P72INTE
P71INTE
P70INTE 0000,0000
P0INTF
P0 口中断标志寄存器
FD10H
P07INTF
P06INTF
P05INTF
P04INTF
P03INTF
P02INTF
P01INTF
P00INTF 0000,0000
P1INTF
P1 口中断标志寄存器
FD11H
P17INTF
P16INTF
P15INTF
P14INTF
P13INTF
P12INTF
P11INTF
P10INTF 0000,0000
P2INTF
P2 口中断标志寄存器
FD12H
P27INTF
P26INTF
P25INTF
P24INTF
P23INTF
P22INTF
P21INTF
P20INTF 0000,0000
P3INTF
P3 口中断标志寄存器
FD13H
P37INTF
P36INTF
P35INTF
P34INTF
P33INTF
P32INTF
P31INTF
P30INTF 0000,0000
P4INTF
P4 口中断标志寄存器
FD14H
P47INTF
P46INTF
P45INTF
P44INTF
P43INTF
P42INTF
P41INTF
P40INTF 0000,0000
P5INTF
P5 口中断标志寄存器
FD15H
-
-
P55INTF
P54INTF
P53INTF
P52INTF
P51INTF
P50INTF xx00,0000
P6INTF
P6 口中断标志寄存器
FD16H
P67INTF
P66INTF
P65INTF
P64INTF
P63INTF
P62INTF
P61INTF
P60INTF 0000,0000
P7INTF
P7 口中断标志寄存器
FD17H
P77INTF
P76INTF
P75INTF
P74INTF
P73INTF
P72INTF
P71INTF
P70INTF 0000,0000
P0IM0
P0 口中断模式寄存器 0
FD20H
P07IM0
P06IM0
P05IM0
P04IM0
P03IM0
P02IM0
P01IM0
P00IM0
0000,0000
P1IM0
P1 口中断模式寄存器 0
FD21H
P17IM0
P16IM0
P15IM0
P14IM0
P13IM0
P12IM0
P11IM0
P10IM0
0000,0000
P2IM0
P2 口中断模式寄存器 0
FD22H
P27IM0
P26IM0
P25IM0
P24IM0
P23IM0
P22IM0
P21IM0
P20IM0
0000,0000
P3IM0
P3 口中断模式寄存器 0
FD23H
P37IM0
P36IM0
P35IM0
P34IM0
P33IM0
P32IM0
P31IM0
P30IM0
0000,0000
P4IM0
P4 口中断模式寄存器 0
FD24H
P47IM0
P46IM0
P45IM0
P44IM0
P43IM0
P42IM0
P41IM0
P40IM0
0000,0000
P5IM0
P5 口中断模式寄存器 0
FD25H
-
-
P55IM0
P54IM0
P53IM0
P52IM0
P51IM0
P50IM0
xx00,0000
P6IM0
P6 口中断模式寄存器 0
FD26H
P67IM0
P66IM0
P65IM0
P64IM0
P63IM0
P62IM0
P61IM0
P60IM0
0000,0000
P7IM0
P7 口中断模式寄存器 0
FD27H
P77IM0
P76IM0
P75IM0
P74IM0
P73IM0
P72IM0
P71IM0
P70IM0
0000,0000
P0IM1
P0 口中断模式寄存器 1
FD30H
P07IM1
P06IM1
P05IM1
P04IM1
P03IM1
P02IM1
P01IM1
P00IM1
0000,0000
P1IM1
P1 口中断模式寄存器 1
FD31H
P17IM1
P16IM1
P15IM1
P14IM1
P13IM1
P12IM1
P11IM1
P10IM1
0000,0000
P2IM1
P2 口中断模式寄存器 1
FD32H
P27IM1
P26IM1
P25IM1
P24IM1
P23IM1
P22IM1
P21IM1
P20IM1
0000,0000
P3IM1
P3 口中断模式寄存器 1
FD33H
P37IM1
P36IM1
P35IM1
P34IM1
P33IM1
P32IM1
P31IM1
P30IM1
0000,0000
P4IM1
P4 口中断模式寄存器 1
FD34H
P47IM1
P46IM1
P45IM1
P44IM1
P43IM1
P42IM1
P41IM1
P40IM1
0000,0000
P5IM1
P5 口中断模式寄存器 1
FD35H
-
-
P55IM1
P54IM1
P53IM1
P52IM1
P51IM1
P50IM1
xx00,0000
P6IM1
P6 口中断模式寄存器 1
FD36H
P67IM1
P66IM1
P65IM1
P64IM1
P63IM1
P62IM1
P61IM1
P60IM1
0000,0000
P7IM1
P7 口中断模式寄存器 1
FD37H
P77IM1
P76IM1
P75IM1
P74IM1
P73IM1
P72IM1
P71IM1
P70IM1
0000,0000
P0WKUE
P0 口中断唤醒使能寄存器
FD40H P07WKUE P06WKUE P05WKUE P04WKUE P03WKUE P02WKUE P01WKUE P00WKUE 0000,0000
P1WKUE
P1 口中断唤醒使能寄存器
FD41H P17WKUE P16WKUE P15WKUE P14WKUE P13WKUE P12WKUE P11WKUE P10WKUE 0000,0000
P2WKUE
P2 口中断唤醒使能寄存器
FD42H P27WKUE P26WKUE P25WKUE P24WKUE P23WKUE P22WKUE P21WKUE P20WKUE 0000,0000
P3WKUE
P3 口中断唤醒使能寄存器
FD43H P37WKUE P36WKUE P35WKUE P34WKUE P33WKUE P32WKUE P31WKUE P30WKUE 0000,0000
P4WKUE
P4 口中断唤醒使能寄存器
FD44H P47WKUE P46WKUE P45WKUE P44WKUE P43WKUE P42WKUE P41WKUE P40WKUE 0000,0000
P5WKUE
P5 口中断唤醒使能寄存器
FD45H
P6WKUE
P6 口中断唤醒使能寄存器
FD46H P67WKUE P66WKUE P65WKUE P64WKUE P63WKUE P62WKUE P61WKUE P60WKUE 0000,0000
P7WKUE
P7 口中断唤醒使能寄存器
FD47H P77WKUE P76WKUE P75WKUE P74WKUE P73WKUE P72WKUE P71WKUE P70WKUE 0000,0000
CCAPM3
PCA 模块 3 模式控制寄存器
FD54H
CCAP3L
PCA 模块 3 低字节
FD55H
0000,0000
CCAP3H
PCA 模块 3 高字节
FD56H
0000,0000
-
-
-
ECOM3
P55WKUE P54WKUE P53WKUE P52WKUE P51WKUE P50WKUE xx00,0000
CCAPP3
CCAPN3
MAT3
TOG3
PWM3
ECCF3
x000,0000
PCA_PWM3 PCA3 的 PWM 模式寄存器
FD57H
PINIPL
I/O 口中断优先级低寄存器
FD60H
P7IP
PINIPH
I/O 口中断优先级高寄存器
FD61H
P7IPH
CHIPID0
硬件 ID0
FDE0H
nnnn,nnnn
CHIPID1
硬件 ID1
FDE1H
nnnn,nnnn
CHIPID2
硬件 ID2
FDE2H
nnnn,nnnn
CHIPID3
硬件 ID3
FDE3H
nnnn,nnnn
深圳国芯人工智能有限公司
EBS3[1:0]
XCCAP3H[1:0]
XCCAP3L[1:0]
P6IP
P5IP
P4IP
P3IP
P6IPH
P5IPH
P4IPH
P3IPH
国内分销商电话: 0513-5501 2928/2929/2966
EPC3H
EPC3L
0000,0000
P2IP
P1IP
P0IP
0000,0000
P2IPH
P1IPH
P0IPH
0000,0000
传真: 0513-5501 2926/2956/2947
- 176 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
CHIPID4
硬件 ID4
FDE4H
nnnn,nnnn
CHIPID5
硬件 ID5
FDE5H
nnnn,nnnn
CHIPID6
硬件 ID6
FDE6H
nnnn,nnnn
CHIPID7
硬件 ID7
FDE7H
nnnn,nnnn
CHIPID8
硬件 ID8
FDE8H
nnnn,nnnn
CHIPID9
硬件 ID9
FDE9H
nnnn,nnnn
CHIPID10
硬件 ID10
FDEAH
nnnn,nnnn
CHIPID11
硬件 ID11
FDEBH
nnnn,nnnn
CHIPID12
硬件 ID12
FDECH
nnnn,nnnn
CHIPID13
硬件 ID13
FDEDH
nnnn,nnnn
CHIPID14
硬件 ID14
FDEEH
nnnn,nnnn
CHIPID15
硬件 ID15
FDEFH
nnnn,nnnn
CHIPID16
硬件 ID16
FDF0H
nnnn,nnnn
CHIPID17
硬件 ID17
FDF1H
nnnn,nnnn
CHIPID18
硬件 ID18
FDF2H
nnnn,nnnn
CHIPID19
硬件 ID19
FDF3H
nnnn,nnnn
CHIPID20
硬件 ID20
FDF4H
nnnn,nnnn
CHIPID21
硬件 ID21
FDF5H
nnnn,nnnn
CHIPID22
硬件 ID22
FDF6H
nnnn,nnnn
CHIPID23
硬件 ID23
FDF7H
nnnn,nnnn
CHIPID24
硬件 ID24
FDF8H
nnnn,nnnn
CHIPID25
硬件 ID25
FDF9H
nnnn,nnnn
CHIPID26
硬件 ID26
FDFAH
nnnn,nnnn
CHIPID27
硬件 ID27
FDFBH
nnnn,nnnn
CHIPID28
硬件 ID28
FDFCH
nnnn,nnnn
CHIPID29
硬件 ID29
FDFDH
nnnn,nnnn
CHIPID30
硬件 ID30
FDFEH
nnnn,nnnn
CHIPID31
硬件 ID31
FDFFH
nnnn,nnnn
BMM_M2M_CFG
M2M_BMM 配置寄存器
FA00H
M2MIE
-
TXACO
RXACO
BMM_M2M_CR
M2M_BMM 控制寄存器
FA01H
ENM2M
TRIG
-
-
-
-
-
-
00xx,xxxx
BMM_M2M_STA
M2M_BMM 状态寄存器
FA02H
-
-
-
-
-
-
-
M2MIF
xxxx,xxx0
BMM_M2M_AMT
M2M_BMM 传输总字节数
FA03H
0000,0000
BMM_M2M_DONE
M2M_BMM 传输完成字节数
FA04H
0000,0000
BMM_M2M_TXAH
M2M_BMM 发送高地址
FA05H
0000,0000
BMM_M2M_TXAL
M2M_BMM 发送低地址
FA06H
0000,0000
BMM_M2M_RXAH
M2M_BMM 接收高地址
FA07H
0000,0000
BMM_M2M_RXAL
M2M_BMM 接收低地址
FA08H
0000,0000
BMM_ADC_CFG
ADC_BMM 配置寄存器
FA10H
ADCIE
-
-
-
ADCMIP[1:0]
BMM_ADC_CR
ADC_BMM 控制寄存器
FA11H
ENADC
TRIG
-
-
-
-
-
-
-
-
-
-
M2MIP[1:0]
M2MPTY[1:0]
0x00,0000
ADCPTY[1:0]
0xxx,0000
-
-
00xx,xxxx
-
ADCIF
xxxx,xxx0
BMM_ADC_STA
ADC_BMM 状态寄存器
FA12H
BMM_ADC_RXAH
ADC_BMM 接收高地址
FA17H
0000,0000
BMM_ADC_RXAL
ADC_BMM 接收低地址
FA18H
0000,0000
BMM_ADC_CFG2
ADC_BMM 配置寄存器 2
FA19H
-
-
-
-
BMM_ADC_CHSW0
ADC_BMM 通道使能
FA1AH
CH15
CH14
CH13
CH12
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
CVTIMESEL[3:0]
CH11
CH10
CH9
传真: 0513-5501 2926/2956/2947
xxxx,0000
CH8
1000,0000
- 177 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
BMM_ADC_CHSW1
ADC_BMM 通道使能
FA1BH
CH7
CH6
CH5
CH4
BMM_SPI_CFG
SPI_BMM 配置寄存器
FA20H
SPIIE
ACT_TX
ACT_RX
-
BMM_SPI_CR
SPI_BMM 控制寄存器
FA21H
ENSPI
TRIG_M
TRIG_S
-
-
-
-
BMM_SPI_STA
SPI_BMM 状态寄存器
FA22H
-
-
-
-
-
TXOVW
RXLOSS
BMM_SPI_AMT
SPI_BMM 传输总字节数
FA23H
0000,0000
BMM_SPI_DONE
SPI_BMM 传输完成字节数
FA24H
0000,0000
BMM_SPI_TXAH
SPI_BMM 发送高地址
FA25H
0000,0000
BMM_SPI_TXAL
SPI_BMM 发送低地址
FA26H
0000,0000
BMM_SPI_RXAH
SPI_BMM 接收高地址
FA27H
0000,0000
BMM_SPI_RXAL
SPI_BMM 接收低地址
FA28H
0000,0000
BMM_SPI_CFG2
SPI_BMM 配置寄存器 2
FA29H
-
-
-
-
-
BMM_UR1T_CFG
UR1T_BMM 配置寄存器
FA30H
UR1TIE
-
-
-
UR1TIP[1:0]
BMM_UR1T_CR
UR1T_BMM 控制寄存器
FA31H
ENUR1T
TRIG
-
-
-
-
-
BMM_UR1T_STA
UR1T_BMM 状态寄存器
FA32H
-
-
-
-
-
TXOVW
-
BMM_UR1T_AMT
UR1T_BMM 传输总字节数
FA33H
0000,0000
BMM_UR1T_DONE
UR1T_BMM 传输完成字节数 FA34H
0000,0000
BMM_UR1T_TXAH
UR1T_BMM 发送高地址
FA35H
0000,0000
BMM_UR1T_TXAL
UR1T_BMM 发送低地址
FA36H
0000,0000
BMM_UR1R_CFG
UR1R_BMM 配置寄存器
FA38H
UR1RIE
-
-
-
UR1RIP[1:0]
BMM_UR1R_CR
UR1R_BMM 控制寄存器
FA39H
ENUR1R
-
TRIG
-
-
-
-
CLRFIFO 0x0x,xxx0
BMM_UR1R_STA
UR1R_BMM 状态寄存器
FA3AH
-
-
-
-
-
-
RXLOSS
UR1RIF xxxx,xx00
BMM_UR1R_AMT
UR1R_BMM 传输总字节数
FA3BH
0000,0000
BMM_UR1R_DONE
UR1R_BMM 传输完成字节数 FA3CH
0000,0000
BMM_UR1R_TXAH
UR1R_BMM 发送高地址
FA3DH
0000,0000
BMM_UR1R_TXAL
UR1R_BMM 发送低地址
FA3EH
0000,0000
BMM_UR2T_CFG
UR2T_BMM 配置寄存器
FA40H
UR2TIE
-
-
-
UR2TIP[1:0]
BMM_UR2T_CR
UR2T_BMM 控制寄存器
FA41H
ENUR2T
TRIG
-
-
-
-
-
BMM_UR2T_STA
UR2T_BMM 状态寄存器
FA42H
-
-
-
-
-
TXOVW
-
BMM_UR2T_AMT
UR2T_BMM 传输总字节数
FA43H
0000,0000
BMM_UR2T_DONE
UR2T_BMM 传输完成字节数 FA44H
0000,0000
BMM_UR2T_TXAH
UR2T_BMM 发送高地址
FA45H
0000,0000
BMM_UR2T_TXAL
UR2T_BMM 发送低地址
FA46H
0000,0000
BMM_UR2R_CFG
UR2R_BMM 配置寄存器
FA48H
UR2RIE
-
-
-
UR2RIP[1:0]
BMM_UR2R_CR
UR2R_BMM 控制寄存器
FA49H
ENUR2R
-
TRIG
-
-
-
-
CLRFIFO 0x0x,xxx0
BMM_UR2R_STA
UR2R_BMM 状态寄存器
FA4AH
-
-
-
-
-
-
RXLOSS
UR2RIF xxxx,xx00
BMM_UR2R_AMT
UR2R_BMM 传输总字节数
FA4BH
0000,0000
BMM_UR2R_DONE
UR2R_BMM 传输完成字节数 FA4CH
0000,0000
BMM_UR2R_TXAH
UR2R_BMM 发送高地址
FA4DH
0000,0000
BMM_UR2R_TXAL
UR2R_BMM 发送低地址
FA4EH
0000,0000
BMM_UR3T_CFG
UR3T_BMM 配置寄存器
FA50H
UR3TIE
-
-
-
UR3TIP[1:0]
BMM_UR3T_CR
UR3T_BMM 控制寄存器
FA51H
ENUR3T
TRIG
-
-
-
-
-
BMM_UR3T_STA
UR3T_BMM 状态寄存器
FA52H
-
-
-
-
-
TXOVW
-
BMM_UR3T_AMT
UR3T_BMM 传输总字节数
FA53H
0000,0000
BMM_UR3T_DONE
UR3T_BMM 传输完成字节数 FA54H
0000,0000
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
CH3
CH2
SPIIP[1:0]
CH1
CH0
SPIPTY[1:0]
WRPSS
0000,0001
000x,0000
CLRFIFO 000x,xxx0
SPIIF
xxxx,x000
SSS[1:0]
xxxx,x000
UR1TPTY[1:0]
0xxx,0000
-
00xx,xxxx
UR1TIF xxxx,x0x0
UR1RPTY[1:0]
UR2TPTY[1:0]
-
0xxx,0000
0xxx,0000
00xx,xxxx
UR2TIF xxxx,x0x0
UR2RPTY[1:0]
UR3TPTY[1:0]
-
0xxx,0000
0xxx,0000
00xx,xxxx
UR3TIF xxxx,x0x0
传真: 0513-5501 2926/2956/2947
- 178 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
BMM_UR3T_TXAH
UR3T_BMM 发送高地址
FA55H
0000,0000
BMM_UR3T_TXAL
UR3T_BMM 发送低地址
FA56H
0000,0000
BMM_UR3R_CFG
UR3R_BMM 配置寄存器
FA58H
UR3RIE
-
-
-
UR3RIP[1:0]
BMM_UR3R_CR
UR3R_BMM 控制寄存器
FA59H
ENUR3R
-
TRIG
-
-
-
-
CLRFIFO 0x0x,xxx0
BMM_UR3R_STA
UR3R_BMM 状态寄存器
FA5AH
-
-
-
-
-
-
RXLOSS
UR3RIF xxxx,xx00
BMM_UR3R_AMT
UR3R_BMM 传输总字节数
FA5BH
0000,0000
BMM_UR3R_DONE
UR3R_BMM 传输完成字节数 FA5CH
0000,0000
BMM_UR3R_TXAH
UR3R_BMM 发送高地址
FA5DH
0000,0000
BMM_UR3R_TXAL
UR3R_BMM 发送低地址
FA5EH
0000,0000
BMM_UR4T_CFG
UR4T_BMM 配置寄存器
FA60H
UR4TIE
-
-
-
UR4TIP[1:0]
BMM_UR4T_CR
UR4T_BMM 控制寄存器
FA61H
ENUR4T
TRIG
-
-
-
-
-
BMM_UR4T_STA
UR4T_BMM 状态寄存器
FA62H
-
-
-
-
-
TXOVW
-
BMM_UR4T_AMT
UR4T_BMM 传输总字节数
FA63H
0000,0000
BMM_UR4T_DONE
UR4T_BMM 传输完成字节数 FA64H
0000,0000
BMM_UR4T_TXAH
UR4T_BMM 发送高地址
FA65H
0000,0000
BMM_UR4T_TXAL
UR4T_BMM 发送低地址
FA66H
0000,0000
BMM_UR4R_CFG
UR4R_BMM 配置寄存器
FA68H
UR4RIE
-
-
-
UR4RIP[1:0]
BMM_UR4R_CR
UR4R_BMM 控制寄存器
FA69H
ENUR4R
-
TRIG
-
-
-
-
CLRFIFO 0x0x,xxx0
BMM_UR4R_STA
UR4R_BMM 状态寄存器
FA6AH
-
-
-
-
-
-
RXLOSS
UR4RIF xxxx,xx00
BMM_UR4R_AMT
UR4R_BMM 传输总字节数
FA6BH
0000,0000
BMM_UR4R_DONE
UR4R_BMM 传输完成字节数 FA6CH
0000,0000
BMM_UR4R_TXAH
UR4R_BMM 发送高地址
FA6DH
0000,0000
BMM_UR4R_TXAL
UR4R_BMM 发送低地址
FA6EH
0000,0000
BMM_LCM_CFG
LCM_BMM 配置寄存器
FA70H
LCMIE
BMM_LCM_CR
LCM_BMM 控制寄存器
FA71H
ENLCM
BMM_LCM_STA
LCM_BMM 状态寄存器
FA72H
-
BMM_LCM_AMT
LCM_BMM 传输总字节数
FA73H
0000,0000
BMM_LCM_DONE
LCM_BMM 传输完成字节数
FA74H
0000,0000
BMM_LCM_TXAH
LCM_BMM 发送高地址
FA75H
0000,0000
BMM_LCM_TXAL
LCM_BMM 发送低地址
FA76H
0000,0000
BMM_LCM_RXAH
LCM_BMM 接收高地址
FA77H
0000,0000
BMM_LCM_RXAL
LCM_BMM 接收低地址
FA78H
0000,0000
-
-
TRIGWC TRIGWD
-
-
LCMIP[1:0]
UR3RPTY[1:0]
UR4TPTY[1:0]
-
0xxx,0000
0xxx,0000
00xx,xxxx
UR4TIF xxxx,x0x0
UR4RPTY[1:0]
LCMPTY[1:0]
0xxx,0000
0xxx,0000
TRIGRC
TRIGRD
-
-
-
0000,0xxx
-
-
-
TXOVW
LCMIF
xxxx,xx00
-
注:特殊功能寄存器初始值意义
0: 初始值为 0;
1: 初始值为 1;
n: 初始值与 ISP 下载时的硬件选项有关;
x: 不存在这个位,初始值不确定
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 179 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
9 I/O 口
所有的 I/O 口均有 4 种工作模式:准双向口/弱上拉(标准 8051 输出口模式)、推挽输出/强上拉、高
阻输入(电流既不能流入也不能流出)、开漏输出。可使用软件对 I/O 口的工作模式进行容易配置。
注意:除 P3.0 和 P3.1 外,其余所有 I/O 口上电后的状态均为高阻输入状态,用户在使
用 I/O 口时必须先设置 I/O 口模式
9.1
I/O 口相关寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
P0
P0 端口
80H
P07
P06
P05
P04
P03
P02
P01
P00
1111,1111
P1
P1 端口
90H
P17
P16
P15
P14
P13
P12
P11
P10
1111,1111
P2
P2 端口
A0H
P27
P26
P25
P24
P23
P22
P21
P20
1111,1111
P3
P3 端口
B0H
P37
P36
P35
P34
P33
P32
P31
P30
1111,1111
P4
P4 端口
C0H
P47
P46
P45
P44
P43
P42
P41
P40
1111,1111
P5
P5 端口
C8H
-
-
P55
P54
P53
P52
P51
P50
xx11,1111
P6
P6 端口
E8H
P67
P66
P65
P64
P63
P62
P61
P60
1111,1111
P7
P7 端口
F8H
P77
P76
P75
P74
P73
P72
P71
P70
1111,1111
P0M1
P0 口配置寄存器 1
93H
P07M1
P06M1
P05M1
P04M1
P03M1
P02M1
P01M1
P00M1
1111,1111
P0M0
P0 口配置寄存器 0
94H
P07M0
P06M0
P05M0
P04M0
P03M0
P02M0
P01M0
P00M0
0000,0000
P1M1
P1 口配置寄存器 1
91H
P17M1
P16M1
P15M1
P14M1
P13M1
P12M1
P11M1
P10M1
1111,1111
P1M0
P1 口配置寄存器 0
92H
P17M0
P16M0
P15M0
P14M0
P13M0
P12M0
P11M0
P10M0
0000,0000
P2M1
P2 口配置寄存器 1
95H
P27M1
P26M1
P25M1
P24M1
P23M1
P22M1
P21M1
P20M1
1111,1111
P2M0
P2 口配置寄存器 0
96H
P27M0
P26M0
P25M0
P24M0
P23M0
P22M0
P21M0
P20M0
0000,0000
P3M1
P3 口配置寄存器 1
B1H
P37M1
P36M1
P35M1
P34M1
P33M1
P32M1
P31M1
P30M1
n111,1100
P3M0
P3 口配置寄存器 0
B2H
P37M0
P36M0
P35M0
P34M0
P33M0
P32M0
P31M0
P30M0
n000,0000
P4M1
P4 口配置寄存器 1
B3H
P47M1
P46M1
P45M1
P44M1
P43M1
P42M1
P41M1
P40M1
1111,1111
P4M0
P4 口配置寄存器 0
B4H
P47M0
P46M0
P45M0
P44M0
P43M0
P42M0
P41M0
P40M0
0000,0000
P5M1
P5 口配置寄存器 1
C9H
-
-
P55M1
P54M1
P53M1
P52M1
P51M1
P50M1
xx00,0000
P5M0
P5 口配置寄存器 0
CAH
-
-
P55M0
P54M0
P53M0
P52M0
P51M0
P50M0
xx00,0000
P6M1
P6 口配置寄存器 1
CBH
P67M1
P66M1
P65M1
P64M1
P63M1
P62M1
P61M1
P60M1
1111,1111
P6M0
P6 口配置寄存器 0
CCH
P67M0
P66M0
P65M0
P64M0
P63M0
P62M0
P61M0
P60M0
0000,0000
P7M1
P7 口配置寄存器 1
E1H
P77M1
P76M1
P75M1
P74M1
P73M1
P72M1
P71M1
P70M1
1111,1111
P7M0
P7 口配置寄存器 0
E2H
P77M0
P76M0
P75M0
P74M0
P73M0
P72M0
P71M0
P70M0
0000,0000
位地址与符号
符号
描述
复位值
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0PU
P0 口上拉电阻控制寄存器
FE10H
P07PU
P06PU
P05PU
P04PU
P03PU
P02PU
P01PU
P00PU
0000,0000
P1PU
P1 口上拉电阻控制寄存器
FE11H
P17PU
P16PU
P15PU
P14PU
P13PU
P12PU
P11PU
P10PU
0000,0000
P2PU
P2 口上拉电阻控制寄存器
FE12H
P27PU
P26PU
P25PU
P24PU
P23PU
P22PU
P21PU
P20PU
0000,0000
P3PU
P3 口上拉电阻控制寄存器
FE13H
P37PU
P36PU
P35PU
P34PU
P33PU
P32PU
P31PU
P30PU
0000,0000
P4PU
P4 口上拉电阻控制寄存器
FE14H
P47PU
P46PU
P45PU
P44PU
P43PU
P42PU
P41PU
P40PU
0000,0000
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 180 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P5PU
P5 口上拉电阻控制寄存器
FE15H
-
-
P55PU
P54PU
P53PU
P52PU
P51PU
P50PU
xx00,0000
P6PU
P6 口上拉电阻控制寄存器
FE16H
P67PU
P66PU
P65PU
P64PU
P63PU
P62PU
P61PU
P60PU
0000,0000
P7PU
P7 口上拉电阻控制寄存器
FE17H
P77PU
P76PU
P75PU
P74PU
P73PU
P72PU
P71PU
P70PU
0000,0000
P0NCS
P0 口施密特触发控制寄存器
FE18H
P07NCS
P06NCS
P05NCS
P04NCS
P03NCS
P02NCS
P01NCS
P00NCS 0000,0000
P1NCS
P1 口施密特触发控制寄存器
FE19H
P17NCS
P16NCS
P15NCS
P14NCS
P13NCS
P12NCS
P11NCS
P10NCS 0000,0000
P2NCS
P2 口施密特触发控制寄存器
FE1AH P27NCS
P26NCS
P25NCS
P24NCS
P23NCS
P22NCS
P21NCS
P20NCS 0000,0000
P3NCS
P3 口施密特触发控制寄存器
FE1BH P37NCS
P36NCS
P35NCS
P34NCS
P33NCS
P32NCS
P31NCS
P30NCS 0000,0000
P4NCS
P4 口施密特触发控制寄存器
FE1CH P47NCS
P46NCS
P45NCS
P44NCS
P43NCS
P42NCS
P41NCS
P40NCS 0000,0000
-
P55NCS
P54NCS
P53NCS
P52NCS
P51NCS
P50NCS xx00,0000
P5NCS
P5 口施密特触发控制寄存器
FE1DH
P6NCS
P6 口施密特触发控制寄存器
FE1EH P67NCS
P66NCS
P65NCS
P64NCS
P63NCS
P62NCS
P61NCS
P60NCS 0000,0000
P7NCS
P7 口施密特触发控制寄存器
FE1FH P77NCS
P76NCS
P75NCS
P74NCS
P73NCS
P72NCS
P71NCS
P70NCS 0000,0000
-
P0SR
P0 口电平转换速率寄存器
FE20H
P07SR
P06SR
P05SR
P04SR
P03SR
P02SR
P01SR
P00SR
1111,1111
P1SR
P1 口电平转换速率寄存器
FE21H
P17SR
P16SR
P15SR
P14SR
P13SR
P12SR
P11SR
P10SR
1111,1111
P2SR
P2 口电平转换速率寄存器
FE22H
P27SR
P26SR
P25SR
P24SR
P23SR
P22SR
P21SR
P20SR
1111,1111
P3SR
P3 口电平转换速率寄存器
FE23H
P37SR
P36SR
P35SR
P34SR
P33SR
P32SR
P31SR
P30SR
1111,1111
P4SR
P4 口电平转换速率寄存器
FE24H
P47SR
P46SR
P45SR
P44SR
P43SR
P42SR
P41SR
P40SR
1111,1111
P5SR
P5 口电平转换速率寄存器
FE25H
-
-
P55SR
P54SR
P53SR
P52SR
P51SR
P50SR
xx11,1111
P6SR
P6 口电平转换速率寄存器
FE26H
P67SR
P66SR
P65SR
P64SR
P63SR
P62SR
P61SR
P60SR
1111,1111
P7SR
P7 口电平转换速率寄存器
FE27H
P77SR
P76SR
P75SR
P74SR
P73SR
P72SR
P71SR
P70SR
1111,1111
P0DR
P0 口驱动电流控制寄存器
FE28H
P07DR
P06DR
P05DR
P04DR
P03DR
P02DR
P01DR
P00DR
1111,1111
P1DR
P1 口驱动电流控制寄存器
FE29H
P17DR
P16DR
P15DR
P14DR
P13DR
P12DR
P11DR
P10DR
1111,1111
P2DR
P2 口驱动电流控制寄存器
FE2AH
P27DR
P26DR
P25DR
P24DR
P23DR
P22DR
P21DR
P20DR
1111,1111
P3DR
P3 口驱动电流控制寄存器
FE2BH
P37DR
P36DR
P35DR
P34DR
P33DR
P32DR
P31DR
P30DR
1111,1111
P4DR
P4 口驱动电流控制寄存器
FE2CH
P47DR
P46DR
P45DR
P44DR
P43DR
P42DR
P41DR
P40DR
1111,1111
P5DR
P5 口驱动电流控制寄存器
FE2DH
-
-
P55DR
P54DR
P53DR
P52DR
P51DR
P50DR
xx11,1111
P6DR
P6 口驱动电流控制寄存器
FE2EH
P67DR
P66DR
P65DR
P64DR
P63DR
P62DR
P61DR
P60DR
1111,1111
P7DR
P7 口驱动电流控制寄存器
FE2FH
P77DR
P76DR
P75DR
P74DR
P73DR
P72DR
P71DR
P70DR
1111,1111
P0IE
P0 口输入使能控制寄存器
FE30H
P07IE
P06IE
P05IE
P04IE
P03IE
P02IE
P01IE
P00IE
1111,1111
P1IE
P1 口输入使能控制寄存器
FE31H
P17IE
P16IE
P15IE
P14IE
P13IE
P12IE
P11IE
P10IE
1111,1111
P2IE
P2 口输入使能控制寄存器
FE32H
P27IE
P26IE
P25IE
P24IE
P23IE
P22IE
P21IE
P20IE
1111,1111
P3IE
P3 口输入使能控制寄存器
FE33H
P37IE
P36IE
P35IE
P34IE
P33IE
P32IE
P31IE
P30IE
1111,1111
P4IE
P4 口输入使能控制寄存器
FE34H
P47IE
P46IE
P45IE
P44IE
P43IE
P42IE
P41IE
P40IE
1111,1111
P5IE
P5 口输入使能控制寄存器
FE35H
-
-
P55IE
P54IE
P53IE
P52IE
P51IE
P50IE
xx11,1111
P6IE
P6 口输入使能控制寄存器
FE36H
P67IE
P66IE
P65IE
P64IE
P63IE
P62IE
P61IE
P60IE
1111,1111
P7IE
P7 口输入使能控制寄存器
FE37H
P77IE
P76IE
P75IE
P74IE
P73IE
P72IE
P71IE
P70IE
1111,1111
9.1.1
端口数据寄存器(Px)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0
80H
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
P1
90H
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
P2
A0H
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P3
B0H
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
P4
C0H
P4.7
P4.6
P4.5
P4.4
P4.3
P4.2
P4.1
P4.0
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 181 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P5
C8H
-
-
P55
P5.4
P5.3
P5.2
P5.1
P5.0
P6
E8H
P6.7
P6.6
P6.5
P6.4
P6.3
P6.2
P6.1
P6.0
P7
F8H
P7.7
P7.6
P7.5
P7.4
P7.3
P7.2
P7.1
P7.0
读写端口状态
写 0:输出低电平到端口缓冲区
写 1:输出高电平到端口缓冲区
读:直接读端口管脚上的电平
9.1.2
端口模式配置寄存器(PxM0,PxM1)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0M0
94H
P07M0
P06M0
P05M0
P04M0
P03M0
P02M0
P01M0
P00M0
P0M1
93H
P07M1
P06M1
P05M1
P04M1
P03M1
P02M1
P01M1
P00M1
P1M0
92H
P17M0
P16M0
P15M0
P14M0
P13M0
P12M0
P11M0
P10M0
P1M1
91H
P17M1
P16M1
P15M1
P14M1
P13M1
P12M1
P11M1
P10M1
P2M0
96H
P27M0
P26M0
P25M0
P24M0
P23M0
P22M0
P21M0
P20M0
P2M1
95H
P27M1
P26M1
P25M1
P24M1
P23M1
P22M1
P21M1
P20M1
P3M0
B2H
P37M0
P36M0
P35M0
P34M0
P33M0
P32M0
P31M0
P30M0
P3M1
B1H
P37M1
P36M1
P35M1
P34M1
P33M1
P32M1
P31M1
P30M1
P4M0
B4H
P47M0
P46M0
P45M0
P44M0
P43M0
P42M0
P41M0
P40M0
P4M1
B3H
P47M1
P46M1
P45M1
P44M1
P43M1
P42M1
P41M1
P40M1
P5M0
CAH
-
-
P55M0
P54M0
P53M0
P52M0
P51M0
P50M0
P5M1
C9H
-
-
P55M1
P54M1
P53M1
P52M1
P51M1
P50M1
P6M0
CCH
P67M0
P66M0
P65M0
P64M0
P63M0
P62M0
P61M0
P60M0
P6M1
CBH
P67M1
P66M1
P65M1
P64M1
P63M1
P62M1
P61M1
P60M1
P7M0
E2H
P77M0
P76M0
P75M0
P74M0
P73M0
P72M0
P71M0
P70M0
P7M1
E1H
P77M1
P76M1
P75M1
P74M1
P73M1
P72M1
P71M1
P70M1
配置端口的模式
PnM1.x
PnM0.x
Pn.x 口工作模式
0
0
准双向口
0
1
推挽输出
1
0
高阻输入
1
1
开漏输出
注意:当有I/O口被选择为ADC输入通道时,必须设置PxM0/PxM1寄存器将I/O口模式设置为输入模式。另
外如果MCU进入掉电模式/时钟停振模式后,仍需要使能ADC通道,则需要设置PxIE寄存器关闭数字输入,
才能保证不会有额外的耗电
9.1.3
端口上拉电阻控制寄存器(PxPU)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0PU
FE10H
P07PU
P06PU
P05PU
P04PU
P03PU
P02PU
P01PU
P00PU
P1PU
FE11H
P17PU
P16PU
P15PU
P14PU
P13PU
P12PU
P11PU
P10PU
P2PU
FE12H
P27PU
P26PU
P25PU
P24PU
P23PU
P22PU
P21PU
P20PU
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 182 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P3PU
FE13H
P37PU
P36PU
P35PU
P34PU
P33PU
P32PU
P31PU
P30PU
P4PU
FE14H
P47PU
P46PU
P45PU
P44PU
P43PU
P42PU
P41PU
P40PU
P5PU
FE15H
-
-
P55PU
P54PU
P53PU
P52PU
P51PU
P50PU
P6PU
FE16H
P67PU
P66PU
P65PU
P64PU
P63PU
P62PU
P61PU
P60PU
P7PU
FE17H
P77PU
P76PU
P75PU
P74PU
P73PU
P72PU
P71PU
P70PU
端口内部4.1K上拉电阻控制位(注:P3.0和P3.1口上的上拉电阻可能会略小一些)
0:禁止端口内部的 4.1K 上拉电阻
1:使能端口内部的 4.1K 上拉电阻
9.1.4
端口施密特触发控制寄存器(PxNCS)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0NCS
FE18H
P07NCS
P06NCS
P05NCS
P04NCS
P03NCS
P02NCS
P01NCS
P00NCS
P1NCS
FE19H
P17NCS
P16NCS
P15NCS
P14NCS
P13NCS
P12NCS
P11NCS
P10NCS
P2NCS
FE1AH
P27NCS
P26NCS
P25NCS
P24NCS
P23NCS
P22NCS
P21NCS
P20NCS
P3NCS
FE1BH
P37NCS
P36NCS
P35NCS
P34NCS
P33NCS
P32NCS
P31NCS
P30NCS
P4NCS
FE1CH
P47NCS
P46NCS
P45NCS
P44NCS
P43NCS
P42NCS
P41NCS
P40NCS
P5NCS
FE1DH
-
-
P55NCS
P54NCS
P53NCS
P52NCS
P51NCS
P50NCS
P6NCS
FE1EH
P67NCS
P66NCS
P65NCS
P64NCS
P63NCS
P62NCS
P61NCS
P60NCS
P7NCS
FE1FH
P77NCS
P76NCS
P75NCS
P74NCS
P73NCS
P72NCS
P71NCS
P70NCS
端口施密特触发控制位
0:使能端口的施密特触发功能。(上电复位后默认使能施密特触发)
1:禁止端口的施密特触发功能。
9.1.5
端口电平转换速度控制寄存器(PxSR)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0SR
FE20H
P07SR
P06SR
P05SR
P04SR
P03SR
P02SR
P01SR
P00SR
P1SR
FE21H
P17SR
P16SR
P15SR
P14SR
P13SR
P12SR
P11SR
P10SR
P2SR
FE22H
P27SR
P26SR
P25SR
P24SR
P23SR
P22SR
P21SR
P20SR
P3SR
FE23H
P37SR
P36SR
P35SR
P34SR
P33SR
P32SR
P31SR
P30SR
P4SR
FE24H
P47SR
P46SR
P45SR
P44SR
P43SR
P42SR
P41SR
P40SR
P5SR
FE25H
-
-
P55SR
P54SR
P53SR
P52SR
P51SR
P50SR
P6SR
FE26H
P57SR
P66SR
P65SR
P64SR
P63SR
P62SR
P61SR
P60SR
P7SR
FE27H
P77SR
P76SR
P75SR
P74SR
P73SR
P72SR
P71SR
P70SR
控制端口电平转换的速度
0:电平转换速度快,相应的上下冲会比较大
1:电平转换速度慢,相应的上下冲比较小
9.1.6
端口驱动电流控制寄存器(PxDR)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0DR
FE28H
P07DR
P06DR
P05DR
P04DR
P03DR
P02DR
P01DR
P00DR
P1DR
FE29H
P17DR
P16DR
P15DR
P14DR
P13DR
P12DR
P11DR
P10DR
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 183 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P2DR
FE2AH
P27DR
P26DR
P25DR
P24DR
P23DR
P22DR
P21DR
P20DR
P3DR
FE2BH
P37DR
P36DR
P35DR
P34DR
P33DR
P32DR
P31DR
P30DR
P4DR
FE2CH
P47DR
P46DR
P45DR
P44DR
P43DR
P42DR
P41DR
P40DR
P5DR
FE2DH
-
-
P55DR
P54DR
P53DR
P52DR
P51DR
P50DR
P6DR
FE2EH
P67DR
P66DR
P65DR
P64DR
P63DR
P62DR
P61DR
P60DR
P7DR
FE2FH
P77DR
P76DR
P75DR
P74DR
P73DR
P72DR
P71DR
P70DR
控制端口的驱动能力
0:增强驱动能力
1:一般驱动能力
9.1.7
端口数字信号输入使能控制寄存器(PxIE)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0IE
FE30H
P07IE
P06IE
P05IE
P04IE
P03IE
P02IE
P01IE
P00IE
P1IE
FE31H
P17IE
P16IE
P15IE
P14IE
P13IE
P12IE
P11IE
P10IE
P2IE
FE32H
P27IE
P26IE
P25IE
P24IE
P23IE
P22IE
P21IE
P20IE
P3IE
FE33H
P37IE
P36IE
P35IE
P34IE
P33IE
P32IE
P31IE
P30IE
P4IE
FE34H
P47IE
P46IE
P45IE
P44IE
P43IE
P42IE
P41IE
P40IE
P5IE
FE35H
-
-
P55IE
P54IE
P53IE
P52IE
P51IE
P50IE
P6IE
FE36H
P67IE
P66IE
P65IE
P64IE
P63IE
P62IE
P61IE
P60IE
P7IE
FE37H
P77IE
P76IE
P75IE
P74IE
P73IE
P72IE
P71IE
P70IE
数字信号输入使能控制
0:禁止数字信号输入。若 I/O 被当作比较器输入口、ADC 输入口或者触摸按键输入口等模拟口时,
进入时钟停振模式前,必须设置为 0,否则会有额外的耗电。
1:使能数字信号输入。若 I/O 被当作数字口时,必须设置为 1,否 MCU 无法读取外部端口的电平。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 184 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
配置 I/O 口
9.2
每个 I/O 的配置都需要使用两个寄存器进行设置。
以 P0 口为例,配置 P0 口需要使用 P0M0 和 P0M1 两个寄存器进行配置,如下图所示:
配置 P0.7
配置 P0.5
配置 P0.3
配置 P0.1
P0M0
7
6
5
4
3
2
1
0
P0M1
7
6
5
4
3
2
1
0
配置 P0.6
配置 P0.4
配置 P0.2
配置 P0.0
即 P0M0 的第 0 位和 P0M1 的第 0 位组合起来配置 P0.0 口的模式
即 P0M0 的第 1 位和 P0M1 的第 1 位组合起来配置 P0.1 口的模式
其他所有 I/O 的配置都与此类似。
PnM0 与 PnM1 的组合方式如下表所示
PnM1
PnM0
0
0
I/O 口工作模式
准双向口(传统8051端口模式,弱上拉)
灌电流可达20mA,拉电流为270~150μA(存在制造误差)
0
1
推挽输出(强上拉输出,可达20mA,要加限流电阻)
1
0
高阻输入(电流既不能流入也不能流出)
开漏输出(Open-Drain),内部上拉电阻断开
1
1
开漏模式既可读外部状态也可对外输出(高电平或低电
平)。如要正确读外部状态或需要对外输出高电平,需外加
上拉电阻,否则读不到外部状态,也对外输不出高电平。
注:n = 0,1,2,3,4,5,6,7
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 185 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
注意:
虽然每个I/O口在弱上拉(准双向口)/强推挽输出/开漏模式时都能承受20mA的灌电流
(还是要加限流电阻,如1K、560Ω、472Ω等),在强推挽输出时能输出20mA的拉电流(也
要加限流电阻),但整个芯片的工作电流推荐不要超过70mA,即从Vcc流入的电流建议不要
超过70mA,从Gnd流出电流建议不要超过70mA,整体流入/流出电流建议都不要超过70mA。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 186 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
I/O 的结构图
9.3
9.3.1
准双向口(弱上拉)
准双向口(弱上拉)输出类型可用作输出和输入功能而不需重新配置端口输出状态。这是因为当端
口输出为 1 时驱动能力很弱,允许外部装置将其拉低。当引脚输出为低时,它的驱动能力很强,可吸收
相当大的电流。准双向口有 3 个上拉晶体管适应不同的需要。
在 3 个上拉晶体管中,有 1 个上拉晶体管称为“弱上拉”,当端口寄存器为 1 且引脚本身也为 1 时打
开。此上拉提供基本驱动电流使准双向口输出为 1。如果一个引脚输出为 1 而由外部装置下拉到低时,
弱上拉关闭而“极弱上拉”维持开状态,为了把这个引脚强拉为低,外部装置必须有足够的灌电流能力
使引脚上的电压降到门槛电压以下。对于 5V 单片机,“弱上拉”晶体管的电流约 250uA;对于 3.3V 单
片机,“弱上拉”晶体管的电流约 150uA。
第 2 个上拉晶体管,称为“极弱上拉”,当端口锁存为 1 时打开。当引脚悬空时,这个极弱的上拉源
产生很弱的上拉电流将引脚上拉为高电平。对于 5V 单片机,“极弱上拉”晶体管的电流约 18uA;对于
3.3V 单片机,
“极弱上拉”晶体管的电流约 5uA。
第 3 个上拉晶体管称为“强上拉”。当端口锁存器由 0 到 1 跳变时,这个上拉用来加快准双向口由逻
辑 0 到逻辑 1 转换。当发生这种情况时,强上拉打开约 2 个时钟以使引脚能够迅速地上拉到高电平。
准双向口(弱上拉)带有一个施密特触发输入以及一个干扰抑制电路。准双向口(弱上拉)读外部
状态前,要先锁存为 ‘1’,才可读到外部正确的状态.
准双向口(弱上拉)输出如下图所示:
VCC
2个CPU
时钟延时
强
VCC
极弱
VCC
弱
端口
引脚
端口锁存数据
输入数据
干扰抑制
9.3.2
推挽输出
强推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为 1 时提供持续
的强上拉。推挽模式一般用于需要更大驱动电流的情况。
强推挽引脚配置如下图所示:
VCC
强
端口
引脚
端口锁存数据
输入数据
干扰抑制
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 187 -
STC8A8K64D4 系列技术手册
9.3.3
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
高阻输入
电流既不能流入也不能流出
输入口带有一个施密特触发输入以及一个干扰抑制电路
高阻输入引脚配置如下图所示:
端口
引脚
输入数据
干扰抑制
9.3.4
开漏输出
开漏模式既可读外部状态也可对外输出(高电平或低电平)。如要正确读外部状态或需要对外输出高
电平,需外加上拉电阻。
当端口锁存器为 0 时,开漏输出关闭所有上拉晶体管。当作为一个逻辑输出高电平时,这种配置方
式必须有外部上拉,一般通过电阻外接到 Vcc。如果外部有上拉电阻,开漏的 I/O 口还可读外部状态,
即此时被配置为开漏模式的 I/O 口还可作为输入 I/O 口。这种方式的下拉与准双向口相同。
开漏端口带有一个施密特触发输入以及一个干扰抑制电路。
输出端口配置如下图所示:
端口
引脚
端口锁存数据
输入数据
干扰抑制
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 188 -
STC8A8K64D4 系列技术手册
9.3.5
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
新增 4.1K 上拉电阻
STC8 系列所有的 I/O 口内部均可使能一个大约 4.1K 的上拉电阻(由于制造误差,上拉电阻的范围
可能为 3K~5K)
VCC
VCC
VCC
VCC
新增
4.1K
上拉电阻
2个CPU
时钟延时
强
极弱
弱
端口
引脚
端口锁存数据
PxPU控制位
输入数据
干扰抑制
端口上拉电阻控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0PU
FE10H
P07PU
P06PU
P05PU
P04PU
P03PU
P02PU
P01PU
P00PU
P1PU
FE11H
P17PU
P16PU
P15PU
P14PU
P13PU
P12PU
P11PU
P10PU
P2PU
FE12H
P27PU
P26PU
P25PU
P24PU
P23PU
P22PU
P21PU
P20PU
P3PU
FE13H
P37PU
P36PU
P35PU
P34PU
P33PU
P32PU
P31PU
P30PU
P4PU
FE14H
P47PU
P46PU
P45PU
P44PU
P43PU
P42PU
P41PU
P40PU
P5PU
FE15H
-
-
-
P54PU
P53PU
P52PU
P51PU
P50PU
P6PU
FE16H
P67PU
P66PU
P65PU
P64PU
P63PU
P62PU
P61PU
P60PU
P7PU
FE17H
P77PU
P76PU
P75PU
P74PU
P73PU
P72PU
P71PU
P70PU
端口内部4.1K上拉电阻控制位(注:P3.0和P3.1口上的上拉电阻可能会略小一些)
0:禁止端口内部的 4.1K 上拉电阻
1:使能端口内部的 4.1K 上拉电阻
9.3.6
如何设置 I/O 口对外输出速度
当用户需要 I/O 口对外输出较快的频率时,可通过加大 I/O 口驱动电流以及增加 I/O 口电平转换速度
以达到提高 I/O 口对外输出速度
设置 PxSR 寄存器,可用于控制 I/O 口电平转换速度,设置为 0 时相应的 I/O 口为快速翻转,设置为
1 时为慢速翻转。
设置 PxDR 寄存器,可用于控制 I/O 口驱动电流大小,设置为 1 时 I/O 输出为一般驱动电流,设置
为 0 时为强驱动电流
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 189 -
STC8A8K64D4 系列技术手册
9.3.7
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
如何设置 I/O 口电流驱动能力
若需要改变 I/O 口的电流驱动能力,可通过设置 PxDR 寄存器来实现
设置 PxDR 寄存器,可用于控制 I/O 口驱动电流大小,设置为 1 时 I/O 输出为一般驱动电流,设置
为 0 时为强驱动电流
9.3.8
如何降低 I/O 口对外辐射
由于设置 PxSR 寄存器,可用于控制 I/O 口电平转换速度,设置 PxDR 寄存器,可用于控制 I/O 口驱
动电流大小
当需要降低 I/O 口对外的辐射时,需要将 PxSR 寄存器设置为 1 以降低 I/O 口电平转换速度,同时需
要将 PxDR 寄存器设为 1 以降低 I/O 驱动电流,最终达到降低 I/O 口对外辐射
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 190 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
范例程序
9.4
端口模式设置
9.4.1
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0x94;
0x93;
0x92;
0x91;
0x96;
0x95;
0xb2;
0xb1;
0xb4;
0xb3;
0xca;
0xc9;
0xcc;
0xcb;
0xe2;
0xe1;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0xff;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0xff;
P3M0 = 0xff;
P3M1 = 0xff;
//设置 P0.0~P0.7 为双向口模式
//设置 P1.0~P1.7 为推挽输出模式
//设置 P2.0~P2.7 为高阻输入模式
//设置 P3.0~P3.7 为开漏模式
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
094H
093H
092H
091H
096H
095H
0B2H
0B1H
0B4H
0B3H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 191 -
STC8A8K64D4 系列技术手册
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
0CAH
0C9H
0CCH
0CBH
0E2H
0E1H
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
SP, #5FH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M0,#00H
P0M1,#00H
P1M0,#0FFH
P1M1,#00H
P2M0,#00H
P2M1,#0FFH
P3M0,#0FFH
P3M1,#0FFH
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
;设置 P0.0~P0.7 为双向口模式
;设置 P1.0~P1.7 为推挽输出模式
;设置 P2.0~P2.7 为高阻输入模式
;设置 P3.0~P3.7 为开漏模式
END
双向口读写操作
9.4.2
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sbit
P0M0
P0M1
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
P00
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0x94;
0x93;
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
P0^0;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 192 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P0M0 = 0x00;
P0M1 = 0x00;
//设置 P0.0~P0.7 为双向口模式
P00 = 1;
P00 = 0;
//P0.0 口输出高电平
//P0.0 口输出低电平
P00 = 1;
_nop_();
_nop_();
CY = P00;
//读取端口前先使能内部弱上拉电阻
//等待两个时钟
//
//读取端口状态
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M0
P0M1
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
094H
093H
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 193 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
MOV
MOV
MOV
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
P0M0,#00H
P0M1,#00H
;设置 P0.0~P0.7 为双向口模式
SETB
CLR
P0.0
P0.0
;P0.0 口输出高电平
;P0.0 口输出低电平
SETB
NOP
NOP
MOV
P0.0
;读取端口前先使能内部弱上拉电阻
;等待两个时钟
C,P0.0
;读取端口状态
JMP
$
选型顾问: 13922805190
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 194 -
STC8A8K64D4 系列技术手册
9.5
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
一种典型三极管控制电路
如果上拉控制,建议加上拉电阻 R1(3.3K~10K),如果不加上拉电阻 R1(3.3K~10K),建议 R2 的值在 15K
以上,或用强推挽输出。
9.6
典型发光二极管控制电路
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 195 -
STC8A8K64D4 系列技术手册
9.7
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
混合电压供电系统 3V/5V 器件 I/O 口互连
STC 的 5V 单片机连接 3.3V 器件时,为防止 3.3V 器件承受不了 5V,可将相应的 5V 单片机 I/O 口先串一
个 330Ω 的限流电阻到 3.3V 器件 I/O 口,程序初始化时将 5V 单片机的 I/O 口设置成开漏配置,断开内部上
拉电阻,相应的 3.3V 器件 I/O 口外部加 10K 上拉电阻到 3.3V 器件的 Vcc,这样高电平是 3.3V,低电平是 0V,
输入输出一切正常。
STC 的 3V 单片机连接 5V 器件时,为防止 3V 单片机承受不了 5V,如果相应的 I/O 口是输入,可在该 I/O
口上串接一个隔离二极管,隔离高压部分。外部信号电压高于单片机工作电压时截止,I/O 口因内内部上拉到
高电平,所以读 I/O 口状态是高电平;外部信号电压为低时导通,I/O 口被钳位在 0.7V,小于 0.8V 时单片机
读 I/O 口状态是低电平。
STC 的 3V 单片机连接 5V 器件时,为防止 3V 单片机承受不了 5V,如果相应的 I/O 口是输出,可用一个 NPN
三极管隔离,电路如下:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 196 -
STC8A8K64D4 系列技术手册
9.8
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
如何让 I/O 口上电复位时为低电平
传统 8051 单片机上电复位时普通 I/O 口为弱上拉(准双向口)高电平输出,而很多实际应用要求上电时某
些 I/O 口为低电平输出,否则所控制的系统(如马达)就会误动作,新一代 STC8A8K64D4 系列和 STC8H 系列单
片机由于所有的 I/O 复位后是高阻输入(除 P3.0/P3.1 是传统的弱上拉)
,加一个下拉电阻就可保证上电时为
低电平,后续要改为高电平,只需要将 I/O 的模式改为强推挽输出,对外输出高电平即可。
如下:在 STC 的单片机 I/O 口上加一个下拉电阻(10K 左右),这样上电复位时,除了下载口 P3.0 和 P3.1
为弱上拉(准双向口)外,其他 I/O 口均为高阻输入模式,而外部有下拉电阻,所以该 I/O 口上电复位时外部
为低电平。如果要将此 I/O 口驱动为高电平,可将此 I/O 口设置为强推挽输出,而强推挽输出时,I/O 口驱动
电流可达 20mA,故肯定可以将该口驱动为高电平输出。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 197 -
STC8A8K64D4 系列技术手册
9.9
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
利用 74HC595 驱动 8 个数码管(串行扩展,3 根线)的线路图
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 198 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
9.10 I/O 口直接驱动 LED 数码管应用线路图
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 199 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
9.11 用 STC 系列 MCU 的 I/O 口直接驱动段码 LCD
当产品需要段码 LCD 显示时,如果使用不带 LCD 驱动器的 MCU,则需要外接 LCD 驱动 IC,这会
增加成本。事实上,很多小项目,比如大量的小家电,需要显示的段码不多,常见的是 4 个 8 带小数点
或时钟的冒号“:”,这样如果使用 IO 口直接扫描显示,则会降低成本,工作更可靠。
但是,本方案不合适驱动太多的段( 占用 IO 太多),也不合适非常低功耗的场合(驱动会有几百
uA 电流)。
段码 LCD 驱动简单原理:如图 1 所示。
LCD 是一种特殊的液态晶体,在电场的作用下晶体的排列方向会发生扭转,因而改变其透光性,从
而可以看到显示内容。LCD 有一个扭转电压阀值,当 LCD 两端电压高于此阀值时,显示内容,低于此
阀值时,不显示。通常 LCD 有 3 个参数:工作电压、DUTY(对应 COM 数)和 BIAS(即偏压,对应
阀值),比如 3.0V、1/4 DUTY、1/3 BIAS,表示 LCD 显示电压为 3.0V,4 个 COM,阀值大约是 1.5V,
当加在某段 LCD 两端电压为 3.0V 时显示,而加 1.0V 时不显示。但是 LCD 对于驱动电压的反应不是很
敏感的,比如加 2V 时,可能会微弱显示,这就是通常说的“鬼影”。所以要保证驱动显示时,要大于阀
值电压比较多,而不显示时,要用比阀值小比较多的电压。
注意:LCD 要用交流驱动,其两端不能加直流电压,否则时间稍长就会损坏,所以要保证加在 LCD
两端的驱动电压的平均电压为 0。LCD 使用时分割扫描法,任何时候一个 COM 扫描有效,另外的 COM
处于无效状态。
驱动 1/4Duty 1/2BIAS 3V 的方案电路见图 1,LCD 扫描原理见图 3,MCU 为 3.0V 或 3.3V 工作,并
且每个 COM 都串一个 20K 电阻接到一个电容 C1,RC 滤波后得到一个中点电压 1/2VDD。在轮到某个
COM 扫描时,连接的 IO 设置成推挽输出,其余 COM 设置成高阻,如果与本 COM 连接的 SEG 不显示,
则 SEG 输出与 COM 同相,如果显示,则反相。扫描完后,这个 COM 的 IO 就设置成高阻。每个 COM
通过 20K 电阻连接到电容 C1 上的 1/2VDD 电压,而 SEG 根据是否显示输出高低电平,这样加在 LCD
段上的电压,显示时是+-VDD,不显示时是+-1/2VDD,保证了 LCD 两端平均直流电压为 0。
驱动 1/4Duty 1/3BIAS 3V 的方案电路见图 4,LCD 扫描原理见图 5,MCU 为 5V 工作,SEG 接的
IO 通过电阻分压输出 1.5V、3.5V,COM 接的 IO 通过电阻分压输出 0.5V、2.5V(高阻时)、4.5V,分压
电阻公共点接到一个电容 C1,RC 滤波后得到一个中点电压 1/2VDD。在轮到某个 COM 扫描时,设置成
推挽输出,如果与本 COM 连接的 SEG 不显示,则 SEG 输出与 COM 同相,如果显示,则反相。扫描完
后,这个 COM 的 IO 就设置成高阻,这样这个 COM 就通过 47K 电阻连接到 2.5V 电压,而 SEG 根据是
否显示输出高低电平,这样加在 LCD 上的电压,显示时是+-3.0V,不显示时是+-1.0V,完全满足 LCD
的扫描要求。
当需要睡眠省电时,把所有 COM 和 SEG 驱动 IO 全部输出低电平,LCD 驱动部分不会增加额外电
流。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 200 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
图 1:驱动 1/4Duty 1/2BIAS 3V LCD 的电路
图 2:段码名称图
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 201 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
图 3:1/4Duty 1/2BIAS 扫描原理图
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 202 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
图 4:驱动 1/4Duty 1/3BIAS 3V LCD 的电路
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 203 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
图 5:1/4Duty 1/3BIAS 扫描原理图
为了使用方便,显示内容放在一个显存中,其中的各个位与 LCD 的段一一对应,见图 6。
图 6:LCD 真值表和显存影射表
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 204 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
图 7:驱动效果照片
本 LCD 扫描程序仅需要两个函数:
1、 LCD 段码扫描函数 void
LCD_scan(void)
程序隔一定的时间调用这个函数,就会将 LCD 显示缓冲的内容显示到 LCD 上,全部扫描一次需要 8 个
调用周期,调用间隔一般是 1~2ms,假如使用 1ms,则扫描周期就是 8ms,刷新率就是 125HZ。
2、 LCD 段码显示缓冲装载函数 void LCD_load(u8 n,u8 dat)
本函数用来将显示的数字或字符放在 LCD 显示缓冲中,比如 LCD_load(1,6),就是要在第一个数字位置
显示数字 6,支持显示 0~9,A~F,其它字符用户可以自己添加。
另外,用宏来显示、熄灭或闪烁冒号或小数点。
汇编代码
;用 STC8 系列测试 I/O 直接驱动段码 LCD(6 个 8 字 LCD, 1/4 Dutys, 1/3 bias)。
;上电后显示一个时间(时分秒).
;************************************************************
P0M1
DATA
0x93
P0M0
DATA
0x94
P1M1
DATA
0x91
P1M0
DATA
0x92
P2M1
DATA
0x95
P2M0
DATA
0x96
P3M1
DATA
0xB1
P3M0
DATA
0xB2
P4M1
DATA
0xB3
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 205 -
STC8A8K64D4 系列技术手册
P4M0
P5M1
P5M0
P6M1
P6M0
P7M1
P7M0
AUXR
INT_CLKO
IE2
P4
T2H
T2L
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
0xB4
0xC9
0xC
0xCB
0xCC
0xE1
0xE2
0x8E
0x8F
0xAF
0xC0
0xD6
0xD7
;************************************************************
DIS_BLACK
EQU
010H
DIS_
EQU
011H
DIS_A
EQU
00AH
DIS_B
EQU
00BH
DIS_C
EQU
00CH
DIS_D
EQU
00DH
DIS_E
EQU
00EH
DIS_F
EQU
00FH
B_2ms
B_Second
cnt_500ms
second
minute
hour
scan_index
BIT
BIT
DATA
DATA
DATA
DATA
DATA
20H.0
20H.1
30H
31H
32H
33H
34H
;2ms 信号
;秒信号
LCD_buff
DATA
40H
;40H~47H
;************************************************************
ORG
0000H
LJMP
F_Main
ORG
LJMP
000BH
F_Timer0_Interrupt
;************************************************************
ORG
0100H
F_Main:
CLR
A
MOV
P3M1, A
;设置为准双向口
MOV
P3M0, A
MOV
P5M1, A
;设置为准双向口
MOV
P5M0, A
MOV
MOV
ANL
ORL
ORL
ANL
MOV
MOV
USING
深圳国芯人工智能有限公司
P1M1, #0
P1M0, #0ffh
P2M1, #NOT 0f0h
P2M0, #0f0h
P2M1, #00fH
P2M0, #0f0H
SP, #0D0H
PSW, #0
0
; segment 设置为推挽输出
; segment 设置为推挽输出
;全部 COM 输出高阻, COM 为中点电压
;选择第 0 组 R0~R7
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 206 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
;************************************************************
MOV
R2, #8
MOV
R0, #LCD_buff
L_ClearLcdRam:
MOV
@R0, #0
INC
R0
DJNZ
R2, L_ClearLcdRam
;
;
LCALL
SETB
F_Timer0_init
EA
ORL
ORL
LCD_buff, #020H
LCD_buff, #002H
;显示时分间隔:
;显示分秒间隔:
MOV
MOV
MOV
LCALL
hour, #12
minute, #00
second, #00
F_LoadRTC
;显示时间
;************************************************************
L_Main_Loop:
JNB
B_2ms, L_Main_Loop
;2ms 节拍到
CLR
B_2ms
INC
MOV
CJNE
cnt_500ms
A, cnt_500ms
A, #250, L_Main_Loop
MOV
cnt_500ms, #0;
XRL
XRL
LCD_buff, #020H
LCD_buff, #002H
CPL
JNB
B_Second
B_Second, L_Main_Loop
INC
MOV
CJNE
MOV
INC
MOV
CJNE
MOV
INC
MOV
CJNE
MOV
second
A, second
A, #60, L_Main_Load
second, #0
minute
A, minute
A, #60, L_Main_Load
minute, #0;
hour
A, hour
A, #24, L_Main_Load
hour, #0
LCALL
LJMP
F_LoadRTC
L_Main_Loop
;500ms 到
;闪烁时分间隔:
;闪烁分秒间隔:
; 1 分钟到
;24 小时到
L_Main_Load:
;显示时间
;************************************************************
F_Timer0_init:
CLR
ANL
SETB
深圳国芯人工智能有限公司
TR0
TMOD, #0f0H
ET0
; 停止计数
; 允许中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 207 -
STC8A8K64D4 系列技术手册
ORL
ANL
ORL
MOV
MOV
SETB
RET
官方网站: www.STCMCUDATA.com
TMOD, #0
INT_CLKO, #NOT 0x01
AUXR, #0x80
TH0, #HIGH (-22118)
TL0, #LOW (-22118)
TR0
技术支持: 19864585985
选型顾问: 13922805190
; 工作模式, 0: 16 位自动重装
; 不输出时钟
; 1T mode
; 2ms
;
; 开始运行
;************************************************************
F_Timer0_Interrupt:
;Timer0 1ms 中断函数
PUSH
PSW
;PSW 入栈
PUSH
ACC
;ACC 入栈
PUSH
AR0
PUSH
AR7
PUSH
DPH
PUSH
DPL
LCALL
SETB
F_LCD_scan
B_2ms
POP
POP
POP
POP
POP
POP
RETI
DPL
DPH
AR7
AR0
ACC
PSW
;ACC 出栈
;PSW 出栈
;******************** 显示时间 **************************
F_LoadRTC:
MOV
R6, #1
;LCD_load(1,hour/10);
MOV
A, hour
MOV
B, #10
DIV
AB
MOV
R7, A
LCALL
F_LCD_load
;R6 为第几个数字,为 1~6,R7 为要显示的数字
MOV
MOV
MOV
DIV
MOV
LCALL
R6, #2
A, hour
B, #10
AB
R7, B
F_LCD_load
;LCD_load(2,hour%10);
MOV
MOV
MOV
DIV
MOV
LCALL
R6, #3
A, minute
B, #10
AB
R7, A
F_LCD_load
;LCD_load(3,minute/10);
MOV
MOV
MOV
DIV
MOV
LCALL
R6, #4
A, minute
B, #10
AB
R7, B
F_LCD_load
;LCD_load(4,minute%10);
MOV
R6, #5
;LCD_load(5,second/10);
深圳国芯人工智能有限公司
;R6 为第几个数字,为 1~6,R7 为要显示的数字
;R6 为第几个数字,为 1~6,R7 为要显示的数字
;R6 为第几个数字,为 1~6,R7 为要显示的数字
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 208 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
DIV
MOV
LCALL
A, second
B, #10
AB
R7, A
F_LCD_load
MOV
MOV
MOV
DIV
MOV
LCALL
R6, #6
A, second
B, #10
AB
R7, B
F_LCD_load
技术支持: 19864585985
选型顾问: 13922805190
;R6 为第几个数字,为 1~6,R7 为要显示的数字
;LCD_load(6,second%10);
;R6 为第几个数字,为 1~6,R7 为要显示的数字
RET
;************************************************************
T_COM:
DB
008H, 004H, 002H, 001H
F_LCD_scan:
MOV
CLR
RRC
MOV
ADD
MOV
ORL
ANL
A, scan_index
C
A
R7, A
A, #LCD_buff
R0, A
P2M1, #00fH
P2M0, #0f0H
MOV
JNB
MOV
CPL
MOV
MOV
ADD
MOV
MOV
ANL
CPL
MOV
SJMP
A, scan_index
ACC.0, L_LCD_Scan2
A, @R0
A
P1, A
A, R0
A, #4
R0, A
A, @R0
A, #0f0H
A
P2, A
L_LCD_Scan3
MOV
MOV
MOV
ADD
MOV
MOV
ANL
MOV
A, @R0
P1, A
A, R0
A, #4
R0, A
A, @R0
A, #0f0H
P2, A
MOV
MOV
MOVC
ORL
CPL
DPTR, #T_COM
A, R7
A, @A+DPTR
P2M0, A
A
L_LCD_Scan2:
;j = scan_index >> 1;
;R7 = j
;R0 = LCD_buff[j]
;全部 COM 输出高阻, COM 为中点电压
;if(scan_index & 1)
;P1 = ~LCD_buff[j];
//反相扫描
;P2 = ~(LCD_buff[j|4] & 0xf0);
;正相扫描
;P1 = LCD_buff[j];
;P2 = (LCD_buff[j|4] & 0xf0);
L_LCD_Scan3:
深圳国芯人工智能有限公司
;某个 COM 设置为推挽输出
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 209 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
ANL
P2M1, A
INC
MOV
CJNE
MOV
scan_index
A, scan_index
A, #8, L_QuitLcdScan
scan_index, #0
技术支持: 19864585985
选型顾问: 13922805190
;if(++scan_index == 8) scan_index = 0;
L_QuitLcdScan:
RET
;******************* 标准字库 **************************
T_Display:
;
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
DB
03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH,077H,07CH,039H,05EH,079H,071H
;
black DB
000H,040H
;****************** 对第 1~6 数字装载显示函数 算法简单 ***************************
F_LCD_load:
;R6 为第几个数字,为 1~6,R7 为要显示的数字
MOV
DPTR, #T_Display
;i = t_display[dat];
MOV
A, R7
MOVC
A, @A+DPTR
MOV
B, A
;要显示的数字
MOV
CJNE
MOV
MOV
MOV
MOV
MOV
A, R6
A, #1, L_NotLoadChar1
R0,
A, @R0
C, B.3
ACC.6, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.2
ACC.6, C
C, B.4
ACC.7, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.1
ACC.6, C
C, B.6
ACC.7, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
RET
R0
A, @R0
C, B.0
ACC.6, C
C, B.5
ACC.7, C
@R0, A
L_NotLoadChar1:
CJNE
深圳国芯人工智能有限公司
#LCD_buff
;D
;C
;E
;B
;G
;A
;F
A, #2, L_NotLoadChar2
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 210 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
R0,#LCD_buff
A, @R0
C, B.3
ACC.4, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.2
ACC.4, C
C, B.4
ACC.5, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.1
ACC.4, C
C, B.6
ACC.5, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
RET
R0
A, @R0
C, B.0
ACC.4, C
C, B.5
ACC.5, C
@R0, A
L_NotLoadChar2:
CJNE
MOV
MOV
MOV
MOV
MOV
A, #3, L_NotLoadChar3
R0,#LCD_buff
A, @R0
C, B.3
ACC.2, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.2
ACC.2, C
C, B.4
ACC.3, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.1
ACC.2, C
C, B.6
ACC.3, C
@R0, A
INC
MOV
MOV
MOV
R0
A, @R0
C, B.0
ACC.2, C
深圳国芯人工智能有限公司
技术支持: 19864585985
选型顾问: 13922805190
;D
;C
;E
;B
;G
;A
;F
;D
;C
;E
;B
;G
;A
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 211 -
STC8A8K64D4 系列技术手册
MOV
MOV
MOV
RET
L_NotLoadChar3:
CJNE
MOV
MOV
MOV
MOV
MOV
官方网站: www.STCMCUDATA.com
C, B.5
ACC.3, C
@R0, A
A, #4, L_NotLoadChar4
R0,#LCD_buff
A, @R0
C, B.3
ACC.0, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.2
ACC.0, C
C, B.4
ACC.1, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.1
ACC.0, C
C, B.6
ACC.1, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
RET
R0
A, @R0
C, B.0
ACC.0, C
C, B.5
ACC.1, C
@R0, A
L_NotLoadChar4:
CJNE
MOV
MOV
MOV
MOV
MOV
A, #5, L_NotLoadChar5
R0,#LCD_buff+4
A, @R0
C, B.3
ACC.6, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.2
ACC.6, C
C, B.4
ACC.7, C
@R0, A
INC
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.1
ACC.6, C
C, B.6
深圳国芯人工智能有限公司
技术支持: 19864585985
选型顾问: 13922805190
;F
;D
;C
;E
;B
;G
;A
;F
;D
;C
;E
;B
;G
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 212 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
ACC.7, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
RET
R0
A, @R0
C, B.0
ACC.6, C
C, B.5
ACC.7, C
@R0, A
L_NotLoadChar5:
CJNE
MOV
MOV
MOV
MOV
MOV
A, #6, L_NotLoadChar6
R0,#LCD_buff+4
A, @R0
C, B.3
ACC.4, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.2
ACC.4, C
C, B.4
ACC.5, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
R0
A, @R0
C, B.1
ACC.4, C
C, B.6
ACC.5, C
@R0, A
INC
MOV
MOV
MOV
MOV
MOV
MOV
RET
L_NotLoadChar6:
RET
R0
A, @R0
C, B.0
ACC.4, C
C, B.5
ACC.5, C
@R0, A
E
技术支持: 19864585985
选型顾问: 13922805190
;A
;F
;D
;C
;E
;B
;G
;A
;F
N
D
C 语言代码
/*****************功能说明******************
用 STC15 系列测试 I/O 直接驱动段码 LCD(6 个 8 字 LCD, 1/4 Dutys, 1/3 bias)。
上电后显示一个时间(时分秒).
P3.2 对地接一个开关,用来进入睡眠或唤醒.
******************************************/
#include "reg51.h"
#include "intrins.h"
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 213 -
STC8A8K64D4 系列技术手册
typedef
typedef
typedef
unsigned char
unsigned int
unsigned long
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
u8;
u16;
u32;
sfr AUXR = 0x8e;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
/********************本地常量声明**************************/
#define MAIN_Fosc
11059200L
//定义主时钟
#define DIS_BLACK
#define DIS_
#define DIS_A
#define DIS_B
#define DIS_C
#define DIS_D
#define DIS_E
#define DIS_F
0x10
0x11
0x0A
0x0B
0x0C
0x0D
0x0E
0x0F
#define LCD_SET_DP2
#define LCD_CLR_DP2
#define LCD_FLASH_DP2
LCD_buff[0] |= 0x08
LCD_buff[0] &= ~0x08
LCD_buff[0] ^= 0x08
#define LCD_SET_DP4
#define LCD_CLR_DP4
#define LCD_FLASH_DP4
LCD_buff[4] |= 0x80
LCD_buff[4] &= ~0x80
LCD_buff[4] ^= 0x80
#define LCD_SET_2M
#define LCD_CLR_2M
#define LCD_FLASH_2M
LCD_buff[0] |= 0x20
LCD_buff[0] &= ~0x20
LCD_buff[0] ^= 0x20
#define LCD_SET_4M
#define LCD_CLR_4M
#define LCD_FLASH_4M
LCD_buff[0] |= 0x02
LCD_buff[0] &= ~0x02
LCD_buff[0] ^= 0x02
#define LCD_SET_DP5
#define LCD_CLR_DP5
#define LCD_FLASH_DP5
LCD_buff[4] |= 0x20
LCD_buff[4] &= ~0x20
LCD_buff[4] ^= 0x20
#define P1n_standard(bitn)
#define P1n_push_pull(bitn)
#define P1n_pure_input(bitn)
#define P1n_open_drain(bitn)
P1M1 &= ~(bitn), P1M0 &= ~(bitn)
P1M1 &= ~(bitn), P1M0 |= (bitn)
P1M1 |= (bitn), P1M0 &= ~(bitn)
P1M1 |= (bitn), P1M0 |= (bitn)
#define P2n_standard(bitn)
#define P2n_push_pull(bitn)
#define P2n_pure_input(bitn)
#define P2n_open_drain(bitn)
P2M1 &= ~(bitn), P2M0 &= ~(bitn)
P2M1 &= ~(bitn), P2M0 |= (bitn)
P2M1 |= (bitn), P2M0 &= ~(bitn)
P2M1 |= (bitn), P2M0 |= (bitn)
/********************本地变量声明**************************/
u8 cnt_500ms;
u8 second,minute,hour;
bit B_Second;
bit B_2ms;
u8 LCD_buff[8];
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 214 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
u8 scan_index;
/********************本地函数声明**************************/
void LCD_load(u8 n,u8 dat);
void LCD_scan(void);
void LoadRTC(void);
void delay_ms(u8 ms);
/********************主函数**************************/
void main(void)
{
u8 i;
AUXR = 0x80;
TMOD = 0x00;
TL0 = (65536 - (MAIN_Fosc / 500));
TH0 = (65536 - (MAIN_Fosc / 500)) >> 8;
TR0 = 1;
ET0 = 1;
EA = 1;
//初始化 LCD 显存
for(i=0; i= 250)
{
cnt_500ms = 0;
//
LCD_FLASH_2M;
//
LCD_FLASH_4M;
//500ms 到
//闪烁时分间隔:
//闪烁分秒间隔:
B_Second = ~B_Second;
if(B_Second)
{
if(++second >= 60)
//1 分钟到
{
second = 0;
if(++minute >= 60)
//1 小时到
{
minute = 0;
if(++hour >= 24) hour = 0; //24 小时到
}
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 215 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
LoadRTC();
技术支持: 19864585985
选型顾问: 13922805190
//显示时间
}
}
if(!INT0)
{
LCD_CLR_2M;
LCD_CLR_4M;
LCD_load(1,DIS_BLACK);
LCD_load(2,DIS_BLACK);
LCD_load(3,0);
LCD_load(4,0x0F);
LCD_load(5,0x0F);
LCD_load(6,DIS_BLACK);
//键按下,准备睡眠
//显示时分间隔:
//显示分秒间隔:
while(!INT0) delay_ms(10);
delay_ms(50);
while(!INT0) delay_ms(10);
//等待释放按键
TR0 = 0;
IE0 = 0;
EX0 = 1;
IT0 = 1;
//关闭定时器
//外中断 0 标志位
//INT0 Enable
//INT0 下降沿中断
P1n_push_pull(0xff);
P2n_push_pull(0xff);
P1 = 0;
P2 = 0;
//com 和 seg 全部输出 0
PCON |= 0x02;
_nop_();
_nop_();
_nop_();
//Sleep
LCD_SET_2M;
LCD_SET_4M;
LoadRTC();
TR0 = 1;
while(!INT0) delay_ms(10);
delay_ms(50);
while(!INT0) delay_ms(10);
//显示时分间隔:
//显示分秒间隔:
//显示时间
//打开定时器
//等待释放按键
//再次等待释放按键
//再次等待释放按键
}
}
}
}
/********************延时函数**************************/
void delay_ms(u8 ms)
{
unsigned int i;
do{
i = MAIN_Fosc / 13000;
while(--i);
//14T per loop
}while(--ms);
}
/********************* Timer0 中断函数************************/
void timer0_int (void) interrupt 1
{
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 216 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
LCD_scan();
B_2ms = 1;
}
/********************* INT0 中断函数 *************************/
void INT0_int (void) interrupt 0
{
EX0 = 0;
IE0 = 0;
}
/****************** LCD 段码扫描函数 ***************************/
void LCD_scan(void)
//5us @22.1184MHZ
{
u8 code T_COM[4]={0x08,0x04,0x02,0x01};
u8 j;
j = scan_index >> 1;
P2n_pure_input(0x0f);
if(scan_index & 1)
{
P1 = ~LCD_buff[j];
P2 = ~(LCD_buff[j|4] & 0xf0);
}
else
{
P1 = LCD_buff[j];
P2 = LCD_buff[j|4] & 0xf0;
}
P2n_push_pull(T_COM[j]);
if(++scan_index >= 8) scan_index = 0;
//全部 COM 输出高阻, COM 为中点电压
//反相扫描
//正相扫描
//某个 COM 设置为推挽输出
}
/****************** 对第 1~6 数字装载显示函数 ***************************/
void LCD_load(u8 n, u8 dat)
//n 为第几个数字,dat 为要显示的数字
{
u8 code t_display[]={
//标准字库
// 0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
//black 0x00,0x40
};
u8 code T_LCD_mask[4] = {~0xc0,~0x30,~0x0c,~0x03};
u8 code T_LCD_mask4[4] = {~0x40,~0x10,~0x04,~0x01};
u8 i,k;
u8 *p;
if((n == 0) || (n > 6)) return;
i = t_display[dat];
if(n >2*n);
p++;
k = 0;
if(i & 0x04) k |= 0x40;
if(i & 0x10) k |= 0x80;
*p = (*p & T_LCD_mask[n]) | (k>>2*n);
p++;
k = 0;
if(i & 0x02) k |= 0x40;
if(i & 0x40) k |= 0x80;
*p = (*p & T_LCD_mask[n]) | (k>>2*n);
p++;
k = 0;
if(i & 0x01) k |= 0x40;
if(i & 0x20) k |= 0x80;
*p = (*p & T_LCD_mask[n]) | (k>>2*n);
//D
//C
//E
//B
//G
//A
//F
}
/********************显示时间 **************************/
void LoadRTC(void)
{
LCD_load(1,hour/10);
LCD_load(2,hour%10);
LCD_load(3,minute/10);
LCD_load(4,minute%10);
LCD_load(5,second/10);
LCD_load(6,second%10);
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 218 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
10 指令系统
助记符
指令说明
字节
时钟
ADD
A,Rn
寄存器内容加到累加器
1
1
ADD
A,direct
直接地址单元的数据加到累加器
2
1
ADD
A,@Ri
间接地址单元的数据加到累加器
1
1
ADD
A,#data
立即数加到累加器
2
1
ADDC
A,Rn
寄存器带进位加到累加器
1
1
ADDC
A,direct
直接地址单元的数据带进位加到累加器
2
1
ADDC
A,@Ri
间接地址单元的数据带进位加到累加器
1
1
ADDC
A,#data
立即数带进位加到累加器
2
1
SUBB
A,Rn
累加器带借位减寄存器内容
1
1
SUBB
A,direct
累加器带借位减直接地址单元的内容
2
1
SUBB
A,@Ri
累加器带借位减间接地址单元的内容
1
1
SUBB
A,#data
累加器带借位减立即数
2
1
INC
A
累加器加1
1
1
INC
Rn
寄存器加1
1
1
INC
direct
直接地址单元加1
2
1
INC
@Ri
间接地址单元加1
1
1
DEC
A
累加器减1
1
1
DEC
Rn
寄存器减1
1
1
DEC
direct
直接地址单元减1
2
1
DEC
@Ri
间接地址单元减1
1
1
INC
DPTR
地址寄存器DPTR加1
1
1
MUL
AB
A乘以B,B存放高字节,A存放低字节
1
2
DIV
AB
A除以B,B存放余数,A存放商
1
6
DA
A
累加器十进制调整
1
3
ANL
A,Rn
累加器与寄存器相与
1
1
ANL
A,direct
累加器与直接地址单元相与
2
1
ANL
A,@Ri
累加器与间接地址单元相与
1
1
ANL
A,#data
累加器与立即数相与
2
1
ANL
direct,A
直接地址单元与累加器相与
2
1
ANL
direct,#data
直接地址单元与立即数相与
3
1
ORL
A,Rn
累加器与寄存器相或
1
1
ORL
A,direct
累加器与直接地址单元相或
2
1
ORL
A,@Ri
累加器与间接地址单元相或
1
1
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 219 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
ORL
A,#data
累加器与立即数相或
2
1
ORL
direct,A
直接地址单元与累加器相或
2
1
ORL
direct,#data
直接地址单元与立即数相或
3
1
XRL
A,Rn
累加器与寄存器相异或
1
1
XRL
A,direct
累加器与直接地址单元相异或
2
1
XRL
A,@Ri
累加器与间接地址单元相异或
1
1
XRL
A,#data
累加器与立即数相异或
2
1
XRL
direct,A
直接地址单元与累加器相异或
2
1
XRL
direct,#data
直接地址单元与立即数相异或
3
1
CLR
A
累加器清0
1
1
CPL
A
累加器取反
1
1
RL
A
累加器循环左移
1
1
RLC
A
累加器带进位循环左移
1
1
RR
A
累加器循环右移
1
1
RRC
A
累加器带进位循环右移
1
1
SWAP
A
累加器高低半字节交换
1
1
CLR
C
清零进位位
1
1
CLR
bit
清0直接地址位
2
1
SETB
C
置1进位位
1
1
SETB
bit
置1直接地址位
2
1
CPL
C
进位位求反
1
1
CPL
bit
直接地址位求反
2
1
ANL
C,bit
进位位和直接地址位相与
2
1
ANL
C,/bit
进位位和直接地址位的反码相与
2
1
ORL
C,bit
进位位和直接地址位相或
2
1
ORL
C,/bit
进位位和直接地址位的反码相或
2
1
MOV
C,bit
直接地址位送入进位位
2
1
MOV
bit,C
进位位送入直接地址位
2
1
MOV
A,Rn
寄存器内容送入累加器
1
1
MOV
A,direct
直接地址单元中的数据送入累加器
2
1
MOV
A,@Ri
间接地址中的数据送入累加器
1
1
MOV
A,#data
立即数送入累加器
2
1
MOV
Rn,A
累加器内容送入寄存器
1
1
MOV
Rn,direct
直接地址单元中的数据送入寄存器
2
1
MOV
Rn,#data
立即数送入寄存器
2
1
MOV
direct,A
累加器内容送入直接地址单元
2
1
MOV
direct,Rn
寄存器内容送入直接地址单元
2
1
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 220 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
MOV
direct,direct
直接地址单元中的数据送入另一个直接地址单元
3
1
MOV
direct,@Ri
间接地址中的数据送入直接地址单元
2
1
MOV
direct,#data
立即数送入直接地址单元
3
1
MOV
@Ri,A
累加器内容送间接地址单元
1
1
MOV
@Ri,direct
直接地址单元数据送入间接地址单元
2
1
MOV
@Ri,#data
立即数送入间接地址单元
2
1
MOV
DPTR,#data16
16位立即数送入数据指针
3
1
MOVC
A,@A+DPTR
以DPTR为基地址变址寻址单元中的数据送入累加器
1
4
MOVC
A,@A+PC
以PC为基地址变址寻址单元中的数据送入累加器
1
3
MOVX A,@Ri
扩展地址(8位地址)的内容送入累加器A中
1
3[1]
MOVX A,@DPTR
扩展RAM(16位地址)的内容送入累加器A中
1
2[1]
MOVX @Ri,A
将累加器A的内容送入扩展RAM(8位地址)中
1
3[1]
MOVX @DPTR,A
将累加器A的内容送入扩展RAM(16位地址)中
1
2[1]
PUSH
direct
直接地址单元中的数据压入堆栈
2
1
POP
direct
栈底数据弹出送入直接地址单元
2
1
XCH
A,Rn
寄存器与累加器交换
1
1
XCH
A,direct
直接地址单元与累加器交换
2
1
XCH
A,@Ri
间接地址与累加器交换
1
1
XCHD
A,@Ri
间接地址的低半字节与累加器交换
1
1
ACALL addr11
短调用子程序
2
3
LCALL addr16
长调用子程序
3
3
RET
子程序返回
1
3
RETI
中断返回
1
3
AJMP
addr11
短跳转
2
3
LJMP
addr16
长跳转
3
3
SJMP
rel
相对跳转
2
3
JMP
@A+DPTR
相对于DPTR的间接跳转
1
4
JZ
rel
累加器为零跳转
2
1/3[2]
JNZ
rel
累加器非零跳转
2
1/3[2]
JC
rel
进位位为1跳转
2
1/3[2]
JNC
rel
进位位为0跳转
2
1/3[2]
JB
bit,rel
直接地址位为1则跳转
3
1/3[2]
JNB
bit,rel
直接地址位为0则跳转
3
1/3[2]
JBC
bit,rel
直接地址位为1则跳转,该位清0
3
1/3[2]
CJNE
A,direct,rel
累加器与直接地址单元不相等跳转
3
2/3[3]
CJNE
A,#data,rel
累加器与立即数不相等跳转
3
1/3[2]
CJNE
Rn,#data,rel
寄存器与立即数不相等跳转
3
2/3[3]
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 221 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
CJNE
@Ri,#data,rel
间接地址单元与立即数不相等跳转
3
2/3[3]
DJNZ
Rn,rel
寄存器减1后非零跳转
2
2/3[3]
DJNZ
direct,rel
直接地址单元减1后非零跳转
3
2/3[3]
空操作
1
1
NOP
:访问外部扩展 RAM 时,指令的执行周期与寄存器 BUS_SPEED 中的 SPEED[2:0]位有关
:对于条件跳转语句的执行时间会依据条件是否满足而不同。当条件不满足时,不会发生跳转而继续执
行下一条指令,此时条件跳转语句的执行时间为 1 个时钟;当条件满足时,则会发生跳转,此时条件跳
转语句的执行时间为 3 个时钟。
[3]
:对于条件跳转语句的执行时间会依据条件是否满足而不同。当条件不满足时,不会发生跳转而继续执
行下一条指令,此时条件跳转语句的执行时间为 2 个时钟;当条件满足时,则会发生跳转,此时条件跳
转语句的执行时间为 3 个时钟。
[1]
[2]
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 222 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
11 中断系统
(C 语言程序中使用中断号大于 31 的中断时,在 Keil 中编译会报错,解决办法请参考附录)
中断系统是为使 CPU 具有对外界紧急事件的实时处理能力而设置的。
当中央处理机 CPU 正在处理某件事的时候外界发生了紧急事件请求,要求 CPU 暂停当前的工作,
转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为
中断。实现这种功能的部件称为中断系统,请示 CPU 中断的请求源称为中断源。微型机的中断系统一般
允许多个中断源,当几个中断源同时向 CPU 请求中断,要求为它服务的时候,这就存在 CPU 优先响应
哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规
定每一个中断源有一个优先级别。CPU 总是先响应优先级别最高的中断请求。
当 CPU 正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它
还高的中断源请求。如果 CPU 能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,
处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。这样的中断系统称为多级中断系
统,没有中断嵌套功能的中断系统称为单级中断系统。
用户可以用关总中断允许位(EA/IE.7)或相应中断的允许位屏蔽相应的中断请求,也可以用打开相
应的中断允许位来使 CPU 响应相应的中断申请,每一个中断源可以用软件独立地控制为开中断或关中断
状态,部分中断的优先级别均可用软件设置。高优先级的中断请求可以打断低优先级的中断,反之,低
优先级的中断请求不可以打断高优先级的中断。当两个相同优先级的中断同时产生时,将由查询次序来
决定系统先响应哪个中断。
11.1 STC8A8K64D4 系列中断源
下表中√表示对应的系列有相应的中断源
中断源
STC8A8K64S4系列
外部中断 0 中断(INT0)
支持下降沿和边沿中断
√
定时器 0 中断(Timer0)
√
外部中断 1 中断(INT1)
支持下降沿和边沿中断
√
定时器 1 中断(Timer1)
√
串口 1 中断(UART1)
√
模数转换中断(ADC)
√
低压检测中断(LVD)
√
捕获中断(CCP/PCA/PWM)
支持下降沿、上升沿和边沿中断
√
串口 2 中断(UART2)
√
串行外设接口中断(SPI)
√
外部中断 2 中断(INT2)
支持下降沿中断
√
外部中断 3 中断(INT3)
√
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 223 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
支持下降沿中断
定时器 2 中断(Timer2)
√
外部中断 4 中断(INT4)
√
串口 3 中断(UART3)
√
串口 4 中断(UART4)
√
定时器 3 中断(Timer3)
√
定时器 4 中断(Timer4)
√
比较器中断(CMP)
√
增强型 PWM 中断
√
PWM 异常检测中断
√
I2C 总线中断
√
P0 口中断
支持下降沿、上升沿、高电平和低电平中断
√
P1 口中断
支持下降沿、上升沿、高电平和低电平中断
√
P2 口中断
支持下降沿、上升沿、高电平和低电平中断
√
P3 口中断
支持下降沿、上升沿、高电平和低电平中断
√
P4 口中断
支持下降沿、上升沿、高电平和低电平中断
√
P5 口中断
支持下降沿、上升沿、高电平和低电平中断
√
P6 口中断
支持下降沿、上升沿、高电平和低电平中断
√
P7 口中断
支持下降沿、上升沿、高电平和低电平中断
√
BMM_M2M 中断
√
BMM_ADC 中断
√
BMM_SPI 中断
√
BMM_UR1T 中断
√
BMM_UR1R 中断
√
BMM_UR2T 中断
√
BMM_UR2R 中断
√
BMM_UR3T 中断
√
BMM_UR3R 中断
√
BMM_UR4T 中断
√
BMM_UR4R 中断
√
BMM_LCM 中断
√
LCM 中断
√
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 224 -
STC8A8K64D4 系列技术手册
深圳国芯人工智能有限公司
官方网站: www.STCMCUDATA.com
国内分销商电话: 0513-5501 2928/2929/2966
技术支持: 19864585985
选型顾问: 13922805190
传真: 0513-5501 2926/2956/2947
- 225 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
11.2 STC8A8K64D4 中断结构图
中断请求
中断允许控制
中断优先级控制
最低优先级
较低优先级
较高优先级
最高优先级
TCON.0/IT0=0
EX0
INT0
EA
0
PX0/PX0H
IE0
1
2
3
TCON.0/IT0=1
ET0
Timer0
EA
0
PT0/PT0H
TF0
1
2
3
TCON.2/IT1=0
EX1
INT1
EA
0
PX1/PX1H
IE1
1
2
3
TCON.2/IT1=1
Timer1
EA
PT1/PT1H
0
ES
EA
PS/PSH
0
TF1
RI
UART1
ET1
TI
ADC
EADC
EA
PADC/PADCH
0
ELVD
EA
PLVD/PLVDH
0
ADC_Flag
LVD
LVDF
1
1
1
1
2
2
2
2
ECF
3
3
3
3
CF
ECF0
CCF0
ECF1
PCA
EA
CCF1
0
PPCA/PPCAH
1
2
ECF2
3
CCF2
ECF3
CCF3
S2RI
UART2
S2TI
SPI
ES2
EA
PS2/PS2H
0
ESPI
EA
PSPI/PSPIH
0
SPIF
EX2
INT2
INT2IF
INT3
INT3IF
Timer2
EA
优先级固定为最低优先级
ET2
EA
优先级固定为最低优先级
EX4
EA
ES3
EA
INT4IF
S3RI
UART4
S3TI
S4RI
ES4
S4TI
ET3
Timer3
T3IF
Timer4
T4IF
ET4
CMP
优先级固定为最低优先级
EX3
T2IF
INT4
UART3
EA
PIE
EA
EA
EA
EA
CMPIF
PS3/PS3H
PCMP/PCMPH
2
3
3
0
0
0
优先级固定为最低优先级
2
0
0
优先级固定为最低优先级
1
0
PX4/PX4H
PS4/PS4H
1
1
1
1
2
2
2
3
3
3
0
0
0
1
2
NIE
3
ECBI
CBIF
C0IF
C1IF
C2IF
PWM
C3IF
C4IF
C5IF
C6IF
C7IF
EC0I
EC0T1SI
EC0T2SI
EC1I
EC1T1SI
EC1T2SI
EC2I
EC2T1SI
EC2T2SI
EC3I
EFDI
PWMFD
EA
PPWM/PPWMH
0
1
EC3T1SI
EC3T2SI
EC4I
EC4T1SI
EC4T2SI
EC5I
EC5T1SI
EC5T2SI
EC6I
EC6T1SI
EC6T2SI
EC7I
EC7T1SI
EC7T2SI
FDIF
EA
PPWMFD/PPWMFDH
0
1
2
2
EMSI
3
3
MSIF
ESTAI
STAIF
ESTOI
I2C
STOIF
PI2C/PI2CH
ERXI
0
1
2
3
RXIF
ETXI
TXIF
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 226 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
11.3 STC8A8K64D4 系列中断列表
中断源
中断向量
次序
优先级设置
优先级
中断请求位
中断允许位
INT0
0003H
0
PX0PX0H
0/1/2/3
IE0
EX0
Timer0
000BH
1
PT0,PT0H
0/1/2/3
TF0
ET0
INT1
0013H
2
PX1,PX1H
0/1/2/3
IE1
EX1
Timer1
001BH
3
PT1,PT1H
0/1/2/3
TF1
ET1
UART1
0023H
4
PS,PSH
0/1/2/3
RI || TI
ES
ADC
002BH
5
PADC,PADCH
0/1/2/3
ADC_FLAG
EADC
LVD
0033H
6
PLVD,PLVDH
0/1/2/3
LVDF
ELVD
CF
ECF
CCF0
ECCF0
CCF1
ECCF1
CCF2
ECCF2
CCF3
ECCF3
PCA
003BH
7
PPCA,PPCAH
0/1/2/3
UART2
0043H
8
PS2,PS2H
0/1/2/3
S2RI || S2TI
ES2
SPI
004BH
9
PSPI,PSPIH
0/1/2/3
SPIF
ESPI
INT2
0053H
10
0
INT2IF
EX2
INT3
005BH
11
0
INT3IF
EX3
Timer2
0063H
12
0
T2IF
ET2
INT4
0083H
16
PX4,PX4H
0/1/2/3
INT4IF
EX4
UART3
008BH
17
PS3,PS3H
0/1/2/3
S3RI || S3TI
ES3
UART4
0093H
18
PS4,PS4H
0/1/2/3
S4RI || S4TI
ES4
Timer3
009BH
19
0
T3IF
ET3
Timer4
00A3H
20
0
T4IF
ET4
CMP
00ABH
21
0/1/2/3
CMPIF
PIE|NIE
深圳国芯人工智能有限公司
PCMP,PCMPH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 227 -
STC8A8K64D4 系列技术手册
中断源
官方网站: www.STCMCUDATA.com
中断向
量
次
序
优先级设置
技术支持: 19864585985
优先级
选型顾问: 13922805190
中断请求位
中断允许位
CBIF
ECBI
EC0I && EC0T1SI
C0IF
EC0I && EC0T2SI
EC1I && EC1T1SI
C1IF
EC1I && EC1T2SI
EC2I && EC2T1SI
C2IF
EC2I && EC2T2SI
EC3I && EC3T1SI
C3IF
PWM
00B3H
22
PPWM,PPWMH
0/1/2/3
EC3I && EC3T2SI
EC4I && EC4T1SI
C4IF
EC4I && EC4T2SI
EC5I && EC5T1SI
C5IF
EC5I && EC5T2SI
EC6I && EC6T1SI
C6IF
EC6I && EC6T2SI
EC7I && EC7T1SI
C7IF
EC7I && EC7T2SI
PWMFD
00BBH
I2C
00C3H
23
24
PPWMFD,PPWMFDH
PI2C,PI2CH
0/1/2/3
0/1/2/3
FDIF
EFDI
MSIF
EMSI
STAIF
ESTAI
RXIF
ERXI
TXIF
ETXI
STOIF
ESTOI
P0 中断
012BH
37
P0IP,P0IPH
0/1/2/3
P0INTF
P0INTE
P1 中断
0133H
38
P1IP,P1IPH
0/1/2/3
P1INTF
P1INTE
P2 中断
013BH
39
P2IP,P2IPH
0/1/2/3
P2INTF
P2INTE
P3 中断
0143H
40
P3IP,P3IPH
0/1/2/3
P3INTF
P3INTE
P4 中断
014BH
41
P4IP,P4IPH
0/1/2/3
P4INTF
P4INTE
P5 中断
0153H
42
P5IP,P5IPH
0/1/2/3
P5INTF
P5INTE
P6 中断
015BH
43
P6IP,P6IPH
0/1/2/3
P6INTF
P6INTE
P7 中断
0163H
44
P7IP,P7IPH
0/1/2/3
P7INTF
P7INTE
BMM_M2M 中断
017BH
47
M2MIP[1:0]
0/1/2/3
M2MIF
M2MIE
BMM_ADC 中断
0183H
48
ADCIP[1:0]
0/1/2/3
ADCIF
ADCIE
BMM_SPI 中断
018BH
49
SPIIP[1:0]
0/1/2/3
SPIIF
SPIIE
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 228 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
BMM_UR1T 中断
0193H
50
UR1TIP[1:0]
0/1/2/3
UR1TIF
UR1TIE
BMM_UR1R 中断
019BH
51
UR1RIP[1:0]
0/1/2/3
UR1RIF
UR1RIE
BMM_UR2T 中断
01A3H
52
UR2TIP[1:0]
0/1/2/3
UR2TIF
UR2TIE
BMM_UR2R 中断
01ABH
53
UR2RIP[1:0]
0/1/2/3
UR2RIF
UR2RIE
BMM_UR3T 中断
01B3H
54
UR3TIP[1:0]
0/1/2/3
UR3TIF
UR3TIE
BMM_UR3R 中断
01BBH
55
UR3RIP[1:0]
0/1/2/3
UR3RIF
UR3RIE
BMM_UR4T 中断
01C3H
56
UR4TIP[1:0]
0/1/2/3
UR4TIF
UR4TIE
BMM_UR4R 中断
01CBH
57
UR4RIP[1:0]
0/1/2/3
UR4RIF
UR3RIE
BMM_LCM 中断
01D3H
58
LCMIP[1:0]
0/1/2/3
LCMIF
LCMIE
LCM 中断
01DBH
59
LCMIFIP[1:0]
0/1/2/3
LCMIFIF
LCMIFIE
在 C 语言中声明中断服务程序
void
INT0_Routine(void)
interrupt
0;
void
TM0_Rountine(void)
interrupt
1;
void
INT1_Routine(void)
interrupt
2;
void
TM1_Rountine(void)
interrupt
3;
void
UART1_Routine(void)
interrupt
4;
void
ADC_Routine(void)
interrupt
5;
void
LVD_Routine(void)
interrupt
6;
void
PCA_Routine(void)
interrupt
7;
void
UART2_Routine(void)
interrupt
8;
void
SPI_Routine(void)
interrupt
9;
void
INT2_Routine(void)
interrupt
10;
void
INT3_Routine(void)
interrupt
11;
void
TM2_Routine(void)
interrupt
12;
void
INT4_Routine(void)
interrupt
16;
void
UART3_Routine(void)
interrupt
17;
void
UART4_Routine(void)
interrupt
18;
void
TM3_Routine(void)
interrupt
19;
void
TM4_Routine(void)
interrupt
20;
void
CMP_Routine(void)
interrupt
21;
void
PWM_Routine(void)
interrupt
22;
void
PWMFD_Routine(void)
interrupt
23;
void
I2C_Routine(void)
interrupt
24;
中断号超过31的C语言中断服务程序不能直接用interrupt声明,请参考附录的处理方
法,汇编语言不受影响
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 229 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
11.4 中断相关寄存器
位地址与符号
符号
描述
复位值
地址
B7
B6
B5
B4
B3
B2
B1
B0
IE
中断允许寄存器
A8H
EA
ELVD
EADC
ES
ET1
EX1
ET0
EX0
00x0,0000
IE2
中断允许寄存器 2
AFH
-
ET4
ET3
ES4
ES3
ET2
ESPI
ES2
x000,0000
中断与时钟输出控制
8FH
-
EX4
EX3
EX2
-
T2CLKO
T1CLKO
T0CLKO
x000,x000
中断优先级控制寄存器
B8H
PPCA
PLVD
PADC
PS
PT1
PX1
PT0
PX0
0000,0000
IPH
高中断优先级控制寄存器
B7H
PPCAH
PLVDH
PADCH
PSH
PT1H
PX1H
PT0H
PX0H
0000,0000
IP2
中断优先级控制寄存器 2
B5H
-
PI2C
PCMP
PX4
PPWMFD
PPWM
PSPI
PS2
x000,0000
高中断优先级控制寄存器 2 B6H
-
PI2CH
PCMPH
PX4H
PPWMFDH
PPWMH
PSPIH
PS2H
x000,0000
中断优先级控制寄存器 3
DFH
-
-
-
-
-
-
PS4
PS3
xxxx,xx00
高中断优先级控制寄存器 3 EEH
-
-
-
-
-
-
PS4H
PS3H
xxxx,xx00
扩展外部中断标志寄存器
EFH
-
INT4IF
INT3IF
INT2IF
-
T4IF
T3IF
T2IF
x000,x000
SCON
串口 1 控制寄存器
98H
SM0/FE
SM1
SM2
REN
TB8
RB8
TI
RI
0000,0000
S2CON
串口 2 控制寄存器
9AH
S2SM0
-
S2SM2
S2REN
S2TB8
S2RB8
S2TI
S2RI
0x00,0000
S3CON
串口 3 控制寄存器
ACH
S3SM0
S3ST4
S3SM2
S3REN
S3TB8
S3RB8
S3TI
S3RI
0000,0000
S4CON
串口 4 控制寄存器
84H
S4SM0
S4ST4
S4SM2
S4REN
S4TB8
S4RB8
S4TI
S4RI
0000,0000
PCON
电源控制寄存器
87H
SMOD
SMOD0
LVDF
POF
GF1
GF0
PD
IDL
0011,0000
TCON
定时器控制寄存器
88H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
0000,0000
SPSTAT
SPI 状态寄存器
CDH
SPIF
WCOL
-
-
-
-
-
-
00xx,xxxx
CCON
PCA 控制寄存器
D8H
CF
CR
-
-
CCF3
CCF2
CCF1
CCF0
00xx,0000
CMOD
PCA 模式寄存器
D9H
CIDL
-
-
-
ECF
0xxx,0000
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
CMPCR1
比较器控制寄存器 1
E6H
CMPEN
CMPIF
PIE
NIE
-
-
CMPOE
CMPRES
0000,xx00
PWMCFG
增强型 PWM 配置寄存器
F6H
-
-
-
-
PWMCBIF
EPWMCBI
ENPWMTA
PWMCEN
xxxx,0000
INTCLKO
IP
IP2H
IP3
IP3H
AUXINTIF
CPS[2:0]
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
LCMIFCFG LCM 接口配置寄存器
FE50H
LCMIFIE
-
LCMIFIP[1:0]
LCMIFDPS[1:0]
LCMIFSTA LCM 接口状态寄存器
FE53H
-
-
-
-
-
-
B1
B0
D16_D8 M68_I80 0x00,0000
-
LCMIFIF xxxx,xxx0
MSCMD[3:0]
0xxx,0000
I2CMSCR
I C 主机控制寄存器
FE81H
EMSI
-
-
-
I2CMSST
I C 主机状态寄存器
FE82H
MSBUSY
MSIF
-
-
-
-
MSACKI
MSACKO
00xx,xx00
I2CSLCR
I2C 从机控制寄存器
FE83H
-
ESTAI
ERXI
ETXI
ESTOI
-
-
SLRST
x000,0xx0
I2CSLST
I2C 从机状态寄存器
FE84H
SLBUSY
STAIF
RXIF
TXIF
STOIF
TXING
SLACKI
SLACKO
0000,0000
PWMIF
PWM0 中断标志寄存器
FF05H
C7IF
C6IF
C5IF
C4IF
C3IF
C2IF
C1IF
C0IF
0000,0000
FF06H
INVCMP
INVIO
ENFD
FLTFLIO
EFDI
FDCMP
FDIO
FDIF
0000,0000
2
2
PWMFDCR PWM0 异常检测控制寄存器
PWM0CR
PWM00 控制寄存器
FF14H
ENO
INI
-
PWM0PS[1:0]
ENI
ENT2I
ENT1I
00x0,0000
PWM1CR
PWM01 控制寄存器
FF1CH
ENO
INI
-
PWMPS[1:0]
ENI
ENT2I
ENT1I
00x0,0000
PWM2CR
PWM02 控制寄存器
FF24H
ENO
INI
-
PWM2PS[1:0]
ENI
ENT2I
ENT1I
00x0,0000
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 230 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
PWM3CR
PWM03 控制寄存器
FF2CH
ENO
INI
-
PWM3PS[1:0]
ENI
ENT2I
ENT1I
00x0,0000
PWM4CR
PWM04 控制寄存器
FF34H
ENO
INI
-
PWM4PS[1:0]
ENI
ENT2I
ENT1I
00x0,0000
PWM5CR
PWM05 控制寄存器
FF3CH
ENO
INI
-
PWM5PS[1:0]
ENI
ENT2I
ENT1I
00x0,0000
PWM6CR
PWM06 控制寄存器
FF44H
ENO
INI
-
PWM6PS[1:0]
ENI
ENT2I
ENT1I
00x0,0000
PWM7CR
PWM07 控制寄存器
FF4CH
ENO
INI
-
PWM7PS[1:0]
ENI
ENT2I
ENT1I
00x0,0000
P0INTE
P0 口中断使能寄存器
FD00H
P07INTE
P06INTE
P05INTE P04INTE P03INTE
P02INTE
P01INTE
P00INTE
0000,0000
P1INTE
P1 口中断使能寄存器
FD01H
P17INTE
P16INTE
P15INTE P14INTE P13INTE
P12INTE
P11INTE
P10INTE
0000,0000
P2INTE
P2 口中断使能寄存器
FD02H
P27INTE
P26INTE
P25INTE P24INTE P23INTE
P22INTE
P21INTE
P20INTE
0000,0000
P3INTE
P3 口中断使能寄存器
FD03H
P37INTE
P36INTE
P35INTE P34INTE P33INTE
P32INTE
P31INTE
P30INTE
0000,0000
P4INTE
P4 口中断使能寄存器
FD04H
P47INTE
P46INTE
P45INTE P44INTE P43INTE
P42INTE
P41INTE
P40INTE
0000,0000
P5INTE
P5 口中断使能寄存器
FD05H
-
-
P55INTE P54INTE P53INTE
P52INTE
P51INTE
P50INTE
xx00,0000
P6INTE
P6 口中断使能寄存器
FD06H
P67INTE
P66INTE
P65INTE P64INTE P63INTE
P62INTE
P61INTE
P60INTE
0000,0000
P7INTE
P7 口中断使能寄存器
FD07H
P77INTE
P76INTE
P75INTE P74INTE P73INTE
P72INTE
P71INTE
P70INTE
0000,0000
P0INTF
P0 口中断标志寄存器
FD10H
P07INTF
P06INTF
P05INTF P04INTF P03INTF
P02INTF
P01INTF
P00INTF
0000,0000
P1INTF
P1 口中断标志寄存器
FD11H
P17INTF
P16INTF
P15INTF P14INTF P13INTF
P12INTF
P11INTF
P10INTF
0000,0000
P2INTF
P2 口中断标志寄存器
FD12H
P27INTF
P26INTF
P25INTF P24INTF P23INTF
P22INTF
P21INTF
P20INTF
0000,0000
P3INTF
P3 口中断标志寄存器
FD13H
P37INTF
P36INTF
P35INTF P34INTF P33INTF
P32INTF
P31INTF
P30INTF
0000,0000
P4INTF
P4 口中断标志寄存器
FD14H
P47INTF
P46INTF
P45INTF P44INTF P43INTF
P42INTF
P41INTF
P40INTF
0000,0000
P5INTF
P5 口中断标志寄存器
FD15H
-
-
P55INTF P54INTF P53INTF
P52INTF
P51INTF
P50INTF
xx00,0000
P6INTF
P6 口中断标志寄存器
FD16H
P67INTF
P66INTF
P65INTF P64INTF P63INTF
P62INTF
P61INTF
P60INTF
0000,0000
P7INTF
P7 口中断标志寄存器
FD17H
P77INTF
P76INTF
P75INTF P74INTF P73INTF
P72INTF
P71INTF
P70INTF
0000,0000
PCA 模块 3 模式控制寄存器
FD54H
-
ECOM3
CCAPP3 CCAPN3
MAT3
TOG3
PWM3
ECCF3
x000,0000
PINIPL
I/O 口中断优先级低寄存器
FD60H
P7IP
P6IP
P5IP
P4IP
P3IP
P2IP
P1IP
P0IP
0000,0000
PINIPH
I/O 口中断优先级高寄存器
FD61H
P7IPH
P6IPH
P5IPH
P4IPH
P3IPH
P2IPH
P1IPH
P0IPH
0000,0000
BMM_M2M_CFG
M2M_BMM 配置寄存器
FA00H
M2MIE
-
TXACO
RXACO
M2MIP[1:0]
M2MPTY[1:0]
0x00,0000
BMM_ADC_CFG
ADC_BMM 配置寄存器
FA10H
ADCIE
-
-
-
ADCMIP[1:0]
ADCPTY[1:0]
0xxx,0000
SPI_BMM 配置寄存器
FA20H
SPIIE
ACT_TX
ACT_RX
-
SPIIP[1:0]
SPIPTY[1:0]
000x,0000
BMM_UR1T_CFG
UR1T_BMM 配置寄存器
FA30H
UR1TIE
-
-
-
UR1TIP[1:0]
UR1TPTY[1:0]
0xxx,0000
BMM_UR1R_CFG
UR1R_BMM 配置寄存器
FA38H
UR1RIE
-
-
-
UR1RIP[1:0]
UR1RPTY[1:0]
0xxx,0000
BMM_UR2T_CFG
UR2T_BMM 配置寄存器
FA40H
UR2TIE
-
-
-
UR2TIP[1:0]
UR2TPTY[1:0]
0xxx,0000
BMM_UR2R_CFG
UR2R_BMM 配置寄存器
FA48H
UR2RIE
-
-
-
UR2RIP[1:0]
UR2RPTY[1:0]
0xxx,0000
BMM_UR3T_CFG
UR3T_BMM 配置寄存器
FA50H
UR3TIE
-
-
-
UR3TIP[1:0]
UR3TPTY[1:0]
0xxx,0000
BMM_UR3R_CFG
UR3R_BMM 配置寄存器
FA58H
UR3RIE
-
-
-
UR3RIP[1:0]
UR3RPTY[1:0]
0xxx,0000
BMM_UR4T_CFG
UR4T_BMM 配置寄存器
FA60H
UR4TIE
-
-
-
UR4TIP[1:0]
UR4TPTY[1:0]
0xxx,0000
BMM_UR4R_CFG
UR4R_BMM 配置寄存器
FA68H
UR4RIE
-
-
-
UR4RIP[1:0]
UR4RPTY[1:0]
0xxx,0000
BMM_LCM_CFG
LCM_BMM 配置寄存器
FA70H
LCMIE
-
-
-
LCMIP[1:0]
LCMPTY[1:0]
0xxx,0000
BMM_M2M_STA
M2M_BMM 状态寄存器
FA02H
-
-
-
-
-
-
-
M2MIF
xxxx,xxx0
BMM_ADC_STA
ADC_BMM 状态寄存器
FA12H
-
-
-
-
-
-
-
ADCIF
xxxx,xxx0
SPI_BMM 状态寄存器
FA22H
-
-
-
-
-
TXOVW
RXLOSS
SPIIF
xxxx,x000
BMM_UR1T_STA
UR1T_BMM 状态寄存器
FA32H
-
-
-
-
-
TXOVW
-
UR1TIF
xxxx,x0x0
BMM_UR1R_STA
UR1R_BMM 状态寄存器
FA3AH
-
-
-
-
-
-
RXLOSS
UR1RIF
xxxx,xx00
BMM_UR2T_STA
UR2T_BMM 状态寄存器
FA42H
-
-
-
-
-
TXOVW
-
UR2TIF
xxxx,x0x0
BMM_UR2R_STA
UR2R_BMM 状态寄存器
FA4AH
-
-
-
-
-
-
RXLOSS
UR2RIF
xxxx,xx00
BMM_UR3T_STA
UR3T_BMM 状态寄存器
FA52H
-
-
-
-
-
TXOVW
-
UR3TIF
xxxx,x0x0
CCAPM3
BMM_SPI_CFG
BMM_SPI_STA
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 231 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
BMM_UR3R_STA
UR3R_BMM 状态寄存器
FA5AH
-
-
-
-
-
-
RXLOSS
UR3RIF
xxxx,xx00
BMM_UR4T_STA
UR4T_BMM 状态寄存器
FA62H
-
-
-
-
-
TXOVW
-
UR4TIF
xxxx,x0x0
BMM_UR4R_STA
UR4R_BMM 状态寄存器
FA6AH
-
-
-
-
-
-
RXLOSS
UR4RIF
xxxx,xx00
BMM_LCM_STA
LCM_BMM 状态寄存器
FA72H
-
-
-
-
-
-
TXOVW
LCMIF
xxxx,xx00
11.4.1
中断使能寄存器(中断允许位)
IE(中断使能寄存器)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
IE
A8H
EA
ELVD
EADC
ES
ET1
EX1
ET0
EX0
EA:总中断允许控制位。EA 的作用是使中断允许形成多级控制。即各中断源首先受 EA 控制;其次还受
各中断源自己的中断允许控制位控制。
0:CPU 屏蔽所有的中断申请
1:CPU 开放中断
ELVD:低压检测中断允许位。
0:禁止低压检测中断
1:允许低压检测中断
EADC:A/D 转换中断允许位。
0:禁止 A/D 转换中断
1:允许 A/D 转换中断
ES:串行口 1 中断允许位。
0:禁止串行口 1 中断
1:允许串行口 1 中断
ET1:定时/计数器 T1 的溢出中断允许位。
0:禁止 T1 中断
1:允许 T1 中断
EX1:外部中断 1 中断允许位。
0:禁止 INT1 中断
1:允许 INT1 中断
ET0:定时/计数器 T0 的溢出中断允许位。
0:禁止 T0 中断
1:允许 T0 中断
EX0:外部中断 0 中断允许位。
0:禁止 INT0 中断
1:允许 INT0 中断
IE2(中断使能寄存器 2)
符号
地址
IE2
AFH
B7
B6
B5
B4
B3
B2
B1
B0
ET4
ET3
ES4
ES3
ET2
ESPI
ES2
ET4:定时/计数器 T4 的溢出中断允许位。
0:禁止 T4 中断
1:允许 T4 中断
ET3:定时/计数器 T3 的溢出中断允许位。
0:禁止 T3 中断
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 232 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
1:允许 T3 中断
ES4:串行口 4 中断允许位。
0:禁止串行口 4 中断
1:允许串行口 4 中断
ES3:串行口 3 中断允许位。
0:禁止串行口 3 中断
1:允许串行口 3 中断
ET2:定时/计数器 T2 的溢出中断允许位。
0:禁止 T2 中断
1:允许 T2 中断
ESPI:SPI 中断允许位。
0:禁止 SPI 中断
1:允许 SPI 中断
ES2:串行口 2 中断允许位。
0:禁止串行口 2 中断
1:允许串行口 2 中断
INTCLKO(外部中断与时钟输出控制寄存器)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
INTCLKO
8FH
-
EX4
EX3
EX2
-
T2CLKO
T1CLKO
T0CLKO
EX4:外部中断 4 中断允许位。
0:禁止 INT4 中断
1:允许 INT4 中断
EX3:外部中断 3 中断允许位。
0:禁止 INT3 中断
1:允许 INT3 中断
EX2:外部中断 2 中断允许位。
0:禁止 INT2 中断
1:允许 INT2 中断
PCA/CCP/PWM 中断控制寄存器
符号
地址
B7
B6
B5
B4
CMOD
D9H
CIDL
-
-
-
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
FD54H
-
ECOM3
CCAPP3
CCAPN3
MAT3
TOG3
PWM3
ECCF3
B3
B2
B1
CPS[2:0]
B0
ECF
ECF:PCA 计数器中断允许位。
0:禁止 PCA 计数器中断
1:允许 PCA 计数器中断
ECCF0:PCA 模块 0 中断允许位。
0:禁止 PCA 模块 0 中断
1:允许 PCA 模块 0 中断
ECCF1:PCA 模块 1 中断允许位。
0:禁止 PCA 模块 1 中断
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 233 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
1:允许 PCA 模块 1 中断
ECCF2:PCA 模块 2 中断允许位。
0:禁止 PCA 模块 2 中断
1:允许 PCA 模块 2 中断
ECCF3:PCA 模块 3 中断允许位。
0:禁止 PCA 模块 3 中断
1:允许 PCA 模块 3 中断
CMPCR1(比较器控制寄存器 1)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
CMPCR1
E6H
CMPEN
CMPIF
PIE
NIE
-
-
CMPOE
CMPRES
PIE:比较器上升沿中断允许位。
0:禁止比较器上升沿中断
1:允许比较器上升沿中断
NIE:比较器下降沿中断允许位。
0:禁止比较器下降沿中断
1:允许比较器下降沿中断
增强型 PWM 配置寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMCFG
F6H
-
-
-
-
PWMCBIF
EPWMCBI
ENPWMTA
PWMCEN
EPWMCBI:增强PWM0计数器中断允许位。
0:禁止 PWM0 计数器中断
1:允许 PWM0 计数器中断
增强型 PWM 异常检测控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMFDCR
FF06H
INVCMP
INVIO
ENFD
FLTFLIO
EFDI
FDCMP
FDIO
FDIF
B2
B1
B0
EFDI:PWM外部异常事件中断允许位。
0:禁止 PWM 外部异常事件中断
1:允许 PWM 外部异常事件中断
增强型 PWM 控制寄存器
符号
地址
B7
B6
B5
PWM0CR
FF14H
ENO
INI
-
PWM0PS[1:0]
ENI
ENT2I
ENT1I
PWM1CR
FF1CH
ENO
INI
-
PWMPS[1:0]
ENI
ENT2I
ENT1I
PWM2CR
FF24H
ENO
INI
-
PWM2PS[1:0]
ENI
ENT2I
ENT1I
PWM3CR
FF2CH
ENO
INI
-
PWM3PS[1:0]
ENI
ENT2I
ENT1I
PWM4CR
FF34H
ENO
INI
-
PWM4PS[1:0]
ENI
ENT2I
ENT1I
PWM5CR
FF3CH
ENO
INI
-
PWM5PS[1:0]
ENI
ENT2I
ENT1I
PWM6CR
FF44H
ENO
INI
-
PWM6PS[1:0]
ENI
ENT2I
ENT1I
深圳国芯人工智能有限公司
B4
国内分销商电话: 0513-5501 2928/2929/2966
B3
传真: 0513-5501 2926/2956/2947
- 234 -
STC8A8K64D4 系列技术手册
PWM7CR
官方网站: www.STCMCUDATA.com
FF4CH
ENO
INI
技术支持: 19864585985
-
PWM7PS[1:0]
选型顾问: 13922805190
ENI
ENT2I
B2
B1
ENT1I
ENI:PWM通道中断允许位。
0:禁止 PWM 中断
1:允许 PWM 中断
ENT2SI:PWM通道第2个触发点中断允许位。
0:禁止 PWM 的第 2 个触发点中断
1:允许 PWM 的第 2 个触发点中断
ENT1SI:PWM通道第1个触发点中断允许位。
0:禁止 PWM 的第 1 个触发点中断
1:允许 PWM 的第 1 个触发点中断
I2C 控制寄存器
符号
地址
B7
B6
B5
B4
I2CMSCR
FE81H
EMSI
-
-
-
I2CSLCR
FE83H
-
ESTAI
ERXI
ETXI
B3
B0
MSCMD[3:0]
ESTOI
-
-
SLRST
EMSI:I2C主机模式中断允许位。
0:禁止 I2C 主机模式中断
1:允许 I2C 主机模式中断
ESTAI:I2C从机接收START事件中断允许位。
0:禁止 I2C 从机接收 START 事件中断
1:允许 I2C 从机接收 START 事件中断
ERXI:I2C从机接收数据完成事件中断允许位。
0:禁止 I2C 从机接收数据完成事件中断
1:允许 I2C 从机接收数据完成事件中断
ETXI:I2C从机发送数据完成事件中断允许位。
0:禁止 I2C 从机发送数据完成事件中断
1:允许 I2C 从机发送数据完成事件中断
ESTOI:I2C从机接收STOP事件中断允许位。
0:禁止 I2C 从机接收 STOP 事件中断
1:允许 I2C 从机接收 STOP 事件中断
端口中断使能寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0INTE
FD00H
P07INTE
P06INTE
P05INTE
P04INTE
P03INTE
P02INTE
P01INTE
P00INTE
P1INTE
FD01H
P17INTE
P16INTE
P15INTE
P14INTE
P13INTE
P12INTE
P11INTE
P10INTE
P2INTE
FD02H
P27INTE
P26INTE
P25INTE
P24INTE
P23INTE
P22INTE
P21INTE
P20INTE
P3INTE
FD03H
P37INTE
P36INTE
P35INTE
P34INTE
P33INTE
P32INTE
P31INTE
P30INTE
P4INTE
FD04H
P47INTE
P46INTE
P45INTE
P44INTE
P43INTE
P42INTE
P41INTE
P40INTE
P5INTE
FD05H
-
-
P55INTE
P54INTE
P53INTE
P52INTE
P51INTE
P50INTE
P6INTE
FD06H
P67INTE
P66INTE
P65INTE
P64INTE
P63INTE
P62INTE
P61INTE
P60INTE
P7INTE
FD07H
P77INTE
P76INTE
P75INTE
P74INTE
P73INTE
P72INTE
P71INTE
P70INTE
PnINTE.x:端口中断使能控制位(n=0~7,x=0~7)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 235 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
0:关闭 Pn.x 口中断功能
1:使能 Pn.x 口中断功能
LCM 接口配置寄存器
符号
地址
B7
B6
LCMIFCFG
FE50H
LCMIFIE
-
B5
B4
B3
LCMIFIP[1:0]
B2
LCMIFDPS[1:0]
B1
B0
D16_D8
M68_I80
LCMIFIE:LCM接口中断允许位。
0:禁止 LCM 接口中断
1:允许 LCM 接口中断
BMM 中断使能寄存器
符号
地址
B7
B6
B5
B4
BMM_M2M_CFG
FA00H
M2MIE
-
TXACO
RXACO
M2MIP[1:0]
M2MPTY[1:0]
BMM_ADC_CFG
FA10H
ADCIE
-
-
-
ADCMIP[1:0]
ADCPTY[1:0]
BMM_SPI_CFG
FA20H
SPIIE
ACT_TX
ACT_RX
-
SPIIP[1:0]
SPIPTY[1:0]
BMM_UR1T_CFG
FA30H
UR1TIE
-
-
-
UR1TIP[1:0]
UR1TPTY[1:0]
BMM_UR1R_CFG
FA38H
UR1RIE
-
-
-
UR1RIP[1:0]
UR1RPTY[1:0]
BMM_UR2T_CFG
FA40H
UR2TIE
-
-
-
UR2TIP[1:0]
UR2TPTY[1:0]
BMM_UR2R_CFG
FA48H
UR2RIE
-
-
-
UR2RIP[1:0]
UR2RPTY[1:0]
BMM_UR3T_CFG
FA50H
UR3TIE
-
-
-
UR3TIP[1:0]
UR3TPTY[1:0]
BMM_UR3R_CFG
FA58H
UR3RIE
-
-
-
UR3RIP[1:0]
UR3RPTY[1:0]
BMM_UR3R_CFG
FA60H
UR4TIE
-
-
-
UR4TIP[1:0]
UR4TPTY[1:0]
BMM_UR4R_CFG
FA68H
UR4RIE
-
-
-
UR4RIP[1:0]
UR4RPTY[1:0]
BMM_LCM_CFG
FA70H
LCMIE
-
-
-
LCMIP[1:0]
LCMPTY[1:0]
B3
B2
B1
B0
M2MIE: BMM_M2M(存储器到存储器DMA)中断允许位。
0:禁止 BMM_M2M 中断
1:允许 BMM_M2M 中断
ADCIE:BMM_ADC(ADC DMA)中断允许位。
0:禁止 BMM_ADC 中断
1:允许 BMM_ADC 中断
SPIIE:BMM_SPI(SPI DMA)中断允许位。
0:禁止 BMM_SPI 中断
1:允许 BMM_SPI 中断
UR1TIE:BMM_UR1T(串口1发送DMA)中断允许位。
0:禁止 BMM_UR1T 中断
1:允许 BMM_UR1T 中断
UR1RIE:BMM_UR1R(串口1接收DMA)中断允许位。
0:禁止 BMM_UR1R 中断
1:允许 BMM_UR1R 中断
UR2TIE:BMM_UR2T(串口2发送DMA)中断允许位。
0:禁止 BMM_UR2T 中断
1:允许 BMM_UR2T 中断
UR2RIE:BMM_UR2R(串口2接收DMA)中断允许位。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 236 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
0:禁止 BMM_UR2R 中断
1:允许 BMM_UR2R 中断
UR3TIE:BMM_UR3T(串口3发送DMA)中断允许位。
0:禁止 BMM_UR3T 中断
1:允许 BMM_UR3T 中断
UR3RIE:BMM_UR3R(串口3接收DMA)中断允许位。
0:禁止 BMM_UR3R 中断
1:允许 BMM_UR3R 中断
UR4TIE:BMM_UR4T(串口4发送DMA)中断允许位。
0:禁止 BMM_UR4T 中断
1:允许 BMM_UR4T 中断
UR4RIE:BMM_UR4R(串口4接收DMA)中断允许位。
0:禁止 BMM_UR4R 中断
1:允许 BMM_UR4R 中断
LCMIE:BMM_LCM(LCM接口DMA)中断允许位。
0:禁止 BMM_LCM 中断
1:允许 BMM_LCM 中断
11.4.2
中断请求寄存器(中断标志位)
定时器控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
TCON
88H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF1:定时器1溢出中断标志。中断服务程序中,硬件自动清零。
TF0:定时器0溢出中断标志。中断服务程序中,硬件自动清零。
IE1:外部中断1中断请求标志。中断服务程序中,硬件自动清零。
IE0:外部中断0中断请求标志。中断服务程序中,硬件自动清零。
中断标志辅助寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
AUXINTIF
EFH
-
INT4IF
INT3IF
INT2IF
-
T4IF
T3IF
T2IF
INT4IF:外部中断4中断请求标志。中断服务程序中硬件自动清零。
INT3IF:外部中断3中断请求标志。中断服务程序中硬件自动清零。
INT2IF:外部中断2中断请求标志。中断服务程序中硬件自动清零。
T4IF:定时器4溢出中断标志。中断服务程序中硬件自动清零(注意:此位为只写寄存器,不可读)。
T3IF:定时器3溢出中断标志。中断服务程序中硬件自动清零(注意:此位为只写寄存器,不可读)。
T2IF:定时器2溢出中断标志。中断服务程序中硬件自动清零(注意:此位为只写寄存器,不可读)。
注意:
早期采用 0.35um 工艺的 1T 8051,STC15 系列增加了 16 位重装载定时器,全球 8051 首次大手笔,
由于制造成本高,STC 可 16 位重装载的定时器 2/3/4 没有设计用户可以访问的中断请求标志位寄存器,
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 237 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
只有内部隐藏的标志位,提供给用户软件清内部隐藏标志位的方法是:用户软件禁止定时器 2/3/4 中断
时,硬件自动清定时器 2/3/4 内部隐藏中断请求标志位。
为了产品的一致性:
采用 0.18um 工艺的 STC8A/ STC8F 及后续 STC8G/STC8H/ STC8C/ STC12H 系列虽然增加了定时器
2/3/4 的用户可以访问的中断请求标志位寄存器,但禁止定时器 2/3/4 中断时,硬件自动清定时器 2/3/4
内部隐藏中断请求标志位的功能依然保留了。所以在定时器 2/3/4 没有停止计数时不要随意禁止定时器
2/3/4 中断,否则实际起作用的隐藏的中断请求标志位会被清除掉,会有可能,计数器又溢出后,又产生
了隐藏的中断请求标志位被置 1 后,去请求中断并在等待时,却被用户误清除的事。
这与传统的 INTEL8048,8051 不一样,但 INTEL 已停产,所以 STC 的新设计并没有考虑兼容传统
INTEL 的规格。
这是中国 STC 对 8051 的再发展。
串口控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
SCON
98H
SM0/FE
SM1
SM2
REN
TB8
RB8
TI
RI
S2CON
9AH
S2SM0
-
S2SM2
S2REN
S2TB8
S2RB8
S2TI
S2RI
S3CON
ACH
S3SM0
S3ST3
S3SM2
S3REN
S3TB8
S3RB8
S3TI
S3RI
S4CON
84H
S4SM0
S4ST4
S4SM2
S4REN
S4TB8
S4RB8
S4TI
S4RI
TI:串口1发送完成中断请求标志。需要软件清零。
RI:串口1接收完成中断请求标志。需要软件清零。
S2TI:串口2发送完成中断请求标志。需要软件清零。
S2RI:串口2接收完成中断请求标志。需要软件清零。
S3TI:串口3发送完成中断请求标志。需要软件清零。
S3RI:串口3接收完成中断请求标志。需要软件清零。
S4TI:串口4发送完成中断请求标志。需要软件清零。
S4RI:串口4接收完成中断请求标志。需要软件清零。
电源管理寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PCON
87H
SMOD
SMOD0
LVDF
POF
GF1
GF0
PD
IDL
LVDF:低压检测中断请求标志。需要软件清零。
ADC 控制寄存器
符号
地址
B7
B6
B5
B4
ADC_CONTR
BCH
ADC_POWER
ADC_START
ADC_FLAG
-
B3
B2
B1
B0
ADC_CHS[3:0]
ADC_FLAG:ADC转换完成中断请求标志。需要软件清零。
SPI 状态寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
SPSTAT
CDH
SPIF
WCOL
-
-
-
-
-
-
SPIF:SPI数据传输完成中断请求标志。需要软件清零。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 238 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
PCA 控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
CCON
D8H
CF
CR
-
-
CCF3
CCF2
CCF1
CCF0
CF:PCA计数器中断请求标志。需要软件清零。
CCF3:PCA模块3中断请求标志。需要软件清零。
CCF2:PCA模块2中断请求标志。需要软件清零。
CCF1:PCA模块1中断请求标志。需要软件清零。
CCF0:PCA模块0中断请求标志。需要软件清零。
比较器控制寄存器 1
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
CMPCR1
E6H
CMPEN
CMPIF
PIE
NIE
-
-
CMPOE
CMPRES
CMPIF:比较器中断请求标志。需要软件清零。
I2C 状态寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
I2CMSST
FE82H
MSBUSY
MSIF
-
-
-
-
MSACKI
MSACKO
I2CSLST
FE84H
SLBUSY
STAIF
RXIF
TXIF
STOIF
TXING
SLACKI
SLACKO
MSIF:I2C主机模式中断请求标志。需要软件清零。
ESTAI:I2C从机接收START事件中断请求标志。需要软件清零。
ERXI:I2C从机接收数据完成事件中断请求标志。需要软件清零。
ETXI:I2C从机发送数据完成事件中断请求标志。需要软件清零。
ESTOI:I2C从机接收STOP事件中断请求标志。需要软件清零。
增强型 PWM 配置寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMCFG
F6H
-
-
-
-
PWMCBIF
EPWMCBI
ENPWMTA
PWMCEN
PWMCBIF:增强型PWM0计数器中断请求标志。需要软件清零。
增强型 PWM 中断标志寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMIF
FF05H
C7IF
C6IF
C5IF
C4IF
C3IF
C2IF
C1IF
C0IF
C7IF:增强型PWM通道7中断请求标志。需要软件清零。
C6IF:增强型PWM通道6中断请求标志。需要软件清零。
C5IF:增强型PWM通道5中断请求标志。需要软件清零。
C4IF:增强型PWM通道4中断请求标志。需要软件清零。
C3IF:增强型PWM通道3中断请求标志。需要软件清零。
C2IF:增强型PWM通道2中断请求标志。需要软件清零。
C1IF:增强型PWM通道1中断请求标志。需要软件清零。
C0IF:增强型PWM通道0中断请求标志。需要软件清零。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 239 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
增强型 PWM 异常检测控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMFDCR
FF06H
INVCMP
INVIO
ENFD
FLTFLIO
EFDI
FDCMP
FDIO
FDIF
FDIF:增强型PWM异常检测中断请求标志。需要软件清零。
端口中断标志寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0INTF
FD10H
P07INTF
P06INTF
P05INTF
P04INTF
P03INTF
P02INTF
P01INTF
P00INTF
P1INTF
FD11H
P17INTF
P16INTF
P15INTF
P14INTF
P13INTF
P12INTF
P11INTF
P10INTF
P2INTF
FD12H
P27INTF
P26INTF
P25INTF
P24INTF
P23INTF
P22INTF
P21INTF
P20INTF
P3INTF
FD13H
P37INTF
P36INTF
P35INTF
P34INTF
P33INTF
P32INTF
P31INTF
P30INTF
P4INTF
FD14H
P47INTF
P46INTF
P45INTF
P44INTF
P43INTF
P42INTF
P41INTF
P40INTF
P5INTF
FD15H
-
-
P55INTF
P54INTF
P53INTF
P52INTF
P51INTF
P50INTF
P6INTF
FD16H
P67INTF
P66INTF
P65INTF
P64INTF
P63INTF
P62INTF
P61INTF
P60INTF
P7INTF
FD17H
P77INTF
P76INTF
P75INTF
P74INTF
P73INTF
P72INTF
P71INTF
P70INTF
PnINTF.x:端口中断请求标志位(n=0~7,x=0~7)
0:Pn.x 口没有中断请求
1:Pn.x 口有中断请求,若使能中断,则会进入中断服务程序。标志位需软件清 0。
LCM 接口状态寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
LCMIFSTA
FE53H
-
-
-
-
-
-
-
LCMIFIF
LCMIFIF:LCM接口中断请求标志。需要软件清零。
BMM 中断标志寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
BMM_M2M_STA
FA02H
-
-
-
-
-
-
-
M2MIF
BMM_ADC_STA
FA12H
-
-
-
-
-
-
-
ADCIF
BMM_SPI_STA
FA22H
-
-
-
-
-
TXOVW
RXLOSS
SPIIF
BMM_UR1T_STA
FA32H
-
-
-
-
-
TXOVW
-
UR1TIF
BMM_UR1R_STA
FA3AH
-
-
-
-
-
-
RXLOSS
UR1RIF
BMM_UR2T_STA
FA42H
-
-
-
-
-
TXOVW
-
UR2TIF
BMM_UR2R_STA
FA4AH
-
-
-
-
-
-
RXLOSS
UR2RIF
BMM_UR3T_STA
FA52H
-
-
-
-
-
TXOVW
-
UR3TIF
BMM_UR3R_STA
FA5AH
-
-
-
-
-
-
RXLOSS
UR3RIF
BMM_UR4T_STA
FA62H
-
-
-
-
-
TXOVW
-
UR4TIF
BMM_UR4R_STA
FA6AH
-
-
-
-
-
-
RXLOSS
UR4RIF
BMM_LCM_STA
FA72H
-
-
-
-
-
-
TXOVW
LCMIF
M2MIF: BMM_M2M(存储器到存储器DMA)中断请求标志。需要软件清零。
ADCIF:BMM_ADC(ADC DMA)中断请求标志。需要软件清零。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 240 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
SPIIF:BMM_SPI(SPI DMA)中断请求标志。需要软件清零。。
UR1TIF:BMM_UR1T(串口1发送DMA)中断请求标志。需要软件清零。
UR1RIF:BMM_UR1R(串口1接收DMA)中断请求标志。需要软件清零。
UR2TIF:BMM_UR2T(串口2发送DMA)中断请求标志。需要软件清零。
UR2RIF:BMM_UR2R(串口2接收DMA)中断请求标志。需要软件清零。
UR3TIF:BMM_UR3T(串口3发送DMA)中断请求标志。需要软件清零。
UR3RIF:BMM_UR3R(串口3接收DMA)中断请求标志。需要软件清零。
UR4TIF:BMM_UR4T(串口4发送DMA)中断请求标志。需要软件清零。
UR4RIF:BMM_UR4R(串口4接收DMA)中断请求标志。需要软件清零。
LCMIF:BMM_LCM(LCM接口DMA)中断请求标志。需要软件清零。
11.4.3
中断优先级寄存器
除 INT2、INT3、定时器 2、定时器 3 和定时器 4 外,其他中断均有 4 级中断优先级可设置
中断优先级控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
IP
B8H
PPCA
PLVD
PADC
PS
PT1
PX1
PT0
PX0
IPH
B7H
PPCAH
PLVDH
PADCH
PSH
PT1H
PX1H
PT0H
PX0H
IP2
B5H
-
PI2C
PCMP
PX4
PPWMFD
PPWM
PSPI
PS2
IP2H
B6H
-
PI2CH
PCMPH
PX4H
PPWMFDH
PPWMH
PSPIH
PS2H
IP3
DFH
-
-
-
-
-
-
PS4
PS3
IP3H
EEH
-
-
-
-
-
-
PS4H
PS3H
PX0H,PX0:外部中断0中断优先级控制位
00:INT0 中断优先级为 0 级(最低级)
01:INT0 中断优先级为 1 级(较低级)
10:INT0 中断优先级为 2 级(较高级)
11:INT0 中断优先级为 3 级(最高级)
PT0H,PT0:定时器0中断优先级控制位
00:定时器 0 中断优先级为 0 级(最低级)
01:定时器 0 中断优先级为 1 级(较低级)
10:定时器 0 中断优先级为 2 级(较高级)
11:定时器 0 中断优先级为 3 级(最高级)
PX1H,PX1:外部中断1中断优先级控制位
00:INT1 中断优先级为 0 级(最低级)
01:INT1 中断优先级为 1 级(较低级)
10:INT1 中断优先级为 2 级(较高级)
11:INT1 中断优先级为 3 级(最高级)
PT1H,PT1:定时器1中断优先级控制位
00:定时器 1 中断优先级为 0 级(最低级)
01:定时器 1 中断优先级为 1 级(较低级)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 241 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
10:定时器 1 中断优先级为 2 级(较高级)
11:定时器 1 中断优先级为 3 级(最高级)
PSH,PS:串口1中断优先级控制位
00:串口 1 中断优先级为 0 级(最低级)
01:串口 1 中断优先级为 1 级(较低级)
10:串口 1 中断优先级为 2 级(较高级)
11:串口 1 中断优先级为 3 级(最高级)
PADCH,PADC:ADC中断优先级控制位
00:ADC 中断优先级为 0 级(最低级)
01:ADC 中断优先级为 1 级(较低级)
10:ADC 中断优先级为 2 级(较高级)
11:ADC 中断优先级为 3 级(最高级)
PLVDH,PLVD:低压检测中断优先级控制位
00:LVD 中断优先级为 0 级(最低级)
01:LVD 中断优先级为 1 级(较低级)
10:LVD 中断优先级为 2 级(较高级)
11:LVD 中断优先级为 3 级(最高级)
PPCAH,PPCA:CCP/PCA/PWM中断优先级控制位
00:CCP/PCA/PWM 中断优先级为 0 级(最低级)
01:CCP/PCA/PWM 中断优先级为 1 级(较低级)
10:CCP/PCA/PWM 中断优先级为 2 级(较高级)
11:CCP/PCA/PWM 中断优先级为 3 级(最高级)
PS2H,PS2:串口2中断优先级控制位
00:串口 2 中断优先级为 0 级(最低级)
01:串口 2 中断优先级为 1 级(较低级)
10:串口 2 中断优先级为 2 级(较高级)
11:串口 2 中断优先级为 3 级(最高级)
PSPIH,PSPI:SPI中断优先级控制位
00:SPI 中断优先级为 0 级(最低级)
01:SPI 中断优先级为 1 级(较低级)
10:SPI 中断优先级为 2 级(较高级)
11:SPI 中断优先级为 3 级(最高级)
PX4H,PX4:外部中断4中断优先级控制位
00:INT4 中断优先级为 0 级(最低级)
01:INT4 中断优先级为 1 级(较低级)
10:INT4 中断优先级为 2 级(较高级)
11:INT4 中断优先级为 3 级(最高级)
PCMPH,PCMP:比较器中断优先级控制位
00:CMP 中断优先级为 0 级(最低级)
01:CMP 中断优先级为 1 级(较低级)
10:CMP 中断优先级为 2 级(较高级)
11:CMP 中断优先级为 3 级(最高级)
PI2CH,PI2C:I2C中断优先级控制位
00:I2C 中断优先级为 0 级(最低级)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 242 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
01:I2C 中断优先级为 1 级(较低级)
10:I2C 中断优先级为 2 级(较高级)
11:I2C 中断优先级为 3 级(最高级)
PPWMH,PPWM:增强型PWM中断优先级控制位
00:增强型 PWM 中断优先级为 0 级(最低级)
01:增强型 PWM 中断优先级为 1 级(较低级)
10:增强型 PWM 中断优先级为 2 级(较高级)
11:增强型 PWM 中断优先级为 3 级(最高级)
PPWMFDH,PPWMFD:增强型PWM异常检测中断优先级控制位
00:PWMFD 中断优先级为 0 级(最低级)
01:PWMFD 中断优先级为 1 级(较低级)
10:PWMFD 中断优先级为 2 级(较高级)
11:PWMFD 中断优先级为 3 级(最高级)
PS3H,PS3:串口3中断优先级控制位
00:串口 3 中断优先级为 0 级(最低级)
01:串口 3 中断优先级为 1 级(较低级)
10:串口 3 中断优先级为 2 级(较高级)
11:串口 3 中断优先级为 3 级(最高级)
PS4H,PS4:串口4中断优先级控制位
00:串口 4 中断优先级为 0 级(最低级)
01:串口 4 中断优先级为 1 级(较低级)
10:串口 4 中断优先级为 2 级(较高级)
11:串口 4 中断优先级为 3 级(最高级)
LCM 接口配置寄存器
符号
地址
B7
B6
LCMIFCFG
FE50H
LCMIFIE
-
B5
B4
LCMIFIP[1:0]
B3
B2
LCMIFDPS[1:0]
B1
B0
D16_D8
M68_I80
LCMIFIP[1:0]:LCM接口中断优先级控制位
00:LCM 接口中断优先级为 0 级(最低级)
01:LCM 接口中断优先级为 1 级(较低级)
10:LCM 接口中断优先级为 2 级(较高级)
11:LCM 接口中断优先级为 3 级(最高级)
端口中断优先级控制寄存器
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PINIPL
FD60H
P7IP
P6IP
P5IP
P4IP
P3IP
P2IP
P1IP
P0IP
PINIPH
FD61H
P7IPH
P6IPH
P5IPH
P4IPH
P3IPH
P2IPH
P1IPH
P0IPH
P0IPH,P0IP:P0口中断优先级控制位
00:P0 口中断优先级为 0 级(最低级)
01:P0 口中断优先级为 1 级(较低级)
10:P0 口中断优先级为 2 级(较高级)
11:P0 口中断优先级为 3 级(最高级)
P1IPH,P1IP:P1口中断优先级控制位
00:P1 口中断优先级为 0 级(最低级)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 243 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
01:P1 口中断优先级为 1 级(较低级)
10:P1 口中断优先级为 2 级(较高级)
11:P1 口中断优先级为 3 级(最高级)
P2IPH,P2IP:P2口中断优先级控制位
00:P2 口中断优先级为 0 级(最低级)
01:P2 口中断优先级为 1 级(较低级)
10:P2 口中断优先级为 2 级(较高级)
11:P2 口中断优先级为 3 级(最高级)
P3IPH,P3IP:P3口中断优先级控制位
00:P3 口中断优先级为 0 级(最低级)
01:P3 口中断优先级为 1 级(较低级)
10:P3 口中断优先级为 2 级(较高级)
11:P3 口中断优先级为 3 级(最高级)
P4IPH,P4IP:P4口中断优先级控制位
00:P4 口中断优先级为 0 级(最低级)
01:P4 口中断优先级为 1 级(较低级)
10:P4 口中断优先级为 2 级(较高级)
11:P4 口中断优先级为 3 级(最高级)
P5IPH,P5IP:P5口中断优先级控制位
00:P5 口中断优先级为 0 级(最低级)
01:P5 口中断优先级为 1 级(较低级)
10:P5 口中断优先级为 2 级(较高级)
11:P5 口中断优先级为 3 级(最高级)
P6IPH,P6IP:P6口中断优先级控制位
00:P6 口中断优先级为 0 级(最低级)
01:P6 口中断优先级为 1 级(较低级)
10:P6 口中断优先级为 2 级(较高级)
11:P6 口中断优先级为 3 级(最高级)
P7IPH,P7IP:P7口中断优先级控制位
00:P7 口中断优先级为 0 级(最低级)
01:P7 口中断优先级为 1 级(较低级)
10:P7 口中断优先级为 2 级(较高级)
11:P7 口中断优先级为 3 级(最高级)
BMM 中断优先级控制寄存器
符号
地址
B7
B6
B5
B4
BMM_M2M_CFG
FA00H
M2MIE
-
TXACO
RXACO
M2MIP[1:0]
M2MPTY[1:0]
BMM_ADC_CFG
FA10H
ADCIE
-
-
-
ADCMIP[1:0]
ADCPTY[1:0]
BMM_SPI_CFG
FA20H
SPIIE
ACT_TX
ACT_RX
-
SPIIP[1:0]
SPIPTY[1:0]
BMM_UR1T_CFG
FA30H
UR1TIE
-
-
-
UR1TIP[1:0]
UR1TPTY[1:0]
BMM_UR1R_CFG
FA38H
UR1RIE
-
-
-
UR1RIP[1:0]
UR1RPTY[1:0]
BMM_UR2T_CFG
FA40H
UR2TIE
-
-
-
UR2TIP[1:0]
UR2TPTY[1:0]
BMM_UR2R_CFG
FA48H
UR2RIE
-
-
-
UR2RIP[1:0]
UR2RPTY[1:0]
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
B3
B2
B1
传真: 0513-5501 2926/2956/2947
B0
- 244 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
BMM_UR3T_CFG
FA50H
UR3TIE
-
-
-
UR3TIP[1:0]
UR3TPTY[1:0]
BMM_UR3R_CFG
FA58H
UR3RIE
-
-
-
UR3RIP[1:0]
UR3RPTY[1:0]
BMM_UR3R_CFG
FA60H
UR4TIE
-
-
-
UR4TIP[1:0]
UR4TPTY[1:0]
BMM_UR4R_CFG
FA68H
UR4RIE
-
-
-
UR4RIP[1:0]
UR4RPTY[1:0]
BMM_LCM_CFG
FA70H
LCMIE
-
-
-
LCMIP[1:0]
LCMPTY[1:0]
M2MIP: BMM_M2M(存储器到存储器DMA)中断优先级控制位
00:BMM_M2M 中断优先级为 0 级(最低级)
01:BMM_M2M 中断优先级为 1 级(较低级)
10:BMM_M2M 中断优先级为 2 级(较高级)
11:BMM_M2M 中断优先级为 3 级(最高级)
ADCIP:BMM_ADC(ADC DMA)中断优先级控制位
00:BMM_ADC 中断优先级为 0 级(最低级)
01:BMM_ADC 中断优先级为 1 级(较低级)
10:BMM_ADC 中断优先级为 2 级(较高级)
11:BMM_ADC 中断优先级为 3 级(最高级)
SPIIP:BMM_SPI(SPI DMA)中断优先级控制位
00:BMM_SPI 中断优先级为 0 级(最低级)
01:BMM_SPI 中断优先级为 1 级(较低级)
10:BMM_SPI 中断优先级为 2 级(较高级)
11:BMM_SPI 中断优先级为 3 级(最高级)
UR1TIP:BMM_UR1T(串口1发送DMA)中断优先级控制位
00:BMM_UR1T 中断优先级为 0 级(最低级)
01:BMM_UR1T 中断优先级为 1 级(较低级)
10:BMM_UR1T 中断优先级为 2 级(较高级)
11:BMM_UR1T 中断优先级为 3 级(最高级)
UR1RIP:BMM_UR1R(串口1接收DMA)中断优先级控制位
00:BMM_UR1R 中断优先级为 0 级(最低级)
01:BMM_UR1R 中断优先级为 1 级(较低级)
10:BMM_UR1R 中断优先级为 2 级(较高级)
11:BMM_UR1R 中断优先级为 3 级(最高级)
UR2TIP:BMM_UR2T(串口2发送DMA)中断优先级控制位
00:BMM_UR2T 中断优先级为 0 级(最低级)
01:BMM_UR2T 中断优先级为 1 级(较低级)
10:BMM_UR2T 中断优先级为 2 级(较高级)
11:BMM_UR2T 中断优先级为 3 级(最高级)
UR2RIP:BMM_UR2R(串口2接收DMA)中断优先级控制位
00:BMM_UR2R 中断优先级为 0 级(最低级)
01:BMM_UR2R 中断优先级为 1 级(较低级)
10:BMM_UR2R 中断优先级为 2 级(较高级)
11:BMM_UR2R 中断优先级为 3 级(最高级)
UR3TIP:BMM_UR3T(串口3发送DMA)中断优先级控制位
00:BMM_UR3T 中断优先级为 0 级(最低级)
01:BMM_UR3T 中断优先级为 1 级(较低级)
10:BMM_UR3T 中断优先级为 2 级(较高级)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 245 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
11:BMM_UR3T 中断优先级为 3 级(最高级)
UR3RIP:BMM_UR3R(串口3接收DMA)中断优先级控制位
00:BMM_UR3R 中断优先级为 0 级(最低级)
01:BMM_UR3R 中断优先级为 1 级(较低级)
10:BMM_UR3R 中断优先级为 2 级(较高级)
11:BMM_UR3R 中断优先级为 3 级(最高级)
UR4TIP:BMM_UR4T(串口4发送DMA)中断优先级控制位
00:BMM_UR3R 中断优先级为 0 级(最低级)
01:BMM_UR3R 中断优先级为 1 级(较低级)
10:BMM_UR3R 中断优先级为 2 级(较高级)
11:BMM_UR3R 中断优先级为 3 级(最高级)
UR4RIP:BMM_UR4R(串口4接收DMA)中断优先级控制位
00:BMM_UR4R 中断优先级为 0 级(最低级)
01:BMM_UR4R 中断优先级为 1 级(较低级)
10:BMM_UR4R 中断优先级为 2 级(较高级)
11:BMM_UR4R 中断优先级为 3 级(最高级)
LCMIP:BMM_LCM(LCM接口DMA)中断优先级控制位
00:BMM_LCM 中断优先级为 0 级(最低级)
01:BMM_LCM 中断优先级为 1 级(较低级)
10:BMM_LCM 中断优先级为 2 级(较高级)
11:BMM_LCM 中断优先级为 3 级(最高级)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 246 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
11.5 范例程序
INT0 中断(上升沿和下降沿),可同时支持上升沿和下降沿
11.5.1
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
sbit
P10
P11
=
=
P1^0;
P1^1;
void INT0_Isr() interrupt 0
{
if (INT0)
{
P10 = !P10;
}
else
{
P11 = !P11;
}
}
//判断上升沿和下降沿
//测试端口
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
IT0 = 0;
EX0 = 1;
深圳国芯人工智能有限公司
//使能 INT0 上升沿和下降沿中断
//使能 INT0 中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 247 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
EA = 1;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0003H
INT0ISR
ORG
0100H
JB
CPL
RETI
INT0,RISING
P1.0
;判断上升沿和下降沿
;测试端口
CPL
RETI
P1.1
;测试端口
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
CLR
SETB
SETB
JMP
IT0
EX0
EA
$
INT0ISR:
RISING:
MAIN:
;使能 INT0 上升沿和下降沿中断
;使能 INT0 中断
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 248 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
INT0 中断(下降沿)
11.5.2
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void INT0_Isr() interrupt 0
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//使能 INT0 下降沿中断
//使能 INT0 中断
IT0 = 1;
EX0 = 1;
EA = 1;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
DATA
深圳国芯人工智能有限公司
093H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 249 -
STC8A8K64D4 系列技术手册
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0003H
INT0ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
SETB
SETB
SETB
JMP
IT0
EX0
EA
$
技术支持: 19864585985
选型顾问: 13922805190
INT0ISR:
;测试端口
MAIN:
;使能 INT0 下降沿中断
;使能 INT0 中断
END
INT1 中断(上升沿和下降沿),可同时支持上升沿和下降沿
11.5.3
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
P0M1
P0M0
P1M1
深圳国芯人工智能有限公司
=
=
=
0x93;
0x94;
0x91;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 250 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
sbit
P10
P11
=
=
P1^0;
P1^1;
void INT1_Isr() interrupt 2
{
if (INT1)
{
P10 = !P10;
}
else
{
P11 = !P11;
}
}
技术支持: 19864585985
选型顾问: 13922805190
//判断上升沿和下降沿
//测试端口
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//使能 INT1 上升沿和下降沿中断
//使能 INT1 中断
IT1 = 0;
EX1 = 1;
EA = 1;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
093H
094H
091H
092H
095H
096H
0B1H
0B2H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 251 -
STC8A8K64D4 系列技术手册
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
DATA
DATA
DATA
DATA
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0013H
INT1ISR
ORG
0100H
JB
CPL
RETI
INT1,RISING
P1.0
;判断上升沿和下降沿
;测试端口
CPL
RETI
P1.1
;测试端口
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
CLR
SETB
SETB
JMP
IT1
EX1
EA
$
选型顾问: 13922805190
INT1ISR:
RISING:
MAIN:
;使能 INT1 上升沿和下降沿中断
;使能 INT1 中断
END
INT1 中断(下降沿)
11.5.4
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
深圳国芯人工智能有限公司
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 252 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
sfr
sfr
sfr
sfr
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void INT1_Isr() interrupt 2
{
P10 = !P10;
}
技术支持: 19864585985
选型顾问: 13922805190
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//使能 INT1 下降沿中断
//使能 INT1 中断
IT1 = 1;
EX1 = 1;
EA = 1;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0013H
INT1ISR
ORG
0100H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 253 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
INT1ISR:
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
SETB
SETB
SETB
JMP
IT1
EX1
EA
$
;测试端口
MAIN:
;使能 INT1 下降沿中断
;使能 INT1 中断
END
INT2 中断(下降沿),只支持下降沿中断
11.5.5
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sfr
#define
#define
#define
sbit
INTCLKO
EX2
EX3
EX4
P10
=
0x8f;
0x10
0x20
0x40
P1^0;
=
void INT2_Isr() interrupt 10
{
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 254 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
//测试端口
P10 = !P10;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//使能 INT2 中断
INTCLKO = EX2;
EA = 1;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
INTCLKO
EX2
EX3
EX4
DATA
EQU
EQU
EQU
8FH
10H
20H
40H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0053H
INT2ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
SP, #5FH
P0M0, #00H
INT2ISR:
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 255 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
SETB
JMP
INTCLKO,#EX2
EA
$
技术支持: 19864585985
选型顾问: 13922805190
;使能 INT2 中断
END
INT3 中断(下降沿),只支持下降沿中断
11.5.6
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sfr
#define
#define
#define
sbit
INTCLKO
EX2
EX3
EX4
P10
=
0x8f;
0x10
0x20
0x40
P1^0;
void INT3_Isr() interrupt 11
{
P10 = !P10;
}
=
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 256 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//使能 INT3 中断
INTCLKO = EX3;
EA = 1;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
INTCLKO
EX2
EX3
EX4
DATA
EQU
EQU
EQU
8FH
10H
20H
40H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
005BH
INT3ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
INT3ISR:
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 257 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
SETB
JMP
INTCLKO,#EX3
EA
$
技术支持: 19864585985
选型顾问: 13922805190
;使能 INT3 中断
END
INT4 中断(下降沿),只支持下降沿中断
11.5.7
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sfr
#define
#define
#define
sbit
INTCLKO
EX2
EX3
EX4
P10
=
0x8f;
0x10
0x20
0x40
P1^0;
=
void INT4_Isr() interrupt 16
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 258 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P5M1 = 0x00;
//使能 INT4 中断
INTCLKO = EX4;
EA = 1;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
INTCLKO
EX2
EX3
EX4
DATA
EQU
EQU
EQU
8FH
10H
20H
40H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0083H
INT4ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
SETB
JMP
INTCLKO,#EX4
EA
$
INT4ISR:
;测试端口
MAIN:
深圳国芯人工智能有限公司
;使能 INT4 中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 259 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
END
定时器 0 中断
11.5.8
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM0_Isr() interrupt 1
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
TMOD = 0x00;
TL0 = 0x66;
TH0 = 0xfc;
TR0 = 1;
ET0 = 1;
EA = 1;
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
while (1);
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 260 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
000BH
TM0ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#00H
TL0,#66H
TH0,#0FCH
TR0
ET0
EA
JMP
$
TM0ISR:
;测试端口
MAIN:
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
11.5.9
定时器 1 中断
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 261 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM1_Isr() interrupt 3
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
TMOD = 0x00;
TL1 = 0x66;
TH1 = 0xfc;
TR1 = 1;
ET1 = 1;
EA = 1;
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
093H
094H
091H
092H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 262 -
STC8A8K64D4 系列技术手册
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
001BH
TM1ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#00H
TL1,#66H
TH1,#0FCH
TR1
ET1
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM1ISR:
;测试端口
MAIN:
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
11.5.10 定时器 2 中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
T2L
T2H
深圳国芯人工智能有限公司
=
=
0xd7;
0xd6;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 263 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
#define
sfr
#define
AUXR
IE2
ET2
AUXINTIF
T2IF
=
=
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
=
技术支持: 19864585985
选型顾问: 13922805190
0x8e;
0xaf;
0x04
0xef;
0x01
void TM2_Isr() interrupt 12
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T2L = 0x66;
T2H = 0xfc;
AUXR = 0x10;
IE2 = ET2;
EA = 1;
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T2L
T2H
AUXR
IE2
ET2
DATA
DATA
DATA
DATA
EQU
深圳国芯人工智能有限公司
0D7H
0D6H
8EH
0AFH
04H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 264 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
AUXINTIF
T2IF
DATA
EQU
0EFH
01H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0063H
TM2ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
SETB
T2L,#66H
T2H,#0FCH
AUXR,#10H
IE2,#ET2
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM2ISR:
;测试端口
MAIN:
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
11.5.11 定时器 3 中断
C 语言代码
//测试工作频率为 11.0592MHz
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 265 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
#define
sfr
#define
T3L
T3H
T4T3M
IE2
ET3
AUXINTIF
T3IF
=
=
=
=
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
=
void TM3_Isr() interrupt 19
{
P10 = !P10;
}
0xd5;
0xd4;
0xd1;
0xaf;
0x20
0xef;
0x02
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T3L = 0x66;
T3H = 0xfc;
T4T3M = 0x08;
IE2 = ET3;
EA = 1;
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 266 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
T3L
T3H
T4T3M
IE2
ET3
AUXINTIF
T3IF
DATA
DATA
DATA
DATA
EQU
DATA
EQU
0D5H
0D4H
0D1H
0AFH
20H
0EFH
02H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
009BH
TM3ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
SETB
T3L,#66H
T3H,#0FCH
T4T3M,#08H
IE2,#ET3
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM3ISR:
;测试端口
MAIN:
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 267 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
11.5.12 定时器 4 中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
#define
#define
sfr
#define
#define
T3L
T3H
T4L
T4H
T4T3M
IE2
ET3
ET4
AUXINTIF
T3IF
T4IF
=
=
=
=
=
=
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM4_Isr() interrupt 20
{
P10 = !P10;
}
=
0xd5;
0xd4;
0xd3;
0xd2;
0xd1;
0xaf;
0x20
0x40
0xef;
0x02
0x04
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T4L = 0x66;
T4H = 0xfc;
深圳国芯人工智能有限公司
//65536-11.0592M/12/1000
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 268 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
//启动定时器
//使能定时器中断
T4T3M = 0x80;
IE2 = ET4;
EA = 1;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T3L
T3H
T4L
T4H
T4T3M
IE2
ET3
ET4
AUXINTIF
T3IF
T4IF
DATA
DATA
DATA
DATA
DATA
DATA
EQU
EQU
DATA
EQU
EQU
0D5H
0D4H
0D3H
0D2H
0D1H
0AFH
20H
40H
0EFH
02H
04H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
00A3H
TM4ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
TM4ISR:
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 269 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
P5M1, #00H
MOV
MOV
MOV
MOV
SETB
T4L,#66H
T4H,#0FCH
T4T3M,#80H
IE2,#ET4
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
11.5.13 UART1 中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
T2L
T2H
AUXR
=
=
=
0xd7;
0xd6;
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
sbit
P10
P11
=
=
P1^0;
P1^1;
void UART1_Isr() interrupt 4
{
if (TI)
{
TI = 0;
P10 = !P10;
}
if (RI)
{
RI = 0;
P11 = !P11;
}
}
//清中断标志
//测试端口
//清中断标志
//测试端口
void main()
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 270 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
SCON = 0x50;
T2L = 0xe8;
T2H = 0xff;
AUXR = 0x15;
ES = 1;
EA = 1;
SBUF = 0x5a;
//65536-11059200/115200/4=0FFE8H
//启动定时器
//使能串口中断
//发送测试数据
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T2L
T2H
AUXR
DATA
DATA
DATA
0D7H
0D6H
8EH
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0023H
UART1ISR
ORG
0100H
JNB
CLR
CPL
TI,CHECKRI
TI
P1.0
;清中断标志
;测试端口
JNB
CLR
RI,ISREXIT
RI
;清中断标志
UART1ISR:
CHECKRI:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 271 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
CPL
P1.1
技术支持: 19864585985
选型顾问: 13922805190
;测试端口
ISREXIT:
RETI
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
SETB
SETB
MOV
SCON,#50H
T2L,#0E8H
T2H,#0FFH
AUXR,#15H
ES
EA
SBUF,#5AH
JMP
$
;65536-11059200/115200/4=0FFE8H
;启动定时器
;使能串口中断
;发送测试数据
END
11.5.14 UART2 中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
#define
T2L
T2H
AUXR
S2CON
S2BUF
IE2
ES2
=
=
=
=
=
=
0xd7;
0xd6;
0x8e;
0x9a;
0x9b;
0xaf;
0x01
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 272 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
sfr
sfr
P4M1
P4M0
P5M1
P5M0
=
=
=
=
0xb3;
0xb4;
0xc9;
0xca;
sbit
sbit
P12
P13
=
=
P1^2;
P1^3;
void UART2_Isr() interrupt 8
{
if (S2CON & 0x02)
{
S2CON &= ~0x02;
P12 = !P12;
}
if (S2CON & 0x01)
{
S2CON &= ~0x01;
P13 = !P13;
}
}
技术支持: 19864585985
选型顾问: 13922805190
//清中断标志
//测试端口
//清中断标志
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
S2CON = 0x10;
T2L = 0xe8;
T2H = 0xff;
AUXR = 0x14;
IE2 = ES2;
EA = 1;
S2BUF = 0x5a;
//65536-11059200/115200/4=0FFE8H
//启动定时器
//使能串口中断
//发送测试数据
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T2L
T2H
AUXR
S2CON
S2BUF
IE2
ES2
DATA
DATA
DATA
DATA
DATA
DATA
EQU
深圳国芯人工智能有限公司
0D7H
0D6H
8EH
9AH
9BH
0AFH
01H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 273 -
STC8A8K64D4 系列技术手册
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0043H
UART2ISR
ORG
0100H
PUSH
PUSH
MOV
JNB
ANL
CPL
ACC
PSW
A,S2CON
ACC.1,CHECKRI
S2CON,#NOT 02H
P1.2
;清中断标志
;测试端口
MOV
JNB
ANL
CPL
A,S2CON
ACC.0,ISREXIT
S2CON,#NOT 01H
P1.3
;清中断标志
;测试端口
POP
POP
RETI
PSW
ACC
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
MOV
SETB
MOV
S2CON,#10H
T2L,#0E8H
T2H,#0FFH
AUXR,#14H
IE2,#ES2
EA
S2BUF,#5AH
选型顾问: 13922805190
UART2ISR:
CHECKRI:
ISREXIT:
MAIN:
深圳国芯人工智能有限公司
;65536-11059200/115200/4=0FFE8H
;启动定时器
;使能串口中断
;发送测试数据
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 274 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
JMP
技术支持: 19864585985
选型顾问: 13922805190
$
END
11.5.15 UART3 中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
#define
T2L
T2H
AUXR
S3CON
S3BUF
IE2
ES3
=
=
=
=
=
=
0xd7;
0xd6;
0x8e;
0xac;
0xad;
0xaf;
0x08
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
sbit
P12
P13
=
=
P1^2;
P1^3;
void UART3_Isr() interrupt 17
{
if (S3CON & 0x02)
{
S3CON &= ~0x02;
P12 = !P12;
}
if (S3CON & 0x01)
{
S3CON &= ~0x01;
P13 = !P13;
}
}
//清中断标志
//测试端口
//清中断标志
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 275 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
S3CON = 0x10;
T2L = 0xe8;
T2H = 0xff;
AUXR = 0x14;
IE2 = ES3;
EA = 1;
S3BUF = 0x5a;
//65536-11059200/115200/4=0FFE8H
//启动定时器
//使能串口中断
//发送测试数据
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T2L
T2H
AUXR
S3CON
S3BUF
IE2
ES3
DATA
DATA
DATA
DATA
DATA
DATA
EQU
0D7H
0D6H
8EH
0ACH
0ADH
0AFH
08H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
008BH
UART3ISR
ORG
0100H
PUSH
PUSH
MOV
JNB
ANL
ACC
PSW
A,S3CON
ACC.1,CHECKRI
S3CON,#NOT 02H
UART3ISR:
深圳国芯人工智能有限公司
;清中断标志
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 276 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
CPL
P1.2
;测试端口
MOV
JNB
ANL
CPL
A,S3CON
ACC.0,ISREXIT
S3CON,#NOT 01H
P1.3
;清中断标志
;测试端口
POP
POP
RETI
PSW
ACC
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
MOV
SETB
MOV
S3CON,#10H
T2L,#0E8H
T2H,#0FFH
AUXR,#14H
IE2,#ES3
EA
S3BUF,#5AH
JMP
$
选型顾问: 13922805190
CHECKRI:
ISREXIT:
MAIN:
;65536-11059200/115200/4=0FFE8H
;启动定时器
;使能串口中断
;发送测试数据
END
11.5.16 UART4 中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
#define
T2L
T2H
AUXR
S4CON
S4BUF
IE2
ES4
=
=
=
=
=
=
0xd7;
0xd6;
0x8e;
0x84;
0x85;
0xaf;
0x10
sfr
P0M1
=
0x93;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 277 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
sbit
P12
P13
=
=
P1^2;
P1^3;
void UART4_Isr() interrupt 18
{
if (S4CON & 0x02)
{
S4CON &= ~0x02;
P12 = !P12;
}
if (S4CON & 0x01)
{
S4CON &= ~0x01;
P13 = !P13;
}
}
技术支持: 19864585985
选型顾问: 13922805190
//清中断标志
//测试端口
//清中断标志
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
S4CON = 0x10;
T2L = 0xe8;
T2H = 0xff;
AUXR = 0x14;
IE2 = ES4;
EA = 1;
S4BUF = 0x5a;
//65536-11059200/115200/4=0FFE8H
//启动定时器
//使能串口中断
//发送测试数据
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 278 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
T2L
T2H
AUXR
S4CON
S4BUF
IE2
ES4
DATA
DATA
DATA
DATA
DATA
DATA
EQU
0D7H
0D6H
8EH
84H
85H
0AFH
10H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0093H
UART4ISR
ORG
0100H
PUSH
PUSH
MOV
JNB
ANL
CPL
ACC
PSW
A,S4CON
ACC.1,CHECKRI
S4CON,#NOT 02H
P1.2
;清中断标志
;测试端口
MOV
JNB
ANL
CPL
A,S4CON
ACC.0,ISREXIT
S4CON,#NOT 01H
P1.3
;清中断标志
;测试端口
POP
POP
RETI
PSW
ACC
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
选型顾问: 13922805190
UART4ISR:
CHECKRI:
ISREXIT:
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 279 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
SETB
MOV
S4CON,#10H
T2L,#0E8H
T2H,#0FFH
AUXR,#14H
IE2,#ES4
EA
S4BUF,#5AH
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;65536-11059200/115200/4=0FFE8H
;启动定时器
;使能串口中断
;发送测试数据
END
11.5.17 LVD 中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
#define
#define
#define
#define
#define
sbit
#define
RSTCFG
ENLVR
LVD2V2
LVD2V4
LVD2V7
LVD3V0
ELVD
LVDF
=
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sbit
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
P10
=
=
=
=
=
=
=
=
=
=
=
=
=
void LVD_Isr() interrupt 6
{
PCON &= ~LVDF;
P10 = !P10;
}
=
0xff;
0x40
0x00
0x01
0x02
0x03
IE^6;
0x20
//RSTCFG.6
//LVD@2.2V
//LVD@2.4V
//LVD@2.7V
//LVD@3.0V
//PCON.5
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
P1^0;
//清中断标志
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 280 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//上电需要清中断标志
//设置 LVD 电压为 3.0V
PCON &= ~LVDF;
RSTCFG = LVD3V0;
ELVD = 1; //使能 LVD 中断
EA = 1;
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
RSTCFG
ENLVR
LVD2V2
LVD2V4
LVD2V7
LVD3V0
ELVD
LVDF
DATA
EQU
EQU
EQU
EQU
EQU
BIT
EQU
0FFH
40H
00H
01H
02H
03H
IE.6
20H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0033H
LVDISR
ORG
0100H
ANL
CPL
RETI
PCON,#NOT LVDF
P1.0
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
;RSTCFG.6
;LVD@2.2V
;LVD@2.4V
;LVD@2.7V
;LVD@3.0V
;PCON.5
LVDISR:
;清中断标志
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 281 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
ANL
MOV
SETB
SETB
JMP
PCON,#NOT LVDF
RSTCFG,# LVD3V0
ELVD
EA
$
技术支持: 19864585985
选型顾问: 13922805190
;上电需要清中断标志
;设置 LVD 电压为 3.0V
;使能 LVD 中断
END
11.5.18 SPI 中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
#define
SPSTAT
SPCTL
SPDAT
IE2
ESPI
=
=
=
=
0xcd;
0xce;
0xcf;
0xaf;
0x02
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void SPI_Isr() interrupt 9
{
SPSTAT = 0xc0;
P10 = !P10;
}
//清中断标志
//测试端口
void main()
{
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 282 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//使能 SPI 主机模式
//清中断标志
//使能 SPI 中断
SPCTL = 0x50;
SPSTAT = 0xc0;
IE2 = ESPI;
EA = 1;
SPDAT = 0x5a;
//发送测试数据
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
SPSTAT
SPCTL
SPDAT
IE2
ESPI
DATA
DATA
DATA
DATA
EQU
0CDH
0CEH
0CFH
0AFH
02H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
004BH
SPIISR
ORG
0100H
MOV
CPL
RETI
SPSTAT,#0C0H
P1.0
MOV
MOV
SP, #5FH
P0M0, #00H
SPIISR:
;清中断标志
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 283 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
MOV
SPCTL,#50H
SPSTAT,#0C0H
IE2,#ESPI
EA
SPDAT,#5AH
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;使能 SPI 主机模式
;清中断标志
;使能 SPI 中断
;发送测试数据
END
11.5.19 比较器中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
CMPCR1
CMPCR2
=
=
0xe6;
0xe7;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void CMP_Isr() interrupt 21
{
CMPCR1 &= ~0x40;
P10 = !P10;
}
//清中断标志
//测试端口
void main()
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 284 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
CMPCR2 = 0x00;
CMPCR1 = 0x80;
CMPCR1 |= 0x30;
CMPCR1 &= ~0x08;
CMPCR1 |= 0x04;
CMPCR1 |= 0x02;
EA = 1;
//使能比较器模块
//使能比较器边沿中断
//P3.6 为 CMP+输入脚
//P3.7 为 CMP-输入脚
//使能比较器输出
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
CMPCR1
CMPCR2
DATA
DATA
0E6H
0E7H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
00ABH
CMPISR
ORG
0100H
ANL
CPL
RETI
CMPCR1,#NOT 40H
P1.0
MOV
MOV
SP, #5FH
P0M0, #00H
CMPISR:
;清中断标志
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 285 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
ORL
ANL
ORL
ORL
SETB
CMPCR2,#00H
CMPCR1,#80H
CMPCR1,#30H
CMPCR1,#NOT 08H
CMPCR1,#04H
CMPCR1,#02H
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;使能比较器模块
;使能比较器边沿中断
;P3.6 为 CMP+输入脚
;P3.7 为 CMP-输入脚
;使能比较器输出
END
11.5.20 I2C 中断
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
P_SW2
#define
#define
#define
#define
#define
#define
#define
#d
efine
I2CCFG
I2CMSCR
I2CMSST
I2CSLCR
I2CSLST
I2CSLADR
I2CTXD
(*(unsigned char volatile xdata *)0xfe80)
(*(unsigned char volatile xdata *)0xfe81)
(*(unsigned char volatile xdata *)0xfe82)
(*(unsigned char volatile xdata *)0xfe83)
(*(unsigned char volatile xdata *)0xfe84)
(*(unsigned char volatile xdata *)0xfe85)
(*(unsigned char volatile xdata *)0xfe86)
I2CRXD
(*(unsigned char volatile xdata *)0xfe87)
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
深圳国芯人工智能有限公司
=
=
=
=
=
=
=
=
=
=
=
=
0xba;
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 286 -
STC8A8K64D4 系列技术手册
sfr
sbit
P5M0
P10
官方网站: www.STCMCUDATA.com
=
=
技术支持: 19864585985
选型顾问: 13922805190
0xca;
P1^0;
void I2C_Isr() interrupt 24
{
_push_(P_SW2);
P_SW2 |= 0x80;
if (I2CMSST & 0x40)
{
I2CMSST &= ~0x40;
P10 = !P10;
}
_pop_(P_SW2);
}
//清中断标志
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P_SW2 = 0x80;
I2CCFG = 0xc0;
I2CMSCR = 0x80;
P_SW2 = 0x00;
EA = 1;
//使能 I2C 主机模式
//使能 I2C 中断;
P_SW2 = 0x80;
I2CMSCR = 0x81;
P_SW2 = 0x00;
//发送起始命令
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
I2CCFG
I2CMSCR
I2CMSST
I2CSLCR
I2CSLST
I2CSLADR
I2CTXD
I2CRXD
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
XDATA
0FE80H
0FE81H
0FE82H
0FE83H
0FE84H
0FE85H
0FE86H
0FE87H
P0M1
DATA
093H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 287 -
STC8A8K64D4 系列技术手册
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
00C3H
I2CISR
ORG
0100H
PUSH
PUSH
PUSH
PUSH
MOV
MOV
MOVX
ANL
MOVX
CPL
POP
POP
POP
POP
RETI
ACC
DPL
DPH
P_SW2
P_SW2,#80H
DPTR,#I2CMSST
A,@DPTR
A,#NOT 40H
@DPTR,A
P1.0
P_SW2
DPH
DPL
ACC
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
SETB
P_SW2,#80H
A,#0C0H
DPTR,#I2CCFG
@DPTR,A
A,#80H
DPTR,#I2CMSCR
@DPTR,A
P_SW2,#00H
EA
技术支持: 19864585985
选型顾问: 13922805190
I2CISR:
;清中断标志
;测试端口
MAIN:
深圳国芯人工智能有限公司
;使能 I2C 主机模式
;使能 I2C 中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 288 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOVX
MOV
P_SW2,#80H
A,#081H
DPTR,#I2CMSCR
@DPTR,A
P_SW2,#00H
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;发送起始命令
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 289 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
12 I/O 口中断
STC8A8K64D4 系列支持所有的 I/O 中断,且支持 4 种中断模式:下降沿中断、上升沿中断、低电
平中断、高电平中断。每组 I/O 口都有独立的中断入口地址,每个 I/O 可独立设置中断模式, 每个 I/O 可
独立设置唤醒掉电模式
12.1 I/O 口中断相关寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
P0INTE
P0 口中断使能寄存器
FD00H P07INTE
P06INTE
P05INTE
P04INTE
P03INTE
P02INTE
P01INTE
P00INTE 0000,0000
P1INTE
P1 口中断使能寄存器
FD01H P17INTE
P16INTE
P15INTE
P14INTE
P13INTE
P12INTE
P11INTE
P10INTE 0000,0000
P2INTE
P2 口中断使能寄存器
FD02H P27INTE
P26INTE
P25INTE
P24INTE
P23INTE
P22INTE
P21INTE
P20INTE 0000,0000
P3INTE
P3 口中断使能寄存器
FD03H P37INTE
P36INTE
P35INTE
P34INTE
P33INTE
P32INTE
P31INTE
P30INTE 0000,0000
P4INTE
P4 口中断使能寄存器
FD04H P47INTE
P46INTE
P45INTE
P44INTE
P43INTE
P42INTE
P41INTE
P40INTE 0000,0000
P5INTE
P5 口中断使能寄存器
FD05H
-
P55INTE
P54INTE
P53INTE
P52INTE
P51INTE
P50INTE xx00,0000
P6INTE
P6 口中断使能寄存器
FD06H P67INTE
P66INTE
P65INTE
P64INTE
P63INTE
P62INTE
P61INTE
P60INTE 0000,0000
P7INTE
P7 口中断使能寄存器
FD07H P77INTE
P76INTE
P75INTE
P74INTE
P73INTE
P72INTE
P71INTE
P70INTE 0000,0000
P0INTF
P0 口中断标志寄存器
FD10H P07INTF
P06INTF
P05INTF
P04INTF
P03INTF
P02INTF
P01INTF
P00INTF 0000,0000
P1INTF
P1 口中断标志寄存器
FD11H P17INTF
P16INTF
P15INTF
P14INTF
P13INTF
P12INTF
P11INTF
P10INTF 0000,0000
P2INTF
P2 口中断标志寄存器
FD12H P27INTF
P26INTF
P25INTF
P24INTF
P23INTF
P22INTF
P21INTF
P20INTF 0000,0000
P3INTF
P3 口中断标志寄存器
FD13H P37INTF
P36INTF
P35INTF
P34INTF
P33INTF
P32INTF
P31INTF
P30INTF 0000,0000
P4INTF
P4 口中断标志寄存器
FD14H P47INTF
P46INTF
P45INTF
P44INTF
P43INTF
P42INTF
P41INTF
P40INTF 0000,0000
P5INTF
P5 口中断标志寄存器
FD15H
-
P55INTF
P54INTF
P53INTF
P52INTF
P51INTF
P50INTF xx00,0000
P6INTF
P6 口中断标志寄存器
FD16H P67INTF
P66INTF
P65INTF
P64INTF
P63INTF
P62INTF
P61INTF
P60INTF 0000,0000
P7INTF
P7 口中断标志寄存器
FD17H P77INTF
P76INTF
P75INTF
P74INTF
P73INTF
P72INTF
P71INTF
P70INTF 0000,0000
P0IM0
P0 口中断模式寄存器 0
FD20H
P07IM0
P06IM0
P05IM0
P04IM0
P03IM0
P02IM0
P01IM0
P00IM0
0000,0000
P1IM0
P1 口中断模式寄存器 0
FD21H
P17IM0
P16IM0
P15IM0
P14IM0
P13IM0
P12IM0
P11IM0
P10IM0
0000,0000
P2IM0
P2 口中断模式寄存器 0
FD22H
P27IM0
P26IM0
P25IM0
P24IM0
P23IM0
P22IM0
P21IM0
P20IM0
0000,0000
P3IM0
P3 口中断模式寄存器 0
FD23H
P37IM0
P36IM0
P35IM0
P34IM0
P33IM0
P32IM0
P31IM0
P30IM0
0000,0000
P4IM0
P4 口中断模式寄存器 0
FD24H
P47IM0
P46IM0
P45IM0
P44IM0
P43IM0
P42IM0
P41IM0
P40IM0
0000,0000
P5IM0
P5 口中断模式寄存器 0
FD25H
-
-
P55IM0
P54IM0
P53IM0
P52IM0
P51IM0
P50IM0
xx00,0000
P6IM0
P6 口中断模式寄存器 0
FD26H
P67IM0
P66IM0
P65IM0
P64IM0
P63IM0
P62IM0
P61IM0
P60IM0
0000,0000
P7IM0
P7 口中断模式寄存器 0
FD27H
P77IM0
P76IM0
P75IM0
P74IM0
P73IM0
P72IM0
P71IM0
P70IM0
0000,0000
P0IM1
P0 口中断模式寄存器 1
FD30H
P07IM1
P06IM1
P05IM1
P04IM1
P03IM1
P02IM1
P01IM1
P00IM1
0000,0000
P1IM1
P1 口中断模式寄存器 1
FD31H
P17IM1
P16IM1
P15IM1
P14IM1
P13IM1
P12IM1
P11IM1
P10IM1
0000,0000
P2IM1
P2 口中断模式寄存器 1
FD32H
P27IM1
P26IM1
P25IM1
P24IM1
P23IM1
P22IM1
P21IM1
P20IM1
0000,0000
P3IM1
P3 口中断模式寄存器 1
FD33H
P37IM1
P36IM1
P35IM1
P34IM1
P33IM1
P32IM1
P31IM1
P30IM1
0000,0000
P4IM1
P4 口中断模式寄存器 1
FD34H
P47IM1
P46IM1
P45IM1
P44IM1
P43IM1
P42IM1
P41IM1
P40IM1
0000,0000
P5IM1
P5 口中断模式寄存器 1
FD35H
-
-
P55IM1
P54IM1
P53IM1
P52IM1
P51IM1
P50IM1
xx00,0000
P6IM1
P6 口中断模式寄存器 1
FD36H
P67IM1
P66IM1
P65IM1
P64IM1
P63IM1
P62IM1
P61IM1
P60IM1
0000,0000
深圳国芯人工智能有限公司
-
-
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 290 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P7IM1
P7 口中断模式寄存器 1
FD37H
P77IM1
P76IM1
P75IM1
P74IM1
P73IM1
P72IM1
P71IM1
P70IM1
0000,0000
PINIPL
I/O 口中断优先级低寄存器
FD60H
P7IP
P6IP
P5IP
P4IP
P3IP
P2IP
P1IP
P0IP
0000,0000
PINIPH
I/O 口中断优先级高寄存器
FD61H
P7IPH
P6IPH
P5IPH
P4IPH
P3IPH
P2IPH
P1IPH
P0IPH
0000,0000
P0WKUE
P0 口中断唤醒使能寄存器
FD40H P07WKUE P06WKUE P05WKUE P04WKUE P03WKUE P02WKUE P01WKUE P00WKUE 0000,0000
P1WKUE
P1 口中断唤醒使能寄存器
FD41H P17WKUE P16WKUE P15WKUE P14WKUE P13WKUE P12WKUE P11WKUE P10WKUE 0000,0000
P2WKUE
P2 口中断唤醒使能寄存器
FD42H P27WKUE P26WKUE P25WKUE P24WKUE P23WKUE P22WKUE P21WKUE P20WKUE 0000,0000
P3WKUE
P3 口中断唤醒使能寄存器
FD43H P37WKUE P36WKUE P35WKUE P34WKUE P33WKUE P32WKUE P31WKUE P30WKUE 0000,0000
P4WKUE
P4 口中断唤醒使能寄存器
FD44H P47WKUE P46WKUE P45WKUE P44WKUE P43WKUE P42WKUE P41WKUE P40WKUE 0000,0000
P5WKUE
P5 口中断唤醒使能寄存器
FD45H
P6WKUE
P6 口中断唤醒使能寄存器
FD46H P67WKUE P66WKUE P65WKUE P64WKUE P63WKUE P62WKUE P61WKUE P60WKUE 0000,0000
P7WKUE
P7 口中断唤醒使能寄存器
FD47H P77WKUE P76WKUE P75WKUE P74WKUE P73WKUE P72WKUE P71WKUE P70WKUE 0000,0000
-
-
P55WKUE P54WKUE P53WKUE P52WKUE P51WKUE P50WKUE xx00,0000
12.1.1 端口中断使能寄存器(PxINTE)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0INTE
FD00H
P07INTE
P06INTE
P05INTE
P04INTE
P03INTE
P02INTE
P01INTE
P00INTE
P1INTE
FD01H
P17INTE
P16INTE
P15INTE
P14INTE
P13INTE
P12INTE
P11INTE
P10INTE
P2INTE
FD02H
P27INTE
P26INTE
P25INTE
P24INTE
P23INTE
P22INTE
P21INTE
P20INTE
P3INTE
FD03H
P37INTE
P36INTE
P35INTE
P34INTE
P33INTE
P32INTE
P31INTE
P30INTE
P4INTE
FD04H
P47INTE
P46INTE
P45INTE
P44INTE
P43INTE
P42INTE
P41INTE
P40INTE
P5INTE
FD05H
-
-
P55INTE
P54INTE
P53INTE
P52INTE
P51INTE
P50INTE
P6INTE
FD06H
P67INTE
P66INTE
P65INTE
P64INTE
P63INTE
P62INTE
P61INTE
P60INTE
P7INTE
FD07H
P77INTE
P76INTE
P75INTE
P74INTE
P73INTE
P72INTE
P71INTE
P70INTE
PnINTE.x:端口中断使能控制位(n=0~7,x=0~7)
0:关闭 Pn.x 口中断功能
1:使能 Pn.x 口中断功能
12.1.2 端口中断标志寄存器(PxINTF)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0INTF
FD10H
P07INTF
P06INTF
P05INTF
P04INTF
P03INTF
P02INTF
P01INTF
P00INTF
P1INTF
FD11H
P17INTF
P16INTF
P15INTF
P14INTF
P13INTF
P12INTF
P11INTF
P10INTF
P2INTF
FD12H
P27INTF
P26INTF
P25INTF
P24INTF
P23INTF
P22INTF
P21INTF
P20INTF
P3INTF
FD13H
P37INTF
P36INTF
P35INTF
P34INTF
P33INTF
P32INTF
P31INTF
P30INTF
P4INTF
FD14H
P47INTF
P46INTF
P45INTF
P44INTF
P43INTF
P42INTF
P41INTF
P40INTF
P5INTF
FD15H
-
-
P55INTF
P54INTF
P53INTF
P52INTF
P51INTF
P50INTF
P6INTF
FD16H
P67INTF
P66INTF
P65INTF
P64INTF
P63INTF
P62INTF
P61INTF
P60INTF
P7INTF
FD17H
P77INTF
P76INTF
P75INTF
P74INTF
P73INTF
P72INTF
P71INTF
P70INTF
PnINTF.x:端口中断请求标志位(n=0~7,x=0~7)
0:Pn.x 口没有中断请求
1:Pn.x 口有中断请求,若使能中断,则会进入中断服务程序。标志位需软件清 0。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 291 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
12.1.3 端口中断模式配置寄存器(PxIM0,PxIM1)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0IM0
FD20H
P07IM0
P06IM0
P05IM0
P04IM0
P03IM0
P02IM0
P01IM0
P00IM0
P0IM1
FD30H
P07IM1
P06IM1
P05IM1
P04IM1
P03IM1
P02IM1
P01IM1
P00IM1
P1IM0
FD21H
P17IM0
P16IM0
P15IM0
P14IM0
P13IM0
P12IM0
P11IM0
P10IM0
P1IM1
FD31H
P17IM1
P16IM1
P15IM1
P14IM1
P13IM1
P12IM1
P11IM1
P10IM1
P2IM0
FD22H
P27IM0
P26IM0
P25IM0
P24IM0
P23IM0
P22IM0
P21IM0
P20IM0
P2IM1
FD32H
P27IM1
P26IM1
P25IM1
P24IM1
P23IM1
P22IM1
P21IM1
P20IM1
P3IM0
FD23H
P37IM0
P36IM0
P35IM0
P34IM0
P33IM0
P32IM0
P31IM0
P30IM0
P3IM1
FD33H
P37IM1
P36IM1
P35IM1
P34IM1
P33IM1
P32IM1
P31IM1
P30IM1
P4IM0
FD24H
P47IM0
P46IM0
P45IM0
P44IM0
P43IM0
P42IM0
P41IM0
P40IM0
P4IM1
FD34H
P47IM1
P46IM1
P45IM1
P44IM1
P43IM1
P42IM1
P41IM1
P40IM1
P5IM0
FD25H
-
-
P55IM0
P54IM0
P53IM0
P52IM0
P51IM0
P50IM0
P5IM1
FD35H
-
-
P55IM1
P54IM1
P53IM1
P52IM1
P51IM1
P50IM1
P6IM0
FD26H
P67IM0
P66IM0
P65IM0
P64IM0
P63IM0
P62IM0
P61IM0
P60IM0
P6IM1
FD36H
P67IM1
P66IM1
P65IM1
P64IM1
P63IM1
P62IM1
P61IM1
P60IM1
P7IM0
FD27H
P77IM0
P76IM0
P75IM0
P74IM0
P73IM0
P72IM0
P71IM0
P70IM0
P7IM1
FD37H
P77IM1
P76IM1
P75IM1
P74IM1
P73IM1
P72IM1
P71IM1
P70IM1
配置端口的模式
PnIM1.x
PnIM0.x
Pn.x 口中断模式
0
0
下降沿中断
0
1
上升沿中断
1
0
低电平中断
1
1
高电平中断
12.1.4 端口中断优先级控制寄存器(PINIPL,PINIPH)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PINIPL
FD60H
P7IP
P6IP
P5IP
P4IP
P3IP
P2IP
P1IP
P0IP
PINIPH
FD61H
P7IPH
P6IPH
P5IPH
P4IPH
P3IPH
P2IPH
P1IPH
P0IPH
PxIPH,PxIP:Px口中断优先级控制位
00:Px 口中断优先级为 0 级(最低级)
01:Px 口中断优先级为 1 级(较低级)
10:Px 口中断优先级为 2 级(较高级)
11:Px 口中断优先级为 3 级(最高级)
12.1.5 端口中断掉电唤醒使能寄存器(PxWKUE)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
P0WKU
FD40
P07WKU
P06WKU
P05WKU
P04WKU
P03WKU
P02WKU
P01WKU
P00WKU
E
H
E
E
E
E
E
E
E
E
P1WKU
FD41
P17WKU
P16WKU
P15WKU
P14WKU
P13WKU
P12WKU
P11WKU
P10WKU
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 292 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
E
H
E
E
E
E
E
E
E
E
P2WKU
FD42
P27WKU
P26WKU
P25WKU
P24WKU
P23WKU
P22WKU
P21WKU
P20WKU
E
H
E
E
E
E
E
E
E
E
P3WKU
FD43
P37WKU
P36WKU
P35WKU
P34WKU
P33WKU
P32WKU
P31WKU
P30WKU
E
H
E
E
E
E
E
E
E
E
P4WKU
FD44
P47WKU
P46WKU
P45WKU
P44WKU
P43WKU
P42WKU
P41WKU
P40WKU
E
H
E
E
E
E
E
E
E
E
P5WKU
FD45
P54WKU
P53WKU
P52WKU
P51WKU
P50WKU
H
-
P55WKU
E
-
E
E
E
E
E
E
P6WKU
FD46
P67WKU
P66WKU
P65WKU
P64WKU
P63WKU
P62WKU
P61WKU
P60WKU
E
H
E
E
E
E
E
E
E
E
P7WKU
FD47
P77WKU
P76WKU
P75WKU
P74WKU
P73WKU
P72WKU
P71WKU
P70WKU
E
H
E
E
E
E
E
E
E
E
PnxWKUE:端口中断掉电唤醒使能控制位(n=0~7,x=0~7)
0:关闭 Pn.x 口中断掉电唤醒功能
1:使能 Pn.x 口中断掉电唤醒功能
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 293 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
12.2 范例程序
P0 口下降沿中断
12.2.1
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0x94;
0x93;
0x92;
0x91;
0x96;
0x95;
0xb2;
0xb1;
0xb4;
0xb3;
0xca;
0xc9;
0xcc;
0xcb;
0xe2;
0xe1;
sfr
P_SW2
=
0xba;
#define
#define
#define
#define
P0INTE
P0INTF
P0IM0
P0IM1
(*(unsigned char volatile xdata *)0xfd00)
(*(unsigned char volatile xdata *)0xfd10)
(*(unsigned char volatile xdata *)0xfd20)
(*(unsigned char volatile xdata *)0xfd30)
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P_SW2 |= 0x80;
P0IM0 = 0x00;
P0IM1 = 0x00;
P0INTE = 0xff;
P_SW2 &= ~0x80;
深圳国芯人工智能有限公司
//下降沿中断
//使能 P0 口中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 294 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
EA = 1;
while (1);
}
//由于中断向量大于 31,在 KEIL 中无法直接编译
//必须借用第 13 号中断入口地址
void common_isr() interrupt 13
{
unsigned char psw2_st;
unsigned char intf;
psw2_st = P_SW2;
P_SW2 |= 0x80;
intf = P0INTF;
if (intf)
{
P0INTF = 0x00;
if (intf & 0x01)
{
//P0.0 口中断
}
if (intf & 0x02)
{
//P0.1 口中断
}
if (intf & 0x04)
{
//P0.2 口中断
}
if (intf & 0x08)
{
//P0.3 口中断
}
if (intf & 0x10)
{
//P0.4 口中断
}
if (intf & 0x20)
{
//P0.5 口中断
}
if (intf & 0x40)
{
//P0.6 口中断
}
if (intf & 0x80)
{
//P0.7 口中断
}
}
P_SW2 = psw2_st;
}
// ISR.ASM
//将下面的代码保存为 ISP.ASM,然后将文件加入到项目中即可
CSEG
JMP
深圳国芯人工智能有限公司
AT 012BH
P0INT_ISR
;P0 口中断入口地址
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 295 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P0INT_ISR:
JMP
END
006BH
;借用 13 号中断的入口地址
汇编代码
;测试工作频率为 11.0592MHz
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
094H
093H
092H
091H
096H
095H
0B2H
0B1H
0B4H
0B3H
0CAH
0C9H
0CCH
0CBH
0E2H
0E1H
P_SW2
DATA
0BAH
P0INTE
P0INTF
P0IM0
P0IM1
XDATA
XDATA
XDATA
XDATA
0FD00H
0FD10H
0FD20H
0FD30H
ORG
LJMP
0000H
MAIN
ORG
012BH
PUSH
PUSH
PUSH
PUSH
PUSH
ACC
B
DPL
DPH
P_SW2
MOV
MOVX
MOV
CLR
MOVX
MOV
DPTR,#P0INTF
A,@DPTR
B,A
A
@DPTR,A
A,B
JNB
NOP
ACC.0,CHECKP01
JNB
NOP
ACC.1,CHECKP02
JNB
ACC.2,CHECKP03
;P0 口中断入口地址
P0INT_ISR:
CHECKP00:
;P0.0 口中断
CHECKP01:
;P0.1 口中断
CHECKP02:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 296 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
;P0.2 口中断
NOP
CHECKP03
JNB
NOP
ACC.3,CHECKP04
JNB
NOP
ACC.4,CHECKP05
JNB
NOP
ACC.5,CHECKP06
JNB
NOP
ACC.6,CHECKP07
JNB
NOP
ACC.7,P0ISREXIT
POP
POP
POP
POP
POP
RETI
P_SW2
DPH
DPL
B
ACC
ORG
0200H
MOV
SP, #5FH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M0,#00H
P0M1,#00H
P1M0,#00H
P1M1,#00H
P2M0,#00H
P2M1,#00H
P3M0,#00H
P3M1,#00H
ORL
CLR
MOV
MOVX
MOV
MOVX
MOV
MOV
MOVX
ANL
P_SW2,#80H
A
DPTR,# P0IM0
@DPTR,A
DPTR,# P0IM1
@DPTR,A
DPTR,# P0INTE
A,#0FFH
@DPTR,A
P_SW2,#7FH
SETB
EA
JMP
$
;P0.3 口中断
CHECKP04:
;P0.4 口中断
CHECKP05:
;P0.5 口中断
CHECKP06:
;P0.6 口中断
CHECKP07:
;P0.7 口中断
P0ISREXIT:
MAIN:
;下降沿中断
;使能 P0 口中断
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 297 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P1 口上升沿中断
12.2.2
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0x94;
0x93;
0x92;
0x91;
0x96;
0x95;
0xb2;
0xb1;
0xb4;
0xb3;
0xca;
0xc9;
0xcc;
0xcb;
0xe2;
0xe1;
sfr
P_SW2
=
0xba;
#define
#define
#define
#define
P1INTE
P1INTF
P1IM0
P1IM1
(*(unsigned char volatile xdata *)0xfd01)
(*(unsigned char volatile xdata *)0xfd11)
(*(unsigned char volatile xdata *)0xfd21)
(*(unsigned char volatile xdata *)0xfd31)
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P_SW2 |= 0x80;
P1IM0 = 0xff;
P1IM1 = 0x00;
P1INTE = 0xff;
P_SW2 &= ~0x80;
//上升沿中断
//使能 P1 口中断
EA = 1;
while (1);
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 298 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
//由于中断向量大于 31,在 KEIL 中无法直接编译
//必须借用第 13 号中断入口地址
void common_isr() interrupt 13
{
unsigned char psw2_st;
unsigned char intf;
psw2_st = P_SW2;
P_SW2 |= 0x80;
intf = P1INTF;
if (intf)
{
P1INTF = 0x00;
if (intf & 0x01)
{
//P1.0 口中断
}
if (intf & 0x02)
{
//P1.1 口中断
}
if (intf & 0x04)
{
//P1.2 口中断
}
if (intf & 0x08)
{
//P1.3 口中断
}
if (intf & 0x10)
{
//P1.4 口中断
}
if (intf & 0x20)
{
//P1.5 口中断
}
if (intf & 0x40)
{
//P1.6 口中断
}
if (intf & 0x80)
{
//P1.7 口中断
}
}
P_SW2 = psw2_st;
}
// ISR.ASM
//将下面的代码保存为 ISP.ASM,然后将文件加入到项目中即可
CSEG
JMP
AT 0133H
P1INT_ISR
;P1 口中断入口地址
JMP
END
006BH
;借用 13 号中断的入口地址
P1INT_ISR:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 299 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
汇编代码
;测试工作频率为 11.0592MHz
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
094H
093H
092H
091H
096H
095H
0B2H
0B1H
0B4H
0B3H
0CAH
0C9H
0CCH
0CBH
0E2H
0E1H
P_SW2
DATA
0BAH
P1INTE
P1INTF
P1IM0
P1IM1
XDATA
XDATA
XDATA
XDATA
0FD01H
0FD11H
0FD21H
0FD31H
ORG
LJMP
0000H
MAIN
ORG
0133H
PUSH
PUSH
PUSH
PUSH
PUSH
ACC
B
DPL
DPH
P_SW2
MOV
MOVX
MOV
CLR
MOVX
MOV
DPTR,#P1INTF
A,@DPTR
B,A
A
@DPTR,A
A,B
JNB
NOP
ACC.0,CHECKP11
JNB
NOP
ACC.1,CHECKP12
JNB
NOP
ACC.2,CHECKP13
JNB
NOP
ACC.3,CHECKP14
;P1 口中断入口地址
P1INT_ISR:
CHECKP10:
;P1.0 口中断
CHECKP11:
;P1.1 口中断
CHECKP12:
;P1.2 口中断
CHECKP13
深圳国芯人工智能有限公司
;P1.3 口中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 300 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
CHECKP14:
JNB
NOP
ACC.4,CHECKP15
JNB
NOP
ACC.5,CHECKP16
JNB
NOP
ACC.6,CHECKP17
JNB
NOP
ACC.7,P1ISREXIT
POP
POP
POP
POP
POP
RETI
P_SW2
DPH
DPL
B
ACC
ORG
0200H
MOV
SP, #5FH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M0,#00H
P0M1,#00H
P1M0,#00H
P1M1,#00H
P2M0,#00H
P2M1,#00H
P3M0,#00H
P3M1,#00H
ORL
CLR
MOV
MOVX
MOV
MOVX
MOV
MOV
MOVX
ANL
P_SW2,#80H
A
DPTR,# P1IM0
@DPTR,A
DPTR,# P1IM1
@DPTR,A
DPTR,# P1INTE
A,#0FFH
@DPTR,A
P_SW2,#7FH
SETB
EA
JMP
$
;P1.4 口中断
CHECKP15:
;P1.5 口中断
CHECKP16:
;P1.6 口中断
CHECKP17:
;P1.7 口中断
P1ISREXIT:
MAIN:
;下降沿中断
;使能 P1 口中断
END
12.2.3
P2 口低电平中断
C 语言代码
//测试工作频率为 11.0592MHz
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 301 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0x94;
0x93;
0x92;
0x91;
0x96;
0x95;
0xb2;
0xb1;
0xb4;
0xb3;
0xca;
0xc9;
0xcc;
0xcb;
0xe2;
0xe1;
sfr
P_SW2
=
0xba;
#define
#define
#define
#define
P2INTE
P2INTF
P2IM0
P2IM1
(*(unsigned char volatile xdata *)0xfd02)
(*(unsigned char volatile xdata *)0xfd12)
(*(unsigned char volatile xdata *)0xfd22)
(*(unsigned char volatile xdata *)0xfd32)
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P_SW2 |= 0x80;
P2IM0 = 0x00;
P2IM1 = 0xff;
P2INTE = 0xff;
P_SW2 &= ~0x80;
//低电平中断
//使能 P2 口中断
EA = 1;
while (1);
}
//由于中断向量大于 31,在 KEIL 中无法直接编译
//必须借用第 13 号中断入口地址
void common_isr() interrupt 13
{
unsigned char psw2_st;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 302 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
unsigned char intf;
psw2_st = P_SW2;
P_SW2 |= 0x80;
intf = P2INTF;
if (intf)
{
P2INTF = 0x00;
if (intf & 0x01)
{
//P2.0 口中断
}
if (intf & 0x02)
{
//P2.1 口中断
}
if (intf & 0x04)
{
//P2.2 口中断
}
if (intf & 0x08)
{
//P0.3 口中断
}
if (intf & 0x10)
{
//P2.4 口中断
}
if (intf & 0x20)
{
//P2.5 口中断
}
if (intf & 0x40)
{
//P2.6 口中断
}
if (intf & 0x80)
{
//P2.7 口中断
}
}
P_SW2 = psw2_st;
}
// ISR.ASM
//将下面的代码保存为 ISP.ASM,然后将文件加入到项目中即可
CSEG
JMP
AT 013BH
P2INT_ISR
;P2 口中断入口地址
JMP
END
006BH
;借用 13 号中断的入口地址
P2INT_ISR:
汇编代码
;测试工作频率为 11.0592MHz
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 303 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
094H
093H
092H
091H
096H
095H
0B2H
0B1H
0B4H
0B3H
0CAH
0C9H
0CCH
0CBH
0E2H
0E1H
P_SW2
DATA
0BAH
P2INTE
P2INTF
P2IM0
P2IM1
XDATA
XDATA
XDATA
XDATA
0FD02H
0FD12H
0FD22H
0FD32H
ORG
LJMP
0000H
MAIN
ORG
013BH
PUSH
PUSH
PUSH
PUSH
PUSH
ACC
B
DPL
DPH
P_SW2
MOV
MOVX
MOV
CLR
MOVX
MOV
DPTR,#P2INTF
A,@DPTR
B,A
A
@DPTR,A
A,B
JNB
NOP
ACC.0,CHECKP21
JNB
NOP
ACC.1,CHECKP22
JNB
NOP
ACC.2,CHECKP23
JNB
NOP
ACC.3,CHECKP24
JNB
NOP
ACC.4,CHECKP25
JNB
NOP
ACC.5,CHECKP26
技术支持: 19864585985
选型顾问: 13922805190
;P2 口中断入口地址
P2INT_ISR:
CHECKP20:
;P2.0 口中断
CHECKP21:
;P2.1 口中断
CHECKP22:
;P2.2 口中断
CHECKP23
;P2.3 口中断
CHECKP24:
;P2.4 口中断
CHECKP25:
深圳国芯人工智能有限公司
;P2.5 口中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 304 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
CHECKP26:
JNB
NOP
ACC.6,CHECKP27
JNB
NOP
ACC.7,P2ISREXIT
POP
POP
POP
POP
POP
RETI
P_SW2
DPH
DPL
B
ACC
ORG
0200H
MOV
SP, #5FH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M0,#00H
P0M1,#00H
P1M0,#00H
P1M1,#00H
P2M0,#00H
P2M1,#00H
P3M0,#00H
P3M1,#00H
ORL
CLR
MOV
MOVX
MOV
MOVX
MOV
MOV
MOVX
ANL
P_SW2,#80H
A
DPTR,# P2IM0
@DPTR,A
DPTR,# P2IM1
@DPTR,A
DPTR,# P2INTE
A,#0FFH
@DPTR,A
P_SW2,#7FH
SETB
EA
JMP
$
;P2.6 口中断
CHECKP27:
;P2.7 口中断
P2ISREXIT:
MAIN:
;低电平中断
;使能 P2 口中断
END
P3 口高电平中断
12.2.4
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
P0M0
P0M1
深圳国芯人工智能有限公司
=
=
0x94;
0x93;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 305 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0x92;
0x91;
0x96;
0x95;
0xb2;
0xb1;
0xb4;
0xb3;
0xca;
0xc9;
0xcc;
0xcb;
0xe2;
0xe1;
sfr
P_SW2
=
0xba;
#define
#define
#define
#define
P3INTE
P3INTF
P3IM0
P3IM1
(*(unsigned char volatile xdata *)0xfd03)
(*(unsigned char volatile xdata *)0xfd13)
(*(unsigned char volatile xdata *)0xfd23)
(*(unsigned char volatile xdata *)0xfd33)
选型顾问: 13922805190
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P_SW2 |= 0x80;
P3IM0 = 0xff;
P3IM1 = 0xff;
P3INTE = 0xff;
P_SW2 &= ~0x80;
//高电平中断
//使能 P3 口中断
EA = 1;
while (1);
}
//由于中断向量大于 31,在 KEIL 中无法直接编译
//必须借用第 13 号中断入口地址
void common_isr() interrupt 13
{
unsigned char psw2_st;
unsigned char intf;
psw2_st = P_SW2;
P_SW2 |= 0x80;
intf = P3INTF;
if (intf)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 306 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
P3INTF = 0x00;
if (intf & 0x01)
{
//P3.0 口中断
}
if (intf & 0x02)
{
//P3.1 口中断
}
if (intf & 0x04)
{
//P3.2 口中断
}
if (intf & 0x08)
{
//P3.3 口中断
}
if (intf & 0x10)
{
//P3.4 口中断
}
if (intf & 0x20)
{
//P3.5 口中断
}
if (intf & 0x40)
{
//P3.6 口中断
}
if (intf & 0x80)
{
//P3.7 口中断
}
}
P_SW2 = psw2_st;
}
// ISR.ASM
//将下面的代码保存为 ISP.ASM,然后将文件加入到项目中即可
CSEG
JMP
AT 0143H
P3INT_ISR
;P3 口中断入口地址
JMP
END
006BH
;借用 13 号中断的入口地址
P3INT_ISR:
汇编代码
;测试工作频率为 11.0592MHz
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
DATA
DATA
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
094H
093H
092H
091H
096H
095H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 307 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
P6M0
P6M1
P7M0
P7M1
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0B2H
0B1H
0B4H
0B3H
0CAH
0C9H
0CCH
0CBH
0E2H
0E1H
P_SW2
DATA
0BAH
P3INTE
P3INTF
P3IM0
P3IM1
XDATA
XDATA
XDATA
XDATA
0FD03H
0FD13H
0FD23H
0FD33H
ORG
LJMP
0000H
MAIN
ORG
0143H
PUSH
PUSH
PUSH
PUSH
PUSH
ACC
B
DPL
DPH
P_SW2
MOV
MOVX
MOV
CLR
MOVX
MOV
DPTR,#P3INTF
A,@DPTR
B,A
A
@DPTR,A
A,B
JNB
NOP
ACC.0,CHECKP31
JNB
NOP
ACC.1,CHECKP32
JNB
NOP
ACC.2,CHECKP33
JNB
NOP
ACC.3,CHECKP34
JNB
NOP
ACC.4,CHECKP35
JNB
NOP
ACC.5,CHECKP36
JNB
NOP
ACC.6,CHECKP37
JNB
NOP
ACC.7,P3ISREXIT
技术支持: 19864585985
选型顾问: 13922805190
;P3 口中断入口地址
P3INT_ISR:
CHECKP30:
;P3.0 口中断
CHECKP31:
;P3.1 口中断
CHECKP32:
;P3.2 口中断
CHECKP33
;P3.3 口中断
CHECKP34:
;P3.4 口中断
CHECKP35:
;P3.5 口中断
CHECKP36:
;P3.6 口中断
CHECKP37:
深圳国芯人工智能有限公司
;P3.7 口中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 308 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P3ISREXIT:
POP
POP
POP
POP
POP
RETI
P_SW2
DPH
DPL
B
ACC
ORG
0200H
MOV
SP, #5FH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M0,#00H
P0M1,#00H
P1M0,#00H
P1M1,#00H
P2M0,#00H
P2M1,#00H
P3M0,#00H
P3M1,#00H
ORL
CLR
MOV
MOVX
MOV
MOVX
MOV
MOV
MOVX
ANL
P_SW2,#80H
A
DPTR,# P3IM0
@DPTR,A
DPTR,# P3IM1
@DPTR,A
DPTR,# P3INTE
A,#0FFH
@DPTR,A
P_SW2,#7FH
SETB
EA
JMP
$
MAIN:
;高电平中断
;使能 P3 口中断
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 309 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
13 定时器/计数器
STC8A8K64D4 系列单片机内部设置了 5 个 16 位定时器/计数器。5 个 16 位定时器 T0、T1、T2、T3
和 T4 都具有计数方式和定时方式两种工作方式。对定时器/计数器 T0 和 T1,用它们在特殊功能寄存器
TMOD 中相对应的控制位 C/T 来选择 T0 或 T1 为定时器还是计数器。对定时器/计数器 T2,用特殊功能
寄存器 AUXR 中的控制位 T2_C/T 来选择 T2 为定时器还是计数器。对定时器/计数器 T3,用特殊功能寄
存器 T4T3M 中的控制位 T3_C/T 来选择 T3 为定时器还是计数器。对定时器/计数器 T4,用特殊功能寄存
器 T4T3M 中的控制位 T4_C/T 来选择 T4 为定时器还是计数器。定时器/计数器的核心部件是一个加法计
数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟,则为定时方式,
此时定时器/计数器每 12 个时钟或者每 1 个时钟得到一个计数脉冲,计数值加 1;如果计数脉冲来自单片
机外部引脚,则为计数方式,每来一个脉冲加 1。
当定时器/计数器 T0、T1 及 T2 工作在定时模式时,特殊功能寄存器 AUXR 中的 T0x12、T1x12 和
T2x12 分别决定是系统时钟/12 还是系统时钟/1(不分频)后让 T0、T1 和 T2 进行计数。当定时器/计数
器 T3 和 T4 工作在定时模式时,特殊功能寄存器 T4T3M 中的 T3x12 和 T4x12 分别决定是系统时钟/12
还是系统时钟/1(不分频)后让 T3 和 T4 进行计数。当定时器/计数器工作在计数模式时,对外部脉冲计
数不分频。
定时器/计数器 0 有 4 种工作模式:模式 0(16 位自动重装载模式),模式 1(16 位不可重装载模式),
模式 2(8 位自动重装模式),模式 3(不可屏蔽中断的 16 位自动重装载模式)。定时器/计数器 1 除模
式 3 外,其他工作模式与定时器/计数器 0 相同。T1 在模式 3 时无效,停止计数。定时器 T2 的工作模式
固定为 16 位自动重装载模式。T2 可以当定时器使用,也可以当串口的波特率发生器和可编程时钟输出。
定时器 3、定时器 4 与定时器 T2 一样,它们的工作模式固定为 16 位自动重装载模式。T3/T4 可以当定
时器使用,也可以当串口的波特率发生器和可编程时钟输出。
13.1 定时器的相关寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
TCON
定时器控制寄存器
88H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
0000,0000
TMOD
定时器模式寄存器
89H
GATE
C/T
M1
M0
GATE
C/T
M1
M0
0000,0000
TL0
定时器 0 低 8 位寄存器
8AH
0000,0000
TL1
定时器 1 低 8 位寄存器
8BH
0000,0000
TH0
定时器 0 高 8 位寄存器
8CH
0000,0000
TH1
定时器 1 高 8 位寄存器
8DH
0000,0000
AUXR
辅助寄存器 1
8EH
T0x12
T1x12
UART_M0x6
T2R
T2_C/T
T2x12 EXTRAM
INTCLKO
中断与时钟输出控制寄存器
8FH
-
EX4
EX3
EX2
-
T2CLKO T1CLKO
WKTCL
掉电唤醒定时器低字节
AAH
WKTCH
掉电唤醒定时器高字节
ABH
WKTEN
T4T3M
定时器 4/3 控制寄存器
D1H
T4R
T4H
定时器 4 高字节
D2H
0000,0000
T4L
定时器 4 低字节
D3H
0000,0000
T3H
定时器 3 高字节
D4H
0000,0000
T3L
定时器 3 低字节
D5H
0000,0000
T2H
定时器 2 高字节
D6H
0000,0000
深圳国芯人工智能有限公司
S1ST2
0000,0001
T0CLKO x000,x000
1111,1111
0111,1111
T4_C/T
T4x12
国内分销商电话: 0513-5501 2928/2929/2966
T4CLKO
T3R
T3_C/T
T3x12
T3CLKO 0000,0000
传真: 0513-5501 2926/2956/2947
- 310 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
T2L
定时器 2 低字节
符号
描述
技术支持: 19864585985
选型顾问: 13922805190
D7H
0000,0000
位地址与符号
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
TM2PS
定时器 2 时钟预分频寄存器
FEA2H
0000,0000
TM3PS
定时器 3 时钟预分频寄存器
FEA3H
0000,0000
TM4PS
定时器 4 时钟预分频寄存器
FEA4H
0000,0000
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 311 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
13.2 定时器 0/1
定时器 0/1 控制寄存器(TCON)
13.2.1
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
TCON
88H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF1:T1溢出中断标志。T1被允许计数以后,从初值开始加1计数。当产生溢出时由硬件将TF1位置“1”,
并向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0”(也可由查询软件清“0”)。
TR1:定时器T1的运行控制位。该位由软件置位和清零。当GATE(TMOD.7)=0,TR1=1时就允许T1开
始计数,TR1=0时禁止T1计数。当GATE(TMOD.7)=1,TR1=1且INT1输入高电平时,才允许T1
计数。
TF0:T0溢出中断标志。T0被允许计数以后,从初值开始加1计数,当产生溢出时,由硬件置“1”TF0,
向CPU请求中断,一直保持CPU响应该中断时,才由硬件清0(也可由查询软件清0)。
TR0:定时器T0的运行控制位。该位由软件置位和清零。当GATE(TMOD.3)=0,TR0=1时就允许T0开
始计数,TR0=0时禁止T0计数。当GATE(TMOD.3)=1,TR0=1且INT0输入高电平时,才允许T0
计数,TR0=0时禁止T0计数。
IE1:外部中断1请求源(INT1/P3.3)标志。IE1=1,外部中断向CPU请求中断,当CPU响应该中断时由
硬件清“0”IE1。
IT1:外部中断源1触发控制位。IT1=0,上升沿或下降沿均可触发外部中断1。IT1=1,外部中断1程控为
下降沿触发方式。
IE0:外部中断0请求源(INT0/P3.2)标志。IE0=1外部中断0向CPU请求中断,当CPU响应外部中断时,
由硬件清“0”IE0(边沿触发方式)。
IT0:外部中断源0触发控制位。IT0=0,上升沿或下降沿均可触发外部中断0。IT0=1,外部中断0程控为
下降沿触发方式。
定时器 0/1 模式寄存器(TMOD)
13.2.2
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
TMOD
89H
T1_GATE
T1_C/T
T1_M1
T1_M0
T0_GATE
T0_C/T
T0_M1
T0_M0
T1_GATE:控制定时器1,置1时只有在INT1脚为高及TR1控制位置1时才可打开定时器/计数器1。
T0_GATE:控制定时器0,置1时只有在INT0脚为高及TR0控制位置1时才可打开定时器/计数器0。
T1_C/T:控制定时器1用作定时器或计数器,清0则用作定时器(对内部系统时钟进行计数),置1用作
计数器(对引脚T1/P3.5外部脉冲进行计数)。
T0_C/T:控制定时器0用作定时器或计数器,清0则用作定时器(对内部系统时钟进行计数),置1用作
计数器(对引脚T0/P3.4外部脉冲进行计数)。
T1_M1/T1_M0:定时器定时器/计数器1模式选择
T1_M1
T1_M0
0
0
定时器/计数器1工作模式
16位自动重载模式
当[TH1,TL1]中的16位计数值溢出时,系统会自动将内部16位
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 312 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
重载寄存器中的重载值装入[TH1,TL1]中。
16位不自动重载模式
0
1
当[TH1,TL1]中的16位计数值溢出时,定时器1将从0开始计数
8位自动重载模式
1
0
当TL1中的8位计数值溢出时,系统会自动将TH1中的重载值
装入TL1中。
1
1
T1停止工作
T0_M1/T0_M0:定时器定时器/计数器0模式选择
T0_M1
定时器/计数器0工作模式
T0_M0
16位自动重载模式
0
0
当[TH0,TL0]中的16位计数值溢出时,系统会自动将内部16位
重载寄存器中的重载值装入[TH0,TL0]中。
16位不自动重载模式
0
1
当[TH0,TL0]中的16位计数值溢出时,定时器0将从0开始计数
8位自动重载模式
1
0
当TL0中的8位计数值溢出时,系统会自动将TH0中的重载值
装入TL0中。
不可屏蔽中断的16位自动重载模式
与模式0相同,不可屏蔽中断,中断优先级最高,高于其他所
1
1
有中断的优先级,并且不可关闭,可用作操作系统的系统节拍
定时器,或者系统监控定时器。
13.2.3
定时器 0 模式 0(16 位自动重装载模式)
此模式下定时器/计数器 0 作为可自动重装载的 16 位计数器,如下图所示:
AUXR.7/T0x12=0
÷12
SYSclk
TF0
C/T=0
Interrupt
Toggle
÷1
TH0
(8bits)
AUXR.7/T0x12=1
C/T=1
T0 Pin
TL0
(8bits)
control
T0CLKO
TR0
GATE
INT0
T0CLKO
P3.5
RL_TH0
(8bits)
RL_TL0
(8bits)
定时器/计数器 0 的模式 0:16 位自动重装载模式
当 GATE=0(TMOD.3)时,如 TR0=1,则定时器计数。GATE=1 时,允许由外部输入 INT0 控制定时器 0,
这样可实现脉宽测量。TR0 为 TCON 寄存器内的控制位,TCON 寄存器各位的具体功能描述见上节 TCON 寄
存器的介绍。
当 C/T=0 时,多路开关连接到系统时钟的分频输出,T0 对内部系统时钟计数,T0 工作在定时方式。当
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 313 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C/T=1 时,多路开关连接到外部脉冲输入 P3.4/T0,即 T0 工作在计数方式。
STC 单片机的定时器 0 有两种计数速率:一种是 12T 模式,每 12 个时钟加 1,与传统 8051 单片机相同;
另外一种是 1T 模式,每个时钟加 1,速度是传统 8051 单片机的 12 倍。T0 的速率由特殊功能寄存器 AUXR
中的 T0x12 决定,如果 T0x12=0,T0 则工作在 12T 模式;如果 T0x12=1,T0 则工作在 1T 模式
定时器 0 有两个隐藏的寄存器 RL_TH0 和 RL_TL0。RL_TH0 与 TH0 共有同一个地址,RL_TL0 与 TL0
共有同一个地址。当 TR0=0 即定时器/计数器 0 被禁止工作时,对 TL0 写入的内容会同时写入 RL_TL0,对
TH0 写入的内容也会同时写入 RL_TH0。当 TR0=1 即定时器/计数器 0 被允许工作时,对 TL0 写入内容,实
际上不是写入当前寄存器 TL0 中,而是写入隐藏的寄存器 RL_TL0 中,对 TH0 写入内容,实际上也不是写入
当前寄存器 TH0 中,而是写入隐藏的寄存器 RL_TH0,这样可以巧妙地实现 16 位重装载定时器。当读 TH0
和 TL0 的内容时,所读的内容就是 TH0 和 TL0 的内容,而不是 RL_TH0 和 RL_TL0 的内容。
当定时器 0 工作在模式 0(TMOD[1:0]/[M1,M0]=00B)时,[TH0,TL0]的溢出不仅置位 TF0,而且会自动
将[RL_TH0,RL_TL0]的内容重新装入[TH0,TL0]。
当 T0CLKO/INT_CLKO.0=1 时,P3.5/T1 管脚配置为定时器 0 的时钟输出 T0CLKO。输出时钟频率为 T0
溢出率/2。
如果 C/T=0,定时器/计数器 T0 对内部系统时钟计数,则:
T0 工作在 1T 模式(AUXR.7/T0x12=1)时的输出时钟频率 = (SYSclk)/(65536-[RL_TH0, RL_TL0])/2
T0 工作在 12T 模式(AUXR.7/T0x12=0)时的输出时钟频率 = (SYSclk)/12/(65536-[RL_TH0, RL_TL0])/2
如果 C/T=1,定时器/计数器 T0 是对外部脉冲输入(P3.4/T0)计数,则:
输出时钟频率 = (T0_Pin_CLK) / (65536-[RL_TH0, RL_TL0])/2
13.2.4
定时器 0 模式 1(16 位不可重装载模式)
此模式下定时器/计数器 0 工作在 16 位不可重装载模式,如下图所示
AUXR.7/T0x12=0
÷12
SYSclk
TF0
C/T=0
Interrupt
Toggle
÷1
TH0
(8bits)
AUXR.7/T0x12=1
C/T=1
T0 Pin
TL0
(8bits)
T0CLKO
P3.5
control
T0CLKO
TR0
GATE
INT0
定时器/计数器 0 的模式 1:16 位不可重装载模式
此模式下,定时器/计数器 0 配置为 16 位不可重装载模式,由 TL0 的 8 位和 TH0 的 8 位所构成。TL0 的
8 位溢出向 TH0 进位,TH0 计数溢出置位 TCON 中的溢出标志位 TF0。
当 GATE=0(TMOD.3)时,如 TR0=1,则定时器计数。GATE=1 时,允许由外部输入 INT0 控制定时器 0,
这样可实现脉宽测量。TR0 为 TCON 寄存器内的控制位,TCON 寄存器各位的具体功能描述见上节 TCON 寄
存器的介绍。
当 C/T=0 时,多路开关连接到系统时钟的分频输出,T0 对内部系统时钟计数,T0 工作在定时方式。当
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 314 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C/T=1 时,多路开关连接到外部脉冲输入 P3.4/T0,即 T0 工作在计数方式。
STC 单片机的定时器 0 有两种计数速率:一种是 12T 模式,每 12 个时钟加 1,与传统 8051 单片机相同;
另外一种是 1T 模式,每个时钟加 1,速度是传统 8051 单片机的 12 倍。T0 的速率由特殊功能寄存器 AUXR
中的 T0x12 决定,如果 T0x12=0,T0 则工作在 12T 模式;如果 T0x12=1,T0 则工作在 1T 模式
13.2.5
定时器 0 模式 2(8 位自动重装载模式)
此模式下定时器/计数器 0 作为可自动重装载的 8 位计数器,如下图所示:
AUXR.7/T0x12=0
÷12
SYSclk
TF0
C/T=0
Interrupt
Toggle
÷1
TL0
(8bits)
AUXR.7/T0x12=1
C/T=1
T0 Pin
T0CLKO
P3.5
control
T0CLKO
TR0
TH0
(8bits)
GATE
INT0
定时器/计数器 0 的模式 2:8 位自动重装载模式
TL0 的溢出不仅置位 TF0,而且将 TH0 的内容重新装入 TL0,TH0 内容由软件预置,重装时 TH0 内容不
变。
当 T0CLKO/INT_CLKO.0=1 时,P3.5/T1 管脚配置为定时器 0 的时钟输出 T0CLKO。输出时钟频率为 T0
溢出率/2。
如果 C/T=0,定时器/计数器 T0 对内部系统时钟计数,则:
T0 工作在 1T 模式(AUXR.7/T0x12=1)时的输出时钟频率 = (SYSclk)/(256-TH0)/2
T0 工作在 12T 模式(AUXR.7/T0x12=0)时的输出时钟频率 = (SYSclk)/12/(256-TH0)/2
如果 C/T=1,定时器/计数器 T0 是对外部脉冲输入(P3.4/T0)计数,则:
输出时钟频率 = (T0_Pin_CLK) / (256-TH0)/2
13.2.6
定时器 0 模式 3(不可屏蔽中断 16 位自动重装载,实时操作
系统节拍器)
对定时器/计数器 0,其工作模式模式 3 与工作模式 0 是一样的(下图定时器模式 3 的原理图,与工作模
式 0 是一样的)。唯一不同的是:当定时器/计数器 0 工作在模式 3 时,只需允许 ET0/IE.1(定时器/计数器 0 中
断允许位),不需要允许 EA/IE.7(总中断使能位)就能打开定时器/计数器 0 的中断,此模式下的定时器/计数器
0 中断与总中断使能位 EA 无关,一旦工作在模式 3 下的定时器/计数器 0 中断被打开(ET0=1),那么该中断是
不可屏蔽的,该中断的优先级是最高的,即该中断不能被任何中断所打断,而且该中断打开后既不受 EA/IE.7
控制也不再受 ET0 控制,当 EA=0 或 ET0=0 时都不能屏蔽此中断。故将此模式称为不可屏蔽中断的 16 位自
动重装载模式。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 315 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
AUXR.7/T0x12=0
÷12
SYSclk
TF0
C/T=0
Interrupt
Toggle
÷1
TH0
(8bits)
AUXR.7/T0x12=1
C/T=1
T0 Pin
TL0
(8bits)
T0CLKO
P3.5
control
T0CLKO
TR0
RL_TH0
(8bits)
GATE
INT0
RL_TL0
(8bits)
定时器/计数器 0 的模式 3:不可屏蔽中断的 16 位自动重装载模式
注意:当定时器/计数器 0 工作在模式 3(不可屏蔽中断的 16 位自动重装载模式)时,不需要允许 EA/IE.7(总中断使能位),
只需允许 ET0/IE.1(定时器/计数器 0 中断允许位)就能打开定时器/计数器 0 的中断,此模式下的定时器/计数器 0 中
断与总中断使能位 EA 无关。一旦此模式下的定时器/计数器 0 中断被打开后,该定时器/计数器 0 中断优先级就是
最高的,它不能被其它任何中断所打断(不管是比定时器/计数器 0 中断优先级低的中断还是比其优先级高的中断,
都不能打断此时的定时器/计数器 0 中断),而且该中断打开后既不受 EA/IE.7 控制也不再受 ET0 控制了,清零 EA
或 ET0 都不能关闭此中断。
13.2.7
定时器 1 模式 0(16 位自动重装载模式)
此模式下定时器/计数器 1 作为可自动重装载的 16 位计数器,如下图所示:
AUXR.6/T1x12=0
÷12
SYSclk
TF1
C/T=0
Interrupt
Toggle
÷1
TH1
(8bits)
AUXR.6/T1x12=1
C/T=1
T1 Pin
TL1
(8bits)
T1CLKO
P3.4
control
T1CLKO
TR1
GATE
INT1
RL_TH1
(8bits)
RL_TL1
(8bits)
定时器/计数器 1 的模式 0:16 位自动重装载模式
当 GATE=0(TMOD.7)时,如 TR1=1,则定时器计数。GATE=1 时,允许由外部输入 INT1 控制定时器 1,
这样可实现脉宽测量。TR1 为 TCON 寄存器内的控制位,TCON 寄存器各位的具体功能描述见上节 TCON 寄
存器的介绍。
当 C/T=0 时,多路开关连接到系统时钟的分频输出,T1 对内部系统时钟计数,T1 工作在定时方式。当
C/T=1 时,多路开关连接到外部脉冲输入 P3.5/T1,即 T1 工作在计数方式。
STC 单片机的定时器 1 有两种计数速率:一种是 12T 模式,每 12 个时钟加 1,与传统 8051 单片机相同;
另外一种是 1T 模式,每个时钟加 1,速度是传统 8051 单片机的 12 倍。T1 的速率由特殊功能寄存器 AUXR
中的 T1x12 决定,如果 T1x12=0,T1 则工作在 12T 模式;如果 T1x12=1,T1 则工作在 1T 模式
定时器 1 有两个隐藏的寄存器 RL_TH1 和 RL_TL1。RL_TH1 与 TH1 共有同一个地址,RL_TL1 与 TL1
共有同一个地址。当 TR1=0 即定时器/计数器 1 被禁止工作时,对 TL1 写入的内容会同时写入 RL_TL1,对
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 316 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
TH1 写入的内容也会同时写入 RL_TH1。当 TR1=1 即定时器/计数器 1 被允许工作时,对 TL1 写入内容,实
际上不是写入当前寄存器 TL1 中,而是写入隐藏的寄存器 RL_TL1 中,对 TH1 写入内容,实际上也不是写入
当前寄存器 TH1 中,而是写入隐藏的寄存器 RL_TH1,这样可以巧妙地实现 16 位重装载定时器。当读 TH1
和 TL1 的内容时,所读的内容就是 TH1 和 TL1 的内容,而不是 RL_TH1 和 RL_TL1 的内容。
当定时器 1 工作在模式 1(TMOD[5:4]/[M1,M0]=00B)时,[TH1,TL1]的溢出不仅置位 TF1,而且会自动
将[RL_TH1,RL_TL1]的内容重新装入[TH1,TL1]。
当 T1CLKO/INT_CLKO.1=1 时,P3.4/T0 管脚配置为定时器 1 的时钟输出 T1CLKO。输出时钟频率为 T1
溢出率/2。
如果 C/T=0,定时器/计数器 T1 对内部系统时钟计数,则:
T1 工作在 1T 模式(AUXR.6/T1x12=1)时的输出时钟频率 = (SYSclk)/(65536-[RL_TH1, RL_TL1])/2
T1 工作在 12T 模式(AUXR.6/T1x12=0)时的输出时钟频率 = (SYSclk)/12/(65536-[RL_TH1, RL_TL1])/2
如果 C/T=1,定时器/计数器 T1 是对外部脉冲输入(P3.5/T1)计数,则:
输出时钟频率 = (T1_Pin_CLK) / (65536-[RL_TH1, RL_TL1])/2
13.2.8
定时器 1 模式 1(16 位不可重装载模式)
此模式下定时器/计数器 1 工作在 16 位不可重装载模式,如下图所示
AUXR.6/T1x12=0
÷12
SYSclk
TF1
C/T=0
Interrupt
Toggle
÷1
TH1
(8bits)
AUXR.6/T1x12=1
C/T=1
T1 Pin
TL1
(8bits)
T1CLKO
P3.4
control
T1CLKO
TR1
GATE
INT1
定时器/计数器 1 的模式 1:16 位不可重装载模式
此模式下,定时器/计数器 1 配置为 16 位不可重装载模式,由 TL1 的 8 位和 TH1 的 8 位所构成。TL1 的
8 位溢出向 TH1 进位,TH1 计数溢出置位 TCON 中的溢出标志位 TF1。
当 GATE=0(TMOD.7)时,如 TR1=1,则定时器计数。GATE=1 时,允许由外部输入 INT1 控制定时器 1,
这样可实现脉宽测量。TR1 为 TCON 寄存器内的控制位,TCON 寄存器各位的具体功能描述见上节 TCON 寄
存器的介绍。
当 C/T=0 时,多路开关连接到系统时钟的分频输出,T1 对内部系统时钟计数,T1 工作在定时方式。当
C/T=1 时,多路开关连接到外部脉冲输入 P3.5/T1,即 T1 工作在计数方式。
STC 单片机的定时器 1 有两种计数速率:一种是 12T 模式,每 12 个时钟加 1,与传统 8051 单片机相同;
另外一种是 1T 模式,每个时钟加 1,速度是传统 8051 单片机的 12 倍。T1 的速率由特殊功能寄存器 AUXR
中的 T1x12 决定,如果 T1x12=0,T1 则工作在 12T 模式;如果 T1x12=1,T1 则工作在 1T 模式
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 317 -
STC8A8K64D4 系列技术手册
13.2.9
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
定时器 1 模式 2(8 位自动重装载模式)
此模式下定时器/计数器 1 作为可自动重装载的 8 位计数器,如下图所示:
AUXR.6/T1x12=0
÷12
SYSclk
TF1
C/T=0
Interrupt
Toggle
÷1
TL1
(8bits)
AUXR.6/T1x12=1
C/T=1
T1 Pin
T1CLKO
P3.4
control
T1CLKO
TR1
TH1
(8bits)
GATE
INT1
定时器/计数器 1 的模式 2:8 位自动重装载模式
TL1 的溢出不仅置位 TF1,而且将 TH1 的内容重新装入 TL1,TH1 内容由软件预置,重装时 TH1 内容不
变。
当 T1CLKO/INT_CLKO.1=1 时,P3.4/T0 管脚配置为定时器 1 的时钟输出 T1CLKO。输出时钟频率为 T1
溢出率/2。
如果 C/T=0,定时器/计数器 T1 对内部系统时钟计数,则:
T1 工作在 1T 模式(AUXR.6/T1x12=1)时的输出时钟频率 = (SYSclk)/(256-TH1)/2
T1 工作在 12T 模式(AUXR.6/T1x12=0)时的输出时钟频率 = (SYSclk)/12/(256-TH1)/2
如果 C/T=1,定时器/计数器 T1 是对外部脉冲输入(P3.5/T1)计数,则:
输出时钟频率 = (T1_Pin_CLK) / (256-TH1)/2
13.2.10 定时器 0 计数寄存器(TL0,TH0)
符号
地址
TL0
8AH
TH0
8CH
B7
B6
B5
B4
B3
B2
B1
B0
当定时器/计数器0工作在16位模式(模式0、模式1、模式3)时,TL0和TH0组合成为一个16位寄存器,
TL0为低字节,TH0为高字节。若为8位模式(模式2)时,TL0和TH0为两个独立的8位寄存器。
13.2.11 定时器 1 计数寄存器(TL1,TH1)
符号
地址
TL1
8BH
TH1
8DH
B7
B6
B5
B4
B3
B2
B1
B0
当定时器/计数器1工作在16位模式(模式0、模式1)时,TL1和TH1组合成为一个16位寄存器,TL1为低
字节,TH1为高字节。若为8位模式(模式2)时,TL1和TH1为两个独立的8位寄存器。
13.2.12 辅助寄存器 1(AUXR)
符号
地址
深圳国芯人工智能有限公司
B7
B6
B5
国内分销商电话: 0513-5501 2928/2929/2966
B4
B3
B2
B1
传真: 0513-5501 2926/2956/2947
B0
- 318 -
STC8A8K64D4 系列技术手册
AUXR
8EH
官方网站: www.STCMCUDATA.com
T0x12
T1x12
UART_M0x6
技术支持: 19864585985
选型顾问: 13922805190
T2R
EXTRAM
S1ST2
T2_C/T
T2x12
T0x12:定时器0速度控制位
0:12T 模式,即 CPU 时钟 12 分频(FOSC/12)
1:1T 模式,即 CPU 时钟不分频分频(FOSC/1)
T1x12:定时器1速度控制位
0:12T 模式,即 CPU 时钟 12 分频(FOSC/12)
1:1T 模式,即 CPU 时钟不分频分频(FOSC/1)
13.2.13 中断与时钟输出控制寄存器(INTCLKO)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
INTCLKO
8FH
-
EX4
EX3
EX2
-
T2CLKO
T1CLKO
T0CLKO
T0CLKO:定时器0时钟输出控制
0:关闭时钟输出
1:使能 P3.5 口的是定时器 0 时钟输出功能
当定时器 0 计数发生溢出时,P3.5 口的电平自动发生翻转。
T1CLKO:定时器1时钟输出控制
0:关闭时钟输出
1:使能 P3.4 口的是定时器 1 时钟输出功能
当定时器 1 计数发生溢出时,P3.4 口的电平自动发生翻转。
13.2.14 定时器 0 定时计算公式
定时器模式
定时器速度
周期计算公式
1T
定时器周期 =
12T
定时器周期 =
1T
定时器周期 =
12T
定时器周期 =
1T
定时器周期 =
12T
定时器周期 =
SYSclk
模式0/3
(16位自动重载)
65536 – [TH0, TL0]
SYSclk
65536 – [TH0, TL0]
SYSclk
模式1
(16位不自动重载)
65536 – [TH0, TL0]
SYSclk
256 – TH0
SYSclk
模式2
(8位自动重载)
深圳国芯人工智能有限公司
65536 – [TH0, TL0]
256 – TH0
SYSclk
国内分销商电话: 0513-5501 2928/2929/2966
(自动重载)
×12 (自动重载)
(需软件装载)
×12 (需软件装载)
(自动重载)
×12 (自动重载)
传真: 0513-5501 2926/2956/2947
- 319 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
13.2.15 定时器 1 定时计算公式
定时器模式
定时器速度
周期计算公式
1T
定时器周期 =
12T
定时器周期 =
1T
定时器周期 =
12T
定时器周期 =
1T
定时器周期 =
12T
定时器周期 =
SYSclk
模式0
(16位自动重载)
65536 – [TH1, TL1]
SYSclk
65536 – [TH1, TL1]
SYSclk
模式1
(16位不自动重载)
65536 – [TH1, TL1]
SYSclk
256 – TH1
SYSclk
模式2
(8位自动重载)
深圳国芯人工智能有限公司
65536 – [TH1, TL1]
256 – TH1
SYSclk
国内分销商电话: 0513-5501 2928/2929/2966
(自动重载)
×12 (自动重载)
(需软件装载)
×12 (需软件装载)
(自动重载)
×12 (自动重载)
传真: 0513-5501 2926/2956/2947
- 320 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
13.3 定时器 2(24 位定时器,8 位预分频+16 位定时)
13.3.1
辅助寄存器 1(AUXR)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
AUXR
8EH
T0x12
T1x12
UART_M0x6
T2R
T2_C/T
T2x12
EXTRAM
S1ST2
T2R:定时器2的运行控制位
0:定时器 2 停止计数
1:定时器 2 开始计数
T2_C/T:控制定时器0用作定时器或计数器,清0则用作定时器(对内部系统时钟进行计数),置1用作
计数器(对引脚T2/P1.2外部脉冲进行计数)。
T2x12:定时器2速度控制位
0:12T 模式,即 CPU 时钟 12 分频(FOSC/12)
1:1T 模式,即 CPU 时钟不分频分频(FOSC/1)
13.3.2
中断与时钟输出控制寄存器(INTCLKO)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
INTCLKO
8FH
-
EX4
EX3
EX2
-
T2CLKO
T1CLKO
T0CLKO
T2CLKO:定时器2时钟输出控制
0:关闭时钟输出
1:使能 P1.3 口的是定时器 2 时钟输出功能
当定时器 2 计数发生溢出时,P1.3 口的电平自动发生翻转。
13.3.3
定时器 2 计数寄存器(T2L,T2H)
符号
地址
T2L
D7H
T2H
D6H
B7
B6
B5
B4
B3
B2
B1
B0
定时器/计数器2的工作模式固定为16位重载模式,T2L和T2H组合成为一个16位寄存器,T2L为低字节,
T2H为高字节。当[T2H,T2L]中的16位计数值溢出时,系统会自动将内部16位重载寄存器中的重载
值装入[T2H,T2L]中。
13.3.4
定时器 2 的 8 位预分频寄存器(TM2PS)
符号
地址
TM2PS
FEA2H
B7
B6
B5
B4
B3
B2
B1
B0
定时器2的时钟 = 系统时钟SYSclk ÷ ( TM2PS + 1 )
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 321 -
STC8A8K64D4 系列技术手册
13.3.5
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
定时器 2 工作模式
定时器/计数器 2 的原理框图如下:
AUXR.2/T2x12=0
÷12
SYSclk
TM2PS
T2IF
T2_C/T=0
÷1
T2H
(8bits)
AUXR.2/T2x12=1
T2_C/T=1
T2 Pin
Interrupt
T2L
(8bits)
T2CLKO
Toggle
control
T2CLKO
T2R
RL_T2H
(8bits)
RL_T2L
(8bits)
定时器/计数器 2 的工作模式:16 位自动重装载模式
T2R/AUXR.4 为 AUXR 寄存器内的控制位,AUXR 寄存器各位的具体功能描述见上节 AUXR 寄存器的介
绍。
当 T2_C/T=0 时,多路开关连接到系统时钟输出,T2 对内部系统时钟计数,
T2 工作在定时方式。
当 T2_C/T=1
时,多路开关连接到外部脉冲输 T2,即 T2 工作在计数方式。
STC 单片机的定时器 2 有两种计数速率:一种是 12T 模式,每 12 个时钟加 1,与传统 8051 单片机相同;
另外一种是 1T 模式,每个时钟加 1,速度是传统 8051 单片机的 12 倍。T2 的速率由特殊功能寄存器 AUXR
中的 T2x12 决定,如果 T2x12=0,T2 则工作在 12T 模式;如果 T2x12=1,T2 则工作在 1T 模式
定时器 2 有两个隐藏的寄存器 RL_T2H 和 RL_T2L。RL_T2H 与 T2H 共有同一个地址,RL_T2L 与 T2L
共有同一个地址。当 T2R=0 即定时器/计数器 2 被禁止工作时,对 T2L 写入的内容会同时写入 RL_T2L,对
T2H 写入的内容也会同时写入 RL_T2H。当 T2R=1 即定时器/计数器 2 被允许工作时,对 T2L 写入内容,实
际上不是写入当前寄存器 T2L 中,而是写入隐藏的寄存器 RL_T2L 中,对 T2H 写入内容,实际上也不是写入
当前寄存器 T2H 中,而是写入隐藏的寄存器 RL_T2H,这样可以巧妙地实现 16 位重装载定时器。当读 T2H
和 T2L 的内容时,所读的内容就是 T2H 和 T2L 的内容,而不是 RL_T2H 和 RL_T2L 的内容。
[T2H,T2L]的溢出不仅置位中断请求标志位(T2IF),使 CPU 转去执行定时器 2 的中断程序,而且会自动
将[RL_T2H,RL_T2L]的内容重新装入[T2H,T2L]。
13.3.6
定时器 2 计算公式
定时器速度
周期计算公式
1T
定时器周期 =
12T
定时器周期 =
65536 – [T2H, T2L]
SYSclk/TM2PS
深圳国芯人工智能有限公司
65536 – [T2H, T2L]
SYSclk/TM2PS
(自动重载)
×12 (自动重载)
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 322 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
13.4 定时器 3/4(24 位定时器,8 位预分频+16 位定时)
13.4.1
定时器 4/3 控制寄存器(T4T3M)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
T4T3M
D1H
T4R
T4_C/T
T4x12
T4CLKO
T3R
T3_C/T
T3x12
T3CLKO
T4R:定时器4的运行控制位
0:定时器 4 停止计数
1:定时器 4 开始计数
T4_C/T:控制定时器4用作定时器或计数器,清0则用作定时器(对内部系统时钟进行计数),置1用作
计数器(对引脚T4/P0.6外部脉冲进行计数)。
T4x12:定时器4速度控制位
0:12T 模式,即 CPU 时钟 12 分频(FOSC/12)
1:1T 模式,即 CPU 时钟不分频分频(FOSC/1)
T4CLKO:定时器4时钟输出控制
0:关闭时钟输出
1:使能 P0.7 口的是定时器 4 时钟输出功能
当定时器 4 计数发生溢出时,P0.7 口的电平自动发生翻转。
T3R:定时器3的运行控制位
0:定时器 3 停止计数
1:定时器 3 开始计数
T3_C/T:控制定时器3用作定时器或计数器,清0则用作定时器(对内部系统时钟进行计数),置1用作
计数器(对引脚T3/P0.4外部脉冲进行计数)。
T3x12:定时器3速度控制位
0:12T 模式,即 CPU 时钟 12 分频(FOSC/12)
1:1T 模式,即 CPU 时钟不分频分频(FOSC/1)
T3CLKO:定时器3时钟输出控制
0:关闭时钟输出
1:使能 P0.5 口的是定时器 3 时钟输出功能
当定时器 3 计数发生溢出时,P0.5 口的电平自动发生翻转。
13.4.2
定时器 3 计数寄存器(T3L,T3H)
符号
地址
T3L
D5H
T3H
D4H
B7
B6
B5
B4
B3
B2
B1
B0
定时器/计数器3的工作模式固定为16位重载模式,T3L和T3H组合成为一个16位寄存器,T3L为低字节,
T3H为高字节。当[T3H,T3L]中的16位计数值溢出时,系统会自动将内部16位重载寄存器中的重载
值装入[T3H,T3L]中。
13.4.3
定时器 4 计数寄存器(T4L,T4H)
符号
地址
T4L
D3H
深圳国芯人工智能有限公司
B7
B6
B5
B4
国内分销商电话: 0513-5501 2928/2929/2966
B3
B2
B1
传真: 0513-5501 2926/2956/2947
B0
- 323 -
STC8A8K64D4 系列技术手册
T4H
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
D2H
定时器/计数器 4 的工作模式固定为 16 位重载模式,T4L 和 T4H 组合成为一个 16 位寄存器,T4L 为低
字节,T4H 为高字节。当[T4H,T4L]中的 16 位计数值溢出时,系统会自动将内部 16 位重载寄存器中的
重载值装入[T4H,T4L]中。
13.4.4
定时器 3 的 8 位预分频寄存器(TM3PS)
符号
地址
TM3PS
FEA3H
B7
B6
B5
B4
B3
B2
B1
B0
B2
B1
B0
定时器3的时钟 = 系统时钟SYSclk ÷ ( TM3PS + 1 )
13.4.5
定时器 4 的 8 位预分频寄存器(TM4PS)
符号
地址
TM4PS
FEA4H
B7
B6
B5
B4
B3
定时器4的时钟 = 系统时钟SYSclk ÷ ( TM4PS + 1 )
13.4.6
定时器 3 工作模式
定时器/计数器 3 的原理框图如下:
÷12
SYSclk
T4T3M.1/T3x12=0
TM3PS
T3IF
T3_C/T=0
÷1
T3H
(8bits)
T4T3M.1/T3x12=1
T3_C/T=1
T3 Pin
Interrupt
T3L
(8bits)
T3CLKO
Toggle
control
T3CLKO
T3R
RL_T3H
(8bits)
RL_T3L
(8bits)
定时器/计数器 3 的工作模式:16 位自动重装载模式
T3R/T4T3M.3 为 T4T3M 寄存器内的控制位,T4T3M 寄存器各位的具体功能描述见上节 T4T3M 寄存器的
介绍。
当 T3_C/T=0 时,多路开关连接到系统时钟输出,T3 对内部系统时钟计数,
T3 工作在定时方式。
当 T3_C/T=1
时,多路开关连接到外部脉冲输 T3,即 T3 工作在计数方式。
STC 单片机的定时器 3 有两种计数速率:一种是 12T 模式,每 12 个时钟加 1,与传统 8051 单片机相同;
另外一种是 1T 模式,每个时钟加 1,速度是传统 8051 单片机的 12 倍。T3 的速率由特殊功能寄存器 T4T3M
中的 T3x12 决定,如果 T3x12=0,T3 则工作在 12T 模式;如果 T3x12=1,T3 则工作在 1T 模式
定时器 3 有两个隐藏的寄存器 RL_T3H 和 RL_T3L。RL_T3H 与 T3H 共有同一个地址,RL_T3L 与 T3L
共有同一个地址。当 T3R=0 即定时器/计数器 3 被禁止工作时,对 T3L 写入的内容会同时写入 RL_T3L,对
T3H 写入的内容也会同时写入 RL_T3H。当 T3R=1 即定时器/计数器 3 被允许工作时,对 T3L 写入内容,实
际上不是写入当前寄存器 T3L 中,而是写入隐藏的寄存器 RL_T3L 中,对 T3H 写入内容,实际上也不是写入
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 324 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
当前寄存器 T3H 中,而是写入隐藏的寄存器 RL_T3H,这样可以巧妙地实现 16 位重装载定时器。当读 T3H
和 T3L 的内容时,所读的内容就是 T3H 和 T3L 的内容,而不是 RL_T3H 和 RL_T3L 的内容。
[T3H,T3L]的溢出不仅置位中断请求标志位(T3IF),使 CPU 转去执行定时器 3 的中断程序,而且会自动
将[RL_T3H,RL_T3L]的内容重新装入[T3H,T3L]。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 325 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
定时器 4 工作模式
13.4.7
定时器/计数器 4 的原理框图如下:
÷12
SYSclk
T4T3M.5/T4x12=0
TM4PS
T4IF
T4_C/T=0
÷1
T4H
(8bits)
T4T3M.5/T4x12=1
T4_C/T=1
T4 Pin
Interrupt
T4L
(8bits)
T4CLKO
Toggle
control
T4CLKO
T4R
RL_T4H
(8bits)
RL_T4L
(8bits)
定时器/计数器 4 的工作模式:16 位自动重装载模式
T4R/T4T3M.7 为 T4T3M 寄存器内的控制位,T4T3M 寄存器各位的具体功能描述见上节 T4T3M 寄存器的
介绍。
当 T4_C/T=0 时,多路开关连接到系统时钟输出,T4 对内部系统时钟计数,
T4 工作在定时方式。
当 T4_C/T=1
时,多路开关连接到外部脉冲输 T4,即 T4 工作在计数方式。
STC 单片机的定时器 4 有两种计数速率:一种是 12T 模式,每 12 个时钟加 1,与传统 8051 单片机相同;
另外一种是 1T 模式,每个时钟加 1,速度是传统 8051 单片机的 12 倍。T4 的速率由特殊功能寄存器 T4T3M
中的 T4x12 决定,如果 T4x12=0,T4 则工作在 12T 模式;如果 T4x12=1,T4 则工作在 1T 模式
定时器 4 有两个隐藏的寄存器 RL_T4H 和 RL_T4L。RL_T4H 与 T4H 共有同一个地址,RL_T4L 与 T4L
共有同一个地址。当 T4R=0 即定时器/计数器 4 被禁止工作时,对 T4L 写入的内容会同时写入 RL_T4L,对
T4H 写入的内容也会同时写入 RL_T4H。当 T4R=1 即定时器/计数器 4 被允许工作时,对 T4L 写入内容,实
际上不是写入当前寄存器 T4L 中,而是写入隐藏的寄存器 RL_T4L 中,对 T4H 写入内容,实际上也不是写入
当前寄存器 T4H 中,而是写入隐藏的寄存器 RL_T4H,这样可以巧妙地实现 16 位重装载定时器。当读 T4H
和 T4L 的内容时,所读的内容就是 T4H 和 T4L 的内容,而不是 RL_T4H 和 RL_T4L 的内容。
[T4H,T4L]的溢出不仅置位中断请求标志位(T4IF),使 CPU 转去执行定时器 4 的中断程序,而且会自动
将[RL_T4H,RL_T4L]的内容重新装入[T4H,T4L]。
13.4.8
定时器 3 计算公式
定时器速度
周期计算公式
1T
定时器周期 =
12T
定时器周期 =
65536 – [T3H, T3L]
SYSclk/TM3PS
深圳国芯人工智能有限公司
65536 – [T3H, T3L]
SYSclk/TM3PS
(自动重载)
×12 (自动重载)
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 326 -
STC8A8K64D4 系列技术手册
13.4.9
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
定时器 4 计算公式
定时器速度
周期计算公式
1T
定时器周期 =
12T
定时器周期 =
65536 – [T4H, T4L]
SYSclk/TM4PS
深圳国芯人工智能有限公司
65536 – [T4H, T4L]
SYSclk/TM4PS
(自动重载)
×12 (自动重载)
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 327 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
13.5 范例程序
定时器 0(模式 0-16 位自动重载),用作定时
13.5.1
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM0_Isr() interrupt 1
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
TMOD = 0x00;
TL0 = 0x66;
TH0 = 0xfc;
TR0 = 1;
ET0 = 1;
EA = 1;
//模式 0
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
while (1);
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 328 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
000BH
TM0ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#00H
TL0,#66H
TH0,#0FCH
TR0
ET0
EA
JMP
$
TM0ISR:
;测试端口
MAIN:
;模式 0
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
13.5.2
定时器 0(模式 1-16 位不自动重载),用作定时
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 329 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM0_Isr() interrupt 1
{
TL0 = 0x66;
TH0 = 0xfc;
P10 = !P10;
}
//重设定时参数
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//模式 1
//65536-11.0592M/12/1000
TMOD = 0x01;
TL0 = 0x66;
TH0 = 0xfc;
TR0 = 1;
ET0 = 1;
EA = 1;
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
DATA
DATA
深圳国芯人工智能有限公司
093H
094H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 330 -
STC8A8K64D4 系列技术手册
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
000BH
TM0ISR
ORG
0100H
MOV
MOV
CPL
RETI
TL0,#66H
TH0,#0FCH
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#01H
TL0,#66H
TH0,#0FCH
TR0
ET0
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM0ISR:
;重设定时参数
;测试端口
MAIN:
;模式 1
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
13.5.3
定时器 0(模式 2-8 位自动重载),用作定时
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 331 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM0_Isr() interrupt 1
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//模式 2
//256-11.0592M/12/76K
TMOD = 0x02;
TL0 = 0xf4;
TH0 = 0xf4;
TR0 = 1;
ET0 = 1;
EA = 1;
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
093H
094H
091H
092H
095H
096H
0B1H
0B2H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 332 -
STC8A8K64D4 系列技术手册
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
000BH
TM0ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#02H
TL0,#0F4H
TH0,#0F4H
TR0
ET0
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM0ISR:
;测试端口
MAIN:
;模式 2
;256-11.0592M/12/76K
;启动定时器
;使能定时器中断
END
定时器 0(模式 3-16 位自动重载不可屏蔽中断),用作定时
13.5.4
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
深圳国芯人工智能有限公司
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 333 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
sfr
sfr
sfr
sfr
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM0_Isr() interrupt 1
{
P10 = !P10;
}
技术支持: 19864585985
选型顾问: 13922805190
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//模式 3
//65536-11.0592M/12/1000
TMOD = 0x03;
TL0 = 0x66;
TH0 = 0xfc;
TR0 = 1;
ET0 = 1;
EA = 1;
//启动定时器
//使能定时器中断
//不受 EA 控制
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
0000H
MAIN
000BH
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 334 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
LJMP
TM0ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#03H
TL0,#66H
TH0,#0FCH
TR0
ET0
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM0ISR:
;测试端口
MAIN:
;
;模式 3
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
;不受 EA 控制
END
定时器 0(外部计数-扩展 T0 为外部下降沿中断)
13.5.5
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 335 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
void TM0_Isr() interrupt 1
{
P10 = !P10;
}
技术支持: 19864585985
选型顾问: 13922805190
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//外部计数模式
TMOD = 0x04;
TL0 = 0xff;
TH0 = 0xff;
TR0 = 1;
ET0 = 1;
EA = 1;
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
000BH
TM0ISR
ORG
0100H
CPL
RETI
P1.0
TM0ISR:
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 336 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#04H
TL0,#0FFH
TH0,#0FFH
TR0
ET0
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;外部计数模式
;启动定时器
;使能定时器中断
END
定时器 0(测量脉宽-INT0 高电平宽度)
13.5.6
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void INT0_Isr() interrupt 0
{
P0 = TL0;
P1 = TH0;
}
//TL0 为测量值低字节
//TH0 为测量值高字节
void main()
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 337 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//1T 模式
//使能 GATE,INT0 为 1 时使能计时
AUXR = 0x80;
TMOD = 0x08;
TL0 = 0x00;
TH0 = 0x00;
while (INT0);
TR0 = 1;
IT0 = 1;
EX0 = 1;
EA = 1;
//等待 INT0 为低
//启动定时器
//使能 INT0 下降沿中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
8EH
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0003H
INT0ISR
ORG
0100H
MOV
MOV
RETI
P0,TL0
P1,TH0
MOV
MOV
SP, #5FH
P0M0, #00H
INT0ISR:
;TL0 为测量值低字节
;TH0 为测量值高字节
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 338 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
JB
SETB
SETB
SETB
SETB
AUXR,#80H
TMOD,#08H
TL0,#00H
TH0,#00H
INT0,$
TR0
IT0
EX0
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;1T 模式
;使能 GATE,INT0 为 1 时使能计时
;等待 INT0 为低
;启动定时器
;使能 INT0 下降沿中断
END
定时器 0(模式 0),时钟分频输出
13.5.7
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
INTCLKO
=
0x8f;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 339 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//模式 0
//65536-11.0592M/12/1000
TMOD = 0x00;
TL0 = 0x66;
TH0 = 0xfc;
TR0 = 1;
INTCLKO = 0x01;
//启动定时器
//使能时钟输出
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
INTCLKO
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
8FH
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
TMOD,#00H
TL0,#66H
TH0,#0FCH
TR0
MAIN:
深圳国芯人工智能有限公司
;模式 0
;65536-11.0592M/12/1000
;启动定时器
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 340 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
INTCLKO,#01H
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;使能时钟输出
END
定时器 1(模式 0-16 位自动重载),用作定时
13.5.8
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM1_Isr() interrupt 3
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
TMOD = 0x00;
TL1 = 0x66;
TH1 = 0xfc;
TR1 = 1;
ET1 = 1;
EA = 1;
深圳国芯人工智能有限公司
//模式 0
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 341 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
001BH
TM1ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#00H
TL1,#66H
TH1,#0FCH
TR1
ET1
EA
JMP
$
TM1ISR:
;测试端口
MAIN:
;模式 0
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 342 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
定时器 1(模式 1-16 位不自动重载),用作定时
13.5.9
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM1_Isr() interrupt 3
{
TL1 = 0x66;
TH1 = 0xfc;
P10 = !P10;
}
//重设定时参数
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
TMOD = 0x10;
TL1 = 0x66;
TH1 = 0xfc;
TR1 = 1;
ET1 = 1;
EA = 1;
//模式 1
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 343 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
001BH
TM1ISR
ORG
0100H
MOV
MOV
CPL
RETI
TL1,#66H
TH1,#0FCH
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#10H
TL1,#66H
TH1,#0FCH
TR1
ET1
EA
JMP
$
TM1ISR:
;重设定时参数
;测试端口
MAIN:
;模式 1
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
13.5.10 定时器 1(模式 2-8 位自动重载),用作定时
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 344 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM1_Isr() interrupt 3
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//模式 2
//256-11.0592M/12/76K
TMOD = 0x20;
TL1 = 0xf4;
TH1 = 0xf4;
TR1 = 1;
ET1 = 1;
EA = 1;
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
093H
094H
091H
092H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 345 -
STC8A8K64D4 系列技术手册
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
001BH
TM1ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#20H
TL1,#0F4H
TH1,#0F4H
TR1
ET1
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM1ISR:
;测试端口
MAIN:
;模式 2
;256-11.0592M/12/76K
;启动定时器
;使能定时器中断
END
13.5.11 定时器 1(外部计数-扩展 T1 为外部下降沿中断)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
P0M1
P0M0
深圳国芯人工智能有限公司
=
=
0x93;
0x94;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 346 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM1_Isr() interrupt 3
{
P10 = !P10;
}
技术支持: 19864585985
选型顾问: 13922805190
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//外部计数模式
TMOD = 0x40;
TL1 = 0xff;
TH1 = 0xff;
TR1 = 1;
ET1 = 1;
EA = 1;
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 347 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
ORG
LJMP
ORG
LJMP
0000H
MAIN
001BH
TM1ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
SETB
SETB
TMOD,#40H
TL1,#0FFH
TH1,#0FFH
TR1
ET1
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM1ISR:
;测试端口
MAIN:
;外部计数模式
;启动定时器
;使能定时器中断
END
13.5.12 定时器 1(测量脉宽-INT1 高电平宽度)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
深圳国芯人工智能有限公司
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 348 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
P5M1
P5M0
=
=
0xc9;
0xca;
sfr
AUXR
=
0x8e;
void INT1_Isr() interrupt 2
{
P0 = TL1;
P1 = TH1;
}
技术支持: 19864585985
选型顾问: 13922805190
//TL1 为测量值低字节
//TH1 为测量值高字节
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//1T 模式
//使能 GATE,INT1 为 1 时使能计时
AUXR = 0x40;
TMOD = 0x80;
TL1 = 0x00;
TH1 = 0x00;
while (INT1);
TR1 = 1;
IT1 = 1;
EX1 = 1;
EA = 1;
//等待 INT1 为低
//启动定时器
//使能 INT1 下降沿中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
8EH
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 349 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
ORG
LJMP
0013H
INT1ISR
ORG
0100H
MOV
MOV
RETI
P0,TL1
P1,TH1
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
JB
SETB
SETB
SETB
SETB
AUXR,#40H
TMOD,#80H
TL1,#00H
TH1,#00H
INT1,$
TR1
IT1
EX1
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
INT1ISR:
;TL1 为测量值低字节
;TH1 为测量值高字节
MAIN:
;1T 模式
;使能 GATE,INT1 为 1 时使能计时
;等待 INT1 为低
;启动定时器
;使能 INT1 下降沿中断
END
13.5.13 定时器 1(模式 0),时钟分频输出
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
INTCLKO
=
0x8f;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 350 -
STC8A8K64D4 系列技术手册
sfr
sfr
sfr
sfr
sfr
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
=
=
=
=
=
技术支持: 19864585985
选型顾问: 13922805190
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//模式 0
//65536-11.0592M/12/1000
TMOD = 0x00;
TL1 = 0x66;
TH1 = 0xfc;
TR1 = 1;
INTCLKO = 0x02;
//启动定时器
//使能时钟输出
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
INTCLKO
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
8FH
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 351 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
SETB
MOV
TMOD,#00H
TL1,#66H
TH1,#0FCH
TR1
INTCLKO,#02H
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;模式 0
;65536-11.0592M/12/1000
;启动定时器
;使能时钟输出
END
13.5.14 定时器 1(模式 0)做串口 1 波特率发生器
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 352 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
}
if (RI)
{
RI = 0;
buffer[wptr++] = SBUF;
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()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
UartInit();
ES = 1;
EA = 1;
UartSENDStr(“Uart Test !\r\n”);
while (1)
{
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 353 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
if (rptr != wptr)
{
UartSEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
DATA
8EH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
;16 bytes
UART_ISR:
CHKRI:
JNB
CLR
MOV
ANL
ADD
MOV
MOV
INC
UARTISR_EXIT:
POP
POP
深圳国芯人工智能有限公司
RI,UARTISR_EXIT
RI
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,SBUF
WPTR
PSW
ACC
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 354 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
RETI
UART_INIT:
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
;65536-11059200/115200/4=0FFE8H
UART_SEND:
UART_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SENDEND:
RET
A
A,@A+DPTR
SENDEND
UART_SEND
DPTR
UART_SENDSTR
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
LCALL
SETB
SETB
UART_INIT
ES
EA
MOV
LCALL
DPTR,#STRING
UART_SENDSTR
MOV
XRL
ANL
JZ
MOV
ANL
A,RPTR
A,WPTR
A,#0FH
LOOP
A,RPTR
A,#0FH
LOOP:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 355 -
STC8A8K64D4 系列技术手册
STRING:
官方网站: www.STCMCUDATA.com
ADD
MOV
MOV
LCALL
INC
JMP
A,#BUFFER
R0,A
A,@R0
UART_SEND
RPTR
LOOP
DB
'Uart Test !',0DH,0AH,00H
技术支持: 19864585985
选型顾问: 13922805190
END
13.5.15 定时器 1(模式 2)做串口 1 波特率发生器
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(256 - FOSC / 115200 / 32)
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
buffer[wptr++] = SBUF;
wptr &= 0x0f;
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 356 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
}
void UartInit()
{
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()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
UartInit();
ES = 1;
EA = 1;
UartSENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
UartSEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 357 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
汇编代码
;测试工作频率为 11.0592MHz
AUXR
DATA
8EH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
;16 bytes
UART_ISR:
CHKRI:
JNB
CLR
MOV
ANL
ADD
MOV
MOV
INC
UARTISR_EXIT:
POP
POP
RETI
RI,UARTISR_EXIT
RI
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,SBUF
WPTR
PSW
ACC
UART_INIT:
MOV
MOV
MOV
MOV
深圳国芯人工智能有限公司
SCON,#50H
TMOD,#20H
TL1,#0FDH
TH1,#0FDH
;256-11059200/115200/32=0FDH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 358 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
SETB
MOV
CLR
MOV
MOV
RET
TR1
AUXR,#40H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
MOV
RET
BUSY,$
BUSY
SBUF,A
技术支持: 19864585985
选型顾问: 13922805190
UART_SEND:
UART_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SENDEND:
RET
A
A,@A+DPTR
SENDEND
UART_SEND
DPTR
UART_SENDSTR
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
LOOP:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 359 -
STC8A8K64D4 系列技术手册
STRING:
官方网站: www.STCMCUDATA.com
DB
技术支持: 19864585985
选型顾问: 13922805190
'Uart Test !',0DH,0AH,00H
END
13.5.16 定时器 2(16 位自动重载),用作定时
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
#define
sfr
#define
T2L
T2H
AUXR
IE2
ET2
AUXINTIF
T2IF
=
=
=
=
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM2_Isr() interrupt 12
{
P10 = !P10;
}
=
0xd7;
0xd6;
0x8e;
0xaf;
0x04
0xef;
0x01
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 360 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
T2L = 0x66;
T2H = 0xfc;
AUXR = 0x10;
IE2 = ET2;
EA = 1;
技术支持: 19864585985
选型顾问: 13922805190
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T2L
T2H
AUXR
IE2
ET2
AUXINTIF
T2IF
DATA
DATA
DATA
DATA
EQU
DATA
EQU
0D7H
0D6H
8EH
0AFH
04H
0EFH
01H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0063H
TM2ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
TM2ISR:
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 361 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
SETB
T2L,#66H
T2H,#0FCH
AUXR,#10H
IE2,#ET2
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
13.5.17 定时器 2(外部计数-扩展 T2 为外部下降沿中断)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
#define
sfr
#define
T2L
T2H
AUXR
IE2
ET2
AUXINTIF
T2IF
=
=
=
=
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM2_Isr() interrupt 12
{
P10 = !P10;
}
=
0xd7;
0xd6;
0x8e;
0xaf;
0x04
0xef;
0x01
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 362 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T2L = 0xff;
T2H = 0xff;
AUXR = 0x18;
IE2 = ET2;
EA = 1;
//设置外部计数模式并启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T2L
T2H
AUXR
IE2
ET2
AUXINTIF
T2IF
DATA
DATA
DATA
DATA
EQU
DATA
EQU
0D7H
0D6H
8EH
0AFH
04H
0EFH
01H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0063H
TM2ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
TM2ISR:
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 363 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
SETB
T2L,#0FFH
T2H,#0FFH
AUXR,#18H
IE2,#ET2
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;设置外部计数模式并启动定时器
;使能定时器中断
END
13.5.18 定时器 2,时钟分频输出
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
T2L
T2H
AUXR
INTCLKO
=
=
=
=
0xd7;
0xd6;
0x8e;
0x8f;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 364 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P5M1 = 0x00;
T2L = 0x66;
T2H = 0xfc;
AUXR = 0x10;
INTCLKO = 0x04;
//65536-11.0592M/12/1000
//启动定时器
//使能时钟输出
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T2L
T2H
AUXR
INTCLKO
DATA
DATA
DATA
DATA
0D7H
0D6H
8EH
8FH
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
T2L,#66H
T2H,#0FCH
AUXR,#10H
INTCLKO,#04H
JMP
$
MAIN:
;65536-11.0592M/12/1000
;启动定时器
;使能时钟输出
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 365 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
13.5.19 定时器 2 做串口 1 波特率发生器
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
AUXR
T2H
T2L
=
=
=
0x8e;
0xd6;
0xd7;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
buffer[wptr++] = SBUF;
wptr &= 0x0f;
}
}
void UartInit()
{
SCON = 0x50;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x15;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 366 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
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()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
UartInit();
ES = 1;
EA = 1;
UartSENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
UartSEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
T2H
T2L
DATA
DATA
DATA
8EH
0D6H
0D7H
BUSY
BIT
20H.0
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 367 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
WPTR
RPTR
BUFFER
DATA
DATA
DATA
21H
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
技术支持: 19864585985
选型顾问: 13922805190
;16 bytes
UART_ISR:
CHKRI:
JNB
CLR
MOV
ANL
ADD
MOV
MOV
INC
UARTISR_EXIT:
POP
POP
RETI
RI,UARTISR_EXIT
RI
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,SBUF
WPTR
PSW
ACC
UART_INIT:
MOV
MOV
MOV
MOV
CLR
MOV
MOV
RET
SCON,#50H
T2L,#0E8H
T2H,#0FFH
AUXR,#15H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
BUSY,$
BUSY
;65536-11059200/115200/4=0FFE8H
UART_SEND:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 368 -
STC8A8K64D4 系列技术手册
MOV
RET
UART_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SENDEND:
RET
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
SBUF,A
A
A,@A+DPTR
SENDEND
UART_SEND
DPTR
UART_SENDSTR
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
13.5.20 定时器 2 做串口 2 波特率发生器
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 369 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
sfr
AUXR
T2H
T2L
S2CON
S2BUF
IE2
=
=
=
=
=
=
0x8e;
0xd6;
0xd7;
0x9a;
0x9b;
0xaf;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
void Uart2Isr() interrupt 8
{
if (S2CON & 0x02)
{
S2CON &= ~0x02;
busy = 0;
}
if (S2CON & 0x01)
{
S2CON &= ~0x01;
buffer[wptr++] = S2BUF;
wptr &= 0x0f;
}
}
void Uart2Init()
{
S2CON = 0x10;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x14;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 370 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
void Uart2Send(char dat)
{
while (busy);
busy = 1;
S2BUF = dat;
}
void Uart2SendStr(char *p)
{
while (*p)
{
Uart2SEND(*p++);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart2Init();
IE2 = 0x01;
EA = 1;
Uart2SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart2SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
T2H
T2L
S2CON
S2BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
8EH
0D6H
0D7H
9AH
9BH
0AFH
BUSY
WPTR
BIT
DATA
20H.0
21H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 371 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
RPTR
BUFFER
DATA
DATA
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
技术支持: 19864585985
选型顾问: 13922805190
;16 bytes
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,#10H
T2L,#0E8H
T2H,#0FFH
AUXR,#14H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
BUSY,$
BUSY
;65536-11059200/115200/4=0FFE8H
UART2_SEND:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 372 -
STC8A8K64D4 系列技术手册
MOV
RET
UART2_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SEND2END:
RET
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
S2BUF,A
A
A,@A+DPTR
SEND2END
UART2_SEND
DPTR
UART2_SENDSTR
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
LOOP:
STRING:
END
13.5.21 定时器 2 做串口 3 波特率发生器
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 373 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
sfr
AUXR
T2H
T2L
S3CON
S3BUF
IE2
=
=
=
=
=
=
0x8e;
0xd6;
0xd7;
0xac;
0xad;
0xaf;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
void Uart3Isr() interrupt 17
{
if (S3CON & 0x02)
{
S3CON &= ~0x02;
busy = 0;
}
if (S3CON & 0x01)
{
S3CON &= ~0x01;
buffer[wptr++] = S3BUF;
wptr &= 0x0f;
}
}
void Uart3Init()
{
S3CON = 0x10;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x14;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 374 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
void Uart3Send(char dat)
{
while (busy);
busy = 1;
S3BUF = dat;
}
void Uart3SendStr(char *p)
{
while (*p)
{
Uart3SEND(*p++);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart3Init();
IE2 = 0x08;
EA = 1;
Uart3SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart3SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
T2H
T2L
S3CON
S3BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
8EH
0D6H
0D7H
0ACH
0ADH
0AFH
BUSY
WPTR
BIT
DATA
20H.0
21H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 375 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
RPTR
BUFFER
DATA
DATA
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
技术支持: 19864585985
选型顾问: 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,#10H
T2L,#0E8H
T2H,#0FFH
AUXR,#14H
BUSY
WPTR,#00H
RPTR,#00H
JB
SETB
BUSY,$
BUSY
;65536-11059200/115200/4=0FFE8H
UART3_SEND:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 376 -
STC8A8K64D4 系列技术手册
MOV
RET
UART3_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SEND3END:
RET
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
S3BUF,A
A
A,@A+DPTR
SEND3END
UART3_SEND
DPTR
UART3_SENDSTR
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
13.5.22 定时器 2 做串口 4 波特率发生器
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 377 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
sfr
AUXR
T2H
T2L
S4CON
S4BUF
IE2
=
=
=
=
=
=
0x8e;
0xd6;
0xd7;
0x84;
0x85;
0xaf;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
void Uart4Isr() interrupt 18
{
if (S4CON & 0x02)
{
S4CON &= ~0x02;
busy = 0;
}
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;
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 378 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
void Uart4Send(char dat)
{
while (busy);
busy = 1;
S4BUF = dat;
}
void Uart4SendStr(char *p)
{
while (*p)
{
Uart4SEND(*p++);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart4Init();
IE2 = 0x10;
EA = 1;
Uart4SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart4SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
T2H
T2L
S4CON
S4BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
8EH
0D6H
0D7H
84H
85H
0AFH
BUSY
WPTR
BIT
DATA
20H.0
21H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 379 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
RPTR
BUFFER
DATA
DATA
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
技术支持: 19864585985
选型顾问: 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
BUSY,$
BUSY
;65536-11059200/115200/4=0FFE8H
UART4_SEND:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 380 -
STC8A8K64D4 系列技术手册
MOV
RET
UART4_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SEND4END:
RET
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
S4BUF,A
A
A,@A+DPTR
SEND4END
UART4_SEND
DPTR
UART4_SENDSTR
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
13.5.23 定时器 3(16 位自动重载),用作定时
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 381 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
#define
#define
#define
sfr
#define
#define
#define
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
AUXR
IE2
ET2
ET3
ET4
AUXINTIF
T2IF
T3IF
T4IF
=
=
=
=
=
=
=
=
=
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM3_Isr() interrupt 19
{
P10 = !P10;
}
=
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
0xd7;
0xd6;
0x8e;
0xaf;
0x04
0x20
0x40
0xef;
0x01
0x02
0x04
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T3L = 0x66;
深圳国芯人工智能有限公司
//65536-11.0592M/12/1000
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 382 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
T3H = 0xfc;
T4T3M = 0x08;
IE2 = ET3;
EA = 1;
技术支持: 19864585985
选型顾问: 13922805190
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
AUXR
IE2
ET2
ET3
ET4
AUXINTIF
T2IF
T3IF
T4IF
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
EQU
EQU
EQU
DATA
EQU
EQU
EQU
0D1H
0D3H
0D2H
0D5H
0D4H
0D7H
0D6H
8EH
0AFH
04H
20H
40H
0EFH
01H
02H
04H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
009BH
TM3ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
TM3ISR:
;测试端口
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 383 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
SETB
T3L,#66H
T3H,#0FCH
T4T3M,#08H
IE2,#ET3
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
END
13.5.24 定时器 3(外部计数-扩展 T3 为外部下降沿中断)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
#define
#define
#define
sfr
#define
#define
#define
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
AUXR
IE2
ET2
ET3
ET4
AUXINTIF
T2IF
T3IF
T4IF
=
=
=
=
=
=
=
=
=
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
深圳国芯人工智能有限公司
=
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
0xd7;
0xd6;
0x8e;
0xaf;
0x04
0x20
0x40
0xef;
0x01
0x02
0x04
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 384 -
STC8A8K64D4 系列技术手册
sbit
P10
官方网站: www.STCMCUDATA.com
=
技术支持: 19864585985
选型顾问: 13922805190
P1^0;
void TM3_Isr() interrupt 19
{
P10 = !P10;
}
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T3L = 0x66;
T3H = 0xfc;
T4T3M = 0x0c;
IE2 = ET3;
EA = 1;
//65536-11.0592M/12/1000
//设置外部计数模式并启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
DATA
T4L
DATA
T4H
DATA
T3L
DATA
T3H
DATA
T2L
DATA
T2H
DATA
AUXR
DATA
IE2
DATA
ET2
EQU
ET3
EQU
ET4
EQU
AUXINTIF
DATA
T2IF
EQU
T3IF
EQU
T4IF
EQU
0D1H
0D3H
0D2H
0D5H
0D4H
0D7H
0D6H
8EH
0AFH
04H
20H
40H
0EFH
01H
02H
04H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
091H
092H
093H
094H
095H
096H
0B1H
DATA
DATA
DATA
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 385 -
STC8A8K64D4 系列技术手册
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
009BH
TM3ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
SETB
T3L,#66H
T3H,#0FCH
T4T3M,#0CH
IE2,#ET3
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM3ISR:
;测试端口
MAIN:
;65536-11.0592M/12/1000
;设置外部计数模式并启动定时器
;使能定时器中断
END
13.5.25 定时器 3,时钟分频输出
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
T4T3M
T4L
T4H
T3L
T3H
T2L
深圳国芯人工智能有限公司
=
=
=
=
=
=
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
0xd7;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 386 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
T2H
=
0xd6;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
技术支持: 19864585985
选型顾问: 13922805190
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T3L = 0x66;
T3H = 0xfc;
T4T3M = 0x09;
//65536-11.0592M/12/1000
//使能时钟输出并启动定时器
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D1H
0D3H
0D2H
0D5H
0D4H
0D7H
0D6H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 387 -
STC8A8K64D4 系列技术手册
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
T3L,#66H
T3H,#0FCH
T4T3M,#09H
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
;65536-11.0592M/12/1000
;使能时钟输出并启动定时器
END
13.5.26 定时器 3 做串口 3 波特率发生器
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
S3CON
S3BUF
IE2
=
=
=
=
=
=
=
=
=
=
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
0xd7;
0xd6;
0xac;
0xad;
0xaf;
sfr
sfr
sfr
P0M1
P0M0
P1M1
=
=
=
0x93;
0x94;
0x91;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 388 -
STC8A8K64D4 系列技术手册
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
官方网站: www.STCMCUDATA.com
=
=
=
=
=
=
=
=
=
技术支持: 19864585985
选型顾问: 13922805190
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void Uart3Isr() interrupt 17
{
if (S3CON & 0x02)
{
S3CON &= ~0x02;
busy = 0;
}
if (S3CON & 0x01)
{
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()
{
P0M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 389 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart3Init();
IE2 = 0x08;
EA = 1;
Uart3SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart3SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
S3CON
S3BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D1H
0D3H
0D2H
0D5H
0D4H
0D7H
0D6H
0ACH
0ADH
0AFH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
深圳国芯人工智能有限公司
;16 bytes
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 390 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.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
技术支持: 19864585985
选型顾问: 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,#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
MAIN:
MOV
深圳国芯人工智能有限公司
SP, #5FH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 391 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
技术支持: 19864585985
选型顾问: 13922805190
LOOP:
STRING:
END
13.5.27 定时器 4(16 位自动重载),用作定时
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
AUXR
IE2
深圳国芯人工智能有限公司
=
=
=
=
=
=
=
=
=
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
0xd7;
0xd6;
0x8e;
0xaf;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 392 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
#define
#define
#define
sfr
#define
#define
#define
ET2
ET3
ET4
AUXINTIF
T2IF
T3IF
T4IF
=
0x04
0x20
0x40
0xef;
0x01
0x02
0x04
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM4_Isr() interrupt 20
{
P10 = !P10;
}
技术支持: 19864585985
选型顾问: 13922805190
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T4L = 0x66;
T4H = 0xfc;
T4T3M = 0x80;
IE2 = ET4;
EA = 1;
//65536-11.0592M/12/1000
//启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
T4L
T4H
DATA
DATA
DATA
深圳国芯人工智能有限公司
0D1H
0D3H
0D2H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 393 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
T3L
T3H
T2L
T2H
AUXR
IE2
ET2
ET3
ET4
AUXINTIF
T2IF
T3IF
T4IF
DATA
DATA
DATA
DATA
DATA
DATA
EQU
EQU
EQU
DATA
EQU
EQU
EQU
0D5H
0D4H
0D7H
0D6H
8EH
0AFH
04H
20H
40H
0EFH
01H
02H
04H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
00A3H
TM4ISR
ORG
0100H
CPL
RETI
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
SETB
T4L,#66H
T4H,#0FCH
T4T3M,#80H
IE2,#ET4
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
TM4ISR:
;测试端口
MAIN:
深圳国芯人工智能有限公司
;65536-11.0592M/12/1000
;启动定时器
;使能定时器中断
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 394 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
END
13.5.28 定时器 4(外部计数-扩展 T4 为外部下降沿中断)
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
#define
#define
#define
sfr
#define
#define
#define
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
AUXR
IE2
ET2
ET3
ET4
AUXINTIF
T2IF
T3IF
T4IF
=
=
=
=
=
=
=
=
=
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void TM4_Isr() interrupt 20
{
P10 = !P10;
}
=
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
0xd7;
0xd6;
0x8e;
0xaf;
0x04
0x20
0x40
0xef;
0x01
0x02
0x04
//测试端口
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 395 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T4L = 0x66;
T4H = 0xfc;
T4T3M = 0xc0;
IE2 = ET4;
EA = 1;
//65536-11.0592M/12/1000
//设置外部计数模式并启动定时器
//使能定时器中断
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
AUXR
IE2
ET2
ET3
ET4
AUXINTIF
T2IF
T3IF
T4IF
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
EQU
EQU
EQU
DATA
EQU
EQU
EQU
0D1H
0D3H
0D2H
0D5H
0D4H
0D7H
0D6H
8EH
0AFH
04H
20H
40H
0EFH
01H
02H
04H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
00A3H
TM4ISR
ORG
0100H
CPL
P1.0
TM4ISR:
深圳国芯人工智能有限公司
;测试端口
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 396 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
RETI
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
SETB
T4L,#66H
T4H,#0FCH
T4T3M,#0C0H
IE2,#ET4
EA
JMP
$
;65536-11.0592M/12/1000
;设置外部计数模式并启动定时器
;使能定时器中断
END
13.5.29 定时器 4,时钟分频输出
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
sfr
sfr
sfr
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
=
=
=
=
=
=
=
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
0xd7;
0xd6;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 397 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P3M1 = 0x00;
T4L = 0x66;
T4H = 0xfc;
T4T3M = 0x90;
//65536-11.0592M/12/1000
//使能时钟输出并启动定时器
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D1H
0D3H
0D2H
0D5H
0D4H
0D7H
0D6H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 398 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
T4L,#66H
T4H,#0FCH
T4T3M,#90H
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;65536-11.0592M/12/1000
;使能时钟输出并启动定时器
END
13.5.30 定时器 4 做串口 4 波特率发生器
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
S4CON
S4BUF
IE2
=
=
=
=
=
=
=
=
=
=
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
0xd7;
0xd6;
0x84;
0x85;
0xaf;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 399 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
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)
{
Uart4SEND(*p++);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart4Init();
IE2 = 0x10;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 400 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
EA = 1;
Uart4SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart4SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
S4CON
S4BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D1H
0D3H
0D2H
0D5H
0D4H
0D7H
0D6H
84H
85H
0AFH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
0093H
UART4_ISR
ORG
0100H
PUSH
PUSH
MOV
ACC
PSW
PSW,#08H
MOV
A,S4CON
;16 bytes
UART4_ISR:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 401 -
STC8A8K64D4 系列技术手册
JNB
ANL
CLR
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
ACC.1,CHKRI
S4CON,#NOT 02H
BUSY
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
JZ
LCALL
INC
JMP
SEND4END:
RET
A
A,@A+DPTR
SEND4END
UART4_SEND
DPTR
UART4_SENDSTR
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
LCALL
UART4_INIT
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 402 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
SETB
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
技术支持: 19864585985
选型顾问: 13922805190
LOOP:
STRING:
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 403 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
14 串口通信
STC8A8K64D4 系列单片机具有 4 个全双工异步串行通信接口。每个串行口由 2 个数据缓冲器、一
个移位寄存器、一个串行控制寄存器和一个波特率发生器等组成。每个串行口的数据缓冲器由 2 个互相
独立的接收、发送缓冲器构成,可以同时发送和接收数据。
STC8A8K64D4 系列单片机的串口 1 有 4 种工作方式,其中两种方式的波特率是可变的,另两种是
固定的,以供不同应用场合选用。串口 2/串口 3/串口 4 都只有两种工作方式,这两种方式的波特率都是
可变的。用户可用软件设置不同的波特率和选择不同的工作方式。主机可通过查询或中断方式对接收/
发送进行程序处理,使用十分灵活。
串口 1、串口 2、串口 3、串口 4 的通讯口均可以通过功能管脚的切换功能切换到多组端口,从而可
以将一个通讯口分时复用为多个通讯口。
14.1 串口功能脚切换
符号
地址
P_SW1
A2H
P_SW2
BAH
B7
B6
B5
S1_S[1:0]
EAXFR
B4
B3
CCP_S[1:0]
-
B2
SPI_S[1:0]
I2C_S[1:0]
CMPO_S
S4_S
B1
B0
0
-
S3_S
S2_S
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
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
14.2 串口相关寄存器
位地址与符号
符号
SCON
描述
串口 1 控制寄存器
深圳国芯人工智能有限公司
地址
98H
复位值
B7
B6
B5
B4
B3
B2
B1
B0
SM0/FE
SM1
SM2
REN
TB8
RB8
TI
RI
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
0000,0000
- 404 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
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
SADDR
串口 1 从机地址寄存器
A9H
0000,0000
SADEN
串口 1 从机地址屏蔽寄存器
B9H
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
传真: 0513-5501 2926/2956/2947
IDL
0011,0000
S1ST2
0000,0001
- 405 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
14.3 串口 1
14.3.1 串口 1 控制寄存器(SCON)
符号
地址
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 必须由软件清零。
14.3.2 串口 1 数据寄存器(SBUF)
符号
地址
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
- 406 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
14.3.3 电源管理寄存器(PCON)
符号
地址
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 功能,即为帧错误检测标志位。
14.3.4 辅助寄存器 1(AUXR)
符号
地址
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 作为波特率发射器
14.3.5
串口 1 模式 0,模式 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
- 407 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 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
波特率 =
14.3.6
SYSclk
12
SYSclk
2
串口 1 模式 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
- 408 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 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
- 409 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 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
- 410 -
STC8A8K64D4 系列技术手册
14.3.7
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
串口 1 模式 2,模式 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)
14.3.8
串口 1 模式 3,模式 3 波特率计算公式
当 SM0、SM1 两位为 11 时,串行口 1 工作在模式 3。串行通信模式 3 为 9 位数据异步通信 UART
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 411 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 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 的波特率计算公式。
14.3.9
自动地址识别
14.3.10串口 1 从机地址控制寄存器(SADDR,SADEN)
符号
地址
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
- 412 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 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 为从机地址屏蔽位寄存器,用于设置地址信息中的忽略位,设置方法
如下:
例如
SADDR =
11001010
SADEN =
10000001
则匹配地址为 1xxxxxx0
即,只要主机送出的地址数据中的 bit0 为 0 且 bit7 为 1 就可以和本机地址相匹配
再例如
SADDR =
11001010
SADEN =
00001111
则匹配地址为 xxxx1010
即,只要主机送出的地址数据中的低 4 位为 1010 就可以和本机地址相匹配,而高 4 为被忽略,可以
为任意值。
主机可以使用广播地址(FFH)同时选中所有的从机来进行通讯。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 413 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
14.4 串口 2
14.4.1 串口 2 控制寄存器(S2CON)
符号
地址
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 必须由软件清零。
14.4.2 串口 2 数据寄存器(S2BUF)
符号
地址
S2BUF
9BH
B7
B6
B5
B4
B3
B2
B1
B0
S2BUF:串口 1 数据接收/发送缓冲区。S2BUF 实际是 2 个缓冲器,读缓冲器和写缓冲器,两个操作分
别对应两个不同的寄存器,1 个是只写寄存器(写缓冲器),1 个是只读寄存器(读缓冲器)。对
S2BUF 进行读操作,实际是读取串口接收缓冲区,对 S2BUF 进行写操作则是触发串口开始发送
数据。
14.4.3
串口 2 模式 0,模式 0 波特率计算公式
串行口 2 的模式 0 为 8 位数据位可变波特率 UART 工作模式。此模式一帧信息为 10 位:1 位起始位,
8 位数据位(低位在先)和 1 位停止位。波特率可变,可根据需要进行设置波特率。TxD2 为数据发送口,
RxD2 为数据接收口,串行口全双工接受/发送。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 414 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 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
14.4.4
SYSclk
12×4×波特率
串口 2 模式 1,模式 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
- 415 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
串口 2 模式 1 的波特率计算公式与模式 0 是完全相同的。请参考模式 0 的波特率计算公式。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 416 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
14.5 串口 3
14.5.1 串口 3 控制寄存器(S3CON)
符号
地址
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 必须由软件清零。
14.5.2 串口 3 数据寄存器(S3BUF)
符号
地址
S3BUF
ADH
B7
B6
B5
B4
B3
B2
B1
B0
S3BUF:串口 1 数据接收/发送缓冲区。S3BUF 实际是 2 个缓冲器,读缓冲器和写缓冲器,两个操作分
别对应两个不同的寄存器,1 个是只写寄存器(写缓冲器),1 个是只读寄存器(读缓冲器)。对
S3BUF 进行读操作,实际是读取串口接收缓冲区,对 S3BUF 进行写操作则是触发串口开始发送
数据。
14.5.3
串口 3 模式 0,模式 0 波特率计算公式
串行口 3 的模式 0 为 8 位数据位可变波特率 UART 工作模式。此模式一帧信息为 10 位:1 位起始位,
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 417 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
8 位数据位(低位在先)和 1 位停止位。波特率可变,可根据需要进行设置波特率。TxD3 为数据发送口,
RxD3 为数据接收口,串行口全双工接受/发送。
写S3BUF
TxD3
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
S3TI
发送数据(串口3模式0)
写S3CON
S3REN=1, S3RI=0
RxD3
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
14.5.4
SYSclk
12×4×波特率
串口 3 模式 1,模式 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
- 418 -
STC8A8K64D4 系列技术手册
写S3CON
RxD3
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 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
- 419 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
14.6 串口 4
14.6.1 串口 4 控制寄存器(S4CON)
符号
地址
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 必须由软件清零。
14.6.2 串口 4 数据寄存器(S4BUF)
符号
地址
S4BUF
85H
B7
B6
B5
B4
B3
B2
B1
B0
S4BUF:串口 1 数据接收/发送缓冲区。S4BUF 实际是 2 个缓冲器,读缓冲器和写缓冲器,两个操作分
别对应两个不同的寄存器,1 个是只写寄存器(写缓冲器),1 个是只读寄存器(读缓冲器)。对
S4BUF 进行读操作,实际是读取串口接收缓冲区,对 S4BUF 进行写操作则是触发串口开始发送
数据。
14.6.3
串口 4 模式 0,模式 0 波特率计算公式
串行口 4 的模式 0 为 8 位数据位可变波特率 UART 工作模式。此模式一帧信息为 10 位:1 位起始位,
8 位数据位(低位在先)和 1 位停止位。波特率可变,可根据需要进行设置波特率。TxD4 为数据发送口,
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 420 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
RxD4 为数据接收口,串行口全双工接受/发送。
写S4BUF
TxD4
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
S4TI
发送数据(串口4模式0)
写S4CON
S4REN=1, S4RI=0
RxD4
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
14.6.4
SYSclk
12×4×波特率
串口 4 模式 1,模式 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
- 421 -
STC8A8K64D4 系列技术手册
写S4CON
RxD4
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 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
- 422 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
14.7 串口注意事项
关于串口中断请求有如下问题需要注意:(串口 1、串口 2、串口 3、串口 4 均类似,下面以串口 1
为例进行说明)
8 位数据模式时,发送完成约 1/3 个停止位后产生 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 位数据模式时,发送完成约 1/3 个停止位后产生 TI 中断请求:
写SBUF
TxD
Start
D0
D1
D2
D3
D4
D5
D6
D7
TB8
Stop
D7
RB8
Stop
TI
发送数据(9位数据)
9 位数据模式时,一半个停止位后产生 RI 中断请求,如下图所示:
写SCON
RxD
REN=1,RI=0
Start
D0
D1
D2
D3
D4
D5
D6
RI
接收数据(9位数据)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 423 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
14.8 范例程序
串口 1 使用定时器 2 做波特率发生器
14.8.1
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
AUXR
T2H
T2L
=
=
=
0x8e;
0xd6;
0xd7;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
buffer[wptr++] = SBUF;
wptr &= 0x0f;
}
}
void UartInit()
{
SCON = 0x50;
T2L = BRT;
T2H = BRT >> 8;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 424 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
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()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
UartInit();
ES = 1;
EA = 1;
UartSENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
UartSEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
T2H
T2L
DATA
DATA
DATA
深圳国芯人工智能有限公司
8EH
0D6H
0D7H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 425 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
技术支持: 19864585985
选型顾问: 13922805190
;16 bytes
UART_ISR:
CHKRI:
JNB
CLR
MOV
ANL
ADD
MOV
MOV
INC
UARTISR_EXIT:
POP
POP
RETI
RI,UARTISR_EXIT
RI
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,SBUF
WPTR
PSW
ACC
UART_INIT:
MOV
MOV
MOV
MOV
CLR
MOV
MOV
RET
SCON,#50H
T2L,#0E8H
T2H,#0FFH
AUXR,#15H
BUSY
WPTR,#00H
RPTR,#00H
JB
BUSY,$
;65536-11059200/115200/4=0FFE8H
UART_SEND:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 426 -
STC8A8K64D4 系列技术手册
SETB
MOV
RET
UART_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SENDEND:
RET
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
BUSY
SBUF,A
A
A,@A+DPTR
SENDEND
UART_SEND
DPTR
UART_SENDSTR
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
14.8.2
串口 1 使用定时器 1(模式 0)做波特率发生器
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 427 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
buffer[wptr++] = SBUF;
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)
{
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 428 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
while (busy);
busy = 1;
SBUF = dat;
}
void UartSendStr(char *p)
{
while (*p)
{
UartSEND(*p++);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
UartInit();
ES = 1;
EA = 1;
UartSENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
UartSEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
DATA
8EH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
深圳国芯人工智能有限公司
;16 bytes
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 429 -
STC8A8K64D4 系列技术手册
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
技术支持: 19864585985
选型顾问: 13922805190
UART_ISR:
CHKRI:
JNB
CLR
MOV
ANL
ADD
MOV
MOV
INC
UARTISR_EXIT:
POP
POP
RETI
RI,UARTISR_EXIT
RI
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,SBUF
WPTR
PSW
ACC
UART_INIT:
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
;65536-11059200/115200/4=0FFE8H
UART_SEND:
UART_SENDSTR:
CLR
MOVC
JZ
深圳国芯人工智能有限公司
A
A,@A+DPTR
SENDEND
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 430 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
LCALL
INC
JMP
技术支持: 19864585985
选型顾问: 13922805190
UART_SEND
DPTR
UART_SENDSTR
SENDEND:
RET
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
串口 1 使用定时器 1(模式 2)做波特率发生器
14.8.3
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
FOSC
深圳国芯人工智能有限公司
11059200UL
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 431 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
#define
BRT
(256 - FOSC / 115200 / 32)
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
技术支持: 19864585985
选型顾问: 13922805190
void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
buffer[wptr++] = SBUF;
wptr &= 0x0f;
}
}
void UartInit()
{
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)
{
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 432 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
while (*p)
{
UartSEND(*p++);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
UartInit();
ES = 1;
EA = 1;
UartSENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
UartSEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
DATA
8EH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
深圳国芯人工智能有限公司
;16 bytes
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 433 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.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
技术支持: 19864585985
选型顾问: 13922805190
UART_ISR:
CHKRI:
JNB
CLR
MOV
ANL
ADD
MOV
MOV
INC
UARTISR_EXIT:
POP
POP
RETI
RI,UARTISR_EXIT
RI
A,WPTR
A,#0FH
A,#BUFFER
R0,A
@R0,SBUF
WPTR
PSW
ACC
UART_INIT:
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
;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
- 434 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
技术支持: 19864585985
选型顾问: 13922805190
LOOP:
STRING:
END
串口 2 使用定时器 2 做波特率发生器
14.8.4
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
AUXR
T2H
T2L
S2CON
S2BUF
=
=
=
=
=
深圳国芯人工智能有限公司
0x8e;
0xd6;
0xd7;
0x9a;
0x9b;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 435 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
IE2
=
0xaf;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
技术支持: 19864585985
选型顾问: 13922805190
void Uart2Isr() interrupt 8
{
if (S2CON & 0x02)
{
S2CON &= ~0x02;
busy = 0;
}
if (S2CON & 0x01)
{
S2CON &= ~0x01;
buffer[wptr++] = S2BUF;
wptr &= 0x0f;
}
}
void Uart2Init()
{
S2CON = 0x10;
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++);
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 436 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart2Init();
IE2 = 0x01;
EA = 1;
Uart2SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart2SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
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
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
深圳国芯人工智能有限公司
;16 bytes
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 437 -
STC8A8K64D4 系列技术手册
P5M0
官方网站: www.STCMCUDATA.com
DATA
0CAH
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
技术支持: 19864585985
选型顾问: 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,#10H
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:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 438 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
技术支持: 19864585985
选型顾问: 13922805190
LOOP:
STRING:
END
串口 3 使用定时器 2 做波特率发生器
14.8.5
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
AUXR
T2H
T2L
S3CON
S3BUF
=
=
=
=
=
深圳国芯人工智能有限公司
0x8e;
0xd6;
0xd7;
0xac;
0xad;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 439 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
IE2
=
0xaf;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
技术支持: 19864585985
选型顾问: 13922805190
void Uart3Isr() interrupt 17
{
if (S3CON & 0x02)
{
S3CON &= ~0x02;
busy = 0;
}
if (S3CON & 0x01)
{
S3CON &= ~0x01;
buffer[wptr++] = S3BUF;
wptr &= 0x0f;
}
}
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++);
}
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 440 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart3Init();
IE2 = 0x08;
EA = 1;
Uart3SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart3SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
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
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
深圳国芯人工智能有限公司
;16 bytes
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 441 -
STC8A8K64D4 系列技术手册
P5M0
官方网站: www.STCMCUDATA.com
DATA
0CAH
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
技术支持: 19864585985
选型顾问: 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:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 442 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
技术支持: 19864585985
选型顾问: 13922805190
LOOP:
STRING:
END
串口 3 使用定时器 3 做波特率发生器
14.8.6
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
T4T3M
T4L
T4H
T3L
T3H
=
=
=
=
=
深圳国芯人工智能有限公司
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 443 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
sfr
sfr
sfr
T2L
T2H
S3CON
S3BUF
IE2
=
=
=
=
=
0xd7;
0xd6;
0xac;
0xad;
0xaf;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
技术支持: 19864585985
选型顾问: 13922805190
void Uart3Isr() interrupt 17
{
if (S3CON & 0x02)
{
S3CON &= ~0x02;
busy = 0;
}
if (S3CON & 0x01)
{
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)
{
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 444 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
while (*p)
{
Uart3SEND(*p++);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart3Init();
IE2 = 0x08;
EA = 1;
Uart3SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart3SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
S3CON
S3BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D1H
0D3H
0D2H
0D5H
0D4H
0D7H
0D6H
0ACH
0ADH
0AFH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
DATA
DATA
DATA
093H
094H
091H
深圳国芯人工智能有限公司
;16 bytes
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 445 -
STC8A8K64D4 系列技术手册
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
技术支持: 19864585985
选型顾问: 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,#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
深圳国芯人工智能有限公司
A
A,@A+DPTR
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 446 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
JZ
LCALL
INC
JMP
技术支持: 19864585985
选型顾问: 13922805190
SEND3END
UART3_SEND
DPTR
UART3_SENDSTR
SEND3END:
RET
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
14.8.7
串口 4 使用定时器 2 做波特率发生器
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 447 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
sfr
AUXR
T2H
T2L
S4CON
S4BUF
IE2
=
=
=
=
=
=
0x8e;
0xd6;
0xd7;
0x84;
0x85;
0xaf;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
技术支持: 19864585985
选型顾问: 13922805190
void Uart4Isr() interrupt 18
{
if (S4CON & 0x02)
{
S4CON &= ~0x02;
busy = 0;
}
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;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 448 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
}
void Uart4SendStr(char *p)
{
while (*p)
{
Uart4SEND(*p++);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart4Init();
IE2 = 0x10;
EA = 1;
Uart4SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart4SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
T2H
T2L
S4CON
S4BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
8EH
0D6H
0D7H
84H
85H
0AFH
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
DATA
DATA
DATA
093H
094H
091H
深圳国芯人工智能有限公司
;16 bytes
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 449 -
STC8A8K64D4 系列技术手册
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
技术支持: 19864585985
选型顾问: 13922805190
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
深圳国芯人工智能有限公司
A
A,@A+DPTR
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 450 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
JZ
LCALL
INC
JMP
技术支持: 19864585985
选型顾问: 13922805190
SEND4END
UART4_SEND
DPTR
UART4_SENDSTR
SEND4END:
RET
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
14.8.8
串口 4 使用定时器 4 做波特率发生器
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 451 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
S4CON
S4BUF
IE2
=
=
=
=
=
=
=
=
=
=
0xd1;
0xd3;
0xd2;
0xd5;
0xd4;
0xd7;
0xd6;
0x84;
0x85;
0xaf;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
bit
char
char
char
busy;
wptr;
rptr;
buffer[16];
技术支持: 19864585985
选型顾问: 13922805190
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)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 452 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
while (busy);
busy = 1;
S4BUF = dat;
}
void Uart4SendStr(char *p)
{
while (*p)
{
Uart4SEND(*p++);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
Uart4Init();
IE2 = 0x10;
EA = 1;
Uart4SENDStr(“Uart Test !\r\n”);
while (1)
{
if (rptr != wptr)
{
Uart4SEND(buffer[rptr++]);
rptr &= 0x0f;
}
}
}
汇编代码
;测试工作频率为 11.0592MHz
T4T3M
T4L
T4H
T3L
T3H
T2L
T2H
S4CON
S4BUF
IE2
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
0D1H
0D3H
0D2H
0D5H
0D4H
0D7H
0D6H
84H
85H
0AFH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 453 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
BUSY
WPTR
RPTR
BUFFER
BIT
DATA
DATA
DATA
20H.0
21H
22H
23H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
技术支持: 19864585985
选型顾问: 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
;65536-11059200/115200/4=0FFE8H
UART4_SEND:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 454 -
STC8A8K64D4 系列技术手册
JB
SETB
MOV
RET
UART4_SENDSTR:
CLR
MOVC
JZ
LCALL
INC
JMP
SEND4END:
RET
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
BUSY,$
BUSY
S4BUF,A
A
A,@A+DPTR
SEND4END
UART4_SEND
DPTR
UART4_SENDSTR
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 455 -
STC8A8K64D4 系列技术手册
14.8.9
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
串口多机通讯
现参考 STC15 系列数据手册,后续补充
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 456 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
14.8.10 串口转 LIN 总线
C 语言代码
//测试工作频率为 22.1184MHz
/************* 功能说明
**************
本例程基于 STC8H8K64U 为主控芯片的实验箱 8 进行编写测试,STC8G、STC8H 系列芯片可通用参考.
通过 UART 接口连接 LIN 收发器实现 LIN 总线信号收发测试例程.
UART1 通过串口工具连接电脑.
UART2 外接 LIN 收发器(TJA1020/1), 连接 LIN 总线.
将电脑串口发送的数据转发到 LIN 总线; 从 LIN 总线接收到的数据转发到电脑串口.
默认传输速率:9600 波特率,发送 LIN 数据前切换波特率,发送 13 个显性间隔信号.
下载时, 选择时钟 22.1184MHz (用户可自行修改频率).
******************************************/
#include "reg51.h"
#include "intrins.h"
#define
MAIN_Fosc
22118400L
typedef
typedef
typedef
unsigned char
unsigned int
unsigned long
u8;
u16;
u32;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
AUXR
S2CON
S2BUF
TH2
TL2
IE2
INT_CLKO
P_SW1
P_SW2
=
=
=
=
=
=
=
=
=
0x8E;
0x9A;
0x9B;
0xD6;
0xD7;
0xAF;
0x8F;
0xA2;
0xBA;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P4
P5
P6
P7
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
P6M1
P6M0
P7M1
P7M0
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0xC0;
0xC8;
0xE8;
0xF8;
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xB1;
0xB2;
0xB3;
0xB4;
0xC9;
0xCA;
0xCB;
0xCC;
0xE1;
0xE2;
sbit
P00
=
P0^0;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 457 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
P01
P02
P03
P04
P05
P06
P07
P10
P11
P12
P13
P14
P15
P16
P17
P20
P21
P22
P23
P24
P25
P26
P27
P30
P31
P32
P33
P34
P35
P36
P37
P40
P41
P42
P43
P44
P45
P46
P47
P50
P51
P52
P53
P54
P55
P56
P57
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
P0^1;
P0^2;
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;
P2^0;
P2^1;
P2^2;
P2^3;
P2^4;
P2^5;
P2^6;
P2^7;
P3^0;
P3^1;
P3^2;
P3^3;
P3^4;
P3^5;
P3^6;
P3^7;
P4^0;
P4^1;
P4^2;
P4^3;
P4^4;
P4^5;
P4^6;
P4^7;
P5^0;
P5^1;
P5^2;
P5^3;
P5^4;
P5^5;
P5^6;
P5^7;
sbit
SLP_N
=
P2^4;
技术支持: 19864585985
选型顾问: 13922805190
//0: Sleep
/****************************** 用户定义宏 ***********************************/
#define
#define
Baudrate1
Baudrate2
(65536UL - (MAIN_Fosc /
(65536UL - (MAIN_Fosc /
4) / 9600UL)
4) / 9600UL)
#define
Baudrate_Break
(65536UL - (MAIN_Fosc /
4) / 6647UL) //发送显性间隔信号波特率
#define
#define
UART1_BUF_LENGTH
UART2_BUF_LENGTH
深圳国芯人工智能有限公司
32
32
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 458 -
STC8A8K64D4 系列技术手册
#define
LIN_ID
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
0x31
u8 TX1_Cnt;
u8 RX1_Cnt;
u8 TX2_Cnt;
u8 RX2_Cnt;
bit B_TX1_Busy;
bit B_TX2_Busy;
u8 RX1_TimeOut;
u8 RX2_TimeOut;
//发送计数
//接收计数
//发送计数
//接收计数
//发送忙标志
//发送忙标志
u8 xdata RX1_Buffer[UART1_BUF_LENGTH];
u8 xdata RX2_Buffer[UART2_BUF_LENGTH];
//接收缓冲
//接收缓冲
void UART1_config(u8 brt);
void UART2_config(u8 brt);
void PrintString1(u8 *puts);
void delay_ms(u8 ms);
void UART1_TxByte(u8 dat);
void UART2_TxByte(u8 dat);
void Lin_Send(u8 *puts);
void SetTimer2Baudraye(u16 dat);
//========================================================================
// 函数: void main(void)
// 描述: 主函数。
// 参数: none.
// 返回: none.
// 版本: VER1.0
// 日期: 2014-11-28
// 备注:
//========================================================================
void main(void)
{
u8 i;
//设置为准双向口
//设置为准双向口
//设置为准双向口
//设置为准双向口
//设置为准双向口
//设置为准双向口
//设置为准双向口
//设置为准双向口
P0M1 = 0; P0M0 = 0;
P1M1 = 0; P1M0 = 0;
P2M1 = 0; P2M0 = 0;
P3M1 = 0; P3M0 = 0;
P4M1 = 0; P4M0 = 0;
P5M1 = 0; P5M0 = 0;
P6M1 = 0; P6M0 = 0;
P7M1 = 0; P7M0 = 0;
UART1_config(1);
UART2_config(2);
EA = 1;
SLP_N = 1;
//允许全局中断
PrintString1("STC8H8K64U UART1 Test Programme!\r\n"); //UART1 发送一个字符串
while (1)
{
delay_ms(1);
if(RX1_TimeOut > 0)
{
if(--RX1_TimeOut == 0)
深圳国芯人工智能有限公司
//超时,则串口接收结束
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 459 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
if(RX1_Cnt > 0)
{
Lin_Send(RX1_Buffer);
}
RX1_Cnt = 0;
//将 UART1 收到的数据发送到 LIN 总线上
}
}
if(RX2_TimeOut > 0)
{
if(--RX2_TimeOut == 0)
//超时,则串口接收结束
{
if(RX2_Cnt > 0)
{
for (i=0; I < RX2_Cnt; i++)
//遇到停止符 0 结束
{
UART1_TxByte(RX2_Buffer[i]); //从 LIN 总线收到的数据发送到 UART1
}
}
RX2_Cnt = 0;
}
}
}
}
//========================================================================
// 函数: void delay_ms(unsigned char ms)
// 描述: 延时函数。
// 参数: ms,要延时的 ms 数, 这里只支持 1~255ms. 自动适应主时钟.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//========================================================================
void delay_ms(u8 ms)
{
u16 i;
do{
i = MAIN_Fosc / 13000;
while(--i);
//14T per loop
}while(--ms);
}
//========================================================================
// 函数: u8
Lin_CheckPID(u8 id)
// 描述: ID 码加上校验符,转成 PID 码。
// 参数: ID 码.
// 返回: PID 码.
// 版本: VER1.0
// 日期: 2020-12-2
// 备注:
//========================================================================
u8 Lin_CheckPID(u8 id)
{
u8 returnpid ;
u8 P0 ;
u8 P1 ;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 460 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P0 = (((id)^(id>>1)^(id>>2)^(id>>4))&0x01)1)^(id>>3)^(id>>4)^(id>>5)))&0x01) 8;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
IapIdle();
}
技术支持: 19864585985
//使能 IAP
//设置等待参数 12MHz
//设置 IAP 写命令
//设置 IAP 低地址
//设置 IAP 高地址
//写 IAP 数据
//写触发命令(0x5a)
//写触发命令(0xa5)
//关闭 IAP 功能
//使能 IAP
//设置等待参数 12MHz
//设置 IAP 擦除命令
//设置 IAP 低地址
//设置 IAP 高地址
//写触发命令(0x5a)
//写触发命令(0xa5)
//
//关闭 IAP 功能
void main()
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 491 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
IapErase(0x0400);
P0 = IapRead(0x0400);
IapProgram(0x0400, 0x12);
P1 = IapRead(0x0400);
//P0=0xff
//P1=0x12
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
IAP_DATA
IAP_ADDRH
IAP_ADDRL
IAP_CMD
IAP_TRIG
IAP_CONTR
IAP_TPS
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0C2H
0C3H
0C4H
0C5H
0C6H
0C7H
0F5H
IAP_OFFSET EQU
0F000H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
IAP_CONTR,#0
IAP_CMD,#0
IAP_TRIG,#0
IAP_ADDRH,#80H
;STC8A8K60S4
IAP_IDLE:
深圳国芯人工智能有限公司
;关闭 IAP 功能
;清除命令寄存器
;清除触发寄存器
;将地址设置到非 IAP 区域
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 492 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
MOV
RET
IAP_ADDRL,#0
MOV
ADD
MOV
MOV
ADDC
MOV
CLR
MOVC
RET
A,#LOW IAP_OFFSET
A,DPL
DPL,A
A,@HIGH IAP_OFFSET
A,DPH
DPH,A
A
A,@A+DPTR
;使用 MOVC 读取 EEPROM 需要加上相应的偏移
IAP_CONTR,#80H
IAP_TPS,#12
IAP_CMD,#2
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_DATA,A
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置等待参数 12MHz
;设置 IAP 写命令
;设置 IAP 低地址
;设置 IAP 高地址
;写 IAP 数据
;写触发命令(0x5a)
;写触发命令(0xa5)
IAP_IDLE
;关闭 IAP 功能
MOV
MOV
MOV
MOV
MOV
MOV
MOV
NOP
LCALL
RET
IAP_CONTR,#80H
IAP_TPS,#12
IAP_CMD,#3
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置等待参数 12MHz
;设置 IAP 擦除命令
;设置 IAP 低地址
;设置 IAP 高地址
;写触发命令(0x5a)
;写触发命令(0xa5)
IAP_IDLE
;关闭 IAP 功能
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
LCALL
MOV
LCALL
MOV
DPTR,#0400H
IAP_ERASE
DPTR,#0400H
IAP_READ
P0,A
IAP_READ:
IAP_PROGRAM:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
NOP
LCALL
RET
;使用 MOVC 读取数据
IAP_ERASE:
MAIN:
深圳国芯人工智能有限公司
;P0=0FFH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 493 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
MOV
MOV
LCALL
MOV
LCALL
MOV
DPTR,#0400H
A,#12H
IAP_PROGRAM
DPTR,#0400H
IAP_READ
P1,A
SJMP
$
技术支持: 19864585985
选型顾问: 13922805190
;P1=12H
END
使用串口送出 EEPROM 数据
16.4.3
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sfr
sfr
sfr
AUXR
T2H
T2L
=
=
=
0x8e;
0xd6;
0xd7;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
IAP_DATA
IAP_ADDRH
IAP_ADDRL
IAP_CMD
IAP_TRIG
IAP_CONTR
IAP_TPS
=
=
=
=
=
=
=
0xC2;
0xC3;
0xC4;
0xC5;
0xC6;
0xC7;
0xF5;
void UartInit()
{
SCON = 0x5a;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x15;
}
void UartSend(char dat)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 494 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
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
//设置等待参数 12MHz
//设置 IAP 读命令
//设置 IAP 低地址
//设置 IAP 高地址
//写触发命令(0x5a)
//写触发命令(0xa5)
IAP_CONTR = 0x80;
IAP_TPS = 12;
IAP_CMD = 1;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
dat = IAP_DATA;
IapIdle();
//读 IAP 数据
//关闭 IAP 功能
return dat;
}
void IapProgram(int addr, char dat)
{
IAP_CONTR = 0x80;
IAP_TPS = 12;
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 = 0x80;
IAP_TPS = 12;
IAP_CMD = 3;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
IapIdle();
}
深圳国芯人工智能有限公司
//使能 IAP
//设置等待参数 12MHz
//设置 IAP 写命令
//设置 IAP 低地址
//设置 IAP 高地址
//写 IAP 数据
//写触发命令(0x5a)
//写触发命令(0xa5)
//关闭 IAP 功能
//使能 IAP
//设置等待参数 12MHz
//设置 IAP 擦除命令
//设置 IAP 低地址
//设置 IAP 高地址
//写触发命令(0x5a)
//写触发命令(0xa5)
//
//关闭 IAP 功能
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 495 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
UartInit();
IapErase(0x0400);
UartSEND(IapRead(0x0400));
IapProgram(0x0400, 0x12);
UartSEND(IapRead(0x0400));
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
AUXR
T2H
T2L
DATA
DATA
DATA
8EH
0D6H
0D7H
IAP_DATA
IAP_ADDRH
IAP_ADDRL
IAP_CMD
IAP_TRIG
IAP_CONTR
IAP_TPS
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0C2H
0C3H
0C4H
0C5H
0C6H
0C7H
0F5H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 496 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
UART_INIT:
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
MOV
NOP
MOV
LCALL
RET
IAP_CONTR,#80H
IAP_TPS,#12
IAP_CMD,#1
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置等待参数 12MHz
;设置 IAP 读命令
;设置 IAP 低地址
;设置 IAP 高地址
;写触发命令(0x5a)
;写触发命令(0xa5)
A,IAP_DATA
IAP_IDLE
;读取 IAP 数据
;关闭 IAP 功能
IAP_CONTR,#80H
IAP_TPS,#12
IAP_CMD,#2
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_DATA,A
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置等待参数 12MHz
;设置 IAP 写命令
;设置 IAP 低地址
;设置 IAP 高地址
;写 IAP 数据
;写触发命令(0x5a)
;写触发命令(0xa5)
IAP_IDLE
;关闭 IAP 功能
IAP_CONTR,#80H
IAP_TPS,#12
IAP_CMD,#3
IAP_ADDRL,DPL
IAP_ADDRH,DPH
IAP_TRIG,#5AH
IAP_TRIG,#0A5H
;使能 IAP
;设置等待参数 12MHz
;设置 IAP 擦除命令
;设置 IAP 低地址
;设置 IAP 高地址
;写触发命令(0x5a)
;写触发命令(0xa5)
IAP_IDLE
;关闭 IAP 功能
;65536-11059200/115200/4=0FFE8H
UART_SEND:
IAP_IDLE:
IAP_READ:
IAP_PROGRAM:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
NOP
LCALL
RET
IAP_ERASE:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
NOP
LCALL
RET
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 497 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 498 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
17 ADC 模数转换,内部 1.19V 参考信号源
STC8A8K64D4 系列单片机内部集成了一个 12 位高速 A/D 转换器。ADC 的时钟频率为系统频率 2
分频再经过用户设置的分频系数进行再次分频(ADC 的工作时钟频率范围为 SYSclk/2/1 到 SYSclk/2/16)。
STC8A8K64D4 系列的 ADC 最快速度: 800K(每秒进行 80 万次 ADC 转换)
ADC 转换结果的数据格式有两种:左对齐和右对齐。可方便用户程序进行读取和引用。
注意:ADC 的第 15 通道只能用于检测内部参考信号源,参考信号源值出厂时校准为 1.19V,由于
制造误差以及测量误差,导致实际的内部参考信号源相比 1.19V,大约有±1%的误差。如果用户需要知
道每一颗芯片的准确内部参考信号源值,可外接精准参考信号源,然后利用 ADC 的第 15 通道进行测量
标定。
如果芯片有 ADC 的外部参考电源管脚 ADC_VRef+,则一定不能浮空,必须接外部参考电源或者
直接连到 VCC
17.1 ADC 相关的寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
ADC_CONTR
ADC 控制寄存器
ADC_RES
ADC 转换结果高位寄存器
BDH
0000,0000
ADC_RESL
ADC 转换结果低位寄存器
BEH
0000,0000
ADCCFG
ADC 配置寄存器
DEH
符号
描述
地址
BCH ADC_POWER ADC_START ADC_FLAG ADC_EPWMT
-
-
RESFMT
ADC_CHS[3:0]
-
000x,0000
SPEED[3:0]
xx0x,0000
位地址与符号
复位值
B7
ADCTIM
ADC 时序控制寄存器
FEA8H CSSETUP
ADCEXCFG
ADC 扩展配置寄存器
FEADH
-
B6
B5
B4
B3
CSHOLD[1:0]
-
B2
B1
B0
0010,1010
SMPDUTY[4:0]
ADCETRS[1:0]
-
CVTIMESEL[2:0]
xx00,x000
17.1.1 ADC 控制寄存器(ADC_CONTR),PWM 触发 ADC 控制
符号
地址
B7
B6
B5
B4
ADC_CONTR
BCH
ADC_POWER
ADC_START
ADC_FLAG
ADC_EPWMT
B3
B2
B1
B0
ADC_CHS[3:0]
ADC_POWER:ADC 电源控制位
0:关闭 ADC 电源
1:打开 ADC 电源。
建议进入空闲模式和掉电模式前将 ADC 电源关闭,以降低功耗
特别注意:
1、给 MCU 的 内部 ADC 模块电源打开后,需等待约 1ms, 等 MCU 内部的 ADC 电源稳定
后再让 ADC 工作;
2、适当加长对外部信号的采样时间,就是对 ADC 内部采样保持电容的充电或放电时间,时间够,
内部才能和外部电势相等。
ADC_START:ADC 转换启动控制位。写入 1 后开始 ADC 转换,转换完成后硬件自动将此位清零。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 499 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
0:无影响。即使 ADC 已经开始转换工作,写 0 也不会停止 A/D 转换。
1:开始 ADC 转换,转换完成后硬件自动将此位清零。
ADC_FLAG:ADC 转换结束标志位。当 ADC 完成一次转换后,硬件会自动将此位置 1,并向 CPU 提出
中断请求。此标志位必须软件清零。
ADC_EPWMT:使能 PWM 实时触发 ADC 功能。详情请参考 PWM 章节
ADC_CHS[3:0]:ADC 模拟通道选择位
(注意:被选择为 ADC 输入通道的 I/O 口,必须设置 PxM0/PxM1 寄存器将 I/O 口模式设置为高
阻输入模式。另外如果 MCU 进入掉电模式/时钟停振模式后,仍需要使能 ADC 通道,则需要设置
PxIE 寄存器关闭数字输入通道,以防止外部模拟输入信号忽高忽低而产生额外的功耗)
ADC_CHS[3:0]
ADC 通道
0000
P1.0/ADC0
0001
P1.1/ADC1
0010
P1.2/ADC2
0011
P1.3/ADC3
0100
P1.4/ADC4
0101
P1.5/ADC5
0110
P1.6/ADC6
0111
P1.7/ADC7
1000
P0.0/ADC8
1001
P0.1/ADC9
1010
P0.2/ADC10
1011
P0.3/ADC11
1100
P0.4/ADC12
1101
P0.5/ADC13
1110
P0.6/ADC14
1111
测试内部 1.19V
17.1.2 ADC 配置寄存器(ADCCFG)
符号
地址
B7
B6
B5
B4
ADCCFG
DEH
-
-
RESFMT
-
B3
B2
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
12位转换结果
0
0
0
0
自动填0
RESFMT=0
1:转换结果右对齐。ADC_RES 保存结果的高 4 位,ADC_RESL 保存结果的低 8 位。格式如下:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 500 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
ADC_RES
0
0
0
ADC_RESL
0 D11 D10 D9 D8
自动填0
选型顾问: 13922805190
D7 D6 D5 D4 D3 D2 D1 D0
12位转换结果
RESFMT=1
SPEED[3:0]:设置 ADC 工作时钟频率{FADC=SYSclk/2/(SPEED+1)}
SPEED[3:0]
给 ADC 的工作时钟频率
0000
SYSclk/2/1
0001
SYSclk/2/2
0010
SYSclk/2/3
...
...
1101
SYSclk/2/14
1110
SYSclk/2/15
1111
SYSclk/2/16
17.1.3 ADC 转换结果寄存器(ADC_RES,ADC_RESL)
符号
地址
ADC_RES
BDH
ADC_RESL
BEH
B7
B6
B5
B4
B3
B2
B1
B0
当 A/D 转换完成后,10 位/12 位的转换结果会自动保存到 ADC_RES 和 ADC_RESL 中。保存结果
的数据格式请参考 ADC_CFG 寄存器中的 RESFMT 设置。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 501 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
17.1.4 ADC 时序控制寄存器(ADCTIM)
符号
地址
B7
ADCTIM
FEA8H
CSSETUP
B6
B5
B4
B3
CSHOLD[1:0]
B2
B1
B0
SMPDUTY[4:0]
CSSETUP:ADC 通道选择时间控制 Tsetup
CSSETUP
占用 ADC 工作时钟数
0
1(默认值)
1
2
CSHOLD[1:0]:ADC 通道选择保持时间控制 Thold
CSHOLD[1:0]
占用 ADC 工作时钟数
00
1
01
2(默认值)
10
3
11
4
SMPDUTY[4:0]:ADC 模拟信号采样时间控制 Tduty(注意:SMPDUTY 一定不能设置小于 01010B)
SMPDUTY[4:0]
占用 ADC 工作时钟数
00000
1
00001
2
...
...
01010
11(默认值)
...
...
11110
31
11111
32
ADC 数模转换时间:Tconvert
10 位 ADC 的转换时间固定为 10 个 ADC 工作时钟
12 位 ADC 的转换时间固定为 12 个 ADC 工作时钟
一个完整的 ADC 转换时间为: Tsetup + Tduty + Thold + Tconvert,如下图所示
ADC时钟FADC
SYSclk/2/(SPEED+1)
使能信号
ADC_POWER
开始信号
ADC_START
完成信号
ADC_FLAG
模拟输入通道
ADCx_IN
开始选择通道
开始采样
准备时间Tsetup
(CSSETUP+1)
结束采样
关闭通道并开始转换
转换完成
采样时间Tduty
转换时间Tconvert
(SMPDUTY+1)
(10位ADC为10个ADC时钟)
保持时间Thold
(12位ADC为12个ADC时钟)
(CSHOLD+1)
ADC整体转换时序图
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 502 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
17.1.5 ADC 扩展配置寄存器(ADCEXCFG)
符号
地址
B7
B6
ADCEXCFG
FEADH
-
-
B5
B4
ADCETRS[1:0]
B3
-
B2
B1
B0
CVTIMESEL[2:0]
ADCETRS[1:0]:ADC 外部触发脚 ADC_ETR 控制位
ADCETRS[1:0]
ADC_ETR 设置
0x
禁止 ETR 功能
10
使能 ADC_ETR 的上升沿触发 ADC
11
使能 ADC_ETR 的下降沿触发 ADC
注:使用此功能前,必须打开 ADC_CONTR 中的 ADC 电源开关,并设置好相应的 ADC 通道
CVTIMESEL[2:0]:ADC 自动转换次数选择
CVTIMESEL [2:0]
ADC 自动转换次数
0xx
转换 1 次
100
转换 2 次并取平均值
101
转换 4 次并取平均值
110
转换 8 次并取平均值
111
转换 16 次并取平均值
注:当使能 ADC 自动转换多次功能后,ADC 中断标志只会在 ADC 自动转换到设置的次数后,才会被
置 1(例如:设置 CVTIMESEL 为 101B,即 ADC 自动转换 4 次并取平均值,则 ADC 中断标志位每完
成 4 次 ADC 转换才会被置 1)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 503 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
17.2 ADC 相关计算公式
17.2.1 ADC 速度计算公式
ADC 的转换速度由 ADCCFG 寄存器中的 SPEED 和 ADCTIM 寄存器共同控制。转换速度的计算公式如
下所示:
MCU工作频率SYSclk
12位ADC转换速度 =
2×(SPEED[3:0] + 1)×[(CSSETUP + 1) + (CSHOLD + 1) + (SMPDUTY + 1) + 12]
注意:
12 位 ADC 的速度不能高于 800KHz
SMPDUTY 的值不能小于 10,建议设置为 15
CSSETUP 可使用上电默认值 0
CHOLD 可使用上电默认值 1(ADCTIM 建议设置为 3FH)
17.2.2 ADC 转换结果计算公式
ADC被转换通道的输入电压Vin
(有独立ADC_Vref+管脚)
12位ADC转换结果 = 4096 ×
ADC外部参考源的电压
17.2.3 反推 ADC 输入电压计算公式
12位ADC转换结果
(有独立ADC_Vref+管脚)
ADC被转换通道的输入电压Vin = ADC外部参考源的电压 ×
4096
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 504 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
17.2.4 反推工作电压计算公式
当需要使用 ADC 输入电压和 ADC 转换结果反推工作电压时,若目标芯片无独立的 ADC_Vref+管脚,则
可直接测量并使用下面公式,若目标芯片有独立 ADC_Vref+管脚时,则必须将 ADC_Vref+管脚连接到
Vcc 管脚。
ADC被转换通道的输入电压Vin
MCU工作电压Vcc = 4096 ×
12位ADC转换结果
17.3 12 位 ADC 静态特性
符号
最小值
典型值
最大值
单位
分辨率
-
12
-
Bits
ET
整体误差
-
0.5
1
LSB
EO
偏移误差
-
-0.1
1
LSB
EG
增益误差
-
0
1
LSB
ED
微分非线性误差
-
0.7
1.5
LSB
EI
积分非线性误差
-
1
2
LSB
RAIN
通道等效电阻
-
∞
-
ohm
RESD
采样保持电容前串接的抗
静电电阻
-
700
-
ohm
CADC
内部采样保持电容
-
16.5
-
pF
RES
描述
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 505 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
17.4 ADC 应用参考线路图
17.4.1 高精度 ADC 应用
CD431/TL431(2.5V基准源)
511R
22u
外部模拟
信号输入
系统电源
(可从USB取电)
103
0.1u
22u
220uH
Vin
AVcc
Power On
Vcc
47u
0R
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
0R
STC8A8K64D4
模拟地
系统地
数字地
C?
深圳国芯人工智能有限公司
系统时钟10MHz
103(0.01uF)
传真: 0513-5501 2926/2956/2947
- 506 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
17.4.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
STC8A8K64D4
系统时钟10MHz
103(0.01uF)
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 507 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
17.5 范例程序
ADC 基本操作(查询方式)
17.5.1
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
=
=
=
=
0xbc;
0xbd;
0xbe;
0xde;
sfr
#define
P_SW2
ADCTIM
=
0xba;
(*(unsigned char volatile xdata *)0xfea8)
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x01;
P_SW2 |= 0x80;
ADCTIM = 0x3f;
P_SW2 &= 0x7f;
ADCCFG = 0x0f;
ADC_CONTR = 0x80;
//设置 P1.0 为 ADC 口
//设置 ADC 内部时序
//设置 ADC 时钟为系统时钟/2/16
//使能 ADC 模块
while (1)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 508 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
ADC_CONTR |= 0x40;
_nop_();
_nop_();
while (!(ADC_CONTR & 0x20));
ADC_CONTR &= ~0x20;
P2 = ADC_RES;
//启动 AD 转换
//查询 ADC 完成标志
//清完成标志
//读取 ADC 结果
}
}
汇编代码
;测试工作频率为 11.0592MHz
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
DATA
DATA
DATA
DATA
0BCH
0BDH
0BEH
0DEH
P_SW2
ADCTIM
DATA
XDATA
0BAH
0FEA8H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
MOV
P1M0,#00H
P1M1,#01H
P_SW2,#80H
DPTR,#ADCTIM
A,#3FH
MAIN:
深圳国芯人工智能有限公司
;设置 P1.0 为 ADC 口
;设置 ADC 内部时序
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 509 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
MOVX
MOV
MOV
MOV
@DPTR,A
P_SW2,#00H
ADCCFG,#0FH
ADC_CONTR,#80H
;设置 ADC 时钟为系统时钟/2/16
;使能 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
选型顾问: 13922805190
LOOP:
;清完成标志
;读取 ADC 结果
END
ADC 基本操作(中断方式)
17.5.2
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
=
=
=
=
0xbc;
0xbd;
0xbe;
0xde;
sfr
#define
P_SW2
ADCTIM
=
0xba;
(*(unsigned char volatile xdata *)0xfea8)
sbit
EADC
=
IE^5;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void ADC_Isr() interrupt 5
{
ADC_CONTR &= ~0x20;
P2 = ADC_RES;
ADC_CONTR |= 0x40;
}
//清中断标志
//读取 ADC 结果
//继续 AD 转换
void main()
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 510 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//设置 P1.0 为 ADC 口
P1M0 = 0x00;
P1M1 = 0x01;
P_SW2 |= 0x80;
ADCTIM = 0x3f;
P_SW2 &= 0x7f;
ADCCFG = 0x0f;
ADC_CONTR = 0x80;
EADC = 1;
EA = 1;
ADC_CONTR |= 0x40;
//设置 ADC 内部时序
//设置 ADC 时钟为系统时钟/2/16
//使能 ADC 模块
//使能 ADC 中断
//启动 AD 转换
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
DATA
DATA
DATA
DATA
0BCH
0BDH
0BEH
0DEH
P_SW2
ADCTIM
DATA
XDATA
0BAH
0FEA8H
EADC
BIT
IE.5
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
002BH
ADCISR
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 511 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
ORG
0100H
ANL
MOV
ORL
RETI
ADC_CONTR,#NOT 20H
P2,ADC_RES
ADC_CONTR,#40H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
SETB
SETB
ORL
P1M0,#00H
P1M1,#01H
P_SW2,#80H
DPTR,#ADCTIM
A,#3FH
@DPTR,A
P_SW2,#00H
ADCCFG,#0FH
ADC_CONTR,#80H
EADC
EA
ADC_CONTR,#40H
SJMP
$
技术支持: 19864585985
选型顾问: 13922805190
ADCISR:
;清完成标志
;读取 ADC 结果
;继续 AD 转换
MAIN:
;设置 P1.0 为 ADC 口
;设置 ADC 内部时序
;设置 ADC 时钟为系统时钟/2/16
;使能 ADC 模块
;使能 ADC 中断
;启动 AD 转换
END
格式化 ADC 转换结果
17.5.3
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
=
=
=
=
0xbc;
0xbd;
0xbe;
0xde;
sfr
#define
P_SW2
ADCTIM
=
0xba;
(*(unsigned char volatile xdata *)0xfea8)
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 512 -
STC8A8K64D4 系列技术手册
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
=
=
=
=
=
=
=
=
=
=
=
=
技术支持: 19864585985
选型顾问: 13922805190
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//
//
P1M0 = 0x00;
P1M1 = 0x01;
P_SW2 |= 0x80;
ADCTIM = 0x3f;
P_SW2 &= 0x7f;
ADCCFG = 0x0f;
ADC_CONTR = 0x80;
ADC_CONTR |= 0x40;
_nop_();
_nop_();
while (!(ADC_CONTR & 0x20));
ADC_CONTR &= ~0x20;
//设置 P1.0 为 ADC 口
ADCCFG = 0x00;
ACC = ADC_RES;
B = ADC_RESL;
//设置结果左对齐
//A 存储 ADC 的 10 位结果的高 8 位
//B[7:6]存储 ADC 的 10 位结果的低 2 位,B[5:0]为 0
ADCCFG = 0x20;
ACC = ADC_RES;
B = ADC_RESL;
//设置结果右对齐
//A[1:0]存储 ADC 的 10 位结果的高 2 位,A[7:2]为 0
//B 存储 ADC 的 10 位结果的低 8 位
//设置 ADC 内部时序
//设置 ADC 时钟为系统时钟/2/16
//使能 ADC 模块
//启动 AD 转换
//查询 ADC 完成标志
//清完成标志
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
ADC_CONTR
ADC_RES
ADC_RESL
DATA
DATA
DATA
深圳国芯人工智能有限公司
0BCH
0BDH
0BEH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 513 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
ADCCFG
DATA
0DEH
P_SW2
ADCTIM
DATA
XDATA
0BAH
0FEA8H
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
P1M0,#00H
P1M1,#01H
P_SW2,#80H
DPTR,#ADCTIM
A,#3FH
@DPTR,A
P_SW2,#00H
ADCCFG,#0FH
ADC_CONTR,#80H
;设置 P1.0 为 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 的 10 位结果的高 8 位
;B[7:6]存储 ADC 的 10 位结果的低 2 位,B[5:0]为 0
MOV
ADCCFG,#20H
;设置结果右对齐
MAIN:
;
深圳国芯人工智能有限公司
;设置 ADC 内部时序
;设置 ADC 时钟为系统时钟/2/16
;使能 ADC 模块
;清完成标志
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 514 -
STC8A8K64D4 系列技术手册
;
;
官方网站: www.STCMCUDATA.com
MOV
MOV
A,ADC_RES
B,ADC_RESL
SJMP
$
技术支持: 19864585985
选型顾问: 13922805190
;A[3:0]存储 ADC 的 10 位结果的高 2 位,A[7:2]为 0
;B 存储 ADC 的 10 位结果的低 8 位
END
ADC 自动转换多次取平均值
17.5.4
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sfr
sfr
sfr
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
=
=
=
=
0xbc;
0xbd;
0xbe;
0xde;
sfr
#define
#define
P_SW2
ADCTIM
ADCEXCFG
=
0xba;
(*(unsigned char volatile xdata *)0xfea8)
(*(unsigned char volatile xdata *)0xfead)
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
P1M0 = 0x00;
P1M1 = 0x01;
P_SW2 |= 0x80;
ADCTIM = 0x3f;
ADCEXCFG = 0x04;
深圳国芯人工智能有限公司
//设置 P1.0 为 ADC 口
//设置 ADC 内部时序
//设置 ADC 自动转换 2 此取平均值
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 515 -
STC8A8K64D4 系列技术手册
//
//
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
//设置 ADC 自动转换 4 此取平均值
//设置 ADC 自动转换 8 此取平均值
//设置 ADC 自动转换 16 此取平均值
ADCEXCFG = 0x05;
ADCEXCFG = 0x06;
ADCEXCFG = 0x07;
P_SW2 &= 0x7f;
ADCCFG = 0x0f;
ADC_CONTR = 0x80;
//设置 ADC 时钟为系统时钟/2/16
//使能 ADC 模块
while (1)
{
ADC_CONTR |= 0x40;
_nop_();
_nop_();
while (!(ADC_CONTR & 0x20));
ADC_CONTR &= ~0x20;
P2 = ADC_RES;
}
//启动 AD 转换
//查询 ADC 完成标志
//清完成标志
//读取 ADC 结果
}
汇编代码
;测试工作频率为 11.0592MHz
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
DATA
DATA
DATA
DATA
0BCH
0BDH
0BEH
0DEH
P_SW2
ADCTIM
ADCEXCFG
DATA
XDATA
XDATA
0BAH
0FEA8H
0FEAdH
P1M1
P1M0
P0M1
P0M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
091H
092H
093H
094H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
MAIN:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 516 -
STC8A8K64D4 系列技术手册
;
;
;
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
MOV
MOV
MOV
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
MOV
MOV
MOVX
MOV
MOV
MOV
P1M0,#00H
P1M1,#01H
P_SW2,#80H
DPTR,#ADCTIM
A,#3FH
@DPTR,A
DPTR,#ADCEXCFG
A,#04H
A,#05H
A,#06H
A,#07H
@DPTR,A
P_SW2,#00H
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
选型顾问: 13922805190
;设置 ADC 内部时序
;设置 ADC 自动转换 2 此取平均值
;设置 ADC 自动转换 4 此取平均值
;设置 ADC 自动转换 8 此取平均值
;设置 ADC 自动转换 16 此取平均值
;设置 ADC 时钟为系统时钟/2/16
;使能 ADC 模块
LOOP:
;清完成标志
;读取 ADC 结果
END
17.5.5
利用 ADC 第 15 通道测量外部电压或电池电压
STC8A8K64D4 系列 ADC 的第 15 通道用于测量内部参考信号源,由于内部参考信号源很稳定,约
为 1.19V,且不会随芯片的工作电压的改变而变化,所以可以通过测量内部 1.19V 参考信号源,然后通
过 ADC 的值便可反推出外部电压或外部电池电压。
下图为参考线路图:
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 517 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
外部供电
或电池供电
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
技术支持: 19864585985
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
P1.2
P1.6
P1.7
AGnd
AVref
AVcc
P5.4
Vcc
P5.5
Gnd
P4.5
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P4.4
P4.2
P4.1
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
选型顾问: 13922805190
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
STC8A8K64D4
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
FOSC
BRT
11059200UL
(65536 - FOSC / 115200 / 4)
sfr
AUXR
=
0x8e;
sfr
sfr
sfr
sfr
ADC_CONTR
ADC_RES
ADC_RESL
ADCCFG
=
=
=
=
0xbc;
0xbd;
0xbe;
0xde;
sfr
#define
P_SW2
ADCTIM
=
0xba;
(*(unsigned char volatile xdata *)0xfea8)
sfr
sfr
sfr
sfr
sfr
P1M1
P1M0
P0M1
P0M0
P2M1
=
=
=
=
=
0x91;
0x92;
0x93;
0x94;
0x95;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 518 -
STC8A8K64D4 系列技术手册
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
int
*BGV;
bit
busy;
官方网站: www.STCMCUDATA.com
=
=
=
=
=
=
=
技术支持: 19864585985
选型顾问: 13922805190
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
//内部参考信号源值存放在 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()
{
P_SW2 |= 0x80;
ADCTIM = 0x3f;
P_SW2 &= 0x7f;
ADCCFG = 0x2f;
ADC_CONTR = 0x8f;
//设置 ADC 内部时序
//设置 ADC 时钟为系统时钟/2/16
//使能 ADC 模块,并选择第 15 通道
}
int
{
ADCRead()
int res;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 519 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
ADC_CONTR |= 0x40;
_nop_();
_nop_();
while (!(ADC_CONTR & 0x20));
ADC_CONTR &= ~0x20;
res = (ADC_RES = 3;
//
//读取 8 次数据
//取平均值
vcc = (int)(4096L * *BGV / res);
vcc = (int)(1024L * *BGV / res);
UartSend(vcc >> 8);
UartSend(vcc);
//(12 位 ADC 算法)计算 VREF 管脚电压,即电池电压
//(10 位 ADC 算法)计算 VREF 管脚电压,即电池电压
//注意,此电压的单位为毫伏(mV)
//输出电压值到串口
while (1);
}
上面的方法是使用 ADC 的第 15 通道反推外部电池电压的。在 ADC 测量范围内,ADC 的外部测量
电压与 ADC 的测量值是成正比例的,所以也可以使用 ADC 的第 15 通道反推外部通道输入电压,假设
当前已获取了内部参考信号源电压为 BGV,内部参考信号源的 ADC 测量值为 resbg,外部通道输入电压
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 520 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
的 ADC 测量值为 resx,则外部通道输入电压 Vx=BGV / resbg * resx;
17.5.6
ADC 做电容感应触摸按键
按键是电路最常用的零件之一,是人机界面重要的输入方式,我们最熟悉的是机械式按键,但是机
械按键有一个缺点(特别是便宜的按键),触点有寿命,很容易出现接触不良而失效。而非接触的按键则
没有机械触点,寿命长,使用方便。
非接触的按键有多种方案,而电容感应按键则是低成本的方案,多年前一般是使用专门的 IC 来实现,
随着 MCU 功能的加强,以及广大用户的实践经验,直接使用 MCU 来做电容感应按键的技术已经成熟,
其中最典型最可靠的是使用 ADC 做的方案。
本文档详述使用 STC 带 ADC 的系列 MCU 做的方案,可以使用任何带 ADC 功能的 MCU 来实
现。下面前 3 个图是用得最多的方式,原理都一样,本文使用第 2 个图。
一般实际应用时,都使用图 4 所示的感应弹簧来加大手指按下的面积。感应弹簧等效一块对地的金
属板,对地有一个电容 CP,而手指按下后,则再并联一个对地的电容 CF,如下图所示。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 521 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
下面为电路图的说明,CP 为金属板和分布电容,CF 为手指电容,并联在一起与 C1 对输入的 300KHZ 方波
进行分压,经过 D1 整流,R2、C2 滤波后送 ADC,当手指压上去后,送去 ADC 的电压降低,程序就可以检测出
按键动作。
C 语言代码
//测试工作频率为 24MHz
#include "reg51.h"
#include "intrins.h"
#define
#define
MAIN_Fosc
24000000UL
Timer0_Reload (65536UL -(MAIN_Fosc / 600000))
typedef
typedef
typedef
unsigned char
unsigned int
unsigned long
u8;
u16;
u32;
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
=
=
=
=
=
=
深圳国芯人工智能有限公司
//定义主时钟
//Timer 0 重装值,对应 300KHZ
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 522 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
sfr
sfr
sfr
sfr
sfr
sfr
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sfr
sfr
sfr
sfr
sfr
ADC_CONTR
ADC_RES
ADC_RESL
AUXR
AUXR2
=
=
=
=
=
0xBC;
0xBD;
0xBE;
0x8E;
0x8F;
#define
#define
#define
#define
#define
#define
#define
CHANNEL
ADC_90T
ADC_180T
ADC_360T
ADC_540T
ADC_FLAG
ADC_START
8
(3 8;
value += T50HZ;
CR = 1;
EA = 1;
//PCA 时钟为系统时钟/12
//PCA 模块 0 为 16 位定时器模式
//启动 PCA 计时器
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
CCON
CF
CR
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
DATA
BIT
BIT
BIT
BIT
BIT
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0D8H
CCON.7
CCON.6
CCON.2
CCON.1
CCON.0
0D9H
0E9H
0F9H
0DAH
0EAH
0FAH
0F2H
0DBH
0EBH
0FBH
0F3H
0DCH
0ECH
0FCH
0F4H
T50HZ
EQU
2400H
深圳国芯人工智能有限公司
;11059200/12/2/50
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 555 -
STC8A8K64D4 系列技术手册
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
003BH
PCAISR
ORG
0100H
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
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
技术支持: 19864585985
选型顾问: 13922805190
PCAISR:
;测试端口,闪烁频率为 50Hz
MAIN:
深圳国芯人工智能有限公司
;PCA 时钟为系统时钟/12
;PCA 模块 0 为 16 位定时器模式
;启动 PCA 计时器
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 556 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
JMP
技术支持: 19864585985
选型顾问: 13922805190
$
END
PCA 输出高速脉冲
18.5.4
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
T38K4HZ
sfr
sbit
sbit
sbit
sbit
sbit
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
CCON
CF
CR
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0xd8;
CCON^7;
CCON^6;
CCON^2;
CCON^1;
CCON^0;
0xd9;
0xe9;
0xf9;
0xda;
0xea;
0xfa;
0xf2;
0xdb;
0xeb;
0xfb;
0xf3;
0xdc;
0xec;
0xfc;
0xf4;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
unsigned int
(11059200L / 2 / 38400)
value;
void PCA_Isr() interrupt 7
{
CCF0 = 0;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 557 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
CCAP0L = value;
CCAP0H = value >> 8;
value += T38K4HZ;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
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);
}
汇编代码
;测试工作频率为 11.0592MHz
CCON
CF
CR
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
DATA
BIT
BIT
BIT
BIT
BIT
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
0D8H
CCON.7
CCON.6
CCON.2
CCON.1
CCON.0
0D9H
0E9H
0F9H
0DAH
0EAH
0FAH
0F2H
0DBH
0EBH
0FBH
0F3H
0DCH
0ECH
0FCH
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 558 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
PCA_PWM2
DATA
0F4H
T38K4HZ
EQU
90H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
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
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
CCON,#00H
CMOD,#08H
CL,#00H
CH,#0H
CCAPM0,#4DH
CCAP0L,#LOW T38K4HZ
CCAP0H,#HIGH T38K4HZ
技术支持: 19864585985
选型顾问: 13922805190
;11059200/2/38400
PCAISR:
MAIN:
深圳国芯人工智能有限公司
;PCA 时钟为系统时钟
;PCA 模块 0 为 16 位定时器模式并使能脉冲输出
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 559 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
SETB
SETB
CR
EA
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
;启动 PCA 计时器
END
PCA 扩展外部中断
18.5.5
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
sbit
sbit
sbit
sbit
sbit
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
CCON
CF
CR
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0xd8;
CCON^7;
CCON^6;
CCON^2;
CCON^1;
CCON^0;
0xd9;
0xe9;
0xf9;
0xda;
0xea;
0xfa;
0xf2;
0xdb;
0xeb;
0xfb;
0xf3;
0xdc;
0xec;
0xfc;
0xf4;
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
sbit
P10
=
P1^0;
void PCA_Isr() interrupt 7
{
CCF0 = 0;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 560 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P10 = !P10;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//
//
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 计时器
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
CCON
CF
CR
CCF2
CCF1
CCF0
CMOD
CL
CH
CCAPM0
CCAP0L
CCAP0H
PCA_PWM0
CCAPM1
CCAP1L
CCAP1H
PCA_PWM1
CCAPM2
CCAP2L
CCAP2H
PCA_PWM2
DATA
BIT
BIT
BIT
BIT
BIT
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
深圳国芯人工智能有限公司
0D8H
CCON.7
CCON.6
CCON.2
CCON.1
CCON.0
0D9H
0E9H
0F9H
0DAH
0EAH
0FAH
0F2H
0DBH
0EBH
0FBH
0F3H
0DCH
0ECH
0FCH
0F4H
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 561 -
STC8A8K64D4 系列技术手册
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
ORG
LJMP
0000H
MAIN
003BH
PCAISR
ORG
0100H
CLR
CPL
RETI
CCF0
P1.0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
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
JMP
$
技术支持: 19864585985
选型顾问: 13922805190
PCAISR:
MAIN:
;
;
;PCA 时钟为系统时钟
;扩展外部端口 CCP0 为下降沿中断口
;扩展外部端口 CCP0 为上升沿中断口
;扩展外部端口 CCP0 为边沿中断口
;启动 PCA 计时器
END
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 562 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
19 精度可达 15 位的增强型 PWM
STC8A8K64D4-64Pin/48Pin 系列单片机集成了 1 组增强型的 PWM 波形发生器,可产生各自独立的
8 路 PWM。PWM 的时钟源可以选择。PWM 波形发生器内部有一个 15 位的 PWM 计数器供 8 路 PWM
使用,用户可以设置每路 PWM 的初始电平。另外,PWM 波形发生器为每路 PWM 又设计了两个用于控
制波形翻转的计数器 T1/T2,可以非常灵活的控制每路 PWM 的高低电平宽度,从而达到对 PWM 的占空
比以及 PWM 的输出延迟进行控制的目的。由于 8 路 PWM 是各自独立的,且每路 PWM 的初始状态可
以进行设定,所以用户可以将其中的任意两路配合起来使用,即可实现互补对称输出以及死区控制等特
殊应用。(注:增强型 PWM 只有输出功能,如果需要测量脉冲宽度,请使用本系列的 PCA/CCP/PWM
功能)增强型的 PWM 波形发生器还设计了对外部异常事件(包括外部端口 P3.5 电平异常、比较器比较
结果异常)进行监控的功能,可用于紧急关闭 PWM 输出。PWM 波形发生器还可与 ADC 相关联,设置
PWM 周期的任一时间点触发 ADC 转换事件。
STC 三种硬件 PWM 比较:
兼容传统 8051 的 PCA/CCP/PWM:可输出 PWM 波形、捕获外部输入信号以及输出高速脉冲。可对外输
出 6 位/7 位/8 位/10 位的 PWM 波形,6 位 PWM 波形的频率为 PCA 模块时钟源频率/64;7 位 PWM
波形的频率为 PCA 模块时钟源频率/128;8 位 PWM 波形的频率为 PCA 模块时钟源频率/256;10 位
PWM 波形的频率为 PCA 模块时钟源频率/1024。捕获外部输入信号,可捕获上升沿、下降沿或者同
时捕获上升沿和下降沿。
15 位增强型 PWM:只能对外输出 PWM 波形,无输入捕获功能。对外输出 PWM 的频率以及占空比均
可任意设置。通过软件干预,可实现多路互补/对称/带死区的 PWM 波形。有外部异常检测功能以及
实时触发 ADC 转换功能。
STC8H 系列的 16 位高级 PWM 定时器:是目前 STC 功能最强的 PWM,可对外输出任意频率以及任意
占空比的 PWM 波形。无需软件干预即可输出互补/对称/带死区的 PWM 波形。能捕获外部输入信号,
可捕获上升沿、下降沿或者同时捕获上升沿和下降沿,测量外部波形时,可同时测量波形的周期值
和占空比值。有正交编码功能、外部异常检测功能以及实时触发 ADC 转换功能。
19.1 增强型 PWM 输出功能脚切换
符号
地址
B7
B6
B5
B2
B1
B0
PWM0CR
FF14H
ENC0O
C0INI
-
C0_S[1:0]
EC0I
EC0T2SI
EC0T1SI
PWM1CR
FF1CH
ENC1O
C1INI
-
C1_S[1:0]
EC1I
EC1T2SI
EC1T1SI
PWM2CR
FF24H
ENC2O
C2INI
-
C2_S[1:0]
EC2I
EC2T2SI
EC2T1SI
PWM3CR
FF2CH
ENC3O
C3INI
-
C3_S[1:0]
EC3I
EC3T2SI
EC3T1SI
PWM4CR
FF34H
ENC4O
C4INI
-
C4_S[1:0]
EC4I
EC4T2SI
EC4T1SI
PWM5CR
FF3CH
ENC5O
C5INI
-
C5_S[1:0]
EC5I
EC5T2SI
EC5T1SI
PWM6CR
FF44H
ENC6O
C6INI
-
C6_S[1:0]
EC6I
EC6T2SI
EC6T1SI
PWM7CR
FF4CH
ENC7O
C7INI
-
C7_S[1:0]
EC7I
EC7T2SI
EC7T1SI
B4
B3
C0_S[1:0]:增强型 PWM 通道 0 输出脚选择位
C0_S[1:0]
PWM0
00
P2.0
01
P1.0
10
P6.0
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 563 -
STC8A8K64D4 系列技术手册
11
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
保留
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
11
保留
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
保留
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 564 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
19.2 PWM 相关的寄存器
位地址与符号
符号
描述
地址
复位值
B7
B6
B5
B4
B3
B2
B1
B0
ENPWM
PWMSET
增强型 PWM 全局配置寄存器 F1H
-
PWMRST
-
-
-
-
-
PWMCFG
增强型 PWM 配置寄存器
-
-
-
-
PWMCBIF
EPWMCBI
ENPWMTA
F6H
x0xx,xxx0
PWMCEN xxxx,0000
位地址与符号
符号
描述
地址
复位值
B7
PWMCH
PWM 计数器高字节
FF00H
PWMCL
PWM 计数器低字节
FF01H
PWM 时钟选择
FF02H
-
PWMTADCH PWM 触发 ADC 计数高字节
FF03H
-
PWMTADCL PWM 触发 ADC 计数低字节
FF04H
PWMCKS
B6
B5
B4
B3
B2
B1
B0
-
x000,0000
0000,0000
-
-
SELT2
PWM_PS[3:0]
xxx0,0000
x000,0000
0000,0000
PWM 中断标志寄存器
FF05H
C7IF
C6IF
C5IF
C4IF
C3IF
C2IF
C1IF
C0IF
0000,0000
PWMFDCR
PWM 异常检测控制寄存器
FF06H
INVCMP
INVIO
ENFD
FLTFLIO
EFDI
FDCMP
FDIO
FDIF
0000,0000
PWM0T1H
PWM0T1 计数值高字节
FF10H
-
PWM0T1L
PWM0T1 计数值低字节
FF11H
PWM0T2H
PWM0T2 计数值高字节
FF12H
PWM0T2L
PWM0T2 计数值低字节
FF13H
PWM0CR
PWM0 控制寄存器
FF14H
ENO
INI
-
C0_S[1:0]
PWM0HLD
PWM0 电平保持控制寄存器
FF15H
-
-
-
-
PWM1T1H
PWM1T1 计数值高字节
FF18H
-
PWM1T1L
PWM1T1 计数值低字节
FF19H
PWM1T2H
PWM1T2 计数值高字节
FF1AH
PWM1T2L
PWM1T2 计数值低字节
FF1BH
PWM1CR
PWM1 控制寄存器
FF1CH
ENO
INI
-
C1_S[1:0]
PWM1HLD
PWM1 电平保持控制寄存器
FF1DH
-
-
-
-
PWM2T1H
PWM2T1 计数值高字节
FF20H
-
PWM2T1L
PWM2T1 计数值低字节
FF21H
PWM2T2H
PWM2T2 计数值高字节
FF22H
PWM2T2L
PWM2T2 计数值低字节
FF23H
PWM2CR
PWM2 控制寄存器
FF24H
ENO
INI
-
C2_S[1:0]
PWM2HLD
PWM2 电平保持控制寄存器
FF25H
-
-
-
-
PWM3T1H
PWM3T1 计数值高字节
FF28H
-
PWM3T1L
PWM3T1 计数值低字节
FF29H
PWM3T2H
PWM3T2 计数值高字节
FF2AH
PWM3T2L
PWM3T2 计数值低字节
FF2BH
PWM3CR
PWM3 控制寄存器
FF2CH
ENO
INI
-
C3_S[1:0]
PWM3HLD
PWM3 电平保持控制寄存器
FF2DH
-
-
-
-
PWM4T1H
PWM4T1 计数值高字节
FF30H
-
PWM4T1L
PWM4T1 计数值低字节
FF31H
PWM4T2H
PWM4T2 计数值高字节
FF32H
PWM4T2L
PWM4T2 计数值低字节
FF33H
PWMIF
深圳国芯人工智能有限公司
x000,0000
0000,0000
-
x000,0000
0000,0000
-
ENI
ENT2I
ENT1I
00xx,x000
-
HLDH
HLDL
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
-
ENI
ENT2I
ENT1I
00xx,x000
-
HLDH
HLDL
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
-
ENI
ENT2I
ENT1I
00xx,x000
-
HLDH
HLDL
xxxx,xx00
x000,0000
0000,0000
-
x000,0000
0000,0000
-
ENI
ENT2I
ENT1I
00xx,x000
-
HLDH
HLDL
xxxx,xx00
x000,0000
0000,0000
-
国内分销商电话: 0513-5501 2928/2929/2966
x000,0000
0000,0000
传真: 0513-5501 2926/2956/2947
- 565 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
PWM4 控制寄存器
FF34H
ENO
INI
-
C4_S[1:0]
PWM4HLD
PWM4 电平保持控制寄存器
FF35H
-
-
-
-
PWM5T1H
PWM5T1 计数值高字节
FF38H
-
PWM5T1L
PWM5T1 计数值低字节
FF39H
PWM5T2H
PWM5T2 计数值高字节
FF3AH
PWM5T2L
PWM5T2 计数值低字节
FF3BH
PWM5CR
PWM5 控制寄存器
FF3CH
ENO
INI
-
C5_S[1:0]
PWM5HLD
PWM5 电平保持控制寄存器
FF3DH
-
-
-
-
PWM6T1H
PWM6T1 计数值高字节
FF40H
-
PWM6T1L
PWM6T1 计数值低字节
FF41H
PWM6T2H
PWM6T2 计数值高字节
FF42H
PWM6T2L
PWM6T2 计数值低字节
FF43H
PWM6CR
PWM6 控制寄存器
FF44H
ENO
INI
-
C6_S[1:0]
PWM6HLD
PWM6 电平保持控制寄存器
FF45H
-
-
-
-
PWM7T1H
PWM7T1 计数值高字节
FF48H
-
PWM7T1L
PWM7T1 计数值低字节
FF49H
PWM7T2H
PWM7T2 计数值高字节
FF4AH
PWM7T2L
PWM7T2 计数值低字节
FF4BH
PWM7CR
PWM7 控制寄存器
FF4CH
ENO
INI
-
C7_S[1:0]
PWM7 电平保持控制寄存器
FF4DH
-
-
-
-
PWM4CR
PWM7HLD
19.2.1
选型顾问: 13922805190
ENI
ENT2I
ENT1I
00xx,x000
-
HLDH
HLDL
xxxx,xx00
-
x000,0000
0000,0000
-
x000,0000
0000,0000
ENI
ENT2I
ENT1I
00xx,x000
-
HLDH
HLDL
xxxx,xx00
-
x000,0000
0000,0000
-
x000,0000
0000,0000
ENI
ENT2I
ENT1I
00xx,x000
-
HLDH
HLDL
xxxx,xx00
-
x000,0000
0000,0000
-
x000,0000
0000,0000
ENI
ENT2I
ENT1I
00xx,x000
-
HLDH
HLDL
xxxx,xx00
-
增强型 PWM 全局配置寄存器(PWMSET)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMSET
F1H
-
PWMRST
-
-
-
-
-
ENPWM
PWMRST:软件复位 PWM。
0:无效
1:复位所有 PWM 的 XFR 寄存器,但不复位 SFR。(需要软件清零)
ENPWM0:PWM 使能位(包括 PWM0~PWM7)。
0:关闭 PWM
1:使能 PWM
19.2.2
增强型 PWM 配置寄存器(PWMCFG)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMCFG
F6H
-
-
-
-
PWMCBIF
EPWMCBI
ENPWMTA
PWMCEN
PWMCBIF:PWM 计数器归零中断标志位。
当 15 位的 PWM 计数器记满溢出归零时,硬件自动将此位置 1,并向 CPU 提出中断请求,此标志
位需要软件清零。
EPWMCBI:PWM 计数器归零中断使能位。
0:关闭 PWM 计数器归零中断(PWMCBIF 依然会被硬件置位)
1:使能 PWM 计数器归零中断
EPWMTA:PWM 是否与 ADC 关联。
0:PWM 与 ADC 不关联
1:PWM 与 ADC 相关联。
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 566 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
允许在 PWM 周期中某个时间点触发 A/D 转换,使用 PWMTADCH 和 PWMTADCL 进行设置。
(注意:需要同时使能 ADC_CONTR 寄存器中的 ADC_POWER 位和 ADC_EPWMT 位,PWM
只是会自动将 ADC_START 置 1)
PWMCEN: PWM 波形发生器开始计数。
0:PWM 停止计数
1:PWM 计数器开始计数
关于 PWMCEN 控制位的重要说明:
PWMCEN 一旦被使能后,内部的 PWM 计数器会立即开始计数,并与 T1/T2 的值进行比较。所
以 PWMCEN 必须在其他所有的 PWM 设置(包括 T1/T2 的设置、初始电平的设置、PWM 异常
检测的设置以及 PWM 中断设置)都完成后,最后才能使能 PWMCEN 位。
在 PWM 计数器计数的过程中,PWMCEN 控制位被关闭时,PWM 计数会立即停止,当再次使
能 PWMCEN 控制位时,PWM 的计数会从 0 开始重新计数,而不会记忆 PWM 停止计数前的计
数值
特别注意:当 PWMCEN 由 0 变为 1 时,内部的 PWM 计数器是从之前的不确定值归零后重新
开始计数,所以此时会产生立即产生一个归零中断,当用户需要使用 PWM 的归零中断时,需
特别注意这一点,即第一个归零中断并不是真正的 PWM 周期记满后归零所产生的。
19.2.3
PWM 中断标志寄存器(PWMIF)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMIF
FF05H
C7IF
C6IF
C5IF
C4IF
C3IF
C2IF
C1IF
C0IF
CiIF:PWM 的第 i 通道中断标志位。(i=0~7)
可设置在各路 PWM 的 T1 和 T2。当所设置的点发生匹配事件时,硬件自动将此位置 1,并向 CPU
提出中断请求,此标志位需要软件清零。
19.2.4
PWM 异常检测控制寄存器(PWMnFDCR)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWMFDCR
FF06H
INVCMP
INVIO
ENFD
FLTFLIO
EFDI
FDCMP
FDIO
FDIF
INVCMP:比较器器结果异常信号处理
0:比较器器结果由低变高为异常信号
1:比较器器结果由高变低为异常信号
INVIO:外部 PWMFLT 端口异常信号处理
0:外部 PWMFLT 端口信号由低变高为异常信号
1:外部 PWMFLT 端口信号由高变低为异常信号
ENFD:PWM 外部异常检测控制位。
0:关闭 PWM 外部异常检测功能
1:使能 PWM 外部异常检测功能
FLTFLIO:发生 PWM 外部异常时对 PWM 输出口控制位。
0:发生 PWM 外部异常时,PWM 的输出口不作任何改变
1:发生 PWM 外部异常时,PWM 的输出口立即被设置为高阻输入模式。
(注:只有 ENO=1 所对应的端口才会被强制悬空)
EFDI:PWM 异常检测中断使能位。
0:关闭 PWM 异常检测中断(FDIF 依然会被硬件置位)
1:使能 PWM 异常检测中断
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 567 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
FDCMP:比较器输出异常检测使能位。
0:比较器与 PWM 无关
1:设定 PWM 异常检测源为比较器输出(异常类型由 INVCMP 设定)
FDIO:PWMFLT 端口电平异常检测使能位。
0:PWMFLT 端口电平与 PWM 无关
1:设定 PWM 异常检测源为 PWMFLT 端口(异常类型由 INVIO 设定)
FDIF:PWM 异常检测中断标志位。
当发生 PWM 异常时,硬件自动将此位置 1。当 EFDI==1 时,程序会跳转到相应中断入口执行中断
服务程序。需要软件清零。
PWM 计数器寄存器(PWMCH,PWMCL)
19.2.5
符号
地址
B7
PWMCH
FF00H
-
PWMCL
FF01H
B6
B5
B4
B3
B2
B1
B0
PWMnCH:PWMn 计数器周期值的高 7 位。(n=0~5)
PWMnCL:PWMn 计数器周期值的低 8 位。(n=0~5)
PWM 计数器为一个 15 位的寄存器,可设定 1~32767 之间的任意值作为 PWM 的周期。PWM 波形发生
器内部的计数器从 0 开始计数,每个 PWM 时钟周期递增 1,当内部计数器的计数值达到[PWMCH,
PWMCL]所设定的 PWM 周期时,PWM 波形发生器内部的计数器将会从 0 重新开始开始计数,硬
件会自动将 PWM 归零中断中断标志位 PWMCBIF 置 1,若 EPWMCBI=1,程序将跳转到相应中断
入口执行中断服务程序。
PWM 时钟选择寄存器(PWMCKS),输出频率计算公式
19.2.6
符号
地址
B7
B6
B5
B4
PWMCKS
FF02H
-
-
-
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
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 568 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
PWM 输出频率计算公式
时钟源选择(SELT2)
PWM输出频率计算公式
SELT2=0
PWM输出频率 =
(系统时钟)
SELT2=1
PWM输出频率 =
(定时器2的溢出脉冲)
19.2.7
系统工作频率SYSclk
(PWM_PS + 1)×( [PWMCH, PWMCL] + 1)
定时器2的溢出脉冲频率
( [PWMCH, PWMCL] + 1)
PWM 触发 ADC 计数器寄存器(PWMTADC)
符号
地址
B7
PWMTADCH
FF03H
-
PWMTADCL
FF04H
B6
B5
B4
B3
B2
B1
B0
PWMTADCH:PWM 触发 ADC 时间点的高 7 位。
PWMTADCL:PWM 触发 ADC 时间点的低 8 位。
若 EPWMTA =1 且 ADC_POWER=1,ADC_EPWMT=1 时,在 PWM 的计数周期中,当 PWM 的内部计数
值与{PWMTADCH, PWMTADCL}所组成一个 15 位的寄存器的值相等时,硬件自动触发 A/D 转换。
19.2.8
PWM 电平输出设置计数值寄存器(PWMnT1,PWMnT2)
符号
地址
B7
PWM0T1H
FF10H
-
PWM0T1L
FF11H
PWM0T2H
FF12H
PWM0T2L
FF13H
PWM1T1H
FF18H
PWM1T1L
FF19H
PWM1T2H
FF1AH
PWM1T2L
FF1BH
PWM2T1H
FF20H
PWM2T1L
FF21H
PWM2T2H
FF22H
PWM2T2L
FF23H
PWM3T1H
FF28H
PWM3T1L
FF29H
PWM3T2H
FF2AH
PWM3T2L
FF2BH
PWM4T1H
FF30H
PWM4T1L
FF31H
PWM4T2H
FF32H
深圳国芯人工智能有限公司
B6
B5
B4
B3
B2
B1
B0
-
-
-
-
-
-
-
-
-
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 569 -
STC8A8K64D4 系列技术手册
PWM4T2L
FF33H
PWM5T1H
FF38H
PWM5T1L
FF39H
PWM5T2H
FF3AH
PWM5T2L
FF3BH
PWM6T1H
FF40H
PWM6T1L
FF41H
PWM6T2H
FF42H
PWM6T2L
FF43H
PWM7T1H
FF48H
PWM7T1L
FF49H
PWM7T2H
FF4AH
PWM7T2L
FF4BH
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
-
-
-
-
-
-
PWMiT1H:PWM 的通道 i 的 T1 计数器值的高 7 位。(i=0~7)
PWMiT1L:PWM 的通道 i 的 T1 计数器值的低 8 位。(i=0~7)
PWMiT2H:PWM 的通道 i 的 T2 计数器值的高 7 位。(i=0~7)
PWMiT2L:PWM 的通道 i 的 T2 计数器值的低 8 位。(i=0~7)
每组 PWM 的每个通道的{PWMiT1H, PWMiT1L}和{PWMiT2H, PWMiT2L}分别组合成两个 15 位的寄存
器,用于控制各路 PWM 每个周期中输出 PWM 波形的两个触发点。在 PWM 的计数周期中,当 PWM
的内部计数值与所设置的 T1 的值{PWMiT1H, PWMiT1L}相等时,PWM 的输出低电平;当 PWM 的
内部计数值与 T2 的值{PWMiT2H, PWMiT2L}相等时,PWM 的输出高电平。
注意:当{PWMiT1H, PWMiT1L}与{PWMiT2H, PWMiT2L}的值设置相等时,若 PWM 的内部计数值与
所设置的 T1/T2 的值相等,则会固定输出低电平。
19.2.9
PWM 通道控制寄存器(PWMnCR)
符号
地址
B7
B6
B5
PWM0CR
FF14H
ENO
INI
-
PWM1CR
FF1CH
ENO
INI
PWM2CR
FF24H
ENO
PWM3CR
FF2CH
PWM4CR
B4
B3
B2
B1
B0
C0_S[1:0]
ENI
ENT2I
ENT1I
-
C1_S[1:0]
ENI
ENT2I
ENT1I
INI
-
C2_S[1:0]
ENI
ENT2I
ENT1I
ENO
INI
-
C3_S[1:0]
ENI
ENT2I
ENT1I
FF34H
ENO
INI
-
C4_S[1:0]
ENI
ENT2I
ENT1I
PWM5CR
FF3CH
ENO
INI
-
C5_S[1:0]
ENI
ENT2I
ENT1I
PWM6CR
FF44H
ENO
INI
-
C6_S[1:0]
ENI
ENT2I
ENT1I
PWM7CR
FF4CH
ENO
INI
-
C7_S[1:0]
ENI
ENT2I
ENT1I
ENO:PWMi 输出使能位。(i=0~7)
0:PWM 的 i 通道相应 PWMi 端口为 GPIO
1:PWM 的 i 通道相应 PWMi 端口为 PWM 输出口,受 PWM 波形发生器控制
INI:设置 PWMi 输出端口的初始电平。(i=0~7)
0:PWM 的 i 通道初始电平为低电平
1:PWM 的 i 通道初始电平为高电平
Ci_S[1:0]:切换 PWMi 输出端口(i=0~7)
详情见“功能脚切换”章节
ENI: PWM 的 i 通道中断使能控制位。
(i=0~7)
0:关闭 PWM 的 i 通道的 PWM 中断
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 570 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
1:使能 PWM 的 i 通道的 PWM 中断
ENT2I:PWM 的 i 通道在第 2 个触发点中断使能控制位。(i=0~7)
0:关闭 PWM 的 i 通道在第 2 个触发点中断
1:使能 PWM 的 i 通道在第 2 个触发点中断
ENT1I:PWM 的 i 通道在第 1 个触发点中断使能控制位。(i=0~7)
0:关闭 PWM 的 i 通道在第 1 个触发点中断
1:使能 PWM 的 i 通道在第 1 个触发点中断
19.2.10 PWM 通道电平保持控制寄存器(PWMnHLD)
符号
地址
B7
B6
B5
B4
B3
B2
B1
B0
PWM0HLD
FF15H
-
-
-
-
-
-
HLDH
HLDL
PWM1HLD
FF1DH
-
-
-
-
-
-
HLDH
HLDL
PWM2HLD
FF25H
-
-
-
-
-
-
HLDH
HLDL
PWM3HLD
FF2DH
-
-
-
-
-
-
HLDH
HLDL
PWM4HLD
FF35H
-
-
-
-
-
-
HLDH
HLDL
PWM5HLD
FF3DH
-
-
-
-
-
-
HLDH
HLDL
PWM6HLD
FF45H
-
-
-
-
-
-
HLDH
HLDL
PWM7HLD
FF4DH
-
-
-
-
-
-
HLDH
HLDL
HLDH:PWM 的 i 通道强制输出高电平控制位。
(i=0~7)
0:PWM 的 i 通道正常输出
1:PWM 的 i 通道强制输出高电平
HLDL:PWM 的 i 通道强制输出低电平控制位。
(i=0~7)
0:PWM 的 i 通道正常输出
1:PWM 的 i 通道强制输出低电平
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 571 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
19.3 范例程序
输出任意周期和任意占空比的波形
19.3.1
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
sfr
P_SW2
=
0xba;
sfr
sfr
PWMSET
PWMCFG
=
=
0xF1;
0xF6;
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
PWMC
PWMCH
PWMCL
PWMCKS
PWMTADC
PWMTADCH
PWMTADCL
PWMIF
PWMFDCR
PWM0T1
PWM0T1H
PWM0T1L
PWM0T2H
PWM0T2
PWM0T2L
PWM0CR
PWM0HLD
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
(*(unsigned int volatile xdata *)0xFF00)
(*(unsigned char volatile xdata *)0xFF00)
(*(unsigned char volatile xdata *)0xFF01)
(*(unsigned char volatile xdata *)0xFF02)
(*(unsigned int volatile xdata *)0xFF03)
(*(unsigned char volatile xdata *)0xFF03)
(*(unsigned char volatile xdata *)0xFF04)
(*(unsigned char volatile xdata *)0xFF05)
(*(unsigned char volatile xdata *)0xFF06)
(*(unsigned int volatile xdata *)0xFF10)
(*(unsigned char volatile xdata *)0xFF10)
(*(unsigned char volatile xdata *)0xFF11)
(*(unsigned char volatile xdata *)0xFF12)
(*(unsigned int volatile xdata *)0xFF12)
(*(unsigned char volatile xdata *)0xFF13)
(*(unsigned char volatile xdata *)0xFF14)
(*(unsigned char volatile xdata *)0xFF15)
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 572 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
PWMSET = 0x01;
//使能 PWM 模块(必须先使能模块后面的设置才有效)
P_SW2 = 0x80;
PWMCKS = 0x00;
PWMC = 0x1000;
PWM0T1= 0x0100;
PWM0T2= 0x0500;
PWM0CR= 0x80;
P_SW2 = 0x00;
//PWM 时钟为系统时钟
//设置 PWM 周期为 1000H 个 PWM 时钟
//在计数值为 100H 地方 PWM0 通道输出低电平
//在计数值为 500H 地方 PWM0 通道输出高电平
//使能 PWM0 输出
PWMCFG = 0x01;
//启动 PWM 模块
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
PWMSET
PWMCFG
DATA
DATA
0F1H
0F6H
PWMCH
PWMCL
PWMCKS
PWMTADCH
PWMTADCL
PWMIF
PWMFDCR
PWM0T1H
PWM0T1L
PWM0T2H
PWM0T2L
PWM0CR
PWM0HLD
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0FF00H
0FF01H
0FF02H
0FF03H
0FF04H
0FF05H
0FF06H
0FF10H
0FF11H
0FF12H
0FF13H
0FF14H
0FF15H
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 573 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
PWMSET,#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,#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
PWMCFG,#01H
JMP
$
;使能 PWM 模块(必须先使能模块后面的设置才有效)
;PWM 时钟为系统时钟
;设置 PWM 周期为 1000H 个 PWM 时钟
;在计数值为 100H 地方 PWM0 通道输出低电平
;在计数值为 500H 地方 PWM0 通道输出高电平
;使能 PWM0 输出
;启动 PWM 模块
END
19.3.2
两路 PWM 实现互补对称带死区控制的波形
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 574 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
#include "intrins.h"
sfr
P_SW2
=
0xba;
sfr
sfr
PWMSET
PWMCFG
=
=
0xF1;
0xF6;
#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
PWMCH
PWMCL
PWMCKS
PWMTADC
PWMTADCH
PWMTADCL
PWMIF
PWMFDCR
PWM0T1
PWM0T1H
PWM0T1L
PWM0T2
PWM0T2H
PWM0T2L
PWM0CR
PWM0HLD
PWM1T1
PWM1T1H
PWM1T1L
PWM1T2
PWM1T2H
PWM1T2L
PWM1CR
PWM1HLD
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
P5M1
P5M0
(*(unsigned int volatile xdata *)0xFF00)
(*(unsigned char volatile xdata *)0xFF00)
(*(unsigned char volatile xdata *)0xFF01)
(*(unsigned char volatile xdata *)0xFF02)
(*(unsigned int volatile xdata *)0xFF03)
(*(unsigned char volatile xdata *)0xFF03)
(*(unsigned char volatile xdata *)0xFF04)
(*(unsigned char volatile xdata *)0xFF05)
(*(unsigned char volatile xdata *)0xFF06)
(*(unsigned int volatile xdata *)0xFF10)
(*(unsigned char volatile xdata *)0xFF10)
(*(unsigned char volatile xdata *)0xFF11)
(*(unsigned int volatile xdata *)0xFF12)
(*(unsigned char volatile xdata *)0xFF12)
(*(unsigned char volatile xdata *)0xFF13)
(*(unsigned char volatile xdata *)0xFF14)
(*(unsigned char volatile xdata *)0xFF15)
(*(unsigned int volatile xdata *)0xFF18)
(*(unsigned char volatile xdata *)0xFF18)
(*(unsigned char volatile xdata *)0xFF19)
(*(unsigned int volatile xdata *)0xFF1A)
(*(unsigned char volatile xdata *)0xFF1A)
(*(unsigned char volatile xdata *)0xFF1B)
(*(unsigned char volatile xdata *)0xFF1C)
(*(unsigned char volatile xdata *)0xFF1D)
=
=
=
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
0xb4;
0xc9;
0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 575 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
选型顾问: 13922805190
P5M1 = 0x00;
PWMSET = 0x01;
//使能 PWM 模块(必须先使能模块后面的设置才有效)
P_SW2 = 0x80;
PWMCKS = 0x00;
PWMC = 0x0800;
PWM0T1= 0x0100;
PWM0T2= 0x0700;
PWM1T2= 0x0080;
PWM1T1= 0x0780;
PWM0CR= 0x80;
PWM1CR= 0x80;
P_SW2 = 0x00;
//PWM 时钟为系统时钟
//设置 PWM 周期为 0800H 个 PWM 时钟
//PWM0 在计数值为 100H 地方输出低电平
//PWM0 在计数值为 700H 地方输出高电平
//PWM1 在计数值为 0080H 地方输出高电平
//PWM1 在计数值为 0780H 地方输出低电平
//使能 PWM0 输出
//使能 PWM1 输出
PWMCFG = 0x01;
//启动 PWM 模块
while (1);
}
汇编代码
;测试工作频率为 11.0592MHz
P_SW2
DATA
0BAH
PWMSET
PWMCFG
DATA
DATA
0F1H
0F6H
PWMCH
PWMCL
PWMCKS
PWMTADCH
PWMTADCL
PWMIF
PWMFDCR
PWM0T1H
PWM0T1L
PWM0T2H
PWM0T2L
PWM0CR
PWM0HLD
PWM1T1H
PWM1T1L
PWM1T2H
PWM1T2L
PWM1CR
PWM1HLD
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0FF00H
0FF01H
0FF02H
0FF03H
0FF04H
0FF05H
0FF06H
0FF10H
0FF11H
0FF12H
0FF13H
0FF14H
0FF15H
0FF18H
0FF19H
0FF1AH
0FF1BH
0FF1CH
0FF1DH
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
P4M0
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
093H
094H
091H
092H
095H
096H
0B1H
0B2H
0B3H
0B4H
深圳国芯人工智能有限公司
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 576 -
STC8A8K64D4 系列技术手册
P5M1
P5M0
官方网站: www.STCMCUDATA.com
DATA
DATA
0C9H
0CAH
ORG
LJMP
0000H
MAIN
ORG
0100H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP, #5FH
P0M0, #00H
P0M1, #00H
P1M0, #00H
P1M1, #00H
P2M0, #00H
P2M1, #00H
P3M0, #00H
P3M1, #00H
P4M0, #00H
P4M1, #00H
P5M0, #00H
P5M1, #00H
MOV
PWMSET,#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
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
技术支持: 19864585985
选型顾问: 13922805190
MAIN:
深圳国芯人工智能有限公司
;使能 PWM 模块(必须先使能模块后面的设置才有效)
;PWM 时钟为系统时钟
;设置 PWM 周期为 0800H 个 PWM 时钟
;PWM0 在计数值为 0100H 地方输出低电平
;PWM0 在计数值为 0700H 地方输出高电平
;PWM1 在计数值为 0080H 地方输出高电平
;PWM1 在计数值为 0780H 地方输出低电平
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 577 -
STC8A8K64D4 系列技术手册
官方网站: www.STCMCUDATA.com
技术支持: 19864585985
MOV
MOVX
MOV
MOV
MOVX
MOV
DPTR,#PWM0CR
@DPTR,A
A,#80H
DPTR,#PWM1CR
@DPTR,A
P_SW2,#00H
;使能 PWM0 输出
MOV
PWMCFG,#01H
;启动 PWM 模块
JMP
$
选型顾问: 13922805190
;使能 PWM1 输出
END
PWM 实现渐变灯(呼吸灯)
19.3.3
C 语言代码
//测试工作频率为 11.0592MHz
#include "reg51.h"
#include "intrins.h"
#define
CYCLE
sfr
P_SW2
=
0xba;
sfr
sfr
PWMSET
PWMCFG
=
=
0xF1;
0xF6;
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
PWMC
PWMCH
PWMCL
PWMCKS
PWMTADC
PWMTADCH
PWMTADCL
PWMIF
PWMFDCR
PWM0T1
PWM0T1H
PWM0T1L
PWM0T2H
PWM0T2
PWM0T2L
PWM0CR
PWM0HLD
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
sfr
P0M1
P0M0
P1M1
P1M0
P2M1
P2M0
P3M1
P3M0
P4M1
深圳国芯人工智能有限公司
0x1000
(*(unsigned int volatile xdata *)0xFF00)
(*(unsigned char volatile xdata *)0xFF00)
(*(unsigned char volatile xdata *)0xFF01)
(*(unsigned char volatile xdata *)0xFF02)
(*(unsigned int volatile xdata *)0xFF03)
(*(unsigned char volatile xdata *)0xFF03)
(*(unsigned char volatile xdata *)0xFF04)
(*(unsigned char volatile xdata *)0xFF05)
(*(unsigned char volatile xdata *)0xFF06)
(*(unsigned int volatile xdata *)0xFF10)
(*(unsigned char volatile xdata *)0xFF10)
(*(unsigned char volatile xdata *)0xFF11)
(*(unsigned char volatile xdata *)0xFF12)
(*(unsigned int volatile xdata *)0xFF12)
(*(unsigned char volatile xdata *)0xFF13)
(*(unsigned char volatile xdata *)0xFF14)
(*(unsigned char volatile xdata *)0xFF15)
=
=
=
=
=
=
=
=
=
0x93;
0x94;
0x91;
0x92;
0x95;
0x96;
0xb1;
0xb2;
0xb3;
国内分销商电话: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 578 -
STC8A8K64D4 系列技术手册
sfr
sfr
sfr
P4M0
P5M1
P5M0
官方网站: www.STCMCUDATA.com
=
=
=
技术支持: 19864585985
选型顾问: 13922805190
0xb4;
0xc9;
0xca;
void PWM0_Isr() interrupt 22
{
static bit dir = 1;
static int val = 0;
if (PWMCFG & 0x08)
{
PWMCFG &= ~0x08;
if (dir)
{
val++;
if (val >= CYCLE) dir = 0;
}
else
{
val--;
if (val