1、微机原理与单片机 技术 第三讲 PIC单片机的最小系统及开发流程 黄之峰 广东工业大学 自动化 学院 本讲内容 1. PIC单片机引脚及功能 2. PIC单片机的最小系统 3. PIC单片机的封装 4. PIC单片机的烧写流程 5. PIC单片机的集成开发环境 MPLAB 第三讲 1, PIC单片机引脚及功能 33个输入输出引脚分为5个端口: A(6), B(8), C(8),D(8),E(3)。 电源引脚: VDD, VSS 时钟信号引脚: OSC1,OSC2 复位信号引脚: MCLR 功能引脚复用 第三讲 2, PIC单片机最小系统 三要素: 电源电路 , 时钟电路 , 复位电路 电源电路
2、:对单片机进行供电 5V 时钟电路:为单片机提供稳定时序,单片机可以看成是时钟驱动下的时序逻辑电路。( 20MHz) 复位电路:为单片机提供复位信号,复位引脚低电平有效,复位使程序计数器 PC从地址 0000H重新读取指令。 复位的作用 第三讲 2, PIC单片机最小系统 复位的作用: 使程序计数器 PC从地址 0000H重新读取指令 。 复位的形式:四种。 1. 上 电复位: 上电时,单片机 VDD上升到一定数值,产生一个复位脉冲,使单片机复位。 上 电定时器: 在单片机刚上电时,提供一个 72ms的延时,在 VDD慢慢趋于稳定后,单片机方可正常工作。在该延时期间,单片机保持在复位状态。 起
3、振定时器 :上电延时 72毫秒之后,再提供 1024个时钟周期的延迟,让振荡器产生稳定的波形。 2. 看门 狗定时器溢出复位 3. 手动复位,当 MCLR为低电平时。 4. 掉 电复位电路:为了保证单片机正常运行,当 VDD的值小于 VBOR的时间大于 TBOR是,芯片将自动产生一 复位信号,并使其保持在复位状态 BOR: Brown-out Reset 欠压复位 第三讲 2, PIC单片机最小系统 由于 PIC单片机具备上电复位的功能,设计最小系统的时候可以直接把 MCLR拉成高电平就可以了,可以不需要而外的阻容电路。 VCC 20MHz 22uF 上 电7 2 m s 的 延 时等 待 V
4、 D D 稳 定1 0 2 4 个 时 钟 周 期等 待 晶 振 输 出 稳 定单 片 机 开 始 工 作上 电 定 时 器起 振 定 时 器 ( 时 钟 周 期等 于 晶 振 频 率 的 倒 数 )第三讲 2, PIC单片机最小系统 由于 PIC单片机具备上电复位的功能,设计最小系统的时候可以直接把 MCLR拉成高电平就可以了,可以不需要而外的阻容电路。 上电复位时序图 72ms 延时 1024时钟周期 第三讲 2, PIC单片机最小系统 阻容复位电路作用:手动复位 电容充电时间计算: T=0.63*RC 例: R=10k , C=10 F 解: T = 10103 10106=10103s
5、* 0.63=63ms 注意:估算的时候 ,电阻单位换算成 ,电容单位换算成 F, 这样算出来的时间单位才是秒 阻容复位电路复位时间计算 电容电位变化图 第三讲 3, PIC单片机的封装 典型 PIC中档单片机的引脚和封装形式众多,引脚数从 6个到 44个,封装形式则有: SOT、SSOP、 SOIC、 TQFP、 PDIP、 QFN和 PLCC等等。 DIP封装的PIC16F877A SOIC和 SSOP封装的 PIC单片机 TQFP封装的PIC6F877A 更加详细的封装信息在 datasheet里面 第三讲 3, PIC单片机的封装 欣赏下黑胶芯片的内部 TQFP封装的PIC6F877A
6、 集 成 电 路 的 封 装( Package) 指厂商对由集成电路的核心 半导体硅片的包装方式 , 也即芯片的载体 。 小知识点 环氧树脂聚合物 成本低,重量轻 光照 (包括紫外线)会影响晶体管的工作性能,所以外壳不能透光。 第三讲 4, PIC单片机的烧写流程 对应芯片的C编译器 .hex 文件 生成 烧写 通过调试器 /仿真器 /编程器 .c文件 or .asm 文件 第三讲 5. PIC单片机的集成开发环境 MPLAB 软件安装详见课本 P32, 3.3节 安装程序,下课学习委员来找我拷贝 MPLAB 8.8 IDE (本课程讲解用 ) MPLAB X IDE (最新版本 ) 可官方免
7、费下载 , 但只 支持汇编编译 , C语言编译的话需要安装其他C编译器 , 而且不同信号的编译器不同 第三讲 5. PIC单片机的集成开发环境 MPLAB MPLAB IDE提供以下功能: 完成源程序的编写。 将源程序编译成目标代码。 配合硬件调试器、开发板完成软件的调试。 配合编程器将调试成功的目标代码写入到开发板的单片机的存储器中。 新建工程演示 3.1 P26 第三讲 5. PIC单片机的集成开发环境 MPLAB MPLAB下,开发所有项目均需要经过以下基本步骤: 1. 选择器件 2. 选择语言工具 3. 将文件添加到项目 4. 创建代码 5. 编译项目 6. 使用软件模拟器测试代码 软
8、件仿真演示 3.6 P42 第三讲 5. PIC单片机的集成开发环境 MPLAB MPLAB IDE软件仿真 作用:进行软件仿真,可以观察各个寄存器的值得变化。可以在没有硬件的情况下调试和 学习汇编语言 各个指令对单片机寄存器的影响。 断点调试 作用:用于观察特定语句的运行情况。 学会使用 Watch窗口 P 40 作用:观察寄存器变化 第三讲 5. PIC单片机的集成开发环境 MPLAB 一个 实例仿真 : 实例 3-1, P 26 配套教材 第三讲 5. PIC单片机的集成开发环境 MPLAB 一个实例仿真 P 30 配套教材 INCLUDE “P16F877.INC“ ;PIC16F87
9、7A包含的头文件 ORG 0000H ;伪指令,即下面的 程序 从 程序存储器的地址 0000H开始存放 NOP BSF STATUS,PR0 ;选择数据存储器的体 1 CLRF TRISD ;把端口 D设置为输出 BCF STATUS,PR0 ;选择数据存储器体 0 MOVLW 0XFE ;把立即数 0xFE传送到工作寄存器 W MOVWF PROTD ;把工作寄存器 W的值( 0xFE)传送到 PROTD LP GOTO LP ;原地循环 END 第三讲 5. PIC单片机的集成开发环境 MPLAB 另一 个实例 驱 动 芯 片 , 高电 平 导 通驱 动 芯 片 , 高电 平 导 通3
10、. R A 1 / A N 03 0 . R D 72 9 . R D 62 8 . R D 52 7 . R D 42 2 . R D 32 1 . R D 22 0 . R D 11 9 . R D 01 1 . V D D1 2 . V S S1 3 . O S C 11 4 . O S C 21 M C L R5V第三讲 5. PIC单片机的集成开发环境 MPLAB INCLUDE “P16F877.INC“ ;PIC16F877A包含的头文件 ORG 0000H ;伪指令,即下面的程序从程序存储器的地址 0000H开始存放 NOP BSF STATUS,RP0 ;选择数据存储器的体 1 CLRF TRISD CLRF TRISA BSF ADCON1,0 BSF ADCON1,1 BSF ADCON1,2 BSF ADCON1,3 ; 设置 RA口为 IO口 BCF STATUS,RP0 ;选择数据存储器的体 0 MOVLW 0XAA MOVWF PORTD MOVLW 0XFF BSF PORTA,1 NOP LP GOTO LP END 第三讲 5. PIC单片机的集成开发环境 MPLAB 编译失败的 原因 1-拼写错误 学会看 Output窗口的信息 第三讲 5. PIC单片机的集成开发环境 MPLAB 编译失败的原因 2-用中文输入法输入“;”“,”