導航:首頁 > 操作系統 > 單片機實訓交通燈原理圖

單片機實訓交通燈原理圖

發布時間:2023-04-04 16:00:51

A. 51單片機交通燈電路圖與程序

網路文檔里我已經上傳,你可以去下載http://wenku..com/view/16a276c66137ee06eff918a8.html

B. 模擬交通燈 單片機C51,要電路圖和程序

package guidemo;

import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

/**
* <p>Title: 圖形用戶界亂或面</p>
*
* <p>Description: 簡單的圖形界面編程</p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author vic
* @version 1.0
*/
public class ColorFrame extends Frame implements MouseListener {
Label L; //標簽
TextField T; //文本域
Button B1, B2; //按鈕
public ColorFrame() {
this.setLayout(null); //想要手動指定各組件的的位置
L = new Label("輸山侍入學號:"); //設定標簽L內容
L.setBounds(60, 50, 50, 25); //設定標簽L外觀
this.add(L); //將標簽L添加到窗口逗陪吵中
T = new TextField("請在這里輸入"); //設定文本域T的內容
T.setBounds(125, 50, 90, 25); //設定文本域T的外觀
this.add(T); //將文本域T添加到窗口中
B1 = new Button("變紅!"); //設定按鈕B1的內容
B1.setBounds(25, 90, 90, 25); //設定按鈕B1的外觀
B1.addMouseListener(this);//在B1上注冊滑鼠監聽器
this.add(B1); //將按鈕B1添加到窗口中
B2 = new Button("變綠!");
B2.setBounds(125, 90, 90, 25);
B2.addMouseListener(this);
this.add(B2);
WindowDestroyer Listener = new WindowDestroyer(); //創建關閉窗口監聽器
this.addWindowListener(Listener); //將監聽器添加到窗口中
this.setBackground(Color.yellow); //設定窗口背景顏色
this.setTitle("This is Frame!"); //設定窗口標題文字
this.setBounds(0, 0, 250, 220); //設定窗口位置和大小
this.setVisible(true); //顯示窗口
}

public void mouseClicked(MouseEvent e) {
if (e.getComponent() == B1) {//getComponent返回按鈕上面的字元串
this.setBackground(Color.red);
}
if (e.getComponent() == B2) {
this.setBackground(Color.green);
}
}

public void mouseExited(MouseEvent e) {}

public void mouseEntered(MouseEvent e) {}

public void mouseReleased(MouseEvent e) {}

public void mousePressed(MouseEvent e) {}

public static void main(String[] args) {
new ColorFrame();
}
}

C. 用單片機設計製作一個模擬的十字路口交通信號燈控制系統。

摘 要

在日常生活中,交通信號燈的使用,使交通得以有效管理,對於疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。交通燈控制系統由80C51單片機、鍵盤、LED顯示、交通燈延時組成。系統除具有基本交通燈功能外,還具有時間設置、LED信息顯示功能,市交通實現有效控制。

關鍵字:交通燈;單片機;自動控制;LED

Abstract

In daily life, the use of traffic lights, so traffic can be managed effectively in smoothing traffic flow, increase road capacity and rece traffic accidents have remarkable results. Traffic light control system consists of 80C51 microcontroller, keypad, LED display, traffic light delay component. In addition to the traffic light system has the basic functions, but also with time settings, LED information display function, achieving effective control of city traffic

Key Words:traffic lights; SCM; control; LED

目 錄

1 交通燈任務、功能要求說明及總體方案介紹 …………………………………1
1.1 交通燈任務…………………………………………………………………1
1.2 功能要求說明………………………………………………………………1
1.3 設計總體方案介紹及工作原理說明………………………………………2
2 交通燈硬體系統的設計 …………………………………………………………4
2.1 硬體系統各模塊功能介紹…………………………………………………4
2.2 電路原理圖 ………………………………………………………………5
2.3 電路PCB圖 ………………………………………………………………5
2.4 元器件布局圖 ……………………………………………………………5
2.5 元器件清單 ………………………………………………………………5
3 交通燈軟體系統的設計 …………………………………………………………7
3.1 單片機的使用資源情況 …………………………………………………7
3.2 軟體模塊功能介紹 ………………………………………………………8
3.3 程序流程圖 ………………………………………………………………8
3.4 程序清單 …………………………………………………………………10
4 設計總結…………………………………………………………………………11
4.1 使用說明 …………………………………………………………………11
4.2 誤差分析 …………………………………………………………………11
4.3 設計體會 …………………………………………………………………11
4.4 教學建議 …………………………………………………………………12
參考文獻 ……………………………………………………………………………13
致 謝 ………………………………………………………………………………14
附錄一 電路原理圖 ………………………………………………………………15
附錄二 電路PCB頂層圖 …………………………………………………………16
附錄三 電路PCB底層圖 …………………………………………………………17
附錄四 元器件布局圖 ……………………………………………………………18
附錄五 元器件清單 ………………………………………………………………19
附錄六 程序清單…………………………………………………………………20
1 交通燈任務、功能要求說明及總體方案介紹

1.1 交通燈任務
設計一個具有特定功能的十字路口交通燈。該交通燈上電或按鍵復位後能自動顯示系統提示符「P.」, 進入准備工作狀態。按開始鍵則開始工作,按結束鍵則返回「P.」狀態。要求甲車道和乙車道兩條交叉道路上的車輛交替運行,甲車道為主車道,每次通車時間為60秒,乙車道為次車道,每次通車時間為30秒,要求黃燈亮3秒,並且1秒閃爍一次。有應急車輛出現時,紅燈全亮,應急車輛通車時間10秒,同時禁止其他車輛通過。
1.2 功能要求說明
本次課程設計在硬體方面的接法如下:P2口接二極體,P2.0、P2.1、P2.2口線分別來控制東西方向的綠燈、黃燈和紅燈;P2.3、P2.4、P2.5口線分別控制南北方向的紅燈、黃燈和綠燈。P0口作為數碼管的位控(這里只用到了P0.0、和P0.1兩根口線),P1口作為數碼管的段控,P3口作為輸入部分(這里用到了P3.0、P3.1、P3.2口線),控制數碼管的顯示情況和二極體的亮滅情況。
當交通燈上電或按鍵復位後能自動顯示系統提示符「P.」,進入准備工作狀態。
當按下啟動按鈕K1並釋放後,數碼管顯示將會從「60」開始倒計時,每隔一秒減1,此時南北方向開始一直亮綠燈,東西方向一直亮紅燈,直到顯示為「00」時,數碼管將會從「03」開始倒計時,每隔一秒減1,此時南北方向每隔一秒黃燈就閃爍一次,東西方向亮一直紅燈,直到顯示為「00」時,數碼管將會從「30」開始倒計時,此時南北方向一直亮紅燈,東西方向一直亮綠燈,直到顯示為「00」時,數碼管又將從「03」開始倒計時,此時南北方向一直亮紅燈,東西方向每隔一秒黃燈就閃爍一次;當沒有其他鍵按下時,交通燈將這樣一直循環下去。
當按下結束鍵K2並釋放後,數碼管將顯示「P.」,東西南北方向無燈亮。
當按下緊急鍵K3並釋放後,數碼管將顯示「09」,並且每隔一秒就減1,
東西南北方向全部紅燈亮。
單片機採用AT89S52,fosc=12MHZ。其按鍵功能如表1.1所示。

表1.1 按鍵功能
按鍵 鍵名 功能
P3.4 K1鍵 啟動鍵
P3.7 K2鍵 結束鍵
P3.6 K3鍵 緊急鍵
1.3 設計總體方案介紹及工作原理說明
1.3.1 總體方案介紹
該交通燈電路由單片機AT98S52、鍵盤介面電路、顯示介面電路、發光二極體控制電路、時鍾電路和復位電路構成,原理框圖如圖1.1所示。
圖1.1 原理框圖
(1) 電源提供方面
採用獨立的穩壓電源,此方案的優點是穩定可靠,且有各種成熟電路可供使用。
(2) 顯示方面
完全採用數碼管顯示,用來顯示有限符號和數碼字元。
(3) 鍵盤輸入方面
直接在I/O口線上接按鍵開關,因為設計時精簡和優化了電路,所以剩餘的口資源還比較多。我們共用到了4個按鍵,分別為:K0、K1、K2、K3。
1.3.2 工作原理
首先時鍾電路產生單片機工作時所需要的時鍾信號,這是單片機能夠正常工作的前提,而單片機有無定時的基礎以及定多長的時間,這些還需要我們人為的確定。我是採用10ms延時程序來反復調用來定時,在我們的硬體電路中,按鍵的鍵功能程序在中斷服務中,在正常情況下會不斷運行主程序,當有鍵按下時,CPU去轉去執行中斷程序,而中斷程序可以執行三種鍵功能:第一個是十秒倒計時緊急紅燈亮;第二個是結束倒計時,顯示P.;第三個是重新開始倒計時。其原理是INTO=P3.4&P3.6&P3.7,當有鍵按下時,外部中斷0口線就會變成低電平,通過鍵掃程序來具體判斷到底是哪個鍵按下,CPU才會去執行中斷裡面的某個鍵功能。12個發光二極體是由P0口控制的,P0口與二極體之間串接一個限流電阻使二極體不易燒壞,採用送低電平有效。

