




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
主要探討內(nèi)容目標(biāo)特色此設(shè)計主要是通過單片機系統(tǒng)的I/O輸出限制交通信號紅綠燈的亮暗。由52內(nèi)已經(jīng)燒入的程序編排各個I/O口的輸出。使信號燈按肯定規(guī)則編排亮暗。由集成減法計數(shù)器芯片和BCD-7段數(shù)碼管譯碼芯片實現(xiàn)路口倒計時功能。若交道口出現(xiàn)緊急狀況,可以通過單片機鍵盤產(chǎn)生中斷,從而進入另外的設(shè)定程序。并通過鍵盤手動限制各方向信號燈??紤]到現(xiàn)代社會越來越強調(diào)對殘疾人的關(guān)愛,本設(shè)計中設(shè)計了盲道蜂鳴器提示器,用于提示盲人過公路。開展本課題的意義及工作內(nèi)容:當(dāng)代社會,紅綠燈安裝在各個道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段,這一技術(shù)早在19世紀(jì)就已經(jīng)出現(xiàn)。1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅、藍兩色的機械扳手式信號燈,用以指揮馬車通行,這是世界上最早的交通信號燈。從那以后經(jīng)過不斷地發(fā)展,漸漸演化成現(xiàn)在的交通信號燈限制系統(tǒng),紅燈亮表示“停止”,綠燈亮表示“通行”,黃燈是警告信號。信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行實力削減交通事故有明顯效果。現(xiàn)在有很多方法可以實現(xiàn)交通信號燈限制,本文采納51系列單片機AT89S52為中心器件來設(shè)計交通燈限制系統(tǒng),下面就設(shè)計過程及關(guān)鍵技術(shù)作具體介紹。二、文獻綜述AT89S52是一種低功耗、高性能CMOS8位微限制器,具有8K在系統(tǒng)可編程Flash存儲器。運用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈活的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式限制應(yīng)用系統(tǒng)供應(yīng)高敏捷、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位輸入輸出口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振剛好鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷接著工作。掉電愛護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止[10]。圖4.4單片機管腳圖各管腳功能說明如下:掉電模式下,晶振停止工作,激活掉電模式的指令是最終一條執(zhí)行指令。片上RAM和特殊功能寄存器保持原值,直到掉電模式終止。掉電模式可以通過硬件復(fù)位和外部中斷退出。復(fù)位重新定義了SFR的值,但不變更片上RAM的值。在VCC未復(fù)原到正常工作電壓時,硬件復(fù)位不能無效,并且應(yīng)保持足夠長的時間以使晶振重新工作和初始化[。Proteus軟件是來自英國Labcenterelectronics公司的EDA工具軟件,Proteus軟件有十多年的歷史,在全球廣泛運用,除了其具有和其它EDA工具一樣的原理布圖、PCB自動或人工布線及電路仿真的功能外,其革命性的功能是,它的電路仿真是互動的,針對微處理器的應(yīng)用,還可以干脆在基于原理圖的虛擬原型上編程,并實現(xiàn)軟件源碼級的實時調(diào)試,如有顯示及輸出,還能看到運行后輸入輸出的效果,協(xié)作系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等。城市交道口交通燈限制系統(tǒng)【摘要】本設(shè)計采納單片機限制城市交道口紅綠燈,依據(jù)所要求的時序進行紅綠切換,并制作了交道口模型安裝交通燈。 針對基本要求,該系統(tǒng)完成了依據(jù)所規(guī)定的時序進行紅綠燈切換。并且考慮到為殘疾人供應(yīng)盲道提示音,設(shè)計了用不同頻率聲音提示不同通行狀態(tài)的蜂鳴器提示系統(tǒng)。 針對發(fā)揮部分要求,設(shè)計了與紅綠燈切換同步的倒計時系統(tǒng)。另外設(shè)計了兩種特殊狀態(tài):手動限制與特種車輛限制。一、引言……………3二、系統(tǒng)設(shè)計…………32.1設(shè)計要求………………… 32.1.1基本要求……………… 32.1.2發(fā)揮要求…………………42.2總體設(shè)計…………………… 42.2.1設(shè)計思路……………… 42.2.2方案論證比較………… 4三、硬件系統(tǒng)設(shè)計與實現(xiàn)…………… 53.1主要元器件選擇……………… 53.1.1HD7279簡介…………………53.1.28155簡介……………………63.2電路設(shè)計…………………7四、軟件系統(tǒng)設(shè)計與實現(xiàn)………………………84.1系統(tǒng)軟件設(shè)計結(jié)構(gòu)……………84.2子模塊設(shè)計結(jié)構(gòu)………………84.2.1主循環(huán)模塊………………84.2.2正常運行模塊……………94.2.3非正常運行模塊…………94.2.4Int0中斷模塊…………104.2.5T0中斷模塊…………104.2.6Int1中斷模塊…………114.2.7T1中斷模塊……………11五、系統(tǒng)測試…………………125.1測試儀器與設(shè)備……………125.2系統(tǒng)測試方案………………125.2.1發(fā)送指定限制字…………125.2.2基本功能邏輯狀態(tài)檢驗…………………125.2.3附加功能邏輯狀態(tài)檢驗…………………125.3系統(tǒng)測試結(jié)果 125.3.1發(fā)送指定限制字測試結(jié)果…………125.3.2基本功能邏輯狀態(tài)檢驗測試結(jié)果…………………135.3.3附加功能邏輯狀態(tài)檢驗測試結(jié)果…………………13六、結(jié)束語………………………13致謝……………13參考文獻………………………13附錄A、系統(tǒng)元器件清單……………………… 15附錄B、系統(tǒng)運用文檔………… 16附錄C、程序清單…………………17一、引言當(dāng)代社會,紅綠燈安裝在各個道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段,這一技術(shù)早在19世紀(jì)就已經(jīng)出現(xiàn)。1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅、藍兩色的機械扳手式信號燈,用以指揮馬車通行,這是世界上最早的交通信號燈。從那以后經(jīng)過不斷地發(fā)展,漸漸演化成現(xiàn)在的交通信號燈限制系統(tǒng),紅燈亮表示“停止”,綠燈亮表示“通行”,黃燈是警告信號。信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行實力削減交通事故有明顯效果。現(xiàn)在有很多方法可以實現(xiàn)交通信號燈限制,本文采納51系列單片機AT89S52為中心器件來設(shè)計交通燈限制系統(tǒng)[1]。二、系統(tǒng)設(shè)計2.1設(shè)計要求設(shè)計并制作一個城市交道口交通燈限制系統(tǒng)。2.1.1基本要求在板上制作交道口模型,裝上交通燈。交道口模型如圖所示。圖交通燈限制系統(tǒng)模型圖交通燈限制規(guī)則如下: 1)每個街口有左拐、右拐、直行及行人四種指示燈。每個燈有紅、綠兩種顏色。自行車與汽車共用左拐、右拐和直行燈。 2)共有四種通行方式: ①車輛南北直行、各路右拐,南北向行人通行。南北向通行時間為1分鐘,各路右拐比直行滯后10秒鐘開放。 ②南北向左拐、各路右拐,行人禁行。通行時間為1分鐘。 ③東西向直行、各路右拐,東西向行人通行。東西向通行時間為1分鐘,各路右拐比直行滯后10秒鐘開放。④東西向左拐、各路右拐。行人禁行。通行時間為1分鐘。3)在通行結(jié)束前10秒鐘,綠燈閃耀直至結(jié)束。不必自制電源。2.1.2發(fā)揮要求有倒計時時間顯示。若交道口出現(xiàn)緊急狀況,交警可將系統(tǒng)設(shè)置成手動:全路口車輛禁行、行人通行。緊急狀況結(jié)束后再轉(zhuǎn)成自動狀態(tài)。當(dāng)有119、120等特種車輛通過時,糸統(tǒng)自動轉(zhuǎn)為特種車放行,其它車輛禁止?fàn)顟B(tài)。特種車輛通過15秒鐘后,糸統(tǒng)自動復(fù)原,用模型車演示。其它自選措施。2.2總體設(shè)計 此設(shè)計主要是通過單片機系統(tǒng)的I/O輸出限制交通信號紅綠燈的亮暗。由52內(nèi)已經(jīng)燒入的程序編排各個I/O口的輸出。使信號燈按肯定規(guī)則編排亮暗。由集成減法計數(shù)器芯片和BCD-7段數(shù)碼管譯碼芯片實現(xiàn)路口倒計時功能。 若交道口出現(xiàn)緊急狀況,可以通過單片機鍵盤產(chǎn)生中斷,從而進入另外的設(shè)定程序。并通過鍵盤手動限制各方向信號燈。 另外考慮到現(xiàn)代社會越來越強調(diào)對殘疾人的關(guān)愛,本設(shè)計中設(shè)計了盲道蜂鳴器提示器,用于提示盲人過公路[3]。2.2.1設(shè)計思路 由上可知,單片機可以限制交通燈的亮暗和倒計時功能,但所須要IO口數(shù)較多。故設(shè)計時必需有所取舍??紤]到紅綠燈部分用較少IO口勢必增加其限制邏輯的困難度,使得限制邏輯的優(yōu)化和升級變得特別困難,而倒計時功能基本不須要作修改,故采納集成電路限制倒計時,IO口限制紅綠燈的方案。2.2.2方案論證比較紅綠燈部分運用單色發(fā)光二極管 紅綠燈須要紅色發(fā)光二極管和綠色發(fā)光二極管。其優(yōu)點是原理簡潔易懂,電路設(shè)計簡潔,顯示效果明顯。缺點是焊接工作量比較大。運用一管兩色發(fā)光二極管 一管兩色發(fā)光二極管事實上是由一只紅色發(fā)光二極管和一只綠色發(fā)光二極管反向并接而得。其限制邏輯如下表:表一管兩色發(fā)光二極管發(fā)光規(guī)則正端(以紅燈為參考)負端紅燈綠燈11暗暗10亮暗01暗亮00暗暗因此,可通過IO口限制該二極管兩端的電平來實現(xiàn)對其的亮暗限制。但該二極管亮度比較差,且不符合日常生活中運用的紅綠燈系統(tǒng),故不采納該方案。倒計時計數(shù)器部分采納單片機軟件計數(shù)器 單片機可實現(xiàn)比較精確的延時,通過IO口發(fā)送數(shù)據(jù),經(jīng)過鎖存器鎖存后輸出到7段數(shù)碼管進行顯示。其優(yōu)點在于電路比較簡潔,且單片機限制比較敏捷,便于對緊急狀況進行處理。缺點是占用IO口過多。由于交通燈部分已經(jīng)占用了較多IO口,故不采納該方案。采納74系列集成電路計數(shù)器 利用集成電路設(shè)計一個六進制計數(shù)器和一個十進制計數(shù)器并級聯(lián),形成一個六十進制計數(shù)器進行計數(shù)。技術(shù)結(jié)果通過BCD-7段數(shù)碼管譯碼集成電路驅(qū)動數(shù)碼管顯示。只要占用一個IO口給計數(shù)器送脈沖信號即可。另外若有須要可用一IO口限制其復(fù)位。實際設(shè)計中采納該方案。盲道指示部分采納蜂鳴器進行提示 蜂鳴器的優(yōu)點是結(jié)構(gòu)比較簡潔,運用便利。缺點在于頻率單一,只能通過響與不響提示盲人。由于該設(shè)計中只需體現(xiàn)其思想即可,故采納該方案。采納喇叭進行提示 喇叭的優(yōu)點在于可以實現(xiàn)語音提示,顯得更人性化。并且可以通過發(fā)出不同聲音來指導(dǎo)盲人行動。缺點在于須要預(yù)先存儲數(shù)據(jù)進行播放,耗費系統(tǒng)資源,而且由于對相關(guān)的盲道提示約定不熟識,故不予采納。特種車輛檢測紅外檢測法特種車輛放射紅外,在路口安裝紅外接收裝置,并連接到單片機最小系統(tǒng)的中斷口響應(yīng)。其優(yōu)點是紅外感應(yīng)距離比較遠。缺點是感應(yīng)接收的穩(wěn)定性不好,而且特種車輛須要做電路,比較困難。本設(shè)計中不采納該方案[5]?;魻杺鞲衅鳈z測法 霍爾傳感器是將磁性信號轉(zhuǎn)化為電信號的傳感器。特種車輛攜帶磁性物質(zhì),路口的霍爾元件檢測到磁性物質(zhì)后,使單片機最小系統(tǒng)的中斷口響應(yīng)。其優(yōu)點是電路比較簡潔,而且由于霍爾元件是集電極開路器件,可以在同一路口安裝多個霍爾元件,以線與的方式搜集磁信號;特種車輛的模擬也只需以磁鋼即可。其缺點是感應(yīng)距離很小,大約為幾個厘米??紤]到該設(shè)計中模型尺寸比較小,故采納該方案[4]。三、硬件系統(tǒng)設(shè)計與實現(xiàn)3.1主要元器件選擇.HD7279 1、HD7279(A)是一片具有串行接口的,可同時驅(qū)動8位共陰式數(shù)碼管(或64只獨立LED)的智能顯示驅(qū)動芯片,該芯片同時還可連接多達64鍵的鍵盤矩陣,單片機即可完成LED顯示、鍵盤接口的全部功能。HD7279A芯片內(nèi)部含有譯碼器,可干脆接受16進制碼,HD7279A還同時具有2種譯碼方式,HD7279(A)還具有多種限制指令,如消隱、閃耀、左移、右移、段尋址等。HD7279A具有片選信號,可便利地實現(xiàn)多于8位的顯示或多于64鍵的鍵盤接口,如圖2.1所示。HD7279具有的特點:1、串行接口,無需外圍元件可干脆驅(qū)動LED。2、各位獨立限制譯碼/不譯碼及消隱和閃耀屬性。3、左移和右移指令。4、具有短尋址指令,便利限制獨立LED。5、64鍵鍵盤限制器,內(nèi)含去抖電路。6、有DIP和SOIC兩種封裝形式供選擇。圖3.1HD72792、HD7279A的引腳說明[10]3、HD7279的讀鍵盤數(shù)據(jù)指令D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D000010101d7d6d5d4d3d2d1d0該指令從HD7279A讀出當(dāng)前的按鍵代碼。與其它指令不同,此吩咐的前一個字節(jié)0001010B為微限制器傳送到HD7279A的指令,而后一個字節(jié)d0-d7則為HD7279A返回的按鍵代碼,其范圍是0-3FH(無鍵按下時為0XFF),此指令的前半段,HD7279A的DADT引腳處于高阻態(tài)輸入狀態(tài),以接受來自微處理器的指令;在指令的后半段,DATA引腳從輸入狀態(tài)轉(zhuǎn)為輸出狀態(tài),輸出鍵盤代碼的值。當(dāng)HD7279A的DATA檢測到有效的按鍵時,KEY引腳從高電平變?yōu)榈碗娖?,并始終保持到按鍵結(jié)束。在此期間,假如HD7279A接收到‘讀鍵盤數(shù)據(jù)指令’,則輸出當(dāng)前按鍵的鍵盤代碼;假如在收到‘讀鍵盤指令’時沒有有效按鍵,HD7279A將輸出FFH(1111111B)[6]。3.1.28155簡介8155用于并行擴展單片機的I/O口,有p0的8個位變?yōu)?2個口(PA、PB、PC)單片機要訪問一個芯片就必須要通過地址信號。地址信號一般包括了片選信號和功能信號,但一個芯片假如內(nèi)部還有寄存器存儲單元(這些單元本身是有地址的即孤立的地址選擇信號),因此單片機要訪問一個芯片供應(yīng)的地址信號首先要滿意能夠找到具有特定功能的芯片,然后又要能在該芯片內(nèi)找到想要訪問的單元。因此,對于單片機外部的設(shè)備,單片機要想對其讀/寫就必須要定義該外部設(shè)備的地址,這個地址就包括了外部地址和內(nèi)部地址的組合稱為一個單片機可以限制訪問的單元地址。即使芯片稱為單片機系統(tǒng)中的一部分了。而對于芯片本身而言的,內(nèi)部寄存器地址是不變的,如8155中吩咐寄存器地址為*****000B。而如何形成單片機可以訪問的地址呢?首先要明白單片機的地址線構(gòu)成方式,對于51單片機,一般是P0口為8位地址,假如須要十六位,則p2口則供應(yīng)高8位地址。訪問外部芯片就須要由單片機供應(yīng)能夠訪問到芯片內(nèi)部的一個完整地址。記住的是訪問內(nèi)部所需的地址信號是從固定位置輸入的,因此具體芯片的地址是多少是由硬件連線確定的。關(guān)鍵是看單片機是以什么方式供應(yīng)的信號,是只8位還是16位,是僅有p1口還是P1P2口分別供應(yīng)地址信號的[3]。
通常P1口供應(yīng)內(nèi)部選擇信號,P2供應(yīng)外部選擇信號,兩者結(jié)合形成該芯片的地址了。其余信號按狀況可以定位1或者0。由于主控芯片為8051,IO口較少,故選用8155進行IO口擴展。8155可擴展PA口(8位)、PB口(8位)、PC口(6位)。可以使系統(tǒng)的擴展實力大大加強[9]。3.3電路設(shè)計倒計時7段數(shù)碼管電路設(shè)計圖倒計時電路交通燈電路設(shè)計圖交通燈電路圖 3.蜂鳴器電路圖蜂鳴器電路 4.霍爾元件檢測電路圖霍爾元件檢測電路四、軟件系統(tǒng)設(shè)計與實現(xiàn)4.1系統(tǒng)軟件設(shè)計結(jié)構(gòu)本系統(tǒng)軟件在單片機最小系統(tǒng)的基礎(chǔ)上進行開發(fā),并采納8051C語言編程實現(xiàn)??紤]到系統(tǒng)邏輯的困難性,全部系統(tǒng)要求的功能都設(shè)計成子模塊的形式,以保證邏輯的正確性與系統(tǒng)維護的便利性。在系統(tǒng)軟件中,共采納了INT0,INT1,T0,T1四種中斷方式,其中Int0中斷用于鍵盤限制,Int1中斷用于限制特種車輛運行模式,T0用于秒時鐘定時,T1用于盲道指示(蜂鳴器頻率)限制。此外,系統(tǒng)設(shè)置了多種運行標(biāo)記,用于限制系統(tǒng)運行狀態(tài)[2]。系統(tǒng)軟件結(jié)構(gòu)體如下:圖4.1.1系統(tǒng)軟件結(jié)構(gòu)體框圖4.2子模塊設(shè)計結(jié)構(gòu)4.2.1主循環(huán)模塊圖4.2.1主循環(huán)模塊流程圖4.2.2正常運行模塊圖4.2.2正常運行模塊流程圖4.2.3非正常運行模塊圖4.2.3非正常運行模塊4.2.4Int0中斷模塊[7]圖4.2.4INT0中斷模塊流程圖4.2.5T0中斷模塊圖4.2.5T0中斷模塊流程4.2.6Int1中斷模塊圖4.2.6INT1中斷模塊流程圖4.2.7T1中斷模塊圖4.2.7T1中斷模塊流程圖五、系統(tǒng)測試5.1測試儀器與設(shè)備此次設(shè)計所用到及進行指標(biāo)測試的儀器主要如下,見表5.1:表5.1、儀器列表序列儀器名稱型號數(shù)量1示波器XJ432820MHz12高精度七路直流穩(wěn)壓電源DF1733-7220V/50Hz13數(shù)字萬用表MS8200G15.2系統(tǒng)測試方案5.2.1發(fā)送指定限制字 步驟一:8155PA口全部置低電平,PB口全部置高電平,假如全部紅燈暗,而綠燈皆亮,通過初步測試;步驟二:依次置PA口其中一位低電平,其余高電平,置PB為PA狀態(tài)反相,假如對應(yīng)紅綠燈為一亮一暗關(guān)系,則通過測試;步驟三:置PC3口為高電平,假如蜂鳴器持續(xù)鳴響;置PC3口為低電平,假如蜂鳴器停止鳴響,說明蜂鳴器限制正常;5.2.2基本功能邏輯狀態(tài)檢驗 按設(shè)計的時序邏輯運行系統(tǒng),檢測對應(yīng)邏輯狀態(tài)是否吻合。 時序邏輯表如表所示:表時序邏輯表PAPBTime(s)說明Step10x7d0x820~10南北直行Step20x590xa610~50南北直行,各路右行Step3(fresh)0x590xa6~0x0050~60通行結(jié)束前10sStep40x9b0x6460~110南北左行,各路右行Step5(fresh)0x9b0x64~0x00110~120通行結(jié)束前10sStep60xee0x11120~130東西直行Step70xca0x35130~170東西直行,各路右行Step8(fresh)0xca0x35~0x00170~180通行結(jié)束前10sStep90xd30x2c180~230東西左行,各路右行Step10(fresh)0xd30x2c~0x00230~240通行結(jié)束前10sError0xfc0x03車輛禁行,行人通行Special0xff0x00全部通行禁止5.2.3附加功能邏輯狀態(tài)檢驗1、手動限制運行測試:第一次按0號鍵進入手控運行狀態(tài),之后按1~6號鍵將產(chǎn)生對應(yīng)step1,step2,step4,step6,step7,step9的邏輯狀態(tài); 2、特種車輛通過測試(霍爾元件替代):用磁鋼放置在霍爾元件上方時,系統(tǒng)進入Special對應(yīng)的邏輯狀態(tài),且起先倒計時15秒,之后系統(tǒng)復(fù)原原來的狀態(tài)接著運行。5.3系統(tǒng)測試結(jié)果5.3.1發(fā)送指定限制字測試結(jié)果 步驟一:通過測試 步驟二:通過測試 步驟三:通過測試5.3.2基本功能邏輯狀態(tài)檢驗測試結(jié)果 時序邏輯滿意要求,但須要調(diào)整紅綠燈亮度,實現(xiàn)亮度的一樣。5.3.3附加功能邏輯狀態(tài)檢驗測試結(jié)果 鍵盤限制單步運行正常,復(fù)原原來狀態(tài)正常; 霍爾元件中斷運行正常,但復(fù)原原來狀態(tài)有時不穩(wěn)定。六、結(jié)束語 本系統(tǒng)以單片機AT89S52芯片為核心,通過計數(shù)器、譯碼器、鎖存器等簡潔數(shù)字芯片實現(xiàn)了紅綠燈限制和倒計時顯示功能。在設(shè)計中力求將間潔的電路設(shè)計和敏捷的軟件編程相結(jié)合,以此來完成各項要求。其中很多地方還存在肯定的缺陷,可以進一步改進,如倒計時顯示易受干擾、倒計時與紅綠燈時序有時會簡潔不同步。在此次設(shè)計過程中,遇到了很多問題和困難,最終通過細致分析后均已比較勝利地加以解決,基本達到了各項要求。附錄A:系統(tǒng)元器件清單 中心限制系統(tǒng)元件清單,如表附錄1.1:序列型號數(shù)量備注1、ATC89521單片機,本系統(tǒng)核心2、M81C551擴展I/O口3、HD7279A1實現(xiàn)單片機與鍵盤和數(shù)碼管之間的通訊4、LSD574RFF1*8共陰八段數(shù)碼管,顯示物體所在位置5、SN74CH5732鎖存器6、SN74CH14N2施密特觸發(fā)反響器7、SN74CH2442三態(tài)緩沖器表附錄1.1、中心限制系統(tǒng)元件清單 倒計時電路系統(tǒng)元件清單,如表附錄1.2:序列型號數(shù)量備注174HC1922十進制計數(shù)器274HC482BCD-7段數(shù)碼管譯碼器374HC2442三態(tài)緩沖器4LSD574RFF1*8共陰八段數(shù)碼管,顯示倒計時表附錄1.2、倒計時電路系統(tǒng)元件清單 霍爾元件電路系統(tǒng)元件清單,如表附錄1.3:序列型號數(shù)量備注131442霍爾傳感器表附錄1.3、霍爾元件電路系統(tǒng)元件清單 紅綠燈元件電路系統(tǒng)元件清單,如表附錄1.4:序列型號數(shù)量備注174HC5732鎖存器2發(fā)光二極管若干模擬紅綠燈表附錄1.4、紅綠燈元件電路系統(tǒng)元件清單附錄B系統(tǒng)運用文檔系統(tǒng)正常狀況下自動運行,假如要手動限制系統(tǒng)運行,須要在自動運行狀態(tài)下按下“0”按鍵“1”:限制南北直行按鍵“2”:限制南北直行,各路右行按鍵“3”:南北左行,各路右行按鍵“4”:限制東西直行按鍵“5”:限制東西直行,各路右行按鍵“6”:限制東西左行,各路右行假如在手控狀態(tài)下再次按“0”附錄C程序清單#include<reg51.h>#include<absacc.h>//******地址定義******#defineHC573XBYTE[0x3FFF]#definePCMDXBYTE[0x0100]#definePAXBYTE[0x0101]#definePBXBYTE[0x0102]#definePCXBYTE[0x0103]#defineCMD0x0F//PA,PB,PC均為輸出模式#defineNSTEPA0x01#defineNSTEPB0x02#defineNSTEPC0x03#defineESTEPA0x04#defineESTEPB0x05#defineESTEPC0x06#defineHAND0x07#defineSPECIAL0x08#defineFRESH0x09#defineSTOPNUM0x10#defineNOPNUM0x11#defineRING0xff#defineRINGON0x08#defineRINGOFF0xf7#defineLEDRESET0xfe#defineLEDSTART0x01typedefunsignedcharByte;typedefunsignedintInteger;sbitclk=P1^1; //clk連接于P1.1sbitdat=P1^2; //dat連接于P1.2sbitkey=P1^3; //key連接于P1.3sbitcs=P1^4; //csatP1.4//***函數(shù)定義***voidlong_delay(void);//長延時,50usvoidshort_delay(void);//短暫延時,30usvoidsend_byte(Byte); //發(fā)送一個字節(jié)Bytereceive_byte(void);voidwrite7279(Byte,Byte); //寫入到HD7279Byteread7279(Byte);voidmain_loop(void);//紅綠燈主循環(huán)voidsystem_restore(void);Byteget_scount(Byte);voidled_reset(void);voidring(void);Byteisnormal=1;Byteisinterrupt=0;Byteislight=1;Byteisring=0;Byteispulse=1;Bytetcount=0;Byteori_tcount=0;Bytebcount=0;Byteint1_count=0;Bytestep=NSTEPA;Byteori_step=NOPNUM;Bytekey_number=0;Bytepc_number=1;//Bytecounter=0;Integerscount=0;Integerori_scount=0;//***主程序***main(){ Integeri; for(i=0;i<0x2000;i++); send_byte(0xa4); PCMD=CMD; PC=0x01; led_reset(); TMOD=0x21; TH1=0x00; TL1=0x00; TR1=1; TH0=0x4c; TL0=0x00; TR0=1; EA=1; ET0=1; ET1=1; EX0=1; EX1=1; while(1){ if(!isinterrupt){ //正常運行狀況 if(isnormal){ main_loop(); } //異樣運行 else{ if(step==HAND){ if(scount==STOPNUM){//假如進入手動限制狀態(tài),先進入緊急狀況 step=NOPNUM; PCMD=CMD; PA=0xfc; PB=0x03; } } elseif(step!=SPECIAL){ main_loop(); step=NOPNUM; } } } else{ isinterrupt=0; if(key_number<0x07){ if(isnormal){ if(key_number==0x00){ isnormal=0; ori_step=step; ori_scount=scount; ori_tcount=tcount; step=HAND; scount=STOPNUM; write7279(0xcf,key_number); } } elseif(step!=SPECIAL){ write7279(0xcf,key_number); switch(key_number){ case0x00: system_restore(); break; case0x01: step=NSTEPA; scount=0; break; case0x02: step=NSTEPB; scount=20; break; case0x03: step=NSTEPC; scount=120; break; case0x04: step=ESTEPA; scount=240; break; case0x05: step=ESTEPB; scount=260; break; case0x06: step=ESTEPC; scount=360; break; default: break; } } } } }}//INT0中斷,用于鍵盤中斷處理voidint0_inter()interrupt0{ isinterrupt=1; key_number=read7279(0x15); while(!key);}//T0中斷,用于0.5s計時器voidt0_inter()interrupt1{ Bytetemp; TH0=0x4c; TL0=0x00; tcount++; //500ms計時完成 if(tcount==10){ tcount=0; if(isnormal){ temp=59-(scount%120)/2; write7279(0xc9,temp/10); write7279(0xc8,temp%10); scount++; switch(scount){ case20: step=NSTEPB; break; case120: led_reset(); step=NSTEPC; break; case240: led_reset(); step=ESTEPA; break; case260: step=ESTEPB; break; case360: led_reset(); step=ESTEPC; break; case480: led_reset(); step=NSTEPA; scount=0; break; case100: case220: case340: case460: step=FRESH; break; default: break; } if(step==FRESH){ PCMD=CMD; if(scount<120){ if(islight){ islight=0; PB=0x00; } else{ islight=1; PB=0xa6; } } elseif(scount<240){ if(islight){ islight=0; PB=0x00; } else{ islight=1; PB=0x64; } } elseif(scount<360){ if(islight){ islight=0; PB=0x00; } else{ islight=1; PB=0x35; } } elseif(scount<480){ if(islight){ islight=0; PB=0x00; } else{ islight=1; PB=0x2c; } } } if(ispulse){ HC573=0; ispulse=0; } else{ HC573=1; ispulse=1; } } elseif(step==SPECIAL){ scount++; if(scount==30){ system_restore(); } else{ temp=(31-scount)/2; write7279(0xcf,temp/10); write7279(0xce,temp%10); } } }}voidint1_inter()interrupt2{ if(isnormal){ if(!int1_count){ int1_count=1; } else{ ori_step=step; ori_scount=scount; ori_tcount=tcount; step=SPECIAL; scount=0; isnormal=0; PCMD=CMD; PA=0xff; PB=0x00; write7279(0xcf,0x01); write7279(0xce,0x05); } }}voidt1_inter()interrupt3{ if(step==SPECIAL){ if(bcount!=RING){ bcount=RING; pc_number=pc_number|RINGON; PC=pc_number; isring=1; } } elseif(step==NSTEPA||step==NSTEPB){ if(bcount>100){ bcount=0; } bcount++; if(bcount==100){ bcount=0; ring(); } } elseif(step==ESTEPA||step==ESTEPB){ if(bcount>150){ bcount=0; } bcount++; if(bcount==150){ bcount=0; ring(); } } elseif(step==FRESH){ if(bcount>50){ bcount=0; } bcount++; if(bcount==50){ bcount=0; if(scount<120||(scount>340&&scount<360)){ ring(); } } } elseif(bcount){ bcount=0; pc_number=pc_number&RINGOFF; PC=pc_number; isring=0; }}voidmain_loop(void){ PCMD=CMD; if(step==NSTEPA&&scount==0){ PA=0x7d; PB=0x82; } elseif(step==NSTEPB&&scount==20){ PA=0x59; PB=0xa6; } elseif(step==NSTEPC&&scount==120){ PA=0x9b; PB=0x64; } elseif(step==ESTEPA&&scount==240){ PA=0xee; PB=0x11; } elseif(step==ESTEPB&&scount==260){ PA=0xca; PB=0x35; } elseif(step==ESTEPC&&scount==360){ PA=0xd3; PB=0x2c; }}voidsystem_restore(void){ step=ori_step; scount=get_scount(ori_step); main_loop(); scount=ori_scount; tcount=ori_tcount; send_byte(0xa4); isnormal=1;}Byteget_scount(Bytestep){ switch(step){ caseNSTEPA: return0; caseNSTEPB: return20; caseNSTEPC: return120; caseESTEPA: return240; caseESTEPB: return260; caseESTEPC: return360; default: return0; }}voidled_reset(void){ PCMD=CMD; pc_number=pc_number&LEDRESET; PC=pc_number; long_delay(); pc_number=pc_number|LEDSTART; PC=pc_number;}voidring(void){ if(isring){ pc_number=pc_number&RINGOFF; PC=pc_number; isring=0; } else{ pc_number=pc_number|RINGON; PC=pc_number; isring=1; }}voidwrite7279(Bytecmd,Bytedta){ send_byte(cmd); send_byte(dta);} Byteread7279(Bytecommand){ send_byte(command); return(receive_byte());}voidsend_byte(Byteout_byte){ Bytei; cs=0; long_delay(); for(i=0;i<8;i++){ if(out_byte&0x80){ dat=1; } else{ dat=0; } clk=1; short_delay(); clk=0; short_delay(); out_byte=out_byte*2; } dat=0;}Bytereceive_byte(void){ Bytei,in_byte; dat=1; //settoinputmode long_delay(); for(i=0;i<8;i++){ clk=1; short_delay(); in_byte=in_byte*2; if(dat){ in_byte=in_byte|0x01; } clk=0; short_delay(); } dat=0; return(in_byte);}voidlong_delay(void){ Bytei; for(i=0;i<0x30;i++);}voidshort_delay(void){ Bytei; for(i=0;i<8;i++);}基于AT89C52的微限制器的固體電導(dǎo)率測量摘要電導(dǎo)率測量裝置已經(jīng)發(fā)展到用微型限制器來求得電解固體的電導(dǎo)率。該電導(dǎo)率的求取是通過改進型交變電流惠更斯電橋網(wǎng)絡(luò)來實現(xiàn)電解溶液的電導(dǎo)率測量德。該儀器系統(tǒng)允許記錄下電導(dǎo)性和溫度的數(shù)值并且把數(shù)據(jù)發(fā)送到電子計算機以便讓電子計算機處理從而完成整個過程。一個專用的8位微型限制器AT89C55WD以及它相匹配的外部設(shè)備共同組成了測量的硬件設(shè)施。這篇文章具體介紹了如何測量電導(dǎo)率和溫度以及如何限制溫度和怎樣計算得出結(jié)果。關(guān)鍵詞:電導(dǎo)率測量;溫度測量;微限制器———————————————————————————————————————————1.引言由于單位成本的削減和工作性能的上升使得在運用儀器和測量工藝的技術(shù)應(yīng)用上越來越多的用到單片機這個微型限制器。這個改進了的系統(tǒng)能夠用于補償、標(biāo)度和線性化技術(shù),也可以實現(xiàn)微型限制器在系統(tǒng)限制以及數(shù)據(jù)需求和處理方面的應(yīng)用。這套基于微型限制器的高級系統(tǒng)的特點是體積小、可編程、簡潔、牢靠性強和制作成本低。整塊電路可以由一塊單一電路板制作而成,這樣在電路運行過程中就能削減噪音干擾。這篇文章系統(tǒng)陳述了充分運用微型限制器等工具的優(yōu)勢來探討電解溶液的電導(dǎo)性以及求取溶液電導(dǎo)率的數(shù)值。而電導(dǎo)性正好是用于分析目的的電解溶液的重要特性。溶液的導(dǎo)電系數(shù)跟電解液的濃度、電解液的本身自然特性、當(dāng)前離子的運動速率和溫度等因素休戚相關(guān)。探討發(fā)覺,溫度每上升一攝氏度,電解溶液的導(dǎo)電系數(shù)就會上升二到三個百分點。一個好的傳導(dǎo)性測量儀器系統(tǒng)應(yīng)當(dāng)具有實時測量的實力,能夠精確計算出快速變更著的電解溶液阻值的實力。實時的傳導(dǎo)性和溫度測量的潛在應(yīng)用在我們生活中應(yīng)用的例子舉不勝舉,比如在估算水的硬度;在種植的花草樹木疾病的廣度的測量;在土壤探討;在糖和紙的制作加工;在溶液的整桶染色等等各個方面。最為精確的測量未知阻值的方法是惠斯登電橋法,其精確性主要有組成該電橋的多個因素確定。據(jù)報道,一個改良的以電路平衡技術(shù)為基礎(chǔ)的惠斯登溝通網(wǎng)絡(luò)電橋已經(jīng)在測量方面取得了較高的精確性。在現(xiàn)在的工作中,基于改良型惠斯登電橋網(wǎng)絡(luò)的操作放大器已經(jīng)應(yīng)用于溶液的電導(dǎo)率測量。一種基于微型限制器的電導(dǎo)率測量的裝置已經(jīng)應(yīng)用于測量電導(dǎo)率和阻值隨時間快速變更的溶液的溫度。該圖顯示了電導(dǎo)率測量裝置的模塊組圖。改良型惠斯登電橋網(wǎng)絡(luò)在模塊A里面,有一個鉑電池為溝通惠斯登電橋網(wǎng)絡(luò)供應(yīng)電源,這個鉑電池有一個固定參數(shù),這個參數(shù)是1.0cm-1。傳導(dǎo)單元模塊浸在大口徑燒杯的溶液里面。由于電解溶液的電導(dǎo)率發(fā)生的變更,導(dǎo)致了改良型惠斯登電橋電路失去平衡,電路失去平衡的狀態(tài)表現(xiàn)在輸出電壓的變更上。從電橋網(wǎng)絡(luò)輸出的電壓的精度將在模塊B的精度校正器中得到調(diào)整。模塊D是K型鎳鎘熱電偶,作為溫度傳感器,用來檢測溶液中的溫度。模塊E是一個測量放大器,該測量放大器能夠放大來自熱電偶的熱電勢。2.模塊C是多路復(fù)用器(IC4051),它是用于選擇傳導(dǎo)性和溫度,多路復(fù)用器的輸出是作為數(shù)字信號輸入模塊F(IC7109)。7109是一個模擬信號轉(zhuǎn)換成數(shù)字信號的元器件,簡稱模數(shù)轉(zhuǎn)換器。該轉(zhuǎn)換器是一個低能量集合裝置,它能為運用者供應(yīng)高精確性、低噪音、低零漂、是具有性能高又經(jīng)濟宜用兩重屬性結(jié)合成的12位的志向數(shù)模轉(zhuǎn)換裝置,其運行時能達到每分鐘30轉(zhuǎn),能快速地把電導(dǎo)率和溫度的模擬信號轉(zhuǎn)化成數(shù)字信號。模塊H是Atmel公司生產(chǎn)的一個微限制器AT89C55WD。AT89C55WD是一個低電壓,高性能8位互補金屬氧化物半導(dǎo)體微型限制器。AT89C55WD有20KB的可編程和可擦寫內(nèi)存以及256字節(jié)的隨機存儲器容量。該微限制器有四個并行接口,三個16位定時器和計數(shù)器,八個中斷源,一個可編程串行接口,低功耗空閑和掉電模式,三級加密程序存儲器。P1和P2口作為輸入端口,而
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年籃球裁判員的社會適應(yīng)能力試題及答案
- 《商業(yè)綜合體典范》課件
- 足球裁判員在教育青少年球員中的重要性試題及答案
- 體育經(jīng)紀(jì)人與運動品牌的合作模式試題及答案
- 無障礙溝通的足球裁判員試題與答案
- 2024年農(nóng)田病蟲害防治知識試題及答案
- 優(yōu)化復(fù)習(xí)策略迎戰(zhàn)2024年體育經(jīng)紀(jì)人考試試題及答案
- 種子繁育員職業(yè)潛力試題及答案
- 少數(shù)民族骨干計劃就業(yè)協(xié)議書(2篇)
- 裁判員考試知識更新匯編試題及答案
- DB35∕T 2174-2024 改良酸性土壤專用有機肥料通 用技術(shù)要求
- 北師大版數(shù)學(xué)五年級下冊《確定位置》課件教學(xué)課件
- 遼寧葫蘆島協(xié)作校2025屆高三第二次聯(lián)考生物試卷含解析
- NB-T32042-2018光伏發(fā)電工程建設(shè)監(jiān)理規(guī)范
- 2024年紀(jì)檢監(jiān)察綜合業(yè)務(wù)知識考試題庫及參考答案(完整版)
- DL-T5181-2017水電水利工程錨噴支護施工規(guī)范
- LY∕T 2580-2016 森林防火通信車通.用技術(shù)要求
- 醫(yī)院專項資金使用方案
- GB/T 43741-2024網(wǎng)絡(luò)安全技術(shù)網(wǎng)絡(luò)安全眾測服務(wù)要求
- JT-T-1003.1-2015城市軌道交通列車駕駛員技能和素質(zhì)要求第1部分:地鐵輕軌和單軌
- 接觸網(wǎng)搶修支柱組立及補償繩更換教案文檔
評論
0/150
提交評論