基本信息
文件名称:Microchip 系列:PIC18 系列_(2).PIC18系列架构与工作原理.docx
文件大小:27.45 KB
总页数:26 页
更新时间:2025-06-23
总字数:约1.34万字
文档摘要

PAGE1

PAGE1

PIC18系列架构与工作原理

1.引言

在上一节中,我们已经对PIC18系列单片机的基本概念和应用领域进行了简要介绍。本节将深入探讨PIC18系列单片机的架构与工作原理,帮助读者更好地理解其内部结构和运行机制。通过本节的学习,您将能够掌握PIC18系列单片机的基本架构、指令集、存储器结构和中断系统等方面的知识,为后续的编程和应用开发打下坚实的基础。

2.基本架构

2.1硬件架构

PIC18系列单片机采用了哈佛架构(HarvardArchitecture),这是一种将程序和数据存储在独立的存储空间中的架构。这种架构使得程序存储器和数据存储器可以并行访问,从而提高了数据处理的效率。

2.1.1哈佛架构的特点

独立的程序存储器和数据存储器:程序存储器用于存储指令,数据存储器用于存储数据。

并行访问:CPU可以在同一时钟周期内同时访问程序存储器和数据存储器。

固定的指令长度:PIC18系列单片机的指令长度为14位或16位。

2.1.2主要组成部分

中央处理单元(CPU):负责执行指令和数据处理。

程序存储器:用于存储用户程序和常量数据。

数据存储器:用于存储变量和寄存器。

输入/输出(I/O)端口:用于与外部设备进行数据交换。

定时器/计数器:用于定时或计数功能。

中断系统:用于处理外部中断请求。

特殊功能寄存器(SFR):用于控制单片机的各种功能。

2.2指令集

PIC18系列单片机的指令集包括了多种类型的指令,如数据传输指令、算术逻辑运算指令、位操作指令、控制转移指令等。了解这些指令的用法和功能,是进行程序开发的基础。

2.2.1数据传输指令

MOV:将一个寄存器或立即数的值移动到另一个寄存器。

MOVF:将一个寄存器的值移动到另一个寄存器或WREG寄存器。

MOVWF:将WREG寄存器的值移动到指定的寄存器。

示例代码:

;将immediate值0x55移动到寄存器FSR0L

MOV0x55,FSR0L

;将寄存器FSR0L的值移动到WREG

MOVFFSR0L,W

;将WREG的值移动到寄存器PORTA

MOVWFPORTA

2.2.2算术逻辑运算指令

ADD:将指定寄存器或立即数的值加到WREG寄存器。

SUB:将指定寄存器或立即数的值从WREG寄存器中减去。

AND:将指定寄存器或立即数的值与WREG寄存器进行按位与操作。

OR:将指定寄存器或立即数的值与WREG寄存器进行按位或操作。

示例代码:

;将寄存器PORTB的值加到WREG

ADDPORTB,W

;将立即数0x10从WREG中减去

SUB0x10,W

;将寄存器TRISA与WREG进行按位与操作

ANDTRISA,W

;将立即数0x0F与WREG进行按位或操作

OR0x0F,W

2.2.3控制转移指令

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

CALL:调用子程序。

RETURN:从子程序返回。

RETFIE:从中断服务子程序返回,并清除中断标志。

示例代码:

;无条件跳转到程序地址0x0010

GOTO0x0010

;调用子程序subRoutine

CALLsubRoutine

;从子程序返回

RETURN

;从中断服务子程序返回,并清除中断标志

RETFIE

2.3存储器结构

PIC18系列单片机的存储器结构分为程序存储器和数据存储器两部分。程序存储器用于存储用户程序和常量数据,数据存储器用于存储变量和寄存器。

2.3.1程序存储器

Flash存储器:用于存储用户程序,支持多次编程和擦除。

EEPROM存储器:用于存储非易失性数据,如配置参数。

2.3.2数据存储器

RAM:用于存储变量和寄存器。

特殊功能寄存器(SFR):用于控制单片机的各种功能,如定时器、中断、I/O端口等。

示例代码:

//初始化Flash存储器

voidinitFlash(){

//设置Flash存储器的访问模式

NVMCON=0x00;//清除NVMCON寄存器

NVMKEY=0xAA;//写入第一个密钥

NVMKEY=0x55;//写入第二个密钥

NVMCON=0x40;//设置为编程模式

__builtin_write_NVM();//触发编程操作

}

//读取EEPROM存储器中的数据

uint8_treadEEPROM(uint16_taddress){

EEADR