⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic21.htm

📁 pic单片机原理
💻 HTM
📖 第 1 页 / 共 4 页
字号:
          <td height="300"> <p align="justify"><font face="宋体"><span class="lh15">概述</span></font></p>
            <p align="justify" class="lh15">PIC16C84<font face="宋体">是</font>8<font face="宋体">位</font>CMOS 
              EEPROM<font face="宋体">微控制器。它有高性能的类似于</font>RISC <font face="宋体">的指令,共有</font>35<font face="宋体">条单字节的指令,所有的指令除程序分支指令需要两个指令周期外,都只需要一个指令周期。当主振频率为</font>10MHZ<font face="宋体">时一个指令周期为</font>400ns<font face="宋体">。程序指令的宽度为</font>14<font face="宋体">位,在芯片内有</font>1K×14<font face="宋体">的</font>EEPROM<font face="宋体">程序存储器</font> 
              <font face="宋体">。</font></p>
            <p align="justify" class="lh15"><font face="宋体">数据的宽度为</font>8<font face="宋体">位,在芯片内有</font>36×8<font face="宋体">的静态</font>RAM<font face="宋体">的通用寄存器,</font>64×8<font face="宋体">的</font>EEPROM<font face="宋体">的数据存储器。</font>8<font face="宋体">级深度的硬堆栈。具有直接、间接、相对寻址方式。有</font>4<font face="宋体">个中断源;外部</font>RBO<font face="宋体">/</font>INT<font face="宋体">引脚;</font>TMRO<font face="宋体">计时器溢出,</font>PORTB<font face="宋体"><</font>7<font face="宋体">:</font> 
              4<font face="宋体">>引脚上信号的改变;数据写入</font>EEPROM<font face="宋体">完成。</font></p>
            <p align="justify" class="lh15"><font face="宋体">数据存储器的擦/写可达</font>1000000<font face="宋体">次,数据的保持大于</font>40<font face="宋体">年。有</font>13<font face="宋体">位的</font>I<font face="宋体">/</font>O<font face="宋体">引脚,可以单独直接控制。每一个</font>I<font face="宋体">/</font>O<font face="宋体">引脚均可承受</font>25mA<font face="宋体">的输入/输出电流,这样就可以直接驱动</font>LED<font face="宋体">。有</font>8<font face="宋体">位的计时/计数器(</font>TMRO<font face="宋体">)并带有</font>8<font face="宋体">位可编程的预分频。有通电复位(</font>POR<font face="宋体">);功耗上升(</font>POWER<font face="宋体">-</font>UP<font face="宋体">)计时器(</font>PWRT<font face="宋体">);</font> 
              <font face="宋体">振荡器起动计时器(</font>OST<font face="宋体">);看门狗计时器(</font>WDT<font face="宋体">),为了能可靠工作</font> 
              <font face="宋体">,它有自己的</font>RC<font face="宋体">振荡器。有代码保证功能。有</font>SLEEP<font face="宋体">(睡眠)方式,以节者功耗。有</font>4<font face="宋体">种可供选择的振荡器:</font>RC<font face="宋体">(低成本的</font>RC<font face="宋体">振荡器);</font>XT<font face="宋体">(标准的晶体/谐振器);</font>HS<font face="宋体">(高速晶体/谐振器);</font>LP<font face="宋体">(低功耗,低</font> 
              <font face="宋体">频率的晶体)。工作电压的范围宽</font>2<font face="宋体">.</font>0V<font face="宋体">~</font> 
              6<font face="宋体">.</font>0V<font face="宋体">。</font></p>
            <p align="justify" class="lh15">PIC16C84<font face="宋体">最大的特点是具有</font>1K×14<font face="宋体">位的电可擦除的程序存储器和</font>64×8<font face="宋体">位的电可擦除的数据存储器,这将为系统开发和各种应用提供了</font> 
              <font face="宋体">更多的方便。</font></p>
            <p align="justify" class="lh15"><font face="宋体">时钟和指令周期</font></p>
            <p align="justify" class="lh15"><font face="宋体">从</font>OSCI<font face="宋体">来的时钟输入在内部经</font>4<font face="宋体">分频。产生互不叠加的时佛周期,每</font>4<font face="宋体">个时钟周期(θ</font>1<font face="宋体">,θ</font>2<font face="宋体">,θ</font>3<font face="宋体">,θ</font>4<font face="宋体">)组成一个指令周期。在内部、程序计数内对每一个θ</font>1<font face="宋体">加</font>1<font face="宋体">,然后从程序存储器取指令,取出的指令在θ</font>4<font face="宋体">时放入指令寄存内。在下一个θ</font>1<font face="宋体">利θ</font>4<font face="宋体">期间指令被执行。取指令和执行指令采用流水线技术,一个指令周期取指令,下一个指令周期执行已取出的指令,同时又取出下一条指令。所以每条指令执行,</font>CPU<font face="宋体">的时间是一个指令周期。当某条指令要改变程序计数器的</font> 
              <font face="宋体">内容时(如分支指令),则需要两个指令周期才能完成。被取出的指</font> <font face="宋体">令在执行指令周期的θ</font>1<font face="宋体">时放入指令寄存器,在θ</font>2<font face="宋体">,θ</font>3<font face="宋体">,θ</font>4<font face="宋体">时译码</font> 
              <font face="宋体">并执行指令。在θ</font>2<font face="宋体">期间读操作在θ</font>4<font face="宋体">期间写操作数。</font></p>
            <p align="justify" class="lh15"><font face="宋体">存贮器的结构</font></p>
            <p align="justify" class="lh15"><font face="宋体">在</font>PIC16C84<font face="宋体">中有两个存储器块。即程序存储器和数据存储器。每一块具有它自己的总线,即可在同一时钟周期访问每一块。数据存储器被进一步分成通用</font>RAM<font face="宋体">和专用功能寄存器(</font>SFRs<font face="宋体">)。专</font> 
              <font face="宋体">用功能寄存器用于控制外设模式。数据存储器也包含有数据</font>EEPROM<font face="宋体">存</font> 
              <font face="宋体">储器。这个存储器并不直接映象到数据存储器,而是间接映象的。即由一个间接寻址的指针指明要读/写的数据</font>EEPROM<font face="宋体">的地址。</font>64<font face="宋体">个字节</font> 
              <font face="宋体">的数据</font>EEPROM<font face="宋体">具有的地址是</font>0<font face="宋体">~</font>3FH<font face="宋体">。</font></p>
            <p align="justify" class="lh15">3<font face="宋体">-</font>1<font face="宋体">程序存储器的结构</font></p>
            <p align="justify" class="lh15">PIC16C84<font face="宋体">具有</font>13<font face="宋体">位程序计数器,寻址能力为</font>8K×14<font face="宋体">位的程序存储器空间。实际上对于</font>PIC16C84<font face="宋体">能供使用的只有</font>1K×14<font face="宋体">位的程序存储器(地址为</font>0000<font face="宋体">~</font> 
              03FFH<font face="宋体">)。寻址上述单元,如超过了上述地址范围,</font> <font face="宋体">地址将卷绕。例对</font>20H<font face="宋体">单元与地址</font>420H<font face="宋体">,</font>820H<font face="宋体">,</font>C20H<font face="宋体">,</font>1020H<font face="宋体">,</font>1420H<font face="宋体">,</font> 
              1820H<font face="宋体">,</font>1C20H<font face="宋体">都将访问到它。系统复位时</font>PC<font face="宋体">的值为</font>0000H<font face="宋体">,中断向量是</font> 
              0004H<font face="宋体">。</font></p>
            <p align="justify" class="lh15">PC<font face="宋体"><</font>12<font face="宋体">:</font>0<font face="宋体">></font></p>
            <p align="justify" class="lh15">CALL<font face="宋体">,</font>RETURN 
              13</p>
            <p align="justify" class="lh15">RETFIE<font face="宋体">,</font>RETLW 
              1<font face="宋体">级堆栈</font></p>
            <p align="justify" class="lh15"><font face="宋体">.</font></p>
            <p align="justify" class="lh15">8<font face="宋体">级堆栈</font></p>
            <p align="justify" class="lh15"><font face="宋体">复位地址</font> 0000H</p>
            <p align="justify" class="lh15"><font face="宋体">外部中断向量</font> 0004H</p>
            <p align="justify" class="lh15"><font face="宋体">用户存贮空间</font> 3FFH</p>
            <p align="justify" class="lh15">1FFFH</p>
            <p align="justify" class="lh15"><font face="宋体">图</font>4<font face="宋体">-</font>2<font face="宋体">程序存储的映象和堆栈</font></p>
            <p align="justify" class="lh15"><font size="3"> </font></p>
            <p align="justify" class="lh15">3<font face="宋体">-</font>2<font face="宋体">数据存储器的结构</font></p>
            <p align="justify" class="lh15"><font face="宋体">数据存储器被分成两个区域。第一个是专用功能寄存器(</font>SFR<font face="宋体">)区域,第二是通用寄存器区域(</font>GPR<font face="宋体">)。</font>SFR<font face="宋体">控制着器件的操作。数据存储器被分成</font>0<font face="宋体">块和</font>1<font face="宋体">块。通过程序时状态寄存器</font>STATUS<font face="宋体">中的</font>RP1<font face="宋体">:</font> 
              RP0<font face="宋体">位</font> <font face="宋体">的设置来选择</font>0<font face="宋体">块(</font>RP1<font face="宋体">=</font>0<font face="宋体">,</font>RP0<font face="宋体">=</font>0<font face="宋体">)或</font>1<font face="宋体">块(</font>RP0<font face="宋体">=</font>1<font face="宋体">)。</font></p>
            <p align="justify" class="lh15"><font face="宋体">其中带有斜线的部分是实际不存在的单元,带有*号的单元没有物理寄存。指令</font>MOVWF<font face="宋体">和</font>MOVF<font face="宋体">可以把</font>W<font face="宋体">寄存器的值(</font>W<font face="宋体">寄存器是器件内部的工作</font> 
              <font face="宋体">寄存器)传送到寄存器文件(“</font>F”<font face="宋体">)中的任何单元,反之也可以。整个数据存储器可以直接寻址或通过文件选择寄存器(</font>FSR<font face="宋体">)进行间接寻址。间接寻址要根据状态寄存器的</font>RP1<font face="宋体">:</font>RP0<font face="宋体">位的状态决定访问数据存</font> 
              <font face="宋体">储器的某一块,数据存储器的两块中都被分成通用寄存器和专用寄存</font> <font face="宋体">器。其中每块低地址单元留作专用寄存器,专用寄存器以上地址的单</font> 
              <font face="宋体">元为通用寄存器,它们是静态</font>RAM<font face="宋体">。</font></p>
            <p align="justify" class="lh15">1<font face="宋体">.通用寄存器文件</font> <font face="宋体">寄存器文件可以直接寻址或通过</font>FSR<font face="宋体">间接寻址。所有器件都有一定</font> 
              <font face="宋体">数量的通用寄存器(</font>GPR<font face="宋体">),它们的数据宽度是</font>8<font face="宋体">位。</font>PIC16C84<font face="宋体">只有</font>36<font face="宋体">个字节的通用寄存器,地址为</font>0CH<font face="宋体">~</font> 
              2FH<font face="宋体">,对</font>1<font face="宋体">块对应的</font>8CH<font face="宋体">~</font> 
              AFH<font face="宋体">的访问都将实际访问</font>0CH<font face="宋体">~</font> 2FH<font face="宋体">(地址的高位被忽略)。</font></p>
            <p align="justify" class="lh15"><font face="宋体">文件地址</font></p>
            <p align="justify" class="lh15">00 <font face="宋体">间接寻址地址(*)</font> 
              <font face="宋体">间接寻址地址(*)</font> 80</p>
            <p align="justify" class="lh15">01 TMRO OPTION 81</p>
            <p align="justify" class="lh15">02 PCL PCL 8 2</p>
            <p align="justify" class="lh15">03 STATUS STATUS 83</p>
            <p align="justify" class="lh15">04 FSR FSR 8 4</p>
            <p align="justify" class="lh15">05 PORTA TRISA 85</p>
            <p align="justify" class="lh15">06 PORTB TRISB 86</p>
            <p align="justify" class="lh15">07 87</p>
            <p align="justify" class="lh15">08 EEDATA EECON1 88</p>
            <p align="justify" class="lh15">09 EEADR EECON2<font face="宋体">(*)</font> 
              89</p>
            <p align="justify" class="lh15">0A PCLATH PCLATH 8A</p>
            <p align="justify" class="lh15">0B INTCON INTCON 8B</p>
            <p align="justify" class="lh15">36<font face="宋体">个通用寄</font> <font face="宋体">映象到</font> 
              <font face="宋体">存器(</font>SRAM<font face="宋体">)</font> 0<font face="宋体">块</font> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -