2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩37頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  課 程 設 計</p><p>  題 目: 大型停車場車位指示系統設計</p><p>  院 系:計算機科學與信息工程學院</p><p>  班 級:10自動化(三)班</p><p><b>  目錄</b></p><p><b>  引

2、言2</b></p><p>  一、設計目標及原則3</p><p><b>  1.1、目標3</b></p><p><b>  1.2、原則3</b></p><p>  二、停車場流程圖4</p><p>  三、停車場指示系統工作流程7&l

3、t;/p><p>  四、停車場系統各板塊的工作原理8</p><p>  4.1、停車場車位指示系統原理圖:8</p><p>  4.2、超聲波探測原理:9</p><p>  4.3、RS-485 通訊協議9</p><p>  4.4、TCP/IP協議:11</p><p><

4、;b>  五、系統配置13</b></p><p>  5.1、超聲波探測器(DUS-110)13</p><p>  5.2、采集控制器(KL-S121)14</p><p>  5.3、節點控制器(TGWH678)16</p><p>  5.4、主入口引導屏17</p><p>  5

5、.5、停車場設計圖:18</p><p>  六、硬件仿真及軟件編譯19</p><p>  6.2、車位采集的系統仿真19</p><p>  6.2、車位指示系統的仿真21</p><p>  6.3、矩陣顯示以及剩余車位顯示21</p><p>  6.4、車位尋找及路徑運算的matlab建模22&l

6、t;/p><p>  6.5、車牌號的提取matlab仿真24</p><p><b>  七、設計心得25</b></p><p>  附錄1 車位采集器的程序27</p><p>  附錄2 車位指示系統的程序29</p><p>  附錄3矩陣顯示以及剩余車位顯示的程序代碼33<

7、;/p><p><b>  任務分配表</b></p><p>  組長:朱長福 分配任務,組織小組成員參與討論,審核小組任務完成情況、資料是否合理, 修改資料,protues仿真 </p><p>  成員:郭洪明 matlab建模,protues仿真,資料搜集,報告的初步排版</p><p>  劉 兵

8、 繪制停車場流程圖,超聲波檢測原理,程序修改</p><p>  秦菱蔚 元件的搜集,數據采集器程序仿真</p><p>  胡 坤 指示系統的工作流程,RS485協議,繪制protues仿真圖</p><p>  王偉卿 提出使用超聲波探測是否有車位,搜集程序資料</p><p>  張 梁 停車場車位指示系統原

9、理圖,以及對原理的介紹,TCP/IP協議</p><p>  盧 鑫 繪制停車場平面圖,報告的最后編排,led采集器程序仿真</p><p>  胡 兵 資料搜集,引言,指示系統設計目標和原則</p><p><b>  引言</b></p><p>  伴隨著我國信息事業的蓬勃發展,一方面,計算機技術、

10、自動化控制技術和數據傳輸技術在近些年來都得到了非常迅速的發展, 各項信息事業方興未艾、各種身份識別載體日趨豐富;而另一方面,由于生活水平與安全防范意識的提高,使得人們對于停車管理的安全性和停車的便利性都產生了新的需求。停車場管理系統除了進行進出通道管理之外,如何引導司機方便的停車也是停車管理的重要組成部分,本方案通過強化停車場進出通道的安全管理、場內車位引導等方面來闡述一個完整意義上的智能化停車場系統。目前市場上現有的停車管理系統很多都

11、是簡單的對停車場進出通道的管理,而實際上,一個完整的停車場管理系統還應該包括車位引導、區位引導和安全控制等要素。區位車位指示系統主要用于對進出停車場的停泊車輛進行有效引導和管理,是停車場管理系統的有力補充,構成智能化更高的停車場管理系統。 該系統可實現泊車者方便快捷泊車,使停車場車位管理更加規范、有序,提高車位使用率,該車

12、位采用超聲波探測技術,對每個車位的占用或空閑狀況進行可靠檢測。根據車庫</p><p><b>  一、設計目標及原則</b></p><p><b>  1.1、目標</b></p><p>  ※ 方便、快捷、準確的滿位顯示服務功能;</p><p>  ※ 車輛保管的安全性功能;</p&

13、gt;<p>  ※ 經濟合理的運營成本;</p><p><b>  1.2、原則</b></p><p>  ※ 先進成熟的技術和設備,保證系統運作安全、可靠與穩定;</p><p>  ※ 合理布局,提高系統的服務質量,縮短服務時間,增加場內停車流量和收費收入。</p><p>  ※ 實用性、實時性

14、、完整性原則;</p><p>  ※ 可擴展性及易維護性原則。</p><p>  ※ 規范停車場只需,提高停車場的使用率,縮短車主尋找停車位、停車、停車后離開停車場和駛離停車場的時間;</p><p><b>  二、停車場流程圖</b></p><p>  三、停車場指示系統工作流程</p><