2 交通燈硬體系統的設計

2.1 硬體系統各模塊功能介紹
2.1.1 顯示電路
在本次課程設計中,我們採用的是四位一體共陽數碼管。本設計的顯示驅動是採用三極體作為驅動。並且,無論是位控線上還是段控線上都串接一個電阻,以提高其輸出功率,在這里採用220歐母電阻。
2.1.2 指示燈控制電路
本次課程設計採用P3口控制二極體的發光情況,口線送低電平有效,具體設計如下:P3.2控制東西方向的綠燈,P3.4口控制東西方向的黃燈,P3.5控制東西方向的紅燈,P3.1控制南北方向的紅燈,P3.7控制南北方向的黃燈,P3.0控制南北方向的綠燈。
2.1.3 鍵盤控制電路
鍵盤是最常用的輸入設備,是實現人機對話的紐帶。按其結構形式可分為非編碼鍵盤和編碼鍵盤。
編碼鍵盤採用硬體方法產生鍵碼。每按下一個鍵,鍵盤能自動生成鍵盤代碼,鍵數較多,且具有去抖動功能。這種鍵盤使用方便,但硬體較復雜。非編碼鍵盤僅提供按鍵開關工作狀態,其鍵碼由軟體確定,這種鍵盤鍵數較少,硬體簡單,廣泛應用於各種單片機應用系統,在單片機控制電路中,可把單片機使用的鍵盤分為獨立式和矩陣式兩種。獨立式實際上就是一組獨立的按鍵,這些按鍵可直接與單片機的I/O口連接,即每個按鍵獨佔一條口線,這種接法簡單。矩陣式鍵盤也稱行列式鍵盤,因為鍵的數目較多,所以鍵按行列組成矩陣。本設計中鍵盤數目較少,且為安裝方便,因此在本設計中採用獨立式接法。
按從一個鍵到鍵的功能被執行主要應包括兩項工作:一是鍵的識別,即在鍵盤中找出被按的是哪個鍵,另一項是鍵功能的實現。第一項工作是使用介面電路實現的,而第二項工作則是通過執行中斷服務程序來完成。具體來說,鍵盤介面應完成以下操作功能:
(1) 鍵盤掃描,以判定是否有鍵被按下(稱之為「閉合鍵」)。
(2) 鍵識別,以確定閉合鍵的行列位置。
(3) 產生閉合鍵的鍵碼。
(4) 排除多鍵、串鍵(復鍵)及去抖動。
以上這些內容通常是以軟硬體結合的方式來完成的,即在軟體的配合下由介面電路來完成。但具體哪些由硬體哪些由軟體完成,要看介面電路的情況。總的原則是,硬體復雜軟體就簡單,硬體簡單軟體就得復雜一些。
2.1.4 時鍾電路
時鍾電路用來產生單片機工作所需要的時鍾信號,單片機本身就是一個復雜的同步時序電路,為了保證同步工作方式的實現,電路應在唯一的時鍾信號控制下嚴格地按時序進行工作。通過在晶元的外部XTAL1和XTAL2兩個引腳跨接晶體振盪器和微調電容,形成反饋電路,就構成了一個穩定的自激振盪電路。時鍾電路為單片機產生時鍾脈沖序列,本設計中採用的晶振頻率為12MHz,電容為33pF。
2.1.5 復位電路
復位電路用於產生復位信號,通過RST引腳送入單片機,復位是單片機的初始操作,其主要功能是:為一些專用寄存器設置初始狀態、程序狀態字PSW清0、程序計數器PC被賦值為0000H等,除了進入系統的正常初始化之外,當由於程序運行出錯或操作錯誤使系統處於死鎖狀態時,為擺脫困境,也需安裝復位鍵以重新啟動。RST引腳是復位信號的輸入端,復位信號是高電平有效,完成復位操作共需要24個狀態周期,復位結束後,單片機從地址0000H單元開始執行程序,SP為07H,其它寄存器大多數被置為00H,本設計使用頻率為12MHz的晶振,所以復位信號持續時間應超過2μs才能完成復位操作。復位電路分為上電復位、按鍵復位、按鍵脈沖復位三種,本次課程設計採用的是按鍵復位。
2.1.6 單片機最小系統
它採用單片機AT89S52晶元,能實現基本I/O口實驗,定時計數器實驗等等。具有單片機並口的輸入、輸出的功能特點。
2.2 電路原理圖
電路原理圖見附錄一所示。
2.3 電路PCB圖
電路PCB頂層圖見附錄二所示;
電路PCB頂層圖見附錄三所示。
2.4 元器件布局圖
元器件布局圖見附錄四所示。
2.5 元器件清單
元器件清單見附錄五所示。

3 交通燈軟體系統的設計

3.1 單片機的使用資源情況
3.1.1 硬體資源使用說明
 P0口為二極體的控制端
 P1口用作地址/數據匯流排
 P2口用作地址/數據匯流排
 P3.4、P3.6、P3.7口線作為鍵盤輸入端
 採用了INTO外部中斷
既在AT89S52的P0口用來接十二個發光二極體的陰極,控制其亮與滅,P1口和P2口外接由2個LED數碼管(LED1、LED0)構成的顯示器,用P2口作LED的段碼輸出口(P2.0~P2.7對應於LED的a~dp),P1口作LED的位控輸出線(P1.1、P1.0分別對應於LED1、LED0),其中在P1的串列口外接2個三極體作為顯示驅動,顯示為2個數碼管(LED0~LED1)進行動態顯示。P3口外接三個個按鍵K1、K2、K3(分別對應於P3.4、P3.7、P3.6口)用於調整顯示介面電路。
3.1.2 交通燈的分配表
交通燈的口線分配如表3.1所示,「1」表示送高電平,「0」表示送低電平。
表3.1 交通燈分配表
P0.2 東西綠燈 1 1 0 1
P0.3 東西黃燈 1 1 1 0
P0.4 東西紅燈 0 0 1 1
P0.5 南北紅燈 1 1 0 0
P0.6 南北黃燈 1 0 1 1
P0.7 南北綠燈 0 1 1 1
控制碼 6FH AFH DBH D7H

狀態說明 南北放行,東西禁止 南北警告,東西禁止 南北禁止,東西放行 南北禁止,東西放行
3.2 軟體模塊功能介紹
主程序模塊的主要任務是程序的初始化顯示「P.P.」,當沒任何鍵按下時,顯示模塊將一直不變,交通燈全部是熄滅的,當K0鍵按下並松開後開始倒計時,
其中在時間顯示的過程中判斷是否有K0、K1和K2鍵按下,當再次按下K0時,顯示將重新開始倒計時,如果是K1按下,將顯示「P.」,並且發光二極體全部熄滅,如果是K2按下,數碼管將開始十秒倒計時,並且東西南北全部亮起紅燈。
3.3 程序流程圖
主程序的流程圖如圖3.1所示,按鍵判斷程序流程圖如圖3.2所示

圖3.1 主程序流程圖

圖3.2 判斷按鍵程序流程圖

3.4 程序清單
程序清單詳見附錄六 。

4 設計總結

4.1 使用說明
本實驗主要是利用單片機AT89S52、數碼管和發光二極體組成,整個電路結構比較簡單,它能實現以下幾個功能:
 時間的顯示。
 紅黃綠燈的發光與熄滅。
