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

📄 pic16cxxx-9-7.htm

📁 PIC单片机C语言教程!绝对经典
💻 HTM
字号:
<html>
<head>
<title>PIC16Cxxx单片机应用与设计</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
BODY {font-size:12px;font-family:宋体;}
td {font-size:12px;font-family:宋体;}

A:link {	COLOR: #0000ff; TEXT-DECORATION: underline}
A:visited {	COLOR:#0000ff; TEXT-DECORATION: underline}
A:active {	COLOR:red! important; TEXT-DECORATION: underline}
A:hover {	TEXT-DECORATION: none}
.b24 a:link {	FONT-SIZE: 12px; COLOR:#0000ff; TEXT-DECORATION: underline}
.b24 a:visited {FONT-SIZE: 12px; COLOR:#0000ff; TEXT-DECORATION: underline}
.b24 a:active {	FONT-SIZE: 12px; COLOR:#0000ff; TEXT-DECORATION: underline}
.b24 a:hover {	FONT-SIZE: 12px; COLOR:#990000; TEXT-DECORATION: none}
.lh13 {	LINE-HEIGHT: 130%}
.lh15 {	LINE-HEIGHT: 150%}
.lh17 {	LINE-HEIGHT: 170%}
.lh19 {	LINE-HEIGHT: 190%}
.lh30 {	LINE-HEIGHT: 300%}
-->
</style>
</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" >
<table width="757" border="0" cellspacing="0" cellpadding="0">
  <tr align="center">
    <td>&nbsp;</td>
  </tr>
  <tr align="center"> 
    <td> <table width="700" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td width="41%" height="46" valign="top"><img src="logo.gif" width="205" height="41"></td>
          <td height="46" width="59%" valign="bottom" align="right"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr> 
                <td align="right"><b><font style="font-size:16px" color="#990000">—— 
                  —— —— 技术资料下载中心</font></b> </td>
              </tr>
              <tr> 
                <td height="8"></td>
              </tr>
            </table></td>
        </tr>
        <tr> 
          <td height="1" colspan="2"></td>
        </tr>
        <tr bgcolor="#990000"> 
          <td height="1" colspan="2"></td>
        </tr>
        <tr> 
          <td colspan="2">&nbsp;</td>
        </tr>
        <tr> 
          <td colspan="2"><font style="font-size:16px" color="#000000"><b>>> <a href="index.htm">PIC16CXXX单片机应用与设计</a> 
            \</b></font></td>
        </tr>
        <tr> 
          <td colspan="2">&nbsp;</td>
        </tr>
      </table>
      <table width="700" border="0" cellspacing="0" cellpadding="2"  class="lh15">
        <tr> 
          <td align="center"><b><font size="3">第九章 PIC16CXX设计范例 </font><font size="3"></font></b></td>
        </tr>
        <tr> 
          <td> <p>&nbsp;</p></td>
        </tr>
        <tr valign="top"> 
          <td height="300"> <p>十二、PIC16C84内部数据E2PROM使用例程<br>
              <br>
              (一)电路设计<br>
              &nbsp;&nbsp;&nbsp;&nbsp;PIC16C84内部有64*8 E2PROM数据存贮器,可以由用户用程序方便地读写,而外部不能对它读写,所以不仅能掉电保持数据,同时也具有很高的数据保密性。本例从RS232(波特率为9600B/S)的TX端接收到数据,然后写入E2PROM某一数据单元。电路图如下:</p>
            <p align="center"><img src="image/a429.gif" width="418" height="211"></p>
            (二)程序流程图<br>
            1、主程序流程图<br> <div align="center"> 
              <p><img src="image/a430.gif" width="183" height="350"> </p>
            </div>
            <p>2、中断服务子程序流程图</p>
            <p align="center"><img src="image/a431.gif" width="424" height="644"></p>
            <table width="85%" border="0" cellspacing="0" cellpadding="0" align="center">
              <tr> 
                <td>(三)程序清单<br> <br>
                  include &quot;16cxx.equ&quot;<br>
                  EEDATA EQU 8H ;E2PROM数据寄存器<br>
                  EEADR EQU 9H ;E2PROM地址寄存器<br>
                  EECON1 EQU 88H ;E2PROM控制寄存器1<br>
                  EECON2 EQU 89H ;E2PROM控制寄存器2<br>
                  ;E2PROM控制寄存器1 EECON1<br>
                  RD EQU 0 ;读控制位<br>
                  WR EQU 1 ;写控制位<br>
                  WREN EQU 2 ;写使能位<br>
                  WRERR EQU 3 ;写操作错误标志位<br>
                  EEIF EQU 4 ;写完成中断标志位<br> <br>
                  EEIE EQU 6 ;INTCON&lt;6&gt;位为E2PROM中断允许位<br> <br>
                  DATARAM EQU 20H ;数据暂存寄存器<br>
                  COUNT1 EQU 21H ;<br>
                  COUNT2 EQU 22H ;<br>
                  DATA EQU 23H<br>
                  ADDR EQU 0001H ;E2PROM地址<br>
                  ;<br>
                  ORG 0H<br>
                  GOTO MAIN<br>
                  ORG 4<br>
                  INT_SERVICE ;中断服务<br>
                  BTFSC INTCON,INTF ;是INT中断?<br>
                  GOTO INT_RS232 ;是,转到接收RS232数据<br>
                  BSF STATUS,RP0<br>
                  BTFSC EECON1,EEIF ;是E2PROM中断?<br>
                  GOTO INT_EEPROM ;是,转到E2PROM中断处理<br>
                  ERROR_INT<br>
                  BCF STATUS,RP0<br>
                  RETFIE<br>
                  INT_EEPROM ;E2PROM中断处理<br>
                  BSF STATUS,RP0<br>
                  BCF EECON1,WREN ;禁止E2PROM写<br>
                  BCF STATUS,RP0<br>
                  MOVLW ADDR ;把地址送给<br>
                  MOVWF EEADR ;EEADR<br>
                  BSF STATUS,RP0<br>
                  BSF EECON1,RD ;读E2PROM<br>
                  BCF STATUS,RP0<br>
                  MOVFW DATARAM<br>
                  XORWF EEDATA,0 ;和原数据比较<br>
                  BTFSS STATUS,Z ;相等?<br>
                  GOTO ERROR ;否,出错<br>
                  BSF RA,0 ;置正确标志<br>
                  BCF R,1<br>
                  RET_INT BCF INTCON,EEIE ;清E2PROM中断允许<br>
                  BSF INTCON,INTE ;开INT中断允许<br>
                  BSF STATUS,RP0<br>
                  BCF EECON1,EEIF ;清E2PROM中断标志<br>
                  BCF STATUS,RP0<br>
                  RETFIE<br>
                  ERROR BCF RA,0 ;置错误标志<br>
                  BSF RA,1<br>
                  GOTO RET_INT<br>
                  INT_RS232<br>
                  BCF INTCON,INTE ;清INT中断允许<br>
                  BCF INTCON,INTF ;清INT中断标志<br>
                  MOVLW 8<br>
                  MOVWF COUNT1 ;总共收8Bit数据<br>
                  CALL DELAY_1/2B ;延时1/2BYTE<br>
                  LOOP<br>
                  CALL DELAY_1B ;延时1BYTE<br>
                  SETC<br>
                  BTFSS RB,0 ;读RS232数据<br>
                  CLRC<br>
                  RRF DATA ;移位<br>
                  DECFSZ COUNT1 ;接收完8Bit?<br>
                  GOTO LOOP ;否,继续<br>
                  BSF STATUS,RP0<br>
                  BSF EECON1,WREN ;E2PROM写允许<br>
                  BCF STATUS,RP0<br>
                  MOVLW ADDR ;地址送给EEADR<br>
                  MOVWF EEADR<br>
                  MOVFW DATA ;数据送给EEDATA<br>
                  MOVWF EEDATA<br>
                  BSF STATUS,RP0<br>
                  MOVLW 55H ;─┐<br>
                  MOVWF EECON2 ; │<br>
                  MOVLW 0AAH ; │启动写操作<br>
                  MOVWF EECON2 ; │<br>
                  BSF EECON1,WR ;─┘<br>
                  BCF STATUS,RP0<br>
                  BSF INTCON,EEIE ;开E2PROM中断允许<br>
                  RETFIE<br> <br>
                  DELAY_1/2B ;延时1/2BYTE<br>
                  MOVLW .43<br>
                  GOTO SKIP1<br>
                  DELAY_1B<br>
                  MOVLW .86 ;延时1BYTE<br>
                  SKIP1 MOVWF COUNT2<br>
                  LOOPD DECFSZ COUNT2<br>
                  GOTO LOOPD<br>
                  RETLW 0<br>
                  ;主程序<br>
                  MAIN<br>
                  BCF STATUS,RP0<br>
                  CLRF RA<br>
                  CLRF RB<br>
                  CLRF INTCON<br>
                  BSF STATUS,RP0<br>
                  CLRF TRISA ;RA口为输出口<br>
                  MOVLW 1<br>
                  MOVWF TRISB ;RB0为输入口<br>
                  CLRF EECON1<br>
                  BCF STATUS,RP0<br>
                  BSF INTCON,GIE<br>
                  BSF INTCON,INTE ;开INT中断<br>
                  LZZ NOP ;等待中断<br>
                  GOTO LZZ<br>
                  END<br> </td>
              </tr>
            </table>
            <div align="right"> 
              <p><a href="PIC16Cxxx-9-6.htm">上一页</a> <a href="PIC16Cxxx-9-8.htm">下一页</a> 
              </p>
            </div>
            <p><a href="PIC16Cxxx-1.htm">第一章</a> <a href="PIC16Cxxx-2.htm">第二章</a> 
              <a href="PIC16Cxxx-3.htm">第三章</a> <a href="PIC16Cxxx-4.htm">第四章</a> 
              <a href="PIC16Cxxx-5.htm">第五章</a> <a href="PIC16Cxxx-6.htm">第六章</a> 
              <a href="PIC16Cxxx-7.htm">第七章</a> <a href="PIC16Cxxx-8.htm">第八章</a> 
              <a href="PIC16Cxxx-9.htm">第九章</a> <a href="PIC16Cxxx-10.htm">第十章</a></p></td>
        </tr>
      </table>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <table width="700" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td width="20">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
      <table width="700" border="0" cellspacing="0" cellpadding="0">
        <tr bgcolor="#990000"> 
          <td height="1" width="634"></td>
        </tr>
        <tr align="right"> 
          <td height="6"></td>
        </tr>
        <tr align="right"> 
          <td><font color="#990000" size="2">[ <a href="index.htm">返回</a> ]</font> 
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr> 
          <td>&nbsp;</td>
        </tr>
      </table></td>
  </tr>
</table> 
 
</body> 
</html>

⌨️ 快捷键说明

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