15、p>  當駕駛員駕車駛至本車庫路面入口時,將會在路面的顯示屏上看到整個車庫的車位情況,有無空車位,以決定是否在本車場的停車;當車駛入地下車場時通過探測器知該已進入車位。將告知區域控制器,區域控制器將做出判斷,同時在屏幕上顯示此車場新的車位數據。當駕駛員駕車駛至本車庫時,會從該層入口處的顯示屏上得到提示:該層共分有多少個區域,同時顯示每個區域車輛停放數量,并且在該屏旁邊立有指示牌。指示牌明確標有駕駛員所在的位置,及區域劃分的情況,能

16、更方面的引導駕駛員進入相應分區。當車準備駛入停車場時,先在門口按取票按鈕獲得停車劵或者刷卡,如果取票成功或者刷卡成功,那么可以進入停車場。如果取票或者刷卡失敗,那么尋找管理員解決問題。進場后根據LED指示燈的提示前進,如果找到自己的車位則停車,如果未找到自己的車位就呼叫管理員。某區通過探測器知其已進入車位,將告知區域控制器,區域控制器將做出判斷,同時在相應屏幕上顯示此區域新的車位數據。</p><p>  當車輛

17、從停放車輛的區域駛出時,根據LED指示燈提示前進,當車到達出口時,車主用自己的車票或月卡掃描計算費用,如果停車卷丟失或者失效,那么就呼叫管理員。如果繳費成功,那么管理員就打開道閘,車輛可以出停車場。探測器將此信息告知區域控制器,區域控制器將在各自入口處的顯示屏上已停車輛數量減去一個,同時將空余車位數量加一個,以保證正確顯示車位信息。</p><p><b>  本項目說明:</b></

18、p><p>  1、本系統共分6個區域,車場總進口2個,車場總出口2個;</p><p>  2、六個區的通道互通; </p><p>  3、在每個區的主入口需顯示該區當前的剩余車位和該區的總車位;</p><p>  4、在總入口處需顯示車場的總剩余車位數和車場的總車位數;</p><p>  四、停車場系統各板塊的工

19、作原理</p><p>  4.1、停車場車位指示系統原理圖:</p><p>  停車場指示系統原理的簡單介紹:通過超聲波探測器檢測該區位是否有車,若有車超聲波為紅燈,無車超聲波為綠燈。通過rs485協議傳輸給采集控制器,采集控制器將信息通過rs485協議傳輸給車位引導牌、信息顯示屏和剩余車位顯示屏。節點控制器接收到采集控制器的信息后通過TCP/IP協議傳輸給滿位顯示屏和中央控制器,中央

20、控制器通過TCP/IP協議傳輸給網絡。</p><p>  4.2、超聲波探測原理:</p><p>  超聲波發射器向某一方向發射超聲波,在發射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發射點距障礙物的距離(s),即:s=340t/2 。這就是所謂時

21、間差測距法。</p><p>  超聲波測距的原理是利用超聲波在空氣中的傳播速度為已知,測量聲波在發射后遇到障礙物反射回來的時間,根據發射和接收的時間差計算出發射點到障礙物的實際距離。由此可見,超聲波測距原理與雷達原理是一樣的。</p><p>  4.3、RS-485 通訊協議</p><p>  RS-485 標準只對接口的電氣特性做出規定,而不涉及接插件、電纜

22、或協議;因此,用戶需要在RS-485 應用網絡的基礎上建立自己的應用層通信協議。</p><p>  由于RS-485 標準是基于PC 的UART 芯片上的處理方式,因此,其通訊協議也規定了串行數據單元的格式(8-N-1 格式):1 位邏輯0 的起始位,6/7/8 位數據位,1 位可選擇的奇(ODD)/偶(EVEN)校驗位,1/2 位邏輯1 的停止位。</p><p>  目前,RS-48

23、5 在國內有著非常廣泛的應用,許多領域,比如工業控制、電力通訊、智能樓宇等都經??梢砸姷骄哂蠷S-485 接口電路的設備。但是,這些設備采用的用戶層協議(術語參考自OSI 的7 層結構)都不相同;這些設備之間并不可以直接連接通訊。比如,很多具有RS-485 接口電路的用戶設備采用自己制定的簡單通訊協議,或是直接取自ModBus 協議(AscII/RTU 模式)中的一部分功能;在電力通訊領域,當前國家現在執行的行業標準中,頒布有按設備分類

24、的各種通訊規約,如CDT、SC-1801、u4F、DNP3.0 規約和1995 年的IEC60870-5-101 傳輸規約、1997 年的國際101 規約的國內版本DL/T634-1997規約;在電表應用中,國內大多數地區的廠商采用多功能電能表通訊規約(DL/T645-1997)。</p><p>  下面將分別對ModBus 協議(RTU 模式)、多功能電能表通訊規約(DL/T645-1997)進行簡單介紹,便

