freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于模糊控制的交通燈控制系統(tǒng)(單片機實現(xiàn))-閱讀頁

2025-06-21 22:47本頁面
  

【正文】 主機的主程序模塊主要完成的工作是對系統(tǒng)的初始化,然后調用多機通信子程序,把各個從機檢測到的車流量送到主機進行處理,經比較后得出東西方向、南北方向車流量的最大值X、Y,然后將這兩個輸入狀態(tài)量模糊化,根據(jù)這個轉換后的模糊量在論域中元素的取值,在控制表中可以查出相應輸出量的以論域元素表現(xiàn)形式表現(xiàn)的控制量,再將其乘以比例因子就進行交通燈控制顯示了。在程序中用延時實現(xiàn)。等待1ms的原因是,超聲波發(fā)射探頭發(fā)射的超聲波一般都會存在余波干擾,有部分聲波會直接傳到接收探頭,經接收電路放大后,系統(tǒng)就會把它誤認為是檢測的回波信號,發(fā)射后等待1ms可以避免檢測到余波信號。主機發(fā)出的信息有兩類:地址信息(用于與主機通信的從機地址,特征是發(fā)送的第9位TB8為1)和數(shù)據(jù)信息(發(fā)送的第9位TB8為0),即在多機通信系統(tǒng)中,方式3只有8位數(shù)據(jù),第9位(即TB8)是地址/數(shù)據(jù)標志位。這時,從機將本機地址信息發(fā)送給主機,然后使SM2位為0,以便接收主機隨后送出的數(shù)據(jù)信息[10]。(2) 主機聽到從機應答信號后,核對應答地址。(3) 地址相符,主機發(fā)送命令,要求從機發(fā)送數(shù)據(jù),然后主機進入接收數(shù)據(jù)狀態(tài)。: 多機通信子程序的主機子程序流程圖 多機通信從機子程序流程圖從機的通信過程如下:(1) 所有從機均接收主機發(fā)出的地址信息,并與本機地址比較,當接收到的地址信息與本機地址相符時,表示被選中。對于未被選中的從機,SM2位依然位1。(4) 當從機收到主機發(fā)來的確認信號,則表明通信過程結束,這時可將SM2位置1,以便從機能接收主機發(fā)送的地址信息。本設計在編程時,X的變化范圍為0~15,Y的變化范圍為0~20。這樣,只要檢測到X、Y的值,就可以查出相應的延時值T2,從而完成查表工作。 交通燈顯示子程序設計對于交通燈我們在日常生活中非常熟悉,設在十字路口,其控制的過程為:當南北方向通車時綠燈亮,而東西方向紅燈亮,同時有雙位數(shù)碼顯示剩余時間并進行倒計時;當時間顯示為零時,南北方向的綠燈熄滅,而黃燈亮,同時雙位數(shù)碼顯示5秒倒計時時間,黃燈亮后由南北方向切換到東西方向通車。通車的時間到后,東西方向的綠燈熄滅,而黃燈亮,黃燈亮后由東西方向切換到南北方向,東西方向黃燈熄滅,紅燈亮;而南北方向紅燈熄滅,綠燈亮,如此不斷循環(huán)[11]。第一狀態(tài)為東西紅燈亮,南北綠燈亮;第二狀態(tài)為南北綠燈熄滅,黃燈亮;第三狀態(tài)為南北黃燈熄滅,紅燈亮,東西紅燈熄滅,綠燈亮;第四狀態(tài)為東西綠燈熄滅,黃燈亮。定時器定時的時間設置為50ms,再經軟件計數(shù)方法使定時器重復定時20次,計為1s,并用flag做標志位,即flag位由0變1,為1s時間。 交通燈顯示子程序流程圖在交通燈控制過程中任何燈的點亮都對應的有倒計時顯示,除去黃燈是固定以5秒顯示外,紅綠燈顯示倒計時的時間應該根據(jù)檢測到的車流量的不同而改變,而紅綠燈實際點亮的時間長短也應該隨著顯示時間的改變而改變,也就是說指示燈點亮和熄滅與時間顯示必須同步。 中斷服務子程序設計在中斷服務子程序中實現(xiàn)的內容:重裝定時器初始值;產生1s標準時間,并用flag做標志位。中斷服務子程序流程圖如下: 中斷服務子程序流程圖 顯示子程序設計本系統(tǒng)使用2位數(shù)碼管完成倒計時顯示功能。接下來又顯示綠燈時間,如此循環(huán)。第六章 程序調試本設計的程序在調試時,是通過鍵盤輸入東西方向、南北方向車流量的最大值X、Y(實際運行時具體數(shù)據(jù)可由傳感器采集),然后查詢模糊控制查詢表查出相應的延時時間,再去控制交通燈的顯示。主程序初始化完成后,調用按鍵掃描程序,取得鍵值,并根據(jù)當前系統(tǒng)狀態(tài)調用相應的子程序。分別是設置子程序、查表子程序和交通燈顯示子程序(包括紅綠燈顯示和倒計時顯示)等。其方法是置所有的行為低電平,然后判斷是否有鍵按下。(2) 延時去除鍵抖動。如果此時仍有鍵按下,則認為鍵盤上有一個鍵處于穩(wěn)定閉合期。求鍵值的方法是先輸出行掃描初值,然后掃描本行(即先掃描第1行)判斷是否有鍵按下,若等于F0H,則說明沒有鍵按下,若不等于F0H,則說明有鍵按下,輸出相應的列值,然后求出鍵值。如無鍵按下,返回0。 按鍵處理子程序鍵盤處理的主要作用是對操作者所按動的按鍵做出相應的反應,對正在操作的那個鍵進行識別并按照按鍵的功能進行相應的處理。其中:Key1鍵為設置鍵;Key2鍵為減1鍵;Key4鍵為加1鍵;Key5鍵為查表鍵;Key6鍵為交通燈顯示鍵;按下Key1開始設置東西方向、南北方向車流量的最大值x、y,按下Key4設置x、y的值加1,按下Key2設置x、y的值減1,按下Key5根據(jù)x、y值進行查表(表為模糊控制查詢表)并顯示查出的相應延時時間T2,按下Key6進行交通燈顯示(包括紅綠燈顯示和倒計時顯示)。這5個鍵包括自加鍵、自減鍵和3個功能鍵,自加鍵、自減鍵用來改變輸入的X、Y值;功能鍵則用于X、Y值的設置、查表按鍵、交通燈顯示按鍵,功能鍵選擇后的信息將在數(shù)碼管上顯示。利用鍵盤可以進行三個狀態(tài)間的切換;一開始的時候,系統(tǒng)顯示X、Y值的初始值,可以通過鍵盤修改這兩個值;然后利用鍵盤切換到查表狀態(tài),顯示查出的相應延時時間;再利用鍵盤切換到顯示狀態(tài)時,兩位LED數(shù)碼管進行倒計時;三色LED發(fā)光二極管輪流交替指示;如果交通燈演示板上南北方向的綠燈亮,東西方向的紅燈亮,則顯示的是南北方向通行時間;如果南北方向的黃燈亮,則顯示的是等待時間;如果南北方向的紅燈亮,東西方向的綠燈亮,則顯示的是東西方向通行時間;如果東西方向的黃燈亮,則顯示的是等待時間。 調試硬件調試PCB電路板焊接完成后,首先應進行檢查,即確認電路無虛焊,無短路,無斷路,集成元件安裝是否正確,之后進行電路功能模塊的分級調試,包括鍵盤調試、LED交通燈調試和倒計時調試(數(shù)碼管亮度調試)。本系統(tǒng)的軟件程序用C51來編寫,在Keil環(huán)境下進行調試。當確認程序沒問題時,通過串口直接下載到單片機來調試,方便快捷。 各模塊調試倒計時顯示模塊調試本系統(tǒng)使用數(shù)碼管完成倒計時顯示功能。先將這個數(shù)據(jù)分離,分別查表輸出顯示十位的數(shù)字和顯示個位的數(shù)字,十位、個位輪流輸出實現(xiàn)動態(tài)掃描;如果個位是數(shù)字“0”的筆段碼,接著判斷十位是否是數(shù)字“0”的筆段碼:如果不是數(shù)字“0”的筆段碼,說明個位遞減顯示完畢,于是十位顯示的數(shù)字減1,同時個位從表的末尾重新取筆段碼,同樣十位與個位輪流輸出,實現(xiàn)動態(tài)掃描;如果十位是數(shù)字“0”的筆段碼,就說明所有數(shù)據(jù)都顯示完畢,進入下一段程序。線路接好后就可把寫好的程序下載到單片機進行調試,依次檢查東南西北方向的指示燈(發(fā)光二極管)是否點亮,若未點亮,則可能是連線接錯,根據(jù)燈的亮滅情況依次查找直到電路正常工作為止。交通燈的程序調試好時,我們可以看到交通燈按照東西方向、南北方向循環(huán)顯示。編程時先給一個固定數(shù)值10顯示,然后按下自加鍵、自減鍵改變數(shù)值,顯示正確。調試時按下k1鍵就可以修改東西方向、南北方向車流量的最大值x、y并顯示,k4鍵是自加鍵,k2鍵是自減鍵,修改完x、y值后按下k5鍵進行查模糊控制表,這時數(shù)碼管上就會顯示查出的相應的延時時間,再按下k6鍵就可以進行交通燈顯示。第七章 總結通過這次畢業(yè)設計,使我在單片機的基本原理、單片機應用系統(tǒng)開發(fā)過程,以及在常用編程設計思路技巧的掌握方面都能向前邁了一大步,使我認識到了單片機的重要性。首先通過Protel 99 SE的強化訓練,使我學會了如何繪制原理圖;其次是電路板的焊接,這個環(huán)節(jié)注重的是我們的動手實踐能力;最后一個環(huán)節(jié)就是仿真調試和論文的撰寫,仿真調試主要就是對程序的編譯和下載。通過從Protel 99 SE原理圖的繪制到最后論文的撰寫的整個過程中使我學到了關于電子技術工程上的許多東西。除此之外我還學會了焊接電路板,掌握了許多書本以外的電子技術知識,培養(yǎng)了專心工作學習的習慣,懂得了相互之間的幫助與理解,這次畢業(yè)設計使我受益匪淺。參考文獻1.馬文閣.基于模糊控制的單交叉口信號控制方法與算法研究[D],大連海事大學,20082.蘇玉萍.基于模糊邏輯的路口交通燈控制算法的研究[D],蘭州理工大學,20073.田海,薛艷春,趙宇明,郭昌,楊海濤.基于模糊控制的十字路口交通燈控制系統(tǒng)[J],自動化與信息工程,2008,(04)4.程武山.智能控制理論與應用[M],上海:上海交通大學出版社,20065.白順先.超聲波測距系統(tǒng)的設計與實現(xiàn)[J],科技信息(學術研究),2007,(27)6.張丹,賀西平.基于單片機的超聲波測距系統(tǒng)的設計[J],紡織高?;A科學學報,2008,(01)7.史彥斌,段哲民,高憲軍.基于AT89C2051的超聲波測距儀設計[J],計測技術,2006,(01)8.陳斌.基于RS485的單片機多機通信技術[J],電子產品世界,2005,(07)9.郭強,劉志峰,張愛平,王建華.基于STC89C52單片機的智能交通燈控制系統(tǒng)設計[J],機電一體化,2008,(11)10.潘永雄.新編單片機原理與應用[M],西安:西安電子科技大學出版社,2007,211.王守中.51單片機開發(fā)入門與典型事例[M],北京:人民郵電出版社,2007,812.宋樂鵬.基于PLC實現(xiàn)道路十字路口交通燈模糊控制系統(tǒng)[J],可編程控制器與工廠自動化,2007,(10)13.王丹力,趙剡,邱治平.MATLAB控制系統(tǒng)設計、仿真、應用[M],北京:中國電力出版社,200714.張大明.單片機控制實訓指導及綜合應用實例[M],北京:機械工業(yè)出版社,2007,0315.江力,蔡駿,王艷春,董澤芳.單片機原理與應用技術[M],北京:清華大學出版社,2006,816.何超.交通信號燈模糊控制方法及仿真分析[J],科技資訊,2008,(23)17.陳宗梅.交通燈控制系統(tǒng)電路設計[J],重慶職業(yè)技術學院學報,2005,(02)18.沈鴻星.LED交通信號燈系統(tǒng)的硬件設計[J],電子工程師,2004,(03)19.周慶民,李起范.交通燈模糊控制器設計[J],河南科學,1996,(01)20.高飛燕.基于單片機的超聲波測距系統(tǒng)的設計[J],信息技術,2005,(07)21.杜愛月.基于模糊控制的交通信號控制系統(tǒng)及仿真的研究[D],長安大學,200422.陳忠華,肖蕙蕙,魏云貌,周桃文.交通燈控制系統(tǒng)的一種模糊算法[J],重慶工學院學報(自然科學),200823.孫曉艷.基于8051單片機的交通燈控制系統(tǒng)設計與模擬[J],南寧技術學院學報,2007,(03)24.鄭建光,李永.基于AT89C51單片機的交通燈系統(tǒng)設計[J],自動化儀器儀表,2008(06)25.楊漢祥,劉良福,鄔喜輝.利用單片機改進交通燈控制系統(tǒng)[J],北京電子科技學院學報,2005,(04)26.張柱華.基于MATLAB的模糊控制仿真研究[J],內江科技,2008,(04)附錄A 主機硬件原理圖附錄B 從機硬件原理圖附錄C 調試程序includedefine uchar unsigned chardefine uint unsigned int/*=====數(shù)碼管位及按鍵定義=====*/ sbit CS0=P1^0。sbit CS2=P1^2。sbit LED0=P1^4。sbit LED2=P1^6。sbit LED4=P3^6。sbit P20=P2^0。sbit P24=P2^4。/*=====09==========*/uchar a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。/*=====四個數(shù)碼管顯示數(shù)據(jù)存放處=====*/ uchar one,two。uchar t,t1=10,t2,t3。bit flag。/*=====函數(shù)定義=====*/ void delay(uint x)。void display1(uint i)。void setdec()。void jtd()。 //設定T0為模式1 TH0=(50000/256)。 EA=1。 //允許定時器T0中斷 TR0=1。 //初始化,關閉所有信號燈 while(1) { uchar i。display1(y)。 switch(key) //鍵值識別語句 { case 0x18: //k1鍵,為set設置鍵,數(shù)據(jù)由keyscan函數(shù)返回 key_count++。 //按鍵超過2次,就清零 break。 for(i=0。i++) {display1(t2)。 case 0x22: //k6鍵,交通燈顯示 jtd()。 case 0x24: //k4鍵,加1鍵 setadd()。 case 0x28: //k2鍵,減1鍵 setdec()。 } }}/*====中斷函數(shù)(中斷服務程序)=====*/ T0_srv() interrupt 1 using 1{ TH0=(50000/256)。 count++。 //count清0,以便重新計數(shù) flag=1。 for(i=0。i++)。 one=i/10。 P0=a[one]。 //顯示開 delay(100)。 //關顯示 P0=a[two]。 delay(100)。}void display1(uint i){ i=i%100。 two=i%10。//調用顯示數(shù)據(jù) CS2=0。 //調用鍵盤掃描 CS2=1。 CS3=0。 CS
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1