www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式硬件

摘 要:介紹AVR單片機ATmega16和計算機的串行通信的軟、硬件設計,采用Visual Basic6.0中的MSComm通信控件實現(xiàn)計算機與單片機ATmega16之間的串行通信。文章詳細闡述了程序的設計流程,并給出了部分程序代碼。實驗證明該系統(tǒng)可以實現(xiàn)ATmega16與計算機之間的通信。
關鍵詞: ATmega16;計算機;串行通信;Visual Basic6.0

AVR單片機[1]是美國ATMEL公司的精簡指令集單片機,大多數(shù)是單周期指令,運行速度快。AVR單片機帶有Flash程序存儲器,擦寫方便,支持ISP(串行在線下載),便于產(chǎn)品的調(diào)試、開發(fā)和更新。ATmega16是AVR單片機家族中的高檔產(chǎn)品,是目前占主流、高信價比的AVR芯片之一。ATmega16的主要特點有:功耗低,在正常模式下只有1.1 mA;最高工作頻率可達16 MHz;具有可擦寫的16 KB的可編程Flash;內(nèi)含8路10 bit ADC;具有高度靈活的串行通信設備USART,使用時只需設置相關的寄存器參數(shù)就可以實現(xiàn)串行通信。
EIA-232是常用的串行通信[2]技術標準之一,是目前通信工業(yè)中應用最廣泛的一種串行接口,這是由于工業(yè)領域?qū)Ξa(chǎn)品的可靠性和穩(wěn)定性的要求更高,EIA標準下的串行通信技術完全可以滿足人們對工業(yè)設備傳輸?shù)母鞣N性能要求,使得EIA串口通信在系統(tǒng)控制[3-5]的范疇中一直占據(jù)著極其重要的地位。計算機和單片機的EIA-232串行通信是許多測控系統(tǒng)常用的一種通信解決方案。本文介紹了計算機和單片機ATmega16之間EIA-232串行通信的實現(xiàn)。計算機作為上位機,單片機作為下位機。
1 硬件設計
圖1為EIA-232串行通信系統(tǒng)的結構框圖。

EIA-232用正、負電壓來表示邏輯狀態(tài),有效負電平的狀態(tài)為邏輯1,有效正電平的狀態(tài)為邏輯0;而單片機使用的TTL電平是以高、低電平表示1和0兩種邏輯狀態(tài),因此將兩者相連必需進行電平邏輯關系的變換。圖1中的芯片MAX232就是將TTL和RS232電平相互轉(zhuǎn)換的器件。
圖2為EIA-232串行通信電原理圖。電壓VCC可采用5 V供電。

圖2中的D Connector9是用于連接計算機串行口的接插件,5腳是接地端,3腳是發(fā)送端TXD,2腳是接收端RXD。TXD端的電平經(jīng)MAX232轉(zhuǎn)換為TTL電平后送給單片機的接收端;單片機發(fā)送出的TTL電平的數(shù)據(jù)經(jīng)MAX232轉(zhuǎn)換為RS232電平經(jīng)RXD傳送給計算機。ATmega16工作時使用系統(tǒng)內(nèi)部時鐘8 MHz,不需外接晶振,只需在燒錄程序時設置相關參數(shù)即可使用內(nèi)部時鐘。圖2中標號為UP的是一個10腳的接插件,通過這個接插件與程序燒錄器相連即可實現(xiàn)單片機程序的燒錄操作,方便產(chǎn)品升級。
2 上位機程序設計
上位機程序的編寫采用Visual Basic6.0的編程環(huán)境。使用Visual Basic6.0的MSComm串行通信控件,非常容易實現(xiàn)串口通信,使用時要對串行通信的信息格式和協(xié)議進行設置。每個通信控件對應一個串口, 如果要訪問多個通信口, 則要設計多個通信控件。
計算機與單片機之間的通信采用查詢的工作方法,計算機作為上位機,單片機作為下位機。計算機主要負責發(fā)送控制命令以及數(shù)據(jù)的發(fā)送、接收、處理、計算和顯示等功能。計算機的程序設計包括界面設計以及程序代碼的編寫。圖3為設計的程序界面,圖3中含有發(fā)送數(shù)據(jù)的輸入框、接收數(shù)據(jù)的顯示框和命令控件按鈕。用鼠標點擊“發(fā)送/接收”按鈕后程序開始運行,接收數(shù)據(jù)與發(fā)送數(shù)據(jù)一致時說明通信成功,否則失敗。

圖4為程序設計的流程圖。具體的程序代碼包括串口的初始化及數(shù)據(jù)的發(fā)送與接收。初始化代碼主要對串行通信的信息格式和協(xié)議進行設置,串口的初始化代碼如下:
MSComm1. CommPort = 1 //使用COM1串口
MSComm1. Settings="9600,n,8,1"
//數(shù)據(jù)格式:波特率9600 b/s,無奇偶
校驗,8 bit數(shù)據(jù)位,1 bit停止位
MSComm1. OutBufferCount = 0 //清空發(fā)送緩沖區(qū)
MSComm1. InBufferCount = 0 //清空接收緩沖區(qū)
MSComm1. InputMode = 1 //以二進制形式取回數(shù)據(jù)
MSComm1. InputLen=0 //一次讀取緩沖區(qū)內(nèi)全部數(shù)據(jù)
   If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If //打開串口
數(shù)據(jù)的發(fā)送和接收主要用到下面兩句代碼:
MSComm1.Output = outdata
backdata = MSComm1.Input
  由于篇幅的限制,其他代碼不再給出。
3 下位機程序設計
  Atmega16內(nèi)部的USART是一個通用的同步和異步串行接收器和發(fā)送器,其高度靈活,使用非常方便。與USART相關的寄存器有:UDR、UCSRA、UCSRB、UCSRC、UBRRH和UBRRL。UDR是USART發(fā)送數(shù)據(jù)和接收數(shù)據(jù)共享的數(shù)據(jù)寄存器,將數(shù)據(jù)寫入UDR時實際操作的是通過UDR發(fā)送數(shù)據(jù),讀UDR時實際返回的是UDR中的數(shù)據(jù)。UCSRA、UCSRC和UCSRB為控制和狀態(tài)寄存器,串行口的通信模式的設置可通過對UCSRA和UCSRB的相關數(shù)據(jù)位進行寫操作來實現(xiàn)。數(shù)據(jù)幀包含的數(shù)據(jù)位數(shù)也是由UCSRB來確定,并與上位機保持一致。UBRRH和UBRRL為波特率寄存器,UBRRH和UBRRL是16位寄存器UBRR的高8位和低8位。UBRR的值是用于確定串行通信的波特率,對于異步正常模式(由UCSRA和UCSRB確定),波特率的計算公式為,對于9 600 b/s的波特率(和上位機一致),在fosc=8 MHz的情況下,通過計算得UBRR的值為51。對UBRR進行寫操作時注意要先寫高8位UBRRH,后寫低8位UBRRL,否則寫入無效。
  程序流程如圖5所示。判斷接收是否結束依據(jù)UCSRA中的標志位RXC,當RXC=1時表示接收沒有結束,繼續(xù)接收;當RXC=0時表示接收結束,可以從UDR中讀出接收到的數(shù)據(jù)。判斷發(fā)送是否結束依據(jù)UCSRA中的標志位TXC,當TXC=1時表示發(fā)送沒有結束;當TXC=0時表示發(fā)送結束。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