25、于大家對應用層通信協議有一個基本的概念與理解。</p><p><b>  響應:</b></p><p>  當從設備響應時,它使用功能代碼域來指示是正常響應(無誤)還是有某種錯誤發生(稱作異議響應)。對正常響應,從設備僅響應相應的功能代碼。對異議響應,從設備返回一等同于正常代碼的代碼,但最重要的位置為邏輯1。</p><p>  例如:從一

26、個主設備發往從設備的消息要求讀一組保持寄存器,將產生如下功能代碼:</p><p>  0 0 0 0 0 0 1 1 (十六進制03H)</p><p>  對正常響應,從設備僅響應同樣的功能代碼。對異議響應,它返回:</p><p>  1 0 0 0 0 0 1 1 (十六進制83H)</p><p>  除功能代碼因異議錯誤作了修改外

27、,從設備將一獨特的代碼放到響應消息的數據域中,這能告訴主設備發生了什么錯誤。</p><p>  主設備應用程序得到異議響應后,典型的處理過程是重發消息,或者診斷發自從設備的消息并報告給操作員。從主設備發給從設備消息的數據域包含附加的信息:從設備必須用于進行執行由功能代碼所定義的行為。這包括了象不連續的寄存器地址,要處理項的數目,域中實際數據字節數。例如,如果主設備需要從設備讀取一組保持寄存器(功能代碼03),數

28、據域指定了起始寄存器以及要讀的寄存器數量。如果主設備寫一組從設備的寄存器(功能代碼10 十六進制),數據域則指明了要寫的起始寄存器以及要寫的寄存器數量,數據域的數據字節數,要寫入寄存器的數據。</p><p><b>  具體的協議內容:</b></p><p>  地址域 A0~A5:當地址位999999999999H 時,為廣播地址,同時當從控制器接收到一幀數據時

29、,地址域相同時應響應命令,取得總線控制權,當響應命令之后,應把總線控制權歸還給主控器。</p><p>  命令碼:執行操作的依據。</p><p>  校驗碼:幀開始各個字節二進制算術和,不計溢出值。</p><p>  前導字節:在發送信息之前,發送1 個或多個字節FEH,以喚醒接收方。</p><p>  數據域:發送時數據加33H,接

30、收時數據減33H。</p><p>  用戶可以在國家標準計量局,或技術監督部門查詢關于多功能電能表通訊規(DL/T645-1997)獲取更多在RS-485 網絡中實現的通訊規約的具體內容。</p><p>  4.4、TCP/IP協議:</p><p>  很多不同的廠家生產各種型號的計算機,它們運行完全不同的操作系統,但TCP/IP 協議組件允許它們互相進行通信

31、。這一點很讓人感到吃驚,因為它的作用已遠遠超出了起初的設想。TCP/IP 起源于60 年代末美國政府資助的一個分組交換網絡研究項目,到現在90 年代已發展成為計算機之間最常應用的組網形式。它是一個真正的開放系統,因為協議組件的定義及其多種實現可以不用花錢或花很少的錢就可以公開地得到。它成為被稱作“全球互聯網”或“因特網”(Internet)的基礎,該廣域網(WAN)已包含超過100 萬臺遍布世界各地的計算機。</p>&l

32、t;p><b>  分層:</b></p><p>  網絡協議通常分不同層次進行開發,每一層分別負責不同的通信功能。一個協議組件,比如TCP/IP,是一組不同層次上的多個協議的組合。TCP/IP 通常被認為是一個四層協議系統。</p><p>  每一層負責不同的功能:</p><p>  1. 鏈路層,有時也稱作數據鏈路層或網絡接口層

33、,通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。</p><p>  2. 網絡層,有時也稱作互連網層,處理分組在網絡中的活動,例如分組的路由選擇。</p><p>  在TCP/IP 協議組件中,網絡層協議包括IP 協議(網際協議),ICMP 協議(Internet 互連網控制報文協議),以及IGMP 協議(Inter

34、net 組管理協議)。</p><p>  3. 運輸層主要為兩臺主機上的應用程序提供端到端的通信。在TCP/IP 協議組件中,有兩個互不相同的傳輸協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。TCP 為兩臺主機提供高可靠性的數據通信。它所做的工作包括把應用程序交給它的數據分成合適的小塊交給下面的網絡層,確認接收到的分組,設置發送最后確認分組的超時時鐘等。由于運輸層提供了高可靠性的端到端的通信,因此應用

35、層可以忽略所有這些細節。而另一方面,UDP 則為應用層提供一種非常簡單的服務。它只是把稱作數據報的分組從一臺主機發送到另一臺主機,但并不保證該數據報能到達另一端。任何必需的可靠性必須由應用層來提供。這兩種運輸層協議分別在不同的應用程序中有不同的用途,這一點我們將在后面看到。</p><p>  4. 應用層負責處理特定的應用程序細節。幾乎各種不同的TCP/IP 實現都會提供下面這些通用的應用程序:</p&g

