基本信息
文件名称:Microchip 系列:PIC18 系列_(1).PIC18系列概述.docx
文件大小:26.72 KB
总页数:27 页
更新时间:2025-06-23
总字数:约1.35万字
文档摘要

PAGE1

PAGE1

PIC18系列概述

1.PIC18系列简介

PIC18系列是Microchip公司推出的一款高性能8位单片机(MCU)系列。该系列单片机在工业控制、消费电子、汽车电子、医疗设备等多个领域得到了广泛应用。PIC18系列单片机具有以下特点:

高性能:工作频率最高可达48MHz,提供强大的计算能力。

丰富的外设:包括定时器、捕捉/比较/PWM(CCP)模块、USART、SPI、I2C、A/D转换器等。

低功耗:多种低功耗模式,适用于电池供电的应用。

高集成度:内置振荡器、看门狗定时器、brown-outreset(BOR)等。

灵活的存储结构:支持高达128KB的程序存储器和高达4KB的数据存储器。

强大的开发工具:支持MPLABXIDE和MPLABXC8编译器,提供完善的开发环境。

2.PIC18系列的主要型号

PIC18系列单片机有多种型号,每种型号在性能、外设和引脚数量上有所不同。以下是几种常见的型号及其特点:

PIC18F4520:40/44引脚,16KB程序存储器,2KB数据存储器,支持USART、SPI、I2C、A/D转换器等。

PIC18F25K20:18/28引脚,32KB程序存储器,1.5KB数据存储器,支持USART、SPI、I2C、A/D转换器等。

PIC18F2550:28/40引脚,24KB程序存储器,1.5KB数据存储器,支持USB、USART、SPI、I2C等。

PIC18F2455:28/40引脚,16KB程序存储器,2.5KB数据存储器,支持USB、USART、SPI、I2C等。

3.PIC18系列的架构

3.1内核架构

PIC18系列单片机基于增强型8位RISC(精简指令集计算机)架构,具有以下特点:

8位ALU(算术逻辑单元):支持8位数据处理。

12位指令字长:少数指令为16位。

31条指令:指令集简单,易于编程。

双数据总线:提高数据访问速度。

堆栈:13级硬件堆栈,支持函数调用和中断处理。

3.2存储器架构

PIC18系列单片机的存储器架构包括程序存储器(Flash)和数据存储器(RAM)两部分:

程序存储器:支持高达128KB的Flash存储器,可用于存储程序代码。

数据存储器:支持高达4KB的RAM,用于存储变量和临时数据。

EEPROM:部分型号支持高达256字节的EEPROM,用于存储非易失性数据。

3.3引脚配置

PIC18系列单片机的引脚配置根据型号不同而有所差异。常见的引脚包括:

电源引脚:VDD和VSS。

时钟引脚:OSC1和OSC2,用于外接晶振或内部振荡器。

I/O引脚:可配置为输入或输出,提供多种外设功能。

复位引脚:MCLR,用于复位单片机。

编程引脚:PGC、PGD和PGM,用于通过ICSP(在线串行编程)进行编程和调试。

4.PIC18系列的开发工具

4.1MPLABXIDE

MPLABXIDE是Microchip公司提供的集成开发环境,支持PIC18系列单片机的开发。主要特点包括:

项目管理:创建、管理和组织项目文件。

代码编辑:支持多种编程语言,包括C和汇编。

调试工具:支持在线调试,提供单步执行、断点、变量查看等功能。

仿真工具:内置仿真器,可在没有硬件的情况下测试代码。

4.2MPLABXC8编译器

MPLABXC8编译器是专门为PIC18系列单片机设计的C语言编译器。主要特点包括:

优化:提供多种代码优化选项,提高程序效率。

标准库:内置丰富的标准库函数,简化开发过程。

调试支持:生成调试信息,方便使用MPLABXIDE进行调试。

4.3MPLABICD3编程器

MPLABICD3编程器是Microchip公司提供的编程和调试工具,支持PIC18系列单片机的在线编程和调试。主要特点包括:

编程:通过ICSP接口进行编程。

调试:支持在线调试,提供单步执行、断点、变量查看等功能。

电压适应性:支持2.0V到5.5V的目标电压范围。

5.PIC18系列的基本配置

5.1配置熔丝位

熔丝位(Fuses)是PIC18系列单片机中用于配置各种硬件特性的寄存器。常见的熔丝位包括:

振荡器配置:选择内部或外部振荡器,设置振荡器频率。

复位配置:配置复位引脚的功能,例如外部复位或内部复位。

功耗配置:设置功耗模式,例如低功耗模式。

代码保护:防止代码被读取或修改。

配置熔丝位的代码示例如下:

//配置熔丝位

//MPLABXIDE中的熔丝位配置

//可以通过MPLABXIDE的ConfigBits选项卡进行图形化配置

//例如,配置振荡器为4MHz内部振荡器

#pragmaconfigFOSC=