PIC单片机中级产品PIC16C6X的数据存储器通常分为两个存储体,即存储体0(Bank0)和存储体1(Bank1)。每个存储体都是由专用寄存器和通用寄存器两部分组成的。两个存储体中的一些寄存器单元实际上是同一个寄存器单元,却又具备有不同的地址。例如本版介绍的PIC16F84的状态寄存器STATUS-Reg的两个地址是03H和83H。又如通用寄存器也是如此。 不同型号的PIC单片机,其数据存储器的组成(即功能)是不完全相同的,所以设计人员一旦选用了某个PIC单片机的型号后,常要查找该单片机的数据存储器资料,以便编程用。 以PIC16F84在MPLAB集成开发软件的环境下编写的源程序中,有关 在单片机与数字信号处理器(DSP)的设计与应用中,选择特定的存储体对于高效编程至关重要。本文将深入探讨如何在PIC单片机中,特别是中级产品PIC16C6X系列,选择存储体0(Bank0)或存储体1(Bank1)。这种选择方法对确保正确访问和操作单片机的寄存器至关重要。 我们要理解PIC16C6X的数据存储器结构。这个系列的单片机内部分为两个存储体,每个存储体包含专用寄存器和通用寄存器两部分。这两个存储体中存在一些重叠的寄存器单元,虽然它们实际上是同一个寄存器,但具有不同的地址。例如,状态寄存器STATUS-Reg在PIC16F84中就有两个地址,分别是03H和83H。同样的情况也适用于通用寄存器。 不同型号的PIC单片机,其数据存储器的组织和功能可能有所差异,因此在选择并开始编程某一特定型号的单片机时,设计人员需要查阅相关资料来了解其存储器布局。这样可以确保能够正确地访问和配置所需的寄存器。 以MPLAB集成开发环境下的源程序为例,我们可以通过以下步骤来选择存储体0或1。这里以初始化RB口(RB7、RB6到RB0)为输入和输出为例进行说明: 1. 定义相关寄存器和变量的地址。例如,STATUS寄存器地址为03H,RB口地址为06H,TRISB寄存器在Bank1中的地址为86H。 2. 在程序开始时,通常会有一个复位向量,例如`GOTO MAIN`,这将程序跳转到主程序的起始位置。 3. 在主程序中,我们首先清零PORTB寄存器,这是初始化RB口的第一步。 4. 接下来,通过设置STATUS寄存器的第五位(RP0)为1,可以选择Bank1。这一步至关重要,因为TRISB寄存器位于Bank1中。`BSF STATUS, 5`这条指令将设置RP0位,从而选择Bank1。 5. 然后,我们准备初始化数据00001111B,表示RB口的D3至D0作为输入,D7至D4作为输出。`MOVLW 0x0F`加载此数据到工作寄存器,`MOVWF TRISB`则将其写入TRISB寄存器。 这个实例清晰地展示了如何通过编程选择存储体以访问特定的寄存器。在编写针对特定单片机的代码时,理解存储体的选择和寄存器的映射对于优化代码效率和减少错误至关重要。因此,熟悉单片机的数据存储器结构及其访问机制是每个嵌入式系统开发者的基础技能。
- 粉丝: 7
- 资源: 945
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助