PC是程序计数器, 在PIC16中档单片机中是13位宽。
PCL是程序计数器的低8位,可读写。在程序执行过程中, 因PC会不断改变, 所以PCL也会跟着改变。同样,改变PCL的值会改变PC的值, 从而实现程序的跳转。
PCLATH是程序计数器的高5位锁存器, 但并不等于PC的高5位。PC的改变并不直接映射到PCLATH,同样,改变PCLATH并不直接改变PC。只有特定的指令PCLATH才会装载到PC中,即CALL、GOTO、ADDWF、PCL及F 指令。
2 程序跳转
(1) PC绝对跳转
CALL 或 GOTO 指令可实现程序的绝对跳转。
例:
CALL SUB1
GOTO SUB2
说明: PC的低11位地址来自于操作码,高2位来自于PCLATH的第5位和第4位。因为操作码只包含11位子程序的地址,高2位来自于PCLATH,因此在调用子程序前必须正确设置PCLATH。当然不是每次调用子程序前都要设置PCLATH,但要保证调用子程序前,PCLATH已包含正确的值。
设置PCLATH可使用宏命令:PAGESEL。
例:
PAGESEL SUB1
CALL SUB1
(2) PC相对跳转
用ADDWF 指令可实现程序的相对跳转。
例:
ADDWF PCL,F
RETLW 0x01
RETLW 0X02
说明:PC的低8位地址等于当前的PCL与W相加后的值,高5位来自于PCLATH的低5位。因此在使用这条指令之前必须正确设置PCLATH,特别注意PCL与W相加后如果有进位,必须相应地对PCLATH加1。
3 查表的实现
虽然PIC16单片机没有专用的查表指令,但可利用ADDWF PCL,F指令实现查表,下面举例说明。
(1) 简单的查表程序
程序说明: OFFSET为偏移地址, 假设程序起始地址为0X20, PCL与W相加后不会有进位。
ORG 0X20
MAIN:
MOVLW 0X01
MOVWF OFFSET
CLRF PCLATH
CALL LOOK_UP
MOVWF VALUE
GOTO $
LOOK_UP
MOVF OFFSET,W
ADDWF PCL,F
RETLW 0X01
RETLW 0X02
RETLW 0X03
RETLW 0X04
RETLW 0X05
RETLW 0X06
……
(2) 通用的的查表程序
程序说明: OFFSET为偏移地址,可将MAIN、LOOK_UP、TABLE三个子程序置于程序区任意位置。
MAIN
MOVLW 0X05
MOVWF OFFSET
PAGESEL LOOK_UP
CALL LOOK_UP
MOVWF VALUE
GOTO $
LOOK_UP
MOVLW HIGH(TABLE)
MOVWF PCLATH
MOVLW LOW(TABLE)
ADDWF OFFSET,W
BTFSC STATUS,C
INCF PCLATH,F
MOVF OFFSET,W
TABLE
ADDWF PCL,F
dt 0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x0a,0x0b,0x0c,0x0D,0x0E,0x0F ……
(3) 大于256个数据的查表程序
程序说明: OFFSETH、OFFSETL为偏移地址的高8位和低8位。可将MAIN、LOOK_UP、TABLE三个子程序置于程序区任意位置。
MAIN
MOVLW 0X00
MOVWF OFFSETH
MOVLW 0X10
MOVWF OFFSETL
PAGESEL LOOK_UP
CALL LOOK_UP
MOVWF VALUE
LOOK_UP
MOVLW HIGH(TABLE)
ADDWF OFFSETH,W
MOVWF PCLATH
MOVLW LOW(TABLE)
ADDWF OFFSETL,W
BTFSC STATUS,C
INCF PCLATH,F
MOVF OFFSETL,W
TABLE
ADDWF PCL,F
dt 0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x0a,0x0b,0x0c,0x0D,0x0E,0x0F
dt 0x00,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x0a,0x0b,0x0c,0x0d,0x0e
dt 0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x0a,0x0b,0x0c,0x0d,0x0e,0x00
dt 0x00,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x0a,0x0b,0x0c,0x0d,0x0e
上一篇:PIC单片机调试心得
下一篇:PIC单片机片内EEPROM运用方法
推荐阅读
史海拾趣
2023年,永源微电子成功完成了A轮融资,这是公司发展过程中的一个重要里程碑。此次融资由深圳英集芯科技股份有限公司领投,为公司带来了丰富的资金支持和市场资源。通过与英集芯科技的战略合作,永源微电子在微电子领域的技术创新和产品研发上取得了新的突破。双方共同开展研发项目,推动技术的突破和应用场景的拓展,为公司的未来发展注入了强大的动力。
固驰电子深知产品质量是企业生存之本,因此始终将品质控制放在首位。公司不仅建立了完善的质量管理体系,还通过了ISO9001:2015质量管理体系认证和美国UL产品认证,这标志着固驰电子的产品质量达到了国际先进水平。此外,公司还积极申请专利,目前已拥有50项国家专利,进一步巩固了其在行业内的技术领先地位。
为了确保产品的质量和稳定性,Altonics公司建立了严格的质量管理体系。公司从原材料采购到产品出厂的每一个环节都进行严格把控,确保产品质量符合行业标准。同时,公司还引入了先进的质量检测设备和方法,不断提高产品质量检测的准确性和效率。这些措施使得公司的产品在市场上赢得了良好的口碑。
为了确保产品的质量和稳定性,Altonics公司建立了严格的质量管理体系。公司从原材料采购到产品出厂的每一个环节都进行严格把控,确保产品质量符合行业标准。同时,公司还引入了先进的质量检测设备和方法,不断提高产品质量检测的准确性和效率。这些措施使得公司的产品在市场上赢得了良好的口碑。
D公司始终坚持品质至上的经营理念,以提供高品质的电子产品为己任。在CIF交易模式下,D公司严格控制产品质量,从原材料采购到生产流程中的每一个环节都进行严格把关。凭借出色的产品质量和良好的售后服务,D公司赢得了客户的信任和好评。
D公司始终坚持品质至上的经营理念,以提供高品质的电子产品为己任。在CIF交易模式下,D公司严格控制产品质量,从原材料采购到生产流程中的每一个环节都进行严格把关。凭借出色的产品质量和良好的售后服务,D公司赢得了客户的信任和好评。
文章要求论点明确,论据可靠,数字准确,文字精练,引文及参考书目格式规范。 文章要求论点明确,论据可靠,数字准确,文字精练,引文及参考书目格式规范。经验交流文章应力 求结合理论分析,文责自负。文稿采用word格式和txt格式两种格式,电子邮件投稿。投稿邮箱:lw82990065@126.com &n ...… 查看全部问答∨ |
请教:我把L298的1引脚直接与7805的地相连,同时连单片机的地,可有时候电机不转,测这两点电势竟然不为0,而且为3V多???还有为了能让小车爬上跷跷板,把L298驱动电压达到7V,这样对小车电机影响大?小车电机一般驱动电压为多 ...… 查看全部问答∨ |
先进先出存储器 在DMA传输方式下,由于PCI9054内部的FIFO只有32级深度,实时传送高速数据时,PCI9054内部的FIFO会很快存满,而DSP内的数据仍会源源不断的传送过来,易造成数据的丢失,因此必须要扩展外部FIFO。 本系统采用I D T公司高速CMOS同步F ...… 查看全部问答∨ |
怎么让机械表省电←省电精灵c卡预付费电表控制器※电表倒转QQ:272208552 电话:13115998303 如何让插卡电表倒走,【网站打不开请点百度快照】如何使电表慢走 电表倒转的原因 ic卡电表偷电方法 电表节电器控制器电表控制器,电表干扰器:微电脑控表器 ...… 查看全部问答∨ |
各位前辈高手: 我用vb.net2005开发Win CE程序 请问怎么读取文件,读取文件的路径是什么? 我用下面的代码,可以走到第3行就挂了。 Dim fi As FileInfo fi = New FileInfo(" ...… 查看全部问答∨ |
|
想要用中断数据,FIFO的深度设置为1/8。比如我想要发送8个字符数据时,先在其他函数里面用UARTCharPut发送2个字符,引起UART_INT_RX中断,接下来应该在中断中发送剩余的6个字符还是完整的8个字符?… 查看全部问答∨ |
|
本帖最后由 dontium 于 2015-1-23 11:46 编辑 看过好多讲RS-232至RS-485转换器的文章,都是迷迷糊糊的,可能是我水平不够,不过看完这篇文章,脑子有点想法了,解释的很是到位。好文章。顶deyisupport./blog/b/analogwire/archive/2013/11/22/rs-2 ...… 查看全部问答∨ |
Sensor Tag活动搭建环境-安装IAR for 8051过程分享,,, 本帖最后由 qwqwqw2088 于 2014-3-16 23:28 编辑 Sensor Tag活动遇到的麻烦太多了,除了收到Sensor Tag后,用的TI提供的APK,找了ipad mini平板演示了几个传感器,然后下载各种开发套件的硬件资料,CC2540DK-MIN的PDF,看TI的视频等等,,,,不 ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 新突破!超高速内存,为英特尔至强6性能核处理器加速
- 将vRAN站点整合至单服务器,助力运营商降低总体拥有成本
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?