36、t;<p>  ?Telnet 遠程登錄</p><p>  ?FTP 文件傳輸協議</p><p>  ?SMTP 用于電子郵件的簡單郵件傳輸協議</p><p>  ?SNMP 簡單網絡管理協議</p><p>  盡管通過IP 地址可以識別主機上的網絡接口,進而訪問主機,但是人們最喜歡使用的還是主機名。在TCP/IP 領域

37、中,域名系統(DNS)是一個分布的數據庫,由它來提供IP 地址和主機名之間的映射信息。</p><p>  現在,我們必須理解,任何應用程序都可以調用一個標準的庫函數來查看給定名字的主機的IP 地址。類似地,系統還提供一個逆函數――給定主機的IP 地址,查看它所對應的主機名。大多數使用主機名作為參數的應用程序也可以把IP 地址作為參數。</p><p><b>  應用編程接口:

38、</b></p><p>  使用TCP/IP 協議的應用程序通常采用兩種應用編程接口(API):socket 和TLI(運輸層接口:Transport Layer Interface)。前者有時稱作“Berkeley socket”,表明它是從伯克利版發展而來的。后者起初是由AT&T 開發的,有時稱作XTI(X/Open 傳輸接口),以承認X/Open這個自己定義標準的國際計算機生產產商所做

39、的工作。XTI 實際上是TLI 的一個超集。本書不是一本編程方面的書,但是偶爾會引用一些內容來說明 TCP/IP 的特性,不管大多數的API (socket)是否提供它們。所有關于socket 和TLI 的編程細節請參閱文獻[Stevens 1990]。TCP/IP 協議族分為四層:鏈路層,網絡層,運輸層和應用層,每一層各有不同的責任。在TCP/IP 中,網絡層和運輸層之間的區別是最為關鍵的:網絡層(IP)提供點到點的服務,而運輸層(T

40、CP 和UDP)提供端到端的服務。</p><p>  一個互連網是網絡的網絡。構造互連網的共同基石是路由器,它們在IP 層把網絡連在一起。第一個字母大寫的Internet 是指分布在世界各地的大型互連網,其中包括1 萬多個網絡和超過100 萬臺主機。</p><p>  在一個互連網上,每個接口都用IP 地址來標識,盡管用戶習慣使用主機名而不是IP 地址。域名系統為主機名和IP 地址之間

41、提供動態的映射。端口號用來標識互相通信的應用程序。服務器使用眾所周知的端口號,而客戶使用臨時設定的端口號。</p><p><b>  五、系統配置</b></p><p>  5.1、超聲波探測器(DUS-110)</p><p>  利用超聲波測距的工作原理的檢測車位占用情況的車輛檢測器,可實時識別車位使用情況,并可通過RS485接口直接與

42、集線器通信,具有防誤檢功能,如防相鄰車位誤檢、人員在停車位誤檢、障礙物誤檢等,能快捷地部署系統。</p><p><b>  一、主要特性 </b></p><p>  工業級設計,適應各種惡劣環境;</p><p>  用于車庫車位的車輛存在實時檢測;</p><p>  采用RS485 通訊總線,通訊地址最大為32。

43、 </p><p><b>  二、主要技術參數 </b></p><p>  工作電源:DC24V±10%</p><p>  工作模式: 實時監測</p><p>  工作溫度:-20℃至65℃</p><p>  儲存溫度:-40℃至85℃</p><p>

44、  工作濕度:30~90%(相對濕度) </p><p>  使用條件:安裝在車位的上方(推薦范圍:2.0m~2.5m)</p><p><b>  三、控制接口定義</b></p><p>  1 電源及通訊總線接口</p><p>  2 外接 LED 顯示燈接口 </p><p><b

45、>  3、工作狀態及指示</b></p><p>  四、車輛探測距離設定 </p><p>  將探測器安裝于預定高度,使用工具將超聲波探測器的距離探測按鈕激活。</p><p>  此時紅綠車位指示燈將會重復閃爍,30次后探測器將所測得的數據平均值設為探測高度,將此平均值減去500mm為報警距離。當報警距離內未檢測到物體時,通過RS485輸出無

46、車信號,并將綠燈點亮;當報警距離內檢測到有物體時,通過RS485輸出有車信號,并將紅燈點亮;</p><p>  5.2、采集控制器(KL-S121)</p><p>  KL-S系列數據采集器通過采集模擬量和開關量來實時監測現場的設備運行情況和環境狀況。產品通過標準的RS232/RS485、以太網通訊接口將設備數據遠傳至監控中心,使監控人員直接在監控機房通過上位機觀察現場的數據并控制現場

47、的設備,從而使現場的儀器設備能夠正常運行無異常情況發生。 ?對模擬量的測量提供4級報警限值,可以根據設定的上下限和上上限、下下限值產生上下限、上上限、下下限報警,其報警限值參數可以通過鍵盤或監控中心進行近端或遠端設置和修改。</p><p>  ?提供以太網、RS232/RS485標準通訊接口,并且RS232/RS485兩種通訊方式可通過板上跳線選擇,保證通訊方式的通用性。</p>