具體操作說明如下: 當交通燈上電或按鍵復位後能自動顯示系統提示符「P.」,進入准備工作狀態。當按下啟動按鈕K1並釋放後,數碼管顯示將會從「60」開始倒計時,每隔一秒減1,此時南北方向開始一直亮綠燈,東西方向一直亮紅燈,直到顯示為「00」時,數碼管將會從「03」開始倒計時,每隔一秒減1,此時南北方向沒隔一秒黃燈就閃爍一次,東西方向亮一直紅燈,直到顯示為「00」時,數碼管將會從「30」開始倒計時,此時南北方向一直亮紅燈,東西方向一直亮綠燈,直到顯示為「00」時,數碼管又將從「03」開始倒計時,此時南北方向一直亮紅燈,東西方向每隔一秒黃燈就閃爍一次;當沒有其他鍵按下時,交通燈將這樣一直循環下去。當按下結束鍵K2並釋放後,數碼管將顯示「P.」,東西南北方向無燈亮,當有其它鍵按下時,就退出,去執行該鍵的鍵功能。當按下緊急鍵K3並釋放後,數碼管將顯示「10」,並且每隔一秒就減1,東西南北方向全部紅燈亮,當沒亮到顯示「00」就有其它鍵按下時,就退出,執行該鍵的鍵功能,當顯示到「00」時,就會自動退出中斷繼續完成主程序。
4.2 誤差分析
本次課程設計的誤差就在於顯示時間,我採用的是調用延時程序來讓顯示器上數字共顯示一秒鍾,而循環一次的時間並不僅僅只是2次調用延時程序的時間,其間CPU還執行其它指令,例如說將緩存區的內容送給累加器A、查表指令、將段控碼送給P2口等等,因為它們都是微秒級的,而延時程序是毫秒級的,因此在計算的過程中就可以省略了,每次循環除兩次調用延時程序外,所用時間為22微秒,而顯示一秒鍾共循環了50次,因此在顯示器上只需要顯示1秒數字,事實上多顯示了1100微秒,誤差率=1.1%。
4.3 設計體會
經過一個多星期的時間,終於完成了這次的課程設計。在這期間,其他同學提出了許多寶貴的意見,使這次設計終於完滿成功了。
我覺得作為一名自動化專業的學生,單片機的課程設計是很有意義的。更重要的是如何把自己平時所學的東西應用到實際中。雖然自己對於這門課懂的並不多,很多基礎的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過自身去理解,但是靠著這一個多禮拜的「學習」,在同學的幫助和講解下,漸漸對這門課逐漸產生了些許的興趣,自己開始主動學習並逐步從基礎慢慢開始弄懂它。我認為這個收獲應該說是相當大的。
經過這次課程設計,也讓我更加深刻的認識到學好單片機的重要意義。當今單片機滲透到我們生活的各個領域比如從導彈的導航裝置、飛機上各種儀表的控制、計算機的網路通訊與數據傳輸、自動控制領域的機器人、智能儀表、醫療器械、工業自動化過程的實時控制和數據處理等等到我們生活中接觸到的各種智能IC卡、民用豪華轎車的安全保障系統、錄像機、攝像機、全自動洗衣機的控制以及程式控制玩具、電子寵物等等,這些都離不開單片機。它主要是作為控制部分的核心部件。因此,單片機的學習、開發在各行各業異常重要。在今後的學習中,我會更加努力的學習鞏固單片機,為以後的工作打下堅固的基礎。
4.4 教學建議
在王韌老師的嚴格要求與耐心指導下,經過一個學期對單片機技術這門課程的學習,使我對單片機這一技術的應用有了一定的了解,並對單片機的學習產生了濃厚的興趣。
通過本次單片機控制交通燈的設計,結合本人的學習過程與切身感受向老師提出以下幾點教學意見:希望老師以後能夠在一開始教這門課的時候就讓整個班分好小組,讓那些對單片機比較熟悉的同學幫助基礎較差的同學,那樣可以提高學習的效率與熱情;另外,王老師可以多介紹些與單片機相關的資料書給學生,培養學生查閱資料書的能力;最後一點,就是王老師在單片機擴展方面不必講解的過細,重點在於引導思路,形成單片機的整體框架結構。

附錄一 電路原理圖

附錄二 PCB頂層圖

附錄三 PCB底層圖

附錄四 元器件布局圖

附錄五 交通燈元器件清單

元器件及材料名稱 規格 數目 備注
AT89S52加底座 1
四位一體共陽數碼管加底座 2 0.5寸
晶振 12MHz 1 三晶
發光二極體 大個的 9
單排插 40腳 1
三極體 9012 9
蜂鳴器 1 5V
小按鍵 9 6*6*4.3mm
下載口座子 十芯 1 FC-10P
18b20溫度感測器 1
六腳按鍵開關 1 6*6*4.3mm
Usb電源線加介面 1 USB線加USB介面
電阻 200 1
電阻 4.7K 1
電阻 1K 3
電阻 470 24
電解電容 22uf 1
瓷片電容 33pf 2
排阻 10k 2
短路帽 3
杜邦線8P 1
PCB板子 150mm*200mm 1
電源白色插座 1

附錄六 程序清單

ORG 0000H
LJMP MAIN
ORG 001BH
LJMP LOOP1
ORG 0030H
MAIN: MOV PSW, #00H; 初始化
MOV SP, #7FH
MOV TMOD, #10H;
MOV TH1, #3CH;
MOV TL1, #0B0H;
MOV TH0, #0FCH;
MOV TL0, #18H;
MOV 78H, #11H;
MOV 79H, #10H;
MOV 7AH, #10H;
MOV 7BH, #10H;
MOV 7CH, #10H;
MOV 7DH, #10H;
MOV 7EH, #10H;
MOV 7FH, #10H;
MOV R7, #0FAH;
MOV R6, #32H;
MOV R5, #05H;
MOV R4, #39H;
MOV R1, #20;
SETB EA;
SETB ET1;
PP: LCALL DIR;
START: LCALL KEY;
JB 20H.0, K0;
LJMP PP;
K0: MOV R4, #39H;
MOV R1, #20;
SETB TR1;
MOV 78H, #07H;
MOV 79H, #05H;
MOV 7AH, #10H;
MOV 7BH, #10H;
MOV 7CH, #10H;
MOV 7DH, #10H;
MOV 7EH, #10H;
MOV 7FH, #10H;
LCALL DIR;
CYCLE0: MOV P3, #0DEH;主綠副紅
JB 20H.2, OUT;
KK0: JB 20H.1, JINJI;

CJNE R4, #00, CYCLE0;延時60秒
MOV R4, #03H;

MOV 78H, #03H;
MOV 79H, #00H;
CYCLE1: MOV P3, #0DFH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #10, CYCLE1;
CYCLE2: MOV P3, #0DDH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #20, CYCLE2;
CJNE R4, #00H, CYCLE1;
MOV R4, #1EH;

MOV 78H, #07H;
MOV 79H, #02H;
CYCLE3: MOV P3, #0F3H;主紅副綠
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R4, #00, CYCLE3;延時30秒
MOV R4, #03H;

MOV 78H, #03H;
MOV 79H, #00H;
CYCLE4: MOV P3, #0DFH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #10, CYCLE4;
CYCLE5: MOV P3, #0DDH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #20, CYCLE5;
CJNE R4, #00H, CYCLE4;
MOV R4, #39H;
LJMP K0;

JINJI: MOV R4, #10;緊急車輛按鍵
CYCLE6: MOV P3, #0DBH
CJNE R4, #00, CYCLE6;
LJMP K0;

OUT: MOV P3, #0FFH;
MOV 78H, #11H;
MOV 79H, #10H;
MOV 7AH, #10H;
MOV 7BH, #10H;
MOV 7CH, #10H;
MOV 7DH, #10H;
MOV 7EH, #10H;
MOV 7FH, #10H;
MOV R7, #0FAH;
LJMP PP;

DIR: PUSH DPH; 顯示子程序
PUSH DPL;
PUSH ACC;
PUSH PSW;
SETB RS0;
CLR RS1;
MOV R0, #78H;
MOV R3, #0FEH;
MOV A, R3;
LD0: MOV P2, A;
MOV DPTR, #TABLE;
MOV A, @R0;
MOVC A, @A+DPTR;
MOV P0, A;
LCALL DELAY;
INC R0;
MOV A, R3;
JB ACC.7, LD1;
RL A;
MOV R3, A;
LJMP LD0;
LD1: CLR RS0; 恢復當前通用寄存器組組號
CLR RS1;
POP PSW;
POP ACC; 恢復現場
POP DPL;
POP DPH;
RET;

TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H; 0--6
DB 0F8H,80H,90H,88H,83H,0C6H,0A1H; 7--D
DB 86H,8EH,0FFH,0CH; E--F,滅,P.

KEY: LCALL KEYCHULI;鍵掃程序
JZ EXIT;
LCALL XX0;
LCALL KEYCHULI
JZ EXIT;
MOV B, 20H;
KEYSF: LCALL KEYCHULI;
JZ KEY1;
LCALL XX0;
LJMP KEYSF;
KEY1: MOV 20H, B;
EXIT: RET;

KEYCHULI: MOV P1, #0FFH;
MOV A, P1;
CPL A;
ANL A, #0FH;
MOV 20H, A;
RET;

DELAY: DJNZ R7, DELAY;顯示延時子程序
MOV R7, #0FAH;
DJNZ R5, DELAY;
MOV R5, #05H;
RET;

; 定時1秒中斷程序:
LOOP1:
MOV TH1, #3CH;定時器0賦初值,定時50ms
MOV TL1, #0B0H;
LCALL DIR;
LCALL KEY;
DJNZ R1, RETURN;
DEC R4;
MOV R1, #20;
MOV R0, #79H;
LCALL DADD1;
RETURN: RETI;

; 去抖延時子程序:
XX0: DJNZ R7, XX0;
MOV R7, #0FAH;
DJNZ R6, XX0;
MOV R6, #32H;
RET;

減一子程序:
DADD1: MOV A, @R0;
DEC R0;
SWAP A;
ORL A, @R0;
SUBB A, #01H;
DA A;
MOV R2, A;
ANL A, #0FH;
MOV @R0, A;
MOV A, R2;
INC R0;
ANL A, #0F0H;
SWAP A;
MOV @R0, A;
RET;

END

D. 跪求用單片機8051晶元設計的交通信號燈,那位大哥,大姐,幫下小弟

單片機課程設計與總結報告

摘要
近年來隨著科技的飛速發展,單片機的應用正在不斷地走向深入,同時帶動傳統控制檢測日新月益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬體結構,以及針對具體應用對象特點的軟體結合,加以完善。交通信號燈的出現,使交通得以有效管制,對於疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。本系統採用單片機AT89C51為中心器件來設計交通燈控制器,系統實用性強、操作簡單、擴展性強。
目錄

一.設計任務…………………………

二.交通燈的設計程序框圖………………

三.交通燈程序的主程序 ………………

四.系統硬體電路的設計……………………

五.原理圖………………

六.檢測與調試…………………………….

七.總結與體會……………………………….

八.致謝……………………………….

一.設計任務
(一)、功能及技術指標要求
設計交通燈的基本要求 : 設計一個交通燈,要應用DVCC實驗系統。
(二)、設計內容
按設計技術指標進行交通燈的硬體和軟體設計。
(三)設計思路及關鍵技術
一個完整的交通燈相當於一個簡單的單片機系統,該系統有交通燈設置電路、單片機、顯示電路等構成。單片機是集成的IC晶元,只需根據實際設計要求選型。其他部分都需要根據應用要求和性能指標自行設計。
基於單片機的交通燈的設計時要充分的認識以下兩個問題:
1.因為本實驗是交通燈控制實驗,所以要先了解實際交通燈的變化規律。假設一個十字路仿橡口為東西南北走向。初始狀態0為東西紅燈,南北紅燈。然後轉狀態1南北綠燈通車,東西紅燈。過一段時間轉狀態2,南北綠燈閃幾次轉亮黃燈,延時幾秒,東西仍然紅燈。再轉狀態3,東西綠燈通車,南北紅燈。過一段時間轉狀態4,東西綠燈閃幾次轉亮黃燈,延時幾秒,南北仍然紅燈。最後循環至狀態1。
2.雙色LED是由一個紅色LED管芯和一個綠色LED管芯封裝在一起,公用負端。當紅色正端加高電平,綠色正端加低電平時,紅燈亮;紅色正端加低電平,綠色正端加高電平時,綠燈亮;兩端都加高電平時,黃燈亮。
二. 交通燈的設計程序框圖

開始

四個路口紅燈亮

東西綠燈亮,南北紅燈亮,延時

東西黃燈閃爍,南北紅燈亮,延時

東西紅燈亮,南北綠燈亮,延時

東西紅燈亮,南北黃燈閃爍,延時

三.交通燈程序的主程序
程序如下:
ORG 0000H
SJMP A3 ;四盞紅燈亮
A3:MOV SP,#60H
MOV A, #24H
MOV P1, A
CLR P3.4
CLR P3.3
SETB P3.5
SETB P3.2 ;顯示5秒
MOV R4,#05H
LOOP1:MOV R2,#03H
LCALL xian ;調顯示子程序
DJNZ R4,LOOP1
MOV R4,#00H
MOV R2,#03H
LCALL xian
;東西綠燈亮,南北紅燈亮
A2:MOV A,#0CH
CLR P3.5
MOV P1,A
SETB P3.3
CLR P3.4
SETB P3.2 ;顯示20秒衡搜
MOV R4,#14H
LOOP2 :MOV R2,#03H
LCALL xian ;調顯示子程序
DJNZ R4,LOOP2
MOV R4,#00H
MOV R2,#03H
LCALL xian ;調顯示子程序
SETB P3.2
CLR P3.3 ; 顯示5秒
MOV R4 ,#05H ;東西黃燈亮,南北紅燈亮
LOOP9:MOV A,#14H
MOV P1 ,A
CLR P3.5
SETB P3.4
MOV R2,#02H
LCALL xian ;調顯示子程序
MOV R2,#01H ;定時
LCALL DELAY ;調延時子程序
;南北紅燈亮
備攔旁MOV A ,#04H
MOV P1 ,A
CLR P3.4
CLR P3.5
MOV R2,#01H ;定時
LCALL DELAY ;調延時子程序
DJNZ R4,LOOP9
MOV R4,#00H
MOV R2,#03H
LCALL xian ;調顯示子程序
;東西紅燈亮,南北綠燈亮
A8: MOV A, #61H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
SETB P3.5 ; 顯示20秒
MOV R4,#14H
LOOP3: MOV R2,#03H
LCALL xian ;調顯示子程序
DJNZ R4,LOOP3
MOV R4,#00H
MOV R2,#03H
LCALL xian ;調顯示子程序
SETB P3.5
MOV R4 ,#05H
LOOP10: MOV R2,#02H
LCALL xian ;調顯示子程序
; 東西紅燈亮,南北黃燈亮
A0:MOV A,#0A2H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
MOV R2,#01H ;定時
LCALL DELAY ;調延時子程序
; 東西紅燈亮
MOV A,#20H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
MOV R2,#01H ;定時
LCALL DELAY ;調延時子程序
DJNZ R4,LOOP10
MOV R4,#00H
MOV R2,#03H
LCALL xian ;調顯示子程序
LJMP A2 ;延時子程序
DELAY:PUSH 2
PUSH 1
PUSH 0
DELAY1: MOV 1,#00H
DELAY2:MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2
DJNZ 2,DELAY1
POP 0
POP 1
POP 2
DJNZ R2 ,DELAY
RET
;顯示子程序
xian: MOV A,R4
MOV B,#10
DIV AB
MOV R6,A
MOV DPTR,#TAB
MOV A,B
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S:DJNZ R7,H55S
MOV A,R6
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S1:DJNZ R7,H55S1
LCALL DELAY
RET
TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
END
四.系統硬體電路的設計
(1)晶元由DVCC實驗系統提供(AT89C51)
1.主要特性:
•與MCS-51 兼容
•4K位元組可編程閃爍存儲器
壽命:1000寫/擦循環
數據保留時間:10年
•全靜態工作:0Hz-24Hz
•三級程序存儲器鎖定
•128*8位內部RAM
•32可編程I/O線
•兩個16位定時器/計數器
•5個中斷源
•可編程串列通道
•低功耗的閑置和掉電模式
•片內振盪器和時鍾電路
2.管腳說明:
VCC:供電電壓。
GND:接地。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用於外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1後,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由於內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫「1」時,其管腳被內部上拉電阻拉高,且作為輸入。並因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由於內部上拉的緣故。P2口當用於外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址「1」時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入「1」後,它們被內部上拉為高電平,並用作輸入。作為輸入,由於外部下拉為低電平,P3口將輸出電流(ILL)這是由於上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:
口管腳 備選功能
P3.0 RXD(串列輸入口) P3.1 TXD(串列輸出口)
P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1)
P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入)
P3.6 /WR(外部數據存儲器寫選通) P3.7 /RD(外部數據存儲器讀選通)
P3口同時為閃爍編程和編程校驗接收一些控制信號。
RST:復位輸入。當振盪器復位器件時,要保持RST腳兩個機器周期的高電平時間。
ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用於鎖存地址的地位位元組。在FLASH編程期間,此引腳用於輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振盪器頻率的1/6。因此它可用作對外部輸出的脈沖或用於定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用於施加12V編程電源(VPP)。
XTAL1:反向振盪放大器的輸入及內部時鍾工作電路的輸入。
XTAL2:來自反向振盪器的輸出。
3.振盪器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振盪器。石晶振盪和陶瓷振盪均可採用。如採用外部時鍾源驅動器件,XTAL2應不接。有餘輸入至內部時鍾信號要通過一個二分頻觸發器,因此對外部時鍾信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。
4.晶元擦除: 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,並保持ALE管腳處於低電平10ms 來完成。在晶元擦操作中,代碼陣列全被寫「1」且在任何非空存儲位元組被重復編程以前,該操作必須被執行。
此外,AT89C51設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟體可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存RAM的內容並且凍結振盪器,禁止所用其他晶元功能,直到下一個硬體復位為止。
(2) 完整的DVCC實驗箱面板

