版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
5單片機(jī)定時(shí)與計(jì)數(shù)電子信息工程系董峰任務(wù)與知識(shí)點(diǎn)(參考教材§5.3,P135)任務(wù)定時(shí)器實(shí)現(xiàn)LED閃爍改變LED燈閃爍速度流水線產(chǎn)品計(jì)數(shù)交通信號(hào)燈的定時(shí)控制知識(shí)點(diǎn)定時(shí)器/計(jì)數(shù)器的基本結(jié)構(gòu)及工作原理定時(shí)器/計(jì)數(shù)器的初始化定時(shí)器/計(jì)數(shù)器的相關(guān)計(jì)數(shù)器及各種工作方式定時(shí)器/計(jì)數(shù)器的應(yīng)用5.1定時(shí)器與計(jì)數(shù)器的基本概念1、計(jì)數(shù)
計(jì)數(shù)是指對(duì)事物數(shù)量的統(tǒng)計(jì),通常以“1”為單位進(jìn)行累加。生活中常見的有家用水電表、汽車?yán)锍瘫淼?;同時(shí),計(jì)數(shù)也應(yīng)用于工業(yè)生產(chǎn)中,如某生產(chǎn)流水線對(duì)產(chǎn)品進(jìn)行計(jì)數(shù)打包,每計(jì)到8個(gè),就產(chǎn)生電信號(hào),驅(qū)動(dòng)機(jī)械裝置進(jìn)行包裝。2、計(jì)數(shù)器的容量家用水電表走到一定的數(shù)量就到頂,再計(jì)數(shù)就要從零開始。任何計(jì)數(shù)裝置都是有一定的容量限制的。80C51單片機(jī)中有兩個(gè)16位計(jì)數(shù)器,分別稱之為T0和T1,最大的計(jì)數(shù)量為65536(2的16次方)。3、定時(shí)單片機(jī)內(nèi)部有定時(shí)與計(jì)數(shù)裝置,如圖5-1所示,我們稱為定時(shí)器與計(jì)數(shù)器。圖5?1定時(shí)器/計(jì)數(shù)器的定時(shí)或計(jì)數(shù)來源假設(shè)單片機(jī)內(nèi)部振蕩頻率是12MHZ,一個(gè)內(nèi)部計(jì)數(shù)信號(hào)的時(shí)間間隔將是1μS。
定時(shí)器則是由單片機(jī)內(nèi)部振蕩信號(hào)經(jīng)過12分頻后產(chǎn)生一個(gè)時(shí)間間隔穩(wěn)定的計(jì)數(shù)信號(hào)。計(jì)數(shù)器記錄的是單片機(jī)外部發(fā)生的事件,由單片機(jī)的外部電路提供計(jì)數(shù)信號(hào)4、溢出
計(jì)數(shù)器是有容量限制的,當(dāng)?shù)搅俗畲笕萘繒r(shí)就會(huì)清零。如何捕捉這種情況呢?我們叫做溢出。一般來說,對(duì)溢出是做相關(guān)處理工作的,比如:課間休息十分鐘,……,時(shí)間到了(溢出),則上課鈴響了(相關(guān)處理),就意味著要上課了。5、計(jì)數(shù)次數(shù)的預(yù)置(重點(diǎn))80C51單片機(jī)最大計(jì)數(shù)容量是65536,因此只要計(jì)滿這個(gè)數(shù)值就會(huì)產(chǎn)生溢出,但在實(shí)際工作中,經(jīng)常會(huì)有少于65536這個(gè)數(shù)值的要求。如:生產(chǎn)流水線,要求每計(jì)數(shù)8個(gè),就要進(jìn)行溢出處理。類似這種情況很多,如何設(shè)置任意溢出的計(jì)數(shù)值呢?
這里就需要預(yù)置計(jì)數(shù)次數(shù):如果要計(jì)數(shù)100,預(yù)先在計(jì)數(shù)器中放上65436,這樣再來100次脈沖信號(hào),就到了65536最大計(jì)數(shù)量,意味著可以溢出處理了。65436就稱計(jì)數(shù)的預(yù)置值。6、定時(shí)時(shí)間的預(yù)置(重點(diǎn))
只要計(jì)數(shù)裝置計(jì)數(shù)間隔時(shí)間固定,定時(shí)時(shí)間是可以轉(zhuǎn)化成計(jì)數(shù)量來處理的,這里就需要知道每計(jì)數(shù)一次要花費(fèi)的時(shí)間,這個(gè)與單片機(jī)晶振頻率相關(guān)。假設(shè)晶振頻率是12MHZ,一個(gè)機(jī)器周期(計(jì)時(shí)脈沖)是1μS,最大定時(shí)時(shí)間為65.536ms(計(jì)滿65536個(gè)脈沖)。如果要定時(shí)50ms,預(yù)先在計(jì)數(shù)器中放入定時(shí)初值65536-50000=15536即可。另外,需要說明
單片機(jī)的定時(shí)計(jì)數(shù)裝置一般是需要不斷重復(fù)定時(shí)計(jì)數(shù)操作,即這次完成50ms的定時(shí)任務(wù),緊接著可能進(jìn)行第二次50ms的定時(shí)操作。而定時(shí)計(jì)數(shù)器一旦產(chǎn)生溢出,其值就會(huì)清零,定時(shí)時(shí)間就會(huì)不準(zhǔn)確。
為避免這種錯(cuò)誤,我們應(yīng)該在溢出發(fā)生后,馬上將定時(shí)計(jì)數(shù)預(yù)置初值再次送到定時(shí)計(jì)數(shù)器中,可以保證定時(shí)器計(jì)數(shù)器準(zhǔn)確工作。想一想,做一做(1)生產(chǎn)流水線對(duì)藥片進(jìn)行計(jì)量,每到60粒即為一瓶,要進(jìn)行封裝操作,計(jì)數(shù)器應(yīng)預(yù)置多大的計(jì)數(shù)預(yù)值?(2)假設(shè)單片機(jī)的晶振頻率是12MHZ,需要定時(shí)10ms,定時(shí)器應(yīng)預(yù)置定時(shí)初值為多少?5.2定時(shí)器實(shí)現(xiàn)LED燈閃爍【例5-1】用定時(shí)器的查詢方式實(shí)現(xiàn)LED燈的閃爍(間隔時(shí)間為60ms)程序分析:
JBC指令格式:JBCbit,標(biāo)號(hào)
這是一條判斷轉(zhuǎn)移并清0指令,JBC后面的第1個(gè)參數(shù)是位變量,第2個(gè)參數(shù)是一個(gè)標(biāo)號(hào)。如果bit位的值等于1,則轉(zhuǎn)到標(biāo)號(hào)所指的位置去執(zhí)行指令,同時(shí)該bit位清0。在這里,是判斷定時(shí)溢出標(biāo)志TF0是否溢出,并做出相應(yīng)事件處理。XRL指令格式:XRLdirect,#data
這是一條邏輯異或指令,XRL后面的第1個(gè)參數(shù)是直接地址,第2個(gè)參數(shù)是一個(gè)立即數(shù)。將直接地址中的數(shù)據(jù)和立即數(shù)按位異或,結(jié)果再存放入直接地址中。在程序中,它起的作用是將P1口數(shù)據(jù)取反后,去點(diǎn)亮LED燈。開始學(xué)習(xí)定時(shí)器/計(jì)數(shù)器的知識(shí),了解什么是硬件延時(shí)了。目標(biāo):5.2.1定時(shí)器/計(jì)數(shù)器的基本結(jié)構(gòu)及工作原理圖5?28051定時(shí)器/計(jì)數(shù)器邏輯結(jié)構(gòu)圖1.基本結(jié)構(gòu)TMOD、TCON是與定時(shí)器工作密切相關(guān)的兩個(gè)控制寄存器。定時(shí)器0,定時(shí)器1是16位加法計(jì)數(shù)器
TL0、TL1、TH0、TH1的訪問地址依次為8AH8DH,每個(gè)寄存器均可單獨(dú)訪問,進(jìn)行定時(shí)/計(jì)數(shù)初值的設(shè)定。TMOD寄存器用于決定定時(shí)器/計(jì)數(shù)器是計(jì)數(shù)用,還是定時(shí)用;TCON寄存器決定定時(shí)器/計(jì)數(shù)器具什么時(shí)侯啟動(dòng),以及什么時(shí)侯停止工作。
都可以設(shè)置為定時(shí)器或計(jì)數(shù)器用。它們分別由兩個(gè)8位專用寄存器組成。定時(shí)器0由TH0和TL0組成,定時(shí)器1由TH1和TL1組成。2.工作原理
定時(shí)器開始工作后,它是不會(huì)占用CPU的操作時(shí)間。也就是說,定時(shí)器和CPU之間是互不干擾,并行工作的;
只有在定時(shí)器溢出時(shí),才可能中斷CPU當(dāng)前的操作,要求CPU進(jìn)行相應(yīng)的溢出處理工作,如【例4-1】中,當(dāng)溢出發(fā)生時(shí),系統(tǒng)將跳轉(zhuǎn)到“13NEXT:”處,做定時(shí)器重新賦初值、P1口數(shù)據(jù)取反等工作。比較一下定時(shí)器延時(shí)程序和軟件延時(shí)程序區(qū)別?
軟件延時(shí)程序中,CPU在延時(shí)上花費(fèi)了大量的精力,只顧著計(jì)算延時(shí)、讓彩燈閃爍了,就限制單片機(jī)其它功能的發(fā)揮。
定時(shí)器定時(shí)程序中,CPU只需要設(shè)好定時(shí)初值,延時(shí)計(jì)算給定時(shí)器去做了,CPU可以多做一些其它工作了。5.2.2定時(shí)器/計(jì)數(shù)器的初始化(重點(diǎn))
在啟動(dòng)定時(shí)器/計(jì)數(shù)器工作之前,CPU必須將一些命令(稱為控制字)寫入定時(shí)/計(jì)數(shù)器的相關(guān)寄存器中,這個(gè)過程稱為定時(shí)/計(jì)數(shù)器的初始化。
初始化一般有四個(gè)步驟
步驟一:確定工作方式通過對(duì)工作方式寄存器TMOD進(jìn)行參數(shù)設(shè)置,表明定時(shí)器/計(jì)數(shù)器0工作在定時(shí)模式的工作方式1中。步驟二:預(yù)置定時(shí)或計(jì)數(shù)的初值設(shè)12M晶振,則機(jī)器周期T=1s。因要求每60ms溢出一次,計(jì)數(shù)值=60ms/1s=60000。在工作方式1時(shí),其最大計(jì)數(shù)值等于6553665536-60000=5536=15A0H,將15H、0A0H分別預(yù)置給TH0、TL0,即完成初值設(shè)置。步驟三:是否開啟定時(shí)器/計(jì)數(shù)器中斷
我們可以根據(jù)實(shí)際需要,決定是否允許定時(shí)器/計(jì)數(shù)器的中斷請(qǐng)求產(chǎn)生和CPU是否允許接受定時(shí)器/計(jì)數(shù)器的中斷請(qǐng)求。由于在本例中使用的是溢出查詢處理方式,未采用溢出中斷處理方式,因此對(duì)中斷允許寄存器IE的相關(guān)標(biāo)志位未做設(shè)置。
在下一章學(xué)習(xí)中,我們將學(xué)習(xí)到定時(shí)器/計(jì)數(shù)器溢出的中斷處理方式。
步驟四:啟動(dòng)定時(shí)器/計(jì)數(shù)器工作直接由軟件置位啟動(dòng)定時(shí)器/計(jì)數(shù)器工作。想一想,做一做(1)如何將計(jì)數(shù)初值由十進(jìn)制數(shù)轉(zhuǎn)化成十六進(jìn)制數(shù),并正確賦值給TH0和TL0?(2)我們?nèi)绾巫龅阶層布〞r(shí)時(shí)間變長?5.3對(duì)LED燈閃爍速度的控制思考:在例5-1中,LED燈閃的太快了,如何放慢速度呢?下面我們進(jìn)行試驗(yàn)?!纠?-2】LED燈0.5秒閃爍速度控制。溢出否?循環(huán)次數(shù)10初始化燈亮重置循環(huán)初值10重置時(shí)間初值NYNY溢出否?循環(huán)次數(shù)10初始化燈亮重置循環(huán)初值10重置時(shí)間初值NY程序分析:
在定時(shí)溢出時(shí),并不馬上改變P1口狀態(tài)(LED燈亮滅狀態(tài)),而是利用指令“DJNZR7,JP1”
做循環(huán)次數(shù)為10的循環(huán)判斷,沒到循環(huán)次數(shù),則繼續(xù)定時(shí),等待溢出;到了循環(huán)10次,將LED燈亮滅狀態(tài)改變,再次設(shè)置循環(huán)次數(shù),繼續(xù)定時(shí),等待溢出。在上例中,LED燈閃得太快了,如何放慢它的速度呢?下面我們來進(jìn)行實(shí)驗(yàn)。放慢速度的方法:目標(biāo):學(xué)習(xí)與定時(shí)器工作相關(guān)的兩個(gè)寄存器寄存器TMOD和TCON。
5.3.1工作方式寄存器TMOD(重要)TMOD(89H)D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0位地址(無)定時(shí)器1定時(shí)器0由上表可知,TMOD的低4位為T0的方式字段,高4位為T1的方式字段,它們的含義完全相同。各標(biāo)志介紹如下:
GATE:門控位。當(dāng)GATE=0時(shí),控制寄存器TCON中的TR0或TR1置1即可啟動(dòng)定時(shí)器,稱之為軟啟動(dòng);當(dāng)GATE=1時(shí),控制寄存器TCON中的TR0或TR1須先置1,由(P3.2)或(P3.3)引腳為高電平時(shí)啟動(dòng)定時(shí)器,稱之為硬啟動(dòng)。作用:用于控制定時(shí)/計(jì)數(shù)器是否受外部中斷請(qǐng)求信號(hào)的影響。
:功能選擇位。=0時(shí),設(shè)置為定時(shí)器工作模式;=1時(shí),設(shè)置為計(jì)數(shù)器工作模式。表5-1表5-1方式寄存器TMOD表5-2定時(shí)/計(jì)數(shù)器工作方式設(shè)置表M1和M0:工作方式控制位。T0或T1的工作方式選擇取決于M1M0設(shè)置,其中工作方式0、1、2對(duì)T0和T1完全相同,而工作方式3僅為T0所具有,可構(gòu)成如下表所示的四種工作方式。M1M0工作方式說明00方式013位定時(shí)/計(jì)數(shù)器01方式116位定時(shí)計(jì)數(shù)器10方式2自動(dòng)重裝8位定時(shí)/計(jì)數(shù)器11方式3T0分成兩個(gè)8位定時(shí)/計(jì)數(shù)器,T1停止計(jì)數(shù)最后需要注意:TMOD寄存器是不能位尋址的,只能用字節(jié)指令設(shè)置定時(shí)器工作模式和工作方式,高4位定義T1,低4位定義T0。復(fù)位時(shí),TMOD所有位均置0。5.3.2控制寄存器TCONTCOND7D6D5D4D3D2D1D0位名稱TF1TR1TF0TR0位地址8FH8EH8DH8CHTF1:T1溢出標(biāo)志位。當(dāng)T1計(jì)數(shù)滿產(chǎn)生溢出時(shí),由硬件自動(dòng)置TF1=1。在中斷允許時(shí),向CPU發(fā)出T1的中斷請(qǐng)求,進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清0。在中斷屏蔽時(shí),TF1可作溢出查詢測試用,此時(shí)必須由軟件清0。TR1:T1運(yùn)行控制位。當(dāng)GATE=0時(shí),TR1置1,即可啟動(dòng)T1;當(dāng)GATE=1,TR1置1,不能啟動(dòng)T1,必須等為高電平才能啟動(dòng)T1。TF0和TR0將作用于T0,其功能及操作情況同TF1和TR1。表5-3控制寄存TCON5.4流水線產(chǎn)品計(jì)數(shù)和溢出處理
前面介紹了定時(shí)/計(jì)數(shù)器的定時(shí)方式,下面通過兩個(gè)案例看看定時(shí)/計(jì)數(shù)器的計(jì)數(shù)方式是如何進(jìn)行的。首先,讓我們來看看計(jì)數(shù)信號(hào)在計(jì)數(shù)器內(nèi)部是如何表示的,如【例5-3】所示;其次,我們還要知道計(jì)數(shù)溢出是如何得到處理的,如【例5-4】所示。產(chǎn)品計(jì)數(shù)溢出處理5.4.1流水線產(chǎn)品計(jì)數(shù)【例5-3】按鍵次數(shù)通過LED燈顯示(二進(jìn)制數(shù))1、任務(wù)分析:該指令將定時(shí)/計(jì)數(shù)器1設(shè)定為計(jì)數(shù)模式的工作方式1,定時(shí)/計(jì)數(shù)器0不工作。
圖5?3外部按鍵計(jì)數(shù)電路原理圖
當(dāng)程序運(yùn)行時(shí),只要按下按鈕,按鈕所連的紅燈就會(huì)亮一下,表示計(jì)數(shù)器進(jìn)行了一次計(jì)數(shù),同時(shí)計(jì)數(shù)值會(huì)通過上面的八個(gè)黃燈以二進(jìn)制形式輸出。2、工作過程及電路原理圖:3、計(jì)數(shù)工作必須滿足以下要求:(重點(diǎn))(1)外部計(jì)數(shù)脈沖從引腳T0(P3.4)和T1(P3.5)輸入;(2)外部脈沖最高頻率不能超過振蕩頻率的1/24;(3)保證輸入信號(hào)高/低電平保持在一個(gè)機(jī)器周期以上時(shí)間,才能被系統(tǒng)檢測到;(4)只有輸入引腳電平發(fā)生1到0的負(fù)跳變后,新的計(jì)數(shù)值才裝入計(jì)數(shù)器中。4、定時(shí)/計(jì)數(shù)的四種工作方式工作方式0工作方式1工作方式2工作方式3由方式寄存器TMOD
中的M1M0決定,參見表5-1所示工作方式0圖5?4T0方式0時(shí)的邏輯電路結(jié)構(gòu)圖設(shè)置M1M0=00B,構(gòu)成13位定時(shí)器/計(jì)數(shù)器。最大計(jì)數(shù)值為8192。其中,TH0占高8位,TL0占低5位(高3位未用)。當(dāng)TL0低5位溢出時(shí)自動(dòng)向TH0進(jìn)位,而TH0溢出時(shí)向中斷位TF0進(jìn)位(硬件自動(dòng)置位),并申請(qǐng)中斷。
當(dāng)GATE=0時(shí),TR0直接控制T0的啟動(dòng)和關(guān)閉。TR0=1,接通控制開關(guān),T0從初值開始計(jì)數(shù)直至溢出。當(dāng)GATE=1時(shí),與門的輸出由的輸入電平和TR0位的狀態(tài)來確定。若TR0=1,外部信號(hào)電平通過引腳控制T0是否工作,當(dāng)為高電平時(shí),允許計(jì)數(shù),否則停止計(jì)數(shù)。
工作方式1INT0振蕩器÷12TL08位中斷TF0_C/T=0_C/T=1控制T0TR0GATE&≥11TH08位設(shè)置M1M0=01B,構(gòu)成16位定時(shí)器/計(jì)數(shù)器。最大計(jì)數(shù)值為65536。其中,TH0占高8位,TL0占低8位。當(dāng)TL0低8位溢出時(shí)自動(dòng)向TH0進(jìn)位,而TH0溢出時(shí)向中斷位TF0進(jìn)位(硬件自動(dòng)置位),并申請(qǐng)中斷。
當(dāng)GATE=0時(shí),TR0直接控制T0的啟動(dòng)和關(guān)閉。TR0=1,接通控制開關(guān),T0從初值開始計(jì)數(shù)直至溢出。當(dāng)GATE=1時(shí),與門的輸出由的輸入電平和TR0位的狀態(tài)來確定。操作完全同工作方式0。圖5?5T0方式1時(shí)的邏輯電電路結(jié)構(gòu)圖INT0振蕩器÷12TH08位TL08位中斷TF0重新輸入_C/T=0_C/T=1控制T0TR0GATE&≥11工作方式2設(shè)置M1M0=10B,構(gòu)成8位定時(shí)器/計(jì)數(shù)器。最大計(jì)數(shù)值為256。其中,TL0用來計(jì)數(shù)。當(dāng)TL0溢出時(shí)自動(dòng)向中斷位TF0進(jìn)位(硬件自動(dòng)置位),并申請(qǐng)中斷。同時(shí),TH0存儲(chǔ)計(jì)數(shù)初值會(huì)自動(dòng)向TL0中重裝。操作方式同前圖5?6T0方式2時(shí)的邏輯電路結(jié)構(gòu)圖工作方式3操作方式同前設(shè)置M1M0=11B,T0被分解成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0。T1停用。TL0占用T0的所有資源,可用作8位定時(shí)/計(jì)數(shù)器。TH0只能用作定時(shí)器使用,溢出時(shí)占用定時(shí)/計(jì)數(shù)器T1的控制位TF1。TH0定時(shí)器的啟動(dòng)和關(guān)閉占用定時(shí)/計(jì)數(shù)器T1的控制位TR1,僅受TR1置1或清0控制。圖5?7T0方式3時(shí)的邏輯電路結(jié)構(gòu)圖想一想,做一做(1)51單片機(jī)定時(shí)器/計(jì)數(shù)器四種工作方式的特點(diǎn)及設(shè)置方法?5.4.2計(jì)數(shù)溢出處理【例4-4】計(jì)數(shù)溢出觸發(fā)蜂鳴器發(fā)聲
在例5-3中,我們學(xué)習(xí)了定時(shí)/計(jì)數(shù)是如何進(jìn)行的,但在生產(chǎn)流程中,產(chǎn)品計(jì)數(shù)到了一定數(shù)限要進(jìn)行包裝的,就涉及計(jì)數(shù)溢出處理了。通過案例學(xué)習(xí)計(jì)數(shù)溢出處理。程序如下:1、任務(wù)分析:對(duì)定時(shí)器T0工作模式和工作方式進(jìn)行相關(guān)設(shè)置:計(jì)數(shù)模式為:工作方式2,對(duì)外部連續(xù)脈沖信號(hào)進(jìn)行計(jì)數(shù)。定時(shí)器T0計(jì)數(shù)初值為9CH,即計(jì)數(shù)到100就會(huì)自動(dòng)溢出對(duì)P3.7端口進(jìn)行取反,其目的是使連接到該端口的蜂鳴器鳴叫;代碼中可以看到循環(huán)10次,即應(yīng)該鳴叫5聲2、蜂鳴器的工作原理圖5?8電磁式蜂鳴器實(shí)物圖電磁式蜂鳴器的工作電流一般比較大,以致于單片機(jī)的I/O口是無法直接驅(qū)動(dòng)的,所以要利用放大電路來驅(qū)動(dòng),一般使用三極管來放大電流就可以了。
單片機(jī)上使用的蜂鳴器一般都是電磁式無源蜂鳴。蜂鳴器根據(jù)結(jié)構(gòu)不同分為壓電式蜂鳴器和電磁式蜂鳴器,而兩種蜂鳴器又可再分類為有源蜂鳴器和無源蜂鳴器,這里的源特指振蕩源。有源蜂鳴器直接加電就可以響起,無源蜂鳴器需要我們給它提供振蕩源。理想的振蕩源為一定頻率的方波。(必須在20KHZ以內(nèi),否則人耳聽不見)。3、工作過程及電路原理圖圖5?9計(jì)數(shù)溢出觸發(fā)蜂鳴器電路原理圖
由圖可知,外部脈沖信號(hào)頻率為4HZ,每到一個(gè)脈沖需要用時(shí)0.25秒,我們進(jìn)行計(jì)數(shù)100次,需要花費(fèi)時(shí)間25秒,也就是說,定時(shí)/計(jì)數(shù)器0到25秒時(shí)間就會(huì)產(chǎn)生溢出,系統(tǒng)將進(jìn)行蜂鳴器發(fā)聲的處理。想一想,做一做(1)在例【5-4】中,我們設(shè)置定時(shí)器/計(jì)數(shù)器工作于計(jì)數(shù)模式,但同樣能起作定時(shí)效果,定時(shí)器與計(jì)數(shù)器最重要的區(qū)別是什么?(2)設(shè)置定時(shí)器T0,使P1.0輸出如圖所示的矩形脈沖。5.5交通燈信號(hào)的定時(shí)控制復(fù)雜的交通燈信號(hào)系統(tǒng)要包括交通燈正常顯示、單路放行控制、緊急事件處理、數(shù)碼管倒計(jì)時(shí)等相關(guān)控制系統(tǒng)。在這里,我們只介紹交通信號(hào)燈的正常定時(shí)控制是如何進(jìn)行設(shè)計(jì)的。交通燈信號(hào)設(shè)計(jì)交通燈亮滅時(shí)序程序設(shè)計(jì)分析內(nèi)容包括電路原理圖、及交通燈信號(hào)設(shè)計(jì)方法交通燈信號(hào)變化要求及亮滅時(shí)序安排延時(shí)子程序設(shè)計(jì)、信號(hào)燈點(diǎn)亮控制及參數(shù)設(shè)計(jì)、信號(hào)燈時(shí)延設(shè)計(jì)、主程序初始化設(shè)計(jì)三部分內(nèi)容講解5.5.1 交通燈信號(hào)設(shè)計(jì)圖5?10十字路口交通燈示意圖1、工作電路原理圖我們用12只發(fā)光二極管模擬交通信號(hào)燈。在電路控制時(shí),設(shè)計(jì)P1各端口相關(guān)電位來實(shí)現(xiàn)交通燈控制功能。由于相對(duì)路口的交通信號(hào)是一樣的,故只需要單片機(jī)P1口的六個(gè)引腳就夠用了。2、交通燈信號(hào)設(shè)計(jì)方法在實(shí)際的交通控制中,如果一道為綠燈或黃燈時(shí),另一道必為紅燈。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0控制碼P1口狀態(tài)說明空空B綠B黃B紅A綠A黃A紅11110011F3HA燈放行,B燈禁止11110101F5HA燈警告,B燈禁止11011110DEHA燈禁止,B燈放行11101110EEHA燈禁止,B燈警告11110110F6H兩燈禁止,兩道禁行表5?3交通燈控制碼與狀態(tài)說明設(shè)P1口各引腳輸出高電平時(shí),則相關(guān)的連線的“信號(hào)燈”熄滅;反之,P1口線各引腳輸出低電平時(shí),則相關(guān)的連線的“信號(hào)燈”會(huì)點(diǎn)亮。形成的相應(yīng)控制碼和狀態(tài)說明見下表所示。5.5.2 交通燈亮滅時(shí)序設(shè)計(jì)好交通信號(hào)表達(dá)之后,我們就要考慮交通信號(hào)是如何進(jìn)行亮滅切換的。即:設(shè)計(jì)交通燈正常情況下的亮滅時(shí)序。通過圖示,A、B道(注:A是主道,B是支道)輪流放行。A道放行1分鐘,其中5秒用于警告(A綠燈閃爍3秒,A黃燈亮2秒);B道放行30秒,其中5秒用于警告(B燈警告設(shè)置同A燈)。要求主干道綠燈時(shí)間應(yīng)該設(shè)置比非主干道的要長一些,同時(shí)考慮綠燈要能夠保持一定時(shí)間的閃爍,起到提醒作用。圖4?11交通燈亮滅控制設(shè)計(jì)流程圖5.5.3 程序設(shè)計(jì)分析1、延時(shí)子程序代碼設(shè)計(jì)從信號(hào)燈點(diǎn)亮的時(shí)長有55秒、2秒、25秒很多種,較為特殊的是閃爍,亮滅一次為1秒,我們可以知道最小的延時(shí)時(shí)間應(yīng)該是0.5秒。為提高時(shí)間精確度,我們采用定時(shí)器進(jìn)行延時(shí)處理。單片機(jī)最長的定時(shí)時(shí)間為65.536ms,和0.5秒最小延時(shí)有很大差距,怎么辦呢?如果我們設(shè)置定時(shí)50ms,50ms重復(fù)10次,就可以獲取0.5秒的延時(shí)時(shí)間,如下代碼所示。延時(shí)時(shí)間到了,將F0標(biāo)志置“1”,讓主程序進(jìn)行相應(yīng)處理2、信號(hào)燈點(diǎn)亮控制的參數(shù)設(shè)計(jì)信號(hào)燈有七種狀態(tài):⑴A、B道禁行(即初始化1秒);⑵A綠燈點(diǎn)亮55秒;⑶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 骨科護(hù)理實(shí)習(xí)生出科考試試題及答案
- 福建師范大學(xué)《信號(hào)分析與控制》2023-2024學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《土壤地理學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《書法與鑒賞》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《模擬電子線路與實(shí)驗(yàn)》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《繪畫基礎(chǔ)與圖像處理》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《廣播電視采訪與寫作》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《多聲部音樂分析與習(xí)作一》2022-2023學(xué)年第一學(xué)期期末試卷
- 第二章 一般檢查課件
- 第11章 染色體病課件
- 河北省滄州市藥品零售藥店企業(yè)藥房名單目錄
- 《試驗(yàn)設(shè)計(jì)與統(tǒng)計(jì)分析》課程教學(xué)大綱
- 高一生物 基因工程的基本操作步驟(第1課時(shí)) 基因工程的基本操作程序 教學(xué)設(shè)計(jì)
- 奧運(yùn)項(xiàng)目介紹課件
- 2020年中國自由貿(mào)易試驗(yàn)區(qū)發(fā)展白皮書課件
- 糖尿病高危人群健康管理課件
- 呂氏春秋卷十一 仲冬紀(jì) 忠廉原文及翻譯
- 《相遇問題》-完整版PPT
- 滬教牛津版四年級(jí)上冊小學(xué)英語Module 2單元測試題(含聽力文件)
- 50430審核員考試試題
- 應(yīng)急物資儲(chǔ)備一覽表格模板
評(píng)論
0/150
提交評(píng)論