產品分類

      當前位置: 首頁 > 工業電氣產品 > 工業開關 > 輕觸開關

      類型分類:
      科普知識
      數據分類:
      輕觸開關

      單片機的MODEM通訊

      發布日期:2022-04-27 點擊率:105

          摘要 探討單片機之間或單片機與PC之間采用MODEM的實現方法,以及通訊參數的設定、數據的接收發送和部分AT命令的介紹,并給出演示程序。
        關鍵詞 MODEM通訊 AT命令 單片機 MODEM
        我們經常能見到關于PC的MODEM通訊的文章,但關于單片機MODEM通訊的文章卻不多見?,F在將我個人單片機MODEM通訊的實踐經歷寫出來供大家參考。
        要寫單片機的MODEM通訊必須要有兩個背景知識,一個是AT命令集,另一個是通用異步接收發送器(UART)。
        1 AT命令集
        下面介紹我通訊程序例子中涉及到的AT命令。
        Dn:撥號命令。該命令使MODEM立即進入摘機狀態,并撥出跟在后面的號碼。D命令是基本的撥號命令,它受到其它命令的修飾可構成MODEM何時撥號以及如何撥號等操作。
         T:音頻撥號。例如,ATDT88888888,其中88888888為電話號碼。
         P:脈沖撥號。例如,ATDP88888888,其中88888888為電話號碼。
         ,:標準暫停。我們常常碰到撥打外線電話時需要暫停一下,等聽到二次撥號音(外線)之后才能再撥后續的號碼。缺省時暫停時間為2s(秒),它由S8寄存器指定。
         Sn:表示MODEM內部的寄存器。
         S0:自動應答。如果要求MODEM具有自動應答特性,則應該預先將MODEM的S0寄存器設置為非0。
         S8:逗號撥號修飾符的暫停時間。該寄存器決定了當MODEM在撥號中遇到逗號(,)時應該暫停的時間。
        2  通用異步接收發送器UART
        深入理解UART內部結構以及內部寄存器各位的含義,詳細了解數據發送和接收的過程,有助于編寫出高效、穩定的程序?,F以GM16C550為例介紹編寫基本通訊程序需要知道的寄存器。實際的ADDRESS由具體接線決定。表1為GM16C550寄存器的介紹。
      表1  GM16C550寄存器
      按此在新窗口瀏覽圖片
        (1)  波特率除數鎖存器(LSB、MSB)
        在通訊之前要進行一些參數初始化,波特率是首先應該考慮的一項。該寄存器是一個16位的寄存器,分為低8位(LSB)和高8位(MSB)寄存器。
        當LCR.7=1,且A2A1A0=000/001時,單片機訪問的是波特率除數鎖存器LSB/MSB。GM16C550推薦的工作頻率是1.8432MHz。這個頻率除以16就是波特率的時鐘頻率,用于控制發送和接收數據的速度。下面給出波特率除數鎖存器值的計算公式:
        波特率除數鎖存器值=工作頻率/(16×期望波特率)=1843200/(16×期望波特率)
        表2給出了常用波特率與波特率除數鎖存器值。
      表2  波特率除數鎖存器
      按此在新窗口瀏覽圖片
      MOV  DPTR,#LCR  ;除數鎖定允許
      MOV  A,#80H
      MOVX  @DPTR, A
      MOV  DPTR,#LSB  ;波特率為9600baud
      MOV  A,#0CH
      MOVX  @DPTR, A
      INC  DPTR
      CLR  A
      MOVX  @DPTR, A
        按此在新窗口瀏覽圖片
      圖1  GM16C550與RS232接線圖
      (2)  接收緩沖寄存器和發送保持寄存器(transmit and receive holding register)
         當LCR.7=0,且A2A1A0=000時,讀操作單片機訪問接收緩沖寄存器(RHR),寫操作單片機訪問發送保持寄存器(THR)。
      (3)  中斷允許寄存器(interrupt enable register)
        當LCR.7=0,且A2A1A0=001時,單片機訪問中斷允許寄存器(IER)。
        IER.0=1,允許接收器數據就緒中斷。
        IER.1=1,允許發送保持寄存器為空時中斷。即當從發送保持寄存器把一個字節移到移位寄存器時,產生一個中斷,使發送保持寄存器能夠接收下一個字節。
        IER.2=1,表示允許接收有錯信息或間斷條件中斷。
        IER.3=1,MODEM狀態變化中斷。
        IER.4~7,沒有使用,設置為零。
      MOV DPTR,#IER
      MOV A,#01H
      MOVX @ DPTR ,A
      (4)  FIFO控制寄存器(FIFO control register)
        數據發送和接收模式的選擇。GM16C550提供了兩種模式:FIFO和DMA。其中DMA又有兩種模式DMA的模式0、DMA的模式1可供選擇。我的舉例采用默認的DMA的模式0。感興趣的朋友可試一試其它模式,這里不再說明。
      (5)  中斷狀態寄存器(interrupt status register)
        前面介紹了幾種中斷,它們在各自的條件下產生中斷,UART都會輸出一個高電平的中斷請求信號,觸發同一個中斷請求。為了具體判斷是哪一種中斷,還應該檢測ISR,如表3所列。
      表3  中斷狀態寄存器
      按此在新窗口瀏覽圖片
        ISR.0=1,表示沒有中斷產生。
        ISR.4~5沒有使用。
        ISR.6~7,當采用FIFO的接收和發送模式時,這兩位都設置為1;反之,都設置為0。
      (6)  線路控制寄存器(line control register)
        LCR.0~1,表示發送和接收時的字節長度,如表4所列。
        LCR.2,這一位與LCR.0~1共同定義了停止位的長度,如表5所列。
      表4  線路控制寄存器LCR.0~1
      按此在新窗口瀏覽圖片
      表5  線路控制寄存器LCR.2
      按此在新窗口瀏覽圖片
        LCR.3=1,進行奇偶校驗。
        LCR.4=0,進行奇校驗;LCR.4=1,進行偶校驗。
        LCR.5=1,奇偶校驗位恒為1或0。
        表6為線路控制寄存器LCR.3~5。
      表6  線路控制寄存器LCR.3~5
      按此在新窗口瀏覽圖片
        LCR.6=1,表示允許間斷,即允許發送器寄存器保持一個完整幀時間以上的空號狀態。
        LCR.7,用于區分訪問除數鎖存寄存器還是訪問接收緩沖/發送保持和中斷允許寄存器。
      MOVDPTR,#LCR;通訊傳輸長度為8位,停止位為1,
      ;偶校驗
      MOVA,#1BH
      MOVX @DPTR,A
      (7)  MODEM控制寄存器(MODEM control register)
        這是一個MODEM和外設接口的寄存器。
        MCR.0=1時,強制芯片引腳DTR=0;
        MCR.0=0時,強制芯片引腳DTR=1。
        MCR.1=1時,強制芯片引腳RTS=0;
        MCR.1=0時,強制芯片引腳RTS=1。
        MCR.2=1時,強制芯片引腳OP1=0;
        MCR.2=0時,強制芯片引腳OP1=1。
        MCR.3=1時,強制芯片引腳OP2=0;
        MCR.2=0時,強制芯片引腳OP2=1。
        MCR.4=1時,循環返回模式,可用于芯片自測。
        其它位保留。
      MOVDPTR,#MCR;異步串口芯片的DTR、RTS引腳送出邏輯低電平
      MOVA,#03H
      MOVX @DPTR,A
      (8)  線路狀態寄存器(line status register)
        LSR.0:當接收移位寄存器接收到的字節完全移到接收緩沖寄存器時,該位置1。如果讀該寄存器,那么這一位被清零。
        LSR.1:出現超越錯時,這一位被置1。讀該寄存器,這一位被清零。
        LSR.2:出現奇偶校驗錯時,這一位被置1。讀該寄存器,這一位被清零。
        LSR.3:出現停止位不完整、丟失、空號時,這一位被置1。讀該寄存器,這一位被清零。
        LSR.4:當接收寄存器檢測到空號狀態已持續一個完整幀傳輸時間時,這一位被置1。讀該寄存器,這一位被清零。
        LSR.5:當發送的字節從發送保持寄存器移到發送移位寄存器時,該位置1。
        LSR.6:當發送保持寄存器和發送移位寄存器都沒用字節時,該位置1。
        LSR.7

      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      主站蜘蛛池模板: 国产精品美女一区二区三区| 精品成人乱色一区二区| 国产精品视频一区二区三区| 无码一区二区三区视频| 日本夜爽爽一区二区三区| 精品无码人妻一区二区三区 | 无码人妻一区二区三区免费视频| 亚洲第一区香蕉_国产a| 一区二区三区杨幂在线观看| 天美传媒一区二区三区| 久久精品免费一区二区| 色老头在线一区二区三区| 国产精品无圣光一区二区| 中文字幕精品无码一区二区| 国内精品视频一区二区三区八戒 | 嫩B人妻精品一区二区三区| 日本人的色道www免费一区| 无码人妻av一区二区三区蜜臀| 中文字幕日韩丝袜一区| 久久国产精品无码一区二区三区| 国产精品免费一区二区三区四区| 91精品一区国产高清在线| 久久国产午夜精品一区二区三区 | 精品免费AV一区二区三区| 国产成人AV区一区二区三 | 亚洲一区二区三区乱码在线欧洲| 色窝窝无码一区二区三区| 无码人妻精品一区二区三区久久| 免费一区二区无码东京热| 亚欧色一区W666天堂| 无码日韩精品一区二区免费暖暖| 久久精品岛国av一区二区无码| 精品一区二区三区在线成人| 韩国福利一区二区美女视频 | 国产午夜毛片一区二区三区 | 韩国精品一区二区三区无码视频| 国精产品一区一区三区MBA下载| 狠狠做深爱婷婷久久综合一区| 国产一国产一区秋霞在线观看| 精品中文字幕一区在线| 三上悠亚精品一区二区久久|