日韩成人激情_欧美黑人xxx_国产一区二精品区在线_精品在线一区_97成人资源_久久久久久一区

產(chǎn)品分類

當(dāng)前位置: 首頁 > 工業(yè)電氣產(chǎn)品 > 工業(yè)開關(guān) > 輕觸開關(guān)

類型分類:
科普知識(shí)
數(shù)據(jù)分類:
輕觸開關(guān)

單片機(jī)的MODEM通訊

發(fā)布日期:2022-04-27 點(diǎn)擊率:103

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

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

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

主站蜘蛛池模板: 噜噜噜噜狠狠狠7777视频 | 国产精品美女久久久久久免费 | 日本中文在线视频 | 精品久久久久久久久久久久 | 欧美激情综合色综合啪啪五月 | 欧美一级大片 | 国产在线a | 亚洲天堂中文字幕 | 国产精品亚洲一区二区三区在线 | 国产精品一区二区久久 | 久久久久久99 | 亚洲精品片 | 久在草 | 天堂资源最新在线 | 日韩中文字幕在线免费 | 欧美精品1区2区3区 精品国产欧美一区二区 | 国产免费一区二区 | 亚洲精品国产第一综合99久久 | 狠狠操狠狠操 | 成人精品一区二区三区中文字幕 | 亚洲性视频| 一区二区国产在线观看 | 亚洲网站在线观看 | 精品国产鲁一鲁一区二区张丽 | 99re视频在线免费观看 | 永久精品 | 中文字幕精品一区二区三区精品 | 午夜精品一区二区三区在线 | 欧美精品一二三区 | 日韩精品一区二区三区中文在线 | 中文字幕在线网 | 91精品国产麻豆 | 久久一区二区视频 | 99精品久久 | 97色综合 | 婷婷久久综合 | 久久久久av| 精品1区2区3区 | 色婷婷在线视频 | 亚洲一区二区在线视频 | 国产三级在线观看播放 |