📄 pic16cxxx-5-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="766" 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">第五章 PIC16C62X单片机</font><font size="3"></font></b></td>
</tr>
<tr>
<td> <p> </p></td>
</tr>
<tr valign="top">
<td height="300"> §5.8.2 PORTB
<p> PIC16C62X的8位PORTB及其方向控制寄存器TRISB(86H)的功能和其他PIC16CXX完全一样,请参阅§1.8.2。<br>
<br>
§5.9 计数器/定时器TIMER0<br>
<br>
和其他PIC16CXX完全一样,参阅§1.9。<br>
<br>
§5.10 看门狗<br>
<br>
和其他PIC16CXX完全一样,参阅§1.13.5。<br>
<br>
§5.11 比较器模块<br>
<br>
PIC16C62X独有的比较器模块含有2个模拟比较器。RA0~RA3 都可以作为比较器的输入,而片内的参考电压也可以作为比较器的输入。<br>
比较器控制寄存器CMCON控制比较器的输入/输出组合,见下面二图:</p>
<p align="center"><img src="image/a273.gif" width="487" height="546"></p>
<p align="center"><img src="image/a274.gif" width="573" height="699"></p>
<p align="center">图5.8 比较器工作模式</p>
<p><br>
§5.11.1 比较器模式设置<br>
<br>
从图5.8我们可以看到,PIC16C62X的比较器有8种工作模式,它们由控制寄存器CMCON<0:2>三位设置选择,寄存器TRISA控制每种模式下比较器的数据方向。如果要改变工作模式,则应先关闭比较器中断以免产生误中断。<br>
下面这段程序是改变设置比较器工作模式的范例,假设RA3和RA4要设置为数据I/O口输出,而RA0和RA1要分别设置成两个比较器的V-输入,RA2则作为两个比较器V+输入。</p>
<p align="center"><img src="image/a275.gif" width="577" height="431"></p>
<p>§5.11.2 比较器工作过程<br>
下图是一个比较器的工作过程:</p>
<p align="center"><img src="image/a276.gif" width="259" height="241"></p>
<p align="center"> 图5.9 比较器工作过程</p>
<p>当VIN+端的电压小于VIN-的电平时,比较器输入为低电平,反之,输出则为高电平。图中阴影部分表示输出状态处于不定,这是因为转换响应延迟造成的。<br>
<br>
§5.11.3 比较器参考源<br>
<br>
比较器参考源有二种:外部参考源/内部参考源。<br>
<br>
一、外部参考源<br>
当使用外部参考电压时,两个比较器可以使用同一个参考源,也可以使用不同的参考源。参考电压必须介于VSS和VDD之间,可以加到比较器的任何一端输入端上。<br>
<br>
二、内部参考源<br>
比较器也可以使用芯片内部自己产生的参考电压。只要当比较器选择CM<2:0>=010工作模式时,才可以使用内部参考源,这时内部参考电
压加到二个比较器的VIN+输入端上,请参见图5.8所示。<br>
<br>
§5.11.4 比较器反应时间<br>
<br>
比较器的反应时间指的是当选择新的参考电压或新的输入时,比较器的输出重新达到稳定状态所需的最短时间。<br>
<br>
§5.11.5 比较器输出<br>
<br>
两个比较器输出反映在CMCON寄存器的C1OUT和C2OUT两位上,它们可由程序读出,参阅图5.7。另外比较器的输出也可通过RA3或RA4直接输出到I/O口线上。当CM<2:0>=110时,两个比较器的输出直接输出到RA3或RA4,参阅图5.8。在这种工作模式下,RA3和RA4应通过TRISA置为输出态。下图是比较器的输出方块图:</p>
<p align="center"><img src="image/a277.gif" width="373" height="273"></p>
<p align="center"> 图5.10 比较器输出框图</p>
<p><br>
如果把I/O线设置为模拟输入,则读该I/O口线将读回"0",而如果数字输入口线加上模拟信号,则会根据斯密特触发器特性将其转换为数字电平,并有可能使输入缓冲器消耗额外的电流。<br>
<br>
§5.11.6 比较器中断<br>
<br>
先来看二个和比较器中断有关的寄存器:PIE1和PIR1。</p>
<p align="center"><img src="image/a278.gif" width="398" height="423"></p>
<p>当任一个比较器的输出发生电平变化后就会产生中断请求,并置CMIF(PIR1<6>)=1。如果这时CMIE(PIE1<6>)=PEIE(INTCON<6>)=GIE(INTCON<7>)=1,则会产生中断,关于中断控制寄存器请参阅§5.12。<br>
为了判断是哪一个比较器输出发生了变化,用户程序必须保存CMCON<7:6>两位的值以便和最新的变化做比较,下面是一段例程。<br>
<br>
<img src="image/a279.gif" width="450" height="297" hspace="50"></p>
<p>§5.11.7 睡眠中的比较器<br>
<br>
如果一个比较器是开启的,那么即使芯片进入睡眠状态后,该比较器仍然是处于工作状态的,其输出的变化仍会发出中断请求,如果比较器开中断,则该中断会把芯片从睡眠中唤醒过来。<br>
比较器在工作时要消耗一定的电流,所以如果在睡眠中比较器处于工作状态,则芯片的功耗会比一般的睡眠功耗高。如果要使芯片的功耗最低,可以在进入睡眠(执行Sleep指令)前关闭比较器模块(CM<2:0>=111)。芯片从睡眠中醒来(WDT溢出唤醒或中断唤醒)时,寄存器CMCON的值不会变化,比较器模块的工作模式也就保持不变。<br>
<br>
§5.11.8 复位的影响<br>
<br>
芯片复位都会使CMCON清零,即CM<2:0>=000。这就使得比较器模块处于复位状态,RA<0:3>皆作为比较器的模拟输入,参阅图5.10。<br>
<br>
§5.11.9 模拟输入的连接<br>
<br>
下图是模拟输入的简图:</p>
<p><img src="image/a280.gif" width="510" height="294" hspace="20"></p>
<p> 从图中可看到,由于模拟输入和数字输出是复用的,所以接有一对箝位二极管。模拟输入的电压值必须介于VSS和VDD之间,如果超出这个范围0.6V,其中一个箝位二极管即可导通,使输入电压被箝位。输入电阻不要大于10KΩ,任何外接在模拟输入脚上的元件,如电容或齐纳二极管,其漏电流应很小(请参阅§2.14有关PIC16C7X模拟输入连接的内容)。</p>
<div align="right"><br>
<a href="PIC16Cxxx-5.htm">上一页</a> <a href="PIC16Cxxx-5-2.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 + -