《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 單片機AT90S8515與PC的通訊
單片機AT90S8515與PC的通訊
來源:微型機與應用2013年第14期
張紅勇1,方 軍2
(1.西安理工大學,陜西 西安710048;2.西安工業大學,陜西 西安710032)
摘要: 介紹了單片機AT90S8515與PC構成的測控系統,利用單片機AT90S8515自身的串行通訊口和Visual Basic編程語言實現單片機AT90S8515與PC之間的通訊。
Abstract:
Key words :

摘  要: 介紹了單片機AT90S8515與PC構成的測控系統,利用單片機AT90S8515自身的串行通訊口和Visual Basic編程語言實現單片機AT90S8515與PC之間的通訊。
關鍵詞: 單片機AT90S8515;PC機;串行通訊

    工業領域的測控系統,用作操作、監視的上位PC和用作控制的下位單片機之間必須要進行信息交換,串行通訊是兩者之間常用的通訊方式。Atmel公司開發的AT90系列8位單片機是真正的RISC單片機,具備可多次編程的Flash程序存儲器、EPROM數據存儲器、可編程的URAT串行口及外部中斷等,再加上使用方便的SL-AVR程序開發軟件,可以在成本很低的情況下開發小型控制系統。本文主要介紹單片機AT90S8515與PC之間的串行通訊方法以及應用VB在PC上實現串行通訊的編程方法。
1 串行通訊的接口電路
    PC的串行通訊可以采用Modern方式或零調制方式,采用Modern方式時,通訊伙伴必須有調制解調器,這也是標準的RS232方式;采用零調制方式時,通訊伙伴沒有調制解調器,通訊時,雙方保證各自輸出的電平滿足RS232接口的邏輯要求。
    單片機AT90S8515的PD0和PD1口分別為有串行通訊功能的RXD和TXD,但是其輸入/出是TTL電平,而PC的串行口是按照RS232標準設計的,兩者的電平不匹配,不能直接連接。需要中間接口電路來完成電平轉換。RS232電平與TTL電平轉換用芯片MAX232E實現,電路如圖1所示。
    在圖1中,芯片MAX232E的T1OUT、R1IN和GND分別與PC串口以232電平對應連接;而T1IN、R1OUT為TTL/CMOS電平,與單片機AT90S8515的PD0(RXD)和PD1(TXD)對應連接。該電路為+5 V電源供電,其作用一方面使單片機發送的TTL信號轉化為RS232的電平信號;另一方面使PC進來的RS232電平轉換為單片機可接收的TTL/CMOS電平信號[1]。

2 單片機AT90S8515串行通訊原理及編程
2.1 單片機AT90S8515串行通訊原理

    AT90系列的單片機帶有一個全雙工通用串行異步收發器(UART)。通訊時使用4個寄存器:(1)數據寄存器UDR,該寄存器是兩個物理分離的、但分享同一個I/O地址的寄存器。當寫入UDR寄存器時,UART的發送數據寄存器被寫入;當讀UDR寄存器時,讀的是UART的接收數據寄存器。(2)狀態寄存器USR,該寄存器是一個只讀的寄存器,提供UART的狀態信息。數據接收完成標志為RXC、發送完成標志為TXC,數據寄存器清空標志為UDRE、幀出錯標志為FE、超時標志為OR。(3)控制寄存器UCR,該寄存器是一個讀/寫寄存器,用來設定是否啟動發送或接收、定義數據位數、接收或發送造成的中斷是否觸發等控制邏輯。(4)波特率寄存器UBR,該寄存器是一個讀/寫寄存器,用來設定通訊的波特率。UBR通過公式UBR=FCK/BAUD/16-1確定,其中FCK為單片機的晶振頻率,UBR表示波特率寄存器UBR中的值。
2.2 單片機AT90S8515串行通訊編程
    單片機AT90S8515芯片的通訊編程按如下步驟進行[2]:
    (1)對涉及通訊的數據、狀態、控制寄存器和波特率寄存器進行初始化,若使用中斷方法進行通訊,需同時對中斷進行定義。
    (2)發送數據編程,根據數據寄存器的清空標志UDRE,判斷是否該發送下一個數據。語句如下:
    Sbi        UCR, TXEN;            啟動數據發送
    Out        UDR, u_buffer;        發送數據
    Wait:    sbis USR,  UDRE;        等待數據寄存器清空
    Rjmp  wait
    (3)接收數據編程,通過循環檢測數據接收完成標志RXC,確定是否可以讀取新的數據。語句如下:
    Sbi        UCR, RXEN;            啟動數據接收
    Idle:        sbis USR,  RXC;        等待接收
    Rjmp     idle
    In        u_buffer,  UDR        讀入數據
