第2章 PIC16F87X系列单片机
福州大学 PIC 第二章 PIC单片机的组成
第2章PIC单片微机的组成PIC(Periphery Interface Chip)单片微机是美国Microchip公司生产的PIC系列单片机。
PIC系列单片机的硬件系统设计简洁,指令系统设计精炼。
在所有的单片机品种中,PIC具有性能完善、功能强大、学习容易、开发应用方便、人机界面友好等突出优点。
2.1 PIC 系列单片机概述2.1.1 PIC系列单片机特点Microchip公司是一家专门致力于单片机开发、研制和生产的制造商,其产品设计起点高,技术领先,性能优越。
它不是在一般微型计算机CPU的基础上加以改造,而是独树一帜,采用全新的流水线结构、单字节指令体系、嵌入闪存以及10位A/D转换器,使之具有卓越的性能,代表着单片机发展的新方向。
PIC系列单片机,具有高、中、低三个档次,可以满足不同用户开发的需要,适合在各个领域中的应用。
它具有如下特点:单片机总线结构单片微型计算机通常采用两种体系结构:一种是普林斯顿体系结构;另一种是哈佛体系结构。
在普林斯顿体系结构中,其程序存储器和数据存储器统一编址,也就是说两种存储器位于同一逻辑空间。
这种单片机的取指令和存取数据必须分时地进行,影响了执行指令的速度。
哈佛体系结构的程序存储器和数据存储器独立编址,也就是说两种存储器有不同的逻辑空间。
1. 哈佛总线结构PIC系列单片机采用哈佛总线结构,在芯片内部数据总线和指令总线分离,容许采用不同的字节宽度。
这样,就为实现指令提取和执行的“流水作业”提供结构保证,即在执行一条指令的同时对下一条指令进行取指操作。
两总线的分离,也为PIC实现全部指令的单字节化和单周期化创造条件,从而大大提高CPU执行指令的速度和工作效率。
单片机总线结构比较从同一存储器空间取指令和取操作数据。
限制了数据流量。
从两个独立的存储空间分别取指令和存取操作数。
数据流量增加。
针对程序区和数据区可以设计不同的数据线宽度。
程序和数据存储器冯-纽曼结构8-位程序存储器数据存储器8-位12/14/16-位哈佛结构2.RISC技术PIC系列单片机的指令系统,由于采用RISC技术,和一般单片机指令系统通常有上百条指令相比要少得多。
PIC16F87x的数据存储器规划和中断编程
PIC16F87x的数据存储器规划和中断编程
林东亮;罗胜
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2006(000)007
【摘要】PIC系列单片机的硬件结构和指令系统采用很多独有的设计,其中数据存储器的分页结构是一个典型的特征.本文以PIC16F87x子系列单片机为例,分析其存储器特点,介绍数据存储器变量存储位置的合理安排方法,从而给分页选择处理和中断现场保护编程带来好处.
【总页数】3页(P79-81)
【作者】林东亮;罗胜
【作者单位】闽江学院;温州大学
【正文语种】中文
【中图分类】TP3
【相关文献】
1.在DSP的C编程中常量数据段的存储器分配 [J], 丁刚
2.一次编程(OTP)存储器的数据保持特性工艺研究 [J], 房世林;李月影;何永华
3.0.18μm一次编程(OTP)存储器的数据保持性能研究 [J], 林俊毅;刘宇
4.用单片机实现SPI接口存储器数据编程设计 [J], 李伟光;王元聪
5.浮栅非易失存储器中低温数据保持的编程/擦除循环加速统计模型 [J],
因版权原因,仅展示原文概要,查看原文内容请购买。
PIC单片机 配置位中文资料16F87XA
PIC16F877A 配置位中文说明PIC16F876A 配置位中文说明PIC16F874A 配置位中文说明PIC16F873A 配置位中文说明Configuration BitsREGISTER 14-1: CONFIGURATION WORD (ADDRESS 2007h)bit 13 CP: Flash Program Memory Code Protection bit 程序存储器保护位1= Code protection off 保护位关闭可以读出代码0= All program memory code-protected保护位开启代码保护读出全0bit 12 Unimplemented: Read as ‘1’未使用设置1bit 11 DEBUG: In-Circuit Debugger Mode bit 在线调试模式位1= In-Circuit Debugger disabled, RB6 and RB7 are general purpose I/O pins 在线调试关闭RB6和RB7 通用IO 端口0= In-Circuit Debugger enabled, RB6 and RB7 are dedicated to the debugger在线调试开启RB6和RB7 调试专用端口bit 10-9 WRT1:WRT0 Flash Program Memory Write Enable bits WRT0 Flash程序存储器的写使能位For PIC16F876A/877A:11= Write protection off; all program memory may be written to by EECON control写保护关闭全部存储空间可通过EECON控制写入。
10= 0000h to 00FFh write-protected; 0100h to 1FFFh may be written to by EECON control0000h to 00FFh 写保护; 0100h to 1FFFh 可通过EECON 控制写入01= 0000h to 07FFh write-protected; 0800h to 1FFFh may be written to by EECON control0000h to 07FFh 写保护; 0800h to 1FFFh 可通过EECON 控制写入00= 0000h to 0FFFh write-protected; 1000h to 1FFFh may be written to by EECON control0000h to 0FFFh 写保护; 1000h to 1FFFh 可通过EECON 控制写入For PIC16F873A/874A:11= Write protection off; all program memory may be written to by EECON control10= 0000h to 00FFh write-protected; 0100h to 0FFFh may be written to by EECON control01= 0000h to 03FFh write-protected; 0400h to 0FFFh may be written to by EECON control00= 0000h to 07FFh write-protected; 0800h to 0FFFh may be written to by EECON controlbit 8 CPD: Data EEPROM Memory Code Protection bit EEPROM存储器保护位1= Data EEPROM code protection off EEPROM存储器保护位关闭可读写0= Data EEPROM code-protected EEPROM存储器保护位关闭不可读bit 7 LVP: Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit低电压(单电源)在电路中的串口编程使位1= RB3/PGM pin has PGM function; low-voltage programming enabled开启RB3端口PGM低电压编程功能0= RB3 is digital I/O, HV on MCLRmust be used for programmingRB3 数字I/O MCLR必须使用高编程电压才可以bit 6 BOREN: Brown-out Reset Enable bit 欠压/掉电复位使能1= BOR enabled 欠压/掉电复位功能开0= BOR disabled 欠压/掉电复位功能关bit 5-4 Unimplemented: Read as ‘1’未使用设置1bit 3 PWRTEN: Power-up Timer Enable bit 上电延时使能1= PWRT disabled上电延时使能关0= PWRT enabled上电延时使能开bit 2 WDTEN: Watchdog Timer Enable bit 看门狗定时使能1= WDT enabled看门狗定时使能开0= WDT disabled看门狗定时使能关bit 1-0 FOSC1:FOSC0: Oscillator Selection bits振荡器类型选择11= RC Resistor/Capacitor oscillator RC阻容振荡器10= HS High-Speed Crystal/Resonator oscillator 高频率石英晶体振荡器4-20MHZ01= XT Crystal/Resonator oscillator 石英晶体振荡器200k-4MHZ00= LPr Low-Power Crystal oscillato 低功耗方案振荡器32-200khzLegend:R = Readable bit P = Programmable bit U = Unimplemented bit, read as ‘0’- n = Value when device is unprogrammed u = Unchanged from programmed stateNote 1: The erased (unprogrammed) value of the Configuration Word is 3FFFh.。
基于PIC16F87X微处理器控制的数控机床双闭环调速系统的设计
系 统 原 理 如 图 1所 示 。
出
经过波 形 整形后 得 到矩形 脉 冲信 号 。 ( P C1 F 7 片 内 集 成 的 WD 和 上 电 复 位 电 路 5) I 6 8 X T
可 以时刻 对 系统进 行保 护 。
1 系统 的 硬 件 设 计
造 精 度 和 机 床 装 配 精 度 的 传 统 方 法 来 设 计 制 造 高 精 度 数 控 机 床 , 必 大 幅 度 提 高 机 床 的 成 本 , 有 些 情 况 下 势 在 甚 至 不 可 能 。 面 对 这 一 现 实 , 们 对 以 低 成 本 实 现 高 我 精 度 的 途 径 进 行 了探 索 , 出一 种 通 过 信 息 、 制 机 提 控
WA G Q —u n X i N i a , UJ y n
( o eeo n i eig a j gA r u ua U i r t,N nig2 0 3 , hn ) C l g f g e r ,N ni gi h rl nv s y aj 10 C i l E n n n c ei n 1 a
王 其 远 , 进 徐
( 南京 农业 大学 工 学院 ,南京 20 3 ) 10 1
摘 要 : MI OCHI 以 RC P微 处 理 器 为 核 心 的 数 字 控 制 系 统 , 用 改 进 的 P D 算 法 实 现 双 闭 环 控 制 。 并 通 过 利 I
MA L B 建 立 数 控 机 床 仿 真 模 型 ,实验 证 明 该 方 案 在 机 床 控 制 上 具 有 更好 的稳 定 性 , 强 的 鲁 棒 性 和 抑 TA 较
jc hd be rvd f s l et a enp o e e i e ab .
PIC单片机指令系统和汇编语言程序设计
第二章PIC单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.1 指令的表示方法1.机器指令的表示方法:指令用于规定计算机的基本操作。
一台计算机所能执行的指令集合就是它的指令系统。
指令共有两种表示方法,分别是机器语言表示方法和汇编语言表示方法。
不同种类的单片机有不同的一套命令(即所谓“指令系统”)。
2.汇编语言的表示方法:汇编语言是对机器语言的改进,它采用便于人们记忆的一些符号(例如简化的英文单词)来表示操作码、操作数和地址码等。
通常把表示指令的符号称之为助记符。
3.PIC16F87X单片机指令:PIC16F87X单片机采用精简指令集(RISC)结构,指令效率高,功能强。
它的指令为单字的宽字位(14)指令,由此生成的程序代码短。
指令条数少,仅有35条。
(1)面向字节操作类(2)面向位操作类(3)常数操作和控制类操作。
2.1.2PIC单片机指令的寻址方式1.寄存器间接寻址:所谓寄存器间接寻址指的是通过寄存器F0、F4来实现。
实际的寄存器地址放在F4的低5位中,通过F0来进行间接寻址。
INDF不是物理上实际存在的寄存器,而任何寻址INDF的指令都是以FSR寄存器内容为地址的RAM单元中存放着参加运算或操作的数据。
2.立即数寻址:所谓立即寻址就是操作数在指令中直接给出。
通常把出现在指令中的操作数称之为立即数,因此就把这种寻址方式称之为立即寻址。
3.直接寻址:指令中操作数以其所在存储单元地址的形式给出,就称之为直接寻址。
这种方式是对任何一寄存器直接寻址访问。
4.位寻址:这种寻址方式是对寄存器中的任一位(bit)进行操作。
2.1.3指令符号的意义说明1.PIC汇编语言指令格式PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:标号操作码助记符操作数1,操作数2;注释2.指令符号的意义说明:在PIC系列单片机指令中常把数据存储器RAM当作寄存器来使用(处理)并用字母f(或F)表示。
基于PIC16F87X单片机的火灾报警系统设计概要
基于PIC16F87X单片机的火灾报警系统设计基于PIC16F87X单片机的火灾报警系统设计类别:单片机/DSP火灾报警系统是各行各业必需的一种安全系统网络,可靠的监测与数据传输是该系统非常重要的环节。
以往的火灾报警系统经常会出现总线上的数据冲突、长距离数据传输的不可靠以及不易扩展等问题,随着近年来一些低价格、高性能单片机被广泛应用于各个电路系统,尤其是电路控制等方面,这些问题都得到了一定的改善。
本系统采用了美国微芯公司生产的运行速度快、功耗低且驱动能力强的PIC16F87X系列单片机,作为该系统电路的逻辑控制、总线侦听以及数据读取与发送单元,解决了可靠数据监测以及长距离传输所面临的问题,可以准确地远程监视火灾发生地点。
硬件设计系统硬件电路设计系统基本工作原理如图1所示。
传感器输出的电流信号经过电流转换电压电路变为电压信号,然后由信号放大电路将信号转化为适合模数转换器件(A/D)的输入信号,最后将数字化的采样结果送入单片机PIC16F87X,分析该数据是否已经达到了火灾效应。
若分析得到有火灾发生时,先进行总线侦听,当总线“空闲”时则单片机立即读出外部ROM事先存储好的有关室内所有的信息数据(包括报警装置的放置位置),然后发送数据并将这些重要数据送到部门远程监视系统的液晶显示器LCD上,最后输出连续脉冲信号,通过驱动电路驱动报警喇叭以提醒监视人员有火灾危险。
传感器介绍及其外围电路的设计该系统使用的传感器为HS系列一氧化碳电化学气体传感器,以定电位电解为基本原理。
当一氧化碳扩散到气体传感器时,其输出端产生电流输出,起着将化学能转化为电能的作用。
当一氧化碳气体浓度发生变化时,气体传感器的输出电流也随之成正比变化。
传感器测定范围:0-1000ppm 输出电流:4010nA/ppm 工作气压:1atm 10% 将电流信号转换为电压信号是引入一个电阻R1,将0~40mA的电流信号转换为0~4V的电压信号,然后进行放大滤波。
PIC16F87X单片机的定时器-计数器的应用
PIC16F87X 单片机的定时器/计数器的应用
PIC16F87X 单片机内部配置了3 个定时器/计数器,分别记为TMR0、TMR1、TMR2。
这3 个定时器/计数器模块不仅在电路结构上不相同,而且其在设计的初衷和使用上也各有不同。
·定时器/计数器TMR0。
定时器/计数器TMR0 是3 个同类模块中最常用的器件,与定时器/计数器TMR0 相关的寄存器共有4 个,分别为累加计数寄存器TMR0、选项寄存器OPTION REG、中断控制寄存器INTCON 和端口RA 方向寄存器TRISA。
·定时器/计数器TMR1。
定时器/计数器TMR1 是一个由两个8 位可读写的寄存器(TMR01H 和TMRIL)组成的16 位定时器/计数器,它带有一个3 位的可编程预分频器和一个内置的低功耗低频时基振荡器。
第2章 新系列单片机PIC16F8XX
512 ROM
36
64
10
PIC16CR84
1K ROM
68
64
10
PIC16F84A外部功能特征也很独特,主要集中如下: 输入输出口数有13引脚。 输入输出电流 (LED直接驱动I/O),输入最大电流 25mA,输出最大电流 20 mA。 定时器TMR0为8位定时器/计数器。 另外PIC16F84A具备特殊功能:开机再初始化功能POR(Power-on reset)、开机定时功能PWRT(Power up Timer)、时钟开始定时功能 OST、看门狗定时功能WDT(Watch Dog Timer) 等。
表2.1为PIC16F8X单片机系列的性能参数比较
PIC16F8X 系 列 程序存储器 (WORDS) 数据存储器 RAM (BYTE) 数据 EEPROM (BYTE) 最大频率 ( MHz )
PIC16F8C16F84
1K Flash
68
64
10
PIC16CR83
图2.5 RAM 随机存储器
3.可擦除只读存储器EEPROM (Electrically Erasable Programmable Read Only Memory)
与RAM相比,EEPROM存储器在关电源后,存储器内数据不会丢失。 EEPROM存储器可通过程序再写入置换。该存储器容量64字节。使用寿命 100万次。它们不能用于存储程序运行途中的数据,通常用于存储常量,变 化较少的数据等。虽然100万次不是个小数,但与程序运行速度比较就不算 多了。该存储器数据可保持40年。
6.八级硬堆栈
被称为堆栈的硬件其实也是存储器。主要用于存储程序因各种原因跳转后且在 执行完规定程序后返回地址。比如,同样的处理可能存在于整个程序多个地方,这 个处理程序通常用子程序的方式来实现。 在子程序最后用返回RETURN命令来返 在子程序最后用返回RETURN命令来返 回主程序。这种子程序的做法可以达到节省程序存储器的目的。 在主程序中用 CALL命令来调用子程序,为了从子程序返回主程序,此刻在堆浅中应该存储好返 CALL命令来调用子程序,为了从子程序返回主程序,此刻在堆浅中应该存储好返 回地址。程序的这个动作通常叫压栈(PUSH)。在子程序处理完RETURN命令后, 回地址。程序的这个动作通常叫压栈(PUSH)。在子程序处理完RETURN命令后, 程序运行从存储于堆浅中的返回地址开始运行,这个动作通常叫出栈(POP)。在整 程序运行从存储于堆浅中的返回地址开始运行,这个动作通常叫出栈(POP)。在整 个程序中,可以有子程序中套子程序,这样需要多级堆栈。在此,八级堆栈就是子 程序套子程序最多到八级。 编写程序不能超八级堆栈使用,子程序必须以 RETURN命令结束。其原理图请见图2 RETURN命令结束。其原理图请见图2.6,跳转命令是不使用堆栈的,也不需返回 地址。
PIC02PIC单片机结构
§1.4 数据存储器RAM 数据存储器RAM 数据存储器又称为文件寄存器, 数据存储器又称为文件寄存器,为了与片 文件寄存器 内的另一种数据存储器E PROM区分 区分, 内的另一种数据存储器E2PROM区分,又称它 RAM数据存储器 简称RAM。 RAM有以下 数据存储器, 为RAM数据存储器,简称RAM。 RAM有以下 的特点: 的特点: ㈠从PIC16F877的内部组织可以看出RAM的地址 PIC16F877的内部组织可以看出 的内部组织可以看出RAM的地址 宽度是9 (bit)的 因此RAM的最大寻址空间 宽度是9位(bit)的,因此RAM的最大寻址空间 512个字节 个字节(byte)。 是512个字节(byte)。 ㈡RAM是按照“体(Bank)”进行管理的,每个体 RAM是按照 是按照“ (Bank)”进行管理的 进行管理的, 128个字节。 512个字节可分为 个体, 个字节可分为4 为128个字节。 512个字节可分为4个体,从左 到右排列,分别记为体0 和体3 到右排列,分别记为体0、体1、体2和体3。
PIC16F87X 把程序存储器Falsh ROM 的每 PIC16F87X 把程序存储器 Falsh ROM的每 2K 的每2 个存储单元称为一页(page) 所以PIC16F874/ 个存储单元称为一页 (page) , 所以 PIC16F874 / 877 的 8K×14 位的 Falsh ROM分为 4 页 ( 记为页 0 、 877的 14位的 位的Falsh ROM 分为 分为4 记为页0 和页3 PIC16F873/ 876的 14位 页 1 、 页 2 和页 3) ; 而 PIC16F873 / 876 的 4K×14 位 ROM , 即页0 和页1 对于PIC16F870/ 的 Falsh ROM, 即页 0 和页 1 ; 对于 PIC16F870 / 871/872,2K×14位的Falsh ROM只有1页,即页0。 871/872, 14位的 位的Falsh ROM只有 只有1 即页0 如图所示(见书p27) 如图所示(见书p27)。 至于程序存储器为何需要分页? 至于程序存储器为何需要分页?分页到底有 何意义?此问题以后再讨论。 何意义?此问题以后再讨论。 PIC16F87X PIC16F87X 的程序存储器中有两个单元地址 比较特殊: 比较特殊:
基于PIC16F87X的电磁继电器控制设计
低压电器(2008№15)通用低压电器篇智能电器及计算机应用刘华昌(1979—),助理研究员,从事高电压和测控技术研究。
基于P I C16F87X 的电磁继电器控制设计刘华昌(中国工程物理研究院电子工程研究所,四川绵阳 621900)摘 要:为保障电路良好隔离及人员安全,介绍了一种智能型电磁继电器控制电路。
在描述了电磁继电器工作原理后,以P I C16F87X 单片机为核心,设计了控制电磁继电器的硬件电路,并给出控制程序流程。
该控制电路结构简单、工作可靠,具有一定的实用价值。
关键词:P I C 16F87X;电磁继电器;吸合;释放中图分类号:T M 581 文献标识码:B 文章编号:100125531(2008)1520016203C on tr ol Desi gn of E lectr o m a gneti c Rel a y Ba sed on P IC16F87XL I U Huach ang(I nstitute of Elec tr onic Engineering of CAEP,M ianyang 621900,China ) Abstr ac t:An intelligen t elec tro m ag neti c relay con trol c ircuitwas introduced for g ood circuit is ola ti on and crewsafe t y .After the working p rinc i ple of the electro magne tic re lay wa s ex pounded,the hard wa re circuit was designed and the p rogramm ing fl owcha rtwas given with P IC16F87X as a core .This control circuit fea tures with si mple struc 2ture,g ood reli abilit y and prac tica l app licati on .Key word s:P IC16F87X ;electr om agn et i c r elay;a bsorb;r elea se0 引 言电磁继电器是自动控制中常用的一种元器件,它利用电磁原理实现接通或断开一个或一组接点的一种自动开关,广泛应用在电子设备、仪器仪表及自动化设备中。
PIC单片机第2章
PIC 16F87X microchip
FLASH型
端口A:RA(6线) 端口B:RB(8线) 端口C:RC(8线) 端口D:RD(8线) 端口E:RE(3线)
注:①只列出引脚的基本功能; ②28脚芯片只有RA、 RB 和RC端口。
返回本章目录
大连理工大学 电工电子实验中心 陈育斌
在了解PIC16F877的引脚时,要注意两点:
RB5
RB6 / PGC RB7 / PGD
38
39 40
大连理工大学 电工电子实验中心 陈育斌
引脚名称
PID 类型
复用功能说明
端口C:输入/输出可编程双向端口,此外还有第2、3 功能。 RC0/T1OSO/T1CK I RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA 15 I/O TMR1的震荡输入 / 时钟输出
大连理工大学 电工电子实验中心 陈育斌
结构图
16.起振延时电路:当芯片上电延时后,该电路再提供一个1024个时钟周 期的延时,以保证振荡器有足够的时间来产生稳定的时钟信号; 17.看门狗定时器WDT:自带RC振荡器时钟源的定时器。用来监视程序 的运行状态。如果因某种原因使程序“脱离了”正常的“轨道” 而 “死机”时,能够强行将CPU复位,使系统从0000开始重新执行程 序。 18.欠压复位电路:当芯片的电源电压低于某个值时,CPU将不能正确的 执行指令,这样系统将会产生不可想象的后果。为了防止这种情况的 发生,PIC内部设立了电源监控电路,一旦电源电压低于某一个值时, 系统将自动产生复位,直到电源Vdd恢复正常后再延时72ms,CPU 才由复位状态转向运行状态。
引脚的“复用功能”;
1.
2.
PIC16F887系统资源
中山火炬职业技术学院
结构图
16.起振延时电路:当芯片上电延时后,该电路再提供一个1024个时钟周 期的延时,以保证振荡器有足够的时间来产生稳定的时钟信号; 17.看门狗定时器WDT:自带RC振荡器时钟源的定时器。用来监视程序 的运行状态。如果因某种原因使程序“脱离了”正常的“轨道” 而 “死机”时,能够强行将CPU复位,使系统从0000开始重新执行程 序。 18.欠压复位电路:当芯片的电源电压低于某个值时,CPU将不能正确的 执行指令,这样系统将会产生不可想象的后果。为了防止这种情况的 发生,PIC内部设立了电源监控电路,一旦电源电压低于某一个值时, 系统将自动产生复位,直到电源Vdd恢复正常后再延时72ms,CPU 才由复位状态转向运行状态。
Vss
Vdd
12,31
11,32
P
P
接地端
正电源端
返回本章目录
中山火炬职业技术学院
课堂练习:
1. 外接编程器的IO口是?
中山火炬职业技术学院
课堂练习:
1. 外部中断输入端口的IO?
中山火炬职业技术学院
课堂练习:
1. 模拟输入端口的IO?
中山火炬职业技术学院
2.2:PIC16F87X内部结构方框图
RB5
RB6 / PGC RB7 / PGD
38
39 40
中山火炬职业技术学院
引脚名称
PID 类型
复用功能说明
端口C:输入/输出可编程双向端口,此外还有第2、3 功能。 RC0/T1OSO/T1CK I RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA 15 I/O TMR1的震荡输入 / 时钟输出
为了便于分析、理解,可以将PIC16F87X内部结构分为: 内部核心模块、外围模块两个区域。
PIC16F877原理简介
PIC16F877原理简介1.1 PIC16F877特性:PIC16F877是由Microchip公司所生产开发的新产品,属于PICmicro系列单片微机,具有Flash program程序内存功能,可以重复烧录程序,适合教学、开发新产品等用途;而其内建ICD(In Circuit Debug)功能,可以让使用者直接在单片机电路或产品上,进行如暂停微处理器执行、观看缓存器内容等,让使用者能快速地进行程序除错与开发。
如图1为PIC16F877的40根接脚图,PDIP是指一般最常见的DIP(Dual In Line Package)包装,而PIC单片机也有PLCC(Plastic Leaded Chip Carrier)与QFP(Quad Flat Package)两种形式的包装,依照不同的需求,寻找不同的包装形式。
如图所示,每根接脚都有其特定功能,例如Pin11与Pin32(VDD)为正电源接脚,Pin12与Pin31(VSS)为地线接脚;而有些接脚有两种甚至三种以上功能,例如Pin2(RA0/AN0)代表PORTA的第一支接脚,在系统重置(Reset)后,可自动成为模拟输入接脚,接收模拟讯号,也可经由程序规划为数字输出输入接脚。
图1. 40引脚PIC16F877接脚说明图2. 28引脚PIC16F877接脚图说明图3. 44引脚PIC16F877脚位图说明图4. 44引脚PIC16F877引脚图说明PIC16F877属于闪控式(Flash)单片机,可以重复烧录,其ROM的容量总共是8K words,以2K为一个page,区分为4个pages;内部RAM总共有512个字节(00f~1FFh),以128个字节为一个Bank,共区分为4个Bank,如图5所示,每个Bank的前半段都有其特殊用途,分别连接到其特殊功能模块,例如I/O、CCP、Timer、USART、MSSP等。
图5. PIC16F877的RAM配置图(图片来源:Microchip PIC16F87X Data Sheet)1.2 特殊内嵌功能PIC16F877属于内嵌功能较多的单片机,除了CPU、POM、RAM、I/O等基本构造外,还包括以下各种功能,简介如下:A/D converter:模拟数字转换器,最多可以读取8组模拟输入讯号。
基于PIC16F87X系列单片机直流调速控制器的设计_宋炳菲【参考2书】
幅值变大的矩形电压,加在直流电动机电枢上,通过调节 PW M 宽度可 以调节转速。PW M 宽度的调节可通过给定的调节而调节,而改变给定 即可改变转速。
四、硬件电路设计 1.输入给定电路图
2.速度反馈电路
图 3 给定电路图
图 1 PW M 调速原理图 由图 1 可以看出: U d= (Ton/T)U s,ρ=Ton/T=U d/U s 为 PW M 波形的电压占空比。这样通过 改变 ρ 就可以实现电压 U d 从 0 到 U s 之间连续可调。虽然电压信号是断 续的,但因电动机是一个大电感,并且转子里还加上一个续流二极管这 样就会使电流连续,又加上电压信号频率很高,到少 1 到 4K H Z,所以电 流就会很平滑,接近是一条直线,对速度影响并不大。 三、单片控制的直流 P WM 调整流方框图
— 148 —
科技信息
高校理科研究
PW M 信号的周期可以通过向 PR 2 中写入数值来人为设定。其周期 计算公式如下:
PW M 周期 =(PR 2+1)×4Tosc×(TM R 2 预分频值) 其中,Tosc 为系统时钟周期;4Tosc 为指令周期;TM R 2 预分频值可以 为 1,4 或 16。 通过写入 10 位脉宽寄存器,来设置 PW M 信号的脉冲宽度预定值。 其分辩率高达 10 位:8 位寄存器 C C PR 1L 作为高 8 位;C C P1C O N 控制 寄存器的位 5—位 4 为低 2 位。所以的出公式: PW M 脉宽 =C C PR 1L:C C P1C O N <5:4>×Tosc×(TM R 2 预分频值) 计算 PW M 信号的脉宽。其中,C C PR 1L:C C P1C O N <5:4> 代表由两 个寄存器拼装组合得到的 10 位数据;Tosc 为系统时钟周期,TM R 2 为预 分频值,可以是 1,4 或 16。 在这里记载脉冲宽度的寄存器的字长(10 位)大于记载周期的寄存 器的字长(8 位),看上去,脉冲宽度大于周期好像矛盾,其实不是,只是 周期寄存器的精确度高而已。但是如果真的把脉宽寄存器的值设置的 大于了周期寄存器的值那么就会默认为一直是高电平输出。即电压占 空比 ρ=1。 六、软件设计 1.主程序 见图 7。
PIC16F87X系列单片机.
ALU和工作寄存器W
• PIC16F87X芯片内核心是一个ALU和工作寄存器W。ALU控制
工作寄存器W的内容(数据)和任何一个文件寄存器中的内 容(数据)进行算术运算和逻辑(布尔)运算,ALU的字为8 位,可以用其进行加、减、移位和逻辑操作。除非特别指出, 一般的操作都是以2的补码进行。在有两个操作数的指令中, 典型情况是其中一个操作数放在W寄存器中,另一个操作数 放在文件寄存器或是一个立即数。
• 根据所执行的指令,ALU会影响状态寄存器STATUS中十进制
数字进位标志(即半进位标志) 、二进制借位标志C和全零标志 Z。当ALU运行后的结果为0时,标志位Z置1,否则为0;当进 行加法运算,发生最高为进位,标志位C置1,否则为0;当进 行减法运算,最高位发生借位,标志位C清零,否则为1;当 进行加法运算D3向D4进位时,标志位DC置1,否则为0;当进 行减法运算D3向D4借位,标志位DC清零,否则置1。
表2.1 PIC16F87X系列单片机功能配置
§2.2 内部功能及时序
• PIC16F87X系列单片机是一种高速度、低功耗、
高性能的CMOS器件,含有ROM、RAM、EEPROM、 FLASH RAM、I/O端口、A/D转换器、捕捉器/比较 器/PWM、串行通信端口、定时器、中断控制器和 一个中央处理器。这种结构是基于文件寄存器概 念,有独立的数据/数据存储器总线和程序存储器 总线。数据总线和数据存储器总线是8位的字宽, 程序总线和程序存储器(FLASH PROGRAM MEMORY)是14位字宽。由于数据存储器集成在 片内,通过片内的8位总线与算术逻辑单元(ALU) 连接,可以直接通过内部总线传送信息,所以它 们都是以寄存器方式工作和寻址,程序编码简洁 高效。
第2章 PIC16F87X系列单片机
PIC16F87X单片机中断系统应用须关注的问题
PIC16F87X单片机中断系统应用须关注的问题目前在世界一些著名的单片机产品系列中,PIC16F87X 系列单片机是芯片内部包含有外围设备模块数量最多的单片机品种之一。
PIC16F874 和PIC16F877 单片机的芯片内部集成了15 个外围设备模块;PIC16F873 和PIC16F876 单片机的芯片内部集成了12 个外围设备模块。
在最近推出的该系列的新型号中,PIC16F870 单片机的芯片内部集成了10 个外围设备模块;PIC16F871 单片机的芯片内部集成了13 个外围设备模块;PIC16F872 单片机的芯片内部也集成了10 个外围设备模块(比PIC16F870 多了1 个USART 模块,少了1 个SSP 模块)。
这些外围设备模块在启用时以及在工作过程中,都或多或少地需要CPU 参与控制、协调或交换数据等各种服务工作。
由于CPU 的运行速度非常高,而各个外围设备模块的工作速度却非常低,况且这些外围设备模块也不是频繁地要求CPU 对其服务。
因此,通常采取一种让众多外围设备模块共享1 个CPU,并且能够及时得到CPU 服务的调度方法中断。
一、PIC16F87X 的中断源PIC 系列单片机是当今世界上很有影响力的精简指令集(RISC)微控制器,具有丰富的中断功能。
其中功能强大的中、高挡型号的中断源有18 种之多。
在PIC 单片机家族中,排位属于中上水平的PIC16F87X 子系列单片机具备的中断源多达14 种。
其中,单片机的型号不同,中断源的种类、个数也不同,如表1 所列。
其不足之处是:中断矢量只有1 个,并且各个中断源之间也没有优先级别之分,不具备非屏蔽中断。
从表1 中可以看出,各中断源基本上都是与各个外围设备模块相对应的。
其中,多数外围设备模块对应着1 个中断源(比如定时器/计数器TMR0 模块),。
第2章 PIC16F87X系列单片机
§2.1 概 述
• PIC16F87X系列单片机是MICROCHIP公司
生产的中级产品,具有FLASH程序存储器的 8位CMOS单片机,品种有28引脚的 PIC16F876(A)/873(A)和40/44引脚引脚的 PIC16F877(A)/874(A),对应的封装形式有 PDIP、SOIC、SSOP、PLCC和QFP等多种。 这个系列单片机采用CMOS技术和静态设计 技术,实现了低功耗和宽工作电压范围, 可以满足不同的应用要求。
– 如图2.5所示。
• 根据引脚的功能,可以将引脚分为下列几类。
图2.5 PIC16F87X单片机封装与引脚图
图2.5 PIC16F87X单片机封装与引脚图(续1)
2.3.1 电源VDD引脚和地VSS引脚
• PIC单片机的供电可以在+2.7V~+5V的
范围,为了减少电源噪声的影响,将电源 引脚和地线引脚放置芯片的中间。
2.3.3 主复位信号引脚
• 主复位信号引脚用于外部电路产生复位信
号使PIC单片机复位,低电平有效。在对 CPU编程时,此引脚作为编程电压的输入端 VPP。
2.3.4 端口/功能引脚
• 在PIC单片机中,包含多个端口,且端口引脚大
部分都具有两种或三种功能复用。作为端口, 端口A、端口B、端口C、端口D和端口E都是双 向I/O口,端口B可以通过编程设置为弱上拉输 入。
2.2.1 内部组成
• PIC16F87X系列单片机的内部结构框图如图所示。
整个单片机集成了算术逻辑单元ALU,FLASH程序 存储器,14位指令寄存器,13指针寄存器和8级 13位的堆栈,文件寄存器RAM和特殊功能寄存器, 状态寄存器,定时器,多通道10位A/D转换器, 数据EEPROM,同步串行通信端口,通用异步串 行通信端口,捕捉器/比较器/PWM,多功能输入/ 输出(I/O)端口,上电定时器,振荡器起振定时 器,看门狗定时器,上电和掉电复位电路,时序 产生电路,从属并行端口,低电压编程电路等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2.1 内部组成
• PIC16F87X系列单片机的内部结构框图如图所示。
整个单片机集成了算术逻辑单元ALU,FLASH程序 存储器,14位指令寄存器,13指针寄存器和8级 13位的堆栈,文件寄存器RAM和特殊功能寄存器, 状态寄存器,定时器,多通道10位A/D转换器, 数据EEPROM,同步串行通信端口,通用异步串 行通信端口,捕捉器/比较器/PWM,多功能输入/ 输出(I/O)端口,上电定时器,振荡器起振定时 器,看门狗定时器,上电和掉电复位电路,时序 产生电路,从属并行端口,低电压编程电路等。
ALU和工作寄存器W
• PIC16F87X芯片内核心是一个ALU和工作寄存器W。ALU控制
工作寄存器W的内容(数据)和任何一个文件寄存器中的内 容(数据)进行算术运算和逻辑(布尔)运算,ALU的字为8 位,可以用其进行加、减、移位和逻辑操作。除非特别指出, 一般的操作都是以2的补码进行。在有两个操作数的指令中, 典型情况是其中一个操作数放在W寄存器中,另一个操作数 放在文件寄存器或是一个立即数。
• 图 2.6 PIC16F873/873A/874/874A
图2.7 PIC16F877/877A/876/876A
2.4.2 数据存储器
• 数据存储器分为四个存储体,存储体中包含通用寄存器和
专用寄存器(SFR),体的选择采用状态寄存器 (STATUS)的位6(RP1)和位5(RP0)。
• 每个存储体最多可包含128字节,而每个存储体中专用寄
• 根据所执行的指令,ALU会影响状态寄存器STATUS中十进制
数字进位标志(即半进位标志) 、二进制借位标志C和全零标志 Z。当ALU运行后的结果为0时,标志位Z置1,否则为0;当进 行加法运算,发生最高为进位,标志位C置1,否则为0;当进 行减法运算,最高位发生借位,标志位C清零,否则为1;当 进行加法运算D3向D4进位时,标志位DC置1,否则为0;当进 行减法运算D3向D4借位,标志位DC清零,否则置1。
第2章 PIC16F87X系列单片机
2.1 概 述 2.2 内部功能及时序 2.3 引脚功能 2.4 存储器组织 2.5数据E2PROM和闪存组织 2.6振荡电路 2.7复位电路与复位状态 2.8 I/O端口 2.9 中断组织 2.10看门狗电路 2.11 低功耗设置(休眠模式)
2.12在线串行编程与调试功能
– 如图2.5所示。
• 根据引脚的功能,可以将引脚分为下列几类。
图2.5 PIC16F87X单片机封装与引脚图
图2.5 PIC16F87X单片机封装与引脚图(续1)
2.3.1 电源VDD引脚和地VSS引脚
• PIC单片机的供电可以在+2.7V~+5V的
范围,为了减少电源噪声的影响,将电源 引脚和地线引脚放置芯片的中间。
2.2.2 指令周期和时序图
• 时钟信号从OSCI/CLKIN引脚上输入后,在片内产
生4个非重叠四个信号,分别被称作Q1、Q2、Q3 和Q4,如图2.3所示。每个指令周期(TCY)包含 这4个Q周期,Q周期与芯片的振荡周期(TOSC)一 致。每个Q周期提供每条指令的指令译码、读、 处理数据以及写等操作的定时。每个指令周期完 成四部分工作:在Q1周期指令译码或不操作,在 Q2周期指令读数据或不操作,在Q3周期处理数据, 在Q4周期写数据或不操作。
表2.3 PICF874(A)/877(A)引脚功能(续)
§2.4 存储器组织
• 在PIC16F87X系列单片机中,有三个存储器
模块。由于单片机内采用了哈佛总线结构, 它的程序存储器和数据存储器的总线是独 立分开的,CPU可以同时访问程序存储器和 数据存储器。
2.4.1 程序存储器
• PIC16F87X系列单片机具有13位指针计数器
2.3.2 振荡器输入输出引脚
• 在PIC单片机中有一根振荡器输入引脚
OSC1/CLKIN和一根振荡器输出引脚 OSC2/CLKOUT,由于PIC单片机可以采用不同的 振荡器,这样使得这两根引脚可以有不同的功能。 采用晶体振荡器或陶瓷谐振器,将晶体振荡器的 两脚直接接入OSC1/CLKIN和OSC2/CLKOUT;采 用外部振荡器电路时,将OSC1/CLKIN作为输入, OSC2/CLKOUT开路;采用RC振荡器时, OSC1/CLKIN作为输入,OSC2/CLKOUT作为4分频 信号输出(参见图2.26)。
图2.3 芯片时序
2.2.3 指令流
• 哈佛结构,使得程序存储器(存放指令)的访问
和数据存储器(存放运算数据)的访问并行处理。 在单片机的指令运行中,一般需要如下的过程: 从程序存储器取出指令,根据指令进行译码,然 后执行。在复杂指令集中,首先取指令需要1~2 个周期,译码和执行指令又需要1~2个周期。 在PIC单片机中采用RISC指令集,使用指令流水 线结构,在一个周期内完成两部分工作:一是执 行指令,二是从程序存储器取出下一条指令。这 样总的看起来每条指令只需要一个周期(个别除 外)。如图2.4所示,在一个周期中,完成本条指 令的执行,同时取出了下一条指令。
哈佛结构CPU和RISC指令集
• PIC16F87X系列单片机采用高性能的哈佛结构CPU和RISC
指令集,CPU通过不同的总线访问存储器的数据和指令(程 序),这样提高了CPU的工作速度和效率,比传统的程序与 数据共用存储体和总线的冯.偌依曼结构改善了带宽。
• 这种结构带来两个明显的优点:
– 其一是CPU可以同时访问程序存储区和数据存储区 – 其二是程序存储区和数据存储区可以采用不同字节宽度
存器放在低位存储区,专用寄存器上面是通用寄存器,通 用寄存器采用静态随机访问存储器(SRAM)。
• 所有的执行存储体都包含有专用寄存器
(SFR),为了达到减少编码和快速访问的 目的,一些经常访问的专用寄存器可以从 一个存储体映射到另一个存储体。 PIC16F873/873A/874/874A数据存储器的 映射图如图2.8所示, PIC16F877/877A/876/876A数据存储器的 映射图如图2.9所示。
图2.4 指令流
§2.3 引脚功能
• 在PIC系列单片机种,除电源和地线引脚之外,其
它的引脚基本都可能采用编程选择多功能复用。
• 封装形式
– PIC16F87X系列单片机采用DIP、PLCC和QFP三种封装 形式。
– PIC16F877/874采用40引脚的PDIP、44引脚的PLCC和 44引脚的QFP,PIC16F876/873采用28引脚的PDIP或 SOIC。
2.3.3 主复位信号引脚
• 主复位信号引脚用于外部电路产生复位信
号使PIC单片机复位,低电平有效。在对 CPU编程时,此引脚作为编程电压的输入端 VPP。
2.3.4 端口/功能引脚
• 在PIC单片机中,包含多个端口,且端口引脚大
部分都具有两种或三种功能复用。作为端口, 端口A、端口B、端口C、端口D和端口E都是双 向I/O口,端口B可以通过编程设置为弱上拉输 入。
• 作为第二或第三功能口,每个引脚的功能都
可能不同,主要包含有如下的功能:用于A/D 转换的模拟电压输入端和参考电压输入端,用 于定时器的时钟输入端和振荡器输出端,用于 串行通信的数据输入/输出端和时钟端,并行从 属端口和读/写/片选端等。
表2.2 PICF873(A)/876(A)引脚功能
表2.3 PICF874(A)/877(A)引脚功能
• 工作寄存器W是操作过程中的一个过渡寄存器,它可以存放
操作数,也可以存放操作结果,相当于MCS51系列中的A寄存 器,不可寻址。使用起来相当灵活。
图2.1 PIC16F873 (A)/876(A) 单片机的内 部结构框图
图2.2 PIC16F874( A)/877(A) 单片机的内 部结构框图
1 通用寄存器组(续)
– PIC16F877/877A/876/876A: – 20H~7FH(存储体0); – A0H~EFH(存储体1); – F0H~FFH(存储体1:映射到存储体0的70H~7FH); – 110H~16FH(存储体2); – 170H~17FH(存储体2:映射到存储体0的70H~7FH); – 190H~19FH(存储体3); – 1A0H~1FFH(存储体3:映射到存储体0的70H~7FH)。
• 对于间接地址,它表示一个具体物理寄存
器;对于阴影部分,实际上不可操作,读 操作结果是0。
图2.8 PIC16F873/873A/874/874A数据存储器组映射图
图2.9 状态寄存器STATUS
1 通用寄存器组
• 通用寄存器是在ຫໍສະໝຸດ 令执行过程中存放数据或状态信息的存储区,上电复位后其内容随机不确定,CPU可以 直接访问,也可以通过组选择寄存器(FSR)间接访 问。
表2.1 PIC16F87X系列单片机功能配置
§2.2 内部功能及时序
• PIC16F87X系列单片机是一种高速度、低功耗、
高性能的CMOS器件,含有ROM、RAM、EEPROM、 FLASH RAM、I/O端口、A/D转换器、捕捉器/比较 器/PWM、串行通信端口、定时器、中断控制器和 一个中央处理器。这种结构是基于文件寄存器概 念,有独立的数据/数据存储器总线和程序存储器 总线。数据总线和数据存储器总线是8位的字宽, 程序总线和程序存储器(FLASH PROGRAM MEMORY)是14位字宽。由于数据存储器集成在 片内,通过片内的8位总线与算术逻辑单元(ALU) 连接,可以直接通过内部总线传送信息,所以它 们都是以寄存器方式工作和寻址,程序编码简洁 高效。
PIC16F87X系列单片机 内涵
• PIC16F873(A)/874(A)包含4K×14的程序闪存,
192字节的数据随机存储器和128字节数据 EEPROM存储器。PIC16F876(A)/877(A)的程序闪 存为8K×14,数据随机存储器为368字节,数据 EEPROM存储器为256字节。PIC16F873(A)/876(A) 具有A、B和C三个I/O端口,内部包含13个中断源、 三个定时器、两个CCP(捕捉器/比较器/PWM) 模块和一个看门狗电路,同时集成了5通道A/D转 换器。PIC16F874(A)/877(A)具有A、B、C、D和E 五个I/O端口,内部包含14个中断源、三个定时器、 两个CCP(捕捉器/比较器/PWM)模块、一个看 门狗电路和一个并行从属端口PSP,同时集成了8 通道A/D转换器。PIC16F87X系列既有SPI和I2C主 串行通信端口,又有USART异步串行通信端口。