48、<p>  ?采用2×16字符液晶顯示,4個按鍵控制,4個LED指示燈指示通訊和報警等工作狀態,人機界面友好,易于操作。</p><p>  ?采用大規模集成電路,減少了分立元件的數量,模塊化電源設計,并考慮對過壓與雷擊的防護。</p><p>  ?內嵌單片機系統從硬件和軟件上均采取先進的抗干擾措施,從而保障監控系統長期穩定運行。</p><p&

49、gt;  ?系列產品內每種型號都提供壁掛式和1U機架式兩款機箱,供用戶選擇。</p><p>  ?支持繼電器與通道報警聯動。 </p><p>  價格:1692元/只</p><p>  5.3、節點控制器(TGWH678)</p><p>  節點控制器用于連接中央控制器和采集節點控制器、顯示屏、讀卡器、引導箭頭等。主要解決長距離引起通

50、訊不可靠問題、網絡節點數擴展問題、分組管理問題等。節點控制器是本公司停車場引導系統三層網絡總線的的中間層,對保證本系統的安全、可靠與高效有重要作用。 </p><p>  該控制器有兩種通訊口,一種是高速的CAN2.0B通訊口,另一種是RS485通訊口,可以與多種設備通訊,從而實現多種設備進行停車場引導系統的網絡。</p><p><b>  技術指標</b><

51、/p><p>  型號 TGWH678</p><p>  擴展點數 32個</p><p>  通訊方式 CAN2.0B與RS485</p><p>  通信速率 5—1000KBPS可設置</p><p>  站點號 1—255可設置</p&g

52、t;<p>  通訊距離 1000米以內</p><p>  電源 220伏</p><p>  功耗 小于25瓦</p><p>  價格:1500元/只</p><p>  5.4、主入口引導屏 </p><p>  輸入電壓 A

53、C220V/50Hz</p><p>  功耗 每行顯示屏功耗<20W</p><p>  通訊接口 RS485</p><p>  通訊頻率 9600/4800</p><p>  LED單字節符尺寸 150mm*60mm</p><p

54、>  顯示分辨率 32*16</p><p>  顯示范圍 400*200</p><p>  平均無故障工作時間 >10000h</p><p>  外殼材料 冷板磨砂噴涂 </p><p>  5.5、停車場設計圖:</p><p>  單

55、箭頭LED顯示屏: 雙箭頭LED顯示屏:</p><p>  門禁處的LED顯示屏:</p><p>  六、硬件仿真及軟件編譯</p><p>  6.2、車位采集的系統仿真</p><p>  這次車位指示系統的采集我們選用了74S165八位并行入/串行輸出移位寄存器,這里對它做一個簡要

56、說明:</p><p><b>  主要電特性如下:</b></p><p><b>  工作原理:</b></p><p>  當移位\植入控制端(SH/LD)為低電平時,并行數據(A-H) 被置入寄存器,而時鐘(CLK,CLK INH)及串行數據(SER)均無關。當SH/LD)為高電平時,并行置數功能被禁止。</

57、p><p>  CLK和CLK INK在功能上是等價的,可以交換使用。當CLK和CLK INK有一個為低電平并且SH/LD為高電平時,另一個時鐘可以輸入。當CLK和 CLK INK有一個為高電平時,另一個時鐘被禁止。只有在CLK為高電平時CLK INK才可變為高電平。</p><p><b>  引出端符號:</b></p><p>  CLK,C

58、LK INK 時鐘輸入端(上升沿有效)</p><p>  A-H 并行數據輸入端</p><p>  SER 串行數據輸入端</p><p>  QH 輸出端</p><p>  QH' 互補輸出端</p><p>  

59、Sh/LD' 移位控制/置入控制(低電平有效)</p><p><b>  邏輯圖</b></p><p>  下面是我們的程序導入后的系統仿真圖:</p><p>  圖為車位采集系統仿真圖</p><p>  仿真圖的工作原理介紹:我們用了觸發開關來代替車位采集器,當開關觸發時,經過上來電阻的

60、作用向at89c51單片機輸入一個高電平‘1’,沒有觸發時,向單片機發送的地址信息為低電平‘0’。所有的地址信息由74ls165向單片機發送,經由74LS165的QH串行端口向單片機發送一個16位的地址信號。</p><p>  當有車進入車位時,圖中的led燈會亮,并在左邊的七段數碼管顯示‘1’,上邊的七段led燈顯示車位信息。這里的說聲抱歉,本開始選用的是兩個七段數碼管,后來經過反復仿真和設計,發現實現起來比

61、較困難,所以選用一個七段數碼管來表示16個車位。我們修改了程序的代碼,車位1~16的表示由‘0’~‘9’和‘a’~‘f’表示。</p><p>  這里說聲對不起,到目前為止,我們的仿真圖是對的,程序也是對的,但是功能卻沒有向預先設計的方向發展。第一個問題就是,車位的顯示跟我預先的代碼不符,第二個問題就是當有車位進入車輛時,led燈不會亮,應該是程序的功能沒實現。</p><p>  程序

