




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、工業微型條碼識別系統的軟件設計與實現工業微型條碼識別系統的軟件設計與實現摘要摘要條形碼讀取技術是信息采集,自動識別、功能獲取的重要方法 。條形碼信息主要包括產地、制造廠家、商品完備的 編號、生產日期、書籍的出版時間、種類、保質期等,在眾多 領域都得到廣泛使用。本論文設計了微型條碼識別系統。該系統主要由 SONIX SN9S102C,SONIX SN9P701F 和 AT89S52 單片機組成。AT89S52 為主控制器配合外圍設備與 RS485 的數據通信將數據傳輸并顯示在上位機上。這次畢業設計使用了單片機控制 SN9P701F,使實物的體積較其他條形碼識別器小了很多。該方法不僅大大縮小了設備
2、的成本 ,更重要的是這種識別器便于人們攜帶。最后本論文實現了 條碼識別系統的軟件部分,并通過了測試與調試,基本上完成了目標和要求。關關鍵鍵詞詞:條形碼;SONIX SN9P701;AT89S52 單片機;RS485 6 / 485 / 48THETHE INDUSTRYSINDUSTRYS MINIMINI BARBAR CODECODE IDENTIFICATIONIDENTIFICATION SYSTEMSYSTEM SOFTWARESOFTWARE DESIGNDESIGN ANDAND IMPLEMENTATIONIMPLEMENTATIONAbstractAbstractBarcod
3、e reading technology is important methods to information collection, automatic identification and the function gets. Barcodes main information includeOrigin, the manufacturers number, production date, complete goods, books, publication date, type, expiration date, and so on,which are generally used
4、in many areas. This thesis designs mini barcode recognition system , the system consist of the SONIX SN9S102C, SONIX SN9P701F and AT89S52 MCU. AT89S52 MCU combined with other devices and display of data communication with the rs485 on the host computer.This graduation project uses MCU control SN9P70
5、1F , the physical volume than other barcode recognition Little a lot, The method has not only greatly reduced the cost of equipment, and more importantly, this recognition can be easy to people carry. Finally the thesis completes barcode recognitions software system, and passes the test and debug, b
6、asically completed the goals and requirements.Keywords: Barcode; SONIX SN9P701;AT89S52 MCU;RS485I / 48第第 1 1 章緒論章緒論 1 11.1 課題的背景和意義 11.2 主要研究容 11.3 論文的結構安排 11.4 本章小結 2第第 2 2 章系統總體框架設計章系統總體框架設計 3 32.1 系統結構框圖 32.2 SONIX SN9S102C .32.3 SONIX SN9P701F .32.4 單片機模塊 32.5 撥碼開關 42.6 RS485 串口通信模塊 42.7 I2C 總線
7、42.8 本章小結 4第第 3 3 章系統硬件介紹章系統硬件介紹 5 53.1 SONIX SN9S102C .53.2 SONIX SN9P701F .53.2.1 SONIX SN9P701F 的描述 53.2.2 SONIXSN9P701F 的特點 53.3 AT89S52 單片機設計 53.3.1 單片機的主要性能 63.3.2 單片機最小系統概述 63.3.3 AT89S52 單片機最小系統電路圖 63.4 單片機的控制方案與選擇 73.4.1 控制概述 73.4.2 雙向接口 83.4.3 數據形式 103.4.4 控制時間 113.5 本章小結 12第第 4 4 章系統軟件的詳細
8、設計章系統軟件的詳細設計 1313II / 484.1 系統流程圖 134.2 系統初始化設計 134.3 SONIX SN9P701F 控制程序設計 154.4 RS485 串口通信程序設計 174.4.1 數據初始發送程序設計 184.4.2 發送程序設計 184.4.3 接收程序設計 194.6 本章小結 20第第 5 5 章系統程序實現與調試章系統程序實現與調試 22225.1 調試環境與調試步驟 225.1.1 調試環境 225.1.2 調試步驟 225.2 Keil uVision4 中調試結果與分析 225.2.1 Keil uVision4 中的調試 225.2.2 實物圖演示
9、結果分析 245.4 本章小結 24第第 6 6 章總結與展望章總結與展望 26266.1 總結 266.2 展望 26結束語結束語 2727致致 2828參考文獻參考文獻 2929附錄附錄 A A 總程序總程序 3030III / 48前言前言隨著條碼逐漸走入我們的生活,條形碼識別技術越來越得到人們的重視和利用,利用條形碼獲取信息的優點是:獲取信息速度快,信息讀取量大,高效率等。尤其是在經濟全球化后,條形碼識別對生活有著非凡的意義。但是普通的條碼識別器依舊有很多問題,比如:體積大不利于攜帶等問題一直影響著我們對條形碼的利用。這不僅對商品的流通造成了堵塞,也對時間利用造成了極大的浪費。同時,條
10、形碼的種類也進行著不斷的變化和改革, EAN碼,UPC碼,39碼的不斷問世,注定著條形碼識別的發展進入一個新的時代。本次畢業設計使用AT89S52單片機和SONIX SN9P701F設計出由單片機控制的微型條碼識別系統,實現人們隨時隨地對條形碼的獲取與識別。第第 1 1 章章 緒論緒論1.11.1 課題的背景和意義課題的背景和意義不同規格的白縫隙和黑條組成了條形碼,然后它們按照已有的編碼規則形成了我們日常生活中經常見到的條形碼,用它們來記錄并傳輸一些人們交易所要用到的信息。恰好是由于這些反射率差異很大的條形碼能夠方便快捷的反應各個條形碼中所包含的信息,讓人們在很短的時間獲取最有用的信息,所以在
11、物品交易,圖書借閱,科研開發,工業制造等許多產業中都起著不可或缺的作用。工業微型條碼識別系統主要用于 SMT 機器工作位置的檢測,預防工作出錯產生誤安裝。微條碼的發展應用基本可以劃分為兩個時期 :第一時期是非人工結算,這個時期主要是應用于企業的部架構。為企業之間信息交流提供了很大的便利,第二個時期是所有商品的供銷管理,產品物流,企業的連鎖化運營。在我國,應用條形碼技術的現狀大概處于第二個階段,而且很大程度上識別設備還要借鑒國外的產品,所以 與國外產品差距很大。在逐漸融入全球化的中國,大量商品的進出口已經成為現實 ,相信在不久的將來,條形碼將處于全速發展的時代。條形碼是物流技術的核心與關鍵 ,有
12、效的條碼識別軟件能高效的實現對條形碼的閱讀,對條形碼的發展與應用提供了幫助。由于條形碼與我們的生活息息相關,在工業生產中,伴隨著交易數量的持續增加 和服務質量的不斷提高,產品進出口公司業務量和繁瑣程度越來越大,工業微型條碼軟件系統便應運而生。目前,我們是將 SONIX SN9P701F,AT89S52 單片機和 SONIX SN9S102C等設備連接在一起,具有高效化、小型化、規化的優點。讓合理的軟件算法與簡便的讀取設備相結合,幫助人們對商品信息進行與時準確的分析處理,從而 讓條形碼更簡化了我們工作時的識別過程。本設計主要是單片機配合外圍設備實現該條碼識別系統的軟件部分 。1.21.2 主要研
13、究容主要研究容本次課程設計中,采用 AT89S52 作為系統的控制核心,與 SONIX SN9P701F,SONIX SN9S102C 等設備配合實現條形碼的識別和信息的獲取。1.31.3 論文的結構安排論文的結構安排本文根據本次畢業設計的要求,將論文分為六章,具體容如下:第 1 章 緒論,介紹了我國條形碼領域的發展狀況、本課題研究的應用和意義,以與本人對課題的實現思路。第 2 章 系統總體框架設計,簡單的概括一下這次畢業設計的思路,分析各設備的作用。2 / 48第 3 章 系統硬件介紹,概述了本次畢業設計所使用到的設備,如 SONIX SN9S102CE,SONIX SN9P701F, AT
14、89S52 等等。 第 4 章 系統軟件的詳細設計,根據現有硬件資源,設計程序的流程圖并寫出程序,詳細介紹每部分程序的意義。 第 5 章 系統程序實現與調試,介紹調試步驟,當程序在 Keil uVision4 中編譯成功后,通過 USBasp 燒錄至單片機。第 6 章 總結與展望,對已經完成的畢業設計進行總結,分析系統設計的不足之處。1.41.4 本章小結本章小結本章主要介紹了本次畢業設計的研究情況和背景,并說明該領域存在的問題和現狀,闡述自己的設計方向并概述設計思路。同時介紹硬件的使用情況和詳細介紹這次畢業論文的組成結構。第第 2 2 章章 系統總體框架設計系統總體框架設計2.12.1 系統
15、結構框圖系統結構框圖這次畢業設計的思路是這樣的,首先通過撥碼開關對單片機的控制讓 SONIX SN9P701F 獲取條形碼的各種信息,再通過 RS485 傳輸到上位機中,由于現在 PC 機大都使用 RS232 接口或者 USB 接口,所以需要一個接口轉換器讓信息成功傳輸至上位機中。系統總體設計框圖如圖 2-1 所示。OID圖像識別設備DSP圖像處理設備如SN9P701AT89S52單片機RS485接口轉換上位機I2C撥碼開關SONIX SN9S102CDSP圖像處理設備SONIX SN9P701FAT89S52單片機RS485接口轉換上位機撥碼開關AB圖 2-1 系統總體設計框圖2.22.2
16、SONIXSONIX SN9S102CSN9S102CSONIX SN9S102C 為圖像傳感器模塊,是把需要掃描的外部信號轉換成電信號,以便傳輸給識別模塊,一般來說,它是由感知元件和轉換器件構成的。市場上的圖像傳感器千差萬別,但是根據體積,光學分辨率等因素,最后決定采用 SONIX SN9S102C,這是一種高度集成的有源像素圖像傳感器,采用 0.35um CMOS 技術制成。2.32.3 SONIXSONIX SN9P701FSN9P701FSONIX SN9P701F 為本設計的圖像處理模塊,在光信號被轉換成電信號后,圖像處理模塊需要對電信號進行處理,比如信號分析,濾波,信號的調制與解調
17、等。 然后把電信號傳給單片機。為了滿足實物的微型化并配合 SN9S102C 圖像傳感器,這次設計采用了SONIX SN9P701F。2.42.4 單片機模塊單片機模塊單片機是這次設計的核心模塊,它起著控制條碼的讀取,傳輸數據,控制RS485 通信等功能,所以它必須有多引腳,但是單片機的體積要盡量的小。考慮各方面因素,我選用了 ATMEL 公司的 AT89S52 單片機,在 PDIP 封裝, PLCC 封裝, TQFP 封裝等型號中選擇了 TQFP44 引腳封裝型號,符合設計的微型化。4 / 482.52.5 撥碼開關撥碼開關在系統的設計當中,撥碼開關的作用為切換系統的工作狀態, 撥碼開關共有四
18、個鍵,每一個鍵對應著單片機不同的功能。2.62.6 RS485RS485 串口通信串口通信模塊模塊這次畢業設計的 AT89S52 單片機和上位機之間的通信都是通過 RS485 進行通信,RS485 串口通信有三根線,分別是 RXD 輸入線,TXD 輸出線和控制線。但是由于 RS485在上位機上用的較少,最后要通過一個轉換器轉換為 RS232 或是 USB 接口進行通信。2.72.7 I I2 2C C 總線總線I2C 總線是一種比較普遍的傳輸總線,本設計中用來連接單片機和 SONIX SN9P701F,使其之間保持良好的通信。 I2C 的本質就是兩根 I/O 總線,一根時鐘線,一根數據線,并且
19、能很好的完成半雙工的數據通信。2.82.8 本章小結本章小結本章介紹了這次畢業設計的主要設計思路,各設備之間如何架構與各設備的作用。主要是撥碼開關控制單片機,然后單片機控制 SN9P701F 開始掃描條形碼,最后通過 RS485和接口轉換器顯示在 PC 或上位機上。單片機控制 SN9P701F 方面,主要是通過 SCK 和SDIO 兩根線通信,SCK 為時鐘線,SDIO 為數據線,兩根線的相互作用控制著 SN9P701F的讀與寫。第第 3 3 章章 系統硬件系統硬件介紹介紹3.3.1 1 SONIXSONIX SN9S102CSN9S102CSONIX SN9P701C 條形碼掃描器是光學圖像
20、傳感器組件,這是一款高集成的有源像素傳感器并裝配了 3.5CMOS 技術,為了有最小化的 I/O 引腳,原來輸出的 8 位引腳通過 2根總線傳輸數據。它的 CMOS 傳感器在一個 12 引腳的 CSP 封裝包里,SONIX SN9P701C提供了一個低成本的方法進行條形碼識別。3.3.2 2 SONIXSONIX SN9P701FSN9P701F3.2.13.2.1 SONIXSONIX SN9P701FSN9P701F 的描述的描述SN9P701F 是第二代解碼器,它的設計是為了應用松翰最新發展 D.H.R.T.技術。它整合了一些方案包括CMOS感應界面,圖像部分識別工具,穩壓器, RC振蕩
21、器和恢復指針輸出界面。3.2.23.2.2 SONIXSN9P701FSONIXSN9P701F 的特點的特點1 支持光點圖像格式2核心電壓工作圍:3.0V 3.6V 3 校準器輸入:3.6v5v4 最低功率損耗:3mA5 截止電流:10uA6 含 16 位 dsp 的傳感器控制和圖像部分識別7 光源定時控制8 嵌入式電壓穩定9 嵌入式 16Mhz RC 標準振蕩電路10 嵌入式低電壓檢測11 48 引腳 LQFP 包3.33.3 AT89S52AT89S52 單片機設計單片機設計本設計用到的單片機是 AT89S52,AT89S52 作為硬件的控制部分,主要起到了控制外圍設備的作用。由于該畢業
22、設計需要滿足單片機多引腳,體積小,支持 RS485 通信來實現簡單的工業控制,所以本論文使用 TFQP44 封裝的 AT89S52 單片機。AT89S52 是一種極高效能 CMOS、低能耗的 8 位小型控制處理器,在系統可編程Flash 存儲器有 8k 容量。它使用的高密度不易丟失性存儲技術來自 Atmel 公司,而且與工業使用的 80C51 系列產品引腳和指令完全相互兼容。 單片機上的 Flash 允許程序存6 / 48儲器是可編程片上系統,單片機也適用于普遍的其它編程器。 在芯片上,擁有簡單實用的 8 位 CPU 與 Flash 系統可編程,使得許多簡便、高效的解決方法能在 AT89S52
23、 單片機上實現應用。并且 AT89S52 可降至 0Hz 靜態邏輯操作狀態,支持 2 種不同軟件的可選擇節電模式。在空閑模式下, CPU 停止運行,但允許定時器/計數器、RAM、串口和中斷繼續運行。單片機的掉電保護方式為 RAM 中的容被保留,晶體振蕩器停止工作,單片機停止當前一切工作,直到下一個中斷或手動硬件復位為止。3.3.3.3.1 1 單片機的主要性能單片機的主要性能單片機的 AT89S52 擁有以下一些標準功能: 256 字節容量的 RAM,32 位的 I/O 口總線和看門狗系統。另外 AT89S52 單片機擁有 3 個 16 位定時器/計數器,2 個數據指針,一個 2 級 6 向量
24、的中斷結構,片晶振以與時鐘電路,全雙工串行口。 AT89S52 實物如圖3-1 所示。圖 3-1AT89S52 實物圖3.3.23.3.2 單片機最小系統概述單片機最小系統概述單片機最小系統的構成部分是:復位電路,晶振電路,電源,單片機。一個合格的單片機最小系統可以具有以下幾個功能:1 具有復位的功能。2 可以完整的使用單片機部儲存器。3 具有普遍的人機通信接口,像顯示器,揚聲器等。4 最為重要的一點是具有擴展功能,能與其他設備通過 I/O 口連接。3.3.33.3.3 AT89S52AT89S52 單片機最小系統電路圖單片機最小系統電路圖晶振電路主要作用產生時鐘脈沖, C7 和 C8 可以幫
25、助振蕩器起振。晶振電路如圖 3-2 所示。圖 3-2 晶振電路復位電路是當單片機通電時, VCC 的+5v 電流導入 RST 端,只要保證 RST 處于兩個周期高電平,則單片機復位。自動復位電路圖如圖 3-3 所示。圖 3-3 復位電路圖AT89S52 單片機引腳圖如圖 3-4 所示。3332313029282726252423123456789101144434241403938373635341213141516171819202122P1.5P1.6P1.7RSTP3.0NOP3.1P3.2P3.3P3.4P3.5P3.6P0.4P0.5P0.6P0.7EA/VPPNCALEPSENP2
26、.7P2.6P2.5P3.7XTAL2XTAL1GNDGNDP2.0P2.1P2.2P2.3P2.4P0.3P0.2P0.1P0.0VCCNCP1.0P1.1P1.2P1.3P1.4AT89S52(MOSI)(MISO)(SCK)(RXD)(TXD)INT0INT1T0T1AD4AD5AD6AD7A15A14A13EX/T2T2AD0AD1AD2AD3W/RRDA8A9A10A11A12(TFQP(圖 3-4AT89S52 單片機引腳圖3.43.4 單片機的控制方案與選擇單片機的控制方案與選擇3.4.13.4.1 控制概述控制概述SONIX SN9P701F 與 AT89S52 單片機通信通過
27、 4 跟總線,數據傳輸主要依靠 SCK 和SDIO。如下圖。外部上拉電阻( 4.7k)拉高了 4 根線上的 SDIO。MCU 與 OID 通信線路如圖 3-5 所示。OIDMCU1234SCKSDIOVCCGNDVCC4.7K圖 3-5MCU 和 OID 通信線路4 根總線中的 SCK 和 SDIO 用于 OID 和 MCU 之間的數據通信,傳輸接口為雙向接口,SCK 和 SDIO 的特點如表 3-1 所示。表 3-1 SCK 和 SDIO 的特點8 / 48SCKSDIO用途串行時鐘串行數據方向MCUOIDMCUOID上拉控制否是默認狀態低拉高OID 和 MCU 之間的傳輸的是命令,索引和
28、OID 的狀態,數據特點如表 3-2 所示。表 3-2 OID 和 DSP 數據特點OIDMCUOIDMCU長度23 bits8 bits用途OID 的指標,命令和狀態命令3.4.23.4.2 雙向接口雙向接口概述:雙向接口是用于 OID 控制器和 MCU 之間的,在這個協議中,只有兩根線是用于傳輸數據的,在 SDIO 上數據依次從高位傳輸到低位,在雙向接口中 MCU 是主機,OID設備是外圍設備。主從模式:在雙向接口中,主設備是控制系統的主要部分,只有主機設備才能在雙向接口上做以下的工作:1 啟動運行周期2 在 SCK 上生成時鐘信號3 決定一個傳輸周期的方向子設備在雙向接口中是被動設備,它
29、需要對主設備的指令很靈敏,如果已經有一個數據準備要發給主設備了,子設備就會發送一個轉移請求(拉低 SDIO 線)來通知主設備。工作條件:默認狀態:主機讓 SCK 保持低電平,SDIO 被外部上拉電阻拉高開始:主設備通過改變 SCK 的狀態(從低到高)發送一個轉移周期結束:如果主設備讓 SCK 保持低的狀態超過 1024 個時鐘,子設備就會認為轉移周期結束,接口工作時序圖如圖 3-6 所示。圖 3-6 接口工作時序圖但是有一點需要注意:當主設備讓 SCK 保持高的狀態,子設備會等待另一個狀態改變(高變低) 。在 SDIO 上的數據從 MSb 依次轉移到 LSb 上,SDIO 程度的變化只會發生在
30、 SCK 一直保持在高電平,當 SCK 是低狀態,SDIO 的狀態改變是禁止的。換句話說,當 SCK 為低狀態時,在 SDIO 上可以捕獲數據。當 SCK 為高時,它能把數據放在 SDIO 上。SDIO 狀態的改變會發生在高變低邊緣以后。為了通信成功,主設備必須遵循以下規則去控制 SCK1 為了 SDIO 的程度改變,主設備必須保持 SCK 的高狀態超過 32 個時鐘。2 為了 SDIO 的數據捕獲,主設備必須保持 SCK 的低狀態超過 8 個時鐘低于 1024 個時鐘。獲取有效數據時序圖如圖 3-7 所示。圖 3-7 獲取有效數據時序圖子設備傳輸數據給主設備,讀周期如表 3-3 所示。表 3
31、-3 讀周期總線部分開始第 1 個字節第 216 個字節停止主設備ZLZZSDIO子設備LZ16 個比特數據Z在 SDIO 上轉移的 17 個字節:第 1 個比特:W/R 控制比特,主設備讓 SDIO 保持低狀態來開啟一個讀周期。第 2 個比特到第 17 個比特:由子設備產生的數據。10 / 48在接收到 17 個比特之后,SDIO 會被外部上拉電阻拉高在讀周期之前,子設備發送一個轉移請求(拉低 SDIO)去通知主設備,在主設備產生開始標示并放置讀控制標示在 SDIO 線上時,一個變化邊緣后,子設備開始發送數據。傳輸過后,SCK 變低狀態作為結束標志并且 SDIO 被上拉電阻拉高。讀周期時序圖
32、如圖3-8 所示。圖 3-8 讀周期時序圖主設備傳輸數據到子設備,寫周期如表 3-4 所示。表 3-4 寫周期總線部分開始第 1 個字節第 29 個字節停止主設備ZH8 比特數據HSDIO子設備Z/LZZZ在 SDIO 上一個寫周期會有 9 位比特:第 1 個比特是:讀/寫控制比特,主設備拉高 SDIO 去標志一個寫周期第 29 個比特:由主設備產生的比特在 SDIO 傳輸完 9 個比特以后,被外部電阻拉高在寫周期中,主機產生一個上升沿在 SCK 上,并放置一個寫控制標示在 SDIO 線上,主設備傳輸的任何一個比特都要通過 SDIO,并且伴隨著寫控制標示在 SDIO 線上,當 SCK 下降沿之
33、后子設備開始接收數據。在傳輸結束后,SCK 線保持低狀態作為停止信號,并且SDIO 線被外部電阻拉高,寫周期時序圖如圖 3-9 所示。圖 3-9 寫周期時序圖3.4.33.4.3 數據形式數據形式從 OID 中得到的連續數據為 16 個比特指令或 16 個比特標示。OID 連續數據的規則如表 3-5 所示。表 3-5OID 連續數據的規則bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2bit10關鍵標示標示1關鍵標示指令從 OID 到 DSP 的指令:1 OIDcmd-PowerOn=0 xf
34、ff82 OIDcmd-PowerDown=0 xfff73 OIDcmd-Wakeup=0 xfff0OID 圖像處理會通知用戶這個設備已經開始接收用戶要求的信息依次接收來自 DSP 的指令命令從 DSP 到 OID1UserCmd-PowerOnOID=0 x53DSP 設備打開 OID 的圖像處理2 UserCmd-PowerDownOID=0 x56DSP 設備讓 OID 圖像處理處于休眠狀態3 UserCmd- AutoSleepFunEnable=0 xA0DSP 開啟自動休眠功能4 UserCmd- AutoSleepFunDisable=0 xA3DSP 不允許開啟自動休眠功能
35、5 UserCmd- TriggerToClearAutoSleepTimmer=0 xA6DSP 清除自動休眠時間6 UserCmd_ClearAutoSleepTimmerIfOIDDetect=0 xACUserCmd_NonClearAutoSleepTimmerIfOIDDetect=0 x50OID 處理器的自動休眠定時器被清 07 UserCmd_CheckOIDStatus=0 x30DSP 可以發送這個命令去檢查是否 OID 處理器被喚醒或休眠3.4.43.4.4 控制時間控制時間啟動 OID 時序圖如圖 3-10 所示。12 / 48圖 3-10 啟動 OID 時序圖1 啟
36、動 OID:喚醒 OID 通過讓 SCK 保持高狀態超過 10ms2 打開程序應該在 2s 完成在 OID 開始工作后,MCU 從 OID 讀取數據1 OID 發送的兩個數據的時間間隔最少 50ms2 如果 MCU 忽略了發送請求超過 300ms,OID 將移除發送請求并更新數據。 OID 讀取數據時序圖如圖 3-11 所示。圖 3-11OID 讀取數據時序圖關閉:OID 將會直接關閉如果 MCU 忽略了來自 OIDcmd-PowerDown 的發送請求超過75ms。3.53.5 本章小結本章小結本章主要完成硬件的設計,介紹了這次畢業設計需要使用到的主要硬件設備與相應的各設備引腳功能,主要是
37、AT89S52(控制芯片) ,SONIX SN9P701F(圖像處理模塊) ,SONIX SN9S102C,并列出了系統參數和最佳工作狀態。第第 4 4 章章 系統軟件的詳細設計系統軟件的詳細設計為了實現條形碼的識別,本系統軟件主要為控制 SONIX SN9P701F 模塊程序、系統與上位機之間的 RS485 通信。4.14.1 系統流程圖系統流程圖系統流程圖主要分為以下幾個部分:系統初始化,SONIX SN9P701F 控制與其條碼識別和 RS485 通信。系統流程圖如圖 4-1 所示。開始關中斷定時器初始化RS485通信初始化模擬I2C端口初始化開中斷掃描條形碼有數據發送給上位機否是圖 4
38、-1 系統流程圖4.24.2 系統初始化設計系統初始化設計初始化程序流程圖如圖 4-2 所示。14 / 48關中斷定時器初始化RS485通信初始化模擬I2C端口初始化開中斷圖 4-2 初始化流程圖初始化程序包括了關中斷( EA=0) ,定時器初始化,RS485 通信初始化,模擬 I2C 端口初始化,開中斷(EA=1) 。定時器初始化程序為void InitT1(void) TMOD = 0 x20; /定時器 T1 工作于定時器方式 2 TH1 =T1H;/設置定時器的初值,10msTL1 =T1L; /定義 T1H 0 x0C4,T1L 0 x00 TR1 =1;/啟動定時器 T1,開始計時
39、PCON=0 x80;SCON=0 x50;/設置串口工作方式RS485 通信初始化程序為void InitRS485 (void) RSSelect=1;/默認為發送狀態RSSBuffer.State=0;/設置 state 初值 模擬 I2C 端口初始化程序為void InitI2C(void) /I2C 總線初始化程序,作用是使總線處于空閑狀態SCK=1;_nop_();SDIO=1;_nop_();4.4.3 3 SONIXSONIX SN9P701FSN9P701F 控制程序設計控制程序設計用 IO 總線在 MCU 與 OID 設備之間模擬 I2C 通信,函數功能實現單片機對 SON
40、IX SN9P701F 的控制。通信主要通過兩根線 SCK(時鐘)和 SDIO(數據)并設置 SCK 為P36,SDIO 為 P37,并定義數組 dat和 sum。SONIX SN9P701F 控制與其條碼識別流程圖如圖 4-3 所示。初始化IO口Delay 50msClk輸出高判斷DAT是否為低,如果2秒后還不為低,說明SONIXSN9S102C沒信號Delay 60msClk輸出低Clk輸出低把dat作為輸出口,并輸出低Clk輸出高Delay10us,讓筆讀dat信號Clk輸出高把DAT作為輸入口Delay 10usClk輸出高Delay 10 usClk輸出低讀取dat是否讀了23次如果
41、收到23bit數據為0 x60fff8,表示筆開機成功,這時候拿SONIX SN9S102C去點碼,SONIX SN9S102C會自動發數據過來否是是開始結束否圖 4-3SONIX SN9P701F 控制程序流程圖本程序包括模擬 I2C 端口初始化程序 Initi2c(),I2C 起始程序 void I2CStart(void),I2C 結束程序 void I2CStop(void)和 I2C 讀取程序 void I2Cwork(void)。 I2C 起始程序功能是產生 I2C 總線的起始條件,主要程序如下:16 / 48SDIO=1; Delays(1); SCK=1;/當時鐘線 SCK 處
42、于高電平時,SDIO 出現下降沿時啟動 I2C 總線 Delays(1); SDIO=0;/SDIO 由高變低,啟動 I2C 總線 Delays(1); SCK=0; Delays(1);I2C 讀取程序的功能是在檢測到 dat 中值為 0 x60fff8 后,表示開機成功,然后用SN9S102C 去讀取條碼。SN9S102C 會自動發送數據。主要程序如下:Initi2c(); /首先初始化 I2C 總線Delays(5000); / 延時程序,延時 60msSCK = 1;Delays(6000);/延時 60msSCK=0;Delays(200000); /延時 2 秒后判斷 SDIO 是
43、否為低if(SDIO = 0)/如果 SDIO 為低,說明 SN9S102C 檢測到信號,否則不執行以下程序。SCK=1;SDIO=0;/把 SDIO 作為輸出,并輸出低SCK=0;Delays(10);/延遲 10us,為了讓筆讀取信號SCK=1;SDIO=1;/將 SDIO 作為輸入口Delays(10);SCK=1;Delays(10);for(i=0;i= RSSBuffer.Len) RSSBuffer.State+;break;當 case=8 時,執行數據校驗。當 case=9 時,結束數據發送。RSSelect=0,轉到接受程序。主要程序如下 RSSendOver_Flag =
44、 TRUE;/發送完畢RSSelect=0;break;發送流程圖如圖 4-5 所示。RSSBuffer.State的值將前導碼放入寄存器,準備發送數據執行發送數據指令將前導碼放入寄存器,準備發送數據用數據指針依次發送數據判斷數據長度初始化數據指針數據發送結束數據校驗將前導碼放入寄存器,準備發送數據將前導碼放入寄存器,準備發送數據將前導碼放入寄存器,準備發送數據復位結束開始0123456789default圖 4-5 發送程序流程圖4.4.34.4.3 接收程序設計接收程序設計為了保證數據接收的時間性,本接收程序特別采用定時器 T1 作為接收時間溢出定時。當數據接收超出定時時間,系統將設定為接
45、收出錯,便于系統做出響應。根據接收數據量,本定時器設定的溢出時間為 50ms,則 TH1 初始值為 T1H(0 xfc) ,TL1 初始值為T1L(0 x17)。在接收程序 void SendMSG(void)中用 switch 程序完成程序的接收。Case0 為設置定時器初值,設定溢出時間。主要程序如下:RSRBuffer.State+;/接收時間設置TR1=FALSE;TH1=T1H; /10ms20 / 48TL1=T1L;TR1=TRUE;/開始計時T1Over=5;/50msTimer1_Flag=FALSE;Case1 為準備接收數據的命令,此時只有命令,沒有數據。主要程序如下RS
46、RBuffer.Cmd=SBUF;RSRBuffer.State+;Case 為 2 時,初始化數據幀,if(RSRBuffer.Len=0)即如果數據長度為 0,則state 加 1 準備接收數據,如果數據長度超過 15 則出錯,程序重新運行。Case 為 3 時為數據接收。其主要程序如下RSRBuffer.DataRSRBuffer.Pointer=SBUF;RSRBuffer.Pointer+;RSRBuffer.DataRSRBuffer.Pointer=SBUF 就是將寄存器中的數據依次發送給數據指針。Case 為 4 時數據接收完畢,接收程序結束。接收標志位為 true,表示接收完
47、成,關閉定時器。主要程序如下:RSRBuffer.Crc=SBUF;RSReceive_Flag = TRUE;RSRBuffer.State=0; T1Over=0;/關閉定時Timer1_Flag=FALSE;接收程序流程圖如圖 4-6 所示。RSSBuffer.State的值設置定時器初值,設定溢出時間執行準備接收數據指令將寄存器中的值依次放入數據指針并判斷長度判斷數據長度初始化數據指針程序結束RSSBuffer.State=0數據校驗,關閉定時器程序結束RSSBuffer.State=0開始結束012345621 / 48圖 4-6 接收程序流程圖4.64.6 本章小結本章小結本章主要
48、介紹了這次畢業設計的主要流程圖 和重要程序。子程序包括了:初始化程序, SONIX SN9P701F 控制程序,RS485 串口通信程序。通過軟件編程使 AT89S52 單片機,SONIX SN9P701F 和 RS485 有序的工作起來。第第 5 5 章章 系統程序實現與調試系統程序實現與調試5.15.1 調試環境與調試步驟調試環境與調試步驟調試對于任何一個實現型畢業設計都至關重要,只有通過程序的不斷調試,才能發現當初設計中存在的問題,并針對問題一一進行修改。5.1.15.1.1調試環境調試環境本程序調試采用的軟件是 Keil uVision4,是當前最完善的單片機的調試軟件,Keil uV
49、ision4 軟件可以對單片機的型號進行選擇,對已寫出的程序進行編譯,準確的反應出錯位置,便于觀察和修改。5.1.25.1.2 調試步驟調試步驟在確定了調試環境之后,就開始進行調試工作。而在調試工作之前,確立好調試的步驟至關重要,全面的調試 才能保證程序的流暢運行。步驟 1:軟件編譯。使用 Keil uVision4 進行程序編譯,通過軟件的相關窗口,觀察相關程序是否正確。步驟 2:對編譯后所產生的錯誤一一進行修改。步驟 3:通過 USBasp 燒錄至單片機中。步驟 4:動態調試。用示波器監測相關端口,信號是否正常。并對出現的問題作出分析,提出解決方案。5.25.2 KeilKeil uVis
50、ion4uVision4 中調試結果與分析中調試結果與分析5.2.15.2.1 KeilKeil uVision4uVision4 中的調試中的調試在 Keil uVision4 中主程序調試結果如圖 5-1 所示,調試結果為:0 Error(s),66Warning(s) ,軟件調試無錯誤。23 / 48圖 5-1 Keil uVision4 中主程序調試結果在 Keil uVision4 中的 RS485 串口通信程序調試結果如圖 5-2 所示,調試結果為:0 Error(s),66Warning(s) ,軟件調試無錯誤。圖 5-2 Keil uVision4 中的 RS485 串口通信程
51、序調試結果在 Keil uVision4 中 SONIX SN9P701F 控制程序調試結果如圖 5-3 所示,調試結果為:0 Error(s),66Warning(s) ,軟件調試無錯誤。圖 5-3 Keil uVision4 中 SONIX SN9P701F 控制程序調試結果5.2.25.2.2 實物圖演示結果分析實物圖演示結果分析在燒錄程序至單片機后,可以用示波器檢測出波形。示波器檢測電路如圖5-4 所示。主程序中的延時程序 Delayms()可以調節波形的頻率。圖 5-4 示波器檢測電路5.45.4 本章小結本章小結25 / 48本章主要對軟件調試時出現的錯誤進行解決,如軟件無法編譯成
52、功等問題。經過以上幾個步驟,基本完成了設計要求,軟件調試成功,已滿足基本功能,并對已寫的程序進行分析和反思。第第 6 6 章章 總結與展望總結與展望6.16.1 總結總結隨著條形碼技術逐漸應用于工業產品,利用單片機操控識別芯片的微型條形碼識別器在我們日常生活中也起著日益重要的作用。各大企業也越來越重視條形碼識別器的準確性與靈活性。本課題正是基于用戶在識別條形碼時對實際需求的分析,提出了微型條碼識別的技術方案。通過畢業設計這段時間對實物的硬件與軟件架構進行了深入的學習和研究,基本完成了任務要求,并且加深了對課題的認識,以下是對這次畢業設計的總結:1,查閱了相關的條形碼資料,單片機資料和 SONI
53、X SN9P701F 資料。對之前條形碼識別技術和發展有了一定的認識,在搜集了這些資料后,仔細研究和探索資料中能夠用到的地方,加以改進,應用于這次畢業設計中。2 查閱與這次畢業設計有關的外文資料,在外文資料的整理中,外文翻譯對于本次畢業設計影響重大,只有嚴謹準確的翻譯才能讓這次畢業設計事半功倍。3 通過查閱單片機與外圍設備連接的技術資料,制定了這次畢業設計的總體框架,撥碼開關控制單片機工作狀態,單片機控制 OID 設備,在收到數據后通過 RS485 經過接口轉換器傳輸至上位機。4 系統硬件介紹。本次畢業設計的硬件部分包括了 SONIX SN9S102C, SONIX SN9P701F,單片機采
54、用 AT89S52,與上位機之間的通信采用 RS485 串口通信。在有了硬件的支持下才能完成這次畢業設計。5 系統軟件詳細設計。本次畢業設計的開發語言采用簡潔明了的 C 語言,程序主要包括:初始化程序,SONIX SN9P701F 控制程序, RS485 串口通信程序。6 系統的調試。在軟件完成的情況下,通過 Keil uVision4 對系統進行調試,發現軟件的不足之處,對其進行改進。7 畢業論文的撰寫。在完成程序之后,對已有的材料和成果進行整合和修改,將硬件的信息進行介紹,詳細介紹系統的 C 語言程序部分。6.26.2 展望展望這次畢業設計實現的是微條碼識別器的軟件部分,由于時間有限和材料
55、準備的不充足,所以在最后的成果方面不是很完善,雖然基本完成了任務目標,但是仍然存在一些不足。程序設計過于簡單,對于現實生活中實際問題的處理還有很大差距,所以在以后如果還有機會重試有關條碼識別的工作我一定會注意這些問題。本次畢業設計工作基本結束但系統仍需改進,當系統運用到實際生活中時,應當對系統進行深度優化和完善。結束語結束語這次畢業設計是完成工業微型條碼識別系統的軟件 部分,在畢業設計初期,通過查閱大量的資料區了解 AT89S52,SONIX SN9P701F,以與 SONIX SN9S102C 的電路圖與引腳功能,知道了各個設備之間如何連接架構以與每個設備的最佳工作狀態。另外, C 語言也是
56、重點之一,如何調用子函數,如何在 C 語言中表明引腳,都是這次畢業設計的重點。為了滿足微處理器的要求,使產品盡量體積較小,方便攜帶,所以要做到設計的簡潔明了,以與程序的言簡意賅。雖然在這次設計過程中遇到很多問題,比如:函數調用的錯誤,程序無法燒錄至單片機等,不過最后大部分問題都在同學與老師的幫助下順利解決了。隨著這次畢業設計的逐步進行,知識量的不斷增加,我對我們本專業的課程容也有了更深層次的了解,這次畢業設計就是針對現在非常熱門的物品流通行業,與通信和物聯網有關。這次畢業設計雖然基本達到了任務要求,但是還有一些缺陷,程序設計過于簡單,與現實生活的應用還有一定差距。畢業設計是一次非常有意義的事情
57、,不僅讓我們平時學習的知識得到一次融合,加深我們對已學知識的理解,更是知識在實踐中應用的一次嘗試。反反復復的斟酌與實踐中我們也加深了同學之間的友誼,增進了師生之間的關系,學習了導師鉆研的精神。致致在這次畢業設計中,感所有幫助過我的同學,是與他們不斷的交流溝通才讓我對畢業設計的不懂之處越來越少,在反復討論中確定了論文與設計的大致方向,當然更要感我的導師肖賢建,在論文撰寫的初期,他給我們提供資料,對其中需要修改的地方一一注釋,在設計中期,不斷的對我們的工作進行檢查,在最后論文提交階段,對我們的論文不足之處做出修改,是他不厭其煩的督促我們,不斷的解答我們基本的問題,才讓我順利的完成了這次畢業設計。
58、參考文獻參考文獻1羅元, 郝國法. 基于 SOPC 的條形碼識別系統設計 J. 微計算機信息, 2008, 24(22): 160-162.2余先濤. 單片機識別條碼數據的系統設計與應用 J. 電氣傳動自動化, 2005, 22(6): 48-50.3譚偉娟. 基于 AT89S52 單片機的數據采集系統 J. 輕工業, 2011 (5): 63-64。4建國, 戰民, 卿. 條碼掃描器與單片機的接口設計 J. 中國自動識別技術, 2009 (6): 97-99.5 艷宇. 有關條形碼技術應用的現狀和發展研究 J. 信息與電腦 (理論版), 2010, 2: 046。 6 肖正興, 聶哲. 基于
59、 c 語言的軟件設計與實現J. 計算機應用與軟件, 2008, 25(6): 216-218.7 Gallo, O; Manduchi, R, Reading 1D Barcodes with Mobile Phones Using Deformable Templates, Pattern Analysis and Machine Intelligence, IEEE Transactions on , Sept. 2011,vol.33, no.9, pp.1834-18438 Rohs, M. Real-world Interaction with Camera-phones. In P
60、roceedings of 2nd International Symposium on Ubiquitous Computing Systems, Springer, 2004,pp. 74899銘. 圖形 (條形碼) 識別技術在現代電力物流企業管理中的應用J. 華東電力, 2011, 39(3): 512-51410 方路平, 超, 淵潔. 復雜圖像背景下的一維條形碼定位研究J. 計算機應用與軟件, 2011, 28(8): 155-157附錄附錄 A A 總程序總程序/*RS485 通信程序*/#include RS485.hsbit RSSelect=P32 ;void Initrs4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025終止合作合同協議書模板
- 2025授權買賣合同書模板
- 2025設備維護服務合同范本及維修服務種類
- 2025上海市園林綠化工程委托審價合同
- 2025建筑材料訂購合同范本
- 2025商品房買賣合同標準模板
- 2025廣告合同(期刊上刊登)
- 2025茶葉類購銷合同范文
- 2025商場照明系統維護合同模板示例
- 2025婚慶服務合同全書
- 2024年陜西普通高中學業水平考試通用技術試題
- 《HSK標準教程3》第1課
- 乳腺癌化療個案護理
- 眼睛的結構和視覺系統
- 醫療試劑服務方案
- 2024年醫療信息安全培訓資料
- 《廣州市城市樹木保護專章編制指引》解讀(分享版)
- 醫療設備采購 投標技術方案 (技術方案)
- 國開《Windows網絡操作系統管理》形考任務2-配置本地帳戶與活動目錄域服務實訓
- XX醫院高警示藥品(高危藥品)目錄
- 星級酒店MOD值班管理規定
評論
0/150
提交評論