版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 手持Modbus協(xié)議主站系統(tǒng)設(shè)計(jì)</p><p><b> 作 者 姓 名:</b></p><p><b> 指 導(dǎo) 教 師:</b></p><p> 單 位 名 稱:信息科學(xué)與工程學(xué)院</p><p> 專 業(yè) 名 稱:測(cè)控技術(shù)與儀器</p>
2、<p><b> 2013年6月</b></p><p> System Design of Armed Master Station Based on Modbus Protocol</p><p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p> 手持Modbus協(xié)議主站系統(tǒng)設(shè)計(jì)</p><p><
3、;b> 摘要</b></p><p> 根據(jù)電磁流量計(jì)調(diào)試現(xiàn)場(chǎng)需要,本課題設(shè)計(jì)一測(cè)試工具具有自動(dòng)識(shí)別電磁流量計(jì)的通訊地址、波特率、通訊協(xié)議等功能,同時(shí)還要能夠模擬電磁流量計(jì)通訊功能,檢測(cè)主站通訊軟件的功能。</p><p> 本文在滿足功能的前提下,盡量的降低手持器的設(shè)計(jì)成本。整個(gè)系統(tǒng)使用了電池供電,選用超低功耗單片機(jī),低功耗LCD,為降低成本,選用FG12864不
4、帶字庫(kù)LCD。</p><p> 本課題設(shè)計(jì)并實(shí)現(xiàn)了一種基于MSP430F5310單片機(jī)控制的手持Modbus協(xié)議主站系統(tǒng)。系統(tǒng)由單片機(jī)最小系統(tǒng),RS485通訊模塊,鍵盤輸入模塊,LCD顯示模塊等組成。</p><p> 該系統(tǒng)能夠在線自適應(yīng)通訊地址、波特率及通訊協(xié)議。能夠完成對(duì)電磁流量計(jì)瞬時(shí)流量、瞬時(shí)流速、累積流量的采集,并檢查通訊數(shù)據(jù)是否正常。在數(shù)據(jù)通訊中,由于現(xiàn)場(chǎng)通訊距離、變頻干
5、擾等影響會(huì)產(chǎn)生通訊錯(cuò)誤,系統(tǒng)能夠完成對(duì)Modbus數(shù)據(jù)通訊誤碼率的統(tǒng)計(jì),利用CRC校驗(yàn)評(píng)價(jià)網(wǎng)絡(luò)的通訊可靠性;作為從站,可以模擬電磁流量計(jì)通訊功能,檢測(cè)主站通訊軟件的功能。</p><p> 系統(tǒng)還實(shí)現(xiàn)Modbus通訊線的抗干擾保護(hù)技術(shù),可廣泛應(yīng)用于工業(yè)現(xiàn)場(chǎng)等領(lǐng)域。</p><p> 本課題是針對(duì)蘭申公司電磁流量計(jì)Modbus現(xiàn)場(chǎng)網(wǎng)絡(luò)通訊為用戶開(kāi)發(fā)的測(cè)試工具。</p>&l
6、t;p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī)MSP430F5310;Modbus協(xié)議;RS485</p><p> System Design of Armed Master Station Based on Modbus Protocol</p><p><b> Abstract</b></p><p> According to the deb
7、ugging of the electromagnetic flowmeters, a testing tool with automatic recognition of electromagnetic flowmeter addresses, baud rates, communication protocols and other functions is designed in this paper, but also can
8、simulate the communication functions of the electromagnetic flowmeters, detecting the communication software of the master. </p><p> It is as far as possible to reduce the design cost of the handheld device
9、 with the premise that is to achieve the functions. The battery power supply is used, as well as the selection of ultra - low power MCU and low power LCD in the whole system. In order to reduce the cost, LCD FG12864 with
10、out character is used.</p><p> This topic is designed and implemented a handheld Modbus protocol master system which is based on the MCU MSP430F5310. The system consists of the MCU minimum system, the RS485
11、 communication module, the keyboard input module, LCD display module and so on.</p><p> The system can on-line adaptive communication address, baud rate and communication protocol on-line. It can collect th
12、e instantaneous flow, the Instantaneous velocity and the cumulative flow of the electromagnetic flowmeters, and check whether the communication data is normal. Due to the site communication distance and frequency interfe
13、rence effect will cause communication errors during the data communication, System can complete the statistics of the Modbus data communication BERs, check and as</p><p> The system achieve the anti-jamming
14、 protection function of the Modbus communication line, which can be widely used in industrial field.</p><p> This topic which is aimed at the electromagnetic flowmeter of LanShen Company with the Modbus sit
15、e network communication is developed as a testing tool for the user.</p><p> Keyword: MCU MSP430F5310; Modbus Protocols; RS485目錄</p><p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書I</p><p><b> 摘要II</
16、b></p><p> ABSTRACTIII</p><p><b> 第一章 緒論1</b></p><p> 1.1 Modbus發(fā)展現(xiàn)狀1</p><p> 1.2課題研究的意義1</p><p> 1.3論文所做的工作2</p><p>
17、 第二章 系統(tǒng)總體方案設(shè)計(jì)5</p><p> HYPERLINK \l _Toc17852 2.1系統(tǒng)設(shè)計(jì)要求5</p><p> 2.2系統(tǒng)總體設(shè)計(jì)方案5</p><p> 2.2.1 系統(tǒng)總體設(shè)計(jì)方案5</p><p> 2.2.2系統(tǒng)各模塊設(shè)計(jì)方案6</p><p> 第三章 系統(tǒng)硬件設(shè)計(jì)
18、與實(shí)現(xiàn)7</p><p> 3. 1主控制器的選擇7</p><p> 3.1.1 MSP430F5310單片機(jī)簡(jiǎn)介7</p><p> 3.1.2單片機(jī)最小系統(tǒng)設(shè)計(jì)9</p><p> HYPERLINK \l _Toc10802 3.2串口通信電路設(shè)計(jì)10</p><p> 3.2.1 RS48
19、5通訊總線10</p><p> 3.2.2 RS485通訊接口電路11</p><p> 3.2.3 通訊保護(hù)功能11</p><p> 3.3人機(jī)接口模塊設(shè)計(jì)11</p><p> 3.3.1 LCD顯示模塊11</p><p> 3.3.2鍵盤模塊12</p><p>
20、; 第四章 協(xié)議介紹13</p><p> 4.1 Modbus協(xié)議介紹13</p><p> 4.1.1 Modbus協(xié)議RTU幀格式13</p><p> 4.1.2 Modbus協(xié)議命令編碼定義14</p><p> 4.2 L-mag v77通訊協(xié)議介紹15</p><p> 4.2.1
21、L-mag v77電磁流量計(jì)Modbus寄存器地址定義15</p><p> HYPERLINK \l _Toc16920 4.2.2數(shù)據(jù)含義說(shuō)明15</p><p> 4.2.3通訊數(shù)據(jù)解析16</p><p> 4.3 L-mag 511通訊協(xié)議介紹18</p><p> 第五章 軟件模塊設(shè)計(jì)21</p>
22、<p> 5.1軟件設(shè)計(jì)的總體思路21</p><p> 5.2 LCD顯示程序設(shè)計(jì)22</p><p> 5.2.1 .LCD初始化24</p><p> 5.2.2 .畫點(diǎn)程序設(shè)計(jì)26</p><p> 5.2.3 .畫線程序設(shè)計(jì)27</p><p> 5.2.4 .漢字顯示程序設(shè)計(jì)
23、28</p><p> 5.3串口通訊程序設(shè)計(jì)30</p><p> 5.3.1 .串口初始化30</p><p> 5.3.2 Modbus 發(fā)送程序設(shè)計(jì)32</p><p> 5.3.3 Modbus采集數(shù)據(jù)轉(zhuǎn)換及顯示程序設(shè)計(jì)33</p><p> 5.3.4 地址、波特率識(shí)別程序設(shè)計(jì)34&l
24、t;/p><p> 第六章 系統(tǒng)測(cè)試與功能實(shí)現(xiàn)39</p><p> HYPERLINK \l _Toc7351 6.1系統(tǒng)測(cè)試環(huán)境39</p><p> 6.2 LCD調(diào)試40</p><p> 6.3串口調(diào)試40</p><p> 6.4系統(tǒng)測(cè)試41</p><p> 6.
25、5 系統(tǒng)調(diào)試過(guò)程中遇到的問(wèn)題及解決方法41</p><p> 第七章 工作總結(jié)與展望43</p><p> 7.1工作總結(jié)43</p><p><b> 7.2展望43</b></p><p><b> 參考文獻(xiàn)45</b></p><p><b>
26、; 致謝47</b></p><p> 附錄 相關(guān)圖紙49</p><p><b> 第一章 緒論</b></p><p> 1.1 Modbus發(fā)展現(xiàn)狀</p><p> Modbus是由Modicon公司在1978年發(fā)明的,這是一個(gè)劃時(shí)代、里程碑式的網(wǎng)絡(luò)協(xié)議,因?yàn)楣I(yè)網(wǎng)絡(luò)從此拉開(kāi)了序幕。
27、160;</p><p> Modbus是全球第一個(gè)真正用于工業(yè)現(xiàn)場(chǎng)的總線協(xié)議,據(jù)不完全統(tǒng)計(jì):截至到2004中,Modbus的節(jié)點(diǎn)安裝數(shù)量已經(jīng)超過(guò)了800萬(wàn)個(gè),安裝的地區(qū)遍及世界各地,可見(jiàn)其普及的程度,已經(jīng)成為了事實(shí)上的協(xié)議標(biāo)準(zhǔn)。雖然已經(jīng)走過(guò)了27個(gè)年頭,Modbus今天仍然活躍在工業(yè)、建筑、基礎(chǔ)設(shè)施等領(lǐng)域中。</p><p> Modbus的巨大成功,可以歸結(jié)到以下3個(gè)方面:
28、0;</p><p> 1.標(biāo)準(zhǔn)、開(kāi)放:用戶可以免費(fèi)、放心地使用Modbus協(xié)議,不用交納許可證費(fèi),也不會(huì)侵犯知識(shí)產(chǎn)權(quán)。目前,支持Modbus的廠家超過(guò)400家,支持Modbus的產(chǎn)品超過(guò)600種,而且在國(guó)內(nèi)也有很多的用戶支持和使用Modbus的產(chǎn)品。 </p><p> 2.Modbus是面向消息的協(xié)議,可以支持多種電氣接口,如:RS232、RS422、RS485等,還可以
29、在多種介質(zhì)上傳送,如:雙絞線、光纜、無(wú)線射頻等。要說(shuō)明的是:和很多的現(xiàn)場(chǎng)總線不同,它不用專用的芯片與硬件,完全采用市售的標(biāo)準(zhǔn)部件, 這就保證了采用Modbus的產(chǎn)品造價(jià)最為低廉。 </p><p> 3.Modbus協(xié)議的幀格式是最簡(jiǎn)單、最緊湊的協(xié)議,可以說(shuō):簡(jiǎn)單高效,通俗易懂。所以用戶使用容易,廠商開(kāi)發(fā)簡(jiǎn)單。多年的現(xiàn)場(chǎng)證明:Modbus具有安全可靠的通訊能力 。</p>
30、;<p> 1.2課題研究的意義</p><p> 網(wǎng)絡(luò)技術(shù)的日益成熟和現(xiàn)場(chǎng)總線技術(shù)的廣泛應(yīng)用使得測(cè)量?jī)x表、計(jì)算機(jī)和通訊技術(shù)相結(jié)合,從前分散的儀表設(shè)備不再是相互獨(dú)立的簡(jiǎn)單操作,而是通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)和信息跨地域、跨時(shí)間的傳輸和交換,變成了一個(gè)統(tǒng)一的、高效的整體,實(shí)現(xiàn)了多種資源的共享和測(cè)量功能的優(yōu)化。</p><p> 電磁流量計(jì)廣泛應(yīng)用于水泥、化工、紡織、醫(yī)藥、造紙、給排
31、水、食品飲料等技術(shù)部門,電磁流量計(jì)產(chǎn)品的質(zhì)量和性能對(duì)上述企業(yè)的經(jīng)濟(jì)效益有著重要的影響。將單片機(jī)軟硬件技術(shù)引入電磁流量計(jì),實(shí)現(xiàn)電磁流量計(jì)的智能化,己經(jīng)在不斷地探索、改進(jìn)和完善[1]。</p><p> 隨著工業(yè)過(guò)程自動(dòng)化控制的發(fā)展和工業(yè)現(xiàn)場(chǎng)總線技術(shù)的成熟,以及高性能單片機(jī)的出現(xiàn),電磁流量計(jì)開(kāi)始始擺脫單機(jī)應(yīng)用的情況,具有了基于現(xiàn)場(chǎng)總線技術(shù)的網(wǎng)絡(luò)功能,這樣不僅極大地增強(qiáng)了電磁流量計(jì)的性能和功能,也方便了對(duì)偏遠(yuǎn)或不易觀
32、測(cè)的測(cè)量點(diǎn)的流量監(jiān)控,減輕了人力負(fù)擔(dān),同時(shí)也將電磁流量計(jì)納入了現(xiàn)代控制系統(tǒng),使之成為其中重要的一環(huán)[2]。</p><p> L-mag型電磁流量轉(zhuǎn)換器為全智能型流量轉(zhuǎn)換器,具有標(biāo)準(zhǔn)的Modbus通訊接口,支持波特率1200,2400,4800,9600,19200。通過(guò)Modbus通訊網(wǎng)絡(luò),主站可以采集瞬時(shí)流量,瞬時(shí)流速,累積流量等參數(shù)。Modbus通訊接口在物理結(jié)構(gòu)上采用電氣隔離方式,隔離電壓1500伏,并
33、具有ESD保護(hù),能夠克服工業(yè)現(xiàn)場(chǎng)的各種干擾,保證通訊網(wǎng)絡(luò)的可靠運(yùn)行。</p><p> 在工業(yè)現(xiàn)場(chǎng),電磁流量計(jì)在安裝之后不能正常運(yùn)轉(zhuǎn)工作,其原因可能為電磁流量計(jì)損壞、電磁流量計(jì)與上位機(jī)通訊功能異常、用戶操作不當(dāng)?shù)?,為了能夠更好更快的?zhǔn)確查出問(wèn)題所在,本課題設(shè)計(jì)的手持Modbus協(xié)議主站系統(tǒng),作為主站,它能夠完成對(duì)電磁流量計(jì)通訊功能的測(cè)試,自動(dòng)識(shí)別通訊地址、波特率及通訊協(xié)議;作為從站,能夠模擬電磁流量計(jì)通訊功能,
34、檢測(cè)主站通訊軟件功能,為用戶在現(xiàn)場(chǎng)應(yīng)用儀表組網(wǎng)時(shí)提供一個(gè)測(cè)試工具。</p><p> 1.3論文所做的工作</p><p> 本課題首先根據(jù)系統(tǒng)需要選用低功耗CPU及LCD顯示屏,設(shè)計(jì)硬件電路圖,利用MSP430F5310的引腳映射功能實(shí)現(xiàn)485通訊,采用SPI總線來(lái)控制LCD顯示,不僅節(jié)約了單片機(jī)的引腳資源,而且在程序?qū)崿F(xiàn)上也比較簡(jiǎn)單;系統(tǒng)的鍵盤是一個(gè)很重要的模塊,鍵盤是連接智能儀表
35、各功能模塊的紐帶,本設(shè)計(jì)也增加了豐富的鍵盤功能 。</p><p> 編寫軟件所使用的調(diào)試軟件是IAR 編譯軟件——IAR EW430,單片機(jī)通過(guò)JTAG 控制器可以實(shí)現(xiàn)程序代碼的下載,實(shí)現(xiàn)運(yùn)行控制和對(duì)現(xiàn)場(chǎng)進(jìn)行觀察與修改。</p><p> 本課題基于系統(tǒng)各模塊,分別編寫程序,串口通訊模塊實(shí)現(xiàn)發(fā)送并接收數(shù)據(jù),LCD模塊對(duì)漢字及數(shù)字的顯示,通過(guò)鍵盤與LCD實(shí)現(xiàn)人機(jī)交互功能,在此基礎(chǔ)上,
36、實(shí)現(xiàn)電磁流量計(jì)的瞬時(shí)流量及累積流量的采集與顯示,并利用CRC校驗(yàn)評(píng)價(jià)網(wǎng)絡(luò)的通訊可靠性。</p><p> 在系統(tǒng)的軟、硬件調(diào)試成功后,脫離仿真器,將系統(tǒng)控制程序分別寫入,連接好各部分電路后,進(jìn)行系統(tǒng)測(cè)試。</p><p> 第二章 系統(tǒng)總體方案設(shè)計(jì)</p><p><b> 2.1系統(tǒng)設(shè)計(jì)要求</b></p><p&g
37、t; 本課題根據(jù)系統(tǒng)設(shè)計(jì)需要,選用低功耗CPU、LCD和SP3485搭建硬件電路,基于Modbus協(xié)議完成軟件設(shè)計(jì),主要實(shí)現(xiàn)以下功能:</p><p> ?。?)能夠在線自動(dòng)識(shí)別通訊地址、波特率及通訊協(xié)議;</p><p> ?。?)能夠完成對(duì)電磁流量計(jì)瞬時(shí)流量、累積流量的采集,檢查通訊數(shù)據(jù)是否正常;</p><p> (3)在數(shù)據(jù)通訊中,由于現(xiàn)場(chǎng)通訊距離、變頻
38、干擾等影響會(huì)產(chǎn)生通訊錯(cuò)誤,利用CRC校驗(yàn)評(píng)價(jià)網(wǎng)絡(luò)的通訊可靠性;</p><p> ?。?)實(shí)現(xiàn)Modbus通訊線的抗干擾保護(hù);</p><p> ?。?)系統(tǒng)采用電池供電,要求低功耗設(shè)計(jì),此外要求低成本設(shè)計(jì)。</p><p> 2.2系統(tǒng)總體設(shè)計(jì)方案</p><p> 本系統(tǒng)作為主站與電磁流量計(jì)通訊,它能夠完成對(duì)電磁流量計(jì)通訊功能的測(cè)試,
39、自動(dòng)識(shí)別通訊地址、波特率及通訊協(xié)議;作為從站上位機(jī)通訊,能夠模擬電磁流量計(jì)通訊功能,檢測(cè)主站通訊軟件功能,為用戶在現(xiàn)場(chǎng)應(yīng)用儀表組網(wǎng)時(shí)提供一個(gè)測(cè)試工具。</p><p> 圖2.1 電磁流量計(jì)網(wǎng)絡(luò)結(jié)構(gòu)</p><p> 2.2.1 系統(tǒng)總體設(shè)計(jì)方案</p><p><b> 1.低成本</b></p><p> 各
40、模塊的設(shè)計(jì)要求在保證精度的前提下使用最簡(jiǎn)化的設(shè)計(jì)。</p><p><b> 2.低功耗</b></p><p> 系統(tǒng)采用外部3V電池供電,各模塊設(shè)計(jì)要求低功耗。為此,選用超低功耗單片機(jī)MSP430F5310,低功耗LCD顯示屏FG12864,及3V供電SP3485通訊接口芯片。</p><p> 2.2.2系統(tǒng)各模塊設(shè)計(jì)方案</
41、p><p><b> 1.單片機(jī)最小系統(tǒng)</b></p><p> 本系統(tǒng)采用MSP430F5310單片機(jī)作為主控制器,采用32.768KHz外部晶振,設(shè)計(jì)有復(fù)位電路、JTAG接口。</p><p> 2.RS485通訊模塊</p><p> 設(shè)計(jì)方案中在UART串口模式下,USCI以某一個(gè)波特率和RS485進(jìn)行異步
42、的傳送和接收數(shù)據(jù)。</p><p> 為保證系統(tǒng)穩(wěn)定性及數(shù)據(jù)傳輸?shù)目煽啃?,在RS485通訊模塊與電磁流量計(jì)組網(wǎng)間特別設(shè)計(jì)了RS485通訊線的抗干擾保護(hù)電路。</p><p> 同時(shí),為了能夠在現(xiàn)場(chǎng)方便快捷應(yīng)用,擬解決RS485通訊線無(wú)極性連接技術(shù)。</p><p><b> 3.LCD顯示模塊</b></p><p&g
43、t; 使用單片機(jī)SPI模式與LCD顯示屏相連接,完成實(shí)時(shí)顯示數(shù)據(jù)等功能。</p><p><b> 4.鍵盤輸入模塊</b></p><p> 通過(guò)普通I/O口擴(kuò)展鍵盤模塊,以實(shí)現(xiàn)采集數(shù)據(jù)、設(shè)置地址波特率等功能。</p><p> 根據(jù)上述設(shè)計(jì),系統(tǒng)設(shè)計(jì)方案圖如圖2.2所示。</p><p> 圖2.2 系統(tǒng)方
44、案設(shè)計(jì)圖</p><p> 第三章 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)</p><p> 3. 1主控制器的選擇</p><p> 隨著半導(dǎo)體技術(shù)的快速發(fā)展,微處理器的發(fā)展速度不斷加快,應(yīng)用領(lǐng)域也越來(lái)越廣泛。許多電子產(chǎn)品公司推出各種型號(hào)的單片機(jī),除了大家熟悉的Intel公司的51系列單片機(jī),ATMEL公司的AVR單片機(jī),高級(jí)精簡(jiǎn)指令的ARM單片機(jī),還有德州儀器公司推出的低功耗
45、MSP430系列單片機(jī)等[3]。各個(gè)公司推出的產(chǎn)品都有其各自的特點(diǎn)和優(yōu)勢(shì),應(yīng)用的場(chǎng)所也不盡相同。所以選擇的單片機(jī)要盡量符合系統(tǒng)的需要,不僅要考慮具備較高的性能,更需要單片機(jī)具有很高的性價(jià)比,這對(duì)于產(chǎn)品的開(kāi)發(fā)成本和批量生產(chǎn)都十分重要。</p><p> MSP430系列是16位超低功耗微處理器,該系列單片機(jī)憑借出色的性能,豐富的外設(shè),超低的功耗,強(qiáng)大的功能和廣泛的應(yīng)用范圍在嵌入式應(yīng)用領(lǐng)域發(fā)展迅速[4]。本文設(shè)計(jì)的
46、網(wǎng)絡(luò)終端系統(tǒng)結(jié)合外圍電路、內(nèi)存空間和應(yīng)用性能來(lái)考慮,選擇MSP430系列單片機(jī)中的MSP430F5310為主控制器。</p><p> 3.1.1 MSP430F5310單片機(jī)簡(jiǎn)介</p><p> MSP430F5310單片機(jī)具有48個(gè)引腳的封裝,能夠在低功耗狀態(tài)下工作。該微處理器芯片由于強(qiáng)大靈活的應(yīng)用特性和良好的市場(chǎng)潛力,很快便得到較快的發(fā)展和廣泛的應(yīng)用。芯片內(nèi)存空間大,硬件擴(kuò)展能
47、力強(qiáng),下載和調(diào)試程序非常方便,同時(shí)單片機(jī)程序存儲(chǔ)器容量32KB(32K x 8),RAM容量6K x 8。</p><p> MSP430F5310功能圖如圖3.1所示。</p><p> 該芯片的主要特點(diǎn)如下:</p><p> ?。?)部分引腳具有映射功能。通過(guò)定義第二功能,USCI_A0和USCI_A1支持?jǐn)U展串口或SPI總線,USCI_B0和USCI_B
48、1支持I2C或SPI總線。</p><p> (2)在超低功耗狀態(tài)下工作,芯片的工作電壓為1.8V-3.6V,工作電流0.18uA-195uA,只需5us就可以低功耗模式下喚醒。</p><p> (3)強(qiáng)大的硬件處理能力,具有16位精簡(jiǎn)指令結(jié)構(gòu),多種寄存器尋址方式,簡(jiǎn)潔的指令系統(tǒng),片內(nèi)存儲(chǔ)器和寄存器可進(jìn)行數(shù)字和邏輯運(yùn)算,存在很多中斷源可以實(shí)現(xiàn)嵌套。</p><
49、p> 圖3.1 MSP430F5310功能圖</p><p> (4)十分豐富的外設(shè)資源。32KB的Flash存儲(chǔ)器,10位A/D轉(zhuǎn)換,硬件乘法器,16位定時(shí)器,2個(gè)通用串行接口,內(nèi)部溫度傳感器和看門狗計(jì)數(shù)器等。</p><p> (5)系統(tǒng)工作穩(wěn)定,晶體振蕩器起振穩(wěn)定后,根據(jù)設(shè)定的系統(tǒng)時(shí)鐘頻率來(lái)工作,若程序跑飛,看門狗電路產(chǎn)生復(fù)位信號(hào)來(lái)保證系統(tǒng)的正常運(yùn)行。</p&g
50、t;<p> 圖3.2 MSP430F5310引腳定義圖</p><p> (6)程序調(diào)試方便,單片機(jī)的內(nèi)部Flash存儲(chǔ)器可方便的實(shí)現(xiàn)程序的寫進(jìn)和擦除,本身提供JTAG接口,可以方便的實(shí)現(xiàn)程序的仿真調(diào)試和下載。</p><p> 如圖3.2所示,MSP430F5310具有48個(gè)引腳,在本文中主要用到一組外部晶振接口接晶體振蕩器用來(lái)做系統(tǒng)時(shí)鐘、復(fù)位接口RST、功能信號(hào)
51、選擇接口、負(fù)責(zé)程序下載與調(diào)試的JTAG接口、4位并行的I/O端口、SPI串行數(shù)據(jù)通信接口及UART通訊接口。</p><p> 在本系統(tǒng)中,TEST、TDO、TDI、TCK、TMS和RST引腳連接到JTAG接口電路,用于程序的調(diào)試和仿真。UCB1SOMI、UCB1SIMO和UCB1CLK引腳與RS485通信電路連接,可以實(shí)現(xiàn)與其它主機(jī)的數(shù)據(jù)通信。RST引腳連接帶看門狗電路,系統(tǒng)可以被看門狗復(fù)位信號(hào)直接復(fù)位。A0
52、、A1、A2和P4.6、P4.7作為SPI接口的連接線與LCD顯示屏進(jìn)行數(shù)據(jù)通信。</p><p> 3.1.2單片機(jī)最小系統(tǒng)設(shè)計(jì)</p><p><b> 1.系統(tǒng)時(shí)鐘電路</b></p><p> MSP430F5310單片機(jī)內(nèi)部有主系統(tǒng)時(shí)鐘、輔助系統(tǒng)時(shí)鐘、定制系統(tǒng)時(shí)鐘和晶振時(shí)鐘。本文選擇32.768KHz外部晶振來(lái)產(chǎn)生工作所需信號(hào),
53、晶振直接連到單片機(jī)的XT2IN和XT20UT兩個(gè)引腳上,保證整個(gè)系統(tǒng)能夠在時(shí)鐘信號(hào)的控制下按照時(shí)序有效的工作。晶體振蕩器非常重要,它不但提供系統(tǒng)所需要的工作頻率,而且一切指令的執(zhí)行都要依靠時(shí)鐘頻率。MSP430系列單片機(jī)的晶振頻率固定有8MHz與12MHz,內(nèi)部含有的高增益反相放大器的輸入、輸出端XTALl和XTAL2,外接定時(shí)反饋器件組成振蕩器,從而產(chǎn)生時(shí)鐘信號(hào)送到內(nèi)部的各個(gè)器件[5]。</p><p> 2
54、.JTAG接口電路</p><p> JTAG接口是用來(lái)和編程器連接的部分。MSP430的ROM置于芯片之內(nèi),因此靠JTAG接口來(lái)向ROM輸入程序。同時(shí),通過(guò)JTAG接口還可以用上位機(jī)軟件對(duì)CPU命令進(jìn)行仿真。編程人員可在PC機(jī)上編寫軟件,調(diào)試時(shí)將上位機(jī)與JTAG接口相連,可對(duì)程序進(jìn)行單步執(zhí)行或連續(xù)執(zhí)行,便于檢查程序。特別是在現(xiàn)場(chǎng)進(jìn)行調(diào)試時(shí),可以不移動(dòng)裝置,直接通過(guò)JTAG接口向CPU輸入程序,十分方便。<
55、;/p><p> 相關(guān)JTAG引腳的定義為:</p><p> TCK為測(cè)試時(shí)鐘輸入;</p><p> TDI為測(cè)試數(shù)據(jù)輸入,數(shù)據(jù)通過(guò)TDI引腳輸入JTAG接口;</p><p> TDO為測(cè)試數(shù)據(jù)輸出,數(shù)據(jù)通過(guò)TDO引腳從JTAG接口輸出;</p><p> TMS為測(cè)試模式選擇,TMS用來(lái)設(shè)置JTAG接口處
56、于某種特定的測(cè)試式;</p><p> TRST為測(cè)試復(fù)位,輸入引腳,低電平有效。</p><p> 圖 3.3 JTAG 插頭的引腳分配</p><p> MSP430F5310與前期開(kāi)發(fā)的一些單片機(jī)系列不同,JTAG接口是完全獨(dú)立的,不再與I/O 口復(fù)用,這樣的好處是調(diào)試方便。</p><p><b> 3.復(fù)位電路&l
57、t;/b></p><p> 圖3.4 MAX809復(fù)位電路</p><p> MAX809是一種單一功能的微處理器復(fù)位芯片,用于監(jiān)控微控制器和其他邏輯系統(tǒng)的電源電壓,他可以在上電掉電和節(jié)電情況下向微控制器提供復(fù)位信號(hào)。當(dāng)電源電壓低于預(yù)設(shè)的門檻電壓時(shí),器件會(huì)發(fā)出復(fù)位信號(hào)直到在一段時(shí)間內(nèi)電源電壓又恢復(fù)到高于門檻電壓為止。</p><p> MAX809是低
58、電平有效的復(fù)位輸出,復(fù)位延時(shí)時(shí)間最小為140ms,抗電源的瞬態(tài)干擾低至1.1V電源時(shí)仍能產(chǎn)生有效的復(fù)位信號(hào)。適用溫度范圍-40℃至105℃。</p><p> MAX809復(fù)位電路如圖3.4所示。</p><p> 3.2串口通信電路設(shè)計(jì)</p><p> 3.2.1 RS485通訊總線</p><p> RS-485 通訊總線是一種
59、異步半雙工通訊,發(fā)送和接收共用同一物理信道。在任意時(shí)刻只允許一臺(tái)單機(jī)處于發(fā)送狀態(tài)。因此必須對(duì)控制信號(hào)進(jìn)行切換,同時(shí)要求應(yīng)答的單機(jī)必須在偵聽(tīng)到總線上呼叫信號(hào)已經(jīng)發(fā)送完畢,并且沒(méi)有其它單機(jī)發(fā)出應(yīng)答信號(hào)的情況下,才能應(yīng)答。因此采用 RS-485 總線連接的多個(gè)站點(diǎn),任何時(shí)刻只能有一個(gè)站點(diǎn)在“說(shuō)”,其它站點(diǎn)只能處于“聽(tīng)”狀態(tài)。如果有多于1個(gè)的站點(diǎn)在“說(shuō)”,數(shù)據(jù)將在通信總線上碰撞,結(jié)果使處于接收狀態(tài)的站點(diǎn)收不到正確的數(shù)據(jù)[6][7]。</p
60、><p> 3.2.2 RS485通訊接口電路</p><p> 圖 3.5 RS485通訊接口電路</p><p> 由圖3.5可以看出,系統(tǒng)利用MSP430F5310引腳的映射功能,P4.1-P4.3擴(kuò)展串口,P4.1接485TXD,P4.2接485RXD,P4.3接485芯片的接收、發(fā)送使能端,為通訊方向控制引腳。</p><p>
61、 3.2.3 通訊保護(hù)功能</p><p> 保護(hù)電路中,鉗位于6.0V的TVS 管D1、D2、D3用來(lái)避免RS485總線在受外界干擾時(shí)(雷擊、浪涌)產(chǎn)生的高壓損壞RS485收發(fā)器[8]。這些保護(hù)電路能夠?qū)S485總線起到良好的保護(hù)性能。當(dāng)RS485遭受大的交流電壓灌入時(shí),TVS形成高阻,保證后續(xù)電路,同時(shí)會(huì)將浪涌泄放到地[9]。</p><p> 其總線保護(hù)電路如圖3.5所示。&l
62、t;/p><p> 3.3人機(jī)接口模塊設(shè)計(jì)</p><p> 3.3.1 LCD顯示模塊</p><p> 本系統(tǒng)設(shè)計(jì)中,采用FG12864液晶顯示屏,此款液晶與單片機(jī)有兩種連接方式,一種是并行方式,一種是串行方式。其中并行連接方式傳輸數(shù)據(jù)的速度快,但是使用的I/O資源太多,串行方式雖然在數(shù)據(jù)傳輸速度上不如并行方式,但是其使用的I/O資源少,所以本設(shè)計(jì)選用串行連接
63、方式。本設(shè)計(jì)中MSP430F5310通過(guò)SPI總線來(lái)控制LCD,不僅速度快,而且編程方便。</p><p> 在電路中液晶顯示器SCL、SI腳分別接單片機(jī)的P4.6、P4.7引腳,A0、RES、CS1分別與單片機(jī)P6.0、P6.1、P6.2口相連接。其電路圖如圖3.6所示。</p><p><b> 圖3.6 液晶顯示</b></p><p&g
64、t;<b> 3.3.2鍵盤模塊</b></p><p> 系統(tǒng)通過(guò)鍵盤模塊實(shí)現(xiàn)通訊地址設(shè)置、波特率設(shè)置等鍵盤輸入功能,為此設(shè)計(jì)4位鍵盤與MSP430F5310單片機(jī)的I/O口P1.1-P1.4相連接,上拉電阻10K,以防止灌電流過(guò)大。鍵盤模塊電路如圖3.7所示</p><p> 圖3.7 鍵盤模塊電路</p><p><b>
65、 第四章 協(xié)議介紹</b></p><p> 4.1 Modbus協(xié)議介紹 </p><p> Modbus是鏈路層的主/從協(xié)議,采用請(qǐng)求——響應(yīng)方式,Modbus協(xié)議主站可向從站發(fā)送帶有從站地址的通信請(qǐng)求報(bào)文,具有該地址的從站收到該報(bào)文后發(fā)出響應(yīng)報(bào)文[10][11]。</p><p> 標(biāo)準(zhǔn)的Modbus串行網(wǎng)絡(luò)采用兩種錯(cuò)誤檢測(cè)方法:奇偶校
66、驗(yàn)和幀檢測(cè)。奇偶校驗(yàn)對(duì)每個(gè)字符都可用,幀檢測(cè)(包括LRC和CRC)應(yīng)用于整個(gè)消息,它們?cè)谙l(fā)送前由主設(shè)備產(chǎn)生,從設(shè)備在接收過(guò)程中檢測(cè)每個(gè)字符和整個(gè)消息幀[12][13]。</p><p> 4.1.1 Modbus協(xié)議RTU幀格式</p><p> Modbus協(xié)議有ASCII和RTU兩種數(shù)據(jù)傳輸方式可由用戶選擇,但在一個(gè)Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)
67、[14]。其中RTU模式信息幀中的8位數(shù)據(jù)包括兩個(gè)4位16進(jìn)制字符[15]。本文采用RTU模式。</p><p> RTU模式消息發(fā)送至少以3.5個(gè)字符間隔時(shí)間標(biāo)志開(kāi)始和結(jié)束,信息幀由地址域、數(shù)據(jù)域和CRC校驗(yàn)域構(gòu)成,所有字符位用16進(jìn)制[16]。整個(gè)消息幀必須作為一連續(xù)的流傳輸。如果一個(gè)新消息在小于3.5個(gè)字符時(shí)間內(nèi)接著前個(gè)消息開(kāi)始[17]。一典型的消息幀如表4.1。</p><p>
68、 表4.1Modbus協(xié)議RTU幀格式</p><p> L-mag電磁流量計(jì)采用MODBUS協(xié)議的RTU格式(十六進(jìn)制格式),其幀結(jié)構(gòu)如表4.2、表4.3。</p><p> 表4.2主站命令幀結(jié)構(gòu)</p><p> 表4.3從站響應(yīng)幀結(jié)構(gòu)</p><p><b> 說(shuō)明:</b></p>&l
69、t;p> ?。?)T1-T2-T3-T4為幀起始或幀結(jié)束,Modbus協(xié)議規(guī)定幀起始或幀結(jié)束是在幀與幀間延時(shí)3.5char字符的時(shí)間實(shí)現(xiàn)的。</p><p> (2)設(shè)備地址:電磁流量計(jì)的通訊地址,在一個(gè)網(wǎng)絡(luò)中不能有兩個(gè)相同的地址。</p><p> ?。?)功能碼:MODBUS 協(xié)議規(guī)定的功能碼,L-mag電磁流量計(jì)采用功能碼04讀輸入寄存器來(lái)實(shí)現(xiàn)采集數(shù)據(jù)的。</p>
70、<p> ?。?)寄存器地址和寄存器數(shù)</p><p> 主站命令中的參數(shù)是從寄存器地址開(kāi)始的寄存,讀寄存器長(zhǎng)度的N個(gè)寄存器。</p><p><b> (5)從站響應(yīng)數(shù)據(jù)</b></p><p> 從站響應(yīng)數(shù)據(jù)是:字節(jié)數(shù)和N個(gè)數(shù)字節(jié)數(shù)據(jù)。</p><p> 4.1.2 Modbus協(xié)議命令編碼定義
71、</p><p> Modbus功能碼定義如表4.4所示,L-mag-電磁流量計(jì)僅采用04功能碼。</p><p> 表4.4 Modbus功能碼定義</p><p> 表4.4Modbus功能碼定義(續(xù))</p><p> 4.2 L-mag v77通訊協(xié)議介紹</p><p> 4.2.1 L-mag v
72、77電磁流量計(jì)Modbus寄存器地址定義</p><p> L-mag v77電磁流量計(jì)Modbus寄存器地址定義如表4.5所示。</p><p> 表4.5 L-mag v77電磁流量計(jì)Modbus寄存器地址定義</p><p> 4.2.2數(shù)據(jù)含義說(shuō)明</p><p><b> 1.浮點(diǎn)格式</b></
73、p><p> L-mag v77電磁流量計(jì)MODBUS采用 IEEE754 32位浮點(diǎn)數(shù)格式,其結(jié)構(gòu)如表4.6:(以瞬時(shí)流量為例)</p><p> 表4.6 L-magv77浮點(diǎn)數(shù)格式</p><p> S-尾數(shù)的符號(hào);1=負(fù)數(shù),0 = 正數(shù);</p><p> E-指數(shù);與十進(jìn)制數(shù)127的差值表示。</p><p
74、> M-尾數(shù);低23位,小數(shù)部分。</p><p> 當(dāng)E不全”0”時(shí),且不全”1時(shí)。</p><p> 4.2.3通訊數(shù)據(jù)解析</p><p> 進(jìn)行數(shù)據(jù)通訊時(shí),瞬時(shí)流量,瞬時(shí)流速,流量百分比,流體電導(dǎo)比,正反向累積量小數(shù)部分以浮點(diǎn)數(shù)的格式傳輸,正反向累積量的整數(shù)部分以長(zhǎng)整型數(shù)傳輸。</p><p><b> 讀瞬
75、時(shí)流量</b></p><p> 主站發(fā)送與接受命令格式如表4.7、表4.8。</p><p> 表4.7主站發(fā)送命令(十六進(jìn)制)</p><p> 表4.8主站接收到數(shù)據(jù)</p><p> 浮點(diǎn)數(shù) C4 1C 60 00</p>
76、<p> 1100 0100 0001 1100 0110 0000 0000 0000</p><p> 浮點(diǎn)數(shù)字節(jié)1 浮點(diǎn)數(shù)字節(jié)2 浮點(diǎn)數(shù)字節(jié)3 浮點(diǎn)數(shù)字節(jié)4</p><p> S=1: 尾數(shù)符號(hào)為1表示是負(fù)數(shù)。</p><p> E = 10001000: 指數(shù)為 136</
77、p><p> M= 001 1100 0110 0000 0000 0000,尾數(shù)為</p><p><b> 2.讀累積流量</b></p><p> 為了能夠完全表達(dá)電磁流量計(jì)的9位累積值,所以把累積流量的整數(shù)和小數(shù)部分分別表達(dá)。整數(shù)部分用長(zhǎng)整型變量,小數(shù)部分使用浮點(diǎn)數(shù)。</p><p> 主站發(fā)送采集累
78、積流量整數(shù)值命令與接收到的數(shù)據(jù)格式如表4.9、表4.10所示。</p><p> 表4.9主站發(fā)送采集累積流量整數(shù)值命令</p><p> 表4.10主站接收到累積流量整數(shù)值數(shù)據(jù)</p><p> 累積流量的整數(shù)部分為 = 28785</p><p> 主站發(fā)送采集累積流量小數(shù)值命令與接收到的數(shù)據(jù)格式如表4.11、表4.12所示。&l
79、t;/p><p> 表4.11主站發(fā)送采集累積流量小數(shù)值命令</p><p> 表4.12主站接收到累積流量小數(shù)值數(shù)據(jù)</p><p> 浮點(diǎn)數(shù)為: 3F 00 00 00</p><p> 0011 1111 0000 0000 0000 0000 0000 0000&l
80、t;/p><p><b> S = 0</b></p><p> E = 0111111 126</p><p> M = 000 0000 0000 0000 0000 0000</p><p> 4.3 L-mag 511通訊協(xié)議介紹</p><p> 與L-mag v77電
81、磁流量計(jì)不同 L-mag 511電磁流量計(jì)MODBUS寄存器起始地址為00H。</p><p> 表4.13 L-mag 511電磁流量計(jì)Modbus寄存器地址定義</p><p><b> 以讀取瞬時(shí)流量為例</b></p><p> 主機(jī)命令格式如表4.14所示。</p><p> 表4.14 L-mag 5
82、11采集瞬時(shí)流量命令格式</p><p> 從機(jī)回應(yīng)格式如表4.15所示。</p><p> 本命令是一起讀出瞬時(shí)流量、瞬時(shí)流速、百分比、空管比以及報(bào)警狀態(tài)。</p><p> 從機(jī)回應(yīng)數(shù)據(jù)解讀如下:</p><p> a.瞬時(shí)流量數(shù)據(jù)=流量高位*256+流量低位。</p><p> b.單位數(shù)點(diǎn) : 把單位
83、數(shù)點(diǎn)的字節(jié)按位展開(kāi)如表4.16。</p><p> 表4.15 L-mag 511接收瞬時(shí)流量數(shù)據(jù)格式</p><p> 表4.16單位數(shù)點(diǎn)展開(kāi)命令</p><p> 其中B7是正負(fù)符號(hào)位,B7 = 0 流量為正向;B7 = 1 流量為反向。</p><p> 單位數(shù)點(diǎn)字節(jié)的B6B5B4是小數(shù)點(diǎn)位置,如表4.17所示。</p&g
84、t;<p> 表4.17 B6B5B4表示小數(shù)點(diǎn)位置</p><p> 單位數(shù)點(diǎn)字節(jié)的B2B1B0是流量單位,如表4.18所示。</p><p> 表4.18 B2B1B0表示流量單位</p><p> c.瞬時(shí)流量包括瞬時(shí)流量數(shù)據(jù)高、低位和瞬時(shí)流量單位數(shù)點(diǎn)共三個(gè)字節(jié)。</p><p> 瞬時(shí)流量值=瞬時(shí)流量數(shù)據(jù)*瞬時(shí)
85、流量數(shù)點(diǎn)+流量單位。</p><p> 第五章 軟件模塊設(shè)計(jì)</p><p> 5.1軟件設(shè)計(jì)的總體思路</p><p> 圖5.1系統(tǒng)主程序流程圖</p><p> 系統(tǒng)上電后,各模塊進(jìn)行初始化,默認(rèn)L-mag v77協(xié)議,查詢是否有按鍵按下。若2鍵按下則切換成L-mag 511協(xié)議,1鍵按下,進(jìn)入選擇采集數(shù)據(jù)類型菜單,選定需要采集
86、的數(shù)據(jù)類型后,按下3鍵,確定并發(fā)送采集數(shù)據(jù)命令,并等待接收、顯示數(shù)據(jù);4鍵為返回鍵。</p><p> 5.2 LCD顯示程序設(shè)計(jì)</p><p> LCD顯示數(shù)據(jù)RAM存儲(chǔ)65*132可尋址陣列,65行以8行為一頁(yè)被分為8頁(yè),第九頁(yè)為單獨(dú)一行;而132列中,從第5列開(kāi)始顯示,共128列。通過(guò)指定具體某頁(yè)、某行、某列來(lái)確定具體像素點(diǎn)[18]。</p><p>
87、 RAM中數(shù)據(jù)在顯示屏中顯示對(duì)應(yīng)關(guān)系如圖5.2所示。</p><p> 圖5.2 RAM-LCD數(shù)據(jù)轉(zhuǎn)換</p><p> 利用SPI總線來(lái)控制LCD,關(guān)鍵在于把握好LCD的控制時(shí)序,在串行模式下,單片機(jī)向LCD 12864寫一位數(shù)據(jù)的時(shí)序圖如圖5.3所示:</p><p> 圖5.3 串行模式下單片機(jī)向LCD寫一位數(shù)據(jù)時(shí)序</p><p&
88、gt; 圖5.4 串行方式下單片機(jī)向LCD傳輸數(shù)據(jù)的時(shí)序</p><p> 從圖5.3可以看出,在串行方式下單片機(jī)向LCD 12864寫一位數(shù)據(jù)發(fā)生在時(shí)鐘的上升沿,且時(shí)鐘空閑時(shí)為高電平,單片機(jī)向LCD 12864寫一個(gè)命令或者數(shù)據(jù)字節(jié)的時(shí)序圖如圖5.4所示:</p><p> 從圖中可以看出,在每字節(jié)傳輸簽都有一個(gè)前導(dǎo)符,其中的RW、RS決定后面?zhèn)鬏數(shù)氖菙?shù)據(jù)字節(jié)還是命令字節(jié),對(duì)于每一
89、字節(jié)數(shù)據(jù)或者命令的傳輸,都是分兩字節(jié)傳輸,先發(fā)高四位,后發(fā)低四位。LCD的RS、RW位為00,表示數(shù)據(jù)位指令數(shù)據(jù),根據(jù)具體指令數(shù)據(jù)LCD完成各寄存器設(shè)置。具體指令數(shù)據(jù)見(jiàn)表5.1。</p><p> 在單片機(jī)一方,其SPI總線有8種類型的傳輸模式[19],針對(duì)此款LCD的時(shí)序特點(diǎn),選擇第五種時(shí)序類型,其時(shí)序如圖5.5所示:</p><p> 圖5.5 單片機(jī)SPI時(shí)序</p>
90、<p> 控制時(shí)序處理好之后,就可以傳輸數(shù)據(jù)和命令來(lái)控制LCD的顯示了,但是需要注意的是LCD在執(zhí)行一些初始化命令時(shí)需要一定的處理時(shí)間,因此在將這些命令發(fā)給LCD后需要執(zhí)行一定的延時(shí),保證命令被完全執(zhí)行。</p><p> 表5.1 LCD指令表</p><p> 表5.1 LCD指令表(續(xù))</p><p> 5.2.1 .LCD初始化<
91、;/p><p><b> LCD初始化流程圖</b></p><p> 圖5.6 LCD初始化流程圖</p><p> LCD初始化流程圖如圖5.6所示。</p><p> 程序首先配置I/O引腳,SPI初始化,然后對(duì)LCD進(jìn)行初始化處理。LCD初始化過(guò)程主要包括復(fù)位、設(shè)定行列顯示方向、各寄存器設(shè)置、正反向顯示等[2
92、2]。</p><p> 2.LCD初始化程序</p><p> 參考表5.1 LCD指令表,LCD初始化程序如下:</p><p> void InitiateLCD(void) </p><p><b> { </b></p><p><b> CS_0;</b&
93、gt;</p><p> Delay(10); </p><p><b> CS_1;</b></p><p> RESET_1; //復(fù)位位置零 </p><p> Delay(50); </p><p> RESET_0;
94、 //復(fù)位位置位 </p><p> Delay(100);</p><p><b> RESET_1;</b></p><p><b> CS_0; </b></p><p> LCDInstructionWrite(0xE2);
95、 //復(fù)位指令 </p><p> LCDInstructionWrite(0xA1); //ADC指令(ADC=1)數(shù)據(jù)傳輸SEG132~SEG1,ADC=0 正常方向</p><p> LCDInstructionWrite(0x0C); //SHL指令(SHL=0)傳輸, 顯示COM1~COM
96、64 SHL=0正常方向 </p><p> LCDInstructionWrite(0xA2); //設(shè)定LCD占空比為1/9,BIAS=0,1/9</p><p> LCDInstructionWrite(0x2C); //設(shè)定POWER1電源控制 </p><p> LCDInstructio
97、nWrite(0x2E); //設(shè)定POWER2電源控制</p><p> LCDInstructionWrite(0x2F); //設(shè)定POWER3電源控制 </p><p> LCDInstructionWrite(0x26); //調(diào)節(jié)電阻寄存器選擇 </p>
98、<p> LCDInstructionWrite(0x81); //設(shè)定參考電壓模式 </p><p> LCDInstructionWrite(0x10); //設(shè)定參考電壓寄存器 </p><p> LCDInstructionWrite(0xA6); //正常顯示(
99、A7 為反顯示)</p><p> LCDInstructionWrite(0xA4); //正常顯示</p><p> LCDInstructionWrite(0xB0); //顯示頁(yè)置0 </p><p> LCDInstructionWrite(0x40);
100、 //設(shè)定顯示行(COM0)</p><p> ClearLCD();</p><p> LCDInstructionWrite(0xAF); //等待顯示開(kāi)始 </p><p> Delay(50); </p><p><b> } </b></p><p&g
101、t; 5.2.2 .畫點(diǎn)程序設(shè)計(jì)</p><p><b> 1.畫點(diǎn)程序流程圖</b></p><p> 畫點(diǎn)時(shí)首先確定點(diǎn)所在頁(yè),再確定所在列,寫入列地址時(shí),先寫列地址高位,再寫列地址低位,通過(guò)字節(jié)左移,確定所在行位置。</p><p> 畫點(diǎn)程序流程圖如圖5.7所示。</p><p> 圖5.7 畫點(diǎn)程序流程
102、圖</p><p><b> 2.畫點(diǎn)程序設(shè)計(jì)</b></p><p><b> 畫點(diǎn)程序如下:</b></p><p> x行地址,y列地址,z是否畫點(diǎn)</p><p> void WriteDot(INT8U x,INT8U y,INT8U z )</p><p>
103、;<b> { </b></p><p> y=y+4; //共132列,需要128列,從第5列開(kāi)始</p><p> LCDInstructionWrite(0xB0+x/8); // 頁(yè)地址 </p><p> LCDInstructionWrite(0x10 | (y >> 4)); // 列起始地址高
104、位</p><p> LCDInstructionWrite(0x00 | (y & 0x0f)); // 列起始地址地位 </p><p><b> if(z=1)</b></p><p><b> {</b></p><p> LcdDataWrite(0x01<<(
105、x%8)); // 確定行,并畫點(diǎn)</p><p><b> }</b></p><p><b> }</b></p><p> 5.2.3 .畫線程序設(shè)計(jì)</p><p><b> 畫線程序流程圖</b></p><p> 畫一條水平線時(shí),
106、先確定起始點(diǎn)位置,依次改變列地址循環(huán)畫點(diǎn),得到一條水平線。</p><p> 畫線程序流程圖如圖5.8所示。</p><p><b> 具體畫線程序如下:</b></p><p> void WriteLine(INT8U x,INT8U y,INT8U i )</p><p><b> { <
107、;/b></p><p><b> INT8U j;</b></p><p> y=y+4; //共132列,需要128列,從第5列開(kāi)始</p><p> LCDInstructionWrite(0xB0+x/8); // 頁(yè)地址 </p><p> LCDInstructionWrite(0x10
108、 | (y >> 4));</p><p> LCDInstructionWrite(0x00 | (y & 0x0f)); // 列起始地址 </p><p> for(j=0;j<=i;j++)</p><p><b> {</b></p><p> LcdDataWrite(0x0
109、1<<(x%8));</p><p><b> y=y+1;</b></p><p><b> }</b></p><p><b> }</b></p><p> 圖5.8 畫線程序流程圖</p><p> 5.2.4 .漢字顯示程
110、序設(shè)計(jì)</p><p><b> 漢字取模</b></p><p> 將一個(gè)漢字寫成16*16的點(diǎn)陣形式,即畫出256個(gè)方格,見(jiàn)漢字填入這些格子中,有筆畫的地方有點(diǎn),這樣排出一個(gè)字。系統(tǒng)使用的LCD是縱向取模的,將漢字分為上下兩個(gè)部分,上半部分從左邊第一列開(kāi)始,由下至上數(shù)點(diǎn),8個(gè)點(diǎn)為一組,有點(diǎn)的為1,無(wú)點(diǎn)的為0,組成一個(gè)字節(jié)的16進(jìn)制數(shù),漢字上半部分共16字節(jié),下
111、半部分依照上半部分同樣取模,共16字節(jié),這樣1個(gè)漢字經(jīng)取模后共32個(gè)字節(jié)。</p><p> “漢”字經(jīng)取模后,上半部分由左至右依次為:</p><p> {0x10,0x60,0x02,0x0C,0xC0,0x02,0x1E,0xE2,0x02,0x02,0x02,0xE2,0x1E,0x00,0x00,0x00};</p><p> 下半部分由左至右依次為
112、:</p><p> {0x04,0x04,0x7C,0x03,0x80,0x80,0x40,0x20,0x13,0x0C,0x13,0x20,0x40,0x80,0x80,0x00}。</p><p> 圖5.9 “漢”字取模過(guò)程</p><p> 2漢字顯示程序流程圖</p><p> 程序首先確定前頁(yè)的起始地址,指針指向字模,顯
113、示漢字上半部分,指針指向下一字模,直到將前頁(yè)漢字全部顯示;再確定后頁(yè)的起始地址,顯示后頁(yè)中的所有漢字的下半部分。</p><p> 漢字顯示流程圖如圖5.10所示。</p><p> 3.漢字顯示程序設(shè)計(jì)</p><p><b> 漢字顯示程序如下:</b></p><p> void WriteCHINAOrD
114、ATA(INT8U x,INT8U y,const INT8U *DataBuf,INT8U DataBufLong)</p><p><b> { </b></p><p><b> INT8U i;</b></p><p> y=y+4; //共132列,需要128列,從第5列開(kāi)始</p>&
115、lt;p> LCDInstructionWrite(0xB0+x); // 前頁(yè)地址 </p><p> LCDInstructionWrite(0x10 | (y >> 4));</p><p> LCDInstructionWrite(0x00 | (y & 0x0f)); // 列起始地址 </p><p> for(i
116、 = 0; i<(DataBufLong>>1); i++) </p><p> LcdDataWrite(*DataBuf++);</p><p> LCDInstructionWrite(0xB0+x+1); // 后頁(yè)地址 </p><p> LCDInstructionWrite(0x10 | (y >> 4));&
117、lt;/p><p> LCDInstructionWrite(0x00 | (y & 0x0f)); // 列起始地址 </p><p> for(i = 0; i < DataBufLong; i++) </p><p> LcdDataWrite(*DataBuf++); </p><p><b> }<
118、;/b></p><p> 圖5.10 漢字顯示流程圖</p><p> 5.3串口通訊程序設(shè)計(jì)</p><p> 5.3.1 .串口初始化</p><p><b> 串口初始化流程圖</b></p><p> 系統(tǒng)對(duì)串口進(jìn)行初始化時(shí),首先設(shè)置引腳映射,設(shè)置串口數(shù)據(jù)格式,包括1個(gè)起
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Linux系統(tǒng)下Modbus主協(xié)議棧設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于arm的手持點(diǎn)菜系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)設(shè)計(jì)(論文)-基于modbus協(xié)議的聯(lián)控系統(tǒng)網(wǎng)絡(luò)通訊開(kāi)發(fā)
- 畢業(yè)論文--電氣主接線設(shè)計(jì)
- 礦井主井提升系統(tǒng)畢業(yè)論文
- 數(shù)控機(jī)床主傳動(dòng)系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 數(shù)控機(jī)床主傳動(dòng)系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)論文頑主
- 手持式無(wú)繩吸塵器設(shè)計(jì)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)(論文)情況匯總表 - 主站
- 畢業(yè)論文-開(kāi)題報(bào)告-文獻(xiàn)綜述基于arm的手持點(diǎn)菜系統(tǒng)設(shè)計(jì)
- 本科畢業(yè)論文(設(shè)計(jì))操作系統(tǒng)在手持設(shè)備中的應(yīng)用
- 畢業(yè)論文--航空服務(wù)站貨物自動(dòng)分揀系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文--航空服務(wù)站貨物自動(dòng)分揀系統(tǒng)設(shè)計(jì)
- modbus通訊協(xié)議
- 畢業(yè)論文--基于modbus通信協(xié)議的智能儀表opc服務(wù)器的開(kāi)發(fā)
- 常溫集氣站工藝設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文--1780熱軋電氣主傳動(dòng)系統(tǒng)
- Modbus協(xié)議研究及其實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì).pdf
- 污水處理站設(shè)計(jì)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論