PIC内部特殊功能寄存器中文说明
- 格式:xls
- 大小:562.50 KB
- 文档页数:12
PIC系列单片机数据存储器的特点和功能(中)PIC单片机学习PIC单片机数据存储器时,不仅要了解各寄存器单元的功能,而且还应在编制程序时会调用它们完成编程目的。
下面笔者将以编程实例说明它们的用途。
2 间接寻址寄存器INDF和FSR位于PIC单片机数据存储器的最顶端、地址00单元(地址码最小)的间接寻址寄存器INDF是一个空的寄存器。
它只有地址码,在物理上不是一个真正的寄存器。
它的功能常常与寄存器FSR(又称寄存器选择寄存器)配合工作,实现间接寻址目的。
初学专用寄存器INDF和FSR时,记住下述的逻辑关系对编程是有帮助的:使用寄存器INDF的任何指令,在逻辑上都是对寄存器FSR所指向的RAM进行访问,即对INDF(本身)进行间接寻址(访问),读出的应是FSR内容。
以下的一个简单程序是用间接寻址方式清除RAM地址20h~2Fh单元寄存器内容的实例。
MOVLW0x20;20h→w,对指向RAM单元的指针;初始化MOVWF FSR;20h→FSR,FSR指向RAMLOOP CLRF INDF;清除INDF,即清除FSR内容所指;向的单元20h→2FhINCF FSR;(指针)FSR内容加1BTFSS FSR,4;判别(指令)FSR的D3位,若为零;执行下条循环指令;若为1间跳;执行。
GOTO LOOP;跳转到LOOP(循环)CONTINUE…;已完成功能,继续执行程序由上述指令看出,因寄存器INDF和FSR的配合工作,达到了对RAM地址20h~2Fh 的寄存器清零目的。
由于完成上述功能的指令数很少,这就会简化指令系统,使PIC单片机的指令集得以精简。
说明:上述各条指令易于看懂,所以无需再复述,但其中的一条判别指令“BTFSS FSR,4”比较关键。
该条指令是保证题设中要选择RAM地址单元上限值2Fh时,其对应的二进制数为00101111B,此时FSR的第4位恰为1。
所以上述指令中用了一条判断指令;BTFSS FSR,4,判断FSR的D3位值是否为1,若不为1而为0,则执行下条循环指令GOTO LOOP,使FSR中的地址不断加1,直到寄存器FSR的D3位为1时,这时它的内容代表的RAM地址恰为2Fh。
编译信息的输出显示级别有三种,分别是 0、1 和 2。
级别 0 代表显示所有信息,包括各种错误、警告和提示信息,如图 3-14 所示某些信息单独设定显示或关闭。
每个信息都有一个识别标号,见图 3-14 中信息项“[]”中的数字,打开或关闭某类信息只需在 errorlev
errorlevel 0, -302, -305 ;显示所有信息,但不需要302 和 305 这两类提示信息
errorlevel 1, +305 ;显示错误和警告信息,但同时还要关注 305类的提示信息
,分别是 0、1 和 2。
级别 0 代表显示所有信息,包括各种错误、警告和提示信息,如图 3-14 所示;级别 1 代表显示错误和警告信息,忽略提示信息;个信息都有一个识别标号,见图 3-14 中信息项“[]”中的数字,打开或关闭某类信息只需在 errorlevel 伪指令中引用信息识别标号,并在其前面用“+”或“-”
有信息,但不需要302 和 305 这两类提示信息
警告信息,但同时还要关注 305类的提示信息
示错误和警告信息,忽略提示信息;级别 3代表只显示错误信息而忽略警告和提示信息。
在任何一个大的级别上还可以对信息识别标号,并在其前面用“+”或“-”号,即代表打开或关闭这一类信息,例如:。
PIC16F84单片机的内部硬件资源学些PIC单片机,在Microchip尚未推出其他Flash系列的情况下,很多菜鸟都是从PIC16F84开始的,我们把它整理了一份中文资料供大家学习。
首先介绍PIC16F84单片机的内部结构,如图1所示的框图。
由图1看出,其基本组成可分为四个主要部分,即运算器ALU和工作寄存器W;程序存储器;数据存储器和输入/输出(I/O)口;堆栈存储器和定时器等。
现分别介绍如下。
1 运算器ALU及工作寄存器W运算器ALU是一个通用算术、逻辑运算单元,用它可以对工作寄存器W和任何通用寄存器中的两个数进行算术(如加、减、乘、除等)和逻辑运算(如与、或、异或等)。
16F84是八位单片机,ALU 的字长是八位。
在有两个操作数的指令中,典型的情况是一个操作数在工作寄存器W中,而另一个操作数是在通用寄存器中,或者是一个立即数。
在只有一个操作数的情况下,该数要么是在工作寄存器W中,要么是在通用寄存器中。
W寄存器是一个专用于ALU操作的寄存器,它是不可寻址的。
根据所执行的指令,ALU还可能会影响框图中状态寄存器STATUS的进位标志C、全零标志Z等。
2 程序存储器单片机内存放程序指令的存储器称为程序存储器。
PIC16F84的所有指令字长为14位。
所以程序存储器的各存储单元是14位宽。
一个存储单元存放一条指令。
16F84的程序存贮器有1024(28)个存储单元(存储容量为1k)。
这些程序存储器都是由FPEROM构成的。
程序存储器是由程序计数器PC寻址的。
16F84的程序计数器为13位宽,可寻址8K(8×1024)的程序存储器空间,但16F84实际上只使用了1k的空间(单元地址为0~3FFH)。
当访问超过这些地址空间的存储单元时,将导致循环回到有效的存储空间。
对于用过其它单片机的用户,可能会感到16F84的片内存储器容量太少了。
实际上并非如此,因为16F84的指令系统都是由单字指令构成的,相应于其它由二字节、三字节甚至四字节指令的单片机而言,PIC单片机的程序存储器有效容量要比标称值扩大2 5倍到3倍。
深圳市粤原点科技有限公司(Microchip Authorized Design Partner)指定授权总部地址:深圳市福田区福虹路世贸广场C座1103座Add: Room 1103,Block C,World Trade Plaza,9Fuhong Road,Futian District Shen Zhen City电话(tel) :86-755-83666321,83666320,83666325传真(fax) :86-755-83666329Web: E-mail:********************@联系人:马先生,王小姐,汤小姐在线咨询:QQ:42513912MSN:***********************7x24小时在线产品咨询:135******** 137********PIC16F785/HV785数据手册采用双相异步反馈PWM双高速比较器和双运算放大器的20引脚8位CMOS闪存单片机 2006 Microchip Technology Inc.初稿DS41249D_CNDS41249D_CN 第ii 页初稿2006 Microchip Technology Inc.提供本文档的中文版本仅为了便于理解。
请勿忽视文档中包含的英文部分,因为其中提供了有关Microchip 产品性能和使用情况的有用信息。
Microchip Technology Inc.及其分公司和相 关公司、各级主管与员工及事务代理机构对译文中可能存在的任何差错不承担任何责任。
建议参考Microchip Technology Inc.的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便利,它们可能由更新之信息所替代。
确保应用符合技术规范,是您自身应负的责任。
Microchip 对这些信息不作任何明示或暗示、书面或口头、法定或其他形式的声明或担保,包括但不限于针对其使用情况、质量、性能、适销性或特定用途的适用性的声明或担保。
pic系列中文资料通用串行总线特性:符合USB v2.0 On-The-Go (OTG)规范双角色能力——可充当主机或外设主机模式下的低速(1.5 Mb/s)和全速(12 Mb/s)USB 操作器件模式下的全速USB 操作USB 的高精度PLL使用内部振荡器时,精度可达0.25%——无需外部晶振用于产生USB 总线电压的内部升压辅助电路用于产生USB 总线电压的片外电荷泵的接口最多支持32 个端点(16 个双向端点):- USB 模块可将器件上的任意RAM 地址单元用作USB 端点缓冲区片内USB 收发器片外USB 收发器的接口支持控制、中断、同步和批量传输片内上拉和下拉电阻高性能CPU:改进型哈佛架构最高运行速度可达16 MIPS (@ 32 MHz)8 MHz 内部振荡器(典型精度为0.25%):- 96 MHz PLL- 多个分频选项17 位x 17 位单周期硬件小数/ 整数乘法器32 位/16 位硬件除法器16 位x 16 位工作寄存器阵列优化的C 编译器指令集架构:- 76 条基本指令- 灵活的寻址模式可寻址最大12 MB 的线性程序存储器可寻址最大64 KB 的线性数据存储器2 个地址发生单元,分别用于数据存储器的读/ 写寻址功耗管理模式:采用nanoWatt XLP 技术的可选功耗管理模式(功耗极低):- 深度休眠模式使得系统近似完全掉电(典型电流值为25 nA,如果RTCC 或WDT 运行,则为500 nA),且可由外部触发信号唤醒或者在发生可编程WDT 或RTCC 闹钟事件时自唤醒- 深度休眠模式下的极低功耗DSBOR,所有其他模式下的LPBOR - 休眠模式关闭外设和内核以显著节省功耗,在该模式下可快速唤醒- 空闲模式关闭CPU 和外设以节省大量功耗,典型电流消耗降至4.5 A- 打盹模式使得CPU 时钟比外设时钟运行缓慢- 备用时钟模式允许动态切换到较低的时钟速度,以便有选择地降低功耗,运行模式时消耗的典型电流低至15 A单片机特性:工作电压范围为2.0V 至3.6V软件控制下可自行再编程可承受5.5V 输入电压(仅数字引脚)所有I/O 引脚上的高拉/ 灌电流(18 mA/18 mA)闪存程序存储器:- 至少可耐受10,000 次擦写- 数据保存时间最短20 年- 可选的写保护边界故障保护时钟监视器操作:- 检测时钟故障并切换至片上FRC 振荡器片上2.5V 稳压器上电复位(Power-on Reset,POR)、上电延时定时器(Power-up Timer,PWRT)和振荡器起振定时器(Oscillator Start-up Timer,OST)两个灵活的看门狗定时器(Watchdog Timer,WDT),以确保可靠地工作:- 用于正常工作的标准可编程WDT- 用于深度休眠模式的极低功耗WDT,可编程周期为2 ms 至26 天通过 2 个引脚进行在线串行编程(In-Circuit SerialProgramming?,ICSP?)和在线调试(In-CircuitDebug,ICD)支持JTAG 边界扫描模拟特性:最多13 路通道的10 位模数(Analog-to-Digital,A/D)转换器:- 500 ksps 的转换速率- 可在休眠和空闲模式下进行转换三个带可编程输入/ 输出配置的模拟比较器充电时间测量单元(Charge Time Measurement Unit,CTMU):- 支持触摸屏和电容开关的容性触摸传感- 提供高分辨率的时间测量和简单的温度传感外设特性:外设引脚选择:- 允许对许多外设进行独立的I/O 映射- 最多25 个可用引脚(44 引脚器件)- 连续的硬件完整性检查和安全互锁以防止无意中更改配置8 位并行主/ 从端口(Parallel Master/Slave Port,PMP/PSP):- 44 引脚器件上具有最多11 个专用的地址引脚,可实现最多16 位的多路寻址- 控制线上的可编程优先级- 支持传统的并行从端口硬件实时时钟/ 日历(Real-Time Clock/Calendar,RTCC):- 提供时钟、日历和闹钟功能- 在深度休眠模式下仍能工作2 个3 线/4 线SPI 模块(支持4 帧模式),带8 级深FIFO 缓冲区2 个I2C?模块,支持多主器件/ 从模式和7 位/10 位寻址2 个UART 模块:- 支持RS-485、RS-232 和LIN/J2602- 片上IrDA? 硬件编码器/ 解码器- 遇到起始位自动唤醒- 自动波特率检测(Auto-Baud Detect,ABD)- 4 级深FIFO 缓冲区5 个带可编程预分频器的16 位定时器/ 计数器5 路16 位捕捉输入,每路都具有专用时基5 路16 位比较/PWM 输出,每路都具有专用时基可编程的32 位循环冗余校验(Cyclic RedundancyCheck,CRC)发生器?数字I/O 引脚上的可配置漏极开路输出最多3 个外部中断源。
1.由于PIC16F526内部没有EEPROM,只有内部闪存(程序ROM)数据存储器,故用闪存来代替EEPROM存储关键数据。
2.闪存和EEPROM的对比:①二者在掉电后都能保存数据不丢失,和RAM不同,因此,闪存可以当EEPROM用。
②EEPROM使用灵活,每个字节都可以进行单独的读、写操作。
③闪存每个字节也都可以进行单独的读、写操作。
④但是,闪存不能进行单字节的擦除,在擦除时只能按区块(按页,按行)擦除。
⑤闪存只能把1改为0,不能把0改为1,因此,如果闪存里存了二进制数据0101_0101,直接改写为1010_1010是不可能的,结果只能变成0000_0000。
⑥基于上述原因,在改写某个单元时,要先将该单元擦除,变成0xFF。
⑦因此,对闪存写入数据的一般操作步骤应该是:先读出全部的数据并备份,再改写其中需要改写的数据,最后将全部数据再次写入。
3.对闪存的读写用不到中断,只要控制几个特殊功能寄存器就可以了,详见资料PIC16F526.pdf的第21页,22页,23页。
4.PIC16F526的闪存共64个Byte,分成8行,每行8个Byte。
要读写某个单元,只要将地址(0x00~0x3f)放入EEADR再按相应操作即可。
单元分布如下:其中红色改动为0x00的部分是每行的开始单元。
通过此表可以对闪存进行数据改动,然后通过【Program】下的Program功能将改动数据写入闪存。
5.子程序实例如下:①读一个字节子程序:void Read_one_byte(unsigned char Read_byte_ADR){EEADR=Read_byte_ADR; RD=1;}②擦除一行闪存子程序:void Erase_one_line(unsigned char Erase_line_ADR){EEADR=Erase_line_ADR; FREE=1; WREN=1; WR=1;}③写一个字节子程序:void write_one_byte(unsigned char WR_IN_ADR, unsigned char WR_IN_DATA) {EEADR=WR_IN_ADR; EEDATA=WR_IN_DATA; WREN=1; WR=1;}④写完后的校验程序:void Data_check (unsigned char Data_ch_ADR, unsigned char WR_IN_DATA) {Read_one_byte(Data_ch_ADR); //读出的数据在EEDATA中If(WR_IN_DATA != EEDATA) Data_write_in_error=1;Else Data_write_in_error=0; //和已写入的数据对比}6.整体操作子程序:①闪存初始化子程序:void Flsh_rom_init(void){Read_one_byte(0x00); //读出第一行第0x00地址的数据Read_byte_1= EEDATA; EEDATA=0;Read_one_byte(0x01); //读出第一行第0x01地址的数据Read_byte_2= EEDATA; EEDATA=0;……Read_one_byte(0x08); //读出第二行第0x00地址的数据Read_byte_1= EEDATA; EEDATA=0;Read_one_byte(0x09); //读出第二行第0x01地址的数据Read_byte_2= EEDATA; EEDATA=0;……Read_one_byte(0x3f); //读出第八行第0x07地址的数据Read_byte_1= EEDATA; EEDATA=0;if((Read_byte_1==0xff)||(Read_byte_2==0xff)||(Read_byte_3==0xff)){Erase_one_line(0x00); //擦掉第一行,8个Byte全部变为0xFFErase_one_line(0x08); //擦掉第二行,8个Byte全部变为0xFFErase_one_line(0x10); //擦掉第三行,8个Byte全部变为0xFFErase_one_line(0x18); //擦掉第四行,8个Byte全部变为0xFF……//其余行地址:0x20,0x28,0x30,0x38For(i=0;i<64;i++)write_one_byte(i,0); //全部初始化为0x00 }}②向闪存存数据的一般步骤及程序示例:首先,读出旧数据。
pic单片机中文手册【实用版】目录1.pic 单片机中文手册概述2.pic 单片机的特点与优势3.pic 单片机的应用领域4.pic 单片机中文手册的内容介绍5.如何获取和使用 pic 单片机中文手册正文【1.pic 单片机中文手册概述】pic 单片机是一种集成电路,用于控制和处理各种电子设备。
它的全称是“可编程只读存储器”,具有存储程序和数据、执行程序、输入和输出等功能。
在我国,pic 单片机的应用已经非常广泛,涉及到电子、通信、计算机、汽车、医疗等多个领域。
为了方便用户更好地了解和使用 pic 单片机,厂家提供了详细的中文手册。
这些手册通常包括 pic 单片机的特点与优势、应用领域、内容介绍以及如何获取和使用等方面的信息。
【2.pic 单片机的特点与优势】pic 单片机具有以下特点和优势:(1)高性能:pic 单片机具有高速、高精度的计算能力,能够满足各种复杂应用的需求。
(2)可编程性:用户可以根据需要编写程序,实现对 pic 单片机的控制和操作。
(3)低功耗:pic 单片机的功耗较低,可以延长设备的使用寿命。
(4)稳定性:pic 单片机具有较强的抗干扰能力,能够在恶劣的环境中稳定工作。
(5)多功能:pic 单片机具有丰富的外设接口,可以实现多种功能。
【3.pic 单片机的应用领域】pic 单片机广泛应用于以下领域:(1)消费电子:如手机、电视、电脑等设备。
(2)工业控制:如机器人、自动化生产线等。
(3)通信设备:如路由器、交换机等。
(4)汽车电子:如车载导航、智能驾驶等。
(5)医疗设备:如心电图仪、超声波设备等。
【4.pic 单片机中文手册的内容介绍】pic 单片机中文手册通常包括以下内容:(1)pic 单片机的基本原理和结构:介绍 pic 单片机的工作原理、内部结构等基本知识。
(2)pic 单片机的编程方法:介绍如何使用编程语言编写程序,控制和操作 pic 单片机。
(3)pic 单片机的应用实例:通过具体的应用案例,介绍如何使用pic 单片机实现各种功能。