3 PC的串行通訊及編程方法
3.1 PC的串行通訊方法

    PC的VB軟件為用戶提供了串口通訊使用的專用MSComm控件,MSComm控件唯一的事件是OnComm事件,對應的CommEvent屬性是MSComm控件記錄事件發生和錯誤的唯一屬性,該屬性用來配置通訊端口、傳輸數據、使用握手信號以及識別控件。使用該控件進行通訊時,有兩種方法可以選擇,查詢方式或事件觸發方式。其中,查詢方式是通過周期性地檢測CommEvent屬性的數值代碼判斷發生了哪種通訊錯誤或者事件;而事件觸發方式是利用OnComm事件的觸發器進行事件捕獲和處理,OnComm對輸入數據進行連續檢查,查明遠端的接收者是否準備好接收新的數據,當滿足OnComm的事件發生時,應用程序會自動設置CommEvent屬性,跳到控件的OnComm通訊子程序[3]。
3.2 PC的串行通訊編程步驟

 


    (1)通過CommEvent屬性設置各通訊參數,打開通訊端口,其中各參數定義如下:
    CommPort    :設置通訊口號
    Settings:設置波特率、奇偶校驗、數據位和停止位參數
    HandShaking:設置硬件握手協議
    InBufferSize和OutBufferSize:設置輸入、輸出緩沖區的大小
    InputLen:設置接收緩沖區中讀出的字符數
    InputMode:設置接收緩沖區的數據類型
    RThreshold:設置要接收的字符數
    SThreshold:設置接收允許的最小字符數
    PortOpen:打開或關閉串口
    (2)通過CommEvent屬性的Output項發送數據。如果數據為文本數據,Output項定義為一個包含一個字符串的變量;如果數據為二進制格式,Output項則需定義為一個包含字節數組的變量。MSComm控件為字符串中的每個字符傳輸8位ANSI編碼。如果發送一個ANSI字符串到應用程序,可以用文本數據格式發送,如果發送包含嵌入控制字符等數據,必須用二進制數據格式發送。
    (3)發送信息編程。首先,在工程窗體上添加一個多行顯示文本框,內容為待發送的信息,定義其名稱屬性為SendTxt;其次,在工程窗體添加一發送信息的控件按鈕,定義按鈕名稱屬性為TxdCmd;最后,雙擊控件按鈕TxdCmd,對其編程如下:
    Private Sub TxdCmd Click
    Dim Bufs As Variant
    Bufs=S1vNo.Text
    MSComm. Output’Bufs
    EndSub
    (4)接收信息編程。首先,在工程窗體上添加一個多行顯示文本框,定義名稱屬性為ReTxt;然后雙擊控件MSComm,對其編程如下:
    Private Sub MSComm_OnComm
    Dim ComEventMessage As String
    Select Case MSComm.CommEvent
    Case commEvReceive
    CommEventMessage=Receive buffer has RThreshold number of characters.
    ReTxt.Text= MSComm.Input
    End Select
    MsgBox(CommEventMessage)
    EndSub
    單片機技術已發展多年,在工業和民用多個領域仍有廣闊的前景。本文闡述了用VB語言使Atmel公司的AT90S8515單片機與PC通訊的技術。但是由于篇幅所限,再加涉及軟件編程,難以給出具體的細節,請讀者參考本文時,同時詳細參考有關的技術手冊,便于更深