(3)硬體電路連接說明

五.原理圖

六.檢測與調試
1、硬體調試:
硬體調試是利用DVCC實驗與開發系統、基本測試儀器(萬用表、示波器等),檢查用戶系統硬體中存在的故障。
硬體調試可分為靜態調試與動態調試兩步進行。
靜態調試是在用戶系統未工作時的一種硬體檢測。
第一步:目測。檢查外部的各種元件或者是電路是否有斷點。
第二步用萬用表測試。先用萬用表復核目測中有疑問的連接點,再檢測各種電源線與地線之間是否有短路現象。
第三步加電檢測。給板加電,檢測所有插座或是器件的電源端是否符合要求的值
第四步是聯機檢查。因為只有用單片機開發系統才能完成對用戶系統的調試。
動態調試是在用戶系統工作的情況下發現和排除用戶系統硬體中存在的器件內部故障、器件連接邏輯錯誤等的一種硬體檢查。動態調試的一般方法是由近及遠、由分到合。由分到合是指首先按邏輯功能將用戶系統硬體電路分為若干塊,當調試電路時,與該元件無關的 器件全部從用戶系統中去掉,這樣可以將故障范圍限定在某個局部的電路上。當各塊電路無故障後,將各電路逐塊加入系統中,在對各塊電路功能及各電路間可能存在的相互聯系進行調試。由分到合的調試既告完成。由近及遠是將信號流經的各器件按照距離單片機的邏輯距離進行由近及遠的分層,然後分層調試。調試時,仍採用去掉無關元件的方法,逐層調試下去,就會定位故障元件了。
2、軟體調試:
軟體調試是通過對程序的匯編、連接、執行來發現程序中存在的語法錯誤與邏輯錯誤並加以排除糾正的過程。
七.總結與體會
本系統是以單片機AT89C51晶元為核心部件,實現了能根據實際車流量通過AT89C51晶元設置紅、綠燈燃亮時間的功能。此次在軟體上是花費時間最多的,我們上網找資料,上圖書館,盡可能的了解有關於交通燈這方面的知識。通過這次畢業設計,使我得到了一次用專業知識、專業技能分析和解決問題全面系統的鍛煉。使我在單片機的基本原理、單片機應用系統開發過程,以及在常用編程設計思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步。
八.致謝
通過本次畢業設計,我在塗老師和王老師的精心指導和嚴格要求下,獲得了豐富的理論知識,極大地提高了實踐能力,單片機領域這對我今後進一步學習計算機方面的知識有極大的幫助。在此,忠心感謝塗老師和王老師以及許多同學的指導和支持。

要圖的話,多給我點分,我發到你郵箱里!

E. 單片機控制的交通燈

題目 交通燈控制系統的設計
一、課程設計的目的與要求
1、課程設計目的:
(1)進一步理解和消化書本知識,運用所學知識和技能進行簡單的設計。
(2)通過課程設計提高應用能力,分析問題和解決問題的能力。
(3)培養查閱資料的習慣,訓練和提高自學,獨立思考的能力。
2、課程設計要求
交通燈控制系統的設計
1) 掌握在單片機系統中擴展簡單I/O介面的方法。
2) 掌握數據輸出程序的設計方法。
3) 掌握模擬交通燈控制的實現方法。
4) 掌握外部中斷技術的基本使用方法。
5) 掌握中斷處理程序的編程方法。
從課程設計的目的出發,通過設計工作的各個環節,達到以下要求:
(1)能夠正確理解課程設計的題目和意義,全面思考問題。
(2)運用科學合理的方法,認真按時完成。

二、課程設計課題的分析
1、電路的設計

1)原理
要完成本實驗,首先必須了解交通燈的亮滅規律。本實驗需要用到試驗箱上八個發光二極體中的六個,即紅、綠、黃各兩個。將L1(紅)、L2(綠)、L3(黃)作為東西方向的指示燈,將L5(紅)、L6(綠)、L7(黃)作為南北方向的指示燈。交通燈的亮滅規律為:初始態是兩個路口的紅燈全亮,之後,東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時一段時間後,東西路口綠燈滅,黃燈開始閃爍。閃爍若干次後,東西路口紅燈亮,而同時南北路口的綠燈亮,南北方向開始通車,延時一段時間後,南北路口的綠燈滅,黃燈開始閃爍。閃爍若干次後,再切換到東西路口方向,重復上述過程。
各發光二極體的陽極通過保護電阻接到+5V的電源上,陰極接到輸入端上,因此使其點亮使相應使相應輸入端為低電平。

當有急救車到達時,兩個方向上的紅燈亮,以便讓急救車通過,假設急救車通過路口的時間為10秒,急救車通過後,交通燈恢復中斷前的狀態。本程序以單次脈沖為中斷申請,表示有急救車通過,單次脈沖輸出端P-接CPU板上的INT0。
2)、硬體電路圖

圖1—1 交通燈控制系統的硬體接線圖
74LS273的輸出00—07接發光二極體L1—L8,74LS273的片選CS273接片選信號CS2,此時74LS273的片選地址為CFA0—CFA7之間任選。
3)、程序流程圖
主程序流程

圖1—2 主程序軟體流程圖

中斷程序流程圖

三、課程設計的結果
1、程序

NAME JIAOTONGGENG
OUTPORT EQU 0CFB0H ;埠地址
SAVE EQU 55H ;SAVE保存從埠CFA0輸出的數據
CSEG AT 0000H
LJMP START
CSEG AT 4003H
LJMP INT
CSEG AT 4100H

START: SETB IT0 ;中斷程序初始化
SETB EX0
SETB EA
MOV A,#11H ;置首顯示碼,兩紅燈全亮
MOV SAVE,A ;保存
ACALL DISP ;顯示輸出
ACALL DE3S ;延時3秒
LLL: MOV A,#12H ;東西路口綠燈亮,南北路口紅燈亮
MOV SAVE,A
ACALL DISP
ACALL DE10S ;延時10秒
MOV A,#10H ;東西路口綠燈滅
MOV SAVE,A
ACALL DISP
MOV R2,#05H ;東西路口黃燈閃爍5次
TTT: MOV A,#14H
MOV SAVE,A
ACALL DISP
ACALL DE02S ;延時0.2秒
MOV A,#10H
MOV SAVE,A
ACALL DISP
ACALL DE02S
DJNZ R2,TTT
MOV A,#11H ;紅燈全亮
MOV SAVE,A
ACALL DISP
ACALL DE02S ;延時0.2秒
MOV A,#21H ;東西路口紅燈亮,南北路口綠燈亮
MOV SAVE,A
ACALL DISP
ACALL DE10S ;延時10秒
MOV A,#01H ;南北路口綠燈滅
MOV SAVE,A
ACALL DISP
MOV R2,#05H ;南北路口黃燈閃爍5次

KKK: MOV A,#41H
MOV SAVE,A
ACALL DISP
ACALL DE02S ;延時0.2秒
MOV A,#01H
MOV SAVE,A
ACALL DISP
ACALL DE02S
DJNZ R2,KKK
JMP LLL ;轉SSS循環
DE10S: MOV R5,#100 ;延時10秒
JMP DE1
DE3S: MOV R5,#30 ;延時3秒
JMP DE1
DE02S: MOV R5,#02 ;延時0.2秒
DE1: MOV R6,#200
DE2: MOV R7,#126
DE3: DJNZ R7,DE3
DJNZ R6,DE2
DJNZ R5,DE1
RET
DISP: MOV DPTR,#OUTPORT
CPL A ;取反,點亮發光二極體
MOVX @DPTR,A
RET
;中斷處理程序
INT: PUSH ACC ;有關寄存器入棧
PUSH PSW
MOV A,#11H ;兩紅燈全亮
ACALL DISP
ACALL DELAY
MOV A,SAVE ;將主程序中保存的數據再送給A
ACALL DISP
POP PSW ;有關寄存器出棧
POP ACC
RETI

DELAY:MOV R1,#100
DEL1 :MOV R2,#200
DEL2 :MOV R3,#126
DEL3 :DJNZ R3,DEL3
DJNZ R2,DEL2
DJNZ R1,DEL1
RET
END

2、現象
將程序輸入到單片機中,運行程序,可以觀察到現象:首先是兩個路口的紅燈全亮,延時3秒之後,東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時10秒後,東西路口綠燈滅,黃燈開始閃爍。閃爍5次後,東西路口紅燈亮,而同時南北路口的綠燈亮,南北方向開始通車,延時10秒後,南北路口的綠燈滅,黃燈開始閃爍。閃爍5次後,再切換到東西路口方向,重復上述過程。
當有中斷申請時,兩個方向上的紅燈亮,經過10秒急救車通過之後,恢復到急救車到來之前的狀態繼續運行,可有多次的中斷申請。
四、課程設計的心得與體會
1.通過試驗進一步理解和消化了書本知識,分析每個語句的含義,運用所學知識進行簡單的程序設計。
了解了在單片機系統中擴展簡單I/O介面的方法. 外部中斷技術的基本使用方法,掌握了中斷處理程序的編程方法。
2.通過在圖書館查閱各種單片機資料,培養了我自學和獨立思考的能力。與同學交流研究,讓我懂得了更多以前不明白的知識.
3.在課程設計過程中,不斷調試程序和修改程序,提高了對單片機的應用能力,分析問題和解決問題的能力。

F. 求51單片機控制的交通燈電路圖

一、設計任務與要求

1.設計一個十字路口的交通燈控制電路,要求甲車道和乙車道兩條交叉道路上的車輛交替運行,每次通行時間都設為25秒;
2.要求黃燈先亮5秒,才能變換運行車道;
3.黃燈亮時,要求每秒鍾閃亮一次 。

二、實驗預習要求
1.復習數字系統設計基礎。
2.復習多路數據選擇器、二進制同步計數器的工作原理。
3.根據交通燈控制系統框圖,畫出完整的電路圖。

三、設計原理與參考電路

1.分析系統的邏輯功能,畫出其框圖
交通燈控制系統的原理框圖如圖12、1所示。它主要由控制器、定時器、解碼器和秒脈沖信號發生器等部分組成。秒脈沖發生器是該系統中定時器和控制器的標准時鍾信號源,解碼器輸出兩組信號燈的控制信號,經驅動電路後驅動信號燈工作,控制器是系統的主要部分,由它控制定時器和解碼器的工作。圖中:
TL: 表示甲車道或乙車道綠燈亮的時間間隔為25秒,即車輛正常通行的時間間隔。定時時間到,TL=1,否則,TL=0。
TY:表示黃燈亮的時間間隔為5秒。定時時間到,TY=1,否則,TY=0。
ST:表示定時器到了規定的時間後,由控制器發出狀態轉換信號。由它控制定時器開始下個工作狀態的定時。

圖12、1 交通燈控制系統的原理框圖 2.畫出交通燈控制器的ASM(Algorithmic State Machine,演算法狀態機)

(1)圖甲車道綠燈亮,乙車道紅燈亮。表示甲車道上的車輛允許通行,乙車道禁止通行。綠燈亮足規定的時間隔TL時,控制器發出狀態信號ST,轉到下一工作狀態。
(2)甲車道黃燈亮,乙車道紅燈亮。表示甲車道上未過停車線的車輛停止通行,已過停車線的車輛繼續通行,乙車道禁止通行。黃燈亮足規定時間間隔TY時,控制器發出狀態轉換信號ST,轉到下一工作狀態。
(3)甲車道紅燈亮,乙車道黃燈亮。表示甲車道禁止通行,乙車道上的車輛允許通行綠燈亮足規定的時間間隔TL時,控制器發出狀態轉換信號ST,轉到下一工作狀態。
(4)甲車道紅燈亮,乙車道黃燈亮。表示甲車道禁止通行,乙車道上位過縣停車線的車輛停止通行,已過停車線的車輛停止通行,已過停車線的車輛繼續通行。黃燈亮足規定的時間間隔TY時,控制器發出狀態轉換信號ST,系統又轉換到第(1)種工作狀態。
交通燈以上4種工作狀態的轉換是由控制器器進行控制的。設控制器的四種狀態編碼為00、01、11、10,並分別用S0、S1、S3、S2表示,則控制器的工作狀態及功能如表12、1所示,控制器應送出甲、乙車道紅、黃、綠燈的控制信號。為簡便起見,把燈的代號和燈的驅動信號合二為一,並作如下規定:
表12、1 控制器工作狀態及功能
控制狀態 信號燈狀態 車道運行狀態
S0(00) 甲綠,乙紅 甲車道通行,乙車道禁止通行
S1(01) 甲黃,乙紅 甲車道緩行,乙車道禁止通行
S3(11) 甲紅,乙綠 甲車道禁止通行,甲車道通行
S2(10) 甲紅,乙黃 甲車道禁止通行,甲車道緩行
AG=1:甲車道綠燈亮;
BG=1:乙車道綠燈亮;
AY=1:甲車道黃燈亮;
BY=1:乙車道黃燈亮;
AR=1:甲車道紅燈亮;
BY=1:乙車道紅燈亮;
由此得到交通燈的ASM圖,如 圖12、2所示。設控制器的初始狀態為S0(用狀態框表示S0),當S0的持續時間小於25秒時,TL=0(用判斷框表示TL),控制器保持S0不變。只有當S0的持續時間等於25秒時,TL=1,控制器發出狀態轉換信號ST(用條件輸出框表示ST),並轉換到下一個工作狀態。依此類推可以弄懂ASM圖所表達的含義。

3.單元電路的設計
(1)定時器
定時器由與系統秒脈沖(由時鍾脈沖產生器提供)同步的計數器構成,要求計數器在狀態信號ST作用下,首先清零,然後在時鍾脈沖上升沿作用下,計數器從零開始進行增1計數,向控制器提供模5的定時信號TY和模25的定時信號TL。
計數器選用集成電路74LS163進行設計較簡便。74LS163是4位二進制同步計數器,它具有同步清零、同步置數的功能。74LS163的外引線排列圖和時序波形圖如圖12、3所示,其功能表如表12、2所示。圖中, 是低電平有效的同步清零輸入端, 是低電平有效才同步並行置數控制端,CTp、CTT是計 圖12、2 交通燈的ASM圖數控制端,CO是進位輸出端,D0~D3是並行數據輸入端,Q0~Q 3是數據輸出端。由兩片74LS163級聯組成的定時器電路如圖12、4所示。電路的工作原理請自行分析。

(a)

圖12、3 74LS163的外引線排列圖和時序波形圖

(2)控制器
控制器是交通管理的核心,它應該能夠按照交通管理規則控制信號燈工作狀態的轉換。從ASM圖可以列出控制器的狀態轉換表,如表12、3所示。選用兩個D觸發器FF1、FFO做為時序寄存器產生 4種狀態,控制器狀態轉換的條件為TL和TY,當控制器處於Q1n+1Q0n+1= 00狀態時,如果TL= 0,則控制器保持在00狀態;如果,則控制器轉換到Q1n+1Q0n+1= 01狀態。這兩種情況與條件TY無關,所以用無關項"X"表示。其餘情況依次類推,同時表中還列出了狀態轉換信號ST。

圖12、4 定時器電路圖

表12、2 74LS163功能表
|

表12、3 控制器狀態轉換表

根據表12、3、可以推出狀態方程和轉換信號方程,其方法是:將Q1n+1、Q0n+1和 ST為1的項所對應的輸人或狀態轉換條件變數相與,其中"1"用原變數表示,"0"用反變數表示,然後將各與項相或,即可得到下面的方程:

根據以上方程,選用數據選擇器 74LS153來實現每個D觸發器的輸入函數,將觸發器的現態值( )加到74LS153的數據選擇輸入端作為控制信號.即可實現控制器的功能。控制器的邏輯圖如圖12、5所示。圖中R、C構成上電復位電路 。

圖 12、5控制器邏輯圖

(3)解碼器
解碼器的主要任務是將控制器的輸出 Q1、 Q0的4種工作狀態,翻譯成甲、乙車道上6個信號燈的工作狀態。控制器的狀態編碼與信號燈控制信號之間的關系如表 12、4所示。實現上述關系的解碼電路請讀者自行設計。

四、實驗儀器設備
1. 數字電路實驗箱
2. 集成電路74LS74 1片,74LS10 1片,74LS00 2片,74LS153 2片,74LS163 2片,NE555 1片
3. 電阻 51KΩ 1隻,200Ω 6隻
4. 電容 10Uf 1隻
5. 其它 發光二極體 6隻

五、實驗內容及方法

表12、4控制器狀態編碼與信號燈關系表

狀態 AG AY AR BG BY BR
00 1 0 0 0 0 1
01 0 1 0 0 0 1
10 0 0 1 1 0 0
11 0 0 1 0 1 0

1.設計、組裝解碼器電路,其輸出接甲、乙車道上的6隻信號燈(實驗時用發光二極體代替),驗證電路的邏輯功能。
2.設計、組裝秒脈沖產生電路。
3.組裝、調試定時電路。當 CP信號為 1Hz正方波時,畫出CP、 Q0、 Q1、 Q2、Q3、Q4、TL.、TY的波形,並注意它們之間一的時序關系。

4.組裝、調試控制器電路。
5.完成交通燈控制電路的聯調,並測試其功能。

G. 用單片機做交通燈,這么做

基於單片機的交通燈設計
時間:2010-12-08 21:43:12 來源: 作者:
一、 系統功能要求:
1. 設計任務在一十字路口設置交通燈,並用單片機對其進行合理的控制。
時間方向 控制要求
白天 東西 綠燈 黃燈 紅燈 南北 紅燈 綠燈 黃燈
晚上 東西 黃燈 南北 紅燈
2.總體設計方案現在流行的一種設計為兩主幹線相交的十字路。本設計採用一主幹道(南北方向),一從幹道(東西方向)的路口,即主幹道的通行時間為從幹道的2倍。在正常情況下,兩幹道的交通燈按圖1進行轉換,並以倒計數的方式將剩餘時間顯示在每個幹道對應的兩位LED上;另發揮部分為當出現緊急情況時,路口的交通燈全為紅燈,緊急情況解除時,恢復到原來的狀態。
二、 總體設計方案提示:
1.假設一個十字路口為東西南北走向。初始狀態0為東西紅燈,南北紅燈。然後轉狀態1東西綠燈通車,南北紅燈。過一段時間轉狀態。
2.東西綠燈滅,黃燈閃爍幾次,南北仍然紅燈。再轉狀態。
3.南北綠燈通車,東西紅燈。過一段時間轉狀態。
4.南北綠燈滅,閃幾次黃燈,延時幾秒,東西仍然紅燈。最後循環至狀態1。
三.硬體設計
電路原理圖如下:

四、軟體設計
1、 流程圖

2、程序設計
ORG 0000H
MOV P0,#00H ;確保P0為低電位
lJMP MAIN0
ORG 0030H
MAIN0: MOV 30H,#08H
MOV R6,#00H
MOV R7,#00H
MOV DPTR,#TABLE ;取數碼管的解碼
MOV TMOD,#01H ;設計定時方式及時間
MOV TL0,#0CDH
MOV TH0,#0BH
SETB TR0
MOV IE,#00H
MAIN: MOV P1,#0F3H ;南北綠燈,東西紅燈
MOV R6,#1EH ;紅燈30s倒計時
MOV R7,#19H ;綠燈25s倒計時
MAIN1:CALL DELAY ;1S延時子程序
JB P0.1,REL1 ;判斷是否有東西方向按鈕按下
CJNE R7,#00H,MAIN1 ;判斷綠燈25s是否倒計完
MOV P1,#0F5H ;南北黃燈,東西紅燈
MAIN2:CALL DELAY
MOV R7,#00H ;紅燈繼續倒計時,黃燈閃爍,保持0s
CPL P1.1 ;黃燈閃爍
CJNE R6,#00H,MAIN2 ;判斷紅燈是否倒計時完
MOV P1,#0DEH ;南北紅燈,東西綠燈
MOV R7,#1EH
MOV R6,#19H
MAIN3:CALL DELAY
JB P0.0,REL2
CJNE R6,#00H,MAIN3
MOV P1,#0EEH
MAIN4:CALL DELAY
MOV R6,#00H
CPL P1.4
CJNE R7,#00H,MAIN4
JMP MAIN
REL1:MOV P1,#0F5H ;東西方向按鈕按下,南北方向強制由綠燈變成黃燈警告
MOV R6,#05H
MOV R7,#00H
JMP MAIN2
REL2:MOV P1,#0EEH ;南北方向按鈕按下,東西方向強制由綠燈變成黃燈警告
MOV R7,#05H
MOV R6,#00H
JMP MAIN4
;1s延時子程序
DELAY:MOV A,R6 ;進行南北方向倒計時時間的十進制調整
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR ;找尋相應的數碼管代碼
MOV P2,#01H
MOV P3,A ;輸出個位
MOV R4,#4 ;降低動態顯示頻率
LOOP2:MOV R3,#125
LOOP3:DJNZ R3,LOOP3
DJNZ R4,LOOP2
MOV A,B
MOVC A,@A+DPTR
MOV P2,#02H ;輸出十位
MOV P3,A
MOV R4,#4
LOOP4:MOV R3,#125
LOOP5:DJNZ R3,LOOP5
DJNZ R4,LOOP4
MOV A,R7 ;進行東西方向倒計時時間的十進制調整
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV P2,#04H
MOV P3,A
MOV R4,#4
LOOP6:MOV R3,#125
LOOP7:DJNZ R3,LOOP7
DJNZ R4,LOOP6
MOV A,B
MOVC A,@A+DPTR
MOV P2,#08H
MOV P3,A
MOV R4,#4
LOOP8:MOV R3,#125
LOOP9:DJNZ R3,LOOP9
DJNZ R4,LOOP8
JBC TF0,LOOP ;判斷是否計滿125ms
AJMP DELAY
LOOP:MOV TL0,#0CDH ;計滿125ms重新給定時器賦值
MOV TH0,#0BH
MOV A,30H
DEC A
MOV 30H,A
JNZ DELAY ;判斷是否計滿8次125ms,即1s
DEC R6 ;計滿1s,東西倒計時減1,南北倒計時減1
DEC R7
MOV 30H,#08H ;重新1s次數,重新計時
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;相應數值的數碼管代碼
DB 92H,82H,0F8H,80H,90H
END

H. 單片機中斷實驗交通燈的實驗原理

根據圖3.2電路,用單片機的IO口控制4組紅綠黃共12個發光二極體,使發光二極體按照一定規則與次序發光與閃亮以實現模擬交通燈的功能。假設初始狀態為:(南北通行狀態)南北綠燈、東西紅燈(25s);後轉為過度狀態:南北黃燈、東西紅燈(5s);再轉為東西通行狀態:東西綠燈、南北紅燈25(s)。再轉為過渡狀態:東西黃燈、南北紅燈(5s),然後循環往復。

要求採用定時器實現所需要的定時時間。

2、鍵控交通燈。

按一下K1鍵

,保持南北通行狀態;按一下K2鍵

,保持東西通行狀態;按一下K3鍵

,保持正常交通燈。

要求在中斷中進行按鍵處理。

3、具有閃爍的交通燈。

在2的基礎上增加,綠燈最後5s閃爍,即亮0.5S滅0.5S閃爍。

四、實驗原理圖

圖3.2交通燈實驗電路原理圖
圖3.2共有4個按鍵K1、K2、K3、K4,分別連接到單片機P2.0、P2.1、P2.2、P2.3引腳,按鍵後對應引腳為低電平,通過4個二極體D17、D18、D19、D20連接到P3.2(外部中斷0),這是二極體構成的相與電路,即任意按一個鍵能在P3.2上產生一個低電平或下降,作為中斷觸發信號。

五、軟體設計思想

1、定時思想。

採用定時器T0或T1的方式1定時500ms,每500ms中斷進行計數,計數10次即0.5s,計數20次即1s,對秒計數實現所需要的定時時間。

2、亮燈控制思想。

單片機控制燈引腳與燈對應如下,0點亮。

一共有四種狀態S0、S1、S2、S3,

a、南北通行S0狀態:

南北綠燈、東西紅燈,P0=11110111=0xf7,P1=10011110=0x9e;

南北通行S0
b、過渡狀態S1:

南北黃燈、東西紅燈,P0=11111011=0xfb,P1=10101110=0xae;​

過渡狀態S1
c、東西通行狀態S2:

東西綠燈、南北紅燈,P0=11111100=0xfc,P1=11110011=0xf3;​

東西通行狀態S2
d、過渡狀態S3:

東西黃燈、南北紅燈,P0=11111101=0xfd,P1=01110101=0x75;

過渡狀態S3
設置一個秒計數單元SEC每秒+1,設置兩個控制值變數a,b。

I. 單片機中斷實驗交通燈的實驗原理

交通燈控制系統設計實驗
一.設計目的
1. 通過本次課程設計進一步熟悉和掌握單片機的結構及工作原理,鞏固和加深「單片機原理與應用」課程的基本知識,掌握電子設計知識在實際中的簡單應用。
2. 綜合運用「單片機原理與應用」課程和先修課程的理論及生產實際知識去分析和解決電子設沒擾計問題,進行電子設計的訓練。
3. 學習電子設計的一般方法,掌握AT89C52晶元以及簡單電子設計過程和運行方式,培養正確的設計思想和分析問題、解決問題的能力,特別辯察襪是總體設計能力。
4. 通過計算和繪制原理圖、布線圖和流程圖,學會運用標准、規范、手冊、圖冊和查閱有關技術資料等,培養電子設計的基本技能。
5. 通過完成一個包括電路設計和程序開發的完整過程,了解開發單片機應用系統全過程,為今後從事的工作打基礎。
二.設計要求
1.利用單片機的定時器定時,實現道路的紅綠燈交替點亮和熄滅。
2.以AT89C52單片機為核心,設計一個十字路口交通燈控制系統。用單片機控制LED燈模擬交通信號燈顯示。假定東西、南北方向方向通行(綠燈)時間為25秒,緩沖(黃燈)時間5秒,停止(紅燈)時間35秒。
3.南北方向、東西方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用顯示器進行顯示(採用計時的方法)。
三.實驗原理
1.基本原理
主體電路:交通燈自動控制模塊。這部分電路主要由80C51單片機的I/O埠、定時計數器、外部中斷擴展等組成。
本設計先是從普通三色燈的指示開始進行設計,用P1口作為輸出。程序的初始化是東西南北方向的紅燈全亮。然後南北方向紅燈亮,東西方向綠燈亮,60秒後東西方向黃燈閃亮5秒後南北方向綠燈亮,東西方向紅燈亮。重復執行。攜激倒計時用到定時器T0,用P2口作為LED的顯示。二位一體的LED重復執行60秒的倒計時。作為突發事件的處理,本設計主要用到外部中斷EX0。用一模擬開關作為中斷信號。實際中可以接其它可以產生中斷信號的信號源。

J. 基於51單片機控制交通燈的電路圖與C語言程序

#include <reg51.h>

#include <stdio.h>

#define uchar unsigned char

#define uint unsigned int

uchar h;

uint r=0;

uint s;

uchar code dis[]={ 0Xc0,0Xf9, 0Xa4,0Xb0,0X99,0X92,0X82,0Xf8,0X80,0X90,0Xff,};

/*0*//*1*//*2*//*3*//*4*//*5*//*6*//*7*//*8*//*9*//*NULL*/

void delay(uint c)

{

uint i,j;

for(i=0;i<c;i++)

for(j=0;j<100;j++);

}

void t0(void) interrupt 0 using 1 //interrupt 1

{

delay(2);

if(INT0==0)

{

r++;

if(r==2)

{

r=0;

}

r%=2;

if(r==0)

{

P0=0xeb;

P1=0x00;

P2=0xff;

}while(1)

{

if(INT0==0|INT1==0|T0==0)

{

delay(2);

if(INT0==0|INT1==0|T0==0)

break;

}

};

}

}

void t1(void) interrupt 2 using 1 //interrupt 2

{

delay(2);

if(INT1==0)

{

r++;

if(r==2)

{

r=0;

}

r%=2;

if(r==0)

{

P0=0xdd;

P1=0x00;

P2=0xff;

}while(1)

{

if(INT1==0|INT0==0|T0==0)

{

delay(2);

if(INT1==0|INT0==0|T0==0)

break;

}

};

}

}

void t2(void) interrupt 1 using 1 //interrupt 3

{

TH0=0xff;

TL0=0xff;

delay(2);

if(T0==0)

{

P0=0xdb;

P1=0x00;

P2=0xff;

}while(1)

{

if(INT0==0|INT1==0)

{

delay(2);

if(INT0==0|INT1==0)

break;

}

};

}

void main(void)

{

TMOD=0x06;

TH0=0xff;

TL0=0xff;

TR0=1;

EA=1;

EX0=1;

EX1=1;

ET0=1;

while(1)

{

P0=0xeb;

for(h=28;h>0;h--)

{

for(s=248;s>0;s--)

{

P1=0x00;

P2=0xff;

P1=0x01;

P2=dis[h/10];

delay(1);

P1=0x00;

P2=0xff;

P1=0x02;

P2=dis[h%10];

delay(1);

P1=0x00;

P2=0xff;

P1=0x04;

P2=dis[(h+2)/10];

delay(1);

P1=0x00;

P2=0xff;

P1=0x08;

P2=dis[(h+2)%10];

delay(1);

}

}

delay(248);

P0=0xf3;

for(h=3;h>0;h--)

{

delay(392);

P0=0xf3;

delay(1);

P1=0x00;

P2=0xff;

P1=0xaa;

P2=dis[(h-1)%10];

delay(600);

P0=0xfb;

}

delay(248);

P0=0xdd;

for(h=38;h>0;h--)

{

for(s=248;s>0;s--)

{

P1=0x00;

P2=0xff;

P1=0x01;

P2=dis[(h+2)/10];

delay(1);

P1=0x00;

P2=0xff;

P1=0x02;

P2=dis[(h+2)%10];

delay(1);

P1=0x00;

P2=0xff;

P1=0x04;

P2=dis[h/10];

delay(1);

P1=0x00;

P2=0xff;

P1=0x08;

P2=dis[h%10];

delay(1);

}

}

delay(248);

P0=0xde;

for(h=3;h>0;h--)

{

delay(392);

P0=0xde;

delay(1);

P1=0x00;

P2=0xff;

P1=0xaa;

P2=dis[(h-1)%10];

delay(600);

P0=0xdf;

}

delay(248);

}

}

閱讀全文

與單片機實訓交通燈原理圖相關的資料

熱點內容
把文件夾設鎖 瀏覽:570
命令行語句 瀏覽:218
企友3e財務如何連接伺服器 瀏覽:984
華為手機如何刪除卸載app殘留數據 瀏覽:543
rpm的命令作用 瀏覽:365
如何查看網站的伺服器時間 瀏覽:850
編譯局和人民出版社 瀏覽:652
java泛型extends 瀏覽:326
頭條程序員教學 瀏覽:772
安卓合並什麼意思 瀏覽:530
linux在光碟引導 瀏覽:537
imap伺服器地址怎麼查 瀏覽:654
作曲教程pdf 瀏覽:506
pr怎麼壓縮文件大小 瀏覽:863
查看oracle字元集命令 瀏覽:179
鋰電池增加密度 瀏覽:661
linux用戶密碼忘記 瀏覽:242
gb壓縮天然氣 瀏覽:635
圖片拼接不壓縮app 瀏覽:670
我的世界如何編程 瀏覽:86