




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、淮安信息職業(yè)技術(shù)學院面向?qū)ο缶幊陶n程設計題目:基于JAVA的單片機上位機通信軟件開發(fā)作者: 周陽潔 指導老師:潘漢懷 楊 永 專業(yè):電子信息工程(物聯(lián)網(wǎng))時間:二一三年一月六日 9 / 12文檔可自由編輯打印摘要隨著計算機技術(shù)尤其是單片微型機技術(shù)的發(fā)展,單片機被廣泛應用在工業(yè)控制系統(tǒng)中。在分布式控制系統(tǒng)中多采用單片機進行數(shù)據(jù)采集和現(xiàn)場控制。由于單片機的計算能力有限,難以進行復雜的數(shù)據(jù)處理,因此在功能復雜的控制系統(tǒng)中常采上位機下位機系統(tǒng),單片機用作下位機進行數(shù)據(jù)采集和設備控制,而PC機用做上位機進行復雜的數(shù)據(jù)處理和對單片機的控制。因此如何實現(xiàn)PC機與單片機之間的通信具有重要的現(xiàn)實意義。本次實訓詳
2、細介紹了單片機與PC機通信的軟硬件實現(xiàn)。在硬件設計中,單片機系統(tǒng)與PC機系統(tǒng)通過RS-232串行通信端口進行互連,單片機系統(tǒng)將由PC 機傳輸過來的數(shù)據(jù)信息控制LED顯示屏。在軟件設計中,采用JAVA語言設計PC上的串口通信程序。(現(xiàn)在Java已用于開發(fā)大型企業(yè)的應用程序、增強WWW服務器的功能,以及為消費類設備提供應用程序。它是一個跨平臺,能夠把真?zhèn)€Internet作為一個統(tǒng)一的運行平臺。)目 錄第一章 摘要-1-第二章 目錄-2-第三章 硬件設計13.1 顯示屏行驅(qū)動電路設計2-3.2 顯示屏列驅(qū)動電路設計23.3 PC 機與AT89S51串口通信電路設計2第四章 軟件設計34.1LED顯示
3、屏程序設計34.2 PC機程序設計4第五章 系統(tǒng)調(diào)試5第六章 心得體會8第三章 硬件設計本項目采用單片機控制LED顯示屏,單片機與PC機通信采用JAVA語言開發(fā),系統(tǒng)的硬件電路設計包含兩部分內(nèi)容:一是系統(tǒng)擴展,即單片機功能單元,如ROM、RAM、I/O、定時器/計數(shù)器、中斷系統(tǒng)等不能滿足應用系統(tǒng)的要求時,必須在片外進行擴展,選擇適當?shù)男酒O計相應的電路;二是系統(tǒng)的配置,即按照系統(tǒng)功能要求配置外圍設備,如點陣顯示器等,要設計合適的接口電路。硬件電路設計如圖3-1所示,硬件電路主要包括ATmega16單片機最小系統(tǒng)、串口通信電路和LED點陣驅(qū)動電路,Proteus軟件沒有驅(qū)動電流仿真能力,所以這
4、里僅對設計電路功能仿真驗證。3.1 顯示屏行驅(qū)動電路設計從單片機輸出五個信號分別輸入到2 個級聯(lián)的74HC154譯碼器(4線16),然后輸出16 位行信號,接單片機PC口,虛擬串口COMPIM。3.2 顯示屏列驅(qū)動電路設計從單片機里出來的列信號通過8個8 位74HC595 級聯(lián)而成信號輸出端連接16*16 的點陣LED 的輸入端。74HC595是移位寄存器(SHCP 第11腳 移位寄存器時鐘輸入; STCP 第12腳 存儲寄存器時鐘輸入),不僅起到驅(qū)動點陣的作用,而且將串行數(shù)據(jù)轉(zhuǎn)換成8 位數(shù)據(jù),可以用它的鎖存功能實現(xiàn)硬件電路對數(shù)據(jù)的刷新,實現(xiàn)點陣的動態(tài)顯示。在protues里面COMPIM可以
5、調(diào)用實際的串口和外部通信。3.3 PC 機與AT89S51串口通信電路設計PC 機與89c52 串口通信由RS232 轉(zhuǎn)換電路、子模塊地址標識電路和點陣驅(qū)動電路組成。由于采用單片機的異步串行口進行多機通信進行數(shù)據(jù)傳輸,單元模塊應該有和其位置相對應的地址標識地址標識電路采用8 位并進串出芯片74HC595組成。LED 點陣采用動態(tài)掃描法進行驅(qū)動,并且實現(xiàn)16 階灰度顯示,為了節(jié)省單片機程序中掃描程序的時間消耗,提高掃描速度,顯示數(shù)據(jù)采用并行輸出的方法。3-1 LED顯示屏硬件電路第四章 軟件設計4.1 LED顯示屏程序設計Ø 明確AT89C51、74HC595、74HC154芯片的作用
6、;Ø 會使用取模軟件,本次我們使用(從上到下 從左到右 縱向上高位)對AT89C51單片機驅(qū)動16*16*4點陣;(淮安信息 職業(yè)技術(shù))Ø 芯片74HC595控制發(fā)送代碼 void Sendbyte_H(unsigned char bb,unsigned char aa) unsigned char j; for(j=0;j<8;j+) H_shcp=0; H_ds=aa&0x01; H_shcp=1; /數(shù)據(jù)在上升沿輸入 aa>>=1; /數(shù)據(jù)右移一位 for(j=0;j<8;j+) /循環(huán)8次移入數(shù)據(jù) H_shcp=0; H_ds=bb&
7、amp;0x01; H_shcp=1; /數(shù)據(jù)在上升沿輸入 bb>>=1; /數(shù)據(jù)右移一位 H_stcp=0; H_stcp=1; H_ds=1;Ø 串口中斷4接受的代碼 void INT_UartRcv() interrupt 4 Rcv=SBUF-0x30; /用ASCII碼轉(zhuǎn)換 RI=0; /清除發(fā)送完成標志位 SBUF=Rcv; /發(fā)送數(shù)據(jù) while(!TI); /等待發(fā)送結(jié)束 TI=0; /清發(fā)送完成標志位Ø 主代碼 SCON=0x50; /SCON: serail mode 1, 8-bit UART, enable ucvr TMOD |=0x2
8、0; /TMOD: timer 1, mode 2, 8-bit reload PCON |=0x80; /SMOD=1; TH1=0xFA; /Baud:9600 fosc=11.0592MHz ES=1; /open the enable serial TR1=1; /timer 1 run EA=1; /open the enable all interrupt while(1) for(i=0,r=k;i<16;i+,r+) H_G_1=1;HC154_data=i;for(j=0;j<4;j+) Sendbyte_H(displayRcv*4+3-j2*r),(displ
9、ayRcv*4+3-j2*r+1); H_G_1=0; for(t=0;t<130;t+); Sendbyte_H(0xff,0xff); for(t=0;t<200;t+); 4.2 PC機程序設計² 導入了5個包import java.awt.*; import java.awt.event.*; /設置關(guān)閉窗口用的包import java.io.*; /提供了全面的I/O接口和類import java.util.*; /Enumeration 為枚舉型類import m.*; /API協(xié)議中沒有該包,SUN公司下的串口包² S_Frame類class S_
10、Frame extends Frame implements Runnable,ActionListener /定義了一個S_Frame類,父類:Frame(窗體)接口:Runnable(java.lang 為非 Thread 子類的類提供了激活方式);ActionListener(java.awt.event 接收操作事件的偵聽器) static CommPortIdentifier portId; /檢測系統(tǒng)中可用的通訊端口類 static Enumeration portList; /java.util Enumeration 為枚舉型類 OutputStream outputStrea
11、m; /java.io 輸出流接受輸出字節(jié)并將這些字節(jié)發(fā)送到某個接收器² RS-232的串行口的設計 SerialPort serialPort; Thread readThread;/線程 是程序中的執(zhí)行線程。Java 虛擬機允許應用程序并發(fā)地運行多個執(zhí)行線程。 Panel p=new Panel(); /對面板類的對象為P的實例化 TextField in_message=new TextField("Open COM1, 9600 baud rate, data bits 8, 1 stop bits."); /對象是in_message(允許編輯單行文本的
12、文本組件) /窗口下方顯示"打開COM1,波特率9600,數(shù)據(jù)位8,停止位1."(構(gòu)造方法) TextArea out_message=new TextArea(); /對象是out_message顯示文本的多行區(qū)域,可以將它設置為允許編輯或只讀。 Button btnOpen=new Button("Open the serial port, sending data"); /java.awt 對按鈕類的對象為btnOpen的實例化窗口左上方顯示"打開串口, 發(fā)送數(shù)據(jù) Button btnClose=new Button("Clos
13、e the serial port, stop sending data"); /java.awt 對按鈕類的對象為btnOpen的實例化窗口左上方顯示"關(guān)閉串口, 停止發(fā)送數(shù)據(jù)" byte data=new byte10240; /對位類的對象為data的實例化 boolean mark; /*設置判斷要是否關(guān)閉串口的標志*/² 如何安排窗體a. 用"super",讓子類不隱藏或覆蓋父類的成員變量和成員方法;b. setSize(200,20)如:setLocation(30,30); setVisible(true); setBa
14、ckground(Color.lightGray);Ø 點擊按扭打開串口 mark=true; /用于中止線程的run()方法Ø 關(guān)閉窗口 public void windowClosing(WindowEvent e) /用于接收窗口事件的偵聽器接口 System.exit(0);/用戶試圖從窗口的系統(tǒng)菜單中關(guān)閉窗口時調(diào)用Ø 其他使用的類和方法 循環(huán)語句 while 判斷語句 if異常處理 try_ catch_finally 第五章 系統(tǒng)調(diào)試正確安裝Java Communication API并將上述程序編譯通過以后,可以按如下方法測試這個程序。如果你只有一臺
15、機器,你可以利用一條RS-232電纜將COM1和COM2連接起來,在COM1上運行SerialExample,在COM2上運行Windows提供的超級終端程序。如果你有兩臺機器的話,你可以利用一條RS-232電纜將兩臺機器的COM1(或者是COM2)連接起來,在一端運行例程,另外一端運行Windows提供的超級終端程序。如果有必要的話,可以對SerialExample中所聲明的串口進行相應改動。 本程序在Windows XP + Java SDK 1.6環(huán)境下編譯通過并成功運行。采用計算機仿真調(diào)試, 運用虛擬串口配對軟件Virtual Serial Ports Driver實現(xiàn)COM1和COM
16、2配對,上位機串口設為COM1,單片機串口設為COM2,通過下面步驟調(diào)試:1、下載java Communications api開發(fā)包。|2、將win32com.dll拷貝入C:j2sdk1.4.2_04bin; 3、將comm.jar拷貝入C:j2sdk1.4.2_04jrelibext ;4、將perties拷貝入C:j2sdk1.4.2_04jrelib; 5、編譯ReceiveComm.java,SendCom.java文件,運行結(jié)果如5-1、5-2所示;6、打開proteuse軟件設計硬件電路圖如圖3-1所示;7、配對上位機和單機片串口,通過串口調(diào)試程序輸入0X00時,LE
17、D顯示屏 顯示淮安信息字樣;通過串口調(diào)試程序輸入0X01時,LED顯示屏顯示職業(yè)技術(shù)字樣。由于本設計沒有編寫上位機程序,所以只能串口接收數(shù)據(jù)采用調(diào)用形式顯示漢字。這里僅給出仿真結(jié)果如圖5-3,圖5-4所示。 注意:由于串口為共享資源,所以在設計程序時應采用單例模式。圖5-1串口輸入0時,LED顯示屏顯示結(jié)果圖5-2串口輸入1時,LED顯示屏顯示結(jié)果圖5-3采用串口精靈的收發(fā)圖5-4 ReceiveComm.java運行界面 圖5-5采用串口精靈的發(fā)與ReceiveComm.java運行結(jié)果第六章 心得體會第一次接觸“Java”是在手機里,慢慢才知道它是應用于塞班、安卓系統(tǒng)之上。本學期我們開設了
18、面向?qū)ο蟪绦蛟O計,系統(tǒng)的學習JAVA語言。 Java語言是1991年,由美國Sun公司開發(fā),為了解決家用消費電子產(chǎn)品智能化過程中的控制和通訊問題,設計出的一種適合開發(fā)跨平臺嵌入式軟件語言。它提供了強大的圖形、圖像、動畫、音頻、視頻、多線程和網(wǎng)絡交互功能,這使它特別適合于設計交互式的多媒體網(wǎng)頁。這兩周實訓:l 在硬件上A. 對單片機AT89C51更進一步學習,它的最小系統(tǒng)、P3.0RXD和P3.1TXD端口;B. 對在數(shù)字電路上學習的74HC159譯碼器和74HC595移位寄存器的應用;C. 新學了虛擬端口COMPIM,在protues里面來實現(xiàn)調(diào)用實際的串口和外部通信;D. 對LED顯示屏行列掃描熟悉。l 在軟件上A. 編寫LED顯示屏驅(qū)動,用Keil的軟件采用C語言來編寫;B. 用MyEIclipse軟件i. 學會I如何設計一個圖形界面、對它的優(yōu)化、窗口的關(guān)閉;ii. 發(fā)送數(shù)據(jù)代碼編寫;iii. 接受數(shù)據(jù)代碼編寫;C.學會使用虛擬配對軟件和串口精靈(既可以當上位機,也可以當下位機);l 對Java語言有了進一步掌握:a) 它的每一個程序都至少有一個類,同時每一種類型的程序都要運行在Java虛擬機JVM上;b) 如何對一個對象實例化,怎樣使用構(gòu)造方法;c) 成員的修飾符:public private 缺省 protected;d) 類有三大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校教學成果表格
- 農(nóng)學作物種植技術(shù)測試題及答案解析
- 高效辦公數(shù)字化解決方案實踐指南
- 財務人員擔保協(xié)議書
- 水資源智能監(jiān)控與管理合同
- 金融科技反欺詐技術(shù)合作協(xié)議
- 基于人工智能的智能種植管理系統(tǒng)優(yōu)化實踐
- 月子中心月嫂服務合同
- 建筑裝修行業(yè)施工安全責任書
- 西方童話格林童話讀后感和兒童成長影響
- 2025年河南林業(yè)職業(yè)學院單招職業(yè)技能測試題庫完整版
- 地理-浙江省強基聯(lián)盟2025年2月高三年級聯(lián)考試題和答案
- (必刷)湖南省醫(yī)學院校高職單招職業(yè)技能測試必會題庫(含往年真題)
- 2025《醫(yī)藥企業(yè)防范商業(yè)賄賂風險合規(guī)指引》解讀課件
- 血透病人皮膚瘙癢課件
- 2025年度船舶焊接維修工程合同范本資料下載
- 貴州茅臺課程設計
- 工業(yè)攝像頭知識培訓課件
- 2024-2025學年六年級數(shù)學人教版上冊寒假作業(yè)(綜合基礎復習篇含答案)
- DB33T 1134-2017 靜鉆根植樁基礎技術(shù)規(guī)程
- 樓梯塑料滴水線施工方案
評論
0/150
提交評論