




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HC18 指令详解指令详解 HC18指令详解指令详解 数据手册数据手册 DOC. VERSION 1.4 芯圣电子芯圣电子 - 1 - 2010 年 3 月 HC18 指令详解指令详解 修正记录修正记录 版本 日期 描述 Ver1.00 2010-03-01 第一版 - 2 - HC18 指令详解指令详解 1 指令表指令表 助记符 操作数 说明 周期数14 位操作码 受影响的状态位 ADDWF f,d W 和 f 相加 1 01 1110 dfff ffff C,DC,Z ADDLW k 将立即数和 W 相加 1 00 1000 kkkk kkkkC,DC,Z SUBWF f,d f 减去 W 1 01 1011 dfff ffff C,DC,Z SUBLW k 立即数减去 W 1 00 1010 kkkk kkkkC,DC,Z DAW - W 寄存器值进行 BCD 调整 1 00 0101 xxxx xxxxC,DC ANDWF f,d W 和 f 作逻辑与运算 1 01 1100 dfff ffff Z ANDLW k 立即数和 W 作逻辑与运算 1 00 1110 kkkk kkkkZ IORWF f,d W 和 f 作逻辑或运算 1 01 1101 dfff ffff Z IORLW k 立即数和 W 作逻辑或运算 1 00 1111 kkkk kkkkZ XORWF f,d W 和 f 作逻辑异或运算 1 01 1111 dfff ffff Z XORLW k 立即数和 W 作逻辑异或运算 1 00 1101 kkkk kkkkZ COMF f,d f 取反 1 01 0000 dfff ffff Z CLRW - 将 W 清零 1 01 1000 0 xxx xxxxZ CLRF f 将 f 清零 1 01 1000 1fff ffff Z INCF f,d f 加 1 1 01 0011 dfff ffff Z INCFSZ f,d f 加 1,为 0 则跳过 1(2) 01 0110 dfff ffff DECF f,d f 减 1 1 01 1010 dfff ffff Z DECFSZ f,d f 减 1,为 0 则跳过 1(2) 01 0010 dfff ffff BCF f,d 将 f 中的 d 位清 0 1 10 11bb bfff ffff BSF f,d 将 f 中的 d 位置 1 1 10 10bb bfff ffff BTFSC f,d 检测 f 中的 d 位,为 0 则跳过 1(2) 10 01bb bfff ffff BTFSS f,d 检测 f 中的 d 位,为 1 则跳过 1(2) 10 00bb bfff ffff MOVWF f 将 W 的内容传送到 f 1 01 1001 1fff ffff MOVF f,d 将 f 的内容送到目标寄存器 1 01 0001 dfff ffff Z MOVLW k 将立即数 k 传送到 W 1 00 0100 kkkk kkkk RLF f,d 对 f 执行带进位的循环左移 1 01 0100 dfff ffff C RRF f,d 对 f 执行带进位的循环右移 1 01 0101 dfff ffff C SWAPF f,d 将 f 的两个半字节进行交换 1 01 0111 dfff ffff CALL k 调用子程序 2 11 0kkk kkkk kkkk GOTO k 无条件跳转 2 11 1kkk kkkk kkkk RETFIE - 从中断返回 2 00 0000 0000 0001GIE RETURN - 从子程序返回 2 00 0000 0000 0010 RETLW k 返回时将立即数传送到 W 2 00 0001 kkkk kkkk CLRWDT - 清零看门狗定时器 1 00 0000 0000 0100 TO,PD SLEEP - 进入待机模式 1 00 0000 0000 0011 TO,PD NOP - 空操作 1 00 0000 0110 0000 - 3 - HC18 指令详解指令详解 - 4 - 2 指令详细说明指令详细说明 ADDLW 立即数和立即数和W相加相加 语法: ADDLW k 操作数: 0 k 255 操作: (W) + k (W) 受影响状态位:C、DC 和Z 说明: 将W寄存器的内容和8位立即数k相 加,结果存入W寄存器。 ADDWF W和和f相加相加 语法: ADDWF f, d 操作数: 0 f 127 (d 0,1 ) 操作: (W) + (f) (目标寄存器) 受影响状态位:C、DC 和Z 说明: W寄存器内容和f寄存器内容相加。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 BCF 将将f中的某位清中的某位清0 语法: BCF f,b 操作数: 0 f 127 (0 b 7) 操作: 0 (fb) 受影响状态位:无 说明: 将f寄存器中的b位清0。 BTFSC 检测检测f中的某位,为中的某位,为0则跳过则跳过 语法: BTFSC f,b 操作数: 0 f 127 (0 b 7) 操作: 如果(fb) = 0 则跳过 受影响状态位:无 说明: 如果f寄存器中的b位为1, 则执行下一 条指令;如果b位为0,则丢弃下一条 指令,转而执行一条NOP指令,从而 使该指令成为双周期指令。 CLRF 将将f寄存器清寄存器清0 语法: CLRF f 操作数: 0 f 127 操作: 00h (f)、1 Z 受影响状态位:Z 说明: f寄存器的内容被清0,Z位置1。 ANDLW 立即数和立即数和W逻辑与运算逻辑与运算 语法: ANDLW k 操作数: 0 k 255 操作: (W) AND k (W) 受影响状态位:Z 说明: 将W寄存器的内容和8位立即数k作 逻辑与运算,结果存入W寄存器。 ANDWF W和和f逻辑与运算逻辑与运算 语法: ANDWF f,d 操作数: 0 f 127 (d 0,1 ) 操作: (W)AND (f) (目标寄存器) 受影响状态位:Z 说明: W寄存器和f寄存器作逻辑与运算。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 BSF 将将f中的某位置中的某位置1 语法: BSF f,b 操作数: 0 f 127 (0 b 7) 操作: 1 (fb) 受影响状态位:无 说明: 将f寄存器的b位置1。 BTFSS 检测检测f中的某位,为中的某位,为1则跳过则跳过 语法: BTFSS f,b 操作数: 0 f 127 (0 b 7) 操作: 如果(fb) = 1 则跳过 受影响状态位:无 说明: 如果f寄存器中的b位为0, 则执行下一 条指令;如果b位为1,则丢弃下一条 指令,转而执行一条NOP指令,从而 使该指令成为双周期指令。 CLRW 将将W寄存器清寄存器清0 语法: CLRW 操作数: 无 操作: 00h (W)、1 Z 受影响状态位:Z 说明: W寄存器被清0,Z位置1。 HC18 指令详解指令详解 COMF f取反取反 语法: COMF f,d 操作数: 0 f 127 (d 0,1 ) 操作: (f) (目标寄存器) 受影响状态位:Z 说明: 将f寄存器的内容取反。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 CALL 调用子程序调用子程序 语法: CALL k 操作数: 0 k 2047 操作: (PC) + 1 Stack,k PC10:0 受影响状态位:无 说明: 调用子程序。首先将返回地址(PC+1) 压入堆栈,然后11位立即数地址装入 PC。这是一条双周期指令。 DECF f减减1 语法: DECF f,d 操作数: 0 f 127 (d 0,1 ) 操作: (f) - 1 (目标寄存器) 受影响状态位:Z 说明: 将f寄存器的内容减1。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 DECFSZ f减减1,为,为0则跳过则跳过 语法: DECFSZ f,d 操作数: 0 f 127 (d 0,1 ) 操作: (f) - 1 (目标寄存器) , 结果为0则跳过 受影响状态位:无 说明: 将f寄存器的内容减1。 如果结果非0,则执行下一条指令; 如果结果为0,则执行NOP指令,使 该指令成为双周期指令。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 CLRWDT 看门狗定时器清看门狗定时器清0 语法: CLRWDT 操作数: 无 操作: 00h WDT、0 WDT预分频器 1 TO、1 PD 受影响状态位:TO和PD 说明: 看门狗定时器和WDT预分频器(分配 给WDT)清0。状态位TO和PD置1。 GOTO 无条件跳转无条件跳转 语法: GOTO k 操作数: 0 k 2047 操作: k PC10:0 受影响状态位:无 说明: GOTO是无条件跳转指令。11位立即 数地址装入PC。 这是一条双周期指 令。 INCF f加加1 语法: INCF f,d 操作数: 0 f 127 (d 0,1 ) 操作: (f) +1 (目标寄存器) 受影响状态位:Z 说明: 将f寄存器的内容加1。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 INCFSZ f加加1,为,为0则跳过则跳过 语法: INCFSZ f,d 操作数: 0 f 127 (d 0,1 ) 操作: (f) +1 (目标寄存器), 结果为0则跳过 受影响状态位:无 说明: 将f寄存器的内容加1。 如果结果非0,则执行下一条指令; 如果结果为0,则执行NOP指令,使 该指令成为双周期指令。 如果d为0,结果存入W寄存器; - 5 - 如果d为1,结果存入f寄存器。 HC18 指令详解指令详解 IORLW 立即数和立即数和W作逻辑或运算作逻辑或运算 语法: IORLW k 操作数: 0 k 255 操作: (W)OR (k) (W) 受影响状态位:Z 说明: 将W寄存器的内容和8位立即数k作 逻辑或运算。结果存入W寄存器。 IORWF 将将W和和f作逻辑或运算作逻辑或运算 语法: IORWF f,d 操作数: 0 f 127 (d 0,1 ) 操作: (W)OR (f) (目标寄存器) 受影响状态位:Z 说明: W寄存器与f寄存器作逻辑或运算。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 MOVWF 将将W的内容传送到的内容传送到f 语法: MOVWF f 操作数: 0 f 127 操作: (W) (f) 受影响状态位:无 说明: 将W寄存器中的数据传送到f寄存器。 RLF 对对f执行带进位的循环左移执行带进位的循环左移 语法: RLF f,d 操作数: 0 f 127 (d 0,1 ) 操作: 参见下面的说明 受影响状态位:C 说明: 将f寄存器和进位标志循环左移1位。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 RETLW 带立即数返回带立即数返回 语法: RETLW k 操作数: 0 k 255 操作: k (W),Stack PC 受影响状态位:无 说明: 将8位立即数k存入W寄存器。栈顶内 容装入PC。这是一条双周期指令。 MOVLW 将立即数传送到将立即数传送到W 语法: MOVLW k 操作数: 0 k 255 操作: k (W) 受影响状态位:无 说明: 将8位立即数k存入W寄存器。 MOVF 将将f的内容送到目标寄存器的内容送到目标寄存器 语法: MOVF f,d 操作数: 0 f 127 (d 0,1 ) 操作: (f) (目标寄存器) 受影响状态位:Z 说明: 将f的内容存入目标寄存器。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 NOP 无操作无操作 语法: NOP 操作数: 无 操作: 空操作 受影响状态位:无 说明: 不执行任何操作。 RRF 对对f执行带进位的循环右移执行带进位的循环右移 语法: RRF f,d 操作数: 0 f 127 (d 0,1 ) 操作: 参见下面的说明 受影响状态位:C 说明: 将f寄存器和进位标志循环右移1位。 如果d为0,结果存入W寄存器; 如果d为1,结果存入f寄存器。 RETURN 子程序返回子程序返回 语法: RETURN 操作数: 无 操作: Stack PC 受影响状态位:无 说明: 从子程序返回。执行出栈操作,栈顶 内容装入PC。这是一条双周期指令。 C Cf 寄存器 f 寄存器 - 6 - HC18 指令详解指令详解 RETFIE 中断返回中断返回 DAW BCD调整调整 语法: RETFIE 语法: DAW 操作数: 无 操作数: 无 操作: Stack PC,1 GIE 操作: 二进制码 BCD码 受影响状态位:无 受影响状态位:C和DC 说明: 从中断返回。执行出栈操作,栈顶内 容装入PC。这是一条双周期指令。 说明: W内容从二进制码调整为BCD码 SLEEP 休眠休眠 SWAPF 将将f中的两个半字节交换中的两个半字节交换 语法: SLEEP 语法: SWAPF f,d 操作数: 无 操作数: 0 f 127 (d 0,1 ) 操作: 00h WDT,0 WDT预分频器 操作: (f3:0) (目标寄存器7:4), (f7:4) (目标寄存器3:0) 1 TO,0 PD 受影响状态位:无 受影响状态位:TO和PD 说明: 将f寄存器高半字节和低半字节交换。 如果d为0,结果存入W寄存器; 说明: 看门狗定时器和预分频器(分配给 WDT)清0。振荡器停振,系统进入休 眠模式。状态位PD清0,TO置1。 如果d为1,结果存入f寄存器。 SUBLW 立即数减去立即数减去W寄
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论