📄 pic16cxxx-4-1.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="767" border="0" align="center" cellpadding="0" cellspacing="0">
<tr align="center">
<td> </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"> </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"> </td>
</tr>
</table>
<table width="700" border="0" cellspacing="0" cellpadding="2" class="lh15">
<tr>
<td align="center"><b><font size="3">第四章 PIC16C8X单片机</font><font size="3"></font></b></td>
</tr>
<tr>
<td> <p> </p></td>
</tr>
<tr valign="top">
<td height="300"> <p>§4.8 E2PROM型数据存储器<br>
<br>
在PIC16C8X中,有64×8个E2PROM数据存储器,可由程序进行读写操作。它们不是映像在普通的寄存器组中,不能由指令直接寻址,而需通过特殊寄存器来进行控制操作,下面即分别叙述。<br>
一、数据寄存器EEDATA<br>
8位的EEDATA寄存器中存放的是要读/写的数据。当要对E2PROM存储器写入时,先要把写入数据置入EEDATA中,而当读E2PROM
存储器时,CPU即是把读出数据放入EEDATA中再由用户程序去读取。<br>
二、地址寄存器EEADR<br>
8位的地址寄存器EEADR可以寻址256个字节的E2PROM存储器,但在PIC16C8X中目前只使用前64个字节地址(0-3FH),所以只有EEADR<5:0>是真正用得上的,参见§4.8.3内容。<br>
三、控制寄存器EECON1和EECON2</p>
<p>下图是EECON1中各位的意义。</p>
<p align="center"><img src="image/a250.gif" width="502" height="442"></p>
<p>EECON2不是一个物理上存在的寄存器,如果读它将是读到全0,它只在写操作时起作用,见下面§4.8.2的描述。<br>
<br>
§4.8.1 E2PROM读操作<br>
<br>
<img src="image/a251.gif" width="504" height="293"></p>
<p>§4.8.2 E2PROM写操作<br>
<br>
为进行一次E2PROM写操作,用户程序须做如下步骤:<br>
1、将E2PROM单元地址放入EEADR,把写入数据放入EEDATA;<br>
2、将写入数据置入EEDATA;<br>
3、做一控制序列,见下面例程。<br>
例程:将数据88h写入E2PROM之20H单元。</p>
<p align="center"><img src="image/a252.gif" width="438" height="323"></p>
<p> 注意,上面例程中的序列②~⑥必须严格执行,否则将不能启动E2PROM写操作。而①和⑦则是我们特别建议用户这样做,即在E2PROM
写操作序列步骤中要关闭所有中断以免这个序列被中断打断。<br>
另外,WREN(EECON1<2>)是用来保证E2PROM不会被意外写入(象24CXX中的WP脚所起的作用),所以在平时用户程序应保持WREN=0来禁止写操作,当需对E2PROM写入时才置WREN=1,并在写入完成后将其恢复为0。用户只有置WREN=1后才能置WR(EECON1<1>)=1启动写操作。等上电复位后WREN位是自动清为零。<br>
E2PROM写操作约需10ms的时间才能完成。用户程序可以通过查询WR位的状态(当WR=0时表示写操作已完成)或是利用E2PROM写入完成中断来判断一次E2PROM写操作是否完成。如要使用中断,应先置EEIE(INTCON<6>)=1开中断。<br>
<br>
§4.8.3 E2PROM操作功耗<br>
<br>
E2PROM操作有一定的功耗,为了使这个功耗最低,建议用户程序置EEADR<7:6>=00,这样芯片的IDD约为150μA,而如果<7:6>=11,则IDD约为400μA。所以建议用户程序在上电复位后即将EEADR<7:6>置为"00"。<br>
<img src="image/a253.gif" width="246" height="84" hspace="50"></p>
§4.9 I/O口<br> <br> PIC16C8X具有2个双向可编程I/O口:5位的PORTA和8位的PORTB。它们和PIC16C61的PORTA和PORTB完全相同,请参阅§1.9。<br>
<br>
§4.10 定时器/计数器<br> <br> PIC16C84有一个8位定时器/计数器TIMER0,它和PIC16C6X的TIMER0完全一样,有8位预分频器,有溢出中断等,请参阅§1.10的内容。<br>
<br>
§4.11 中 断<br> <br>
PIC16C8X有4种中断源:<br> 1、外部INT触发中断;<br> 2、TMR0溢出中断;<br>
3、PORTB<7:4>电平变化中断;<br> 4、E2PROM写操作完成中断。<br>
其中1~3的中断方式和PIC16C61的3种中断方式完全一样,请参阅第一章中有关PIC16C61的这部分内容。而第4种中断则是PIC16C8X特有的,见下图:<br>
<p align="center"><img src="image/a254.gif" width="439" height="145">
</p>
<p align="center">图4.6 PIC16C8X中断源</p>
<p><br>
<br>
PIC16C8X的中断控制寄存器INTCON如下图所示:</p>
<p align="center"><img src="image/a256.gif" width="568" height="656"></p>
<br> E2PROM中断标志位EEIF在EECON1寄存器中,请参阅图4.5。<br>
有关PIC16C8X的中断处理事项请参阅§1.13.4有关PIC16C6X的中断处理部分,它们完全相同。<br>
<br>
§4.12 CPU特性<br> <br> PIC16C8X和其他PIC单片机一样具备许多微处理器特性,如看门狗WDT、4种振荡选择、多种复位方式、程序保密位以及上电延时定时器PWRTE和振荡起振定时器OST等等,都和PIC16C61等完全一样,请参阅§1.13有关描述。<br>
PIC16C84各种复位后各特殊寄存器的状态值如下表所示:<br> <p align="center">
<img src="image/a257.gif" width="587" height="163">
<p align="center"><img src="image/a258.gif" width="582" height="447">
</p>
总之,PIC16C8X是易于学习和使用的单片机,读者如果已了解PIC16C61等芯片的知识,只要着重学习其相关E2PROM数据存储器方面的内容,即可掌握PIC16C8X的设计应用。
<div align="right"><br>
<a href="PIC16Cxxx-4.htm">上一页</a> <a href="PIC16Cxxx-3-5.htm"> </a>
<a href="PIC16Cxxx-3-5.htm"> </a></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>
<table width="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"> </td>
<td> </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> </td>
</tr>
<tr>
<td> </td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -