




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目 錄1 交通信號燈控制系統(tǒng)設(shè)計任務(wù)和性能指標(biāo) .1 1.1 設(shè)計任務(wù).1 1.2 性能指標(biāo).12 交通信號燈控制系統(tǒng)設(shè)計方案.1 2.1 設(shè)計思路 .1 2.1.1 設(shè)計思路.1 2.1.2 功能設(shè)計.2 2.2 總體設(shè)計.2 2.2.1 通行方案設(shè)計.2 2.2.2 硬件設(shè)計方案.4 2.2.3 軟件設(shè)計方案.43 交通信號燈控制系統(tǒng)硬件設(shè)計 .5 3.1 系統(tǒng)硬件框圖 .5 3.2 單元電路設(shè)計.5 3.2.1 單片機最小系統(tǒng) .5 3.2.2 信號燈顯示電路 .7 3.2.3 倒計時顯示電路 .8 3.2.4 按鍵操作電路 .8 4 交通信號燈控制系統(tǒng)程序設(shè)計 .8 4.1 理論基礎(chǔ)知
2、識 .8 4.1.1 定時器原理 .8 4.1.2 軟件延時原理 .9 4.1.3 中斷原理 .9 4.2 主程序框圖.95 調(diào)試分析及所用器件 .10 5.1 調(diào)試環(huán)境 .10 5.2 所用芯片 .116 心得體會 .117 參考文獻 .128 附錄 .13 附件1 程序清單.13 附件2 系統(tǒng)仿真圖.16摘要交通在人們的日常生活中占有重要的地位,隨著人們社會活動的日益頻繁,這點更是體現(xiàn)的淋漓盡致。交通信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和
3、自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。本系統(tǒng)采用單片機AT89C52為中心器件來設(shè)計交通信號燈控制器,系統(tǒng)實用性強、操作簡單、擴展性強。本設(shè)計系統(tǒng)就是由單片機最小系統(tǒng)、交通燈狀態(tài)顯示系統(tǒng)、LED數(shù)碼顯示系統(tǒng)、復(fù)位電路和按鍵操作電路等幾大部分組成。系統(tǒng)除具有基本的交通信號燈功能外,還具有倒計時、時間調(diào)整和緊急情況處理等功能,較好的模擬實現(xiàn)了十字路口可能出現(xiàn)的狀況。軟件上采用KEIL C 編程,主要編寫了主程序,LED數(shù)碼管顯示程序,中斷程序,延時程序等。經(jīng)過整機調(diào)試,實現(xiàn)了對十字路口交通燈的模擬。關(guān)鍵字:
4、AT89C52 交通燈 PROTUES 中斷程序1 交通信號燈控制系統(tǒng)設(shè)計任務(wù)和性能指標(biāo)1.1設(shè)計任務(wù) 利用單片機設(shè)計一個十字路口交通信號燈控制系統(tǒng),該交通信號燈控制器由一條主干道和一條支干道匯合成十字路口,在每個入口處設(shè)置紅、綠、黃三色信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時間停在禁行線外,并有倒計時系統(tǒng)顯示信號燈轉(zhuǎn)換時間。用紅、綠、黃發(fā)光二極管作信號燈,兩位八段數(shù)碼管顯示時間來控制交通信號燈的變化。模擬框圖如圖1所示。 圖1 交通信號燈模擬圖1.2性能指標(biāo)(1)東西和南北方向的車輛交替通行,任意時刻只有一個方向通行,以黃燈閃爍來轉(zhuǎn)換。(2)系統(tǒng)開始運行時設(shè)置每次放
5、行10秒,其中有2秒是黃燈閃爍提醒行人和車輛禁止通行。(3)通行時間可在099秒內(nèi)任意設(shè)置。(4)有緊急情況處理功能,比如:有急救車輛通行時,暫時禁止其他車輛通行。2 交通信號燈控制系統(tǒng)設(shè)計方案2.1設(shè)計思路 2.1.1設(shè)計思路(1)分析目前交通路口的基本控制技術(shù)以及各種通行方案,并以此為基礎(chǔ)提出自己的交通控制的初步方案。(2)確定系統(tǒng)交通控制的總體設(shè)計,包括,十字路口具體的通行禁行方案設(shè)計以及系統(tǒng)應(yīng)擁有的各項功能,在這里,本設(shè)計除了有基本的交通功能,還增加了倒計時顯示提示,基于實際情況,又增加了緊急狀況處理和通行時間可調(diào)這兩項特殊功能。 (3)選擇器件,大體分配各個器件及模塊的基本功能要求,
6、設(shè)計主控電路、顯示電路,信號燈狀態(tài)電路,按鍵電路等。(4)進行軟件系統(tǒng)的設(shè)計,對于本系統(tǒng),本人采用單片機C語言編寫,對單片機內(nèi)部結(jié)構(gòu)和工作情況做了充足的研究,在深入了解了定時器,中斷以及延時原理后,完成了軟件的編寫。 2.1.2 功能設(shè)計本設(shè)計能模擬基本的交通控制系統(tǒng),用紅綠黃燈表示禁行,通行和等待的信號發(fā)生,還能進行倒計時顯示,通行時間調(diào)整和緊急情況處理等功能。(1) 基本功能 采用紅綠黃三種顏色的LED燈的亮滅來模擬信號燈,從而達到控制車輛的通行。(2) 倒計時顯示功能 采用兩位八段數(shù)碼管來顯示時間,來告知行人和車輛通行時間和要等待的時間。(3)時間可調(diào)功能 通過鍵盤對時間進行手動設(shè)置,增
7、加了人為的可控性,避免車少長等和減緩車多交通堵塞的麻煩。(4)緊急處理 交通路口出現(xiàn)緊急狀況在所難免,如特大事件發(fā)生,救護車等急行車通過等,我們都必須盡量允許其暢通無阻,由此在交通控制中增設(shè)禁停按鍵。2.2 總體設(shè)計單片機設(shè)計交通燈控制系統(tǒng),可用單片機直接控制信號燈的狀態(tài)變化,基本上可以指揮交通的具體通行,接入LED數(shù)碼管就可以顯示倒計時以提醒行使者,更具人性化。本系統(tǒng)在此基礎(chǔ)上,加入了緊急情況處理與時間調(diào)整功能。2.2.1 通行方案設(shè)計十字路口分為東西向和南北向,在任一時刻只有一個方向通行,另一方向禁行,持續(xù)一定時間,經(jīng)過短暫的過渡時間,將通行禁行方向?qū)Q。其具體狀態(tài)如圖2所示。說明:黑色表
8、示亮,白色表示滅。交通狀態(tài)從狀態(tài)1開始變換,直至狀態(tài)4然后循環(huán)至狀態(tài)1,周而復(fù)始。 S1 東西通行 S2 東西禁行過渡狀態(tài) S3 南北通行 S4 南北禁行過渡狀態(tài)圖2 交通信號燈狀態(tài)通過對具體的十字路口交通信號燈狀態(tài)的演示分析,可以把這四個狀態(tài)歸納如下:狀態(tài)S1:東西方向綠燈亮,允許通行,南北方向紅燈亮,禁止通行; 狀態(tài)S2:東西方向綠燈轉(zhuǎn)黃燈閃爍,允許通行,南北方向紅燈亮,禁止通行;狀態(tài)S3:東西方向紅燈亮,禁止通行,南北方向綠燈亮,允許通行;狀態(tài)S4:東西方向紅燈亮,禁止通行,南北方向綠燈轉(zhuǎn)黃燈閃爍,允許通行;依據(jù)上述分析,東西的通行時間為狀態(tài)S1和狀態(tài)S2的時間之和,南北的通行時間為狀態(tài)
9、S3和狀態(tài)S4的時間之和,因此可以列出各個路口燈的狀態(tài)轉(zhuǎn)換如表1所示(其中邏輯值“1”代表執(zhí)行通行,邏輯值“0”代表禁止通行,邏輯值“L”代表綠燈轉(zhuǎn)黃燈):表1 交通燈狀態(tài)轉(zhuǎn)換表狀態(tài)時間東 西南 北綠燈黃燈紅燈 綠燈 黃燈 紅燈S18s100001S22s0L(閃爍)0001S38s001100S42s0010L(閃爍)02.2.2 硬件設(shè)計方案 本系統(tǒng)選用Atmel公司的AT系列單片機AT89C51為中心器件設(shè)計交通信號燈控制器,實現(xiàn)了紅綠燈循環(huán)點亮,綠燈變紅燈中間為黃燈閃爍警示的功能。每個方向采用紅綠黃三色的LED燈的亮滅來模擬信號燈,采用兩位八段共陽數(shù)碼管,顯示十字路口通行或禁止的剩余時
10、間,通過鍵盤對時間進行手動設(shè)置,增加了人為的可控性,避免車少長等和減緩車多交通堵塞的麻煩,同時增設(shè)了緊急情況處理按鍵,因為交通路口出現(xiàn)緊急狀況在所難免,如特大事件發(fā)生,救護車等急行車通過等,我們都必須盡量允許其暢通無阻。所設(shè)計的系統(tǒng)硬件框圖如圖3所示。STC80C51單片機最小系統(tǒng)LED數(shù)碼管顯示數(shù)碼管顯示按鍵控制電路圖3 系統(tǒng)硬件框圖2.2.3 軟件設(shè)計方案 設(shè)計要求為:首先南北方向紅燈、東西方向綠燈亮,南北方向紅燈10秒、東西方向綠燈8秒,相應(yīng)的數(shù)碼管顯示對應(yīng)的數(shù)字并讀秒,同時南北方向紅色的二極管和東西方向的綠色二極管接通點亮顯示,當(dāng)東西方向的綠燈時間到,則東西方向的綠燈轉(zhuǎn)為黃燈,同時數(shù)碼
11、管顯示黃燈的時間2秒,東西方向的黃色二極管接通點亮,此時南北方向的紅燈不變。南北方向的紅燈和東西方向的黃燈時間同時到,此時南北方向的紅燈跳轉(zhuǎn)為綠燈,時間同樣為8秒,東西方向有黃燈跳轉(zhuǎn)為紅燈,時間為10秒。當(dāng)南北方向的綠燈時間到,南北綠燈跳轉(zhuǎn)為黃燈,東西方向的紅燈不變,當(dāng)南北方向的黃燈和東西方向的紅燈時間到,南北方向的黃燈跳轉(zhuǎn)為紅燈,東西方向的紅燈跳轉(zhuǎn)為綠燈。進入開始的狀態(tài),循環(huán)執(zhí)行。此外還利用單片機的中斷設(shè)計了緊急情況處理和時間調(diào)整的功能。 根據(jù)設(shè)計要求,程序框圖如圖4所示。軟件采用KEIL C語言完成。軟件設(shè)計可以分為以下幾個功能模塊:初始化CPU初始化中斷狀態(tài)轉(zhuǎn)換S1-S2-S3-S4按鍵
12、操作中斷處理圖4 程序結(jié)構(gòu)框圖3 交通信號燈控制系統(tǒng)硬件設(shè)計3.1系統(tǒng)硬件框圖 AT89C52XTAL1 P0.0XTAL2 | P0.5RES P2.0 | P2.7P3 時鐘電路復(fù)位電路信號燈顯示倒計時顯示按鍵操作根據(jù)設(shè)計的要求,單片機選用AT89C52,其內(nèi)部帶有8KB的FLASH ROM,設(shè)計時無需外接程序存儲器,為設(shè)計和調(diào)試帶來極大的方便。四個方向各采用三個不同色的LED燈和1個兩位的數(shù)碼管顯示,來實現(xiàn)該方向的指示燈的點亮?xí)r間倒計時。按鍵可以根據(jù)系統(tǒng)的需要進行操作。 圖5 系統(tǒng)硬件框圖3.2單元電路設(shè)計 3.2.1單片機最小系統(tǒng) 對51系列單片機來說,單片機要正常工作,必須具有五個基
13、本電路,也稱五個工作條件:1、電源電路,2、時鐘電路,3、復(fù)位電路,4、程序存儲器選擇電路,5、外圍電路。因此,單片機最小系統(tǒng)一般應(yīng)該包括單片機、晶振電路、復(fù)位電路、外圍電路等,如下面的框圖所示:圖 6單片機最小系統(tǒng)框圖 (1)電源電路設(shè)計 單片機芯片的第40腳為正電源引腳VCC,一般外接+5V電壓。第20腳為接地引腳GND,常見電源電路設(shè)計如下圖7所示:圖7 電源設(shè)計(2)時鐘電路設(shè)計單片機是一種時序電路,必須要有時鐘信號才能正常工作。單片機芯片的18腳(XTAL2)、19腳(XTAL1)分別為片內(nèi)反向放大器的輸出端和輸入端,只要在18腳(XTAL2)和19腳(XTAL1)之間接上一個晶振,
14、再加上2個20PF的瓷片電容即可構(gòu)成單片機所需的時鐘電路,本設(shè)計就采用圖8所示時鐘電路。圖8 時鐘電路 此外,當(dāng)采用外部時鐘時,19腳(XTAL1)接地,18腳(XTAL2)接外部時鐘信號。(3)復(fù)位電路設(shè)計單片機芯片的第9腳RST(Reset)是復(fù)位信號輸入端。單片機系統(tǒng)在開機時或在工作中因干擾而使程序失控,或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復(fù)位。復(fù)位的作用是使中央處理器CPU以及其他功能部件都恢復(fù)到一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。AT89C52單片機的復(fù)位靠外部電路實現(xiàn),信號從RST引腳輸入,高電平有效,只要保持RST引腳高電平2個機器周期,單片機就能正常復(fù)位。 常見的
15、復(fù)位電路有上電復(fù)位電路和按鍵復(fù)位電路二種,如圖9所示。本設(shè)計采用手動復(fù)位電路。 A.上電復(fù)位 B.手動復(fù)位圖9 復(fù)位電路(4)程序存儲器選擇電路單片機芯片的第31腳(EA)為內(nèi)部與外部程序存儲器選擇輸入端。當(dāng)EA引腳接高電平時,CPU先訪問片內(nèi)8KB的程序存儲器,執(zhí)行內(nèi)部程序存儲器中的指令,當(dāng)程序計數(shù)器超過0FFFH時,將自動轉(zhuǎn)向片外程序存儲器,既是從1000H地址單元開始執(zhí)行指令;當(dāng)EA引腳接低電平時,不管片內(nèi)是否有程序存儲器,CPU只訪問片外程序存儲器。AT89S52內(nèi)部有8KB的程序存儲器,所以根據(jù)該腳的引腳功能,只要將該腳接上高電平,才能先從片內(nèi)程序存儲器開始取指令。常見的程序存儲器選
16、擇電路就是將第31腳直接接到正電源上。(5)外圍電路的設(shè)計外圍電路的設(shè)計主要依據(jù)項目要實現(xiàn)的功能,本項目要實現(xiàn)的功能是用單片機控制交通信號燈。 3.2.2交通信號燈顯示電路本系統(tǒng)采用LED作為信號燈來使用,單片機的I/O口直接與LED連接。在十字路口的四組紅、黃、綠三色交通燈中,東西方向的同色燈連接在一起,南北方向的同色燈也彼此連接,受單片機AT89C52的P0.0P0.5控制。12個LED指示燈采用共陽極的連接方式,因此I/O口輸出低電平時,與之相連的LED會亮,輸出高電平時,LED熄滅。 3.2.3倒計時顯示電路該交通信號燈控制系統(tǒng)在正常工作情況下,為方便提示路上行人及車輛交通燈轉(zhuǎn)換的剩余
17、時間,專門為控制系統(tǒng)提供了一個倒計時的顯示裝置。該裝置采用2位八段數(shù)碼管來顯示,每個路口需要1個,共4個,在設(shè)計電路時,本系統(tǒng)采用用共陽數(shù)碼管,直接和P2口連接,作為段選,來控制每個數(shù)碼管數(shù)字的顯示,再通過P1.0P1.3進行位選,來選擇要顯示的數(shù)碼管。3.2.3按鍵操作電路該系統(tǒng)最大的好處就是可以實現(xiàn)時間的調(diào)整和緊急停車功能,通過六個按鍵來達到對路面通行狀態(tài)的實時控制。 4 交通信號燈控制系統(tǒng)程序設(shè)計4.1 理論基礎(chǔ)知識 4.1.1定時器原理定時器工作的基本原理其實就是給初值,讓它不斷加1直至減完為模值,這個初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。
18、因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值,即所要求的計數(shù)值設(shè)定為C,把計數(shù)初值設(shè)定為TC 可得到如下計算公式:TC=M-C式中,M為計數(shù)器模值。計數(shù)值并不是目的,目的是時間值,設(shè)計1次的時間,即定時器計數(shù)脈沖的周期為T0,它是單片機系統(tǒng)主頻周期的12倍,設(shè)要求的時間值為T,則有C=TT0。計算公式變?yōu)椋篢=(MTC)T0模值和計數(shù)器工作方式有關(guān),本系統(tǒng)選用方式1計數(shù)。在方式1時M的值為65536,單片機的主脈沖頻率為12MHZ,經(jīng)過12分頻后,采用方式最大延時是65.536毫秒。所以選擇掃描周期為50ms。若使用軟件則會耽擱程序流程,顯然不可行。相反,時間計時方面卻不可能只用計數(shù)器,因為顯然
19、秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們還必須采用定時器和軟件相結(jié)合的辦法才能解決這個問題。 4.1.2軟件延時原理AT89C52單片機的工作頻率為12MHZ,機器周期與主頻有關(guān),機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間,但同時由于單片機的運行速度很快其他的指令執(zhí)行時間可以忽略不計。4.1.3 中斷原理本系統(tǒng)主要使用了定時器中斷和外部中斷,中斷信號由引腳T0、INT0和INT1輸入,低電平有效,CPU每個時鐘周期都會檢測INT0和INT1上的信號,單片機允許外部中斷以電
20、平方式或負邊沿方式兩種中斷方式輸入中斷請求信號,可由用戶通過設(shè)置TCON中IT0和IT1位的狀態(tài)來實現(xiàn)。以IT0為例,IT0=0,為電平觸發(fā)方式,IT0=1,為負邊沿觸發(fā)方式,本設(shè)計采用電平方式,IE0為其中斷標(biāo)志位,有中斷信號則置位,中斷服務(wù)子程序響應(yīng)后,IE0自動清零。IE中的EA為允許中斷的總控制位,為1開啟,EX0為外部中斷允許控制位,為1開啟。 使用proteus軟件進行電路仿真,芯片AT89C52還需要載入代碼文件來支持其正常工作以實現(xiàn)預(yù)期功能要求。程序代碼編寫是整塊設(shè)計的核心內(nèi)容,本系統(tǒng)中利用一個定時器T0完成了交通指示燈所有的切換過程和數(shù)碼管的倒計時功能,其中指示燈的切換有4種
21、不同的操作,數(shù)碼管的切換有2種不同的操作,用變量i表示狀態(tài)的切換。采用C語言進行編程,下面簡要介紹下各段程序代碼的意義和功能。4.2 主程序框圖主程序為交通燈四個狀態(tài)循環(huán)轉(zhuǎn)換的死循環(huán),主程序代碼和程序框圖如下所示。void main() Init(); /初始化,基本功能循環(huán)工作 while(1) key(); if(flag1=1&&flag_all!=1)/不在全部通行的模式下時正常刷新計數(shù) adjust_Time(); flag1=0; if(flag2=1) yellowled(); flag2=0; display(); 全部控制程序?qū)嶋H上分為若干模塊:鍵盤設(shè)置處理程
22、序,狀態(tài)燈控制程序,LED顯示程序緊停程序,中斷服務(wù)子程序,紅綠燈時間調(diào)整程序等。整個軟件程序方面主要分兩大部分:主程序部分和中斷處理程序。開始系統(tǒng)初始化東西亮綠燈,南北亮紅燈調(diào)顯示子程序(動態(tài)顯示)東西,南北方向換向東西黃燈閃爍,南北亮紅燈中斷處理子程序處理返回圖10 系統(tǒng)程序流程圖 設(shè)計說明:該交通信號燈控制系統(tǒng)的軟件設(shè)計采用的是順序執(zhí)行并反復(fù)循環(huán)的方法。在正常工作的情況下,每20s循環(huán)變化一次。每個循環(huán)周期在還剩2s時,正在通行路口的黃燈同時點亮并開始閃爍,以提醒路人上的行人及車輛,交通燈即將發(fā)生變化,當(dāng)緊急情況需要禁止通行時,按下全部禁行按鍵,黃燈閃3秒后四個方向全變紅燈,直到路面恢復(fù)
23、正常后,通過按三次功能鍵即可復(fù)位。 5 調(diào)試分析及所用芯片5.1 調(diào)試環(huán)境本設(shè)計使用仿真軟件Proteus和Keil C進行聯(lián)合調(diào)試。原理圖在Proteus提供的模板中選擇恰當(dāng)?shù)脑骷M行設(shè)計繪圖,完成電路的搭建,發(fā)現(xiàn)設(shè)計中的錯誤及時改正。所有c語言源程序都在Keil C下編寫,對仿真軟件進行相應(yīng)的設(shè)置后,Keil C和Proteus能進行通信,即在Keil C中全速運行程序時,Proteus中的單片機系統(tǒng)也會自動運行。系統(tǒng)的軟件調(diào)試借助于STC仿真器,在進行系統(tǒng)軟件的連續(xù)調(diào)試之前要先進行軟件的初調(diào),就是要使各個子程序模塊運行正確,程序的運行流程正確。軟件調(diào)試主要分以下幾個步驟進行:1 功能子
24、程序的調(diào)試,主要是查看每個子程序是否正確,這樣方便查錯。2 程序流程的調(diào)試。主要是查看程序運行的步驟是否正確,在某時刻程序運行所處的位置是否正確,是否能正確運行各個中斷服務(wù)程序。5.2所用芯片及參數(shù)表2 所用芯片序號名稱元件型號參數(shù)數(shù)量1單片機AT89C5212指示燈LED-REDGREENYELLOW12(各4個)38段兩位共陽數(shù)碼管7SEG-MPX2-CA44電容CAP22pF25電解電容CAP-ELEC10F16晶振 CRYSTAL12MHZ17電阻RES100128電阻RES50019排阻RESPACK-810K110按鍵BUTTON66 個人小結(jié)這次是我認為最有意義的一次課程設(shè)計,從
25、原理圖設(shè)計到軟件仿真,我從中收獲了許多。剛開始設(shè)計時,我就在校門口仔細觀察交通燈的轉(zhuǎn)換,經(jīng)過研究思考最終得到了上述的交通燈狀態(tài)轉(zhuǎn)換表。 對于交通燈這個題目,由于剛學(xué)了PLC實現(xiàn)交通信號燈的控制實驗,所以就想通過不同的核心器件來實現(xiàn)同樣的功能,來加深自己在這個題目上的深入研究,在確定題目之后,查閱了大量的資料,初步完成了電路設(shè)計方案。 在程序編寫上,我選擇了用KEIL C語言進行編程,。在整個程序的編寫過程中,采用模塊化,編一個子程序仿真一個,通過Keil 和proteus兩個軟件來實現(xiàn)的。Keil 幫助檢查程序是否存在語法錯誤之類的問題,同時可以生成hex文件,供proteus軟件仿真使用。通
26、過一周的課程設(shè)計,使我更深入的學(xué)習(xí)了AT89C52單片機,尤其是在中斷程序的編寫上學(xué)到了好多。 七 參考文獻1張毅坤. 單片微型計算機原理及應(yīng)用,西安電子科技大學(xué)出版社 1998 2夏繼強. 單片機實驗與實踐教程. 北京:北京航空航天大學(xué)出版社, 20013彭偉. 單片機C語言程序設(shè)計100例.北京:電子工業(yè)出版社, 20095雷麗文. 微機原理與接口技術(shù).北京:電子工業(yè)出版社, 20016于永. 51單片機C語言常用模塊與綜合系統(tǒng)設(shè)計.北京:電子工業(yè)出版社, 20077譚浩強. C語言程序設(shè)計.北京:清華大學(xué)出版社, 20058于永. 51單片機C語言常用模塊與綜合系統(tǒng)設(shè)計.北京:電子工業(yè)出
27、版社, 20078附錄附件1 程序代碼2#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit yellowled_nb=P03;/南北黃燈sbit yellowled_dx=P00;/東西黃燈sbit greenled_nb=P04; /南北綠燈sbit greenled_dx=P01;/東西綠燈sbit K1=P30; /時間加1調(diào)整sbit K2=P31;/時間減1調(diào)整sbit K3=P36;/功能鍵uchar code table
28、=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/共陽數(shù)碼管uchar code weixuan=0x01,0x02,0x04,0x08;uchar data buf4; /顯示緩沖區(qū)uchar max_dx=10;/東西綠燈通行時間uchar max_nb=10;/南北綠燈通行時間uchar sec_nb;/南北數(shù)碼指示值uchar sec_dx;/東西數(shù)碼管指示值uchar flag_nb;uchar flag_dx;/黃燈控制uchar flag_all;/全部禁止黃燈控制標(biāo)志uchar t;/控制禁止時的黃燈閃爍時長uch
29、ar flag1,flag2;/flag1為1s定時標(biāo)志,flag2為黃燈閃爍標(biāo)志uchar data time,time1;/time控制1s定時,time1控制黃燈閃爍時間bit set=0;/交通燈方向切換標(biāo)志int adjust_flag=-1;/功能選擇位/毫秒延時函數(shù)void delayms(uint ms)uint j,k;for(j=0;j<ms;j+)for(k=0;k<110;k+);/調(diào)刷新計時數(shù)據(jù)緩沖void adjust_BUFFER()buf1=sec_nb/10; /第1位 東西秒十位if(buf1=0) buf1=10;buf0=sec_nb%10;
30、 /第2位 東西秒個位buf3=sec_dx/10; /第3位 南北秒十位if(buf3=0) buf3=10; buf2=sec_dx%10; /第4位 南北秒個位/刷新調(diào)整南北時間緩沖void adjust_BUFFER1()buf1=max_nb/10; /第1位 東西秒十位if(buf1=0) buf1=10; buf0=max_nb%10; /第2位 東西秒個位buf3=max_dx/10; /第3位 南北秒十位 if(buf3=0) buf3=10; buf2=max_dx%10; /第4位 南北秒個位void key1()/調(diào)整時間(+1)/調(diào)整對象標(biāo)志位if(adjust_fl
31、ag=0&&flag_all!=1)max_nb+; /南北加1Sif(max_nb=100)max_nb=5;/最小為5else if(adjust_flag=1&&flag_all!=1)max_dx+;/東西加1Sif(max_dx=100)max_dx=5;if(adjust_flag!=-1&&flag_all!=1)adjust_BUFFER1(); void key2()/調(diào)整時間(-1)/調(diào)整對象標(biāo)志位if(adjust_flag=0&&flag_all!=1)max_nb-; /南北減1Sif(max_nb=4)
32、max_nb=99;/最大為120else if(adjust_flag=1&&flag_all!=1)max_dx-; /東西減1Sif(max_dx=4 )max_dx=99;if(adjust_flag!=-1&&flag_all=0)adjust_BUFFER1(); void key3()/功能鍵判斷adjust_flag+;if(adjust_flag>=2)adjust_flag=-1;if(adjust_flag=-1) if(flag_all=1)flag_all=0;sec_nb=max_nb-2;sec_dx=max_nb;TR0=1
33、; P0=0xeb;adjust_BUFFER();elseif(flag_all!=1)adjust_BUFFER1();void key() /按鍵掃描 if(K1=0)/掃描按鍵1 (+1) delayms(10);if(K1=0) key1(); while(!K1); if(K2=0)/掃描按鍵2 (-1) delayms(10); if(K2=0) key2(); while(!K2); if(K3=0)/掃描按鍵2 (-1) delayms(10); if(K3=0) TR0=0; key3(); while(!K3); void display()/顯示數(shù)據(jù) uchar i;f
34、or(i=0;i<4;i+) P1=0x00; delayms(2); P2=tablebufi; P1=weixuani; delayms(4);/控制黃燈閃爍void yellowled() if(flag_nb=1) yellowled_nb=yellowled_nb;else if(flag_dx=1) yellowled_dx=yellowled_dx;if(flag_all=1) yellowled_nb=yellowled_nb; yellowled_dx=yellowled_dx; t+;/一次閃爍時間為250ms if(t>=12) t=0;TR0=0; P0=0xdb; void adjust_Time() sec_dx-; sec_nb-;if(set=0)/如果是南北方向通行時if(sec_nb=0)if(flag_nb=0) sec_nb=2; flag_nb=1;/南北黃燈控制 greenled_nb=1; /關(guān)綠燈 yellowled_nb=0;/南北黃燈亮else flag_nb=0;/南北黃燈控制位清零 set=1; sec_dx=max_dx-2; s
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第八章 壓強和浮力《第三節(jié) 探尋連通器》教學(xué)設(shè)計2024-2025學(xué)年北師大版(2024)初中物理八年級下冊標(biāo)簽標(biāo)題
- 二零二五年度船舶動力系統(tǒng)研發(fā)與船舶維修合同
- 二零二五年度家畜飼料產(chǎn)業(yè)鏈金融服務(wù)合作協(xié)議
- 二零二五年度知識產(chǎn)權(quán)轉(zhuǎn)讓合同原告代理詞
- 2025年度環(huán)保產(chǎn)業(yè)用地租賃與環(huán)保技術(shù)研發(fā)合同
- 二零二五年度婚前財產(chǎn)明確界定及婚后財產(chǎn)分配合同協(xié)議
- 二零二五年度物流運輸行業(yè)數(shù)據(jù)分析與應(yīng)用合同
- 二零二五年度體育產(chǎn)業(yè)實習(xí)生訓(xùn)練合同
- 大青葉的鑒定(中藥鑒定技術(shù))
- 第五章 第1節(jié) 透鏡2024-2025學(xué)年新教材八年級上冊物理新教學(xué)設(shè)計(人教版2024)
- 《生物質(zhì)熱電聯(lián)產(chǎn)工程設(shè)計規(guī)范》
- 中國十五冶招聘線上筆試測評題庫
- 中國結(jié)直腸癌診療規(guī)范(2023版)解讀
- 通用級聚苯乙烯簡介介紹
- 《反竊電技術(shù)》課件
- 1.1原子結(jié)構(gòu)-12課時課件高二化學(xué)人教版選擇性必修2
- 如何讓孩子積極參與家務(wù)勞動
- 2023年污水處理行業(yè)洞察報告及未來五至十年預(yù)測分析報告(修訂版)
- 小學(xué)生素質(zhì)發(fā)展報告單
- 人衛(wèi)版急診與災(zāi)難醫(yī)學(xué)之呼吸困難教學(xué)課件
- 拓撲數(shù)據(jù)分析理論
評論
0/150
提交評論