刻地理解及實際應用。
參考文獻
[1] NELSON M.串行通訊指南[M].北京:中國水利水電出版社,2002.
[2] 耿德根.AVR高速嵌入式單片機原理與應用[M].北京:北京航空航天大學出版社,2001.
[3] 范逸之.Visual Basic與分布式監控系統[M].北京:清華大學出版社,2002.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲视频播放| 久久久97精品| 久久国产综合精品| 亚洲欧美精品在线观看| 亚洲视频免费| 一区二区国产日产| 日韩一级黄色大片| 99精品国产99久久久久久福利| 亚洲国产精品尤物yw在线观看 | 欧美日韩在线精品| 欧美日韩国产成人精品| 欧美日韩八区| 欧美区在线观看| 欧美女激情福利| 欧美另类视频| 欧美日韩在线视频观看| 国产精品国产成人国产三级| 欧美视频福利| 国产精品jizz在线观看美国| 欧美手机在线视频| 国产精品美女主播在线观看纯欲| 国产精品视频久久久| 国产精品一区在线播放| 国产一区二区久久久| 国内一区二区三区| 亚洲福利一区| 亚洲伦理在线观看| 99亚洲精品| 亚洲性视频h| 先锋亚洲精品| 久久精品视频免费| 亚洲毛片av| 亚洲欧美视频在线观看视频| 久久gogo国模裸体人体| 蜜桃精品一区二区三区| 欧美日本韩国一区| 国产精品激情| 国产自产高清不卡| 亚洲精品国产精品久久清纯直播| 一本色道久久综合亚洲精品按摩 | 亚洲免费在线视频| 久久精品国产99国产精品澳门| 最新成人在线| 亚洲图片欧美一区| 久久国产精品亚洲va麻豆| 另类人畜视频在线| 欧美日韩亚洲不卡| 国产亚洲一本大道中文在线| 在线视频观看日韩| 99在线热播精品免费| 性欧美8khd高清极品| 亚洲精品久久久久久久久久久久| 国产精品99久久99久久久二8 | 欧美日韩精品欧美日韩精品 | 久久久久国色av免费观看性色| 麻豆精品一区二区综合av| 欧美日韩色婷婷| 国产日韩一区二区三区在线| 影音先锋久久| 在线视频日韩精品| 亚洲二区在线视频| 亚洲一区二区三区涩| 久久精品伊人| 欧美视频一区二区在线观看| 黄色亚洲在线| 亚洲私人影院在线观看| 亚洲激情黄色| 午夜精品久久久久久99热软件| 猛干欧美女孩| 国产精品无码永久免费888| 亚洲二区精品| 午夜精品999| 99精品视频免费| 久久天天躁狠狠躁夜夜爽蜜月| 欧美日韩综合不卡| 欲色影视综合吧| 亚洲你懂的在线视频| 99精品久久久| 久久综合国产精品台湾中文娱乐网| 国产精品啊v在线| 亚洲国产福利在线| 欧美一区二区三区的| 亚洲图片欧洲图片日韩av| 免费一级欧美片在线观看| 国产伦理精品不卡| 一本一道久久综合狠狠老精东影业| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美精品一区二区视频| 国产在线精品一区二区中文| 在线亚洲电影| 日韩午夜在线观看视频| 久久久精品午夜少妇| 国产精品夜色7777狼人 | 亚洲在线视频| 欧美黄色一区二区| 狠狠色丁香婷综合久久| 午夜视频在线观看一区| 亚洲专区在线| 欧美日韩亚洲成人| 最新亚洲激情| 亚洲精品欧美激情| 老司机免费视频久久| 国外成人在线| 午夜精品久久久久久久男人的天堂 | 亚洲欧美日本精品| 欧美亚洲成人免费| 99视频精品免费观看| 一区二区欧美日韩| 欧美久久影院| 亚洲精品一区二区三区四区高清| 亚洲欧洲日产国产网站| 麻豆精品网站| 在线欧美日韩国产| 亚洲精品日韩久久| 欧美不卡视频| 亚洲国语精品自产拍在线观看| 亚洲精品一区二区网址| 欧美韩国日本综合| 亚洲精品123区| 99riav久久精品riav| 欧美激情综合在线| 91久久久久久久久久久久久| 日韩视频―中文字幕| 欧美精品18+| 亚洲靠逼com| 亚洲一区二区三区久久| 国产精品久久久久久模特| 亚洲一区二区久久| 欧美一区2区三区4区公司二百| 国产精品视频一区二区三区 | 亚洲美女在线国产| 欧美日韩999| 夜夜嗨av一区二区三区| 亚洲欧美日本另类| 国产日本欧美在线观看| 欧美在线首页| 模特精品在线| 最新高清无码专区| 亚洲特级毛片| 国产精品一区二区女厕厕| 欧美亚洲综合网| 久久影院亚洲| 亚洲三级免费| 亚洲免费在线观看视频| 国产私拍一区| 亚洲激情女人| 欧美日韩亚洲一区二区| 亚洲一区二区在线播放| 久久九九热免费视频| 亚洲高清在线播放| 一区二区三区不卡视频在线观看 | 亚洲精品你懂的| 欧美色另类天堂2015| 亚洲综合色网站| 久久这里有精品视频| 亚洲国产视频a| 亚洲欧美精品在线观看| 国内精品视频666| 日韩亚洲一区二区| 国产精品稀缺呦系列在线| 久久福利影视| 欧美日韩国产区一| 欧美一级电影久久| 亚洲日本一区二区三区| 99re在线精品| 欧美一级一区| 亚洲成人在线视频网站| 亚洲视频在线观看网站| 国产亚洲在线观看| 亚洲精品之草原avav久久| 欧美性大战久久久久久久| 午夜精品国产精品大乳美女| 欧美sm重口味系列视频在线观看| 一本久久精品一区二区| 久久久久九九九| 一个人看的www久久| 久久伊伊香蕉| 亚洲午夜91| 男女视频一区二区| 亚洲免费在线观看| 欧美激情第10页| 午夜精品久久久久久久男人的天堂| 欧美大胆成人| 亚洲欧美综合另类中字| 欧美精品一区二区三区在线播放| 亚洲欧美国内爽妇网| 欧美黄网免费在线观看| 香蕉久久精品日日躁夜夜躁| 欧美国产精品va在线观看| 性欧美办公室18xxxxhd| 欧美日韩性视频在线| 亚洲国产美国国产综合一区二区| 国产精品日本精品| 一道本一区二区| 在线观看91精品国产麻豆| 欧美亚洲在线| 亚洲美女av电影| 免费视频最近日韩| 欧美在线视频免费| 国产精品美女主播|