62、代碼會附在后面附錄。</p><p>  6.2、車位指示系統的仿真</p><p>  這部分的程序是最簡單的部分,因為我們只做了一個簡單的顯示屏顯示我們的預先設定好的內容,本想加入一個手動的控制輸入,后面時間有限做了一個顯示電路。</p><p>  這部分的功能就是滾動顯示屏顯示車牌號和要到達的車位以及要行走的距離。</p><p> 

63、 6.3、矩陣顯示以及剩余車位顯示</p><p>  這部分也是根據外部中斷輸入改變顯示的仿真程序,外面輸入數據改變矩陣顯示和剩</p><p><b>  余車位的顯示:</b></p><p>  6.4、車位尋找及路徑運算的matlab建模</p><p>  Matlab選用蟻群算法對個路徑進行計算比較,把最后

64、的數據繪制成一張表格,把所有可能的停車位都表示出來。這個算法的前提是根據車位地圖建立一個數學模型,算法根據建立的模型來進行最優路徑計算。再把最后的結果存入預先設定好的文件夾。</p><p><b>  下面是結果的截圖:</b></p><p>  6.5、車牌號的提取matlab仿真</p><p>  車牌號的提取時根據小車在進入停車場是

65、外圍的攝像頭拍攝的照片,然后運用切割的辦法把車牌號的各個數字進行切割并提取樣本和圖庫的圖片進行對比,最后將結果保存在預先設定的文檔里。下面是結果圖:</p><p><b>  七、設計心得</b></p><p>  對于一個大學生來說,做這個課程設計起初還是有些困難的,對于這個車位引導系統設計,自己也深知,想要做出來這個設計,就需要比別人付出更多,花費更多的空余時

66、間,所以這次設計對于我來說,的確是個不小的考驗,也對我們所學的專業有了更深的認識,對于我們以后該干些什么也有了一定的了解,確實這次設計是感慨良多啊。在這里,總結了四條心得體會。1.決定做一件事就靜下心來安靜的做,做好準備,不能夸夸其談,紙上談兵。初拿到這個題目時,我們總是停留在口頭討論上,以為很簡單,只要一做就能做出來,并沒有花費太多的時間太多的準備,結果當我們一開始做的時候,就傻眼了,才知道沒有什么叫做不打沒有準備的仗,上戰場就得亮劍

67、。此時大家才知道,這個不是輕而易舉的事情,才不得不把設計開始的時間推遲幾天,給大家充分的時間做準備,然后才正式開始一起討論設計。2.不要怕困難,不要氣餒,對待問題要狹路相逢勇者勝。在設計中,總是發現問題解決問題,一個接著一個。每個問題就是一個攔路虎,有時會覺得很難,難得讓人想放棄,把問題留給明天,但是明天那個問題依舊在那里,但是我們發現越難的問題當你解決后,頓時覺得自己好有成就感,小小的成就感,那種舒暢興奮</p><

68、;p>  附錄1 車位采集器的程序</p><p>  #include<reg51.h></p><p>  #include<intrins.h> </p><p>  #define uint unsigned int </p><p>  #define uchar unsigned char<

69、/p><p>  uchar code DSY_CODE1[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70};</p><p>  uchar code DSY_CODE2[]={0x7f,0x7b,0x77,0x1f,0x4e,0x3d,0x4f,0x47};</p><p>  uchar code zDSY[]={0x7e,0

70、x06};</p><p>  sbit CLK=P3^1; //時鐘位定義 </p><p>  sbit SH_LD =P3^0; //轉載/移位位定義 </p><p>  sbit QH =P3^2; //接收位定義 </p>&

71、lt;p>  sbit CLKIN =P3^3; </p><p>  uint read_int165(void) </p><p><b>  { </b></p><p>  uchar i=0; </p><p>  uint read_data=0; &l

72、t;/p><p><b>  CLKIN=1; </b></p><p>  SH_LD=0; //置入控制有效,鎖存端口值 </p><p>  _nop_(); </p><p>  SH_LD=1; </p><p><b&

73、gt;  _nop_(); </b></p><p><b>  CLKIN=0; </b></p><p>  for(i=0;i<16;i++) { </p><p>  read_data<<=1; </p><p>  if(QH){read_data|=QH;} &l

74、t;/p><p>  CLK=0; </p><p><b>  _nop_(); </b></p><p>  CLK=1; //上升沿 </p><p><b>  _nop_(); </b></p><p><

75、b>  } </b></p><p>  return read_data; </p><p><b>  } </b></p><p>  void main() </p><p><b>  { </b></p><p>  int i; <

76、/p><p>  uint temp=0; </p><p>  uchar tempH=0; </p><p>  uchar tempL=0;</p><p><b>  CLK=0; </b></p><p>  while(1) { </p><p>  temp

77、 =read_int165();</p><p>  tempH = (uchar) (temp>>8); </p><p>  tempL = (uchar) temp;</p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><

78、;p>  if(tempL[i]==0&&tempH[i]==0)</p><p>  P0=zDSY[0];</p><p>  P1=zDSY[0];</p><p>  if(tempL[i]==1)</p><p>  P0=DSY_CODE1[i];</p><p>  P1=zDSY[

79、1];</p><p>  if(tempH[i]=1)</p><p>  P0=DSY_CODE2[i];</p><p>  P1=zDSY[1];</p><p><b>  }</b></p><p><b>  }</b></p><p>

