Microchip 系列:PIC18 系列_(3).PIC18系列编程模型.docx

Microchip 系列:PIC18 系列_(3).PIC18系列编程模型.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

PIC18系列编程模型

在上一节中,我们已经了解了PIC18系列的基本架构和特点。本节将重点介绍PIC18系列的编程模型,包括其存储器结构、寄存器配置、指令集和编程方法。通过本节的学习,您将能够更好地理解如何在PIC18系列单片机上进行高效编程。

存储器结构

PIC18系列单片机的存储器结构是分段的,主要包括以下几个部分:

1.程序存储器(ProgramMemory)

程序存储器用于存储单片机的指令。PIC18系列单片机的程序存储器通常使用闪存(FlashMemory),可以多次编程和擦除。程序存储器的地址空间通常为16位,最大可达64KB。

2.数据存储器(DataMemory)

数据存储器用于存储程序运行时的数据,包括寄存器、变量和栈等。PIC18系列单片机的数据存储器分为以下几个部分:

通用寄存器(GeneralPurposeRegisters,GPR):用于存储程序中的变量和临时数据。这些寄存器通常位于RAM中,地址空间为14位。

特殊功能寄存器(SpecialFunctionRegisters,SFR):用于控制单片机的各种功能,如定时器、中断、I/O端口等。这些寄存器通常位于特定的地址空间中,可以通过读写操作进行配置。

间接寻址寄存器(IndirectAddressingRegisters):用于访问数据存储器中的任意地址。PIC18系列单片机通常有两个间接寻址寄存器,分别为FSR0和FSR1。

3.配置寄存器(ConfigurationRegisters)

配置寄存器用于设置单片机的工作模式、时钟源、复位配置等。这些寄存器在程序的开始部分进行配置,并在运行时保持不变。

4.EEPROM存储器

EEPROM存储器用于存储需要长期保存的数据,如校准值、配置参数等。EEPROM存储器可以在程序运行时进行读写操作。

寄存器配置

1.特殊功能寄存器(SFR)

特殊功能寄存器(SFR)是PIC18系列单片机中用于控制各种功能的重要寄存器。每个SFR都有特定的地址,并且可以通过读写操作进行配置。以下是一些常用的SFR及其功能:

TMR0H和TMR0L:定时器0的高8位和低8位寄存器。

T0CON:定时器0控制寄存器。

PORTA和TRISA:I/O端口A的数据寄存器和方向寄存器。

PORTB和TRISB:I/O端口B的数据寄存器和方向寄存器。

INTCON:中断控制寄存器。

2.配置寄存器(ConfigurationRegisters)

配置寄存器用于设置单片机的初始配置,包括振荡器类型、复位配置、电源管理等。以下是一些常用的配置寄存器:

CONFIG1L和CONFIG1H:用于设置振荡器类型、看门狗定时器、电源管理等。

CONFIG2L和CONFIG2H:用于设置复位配置、代码保护、调试模式等。

指令集

PIC18系列单片机的指令集是RISC(精简指令集计算机)架构的,包含大约35条指令。这些指令可以分为以下几类:

1.数据传送指令

数据传送指令用于在寄存器之间、寄存器和存储器之间、以及存储器之间进行数据的移动。常见的数据传送指令包括:

MOVF:将文件寄存器的内容移动到W寄存器或另一个文件寄存器。

MOVF:将W寄存器的内容移动到文件寄存器。

MOVWF:将W寄存器的内容移动到文件寄存器。

MOVLW:将立即数移动到W寄存器。

2.算术和逻辑指令

算术和逻辑指令用于执行基本的数学运算和逻辑运算。常见的算术和逻辑指令包括:

ADDWF:将W寄存器的内容与文件寄存器的内容相加,并将结果存入文件寄存器。

SUBWF:将文件寄存器的内容减去W寄存器的内容,并将结果存入文件寄存器。

ANDWF:将W寄存器的内容与文件寄存器的内容进行按位与运算,并将结果存入文件寄存器。

IORWF:将W寄存器的内容与文件寄存器的内容进行按位或运算,并将结果存入文件寄存器。

3.控制转移指令

控制转移指令用于改变程序的执行顺序。常见的控制转移指令包括:

GOTO:跳转到指定的程序地址。

CALL:调用子程序。

RETURN:从子程序返回。

RETFIE:从中断服务子程序返回。

4.位操作指令

位操作指令用于对特定的位进行设置、清除或测试。常见的位操作指令包括:

BSF:设置文件寄存器中的某个位。

BCF:清除文件寄存器中的某个位。

BTFSS:测试文件寄存器中的某个位,如果位为0,则跳过下一条指令。

BTFSC:测试文件寄存器中的某个位,如果位为1,则跳过下一条指令。

5.字节操作指令

字节操作指令用于对字节进行操作。常见的字节操作指令包括:

CLRF:清除文件寄存器中的内容。

CLRW:清除W寄存器中的内容。

CLRWDT:清除看门狗定时器。

文档评论(0)

找工业软件教程找老陈 + 关注
实名认证
服务提供商

寻找教程;翻译教程;题库提供;教程发布;计算机技术答疑;行业分析报告提供;

1亿VIP精品文档

相关文档