随笔分类 -  嵌入式

单片机、ARM相关
摘要:FRQ向量位于异常向量表的最末端,不需要跳转就可以直接执行后面跟随的异常处理程序;FRQ模式中私有寄存器数量最多,在进行异常处理时不需要对这些寄存器进行压栈保存。 阅读全文
posted @ 2013-10-12 20:32 黑夜的思索 阅读(433) 评论(0) 推荐(0)
摘要:GOTO 程序无条件跳转到指定的地址语法形式:GOTO m操作数:m为11位立即数指定的目标地址执行时间:2个指令周期执行过程:m→PC【10:0】PCLATH【4:3】→PC【12:11】状态标志影响:无说明:程序无条件立即强行跳转到目的地址处继续执行。目的地址由本指令内含的11位地址码和特殊寄存器PCLATH中的【4:3】一起构成完整的13位地址。指令范例:ORG 0x000 ;伪指令指定程序的起始地址GOTO Main ;程序跳转到标号指定的位置处继续执行MOVLW W寄存器赋立即数语法形式:MOVLW k操作数:k为8位立即数执行时间:一个指令周期执行过程:k→W状态标志影响:无说明: 阅读全文
posted @ 2013-04-25 11:07 黑夜的思索 阅读(1185) 评论(0) 推荐(0)
摘要:立即数与控制操作指令 SLEEP 单片机进入低功耗休眠模式 语法形式:SLEEP 操作数:无 执行时间:一个指令周期 执行过程: 看门狗计数器清0 看门狗计数器的预分频器清0 STATUS寄存器的“TO”标志位置1 STATUS寄存器的“PD”标志位清0 状态标志影响:TO PD 说明:SLEEP指令可以让单片机停止所有的工作进入低功耗休眠模式,在休眠模式下芯片的功耗降至最低... 阅读全文
posted @ 2013-04-24 15:55 黑夜的思索 阅读(996) 评论(0) 推荐(0)
摘要:位操作指令详述BCF 数据寄存器指定位清0语法形式:BCF f,b操作数:f为数据寄存器的低7位地址(0x00~0x7F)B为数据位编号(0~7)执行时间:一个指令周期执行过程:使数据寄存器f的的b位清0状态标志影响:无说明:该指令可对任何数据寄存器的任意一个位置清0,常用于标志位的设定和清除,或者把某一管脚置成低电平。指令范例:BCF STATUS,C ;进位(借位)标志C清0BCF PORTD,7 ;PORTD的第7位输出低电平BSF 数据寄存器的指定位b置1语法形式:BSF f,b操作数:f为数据寄存器的低7位地址(0x00~0x7F)b为数据位编号(0~7)执行时间:一个指令周期执行过 阅读全文
posted @ 2013-04-18 11:31 黑夜的思索 阅读(1667) 评论(0) 推荐(0)
摘要:INCFSZ f数据寄存器内容递增1,并作判0标志 语法形式:INCFSZ f,d 操作数:f为数据寄存器的低7位地址(0x00~0x7F) d为目的寄存器的低7位地址(0x00~0x7F) 当d=f时,结果放在f数据寄存器,W寄存器的内容不变 当d=W时,结果放在W寄存器中,f数据寄存器的内容不变 执行时间:一个指令周期或两个指令周期 执行过程:【f】+1→d 状态标志影响:Z ... 阅读全文
posted @ 2013-04-17 09:41 黑夜的思索 阅读(1083) 评论(0) 推荐(0)
摘要:ADDWF W寄存器内容和f数据寄存器内容相加语法形式:ADDWF f,d操作数:f为数据寄存器的低7位地址(0x00~0x7F)d为目的寄存器的低7位地址(0x00~0x7F)当d=f时,结果放在f数据寄存器,W寄存器的内容不变当d=W时,结果放在W寄存器中,f数据寄存器的内容不变执行时间:一个指令周期执行过程:【f】+【W】→d状态标志影响:Z DC C说明:数据寄存器内容和W寄存器内容相加,结果放入d指定的地方指令范例:MOVLW 0x55 ;W=0x55,假定Sum=0xAAADDWF Sum,f ;W不变,Sum=0xFFMOVF 传送f数据寄存器的内容到目的寄存器语法形式:MOVF 阅读全文
posted @ 2013-04-15 11:06 黑夜的思索 阅读(717) 评论(0) 推荐(0)
摘要:DECF 数据寄存器的内容递减1 语法形式:DECF f,d 操作数:f为数据寄存器的低7位地址(0x00~0x7F) d为目的寄存器的低7位地址(0x00~0x7F) 当d=f时,结果放在f数据寄存器,f数据寄存器自减1 当d=W时,结果放在W寄存器中,W寄存器内容自减1 执行时间:一个指令周期 执行过程:【f】-1→d 状态标志影响:Z 说明:该指令对数据寄存器的内容做减1... 阅读全文
posted @ 2013-04-12 10:33 黑夜的思索 阅读(692) 评论(0) 推荐(0)
摘要:NOP 空操作指令 语法形式:NOP 操作数:无 执行时间:一个指令周期 执行过程:除了消耗一个指令周期之外,无任何其他影响,所以通常被用来作为延时使用 状态标志影响:无 说明:指令操作没有任何操作数参与,也不影响任何寄存器的内容和状态,所以通常都是被作为延时使用的。 指令范例:BSF PORTB,0 ;PORTB的第0位输出高电平(1) NOP ;延时,使电平... 阅读全文
posted @ 2013-04-11 10:02 黑夜的思索 阅读(897) 评论(0) 推荐(0)
摘要:MOV(MOVe) 传送指令 PUSH 入栈指令 POP 出栈指令 XCHG(eXCHanG) 交换指令 XLAT(TRANSLATE) 换码指令 LEA (Load Effective Address) 有效地址送寄存器指令 LDS(Load DS with pointer) 指针送寄存器和DS指令 LES(Loa... 阅读全文
posted @ 2013-04-10 14:11 黑夜的思索 阅读(1089) 评论(0) 推荐(0)
摘要:字节操作指令NOP - ;空操作MOVWF f ;把w内容送fCLRW - ;把w清0CLRF f ;把f清0SUBWF f,d ;f减去wDECF f,d ;f递减1IORWF f,d ;w和f逻辑或ANDWF f,d ;w和f逻辑与XORWF f,d ;w和f逻辑异或ADDWF f,d ;w和f相加MOVF f,d ;传送fCOMF f,d ;f取反INCF f,d ;f递增1DECFSZ f,d ;f递减1,结果为0则跳RRF f,d ;带进位循环右移RLF f,d ;带进位循环左移SWAPF f,d ;f高位4位内容交换INCFSZ f,d ;f递增1,结果为0则跳位操作指令BCF f 阅读全文
posted @ 2013-04-10 13:29 黑夜的思索 阅读(783) 评论(0) 推荐(0)
摘要:帮助理解记忆PC = progammer counter //程序计数器ACC = accumulate //累加器PSW = progammer status word //程序状态字SP = stack point //堆栈指针DPTR = data point register //数据指针 寄存器IP = interrupt priority //中断优先级IE = interrupt enable // 中断使能TMOD = timer mode //定时器 方式 (定时器/计数器 控制寄存器)ALE = alter (变更,可能是)PSEN = progammer saving e 阅读全文
posted @ 2012-12-21 15:33 黑夜的思索 阅读(694) 评论(0) 推荐(0)
摘要:近来突然想起自己还学过PIC,正好上午闲来无事,突然有点时间,打算重温一下!正好MicroChip发布了新的MPLab X IDE开发环境,传说还获过什么创新大奖,但是很不幸被硬件工程师狠狠的吐过槽,垃圾之类的话语都算是表扬。自己试试吧。 安装、打开,界面很炫 打开之后,也很炫 建立项目出现问题 不能从开始页建立工程,什么原因,我也不知道,反正是不行 从File建立一个Test工... 阅读全文
posted @ 2012-12-20 13:20 黑夜的思索 阅读(3516) 评论(0) 推荐(0)