• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于GSM模塊與AT89C51的接口設計及應用

    基于GSM模塊與AT89C51的接口設計及應用

    作者: 時間:2009-03-26 來源:網絡 收藏

    本文引用地址:http://www.czjhyjcfj.com/article/173834.htm

    CMGD:MOV 40H,#41H;A

    MOV 41H,#54H;T

    MOV 42H, #2BH;+

    MOV 43H,#43H;C

    MOV 44H,#4DH;M

    MOV 45H,#47H,G

    MOV 46H,#46H;F

    MOV 47H,#3DH;=

    MOV 48H,#16H;短消息號

    MOV 49H,#17H

    MOV 4AH,#0DH;CR

    MOV R2,#0BH

    CMGD1:

    MOV A,@R0

    MOV SBUF,A

    MOV 1CH,#200

    JNB TI,$

    CLR TI

    DJNZ R2,CMGD1

    MOV R2,#0DH

    CMGD2:

    JNB RI,$

    CLR RI

    MOV A,SBUF

    DJNZ R2,CMGD2

    MOV RO,#40H

    CMGD3:

    JNB RI,$

    CLR RI

    MOV A,SBUF

    MOV @R0,A

    INC RO

    CJNE A,#0AH,CMGD3;判斷換行字符

    MOV A,40H

    CJNE A,#4FH,CMGD4;錯誤時轉移

    SETB F0;刪除成功

    RET

    CMGD4:

    CLR F0;刪除失敗

    RET

    的指令符號、常數、PDU數據等都是以ASCII編碼形式傳送;傳送透明數據必須把的工作模式設置為PDU模式;單片機向發送每一條指令后,必須以回車符作為該條指令的結束,例如單片機向手機發送“AT+CMGF=0”這條指令,其ASCII編碼序列為“41H、54H、2BH、42H、4DH、47H、46H、3DH、30H、0DH”,最后一個字節0DH就是回車符,表示該條指令結束,如果沒有這個回車符,手機將不識別這條指令。當接收到一條完整的后,TC35i模塊并不立即執行該條指令,而是先把剛才接收到的的ASCII編碼序列全部反發送出來(含0DH);其次發送一個回車符和一個換行符的ASCII編碼,即0DH和0AH;然后執行該指令。

    單片機讀取TC35i模塊的PDU數據時,原始數據應該是16進制數,但讀回的數據仍然是ASCII表示的16進制數。這樣一個字節的16進制數就變成了2個字節的ASMII碼。但是PDU數據包中的數據字節長度部分仍然是實際字符長度。而不是變成ASCII碼的字節長度,這在編程時應特別注意,否則,接收的數據就不完整。單片機接收到PDU數據包數據后,必須將其恢復成16進制數據,其算法如下:設a為接收的ASCII碼,b為轉換后的16進制數。那么如果a39H,則b=a-30H;如果a>39H,則b=a-30h-07H。最后把前后兩個數合并為一個字節。

    TC35i模塊向單片機應答PDU數據包的字節數時不包括前9個字節數據,但向單片機傳送PDU數據包時,包括這9個字節的數據。例如,如果TC35i模塊應答的PDU數據長度為50,而實際向單片機傳送的16進制數據為59字節,ASCII碼為2×59字節,所以單片機必須按2×59個字節接收PDU數據。

    5、結論:

    使用手機模塊利于系統集成,成本較低。在偏遠地區等架設通信線路困難或不經濟的地方,工程服務設施可以自由靈活的設置,不再受地形條件的限制。總之,模塊價格低廉、廣泛,前景誘人,通過與手機模塊可以很方便的出用戶所需要的數據接收終端。


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 夏津县| 大丰市| 高雄县| 若尔盖县| 颍上县| 静安区| 高淳县| 柳林县| 惠州市| 城步| 大姚县| 任丘市| 瓦房店市| 兴仁县| 镇坪县| 中宁县| 天峻县| 顺义区| 福贡县| 汝州市| 博白县| 大余县| 友谊县| 文山县| 滨海县| 泽库县| 婺源县| 石屏县| 淮北市| 漳浦县| 衡阳县| 金阳县| 普格县| 宁陕县| 迁西县| 额尔古纳市| 万载县| 封开县| 白城市| 桦南县| 临夏市|