HCS08中文手册
0赞
目 录
第一章 通用信息与结构框图................................................................................................ 1
1.1 HCS08 系列微控制器介绍........................................................................................... 1
1.2 HCS08 CPU编程模型................................................................................................... 2
1.3 外设模块....................................................................................................................... 2
1.4 MC9S08GB60 的特点................................................................................................... 3
1.4.1 HCS08 系列的共性................................................................................................ 3
1.4.2 MC9S08GB60 的特点............................................................................................ 3
1.5 MC9S08GB60 的结构框图........................................................................................... 4
第二章引脚及其连接............................................................................................................ 5
2.1 简介............................................................................................................................... 5
2.2 推荐的系统连接........................................................................................................... 5
2.2.1 电源........................................................................................................................ 7
2.2.2 MC9S08GB60 振荡器............................................................................................ 7
2.2.3 复位........................................................................................................................ 8
2.2.4 背景/模式选择(BKGD/MS).................................................................................. 8
2.2.5 通用I/O及外设端口............................................................................................... 8
第三章工作模式.................................................................................................................. 10
3.1 简介............................................................................................................................. 10
3.2 特征............................................................................................................................. 10
3.3 运行模式..................................................................................................................... 10
3.4 背景调试模式..............................................................................................................11
3.5 等待模式..................................................................................................................... 12
3.6 停止模式..................................................................................................................... 12
3.6.1 Stop1 模式............................................................................................................. 13
3.6.2 Stop2 模式............................................................................................................. 13
3.6.3 Stop3 模式............................................................................................................. 14
3.6.4 停止模式下激活BDM使能................................................................................. 14
3.6.5 设置OSCSTEN位................................................................................................ 15
3.6.6 停止模式下LVD使能.......................................................................................... 15
3.6.7 停止模式下的片上外设模块.............................................................................. 15
3.6.8 系统选择寄存器(SOPT)...................................................................................... 17
3.6.9 系统电源管理状态和控制寄存器1(SPMSC1).................................................. 18
3.6.10 系统电源管理状态和控制寄存器2(SPMSC2)................................................ 19
第四章片上存储器.............................................................................................................. 21
4.1 简介............................................................................................................................. 21
4.2 HCS08 核定义的存储器组织..................................................................................... 21
4.2.1 HCS08 存储器组织.............................................................................................. 21
4.2.2 MC9S08GB60 存储映像...................................................................................... 22
4.2.3 复位和中断向量表.............................................................................................. 23
4.3 寄存器地址和位分配................................................................................................. 24
4.4 RAM............................................................................................................................ 29
4.5 60K字节的FLASH ...................................................................................................... 29
4.5.1 特征...................................................................................................................... 30
4.5.2 写入、擦除和空白检测命令.............................................................................. 30
4.5.3 命令时间和突发模式写入.................................................................................. 32
4.5.3.1 行和FLASH的组织结构.............................................................................. 32
4.5.3.2 程序命令时序............................................................................................... 33
4.5.4 访问错误.............................................................................................................. 34
4.5.5 向量重定向.......................................................................................................... 34
4.5.6 FLASH块保护(MC9S08GB60)............................................................................ 34
4.6 MC9S08GB60 的安全性............................................................................................. 35
4.7 MC9S08GB60 的FLASH寄存器和控制位................................................................ 36
4.7.1 FLASH时钟分频寄存器(FCDIV)........................................................................ 36
4.7.2 FLASH选项寄存器(FOPT和NVOPT)................................................................. 37
4.7.3 FLASH配置寄存器(FCNFG)............................................................................... 38
4.7.4 FLASH保护寄存器(FPROT和NVPROT) ........................................................... 38
4.7.5 FLASH状态寄存器(FSTAT) ................................................................................ 39
4.7.6 FLASH命令寄存器(FCMD) ................................................................................ 40
4.8 FLASH存储器应用实例............................................................................................. 41
4.8.1 FLASH模块时钟的初始化.................................................................................. 41
4.8.2 擦除FLASH的一页(512 字节)............................................................................ 42
4.8.3 DoOnStack子程序................................................................................................ 43
4.8.4 SpSub子程序........................................................................................................ 45
4.8.5 FLASH的字节编程.............................................................................................. 46
第五章复位和中断.............................................................................................................. 47
5.1 简介............................................................................................................................. 47
5.2 MC9S08GB60 复位和中断的特征............................................................................. 47
5.3 MCU复位..................................................................................................................... 48
5.4 计算机正常操作监控模块(COP)看门狗................................................................... 48
5.5 中断............................................................................................................................. 48
5.5.1 中断堆栈结构...................................................................................................... 49
5.5.2 外部中断请求(IRQ)引脚.................................................................................... 50
5.5.2.1 引脚配置选项............................................................................................... 50
5.5.2.2 边沿/电平触发.............................................................................................. 50
5.5.3 中断向量、中断源和局部屏蔽.......................................................................... 51
5.6 低电压检测系统(LVD) .............................................................................................. 52
5.6.1 上电复位操作...................................................................................................... 52
5.6.2 LVD复位操作....................................................................................................... 52
5.6.3 LVD中断操作....................................................................................................... 53
5.6.4 低电压警告(LVW)............................................................................................... 53
5.7 实时中断(RTI) ............................................................................................................ 53
5.8 复位、中断以及系统控制寄存器和控制位............................................................. 53
5.8.1 中断请求状态和控制寄存器(IRQSC)................................................................ 54
5.8.2 系统复位状态寄存器(SRS) ................................................................................ 55
5.8.3 系统背景调试强制复位寄存器(SBDFR)........................................................... 56
5.8.4 系统选项寄存器(SOPT)...................................................................................... 56
5.8.5 系统设备识别寄存器(SDIDH、SDIDL) ........................................................... 57
5.8.6 系统实时中断状态和控制寄存器(SRTISC) ...................................................... 57
5.8.7 系统电源管理状态控制寄存器1(SPMSC1)...................................................... 58
5.8.8 系统电源管理状态和控制寄存器2(SPMSC2).................................................. 59
第六章中央处理单元.......................................................................................................... 61
6.1 简介............................................................................................................................. 61
6.2 编程结构和CPU寄存器............................................................................................. 61
6.2.1 累加器(A) ............................................................................................................ 62
6.2.2 变址寄存器(H:X) ................................................................................................ 63
6.2.3 堆栈指针(SP)....................................................................................................... 64
6.2.4 程序计数器(PC) .................................................................................................. 66
6.2.5 条件码寄存器(CCR) ........................................................................................... 66
6.3 寻址方式..................................................................................................................... 70
6.3.1 隐含寻址方式(INH) ............................................................................................ 71
6.3.2 相对寻址方式(REL)............................................................................................ 71
6.3.3 立即寻址方式(IMM)........................................................................................... 72
6.3.4 直接寻址方式(DIR) ............................................................................................ 72
6.3.5 扩展寻址方式(EXT)............................................................................................ 72
6.3.6 变址寻址方式...................................................................................................... 73
6.3.6.1 无偏移量变址方式(IX) ................................................................................ 73
6.3.6.2 无偏移量变址、变址加1 寻址方式(IX+) .................................................. 73
6.3.6.3 8 位偏移量变址方式(IX1) ............................................................................ 73
6.3.6.4 8 位偏移量变址、变址加1 寻址方式(IX1+) .............................................. 73
6.3.6.5 16 位偏移量变址方式(IX2) .......................................................................... 73
6.3.6.6 8 位偏移量堆栈寻址方式(SP1) .................................................................... 74
6.3.6.7 16 位偏移量堆栈寻址方式(SP2).................................................................. 74
6.4 特殊操作..................................................................................................................... 75
6.4.1 复位序列.............................................................................................................. 75
6.4.2 中断...................................................................................................................... 76
6.4.3 等待模式.............................................................................................................. 76
6.4.4 停止模式.............................................................................................................. 76
6.4.5 背景模式.............................................................................................................. 77
6.4.6 总线周期的用户观点.......................................................................................... 77
6.5 通过指令类别进行指令集描述................................................................................. 78
6.5.1 数据传送指令...................................................................................................... 78
6.5.1.1 加载与存储................................................................................................... 78
6.5.1.2 位的置位与清零........................................................................................... 81
6.5.1.3 存储器到存储器的传送............................................................................... 82
6.5.1.4 寄存器传输和半字节交换........................................................................... 82
6.5.2 算术运算指令...................................................................................................... 83
6.5.2.1 加、减、乘和除指令................................................................................... 83
6.5.2.2 加一、减一、清零和求补........................................................................... 88
6.5.2.3 比较和测试................................................................................................... 88
6.5.2.4 BCD的计算.................................................................................................... 88
6.5.3 逻辑操作指令...................................................................................................... 89
6.5.3.1 与、或、异或与求补................................................................................... 90
6.5.3.2 位测试指令................................................................................................... 91
6.5.4 移位类指令.......................................................................................................... 91
6.5.5 跳转、转移和循环控制指令.............................................................................. 93
6.5.5.1 无条件跳转和转移指令............................................................................... 94
6.5.5.2 简单转移....................................................................................................... 95
6.5.5.3 有符号转移................................................................................................... 95
6.5.5.4 无符号转移................................................................................................... 95
6.5.5.5 位条件转移................................................................................................... 96
6.5.5.6 循环控制....................................................................................................... 96
6.5.6 相关堆栈指令...................................................................................................... 97
6.5.7 其他各种指令.................................................................................................... 101
6.6 指令简表................................................................................................................... 102
6.7 汇编语言指南............................................................................................................114
6.7.1 列表行.................................................................................................................115
6.7.2 汇编指令.............................................................................................................116
6.7.2.1 BASE——设定编译器的缺省数进制.........................................................116
6.7.2.2 INCLUDE——指定附加源文件..................................................................116
6.7.2.3 NOLIST/LIST——关闭或打开程序列表...................................................116
6.7.2.4 ORG——设置程序的起始位置...................................................................117
6.7.2.5 EQU——把一个标号和一个数值相关联...................................................118
6.7.2.6 dc.b——定义存储器中字节化常量............................................................119
6.7.2.7 dc.w——在存储器中定义16 位(字)常量...................................................119
6.7.2.8 ds.b——定义存储(保留)内存变量字节..................................................... 120
6.7.3 标号.................................................................................................................... 121
6.7.4 表达式................................................................................................................ 122
6.7.5 通用文件协议.................................................................................................... 123
6.7.6 目标代码(S19)文件........................................................................................... 125
第七章开发支持................................................................................................................ 129
7.1 介绍........................................................................................................................... 129
7.2 特点........................................................................................................................... 130
7.3 背景调试控制器(BDC)............................................................................................ 130
7.3.1 BKGD引脚描述.................................................................................................. 131
7.3.2 通信细节............................................................................................................ 132
7.3.2.1 BDC通信速率考虑事项.............................................................................. 132
7.3.2.2 位时序细节................................................................................................. 133
7.3.3 BDC寄存器和控制位......................................................................................... 135
7.3.3.1 BDC状态和控制寄存器.............................................................................. 135
7.3.3.2 BDC断点匹配寄存器.................................................................................. 137
7.3.4 BDC命令............................................................................................................. 137
7.3.4.1 SYNC——要求时序参考脉冲................................................................... 138
7.3.4.2 ACK_ENABLE............................................................................................ 139
7.3.4.3 ACK_DISABLE........................................................................................... 139
7.3.4.4 BACKGROUND.......................................................................................... 139
7.3.4.5 READ_STATUS........................................................................................... 140
7.3.4.6 WRITE_CONTROL .................................................................................... 140
7.3.4.7 READ_BYTE............................................................................................... 141
7.3.4.8 READ_BYTE_WS....................................................................................... 142
7.3.4.9 READ_LAST............................................................................................... 142
7.3.4.10 WRITE_BYTE........................................................................................... 143
7.3.4.11 WRITE_BYTE_WS ................................................................................... 143
7.3.4.12 READ_BKPT............................................................................................. 144
7.3.4.13 WRITE_BKPT ........................................................................................... 144
7.3.4.14 GO .............................................................................................................. 144
7.3.4.15 TRACE1..................................................................................................... 145
7.3.4.16 TAGGO ...................................................................................................... 145
7.3.4.17 READ_A.................................................................................................... 145
7.3.4.18 READ_CCR............................................................................................... 145
7.3.4.19 READ_PC .................................................................................................. 146
7.3.4.20 READ_HX ................................................................................................. 146
7.3.4.21 READ_SP................................................................................................... 147
7.3.4.22 READ_NEXT ............................................................................................ 147
7.3.4.23 READ_NEXT_WS .................................................................................... 148
7.3.4.24 WRITE_A .................................................................................................. 148
7.3.4.25 WRITE_CCR ............................................................................................. 148
7.3.4.26 WRITE_PC ................................................................................................ 149
7.3.4.27 WRITE_HX................................................................................................ 149
7.3.4.28 WRITE_SP................................................................................................. 149
7.3.4.29 WRITE_NEXT........................................................................................... 149
7.3.4.30 WRITE_ NEXT_WS.................................................................................. 150
7.3.5 串行接口硬件握手协议.................................................................................... 150
7.3.6 取消握手协议.................................................................................................... 152
7.3.7 BDC硬件断点..................................................................................................... 155
7.3.8 与M68HC12BDM的不同之处.......................................................................... 155
7.3.8.1 8 位体系结构............................................................................................... 156
7.3.8.2 命令格式..................................................................................................... 156
7.3.8.3 状态位的读写............................................................................................. 156
7.3.8.4 BDM与停止和等待模式............................................................................. 157
7.3.8.5 SYNC指令................................................................................................... 157
7.3.8.6 硬件断点..................................................................................................... 157
7.4 标识部分和BDC强制复位....................................................................................... 158
7.4.1 系统设备识别寄存器(SDIDH:SDIDL) ............................................................ 158
7.4.2 系统背景调试强制复位寄存器........................................................................ 158
7.5 片上调试系统(DBG)................................................................................................ 159
7.5.1 比较器A和B ...................................................................................................... 159
7.5.2 总线信息捕捉和FIFO操作................................................................................ 160
7.5.3 流程改变信息.................................................................................................... 161
7.5.4 标记与强制断点和触发器................................................................................ 161
7.5.5 CPU断点请求..................................................................................................... 162
7.5.6 触发模式............................................................................................................ 162
7.5.6.1 单独A触发模式.......................................................................................... 163
7.5.6.2 A或B触发模式............................................................................................ 163
7.5.6.3 A然后B触发模式........................................................................................ 163
7.5.6.4 事件B触发模式(存储数据)........................................................................ 163
7.5.6.5 A然后事件B触发模式(存储数据).............................................................. 163
7.5.6.6 A和B数据触发(全模式).............................................................................. 164
7.5.6.7 A与非B数据触发(全模式).......................................................................... 164
7.5.6.8 触发范围内:A≤地址≤B .................................................................... 164
7.5.6.9 触发范围外:地址<A 或者 地址>B....................................................... 164
7.5.7 DBG寄存器和控制位......................................................................................... 165
7.5.7.1 调试比较器A的高地址页寄存器(DBGCAH).......................................... 165
7.5.7.2 调试比较器A的低位寄存器(DBGCAL).................................................. 165
7.5.7.3 调试比较器B的高地址页寄存器(DBGCAH)........................................... 165
7.5.7.4 调试比较器B的低位寄存器(DBGCAL) ................................................... 165
7.5.7.5 调试FIFO高地址页寄存器(DBGFH) ........................................................ 165
7.5.7.6 调试FIFO低位寄存器(DBGFL)................................................................. 165
7.5.7.7 调试控制寄存器(DBGC) ........................................................................... 166
7.5.7.8 调试触发寄存器(DBGT) ........................................................................... 167
7.5.7.9 调试状态寄存器(DBGS)............................................................................ 168
7.5.8 应用信息与举例................................................................................................ 169
7.5.8.1 定向的调试器例子..................................................................................... 171
7.5.8.2 例1:终止对地址A的处理....................................................................... 171
7.5.8.3 例2:终止对地址A指令的处理............................................................... 172
7.5.8.4 例3:终止在地址A或B上的指令处理..................................................... 172
7.5.8.5 例4:开始跟踪在地址A的指令............................................................... 173
7.5.8.6 例5:A到B顺序后停止的尾部跟踪......................................................... 173
7.5.8.7 例6:起始跟踪数据B写入地址A............................................................. 174
7.5.8.8 例7:从地址B中读取被捕获的首八位数据............................................ 174
7.5.8.9 例8:捕获在读地址A后写入到地址B的值............................................. 175
7.5.8.10 例9:在一个例程中触发所有的执行命令............................................ 175
7.5.8.11 例10:通过触发来试图处理外部FLASH.............................................. 176
7.5.9 硬件断点和ROM修补....................................................................................... 176
附录A 指令集详述............................................................................................................. 177
A.1 引言.......................................................................................................................... 177
A.2 命名规则.................................................................................................................. 177
A.3 规范定义.................................................................................................................. 180
A.4 指令集...................................................................................................................... 180
ADC Add with Carry(带进位位加).......................................................................... 180
ADD Add without Carry(无进位位加)..................................................................... 181
AIS Add Immediate Value to Stack Pointer(立即数加到SP) ................................... 182
AIX Add Immediate Value to Index Register(立即数加到HX) ............................... 182
AND Logical AND(逻辑与) ..................................................................................... 183
ASL Arithmetic Shift Left(算术左移) ...................................................................... 184
ASR Arithmetic Shift Right(算术右移).................................................................... 184
BCC Branch if Carry Bit Clear(C为0 则转移) ........................................................ 185
BCLR n Clear Bit n in Memory(内存单元n位清零)................................................ 185
BCS Branch if Carry Bit Set(C为1 则转移) ............................................................ 186
BEQ Branch if Equal(等于则转移) .......................................................................... 187
BGE Branch if Greater Than or Equal To(大于或等于则转移)............................... 187
BGND Background(进入背景调试模式)................................................................. 188
BGT Branch if Greater Than(大于则转移) .............................................................. 188
BHCC Branch if Half Carry Bit Clear(H为0 则转移) ............................................. 189
BHCS Branch if Half Carry Bit Set(H为1 则转移) ................................................. 189
BHI Branch if Higher(大于则转移) ......................................................................... 190
BHS Branch if Higher or Same(大于或等于则转移) .............................................. 191
BIH Branch if IRQ Pin High(引脚IRQ为1 则转移)................................................ 191
BIL Branch if IRQ Pin Low(引脚IRQ为0 则转移)................................................. 192
BIT Bit Test(位测试) ................................................................................................ 192
BLE Branch if Less Than or Equal To(小于或等于则转移).................................... 193
BLO Branch if Lower(小于则转移)......................................................................... 193
BLS Branch if Lower or Same(小于或等于则转移)................................................ 194
BLT Branch if Less Than(小于则转移).................................................................... 195
BMC Branch if Interrupt Mask Clear(I为0 则转移)................................................ 195
BMI Branch if Minus(结果为负则转移).................................................................. 196
BMS Branch if Interrupt Mask Set(I为1 则转移).................................................... 196
BNE Branch if Not Equal(不等于则转移) ............................................................... 197
BPL Branch if Plus(结果为正则转移) ..................................................................... 197
BRA Branch Always(无条件短转移)....................................................................... 198
BRCLR n Branch if Bit n in Memory Clear(M位n为0 则转移).............................. 199
BRN Branch Never(三个总线周期的空操作)......................................................... 200
BRSET n Branch if Bit n in Memory Set(M位n为1 则转移).................................. 200
BSET n Set Bit n in Memory(M位n置1) ................................................................. 201
BSR Branch to Subroutine(转移到子程序).............................................................. 201
CBEQ Compare and Branch if Equal(比较,等于则转移) ..................................... 202
CLC Clear Carry Bit(进位位C清零) ........................................................................ 203
CLI Clear Interrupt Mask Bit(中断屏蔽位I清零) .................................................... 203
CLR Clear(清零)....................................................................................................... 204
CMP Compare Accumulator with Memory(A与M比较).......................................... 204
COM Complement(按位取反).................................................................................. 205
CPHX Compare Index Register with Memory(HX与M比较).................................. 206
CPX Compare X with Memory(X与M比较)............................................................ 207
DAA Decimal Adjust Accumulator(A十进制调整).................................................. 208
DBNZ Decrement and Branch if Not Zero(减1 不为0 则转移)............................. 209
DEC Decrement(自减1)........................................................................................... 209
DIV Divide(无符号除法) ......................................................................................... 210
EOR Exclusive-OR Memory with Accumulator(M与A异或) ...................................211
INC Increment(自加1) ..............................................................................................211
JMP Jump(无条件跳转) ........................................................................................... 212
JSR Jump to Subroutine(跳转到子程序).................................................................. 213
LDA Load Accumulator form Memory(取M内容到A)............................................ 213
LDHX Load Index Register form Memory(取M内容到HX)................................... 214
LDX Load X from Memory(取M内容到X) ............................................................. 215
LSL Logical Shift Left(逻辑左移)............................................................................ 215
LSR Logical Shift Right(逻辑右移) ......................................................................... 216
MOV Move(M单元间数据传送) ............................................................................. 217
MUL Unsigned Multiply(无符号数乘法) ................................................................ 218
NEG Negate(Two’s Complement) (求补)................................................................. 218
NOP No Operation(空操作)...................................................................................... 219
NSA Nibble Swap Accumulator(A的高低4 位对调) .............................................. 219
ORA Inclusive-OR Accumulator and Memory(逻辑或)........................................... 220
PSHA Push Accumulator onto Stack(A进栈) ........................................................... 220
PSHH Push H onto Stack(H进栈)............................................................................. 221
PSHX Push X onto Stack(X进栈)............................................................................. 221
PULA Pull Accumulator from Stack(A出栈)............................................................ 222
PULH Pull H from Stack(H出栈) ............................................................................. 222
PULX Pull X from Stack(X出栈) ............................................................................. 223
ROL Rotate Left through Carry(带进位位的循环左移) .......................................... 223
ROR Rotate Right through Carry(带进位位的循环右移) ....................................... 224
RSP Reset Stack Pointer(堆栈指针置$FF)............................................................... 224
RTI Return from interrupt(中断返回)....................................................................... 225
RTS Return from Subroutine(子程序返回) .............................................................. 226
SBC Subtract with Carry(带借位减法) .................................................................... 226
SEC Set Carry Bit(进位位置位)............................................................................... 227
SEI Set Interrupt Mask Bit(中断屏蔽位置位).......................................................... 227
STA Store Accumulator in Memory(A存入M)......................................................... 228
STHX Store Index Register(HX存入M)................................................................... 229
STOP Enable IRQ Pin, Stop Processing(停机) ......................................................... 229
STX Store X in Memory(X存入M) .......................................................................... 230
SUB Subtract(无借位减法) ...................................................................................... 231
SWI Software Interrupt(软件中断)........................................................................... 231
TAP Transfer Accumulator to Processor Status Byte(写CCR).................................. 232
TAX Transfer Accumulator to X(A复制到X)........................................................... 233
TPA Transfer Processor Status Byte to Accumulator(读CCR).................................. 233
TST Test for Negative or Zero(小于或等于0 测试)................................................ 234
TSX Transfer Stack Pointer to index Register(复制SP到HX).................................. 235
TXA Transfer X to Accumulator(复制X到A)........................................................... 235
TXS Transfer Index Register Low to Stack Pointer(HX-1 写入SP)......................... 235
WAIT Enable Interrupts; Stop Processor(待机) ........................................................ 236
附录B 通用文件规范......................................................................................................... 237
B.1 引言.......................................................................................................................... 237
B.2 存储映射区域划分.................................................................................................. 238
B.3 中断向量定义.......................................................................................................... 238
B.4 位定义的两种方式.................................................................................................. 239
B.5 MC9S08GB60 完整的通用文件.............................................................................. 240
