




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告湖北經(jīng)濟學(xué)院信息工程學(xué)院電子線路綜合設(shè)計報告課題名稱:模擬路燈控制系統(tǒng)任課教師: 張淑玲學(xué)生班級: 電嵌Q1241學(xué)生姓名: 李玲麗學(xué)號: 12160033同組學(xué)生: 詹才珮2015年4月1/54摘TOC\o"1-5"\h\z要 1D一、 系統(tǒng)設(shè)計 2(一) 設(shè)計任務(wù)和要求 2(二) 總體設(shè)計方案 41、 功能分解及設(shè)計思路 42、 系統(tǒng)各模塊的方案 4\o"CurrentDocument"二、 單元電路設(shè)計 6(一) 單片機最小系統(tǒng) 6(二) 路燈電路 6(三) 亮度檢測電路 7(四) 交通狀況檢測電路 8(五) 報警電路 9\o"CurrentDocument"三、 軟件設(shè)計 10(一) 系統(tǒng)主流程圖 10(二) 系統(tǒng)子流程圖 111、 手動開關(guān)燈流程圖 112、 定時開關(guān)燈電路流程圖 123、 根據(jù)環(huán)境明暗開關(guān)燈流程圖 134、 根據(jù)交通狀況開關(guān)燈流程圖 145、 路燈檢測流程圖 15\o"CurrentDocument"四、 仿真系統(tǒng)測試 15(一) 按鍵操作說明 15(二) 手動開關(guān)燈功能測試 16(三) 定時開關(guān)燈功能測試 17(四) 環(huán)境明暗開關(guān)燈功能測試 17(五) 交通狀況開關(guān)燈功能測試 18(六) 路燈檢測功能測試 22五、硬件模塊測試 22TOC\o"1-5"\h\z(一) 環(huán)境明暗開關(guān)燈模塊測試 23(二) 交通狀況開關(guān)燈模塊測試 23(三) 報警電路模塊功能測試 23\o"CurrentDocument"六、 總結(jié) 23\o"CurrentDocument"七、 參 考 文獻 24\o"CurrentDocument"八、附錄 24附錄1程序代碼 24模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)摘要以AT89C51單片機為控制核心,結(jié)合LCD1602、DS1302、光敏電阻、4*4鍵盤以及晶振和蜂鳴器等器件,設(shè)計出了這個模擬路燈控制系統(tǒng)。實現(xiàn)的主要功能有:能通過按鍵進行手動的開燈和關(guān)燈;能實時顯示時間并按設(shè)定開燈、關(guān)燈時間;根據(jù)環(huán)境明暗變化,能自動開燈和關(guān)燈;根據(jù)交通情況自動調(diào)節(jié)燈亮狀態(tài)。能分別獨立控制每只路燈的開關(guān)時間;能檢測故障,檢測到故障會進行聲光報警,并顯示出故障路燈的地址編碼。系統(tǒng)設(shè)計包含以下幾個基本模塊:控制模塊、信息顯示模塊、鍵盤模塊、路燈模塊、位置探測模塊、光亮度檢測模塊。關(guān)鍵字:AT89C51、LCD1602、DS1302、報警電路、路燈檢測、位置探測、光亮度檢測一、系統(tǒng)設(shè)計(一)設(shè)計任務(wù)和要求1、任務(wù)設(shè)計并制作一套模擬路燈控制系統(tǒng)??刂葡到y(tǒng)結(jié)構(gòu)如圖1所示,路燈布置如圖2所示。LED燈1LED燈LED燈1LED燈2圖1路燈控制系統(tǒng)示意圖圖2路燈布置示意圖(單位:cm)2、要求(1) 支路控制器有手動開關(guān)燈的功能,能控制整條支路或單獨路燈燈1和燈2的開燈和關(guān)燈。(2) 支路控制器有時鐘功能,能設(shè)定、顯示開關(guān)燈時間,并控制整條支路按時開燈和關(guān)燈。(3) 支路控制器應(yīng)能根據(jù)環(huán)境明暗變化,自動開燈和關(guān)燈。(4) 支路控制器應(yīng)能根據(jù)交通情況自動調(diào)節(jié)亮燈狀態(tài):當(dāng)可移動物體M(在物體前端標(biāo)出定位點,由定位點確定物體位置)由左至右到達S點時(見圖2),燈1亮;當(dāng)物體M到達B點時,燈1滅,燈2亮;若物體M由右至左移動時,則亮燈次序與上相反。(5) 支路控制器能分別獨立控制每只路燈的開燈和關(guān)燈時間。(6) 當(dāng)路燈出現(xiàn)故障時(燈不亮),支路控制器應(yīng)發(fā)出聲光報警信號,并顯示有故障路燈的地址編號。3、說明(1) 光源采用1W的LED燈,LED的類型不作限定。(2) 系統(tǒng)中不得采用接觸式傳感器。(3) 需測定可移動物體M上定位點與過“亮燈狀態(tài)變換點”(S、B、S'等點)垂線間的距離,要求該距離W2cm。模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告(一)總體設(shè)計方案1、功能分解及設(shè)計思路根據(jù)設(shè)計的基本要求,系統(tǒng)實現(xiàn)的主要功能有:能通過按鍵進行手動的開燈和關(guān)燈;能實時顯示時間并按設(shè)定開燈、關(guān)燈時間;根據(jù)環(huán)境明暗變化,能自動開燈和關(guān)燈;根據(jù)交通情況自動調(diào)節(jié)燈亮狀態(tài)。能分別獨立控制每只路燈的開關(guān)時間;能檢測故障,檢測到故障會進行聲光報警,并顯示出故障路燈的地址編碼。系統(tǒng)設(shè)計包含以下幾個基本模塊:控制模塊、信息顯示模塊、鍵盤模塊、路燈模塊、位置探測模塊、光亮度檢測模塊??偟南到y(tǒng)框圖如圖3所示。圖3總系統(tǒng)框圖示意圖2、系統(tǒng)各模塊的方案(1)、控制模塊控制器采用51系列單片機,51系統(tǒng)單片機是一種最常用的單片機,其最大的特點是系統(tǒng)結(jié)構(gòu)合理、技術(shù)成熟、成本低、容易學(xué)習(xí),方便用軟件編程實現(xiàn)各種算法與邏輯控制,廣泛應(yīng)用于各種控制領(lǐng)域。單片機系統(tǒng)實現(xiàn)的主要功能有,完成數(shù)字及控制信號的輸入、數(shù)據(jù)及工作狀態(tài)的顯示以及路燈電路的的驅(qū)動與控制。、顯示模塊顯示模塊用來實現(xiàn)交互菜單、提示信息、時間、系統(tǒng)工作狀態(tài)等信息的顯示。顯示器件可選用字符型液晶器LCD1602,LCD1602顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。該顯示器能基本滿足本系統(tǒng)顯示的需要。、鍵盤模塊根據(jù)系統(tǒng)的設(shè)計要求,鍵盤要能輸入0-9共10數(shù)碼、確認(rèn)、退出等信號,所以用4*4矩陣鍵盤。、路燈模塊51單片機I/O口為集電極上拉輸出方式,高電平輸出電流等于上拉電阻的電流,這個電流比較小,低電平輸出是內(nèi)部晶體管吸收的電流,最大可以達到10mA,但是整個端口的總電流不能超過24mA。所以,51單片機I/O口用來驅(qū)動普通小功率的沒有問題。因本系統(tǒng)中采用的是1W的LED燈,1W的LED燈需要200mA的電流才能工作,故不能用直接用I/O口來驅(qū)動它工作。本方案采用大功率的MOS驅(qū)動1WLED燈工作。、位置探測模塊采用ST188紅外對射傳感器感測是否有物體通過,當(dāng)沒有物體通過時ce截止,單片機采到的電壓值為低電平;當(dāng)有物體經(jīng)過時be導(dǎo)通,電源電壓加到E端,單片機采到的電壓值為高電平。ST188的內(nèi)部結(jié)構(gòu)圖如圖4,K端接510Q電阻,E端接20K電阻,A和C端接+5V的電壓。圖4ST188內(nèi)部結(jié)構(gòu)圖
、光見度檢測模塊。光敏電阻隨著光線變強電阻值會變小,光線變?nèi)踝柚禃兇?。根?jù)光敏電阻的工作特性,按照路燈實際工作情況,可以設(shè)定一個閾值亮度,當(dāng)環(huán)境亮度低于這個亮度時,使電壓比較器輸出高電平,單片機采集到高電平后開燈,反之,單片機采集到的低電平后關(guān)燈。二、單元電路設(shè)計(一)單片機最小系統(tǒng)根據(jù)設(shè)計要求,控制系統(tǒng)要通過良好的人機交換界面完成系統(tǒng)的所有控制功能。微控制器選用89S51(52)單片機,鍵盤選用4*4鍵盤,顯示器選用16*2的液晶顯示器LCD1602。單片機小系統(tǒng)PROTEUS中的仿真原理圖5如下:EdBS^GEdLCD1F2二貝JHP2JIA"F2WF7JAHP2JI貝JLI'iiiq-llw;Jl-nRnEFDE嵩『冋EdBS^GEdLCD1F2二貝JHP2JIA"F2WF7JAHP2JI貝JLI'iiiq-llw;Jl-nRnEFDE嵩『冋圖5單片機小系統(tǒng)仿真原理圖(二)路燈電路51單片機I/O口為集電極上拉輸出方式,高電平輸出電流等于上拉電阻的電流,這個電流比較小,低電平輸出是內(nèi)部晶體管吸收的電流,最大可以達到10mA,但是整個端口的總電流不能超過24mA。所以,51單片機I/O口用來驅(qū)動模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告普通小功率的沒有問題。因本系統(tǒng)中采用的是1W的LED燈,1W的LED燈需要200mA的電流才能工作,故不能用直接用I/O口來驅(qū)動它工作。本方案采用大功率的MOS驅(qū)動1WLED燈工作。具體電路圖6,其工作原理為,N溝道增強型場效應(yīng)管Q1和Q2分別接POW和POM口,當(dāng)POW和POM輸出高電平時,場效應(yīng)用Q1和Q2導(dǎo)通,LED燈D1和D2開燈,反之,LED燈D1和D2關(guān)燈。圖6路燈電路圖(三)亮度檢測電路光敏電阻的阻值隨光照強度的增大而減小,所以可用光敏電阻檢測環(huán)境的明暗,從而實現(xiàn)根據(jù)環(huán)境明暗變化,自動開燈和關(guān)燈。所設(shè)計的環(huán)境明暗檢測電路如下圖所示,電路中電位器RV1對電源分壓后給電壓比較器同相端提供一個基準(zhǔn)電壓。電壓比較器反相端的電壓由光敏電阻決定,當(dāng)光照強度增大時,光敏電阻阻值減小,反相端電壓升高,當(dāng)光照強度達到一定值時,反相端電壓大于同相端電壓,電壓比較器輸出低電平,經(jīng)過反相器U4:A后輸出高電平,來實現(xiàn)控制開燈和關(guān)燈。(注:在PROTEUS仿真時,如把電壓比較器直接連接到單片機,單片機不能區(qū)分其電平,在其后增加了一個反相器則可以。)4IJ4'AHV.oo34IJ4'AHV.oo3JXIEH?2X1k寸UTE沖Tn圖7亮度檢測電路圖I1R口-rtvT-41>2hj(四)交通狀況檢測電路采用ST188紅外對射傳感器感測是否有物體通過,當(dāng)沒有物體通過時ce截止,單片機采到的電壓值為低電平;當(dāng)有物體經(jīng)過時be導(dǎo)通,電源電壓加到E端,單片機采到的電壓值為高電平。ST188的內(nèi)部結(jié)構(gòu)圖如下圖,K端接510Q電阻,E端接20K電阻,A和C端接+5V的電壓。圖8ST188內(nèi)部結(jié)構(gòu)圖當(dāng)有車輛或人經(jīng)過時,ST188紅外對射傳感器被擋光,如下圖電路按收三級管截止,輸出為低電平,反之輸出為高電平。電路中Rl=510Q,R2=20KQo圖9ST188內(nèi)部連接圖圖9ST188內(nèi)部連接圖在PROTEUS仿真電路中,因沒有紅外對射傳感器,可以用如下電路模擬紅外對射傳感器的功能。圖10交通狀況檢測電路圖(五)報警電路報警電路如下圖所示,當(dāng)BUZ=O時,電路不報警,當(dāng)BUZ有脈沖信號時,蜂鳴器就會發(fā)出間斷的聲音,LED就會閃爍。圖11報警電路圖模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告三、軟件設(shè)計(一)系統(tǒng)主流程圖開始Num=1Num=2Num=3NNum-4NNum=5YYYYYNNNA調(diào)用定時開關(guān)燈函-*數(shù)dskgd(>調(diào)用手動開關(guān)燈函 丄.數(shù)sdkgd()姓調(diào)用路燈檢測函數(shù)ldjc()>調(diào)用根據(jù)交通情況開關(guān)燈函數(shù)jtkgd()*調(diào)用根據(jù)環(huán)境明暗內(nèi)開關(guān)燈函數(shù)hjkgd()調(diào)用鍵盤掃描程序取鍵值num路燈初始化調(diào)用主菜單顯示函數(shù)顯示主菜單模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告YY模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告(二)系統(tǒng)子流程圖1、手動開關(guān)燈流程圖開始Num=1?Num=2?Num=5?Num=15?YYY調(diào)用鍵盤掃描程序取鍵值numNNYNN跳出循環(huán)返回主菜單進入路燈檢測模塊f路燈初始化顯示本級菜單P1.0=1,P1.1=1(亮燈)顯示器顯示工作狀態(tài)P1.0=0,P1.1=0(關(guān)燈)顯示器顯示工作狀態(tài)2、定時開關(guān)燈電路流程圖開始Num==11&&i>0控制變量i初始化顯示器初始化4^*讀取時間顯示輸入提示信息調(diào)用鍵盤掃描程序取鍵值num回退Num=1?i<=5?num>=0&&num<=9num>=0&&num<=9輸入時間數(shù)據(jù)
并存入數(shù)組把設(shè)置的時間寫入DS1302Num=5?進入路燈檢測
模塊Num=15?跳出循環(huán)
返回主菜單3、根據(jù)環(huán)境明暗開關(guān)燈流程圖開始NHj==0?Num=5?Num=15?YNNY進入路燈檢測模塊開燈,顯示路燈工作狀況路燈初始化菜單初始化;Y關(guān)燈,顯示路燈工作狀況鍵盤掃描跳出循環(huán)返回主菜單模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告4、根據(jù)交通狀況開關(guān)燈流程圖開始(sl==O)&(zj==l(s3==0)&(zj==ls2==0((s1==0)ll(s3==0))&(zj==0)Num=5?Num=15?yr進入路燈檢測模塊YNY燈1滅,燈2滅NNNYNYN路燈初始化菜單初始化Zj=0Y燈1亮,燈2滅跳出循環(huán)返回主菜單燈2亮,燈1滅鍵盤掃描模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告5、路燈檢測流程圖開始Ret1==1Led1flag==1Ret2==1Led2flag==1Ret1==0&&Ret1==0Num=15?NYYYNYNNYNNY鍵盤掃描路燈初始化菜單初始化顯示器顯示ld2損壞跳出循環(huán)返回主菜單顯示器顯示開始Ret1==1Led1flag==1Ret2==1Led2flag==1Ret1==0&&Ret1==0Num=15?NYYYNYNNYNNY鍵盤掃描路燈初始化菜單初始化顯示器顯示ld2損壞跳出循環(huán)返回主菜單顯示器顯示ld1損壞顯示器不顯示,即沒有損壞報警四、仿真系統(tǒng)測試(一)按鍵操作說明如下圖所示,鍵盤從最右邊開始,依次往下分別是0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;而對應(yīng)在顯示器上則分別顯示0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f.如下圖,當(dāng)按下1鍵時,進入手動開模式;當(dāng)按下2鍵時,進入定時開模式;當(dāng)按下3鍵時,進入環(huán)境開模式;當(dāng)按下4鍵時,進入交通開模式;當(dāng)按下5鍵時,進入檢測模式。圖12總仿真圖(二)手動開關(guān)燈功能測試UGD1LI-K-iM.-IT■:T--i.sdk釦由k3-hJ圖13- *日比京計返回主菜單員共繹禮哭白ma白我模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告(三)定時開關(guān)燈功能測試UUU1LI-M-iiU.圖14-1按鍵2,set-tin?!iinni111S31MSL?.n進入定時開模式圖14-4設(shè)置開燈時間圖14-2按鍵1,設(shè)置開關(guān)燈時間ii-ie-iM.-IF:■:T--圖14-3按鍵1,設(shè)置開燈時間settirie!on=loff=2wiLLS111SSI圖14-7設(shè)置完成之后確定,返回上一級菜單L:,**_**%■‘=]斗input!圖14-5按鍵2,設(shè)置關(guān)燈時間UUU1
LI-KllU.
-IT1;!-67-11-15F-seisr-ei韭-圖14-8再返回(四)環(huán)境明暗開關(guān)燈功能測試圖15-1按鍵3,進入環(huán)境開模式inruV:編-花9覺ell.白記非白白&圖14-6設(shè)置關(guān)燈時間UGD1LhifriM.卩■詞k釦曲k3.hJK4.JIk號.Wgk電貼W禮脂白m日駐白圖14-9返回主菜單S15-2通過調(diào)節(jié)滑動變阻器RV2的阻值來使光敏電阻變的更加敏感,從而使燈亮。圖15-3燈見了UCD1LFK-lMl.sdkZidsk5.hJ圖15-3燈見了UCD1LFK-lMl.sdkZidsk5.hJk4.JtkS.chgk圖15-4按鍵15,返回主菜單(五)交通狀況開關(guān)燈功能測試fi-Lljl.IZ.I圖16-1按鍵4,進入交通開模式模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告圖圖16-3當(dāng)放開si端口上的開關(guān),按下s2端口上的開關(guān)時,燈2亮,燈1滅。模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告圖圖16-3當(dāng)放開si端口上的開關(guān),按下s2端口上的開關(guān)時,燈2亮,燈1滅。圖16-2當(dāng)按下si端口上的開關(guān)時,燈1亮,燈2不亮。模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告圖圖16-5反方向也是如此。當(dāng)按下s3端口上的開關(guān)時,燈2亮,燈1不亮。模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告圖圖16-5反方向也是如此。當(dāng)按下s3端口上的開關(guān)時,燈2亮,燈1不亮。模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告圖16-6當(dāng)放開s3端口上的開關(guān),按下s2端口上的開關(guān)時,燈1亮,燈2滅圖16-7當(dāng)放開s3,s2端口上的開關(guān),按下si端口上的開關(guān)時,兩燈都不亮。圖16-8按鍵15,返回主菜單(六)路燈檢測功能測試±|HnnnmiH■Inumg?Hg?K!rUAMg*^unraPUfTTln^ni戒試wpIS*itMn?LU_n爸非圖17-1兩燈都沒壞時,顯示器不顯示壞燈,燈亮,不報警圖17-2當(dāng)有一個燈壞時,會顯示壞燈名稱,并且報警圖17-3當(dāng)有兩個燈壞時,會同時顯示壞燈名稱,并且報警五、硬件模塊測試電路板如下圖18所示:
圖18電路板圖(一) 環(huán)境明暗開關(guān)燈模塊測試當(dāng)擋住光敏電阻時,LED燈亮;不擋住時,LED燈不亮。(二) 交通狀況開關(guān)燈模塊測試采用ST188紅外對射傳感器感測是否有物體通過,當(dāng)沒有物體通過時ce截止,單片機采到的電壓值為低電平,LED燈不亮;當(dāng)有物體經(jīng)過時be導(dǎo)通,電源電壓加到E端,單片機采到的電壓值為高電平,LED燈亮。(三) 報警電路模塊功能測試給BUZ端口分別送入TTL小脈沖,LED燈亮,報警器報警。六、總結(jié)在這次實驗的過程中,碰到了很多問題,首先是軟件設(shè)計的問題,剛開始不知道該如何下手,老師給我們講解了一下自己的思路,思路特別清晰,于是我們按照老師的思路進行編程,確實順利了很多。但是到第二個模塊時,我們又卡住了,因為我們覺得特別復(fù)雜,沒有思路,于是去問了幾個同學(xué)的思路,借鑒了下,我們可以設(shè)置多個界面:定時開關(guān)燈主界面,設(shè)置開關(guān)燈時間主界面,設(shè)置開燈時間界面,設(shè)置關(guān)燈時間界面。根據(jù)這個思路,我們第二個模塊的程序總算是解決了。第四個模塊交通燈模塊也遇到了困難,就是模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告s1,s2,s3的開關(guān)燈問題,是同時開呢,還是分別開呢?如果是按照老師給的實驗報告的要求,就是分別開,可是分別開的話編程比同時開要復(fù)雜得多,經(jīng)過跟同伴的長久思考跟嘗試,我們通過定義一個中間變量,然后判斷這個中間變量來完成分別開的功能。其實,在硬件設(shè)計的過程中,我們也遇到了很多問題,剛搭完電路進行測試的時候,LED燈不亮,就用萬用表進行調(diào)試,檢測哪部分有問題,可是檢測到LED燈兩端的電壓竟然是5V,LED燈上方電阻的電壓是0V,其他地方也有的通有的不通。焦躁之余,我們把7N80拔出重新順時針90度插入。然后,就好了。原來是沒連接好。其它兩個模塊挺順利的。在這個過程中,我更加明白思路清晰和耐心嘗試的重要性,還有合作和討論的趣味,互相討論辯解增添了無聊的實驗課堂上無窮的樂趣。在老師和同學(xué)的幫助下,以及我們的努力下,這次實驗才順利完成。七、 參考文獻余孟嘗.數(shù)字電子技術(shù)基礎(chǔ)(第四版).北京:高等教育出版社,2008年閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版).高等教育出版社,2005年.劉愛華.傳感器原理與應(yīng)用技術(shù).人民郵電出版社,2011年.馬彪.單片機應(yīng)用技術(shù).同濟大學(xué)出版社,2010年.郭天祥.51單片機C語言教程.北京:電子工業(yè)出版社,2012年.八、 附錄附錄1程序代碼總程序如下:#include<reg51.h>#include<string.h>#include"lcd1602.h"#include"keyscan.h"#include"ds1302.h"#defineucharunsignedchar#defineuintunsignedintuchar*mainmenu1="1.sdk2.dsk3.hj";uchar*mainmenu2="k4.jtk5.check";uchar*sdkmenu1="1.on2.off";uchar*sdkmenu2="5.check15.quit";uchar*hjcmenu="status:15:quit";uchartimetable[10]=('\0'};uchartimeledon[6]={n07-00n},timeledoff[6]={n07-01n},timebuf[6]={'\0'};sbitjc1=P1A6;sbitjc2=P1A7;sbitbuzz=P2A。;sbithjk=P1A2;sbits1=P1A3;sbits2=P1A4;sbits3=P1A5;uchardelflag,startdispflag=1,startreadflag=1,clearwarnflag=1,directflag=1,mdfmenuflag=1,modifyflag,dskmenuflag=1,menuflag=1,led1flag,led2flag,quitflag,warnflag,keybuf,count1flag=1,count2flag;uintcount1,count2,dskcount;voiddispmmenu(){LCD_init();LCD_disp_cher(0,1,mainmenu1);LCD_disp_cher(0,2,mainmenu2);}voidTimer0Init(){EA=1;ET0=1;TMOD&=0xf0;TMODI=0x01;TL0=(65536-2000)%256;TH0=(65536-2000)/256;TF0=0;TR0=1;}voidInit(){P1=P1&0xfc;buzz=0;Timer0Init();Ds1302_init();voidDelayxms(uinttime)(uinti,j;for(i=time*1;i>0;i--)for(j=500;j>0;j--);}/***************手動開模式***********************/voiddispsdkmenu(){LCD_init();LCD_disp_cher(1,1,sdkmenu1);LCD_disp_cher(1,2,sdkmenu2);}bitsdkpattern()(ucharkeynum,keyvalue;while(1)(while((keynum=keyscan()))(if(keynum==0xff)break;elsekeyvalue=keynum;}if(keyvalue==1)(P1l=0x03;led1flag=1;led2flag=1;}if(keyvalue==2)(P1&=0xfc;led1flag=0;led2flag=0;}if(keyvalue==15){keyvalue=0;quitflag=1;P1&=0xfc;led1flag=0;led2flag=0;}if(keyvalue==5){keyvalue=0;return1;}if(quitflag==1)(quitflag=0;break;}}return0;}/***************定時開模式***********************/bittimeswitch(uchar*time){uintcurrenttime,presettime;currenttime=(timetable[0]*10+timetable[1])*60+timetable[3]*10+timetable[4];presettime=(time[0]*10+time[1])*60+time[3]*10+time[4];if(currenttime<presettime)return1;elsereturn0;}uchardispdskmenu(){uchari,j,keynum,keyvalue=0xff;bitret;if(dskmenuflag==1){dskmenuflag=0;LCD_init();LCD_disp_cher(12,2,"1.set");LCD_disp_cher(17,2,"5.check");LCD_disp_cher(24,2,"15.quit");LCD_disp_cher(0,2,timeledon);LCD_disp_cher(5,2,"|");LCD_disp_cher(6,2,timeledoff);}// Ds1302_readtime(timetable);// LCD_disp_cher(4,1,timetable);for(i=0;iv21;i++){LCD_w_com(0x1C);LCD_w_com(0x80+i+4);LCD_w_data('');for(j=0;jv20;j++){Ds1302_readtime(timetable);LCD_disp_cher(i+5,1,timetable);模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告Delayxms(l);while((keynum=keyscan()))(if(keynum==0xff)break;elsekeyvalue=keynum;}if(keyvalue!=0xff)returnkeyvalue;ret=timeswitch(timeledon);if(ret=0){P1l=0x03;led1flag=1;led2flag=1;}ret=timeswitch(timeledoff);if(ret=0){P1&=0xfc;led1flag=0;led2flag=0;}}Delayxms(1);}return0xff;}voiddispmdfmenu(){LCD_init();LCD_disp_cher(2,1,"settime:");LCD_disp_cher(0,2,"on:1off:2quit15");}ucharinputmenu(){uchari,j,keyvalue=0xff,keynum;LCD_init();LCD_disp_cher(0,1,"input:'**-**'end");LCD_disp_cher(17,1,”:141");LCD_disp_cher(22,1,"2:DEL13:'-'15:quit");for(i=0;iv24;i++){LCD_w_com(0x1C);LCD_w_com(0xC0+i);LCD_w_data('');for(j=0;jv20;j++){Delayxms(l);LCD_disp_cher(i+1,2,"input:");while((keynum=keyscan())llkeynum==0)(if(keynum==0xff)break;elsekeyvalue=keynum;}if(keyvalue!=0xff)returnkeyvalue;}Delayxms(1);}return0xff;}voidmodify(uchar*time)(ucharkeyvalue,keynum,inputflag=0,position=7,i=0;while(1)(keynum=inputmenu();if(keynum!=0xff)(LCD_init();LCD_disp_cher(0,2,"input:");keyvalue=keynum;inputflag=1;break;}}while(1)(while((keynum=keyscan())||keynum=0){if(keynum==0xff)break;else{keyvalue=keynum;inputflag=1;}}if(keyvalue=14){keyvalue=0xff;modifyflag=1;}if(keyvalue=15){keyvalue=0xff;quitflag=1;}if(inputflag==1&&keyvalue!=0xff)(inputflag=0;delflag=0;if(keyvalue==12)(LCD_w_com(0xc0+position-1);LCD_w_data('');i--;position--;delflag=1;}LCD_w_com(0xc0+position);if(delflag==0)(if(keyvalue==13)(timebuf[i]='-';LCD_w_data('-');}else(timebuf[i]=keyvalue+0x30;LCD_w_data(0x30+keyvalue);}position++;i++;}}if(quitflag==1)(quitflag=0;mdfmenuflag=1;break;}if(modifyflag==1)(modifyflag=0;strcpy(time,timebuf);LCD_init();LCD_disp_cher(0,1,"setsuccess!");quitflag=1;}}voidmdfpattern()(ucharkeyvalue,keynum;mdfmenuflag=1;while(1)(if(mdfmenuflag==1)(mdfmenuflag=0;dispmdfmenu();}while((keynum=keyscan()))(if(keynum==0xff)break;elsekeyvalue=keynum;}if(keyvalue=1){keyvalue=0;modify(timeledon);}if(keyvalue=2){keyvalue=0;modify(timeledoff);}if(keyvalue=15){keyvalue=0;quitflag=1;}if(quitflag==1){quitflag=0;dskmenuflag=1;break;}}}bitdskpattern(){ucharkeyvalue,keynum;dskmenuflag=1;while(1){keynum=dispdskmenu();模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告if(keynum!=0xff)keyvalue=keynum;if(keyvalue==1)(keyvalue=0;mdfpattern();}if(keyvalue==15)(keyvalue=0;quitflag=1;P1&=0xfc;led1flag=0;led2flag=0;}if(keyvalue==5)(keyvalue=0;return1;}if(quitflag=1){quitflag=0;break;}}return0;/***************環(huán)境開模式***********************/voiddisphjkmenu(){LCD_init();LCD_disp_cher(0,1,"hjk:");LCD_disp_cher(0,2,"5:checkquit:15");}bithjkpattern(){ucharkeyvalue,keynum;disphjkmenu();while(1){while((keynum=keyscan())){if(keynum=0xff)break;elsekeyvalue=keynum;}if(keyvalue=5){keyvalue=0;return1;}if(keyvalue==15)(keyvalue=0;quitflag=1;P1&=0xfc;led1flag=0;led2flag=0;}if(quitflag==1)(quitflag=0;menuflag=1;break;}if(hjk=1){P1l=0x03;led1flag=1;led2flag=1;}else{P1&=0xfc;led1flag=0;led2flag=0;}}return0;}/***************檢測模式***********************/voiddisphjcmenu(){LCD_init();LCD_disp_cher(0,1,hjcmenu);}intcheckstatus(bitled){if(led=1)return1;elsereturn0;}voidcheckpattern(){ucharkeynum,keyvalue;bitret1,ret2;disphjcmenu();LCD_disp_cher(0,2,"broken:");P1|=0X03;while(1)(while((keynum=keyscan()))(if(keynum==0xff)break;elsekeyvalue=keynum;}if(keyvalue=15){keyvalue=0xff;led1flag=0;led2flag=0;quitflag=1;warnflag=0;}if(led1flag==1){ret1=checkstatus(jc1);if(ret1=1){LCD_disp_cher(8,2,"ld1”);warnflag=1;}else{LCD_disp_cher(8,2,"");}}if(led2flag==1){ret2=checkstatus(jc2);if(ret2=1){LCD_disp_cher(12,2,"ld2”);warnflag=1;}else{LCD_disp_cher(12,2,"");}}if(ret1=0&&ret2=0){warnflag=0;buzz=0;}if(quitflag=1){quitflag=0;warnflag=0;break;}}buzz=0;/******************交通開模式***********************/voiddispjtkmenu(){LCD_init();LCD_disp_cher(0,1,"jtkpattern:run");LCD_disp_cher(0,2,"5:checkquit:15");}voidautoligten(ucharflag)(if(flag==1)(P1&=0xfe;led1flag=0;P1l=0x02;led2flag=1;}else(P1&=0xfd;led2flag=0;P1|=0x01;led1flag=1;}}bitjtkpattern(){ucharkeyvalue,keynum,zhongjian=1;dispjtkmenu();while(1){while((keynum=keyscan())){if(keynum==0xff)break;elsekeyvalue=keynum;}if(keyvalue=5){keyvalue=0;return1;}if(keyvalue=15){keyvalue=0;quitflag=1;P1&=0xfc;led1flag=0;led2flag=0;模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告}}模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告}}if((s1==0)&(zhongjian==1))(directflag=1;P1&=0xfd;P1|=0x01;led1flag=1;}if((s3==0)&(zhongjian==1)){directflag=0;P1&=0xfe;P1l=0x02;led2flag=1;}if(s2=0){autoligten(directflag);zhongjian=0;}if(((s1=0)||(s3=0))&(zhongjian=0)){P1&=0xfc;led1flag=0;led2flag=0;}if(quitflag=1){quitflag=0;menuflag=1;break;}}return0;}/************************************************/voidmain(){ucharkeynum,keyvalue;bitret;Init();while(1){if(menuflag==1){menuflag=0;dispmmenu();}while((keynum=keyscan())){if(keynum=0xff)break;elsekeyvalue=keynum;if(keyvalue==1)(keybuf=keyvalue;dispsdkmenu();ret=sdkpattern();if(ret==0)(keyvalue=0xff;menuflag=1;}elsekeyvalue=5;}if(keyvalue==2)(keybuf=keyvalue;ret=dskpattern();if(ret==0)(keyvalue=0xff;menuflag=1;}elsekeyvalue=5;}if(keyvalue==3)(keybuf=keyvalue;ret=hjkpattern();if(ret==0)(keyvalue=0xff;menuflag=1;}elsekeyvalue=5;}if(keyvalue==4)(keybuf=keyvalue;ret=jtkpattern();if(ret==0)(keyvalue=0xff;menuflag=1;}elsekeyvalue=5;}if(keyvalue==5)(keyvalue=0;checkpattern();if(keybuf!=0)keyvalue=keybuf;elsemenuflag=1;}模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告voidTimer0()interrupt1using1(TL0=(65536-2000)%256;TH0=(65536-2000)/256;if(warnflag=1){if(count1flag=1){if(++count1>100){count1=0;count1flag=0;count2flag=1;buzz=0;}}if(count2flag==1){if(++count2>100){count2=0;count2flag=0;count1flag=1;buzz=1;}}}if(++dskcount>2000){dskcount=0;dskmenuflag=1;}}Keyscan.c程序如下:#includevreg51.h>#include"keyscan.h"#defineucharunsignedchar#defineuintunsignedintvoiddelay(uinti)〃延時函數(shù){while(i--);}/* 鍵盤掃描程序 */ucharkeyscan(void)〃鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法{ucharcord_h,cord_l;//行列值中間變量uintnum;P3=0x0f;cord_h=P3&0x0f;if(cord_h!=0x0f){delay(100);if(cord_h!=0x0f){cord_h=P3&0x0f;P3=cord_hl0xf0;cord_l=P3&0xf0;〃讀入列線值〃先檢測有無按鍵按下〃去抖〃讀入列線值〃輸出當(dāng)前列線值〃讀入行線值num=keynum(cord_h+cord_l);return(num);//鍵盤最后組合碼值}}return(0xff); 〃返回該值}/* 最鍵碼子程序 */ucharkeynum(uchark){uchara;switch(k){case0x7e:a=0;break;//0case0x7d:a=l;break;//lcase0x7b:a=2;break;//2case0x77:a=3;break;//3case0xbe:a=4;break;//4case0xbd:a=5;break;//5case0xbb:a=6;break;//6case0xb7:a=7;break;//7case0xde:a=8;break;//8case0xdd:a=9;break;//9case0xdb:a=10;break;//acase0xd7:a=11;break;//bcase0xee:a=12;break;//ccase0xed:a=13;break;//dcase0xeb:a=14;break;//ecase0xe7:a=15;break;//f模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告模擬路燈控制系統(tǒng)設(shè)計報告default:a=0xff;break;}return(a);}Keyscan.h程序如下:#ifndef__KEYSCAN_H__#define__KEYSCAN_H__#defineucharunsignedchar#defineuintunsignedintucharkeynum(uchark);ucharkeyscan(void);voiddelay(uinti);#endifLcd1602.c程序如下:#includevreg51.h>#defineucharunsignedchar#defineuintunsignedint#defineLCD_DATAP0sbitLCD_EN=P2A7;sbitLCD_RS=P2A6;sbitLCD_RW=P2A5;voidLCD_w_com(ucharcom){voidLCD_w_com(ucharcom){LCD_RS=0;LCD_RW=0;voiddelay_ms(uinttemp){uintx,y;for(x=temp;x>0;x--)for(y=110;y>0;y--);}LCD_DATA=com;delay_ms(1);LCD_EN=1;delay_ms(1);LCD_EN=0;}voidLCD_disp_cher(ucharx,uchary,uchar*p){voidLCD_disp_cher(ucharx,uchary,uchar*p){if(y=1){LCD_w_com(0x80+x);while(*p){LCD_w_data(*p);P++;}}if(y=2){LCD_w_com(0x80+0x40+x);voidLCD_w_data(uchardat){LCD_RS=1;LCD_RW=0;LCD_DATA=dat;delay_ms(1);LCD_EN=1;delay_ms(1);LCD_EN=0;voidLCD_ini
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)級智能零售解決方案協(xié)議
- 鋼鐵制品生產(chǎn)加工投資協(xié)議
- 傲慢與偏見節(jié)選英文閱讀與理解教學(xué)教案
- 人工智能人才培訓(xùn)合作協(xié)議
- 車間場地租賃合同
- 高中生英語閱讀理解征文
- 農(nóng)業(yè)項目管理方案
- 保密信息及非競爭協(xié)議條款
- 智能機器人研發(fā)與生產(chǎn)計劃書
- 童年小說人物解析作文
- 考前沖刺攻略課件
- 2024年中煤電力有限公司所屬企業(yè)招聘29人筆試參考題庫附帶答案詳解
- 2024年12月2025中央統(tǒng)戰(zhàn)部直屬事業(yè)單位應(yīng)屆高校畢業(yè)生公開招聘21人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 積極心理學(xué)視角下高職院校學(xué)生心理健康教育路徑研究
- 2024年湖北省煙草專賣局(公司)招聘筆試真題
- 2025中鐵快運股份限公司招聘全日制普通高校畢業(yè)生35人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年浙江寧波寧興集團有限公司招聘筆試參考題庫含答案解析
- 計算機網(wǎng)絡(luò)試題及答案
- 2025年安徽馬鞍山市兩山綠色生態(tài)環(huán)境建設(shè)有限公司招聘筆試參考題庫附帶答案詳解
- 人效管理措施
- 四年級下冊勞動《小小快遞站》課件
評論
0/150
提交評論