<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PIC單片機通用同步異步收發(fā)器的編程應用

          PIC單片機通用同步異步收發(fā)器的編程應用

          作者: 時間:2011-12-28 來源:網絡 收藏

          0 引言

          PIC18Fxx8單片機是美國微芯公司推出的16位RISC指令集的高級產品,由于芯片內含有A/D、內部E2PROM存儲器、I2C和SPI接口、CAN接口、同步/異步(USART)接口等強大的功能,具有很好的應用前景。但是,目前介紹其應用和以C語言編程的中文參考資料很少。本文將探討該型單片機異步的編程應用,程序用HI-TECH PICC-18 C語言編寫,并在重慶大學-美國微芯公司PIC單片機實驗室的PIC18F458實驗板上通過。

          1 單片機同步/異步收發(fā)器(USART)

          通用同步/異步收發(fā)器(USART)模塊是由內的三個串行I/O模塊組成的器件之一(USART也叫接口即SCI),可以配置為全雙工異步方式、半雙工同步主控方式、半雙工同步從動方式三種工作方式。

          TXSTA是單片機串行通信發(fā)送狀態(tài)和控制寄存器,RCSTA是接收狀態(tài)和控制寄存器。由于在實際工程中,異步方式用得最多,這里僅介紹異步工作方式,其它方式可參閱相關資料。

          1.1 USART 異步工作方式

          在異步工作方式下,串行通信接口USART采用標準的不歸零(NRZ)格式(1位起始位、8位或9位數據位和一位停止位),最常用的數據位是8位。片內提供的8位波特率發(fā)生器BRG可用來自振蕩器時鐘信號產生標準的波特率頻率。通過對SYNC位(在TXSTA寄存器中)清零,可選擇USART異步工作方式。

          1.2 USART波特率發(fā)生器(BRG)

          USART帶有一個8位的波特率發(fā)生器(BRG),這個BRG支持USRAT的同步方式和異步方式。用SPBRG寄存器控制一個獨立的8位定時器的周期。在異步方式下,BRGH位(控制寄存器TXSTA的)也被用來控制波特率。在同步方式下,用不到BRGH位。表1給出了在主控方式下(內部時鐘)不同USART工作方式時的波特率計算式。

          1 主控方式下的波特率計算式

          SYNC

          BRGH=0(低速)

          BRGH=1(高速)

          0

          (異步)波特率=FOSC/[64X+1]

          波特率 = FOSC/[16X+1]

          1

          (同步)波特率=FOSC/[4X+1]

          1.3 USART 異步工作方式配置

          下面是串行通信異步工作方式配置步驟(順序可以改變):
          (1)配置發(fā)送狀態(tài)和控制寄存器TXSTA;
          (2)配置接收狀態(tài)和控制寄存器RCSTA;
          (3)配置RX(RC7引腳)、TX(RC6引腳)分別為輸入和輸出方式;
          (4)通過設定的通信波特率配置SPBRG寄存器,計算公式參見表1;
          (5)設置串行通信接收或發(fā)送中斷是否使能;
          (6)清串行通信接收或發(fā)送中斷標志;
          (7)設置串行通信接收中斷或發(fā)送中斷的優(yōu)先級是高或低優(yōu)先級中斷方式,PIC18單片機默認情況下是高優(yōu)先級中斷,若是低優(yōu)先級中斷,則必須進行設置;
          (8)設置串行通信接收和發(fā)送數據是否允許。

          若用到了中斷功能,還需設置總中斷和外圍中斷使能,以開放未屏蔽的中斷。

          2 USART接口硬件電路

          PIC單片機通用同步異步收發(fā)器的編程應用


          上一頁 1 2 3 下一頁

          關鍵詞: PIC18FXX8 串行通信

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();