• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      詳解lAP15W4K58S4單片機的串行口通信

      2016-08-31 08:30:57胡燕清河源職業(yè)技術學院電子與信息工程學院517000
      電子測試 2016年15期
      關鍵詞:波特率緩沖器初值

      胡燕清(河源職業(yè)技術學院電子與信息工程學院,517000)

      ?

      詳解lAP15W4K58S4單片機的串行口通信

      胡燕清
      (河源職業(yè)技術學院電子與信息工程學院,517000)

      IAP15W4K58S4單片機是STC公司的全新一代高性價比、高性能單片機。串行通信是一種重要且廣泛應用的數(shù)據(jù)傳輸方式。本文詳細講解了IAP15W4K58S4單片機串口的結構、工作方式與波特率設置,并為串口的應用列舉了典型通用的串口初始化程序。

      IAP15W4K58S4;串口;工作方式;波特率

      0 引言

      IAP15W4K58S4單片機是STC公司推出的全新一代在應用可編程、單時鐘/機器周期的8051內核單片機,它具有高速、高可靠、寬電壓、低功耗、超強抗干擾的優(yōu)點特性,目前在教育與研發(fā)設計領域越來越受到眾多高校、科研院所與企業(yè)的青睞。本文詳細講解了IAP15W4K58S4單片機串口的結構、工作方式與波特率設置,并為串口的應用列舉了典型通用的串口初始化程序。

      1 串口的結構

      IAP15W4K58S4單片機具有4個高速異步串行端口,分別是串口1、串口2、串口3和串口4,每個串口由1個波特率發(fā)生器、1個串口控制寄存器、1個移位寄存器和2個數(shù)據(jù)緩沖器構成。每個串口的數(shù)據(jù)緩沖器由2個物理上獨立的接收和發(fā)送緩沖器構成,可同時接收和發(fā)送數(shù)據(jù),兩個緩沖器共用一個地址。串口1的兩個緩沖器為SBUF;串口2的兩個緩沖器為S2BUF;串口3的兩個緩沖器為S3BUF;串口4的兩個緩沖器為S4BUF。4個串口的內部結構類似,圖1為串口1的內部結構。串口發(fā)送時,將數(shù)據(jù)寫入SBUF即啟動發(fā)送,發(fā)送完畢時相應的中斷標志位TI置1;串口接收時,當中斷標志位RI=1時表示接收完畢,此時讀SBUF即可接收數(shù)據(jù)。每發(fā)送/接收完畢,都必須對TI/RI軟件清零。

      圖1 串口1的內部結構

      2 串口的工作方式及波特率設置

      IAP15W4K58S4單片機的串口1有四種工作方式,其中兩種方式的波特率可變,另外兩種方式的波特率固定。串口1的工作方式由串口1控制寄存器SCON的SM0、SM1兩位設置,串口1的工作方式及波特率設置如表1所示。

      10位UART,即一幀信息為10位:1位起始位‘0',8位數(shù)據(jù)位和1位停止位‘1'。11位UART,即一幀信息為11位:1位起始位‘0',8位數(shù)據(jù)位,1位可編程位(第9位,存放數(shù)據(jù)/地址標志位或奇/偶校驗位),和1位停止位‘1'。

      串口2和串口3、串口4都只有兩種工作方式,這兩種方式的波特率都是可變。以串口2為例,串口2的工作方式由串口2控制寄存器S2CON的S2SM0設置,串口2的工作方式及波特率設置如表2所示。

      注意:對于IAP15W4K58S4單片機,串口1默認選擇T2作波特率發(fā)生器,也可選擇T1作波特率發(fā)生器;串口2固定T2作波特率發(fā)生器;串口3默認選擇T2作波特率發(fā)生器,也可選擇T3作波特率發(fā)生器;串口4默認選擇T2作波特率發(fā)生器,也可選擇T4作波特率發(fā)生器。當串口1、串口3、串口4和串口2的波特率相同時,串口1、串口3、串口4和串口2可以共享T2作波特率發(fā)生器。

      表1 串口1的工作方式及波特率設置

      表2 串口2的工作方式及波特率設置

      3 串口的初始化程序

      串口1的四種工作方式包含了串口2、串口3、串口4的兩種工作方式,以下串口初始化程序以串口1的工作方式1(10位UART)為例,其他工作方式可在此基礎上方便修改。

      (1)采用T1作波特率發(fā)生器,且T1工作于方式0(16位初值自動重載模式)

      #include "stc15.h"

      #define FOSC 11059200L

      #define BAUD 9600

      void uart1_ini()

      { SCON = 0x50; //串口1方式1,允許

      接收

      AUXR &= 0xfe; //S1ST2=0:選擇T1

      為串口1的波特率發(fā)生器

      AUXR |= (1<<6); //T1x12=1:T1速度

      是傳統(tǒng)8051速度的12倍,不分頻即1T模式

      //AUXR &= ~(1<<6); //T1x12=0:T1速度

      是傳統(tǒng)8051速度,12分頻即12T模式

      TMOD = (TMOD & 0x0f) | 0x00; //定時器T1為方式

      0(16位初值自動重載模式)

      TL1 = 65536-FOSC/4/BAUD; //裝載波特率BAUD

      對應計數(shù)初值(T1x12=1即1T模式)

      TH1 = (65536-FOSC/4/BAUD)>>8;

      //TL1 = 65536-FOSC/12/4/BAUD; //裝載波特率BAUD

      對應計數(shù)初值(T1x12=0即12T模式)

      //TH1 = (65536-FOSC/12/4/BAUD)>>8;

      TR1 = 1; //啟動T1

      P_SW1 = 0x00; //串口1引腳切換

      至[RxD/P3.0, TxD/P3.1],復位默認值

      ES = 1; //串口1中斷使能

      EA = 1; //總中斷使能

      (2)采用T1作波特率發(fā)生器,且T1工作于方式2(8位初值自動重載模式)

      void uart1_ini()

      { SCON = 0x50; //串口方式1,允許接

      AUXR &= 0xfe; //S1ST2=0:選擇T1

      為串口1的波特率發(fā)生器

      AUXR |= (1<<6); //T1x12=1:T1速度

      是傳統(tǒng)8051速度的12倍,不分頻即1T模式

      //AUXR &= ~(1<<6); //T1x12=0:T1速度

      是傳統(tǒng)8051速度,12分頻即12T模式

      TMOD = (TMOD & 0x0f) | 0x20; //定時器T1為方式

      2(8位初值自動重載模式)

      PCON = 0x00; //SMOD=0波特率不加

      TL1 = 256-FOSC/32/BAUD; //裝載波特率BAUD

      對應計數(shù)初值(T1x12=1即1T模式)

      TH1 = 256-FOSC/32/BAUD;

      //TL1 = 256-FOSC/12/32/BAUD; //裝載波特率BAUD

      對應計數(shù)初值(T1x12=0即12T模式)

      //TH1 = 256-FOSC/12/32/BAUD;

      TR1 = 1; //啟動T1

      P_SW1 = 0x00; //串口1引腳切換至

      [RxD/P3.0, TxD/P3.1],復位默認值

      ES = 1; //串口1中斷使能

      EA = 1; //總中斷使能

      (3)采用T2作波特率發(fā)生器(T2工作方式固定為:16位初值自動重載模式)

      void uart1_ini()

      { SCON = 0x50; //串口1方式1,允許

      接收

      AUXR |= 0x01; //S1ST2=1:選擇T2

      為串口1的波特率發(fā)生器

      AUXR |= (1<<2); //T2x12=1:T2速度

      是傳統(tǒng)8051速度的12倍,不分頻即1T模式

      //AUXR &= ~(1<<2); //T2x12=0:T2速度

      是傳統(tǒng)8051速度,12分頻即12T模式

      AUXR &= ~(1<<3); //T2_C/T=0:T2作為

      定時器

      T2L = 65536-FOSC/4/BAUD; //裝載波特率BAUD對

      應計數(shù)初值(T2x12=1即1T模式)

      T2H = (65536-FOSC/4/BAUD)>>8;

      //T2L = 65536-FOSC/12/4/BAUD; //裝載波特率BAUD

      對應計數(shù)初值(T2x12=0即12T模式)

      //T2H = (65536-FOSC/12/4/BAUD)>>8;

      AUXR |= (1<<4); //T2R=1,啟動T2

      P_SW1 = 0x00; //串口1引腳切換至

      [RxD/P3.0, TxD/P3.1],復位默認值

      ES = 1; //串口1中斷使能

      EA = 1; //總中斷使能}

      4 結論

      IAP15W4K58S4單片機是STC公司的全新一代高性價比單片機。串行通信是一種重要且廣泛應用的數(shù)據(jù)傳輸方式。本文詳細講解了IAP15W4K58S4單片機串口的結構、工作方式與波特率設置,并為串口的應用列舉了典型通用的串口初始化程序。

      [1] STC公司.STC15系列單片機器件手冊.www.stcmcu.com,2015.

      [2] 徐愛鈞.STC15單片機C語言編程與應用[M].電子工業(yè)出版社,2016.

      Explication for the serial port communication of IAP15W4K58S4 MCU

      Hu Yanqing
      (College of Electronic and Information Engineering, Heyuan Polytechnic,517000)

      IAP15W4K58S4 is a new generation MCU of high cost performance from STC company.Serial communication is an important and widely used method of data transmission.This paper explicated in detail the structure,working mode and baud rate settings of serial port of IAP15W4K58S4,and listed the typical and universal serial port initialization program for the application of serial port.

      IAP15W4K58S4;serial port;working mode;baud rate

      胡燕清(1981-),男,碩士研究生,研究方向為單片機與嵌入式技術、傳感器技術與信號處理。

      猜你喜歡
      波特率緩沖器初值
      更正
      輕兵器(2022年3期)2022-03-21 08:37:28
      具非定常數(shù)初值的全變差方程解的漸近性
      重載貨車用緩沖器選型的研究及分析
      鐵道車輛(2021年4期)2021-08-30 02:07:14
      一種適用于平動點周期軌道初值計算的簡化路徑搜索修正法
      CAN 總線波特率自適應程序設計
      智能制造(2020年5期)2020-07-03 06:24:00
      三維擬線性波方程的小初值光滑解
      基于FPGA的異步串行通信波特率容錯設計
      電子測試(2018年7期)2018-05-16 06:27:18
      面向TIA和緩沖器應用的毫微微安偏置電流運放可實現(xiàn)500MHz增益帶寬
      具有無窮大初值的二維奇異攝動問題的漸近解
      C*Core芯片SCI串口波特率容限優(yōu)化
      桃江县| 陇川县| 毕节市| 大兴区| 青河县| 喀什市| 缙云县| 惠东县| 唐海县| 新营市| 宝坻区| 南宁市| 寻乌县| 隆林| 五常市| 晋宁县| 牙克石市| 会东县| 吴旗县| 阿荣旗| 金门县| 广饶县| 邓州市| 武冈市| 江阴市| 葫芦岛市| 龙州县| 淮北市| 菏泽市| 巩留县| 容城县| 大港区| 榆中县| 左云县| 清苑县| 临汾市| 盐城市| 洛宁县| 芮城县| 阿合奇县| 梅州市|