80、<b>  }</b></p><p>  附錄2 車位指示系統的程序</p><p>  #include<reg51.h> //包含單片機寄存器的頭文件</p><p>  #include<intrins.h> //包含_nop_()函數定義的頭文件</p><p>  sbit R

81、S=P2^0; //寄存器選擇位,將RS位定義為P2.0引腳</p><p>  sbit RW=P2^1; //讀寫選擇位,將RW位定義為P2.1引腳</p><p>  sbit E=P2^2; //使能信號位,將E位定義為P2.2引腳</p><p>  sbit BF=P0^7; //忙碌標志位,,將BF位定義為P0.7引腳<

82、/p><p>  unsigned char code string[ ]={"AN7968 YU75 R396m"}; </p><p>  /*****************************************************</p><p>  函數功能:延時1ms</p><p>  (3j+2)

83、*i=(3×33+2)×10=1010(微秒),可以認為是1毫秒</p><p>  ***************************************************/</p><p>  void delay1ms()</p><p><b>  {</b></p><p> 

84、 unsigned char i,j;</p><p>  for(i=0;i<10;i++)</p><p>  for(j=0;j<33;j++)</p><p><b>  ; </b></p><p><b>  }</b></p><p>  /*

85、****************************************************</p><p>  函數功能:延時若干毫秒</p><p><b>  入口參數:n</b></p><p>  ***************************************************/</p>

86、<p>  void delay(unsigned char n)</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i=0;i<n;i++)</p><p>  delay1ms();</p><p>&l

87、t;b>  }</b></p><p>  /*****************************************************</p><p>  函數功能:判斷液晶模塊的忙碌狀態</p><p>  返回值:result。result=1,忙碌;result=0,不忙</p><p>  ****

88、***********************************************/</p><p>  unsigned char BusyTest(void)</p><p><b>  {</b></p><p>  bit result;</p><p>  RS=0; //根據規定,RS

89、為低電平,RW為高電平時,可以讀狀態</p><p><b>  RW=1;</b></p><p>  E=1; //E=1,才允許讀寫</p><p>  _nop_(); //空操作</p><p><b>  _nop_();</b></p><p>

90、;<b>  _nop_(); </b></p><p>  _nop_(); //空操作四個機器周期,給硬件反應時間</p><p>  result=BF; //將忙碌標志電平賦給result</p><p><b>  E=0;</b></p><p>  return result;

91、</p><p><b>  }</b></p><p>  /*****************************************************</p><p>  函數功能:將模式設置指令或顯示地址寫入液晶模塊</p><p>  入口參數:dictate</p><p&g

92、t;  ***************************************************/</p><p>  void WriteInstruction (unsigned char dictate)</p><p><b>  { </b></p><p>  while(BusyTest()==1); //如果忙

93、就等待</p><p>  RS=0; //根據規定,RS和R/W同時為低電平時,可以寫入指令</p><p><b>  RW=0; </b></p><p>  E=0; //E置低電平(根據表8-6,寫指令時,E為高脈沖,</p><p> 

94、 // 就是讓E從0到1發生正跳變,所以應先置"0"</p><p><b>  _nop_();</b></p><p>  _nop_(); //空操作兩個機器周期,給硬件反應時間</p><p>  P0=dictate; //將數據送入P0口,即寫入指令或地址</p

95、><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  _nop_(); //空操作四個機器周期,給硬件反應時間</p>

96、<p>  E=1; //E置高電平</p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  _nop_

97、(); //空操作四個機器周期,給硬件反應時間</p><p>  E=0; //當E由高電平跳變成低電平時,液晶模塊開始執行命令</p><p><b>  }</b></p><p>  /*********************************************

98、********</p><p>  函數功能:指定字符顯示的實際地址</p><p><b>  入口參數:x</b></p><p>  ***************************************************/</p><p>  void WriteAddress(unsigned

99、char x)</p><p><b>  {</b></p><p>  WriteInstruction(x|0x80); //顯示位置的確定方法規定為"80H+地址碼x"</p><p><b>  }</b></p><p>  /********************

100、*********************************</p><p>  函數功能:將數據(字符的標準ASCII碼)寫入液晶模塊</p><p>  入口參數:y(為字符常量)</p><p>  ***************************************************/</p><p>  voi

101、d WriteData(unsigned char y)</p><p><b>  {</b></p><p>  while(BusyTest()==1); </p><p>  RS=1; //RS為高電平,RW為低電平時,可以寫入數據</p><p><b>  RW=0;<

102、/b></p><p>  E=0; //E置低電平(根據表8-6,寫指令時,E為高脈沖,</p><p>  // 就是讓E從0到1發生正跳變,所以應先置"0"</p><p>  P0=y; //將數據送入P0口,即將數據寫入液晶模塊</p><p><b> 

103、 _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  _nop_(); //空操作四個機器周期,給硬件反應時間</p><p>  E=1; //E置高電平

104、</p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  _nop_(); //空操作四個機器周期,給硬件反應時間</p>

105、<p>  E=0; //當E由高電平跳變成低電平時,液晶模塊開始執行命令</p><p><b>  }</b></p><p>  /*****************************************************</p><p>  函數功能:對LCD的顯示模式進行初始化設置<

106、;/p><p>  ***************************************************/</p><p>  void LcdInitiate(void)</p><p><b>  {</b></p><p>  delay(15); //延時15ms,首次寫指令

107、時應給LCD一段較長的反應時間</p><p>  WriteInstruction(0x38); //顯示模式設置:16×2顯示,5×7點陣,8位數據接口</p><p>  delay(5); //延時5ms </p><p>  WriteInstruction(0x38);</p><p><b>

108、  delay(5);</b></p><p>  WriteInstruction(0x38);</p><p><b>  delay(5);</b></p><p>  WriteInstruction(0x0f); //顯示模式設置:顯示開,有光標,光標閃爍</p><p><b>  d

109、elay(5);</b></p><p>  WriteInstruction(0x06); //顯示模式設置:光標右移,字符不移</p><p><b>  delay(5);</b></p><p>  WriteInstruction(0x01); //清屏幕指令,將以前的顯示內容清除</p><p&g

110、t;<b>  delay(5);</b></p><p><b>  }</b></p><p>  void main(void) //主函數</p><p><b>  {</b></p><p>  unsigned char i;</p&g

111、t;<p>  LcdInitiate(); //調用LCD初始化函數 </p><p>  delay(10);</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  WriteInstruction(0x

112、01);//清顯示:清屏幕指令</p><p>  WriteAddress(0x00); // 設置顯示位置為第一行的第5個字</p><p><b>  i = 0;</b></p><p>  while(string[i] != '\0')</p><p>  {// 顯示字符<

113、;/p><p>  WriteData(string[i]);</p><p><b>  i++;</b></p><p>  delay(150);</p><p><b>  }</b></p><p>  for(i=0;i<4;i++)</p>&

114、lt;p>  delay(250);</p><p><b>  }</b></p><p><b>  }</b></p><p>  附錄3矩陣顯示以及剩余車位顯示的程序代碼</p><p>  #include<reg51.h> //包含單片機寄存器的頭文件</p>

