📄 pic16cxxx-1-6.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="778" border="0" cellspacing="0" cellpadding="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">第一章 PIC16C6X单片机</font><font size="3"></font></b></td>
</tr>
<tr>
<td> <p> </p></td>
</tr>
<tr valign="top">
<td height="300"> <p><img src="image/a110.gif" width="686" height="230"></p>
<p><img src="image/a111.gif" width="673" height="557"> </p>
<p><img src="image/a112.gif" width="691" height="695"></p>
<p><img src="image/a113.gif" width="676" height="593"></p>
<p>§1.12.2 采 样<br>
<br>
RX线上的信号由一个多点采样电路采三次样,如下图所示:<br>
</p>
<p align="center"><img src="image/a114.gif" width="574" height="185">
</p>
<p align="center">a. BRGH=0</p>
<p align="center"><img src="image/a115.gif" width="573" height="218">
</p>
<p align="center">b. BRGH=1</p>
<p align="center"><img src="image/a116.gif" width="572" height="202">
</p>
<p align="center">c. BRGH=1<br>
图1.49 RX脚上的采样时序<br>
</p>
§1.12.3 SCI异步方式<br> 在读方式下,SCI传输的数据格式是:一位启始位,8或9位数据位以及一位停止位(最常用的格式数据是8位)。波特率发生器BRG产生用户所需的波特率。SCI
接收和发送的顺序是由低位(LSB)到高位(MSB)。发送和接收的数据格式一样,所使用的BRG也是同一个。SCI硬件不直接支持奇偶校验位(Parity),但也以通过软件来实现(如作为第9位数据位)。在CPU处于睡眠(Sleep)下,波特率发生器BRG停止工作,所以SCI异步方式在睡眠状态下不能工作。<br>
通过置SYNC(TXSTA<4>)=0可选择异步工作方式。SCI异步方式包括以下几项重要元素:<br>
1. 波特率发生器BRG<br> 2.
采样电路<br> 3. 异步发送器<br> 4.
异步接收器
<p>一、SCI异步发送器<br>
发送器的核心是"发送移位寄存器"TSR和"发送缓冲器"TXREG。TXREG是软件可读/写的寄存器,用户程序把要发送的数据送入TXREG,然后再由TXREG置入TSR发送出去。TSR
要一直等到把目前正在发送的数据的停止位发出去后,才会从TXREG读入新的发送数据。一旦TXREG把数据送入TSR后,即发出中断请求(置TXIF=1)。注意,TXIF标志位不能由软件清零,只有当新的发送数据置入TXREG后,才由硬件清为零。TSR的状态则由TRMT(TXSTA<1>)位标识,当TRMT=1表示TSR寄存器空(没有要发送的数据)。TRMT位不会产生中断请求,用户程序必须用程序查询该位的值来判断TSR的情况。另外TSR寄存器是不可寻址的,即用户程序不能直接访问它(只能通过TXREG对它置数)。<br>
置TXEN(TXSTA<5>)=1可激活发送,不过真正的发送工作要等到TXREG已放有发送数据以及波特率发生器BRG发出移位脉冲后才开始,见下图。<br>
</p>
<p align="center"><img src="image/a117.gif" width="572" height="216">
</p>
<p align="center">图1.50 异步发送器结构图</p>
<p>当然用户也可以先把发送数据送入TXREG,然后再置TXEN为1来开始发送工作。一般当发送启动时,TSR都是空的,一旦用户程序把数据置入TXREG后,即马上转送入TSR,然后TXREG又是空的,所以二个数据可以连续发送,见图1.49所示。<br>
如果在数据发送中用户程序清零TXEN位,则会造成发送工作中断,TX线恢复为高阻态。如果要发送9位数据,须先设置TX8/9(TXSTA<6>)=1,然后再把第9位数据置入TXD8(TXSTA<0>)。注意该第9位必须在前8位置入TXREG之前置入TXD8,否则第9位数可能会出错。</p>
<p align="center"><img src="image/a118.gif" width="575" height="181"></p>
<p align="center">a. 单个数发送 </p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -