娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月11日(星期五)

正在發生

2018年04月11日 | 單片機的調制解調器通訊

發布者:導航燈 來源: eefocus關鍵字:單片機  調制解調器  通訊 手機看文章 掃描二維碼
隨時隨地手機看文章

  我們經常能見到關于PC的MODEM通訊的文章,但關于單片機MODEM通訊的文章卻不多見。現在將我個人單片機MODEM通訊的實踐經歷寫出來供大家參考。

  要寫單片機的MODEM通訊必須要有兩個背景知識,一個是AT命令集,另一個是通用異步接收發送器(UART)。

  1.AT命令集

  下面介紹我通訊程序例子中涉及到的AT命令。

  Dn:撥號命令。該命令使MODEM立即進入摘機狀態,并撥出跟在后面的號碼。D命令是基本的撥號命令,它受到其它命令的修飾可構成MODEM何時撥號以及如何撥號等操作。

 

  T:音頻撥號。例如,ATDT2245879,其中2245879為電話號碼。

  P:脈沖撥號。例如,ATDP2245879,其中2245879為電話號碼。

  ,:標準暫停。我們常常碰到撥打外線電話時需要暫停一下,等聽到二次撥號音(外線)之后才能再撥后續的號碼。缺省時暫停時間為2s(秒),它由S8寄存器指定。

  Sn:表示MODEM內部的寄存器。

  S0:自動應答。如果要求MODEM具有自動應答特性,則應該預先將MODEM的S0寄存器設置為非0。

  S8:逗號撥號修飾符的暫停時間。該寄存器決定了當MODEM在撥號中遇到逗號(,)時應該暫停的時間。

  2.通用異步接收發送器UART

  深入理解UART內部結構以及內部寄存器各位的含義,詳細了解數據發送和接收的過程,有助于編寫出高效、穩定的程序。現以GM16C550為例介紹編寫基本通訊程序需要知道的寄存器。實際的ADDRESS由具體接線決定。表1為GM16C550寄存器的介紹。

 
表1 GM16C550寄存器 
47.jpg

  (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接線圖。

GM16C550與RS232接線圖
    圖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所列。
54


  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:當奇偶校驗錯、幀格式錯、空號錯有一個出現時,該位置1。


  Setdata:

  MOV DPTR,#LSR

  MOVX A,@DPTR

  JNB ACC.5,Setdata

  MOV A,DataNumber;DataNumber記錄發 ;送字符的個數

  MOV DPTR,#AtCommand ;AtCommand定義AT命令參數的起始地址

  MOVC A,@A+DPTR

  MOV DPTR,#THR ;發送保持寄存器

  MOVX @DPTR,A

  INC DataNumber

  MOV A,DataNumber

  CJNE A,#0BH,Setdata ;發送11個字符

  AtCommand:DB “A”,“T”,“S”,“0”,“=”,“2”,“S”,“8”, “=”,“5”,0DH

  (9) MODEM狀態寄存器(MODEM status register)

   MSR.0~3=1時,表示自上一次單片機讀MSR寄存器之后,分別反映MODEM控制邏輯的四個輸入信號的狀態發生了變化。

  MSR.0=1時,清除發送信號(CTS)已經發生了變化。

  MSR.1=1時,數據設備就緒信號(DSR)已經發生了變化。

  MSR.2=1時,振鈴信號(RI)已經發生了變化。

  MSR.3=1時,載波信號(DCD)已經發生了變化。

  MSR.4~7四位分別反映MODEM控制邏輯的四個輸入信號的當前狀態。

  MSR.4=1時,清除發送信號(CTS)有效。

  MSR.5=1時,數據設備就緒信號(DSR)有效。

  MSR.6=1時,振鈴信號(RI)有效。

  MSR.7=1時,載波信號(DCD)有效。

  (10) 臨時數據寄存器(scratchpag register)

  可以存儲用戶信息。

  有了上面知識的準備后就可以輕松地寫出單片機的MODEM通訊程序。現在可把零散的東西組織起來了。

  GM16C550芯片初始化模塊

  Init_16C550:

  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

  MOV DPTR,#LCR;通訊傳輸長度為8位,停止 ;位為1,偶校驗

  MOV A,#1BH

  MOVX @DPTR, A

  MOV DPTR,#MCR;異步串口芯片的DTR。RTS ;引腳送出邏輯低電平

  MOV A,#03H

  MOVX @DPTR,A

  MOV DPTR,#IER

  MOV A,#01H

  MOVX @DPTR,A

  采用中斷的方式接數據

  Interrupt2:

  PUSH ACC

  PUSH DPH

  PUSH DPL

  PUSH PSW

  MOV DPTR,#RHR ;接受數據

  MOVX A,@DPTR

  ……………………

  POP PSW

  POP DPL

  POP DPH

  POP ACC

  RETI

  至此,完成了一個小型的單片機MODEM通訊系統。其中的檢錯寄存器、MODEM狀態寄存器等應用限于篇幅沒有完全涉及到。有興趣的朋友可以試一試,那么你就會對MODEM通訊有一個比較深刻的認識。


關鍵字:單片機  調制解調器  通訊 引用地址:單片機的調制解調器通訊

上一篇:提高單片機應用系統可靠性的軟件技術與方法介紹
下一篇:PowerPC G4 系列單板機的設計

推薦閱讀

  據悉,AT&T迫使聯邦通信委員會(FCC)在3.5GHz頻段內申請擴大許可范圍,因為較小的許可范圍會增加部署成本。下面就隨網絡通信小編一起來了解一下相關內容吧。  在提交文件時,AT&T和基礎設施提供商康普解釋說要充分覆蓋小型許可區域的邊界,運營商將不得不降低其傳輸功率,從而部署更多的小區站點以覆蓋相同的空間。這意味著設備和維護成本大幅增加,...
特斯拉發布了最新的自動駕駛安全報告,這是該公司第三次評估電動汽車在駕駛員將駕駛輔助技術設置于活躍狀態時的事故發生率。這家汽車制造商早在2018年底就開始報告自動駕駛儀的安全性,試圖反駁一些人對該系統可靠性的質疑。  當然,自動駕駛仍然是特斯拉汽車中最具爭議的元素之一。該系統結合了自適應巡航控制、車道保持和自動換道等功能,旨在幫助高速...
虛擬機環境:Oracle VM VirtualBoxLinux系統:ubuntu_14.04.6交叉編譯工具:[100ask分享的所有文件](https://eyun.baidu.com/s/3b1UtLc)100ask分享的所有文件 > 002_JZ2440資料光盤_20180516(免費) > 資料光盤 > A盤 > tools.zip > arm-linux-gcc-4.3.2.tar.bz2gcc-3.4.5-glibc-2.3.6/bin第一步:查看原理圖輸出低電平點亮LED燈輸出高電平熄滅LE...
4月9日,立昂微發布2020年度報告稱,公司實現營業收入為15.02億元,同比增長26.04%;歸屬于上市公司股東的凈利潤為2.02億元,同比增長57.55%。2020年,全球疫情下衍生的“宅經濟”、“云辦公”和線上教學催生了消費電子和醫療電子產品需求大幅增長,同時,隨著 5G、物聯網、新能源汽車等產業的崛起,芯片市場需求較為強勁,進而帶動了硅片的市場需求。據S...

史海拾趣

問答坊 | AI 解惑

電賽 NEC的有關資料

本帖最后由 paulhyde 于 2014-9-15 09:15 編輯 電賽 NEC的有關資料  …

查看全部問答∨

《模擬CMOS集成電路設計》作者:畢查德.拉扎維_PDF下載

模擬集成電路的設計與其說是一門技術,還不如說是一門藝術。它比數字集成電路設計需要更嚴格的分析和更豐富的直覺。嚴謹堅實的理論無疑是嚴格分析能力的基石,而設計者的實踐經驗無疑是誕生豐富直覺的源泉。這也正足初學者對學習模擬集成電路設計 ...…

查看全部問答∨

s3c6410+wince6.0+mt9d131攝像頭

在三星原驅動的基礎上修改攝像頭驅動(應用程序幾乎沒改,應用BSP原來所帶的demo),修改了相應的設置后,圖像出來后結果是花屏,好像是把屏幕分成4塊(從左往右),顏色也對。 將攝像頭設置為斑馬線測試格式輸出時,出現的也不對,相差很多。 有 ...…

查看全部問答∨

嵌入式前途好還是搞j2ee前途好

我搞了一段時間的j2ee開發(時間不長),現在有個機會去搞嵌入式開發,大家說說值得不? 想征求大家的意見…

查看全部問答∨

altium designer PCB設計中的全局編輯功能

網上很多網友都反映altium designer在某些方面還是優于10年經典版protel99se ,所以在空閑之余也下載了一個免安裝綠化版的altium designer折騰了下。希望altium designer不要追究我使用了盜版的altium designer,只因個人財力有限。折騰不起正版。 ...…

查看全部問答∨

大家看看下面的代碼有問題嗎??

module decoder_74LS138(G1,            G2A,            G2B,          &n ...…

查看全部問答∨

2012年8月TI 微控制器研習班正式招募中

時間與地點 日期地點課程地址8月9日北京MSP430 LaunchPad北京市中關村科學院南路2號融科資訊中心A座518室8月16日深圳C2000 LaunchPad深圳市南山區華僑城興隆街漢唐大廈19樓上海C2000 Concerto上海市浦東新區世紀大道1568號中建大廈32樓北京C2000 L ...…

查看全部問答∨

編譯時出現了一些問題,想請教各位大蝦一下

NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;           //設置為EXTI0 但是編譯的時候卻說“EXTI0_IRQChannel”沒有定義,之后我吧其他的在固件庫使用手冊中給的中斷的定義試了一下,都不行 ...…

查看全部問答∨

2013全國科技活動周

沒有去的朋友,看看圖片,看完趕緊去啊,呵呵 復合式土壓平衡盾構機 “蛟龍號”深海探測器 南極科考機器人—海燕飛行器機器人 拳擊對戰機器人 未來工程師 單兵戰術機器人 雙足人形機器人 3D打印機 機器魚 排爆機器 ...…

查看全部問答∨

基于sensortag的宿舍保姆系統

宿舍請個保姆是不可能的事情,不過我們可以通過藍牙和單片機的結合設計一個電子宿舍保姆。早上系統鬧鐘會按時提醒我們起床,之后會通過該模塊上的各種傳感器給我們指出當前環境情況。再有單片機與繼電器相連,很方便的通過藍牙來遙控宿舍內電燈、風 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 黔西| 辽宁省| 顺昌县| 临西县| 永年县| 澄迈县| 连江县| 建昌县| 松原市| 永善县| 兴义市| 新营市| 涿州市| 广水市| 夏河县| 通河县| 宣汉县| 观塘区| 桐庐县| 慈利县| 图木舒克市| 长岭县| 仙游县| 岱山县| 四子王旗| 许昌县| 西林县| 华亭县| 页游| 垣曲县| 邳州市| 武平县| 衡水市| 宁城县| 长海县| 翼城县| SHOW| 松潘县| 京山县| 武邑县| 天长市|