115、;<p>  #include<intrins.h></p><p>  #define uchar unsigned char</p><p>  sbit l=P0^7;</p><p>  uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

116、0x00};</p><p>  uchar code zDSY[]={0xfb,0xf1,0x00,0xf1,0xf1};</p><p>  uchar code yDSY[]={0xf1,0xf1,0x00,0xf1,0x1b};</p><p>  uchar code sDSY[]={0x1b,0x01,0x00,0x01,0x1b};</p>

117、<p>  uchar code xDSY[]={0x1b,0x10,0x00,0x10,0x1b};</p><p>  uchar code Bit_Code[]={0xfe,0xfd,0xfb,0xf7,0x10,0x20,0x40,0x80};</p><p>  uchar dat[5];</p><p>  /************

118、*****************************************</p><p>  函數功能:接收一個字節數據</p><p>  ***************************************************/</p><p>  void Receive(void)</p><p><b&

119、gt;  {</b></p><p>  static uchar i=0;//dat;</p><p>  while(RI==0); //只要接收中斷標志位RI 沒有被置“1”</p><p>  //等待,直至接收完畢(RI=1)</p><p>  RI=0; //為了接收下一幀數據,需將RI 清0</p>

120、<p>  dat[i++]=0x0f&SBUF; //將接收緩沖器中的數據存于dat</p><p>  if(i==5) i=0;</p><p><b>  }</b></p><p>  /*****************************************************</p>

121、<p><b>  函數功能:主函數</b></p><p>  ***************************************************/</p><p>  void main(void)</p><p><b>  {</b></p><p>  TMO

122、D=0x21; //定時器T1 工作于方式2</p><p>  SCON=0x50; //SCON=0101 0000B,串口工作方式1,允許接收(REN=1)</p><p>  PCON=0x00; //PCON=0000 0000B,波特率9600</p><p>  TH0=0xfc; //根據規定給定時器T1 賦初值</p><p&g

123、t;<b>  TL0=0x18;</b></p><p>  TH1=0xfd; //根據規定給定時器T1 賦初值</p><p><b>  TL1=0xfd;</b></p><p><b>  EA=1;</b></p><p><b>  ET0=1;<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論