交通燈控制器課程設(shè)計報告_第1頁
交通燈控制器課程設(shè)計報告_第2頁
交通燈控制器課程設(shè)計報告_第3頁
交通燈控制器課程設(shè)計報告_第4頁
交通燈控制器課程設(shè)計報告_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、河南科技大學(xué)課 程 設(shè) 計 報 告 課程名稱 _單片機(jī)原理課程設(shè)計_ 題目名稱 _ 交通燈控制器設(shè)計 學(xué)生學(xué)院 _ 信息工程學(xué)院_專業(yè)班級 _ 自動化114 _學(xué) 號 學(xué)生姓名 _ _ _ _指導(dǎo)教師 _ _ _2014 年 6 月 5 日課程設(shè)計任務(wù)書(指導(dǎo)教師填寫)課程設(shè)計名稱 單片機(jī)原理 學(xué)生姓名 專業(yè)班級 自動化114 設(shè)計題目 交通燈控制器設(shè)計 一、 課程設(shè)計目的1. 培養(yǎng)學(xué)生文獻(xiàn)檢索的能力,如何利用Internet檢索需要的文獻(xiàn)資料。2. 培養(yǎng)學(xué)生綜合分析問題、發(fā)現(xiàn)問題和解決問題的能力。3. 培養(yǎng)學(xué)生綜合運用知識的能力和工程設(shè)計的能力。4. 培養(yǎng)學(xué)生理論聯(lián)系實際的能力。5. 提高學(xué)

2、生課程設(shè)計報告撰寫水平。二、 設(shè)計內(nèi)容、技術(shù)條件和要求1設(shè)計內(nèi)容交通燈控制器設(shè)計主要功能是用單片機(jī)控制LED燈模擬指示。模擬東西南北方向的十字路口交通燈信號控制情況。以89C51單片機(jī)為核心芯片,采用中斷方式實現(xiàn)控制。(1)數(shù)碼管選用2位共陰極顯示的數(shù)碼管,共4個;(2)東西通行時間為80s,南北通行時間為60s,緩沖時間為3s;2 設(shè)計要求 設(shè)計單片機(jī)最小系統(tǒng)(包括復(fù)位按鈕、晶振電路等); 繪制實現(xiàn)本設(shè)計內(nèi)容的硬件電路(原理圖),系統(tǒng)的組成框圖。 相應(yīng)的控制狀態(tài)表; 編寫本課程設(shè)計內(nèi)容的軟件設(shè)計(包含程序流程圖和對程序注釋)。 硬件實驗部分可選用實驗箱測試或Proteus仿真軟件實現(xiàn)。3 總

3、體設(shè)計思想(供參考) 利用定時器T0產(chǎn)生每10ms一次的中斷,每100次中斷為1s; 對兩個方向分別顯示紅、綠、黃燈的剩余時間即可; 用MAX7219芯片實現(xiàn)共陰極顯示驅(qū)動; A方向的紅燈時間=方向的綠燈時間+黃燈緩沖時間。4 設(shè)計參考交通燈控制器設(shè)計有電源電路、單片機(jī)主控電路、顯示電路、信號燈電路等組成,如圖1所示:5 知識點準(zhǔn)備: +5V電源原理及設(shè)計; MAX7219工作原理; 單片機(jī)復(fù)位電路工作原理及設(shè)計(元件選擇的依據(jù)); 單片機(jī)晶振電路工作原理及設(shè)計(元件選擇的依據(jù)); 數(shù)碼管顯示特性、驅(qū)動設(shè)計及應(yīng)用; LM1602液晶顯示屏特性、驅(qū)動設(shè)計及應(yīng)用; 89C51單片機(jī)引腳資源、引腳分

4、配等; 單片機(jī)匯編語言及程序設(shè)計(中斷、延時子程序的設(shè)計)。圖1 交通燈控制器設(shè)計框圖三 時間進(jìn)度安排按教學(xué)計劃規(guī)定,單片機(jī)原理課程設(shè)計總學(xué)時為1周,其進(jìn)度安排和時間大致分配如下:1. 十五周周一至周二 查閱資料、進(jìn)行軟、硬件初步設(shè)計;2. 十五周周三至周四 上機(jī)調(diào)試,發(fā)現(xiàn)問題,解決問題,完善課程設(shè)計;3. 十五周周五 總結(jié)設(shè)計過程,編寫課程設(shè)計報告書。四 主要參考文獻(xiàn)1、何立民. 單片機(jī)高級教程 第1版北京:北京航空航天大學(xué)出版社,20012、徐愛鈞 KEIL Cx V7.0單片機(jī)高級語言編程與uVision2應(yīng)用實踐,北京,電子工業(yè)出版社,20043、李全利、仲偉峰、徐軍,單片機(jī)原理及應(yīng)用

5、,北京:清華大學(xué)出版社,2006五、設(shè)計分組及選題安排 自動化114班所有學(xué)生。指導(dǎo)教師簽字: 2014年05月30日單片機(jī)課程設(shè)計報告一、 設(shè)計項目簡介隨著人類科技文明的發(fā)展,人們對于日常交通便利的要求在不斷地提高。交通信號燈被看成一種用來指揮交通的工具,當(dāng)前高精度、多功能、小體積、低功耗,是現(xiàn)代交通信號燈發(fā)展的趨勢。本課題設(shè)計正是基于這個方向設(shè)計一個符合指標(biāo)要求的模擬交通信號燈控制器。單片機(jī)在電子產(chǎn)品中的應(yīng)用越來越廣泛,特別是51系列的單片機(jī),由于其使用方便、價格低廉等優(yōu)勢,在市場上占有很大的份額。AT89C51就是51系列中的一個比較成熟的型號,它完全兼容51單片機(jī)的指令。本課題設(shè)計是基

6、于單片機(jī)技術(shù)原理,以單片機(jī)芯片AT89C51作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設(shè)計出的一個模擬交通信號燈控制系統(tǒng)。該控制系統(tǒng)包括了按鍵復(fù)位電路、定時控制電路、顯示電路等幾部分的組成。設(shè)計以硬件和軟件相結(jié)合為指導(dǎo)思想,通過軟件編程實現(xiàn)系統(tǒng)大部分功能,電路簡單明了,系統(tǒng)穩(wěn)定性高。本次課程設(shè)計所設(shè)計的交通燈控制器實現(xiàn)了以下幾點功能:一、 顯示電路實現(xiàn)顯示各方向上紅、綠、黃三種交通信號燈的剩余時間。二、 信號燈電路實現(xiàn)顯示各路口的紅黃綠交通信號燈。三、 按鍵復(fù)位電路實現(xiàn)對信號燈控制器的復(fù)位功能。二、總體設(shè)計利用AT89C51單片機(jī),LED燈,共陰極數(shù)碼管和MAX7219芯片來設(shè)計并

7、實現(xiàn)交通燈控制系統(tǒng),用單片機(jī)控制LED燈模擬指示。模擬東西南北方向的十字路口交通燈信號控制情況,并用MAX7219控制共陰極數(shù)碼管來倒計時顯示紅燈、綠燈、黃燈的時間。利用中斷方式實現(xiàn)以上功能,設(shè)置定時器T0為工作方式1并裝初值來實現(xiàn)數(shù)碼管中的時間的倒計時。定時器T0產(chǎn)生每10ms一次的中斷,每100次中斷為1s;本次交通燈控制器電路有以下幾個電路模塊組成,電源電路、單片機(jī)主控電路、顯示電路、信號燈電路,各個電路之間相互聯(lián)系,并用編程的方式對單片機(jī)各個引腳進(jìn)行定義,從而實現(xiàn)交通燈的功能。電路的各個模塊之間的總體框圖如下:單片機(jī)最小系統(tǒng)(復(fù)位,晶振電路)AT89C51單片機(jī)8段LED數(shù)碼管顯示電路

8、MAX7219控制芯片定時器T0中斷電路單片機(jī)交通控制系統(tǒng)的通行方案設(shè)計設(shè)在十字路口,分為東西向和南北向,在任一時刻只有一個方向通行,另一方向禁行,持續(xù)一定時間,經(jīng)過短暫的過渡時間,將通行禁行方向?qū)Q。其具體狀態(tài)如下圖所示。說明:黑色表示亮,白色表示滅。通過具體的路口交通燈狀態(tài)的演示分析我們可以把這四個狀態(tài)歸納如下:東西方向紅燈滅,同時綠燈亮,南北方向黃燈滅,同時紅燈亮,倒計時80秒。此狀態(tài)下,東西向禁止通行,南北向允許通行。東西方向綠燈滅,同時黃燈亮,南北方向紅燈亮,倒計時3秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他所以車輛都需等待狀態(tài)轉(zhuǎn)換。南北方向紅燈滅,同時綠燈亮,東西方向黃燈滅,同時紅燈亮

9、,倒計時60秒。此狀態(tài)下,東西向允許通行,南北向禁止通行。南北方向綠燈滅,同時黃燈亮,東西方向紅燈亮,倒計時3秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他所以車輛都需等待狀態(tài)轉(zhuǎn)換。三、硬件設(shè)計AT89C51單片機(jī)簡介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工

10、業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。AT89C51單片機(jī)的主要特性與MCS-51 兼容 ,4K字節(jié)可編程閃爍存儲器 ,壽命:1000寫/擦循環(huán),數(shù)據(jù)保留時間:10年,全靜態(tài)工作:0Hz-24Hz,三級程序存儲器鎖定,128*8位內(nèi)部RAM,32可編程I/O線,兩個16位定時器/計數(shù)器,5個中斷源(兩個外部中斷源和3個內(nèi)部中斷源) ,可編程串行通道,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時

11、鐘電路。時鐘電路:時鐘電路的作用是產(chǎn)生單片機(jī)工作所需要的時鐘脈沖序列。中斷系統(tǒng):中斷系統(tǒng)的作用主要是對外部或內(nèi)部的終端請求進(jìn)行管理與處理。AT89C51共有5個中斷源,其中又2個外部中斷源和3個內(nèi)部中斷源。AT89C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖如下:AT89C51主要引腳功能:VCC:電源電壓GND:接地P0口:P0口是一組8位雙向I0口。P0口即可作地址數(shù)據(jù)總線使用,又可以作為通用的I/O口使用。當(dāng)CPU訪問片外存儲器時,P0口分時先作低8位地址總線,后作雙向數(shù)據(jù)總線,此時,P0口就不能再作I/O口使用了。在訪問期間激活要使用上拉電阻。P1口:Pl 是一個帶內(nèi)部上拉電阻的8準(zhǔn)位雙向IO口,

12、P1作為通用的I/O口使用。P2 口:P2 是一個帶有內(nèi)部上拉電阻的8 位準(zhǔn)雙向IO 口,P2即可作為通用的I/O口使用,也可以作為片外存儲器的高8位地址總線,與P0口配合,組成16位片外存儲器單元地址。P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位準(zhǔn)雙向I0 口。P3 口除了作為通用的I/O口使用之外,每個引腳還具有第二功能。具體如下表所示:端口引腳第二功能:P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外中斷0)P3.3/ INT1(外中斷1)P3.4T0(定時計數(shù)器0外部輸入)P3.5T1(定時計數(shù)器1外部輸入)P3.6/ WR(外部數(shù)據(jù)存儲器寫選通)P3

13、.7/ RD外部數(shù)據(jù)存儲器讀選通)RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT 溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRT0 位(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。單片機(jī)最小系統(tǒng)設(shè)計如下圖,其包含晶振電路與復(fù)位電路: 單片機(jī)最小系統(tǒng)MAX7219共陰極數(shù)碼管驅(qū)動芯片簡介:MAX7219是MAXIM公司生產(chǎn)的串行輸入/輸出共陰極數(shù)碼管顯示驅(qū)動芯片,一片MAX7219可驅(qū)動8個7段(包括小數(shù)點共8段)數(shù)字LED、LED條線圖形顯示器、或64個分立的LED發(fā)光二級管。該芯片具有10MHz傳

14、輸率的三線串行接口可與任何微處理器相連,只需一個外接電阻即可設(shè)置所有LED的段電流。它的操作很簡單,MCU只需通過模擬SPI三線接口就可以將相關(guān)的指令寫入MAX7219的內(nèi)部指令和數(shù)據(jù)寄存器,同時它還允許用戶選擇多種譯碼方式和譯碼位。此外它還支持多片7219串聯(lián)方式,這樣MCU就可以通過3根線(即串行數(shù)據(jù)線、串行時鐘線和芯片選通線)控制更多的數(shù)碼管顯示。 MAX7129芯片外部引腳分配圖各引腳的功能為:DIN:串行數(shù)據(jù)輸入端DOUT:串行數(shù)據(jù)輸出端,用于級連擴(kuò)展LOAD:裝載數(shù)據(jù)輸入CLK:串行時鐘輸入 DIG0DIG7:8位LED位選線,從共陰極LED中吸入電流SEG ASEG G DP 7

15、 段驅(qū)動和小數(shù)點驅(qū)動ISET: 通過一個10k電阻和Vcc相連,設(shè)置段電流MAX7219芯片電路連接圖:顯示電路:1、 八段共陰極數(shù)碼管: LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價格低、壽命長、維護(hù)簡便等優(yōu)點。LED數(shù)碼管的結(jié)構(gòu)簡單,分為七段和八段兩種形式,也有共陽和共陰之分。八段共陰管它有8個發(fā)光二極管(比七段多一個發(fā)光二極管,用來顯示dP,即點),每個發(fā)光二極管的陰極連在一起,一個LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個數(shù)值,就要分別對它們的高低電平來加以控制。2、 發(fā)光二極管: 根據(jù)本設(shè)計的特點,紅綠燈的顯示不可少,紅綠燈的顯示采用普通的 發(fā)光二極管。每個方向上設(shè)置

16、紅綠黃燈,總共4組。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然。總電路設(shè)計圖:顯示效果圖: 南北通行: 東西通行: 黃燈顯示:四、軟件設(shè)計主程序開始設(shè)置中斷工作方式、觸發(fā)方式、初始化是否有中斷運行過程執(zhí)行中斷YN中斷結(jié)束,退出中斷,返回T0中斷定時計數(shù)初值10計數(shù)(count)加1判斷1S(count=100?)count清0Time_SN-;Time_EW-恢復(fù)現(xiàn)場中斷返回NY運行過程SN:綠燈(60),EW:紅燈是否到3秒SN:黃燈亮,EW:紅燈Count<10?SN:黃燈滅,EW:紅燈是否到0秒NYYNNEW:綠燈(80),SN:紅燈是否到3秒EW:黃燈亮,SN:紅燈Count

17、<10?EW:黃燈滅,EW:紅燈是否到0秒YYYNNNLED顯示緩沖區(qū) Y五、程序清單# include <reg52.h># define uchar unsigned char# define uint unsigned int# include "MAX.h"uchar code tab = 0x06, 0x05, 0x03; /顯示綠、黃、紅的段碼uchar count; /記錄定時中斷次數(shù)uchar flag; / 記錄南北時間到零的次數(shù)uchar flag1; / 記錄東西時間到零的次數(shù)uchar SN= 82; /南北方向紅燈顯示初始時間uc

18、har EW = 79; /東西方向綠燈顯示初始時間/*/void display(uchar num1, uchar num2)/向MAX7219送數(shù)據(jù)并顯示函數(shù)write_7219(0x1, num1 / 10);write_7219(0x2, num1 % 10);write_7219(0x3, num2 / 10);write_7219(0x4, num2 % 10);/*/void init_time(void)/定時器的初始化函數(shù)TMOD = 0x01; /設(shè)定時器0為模式1,16位模式TH0 = 0xd8;TL0 = 0xf0;/設(shè)定時值為10000us(10ms)EA = 1;

19、IT0 = 1;ET0 = 1; /定時器0中斷打開TR0 = 1;/*/void t0_time() interrupt 1/定時器0中斷函數(shù)TH0 = 0xd8; /裝初值TL0 = 0xf0;count+; /中斷一次計數(shù)加1if(count = 100) /1S時間到count = 0; if(SN = 0 ) /判斷南北時間是否到0flag+; / 南北時間到零的次數(shù)+1if(flag % 3 = 1) / 如果是周期內(nèi)第1次南北時間到零SN = 60; /給南北顯示時間重新賦值,綠燈顯示時間P1 = tab0; / 南北方向綠燈亮else if(flag % 3 = 2) / 如果

20、是周期內(nèi)第2次南北時間到零SN = 3;/給南北顯示時間重新賦值,黃燈顯示時間P1 = tab1; / 南北方向黃燈亮 else SN = 82;/給南北顯示時間賦值,紅燈燈顯示時間P1 = tab2;/ 南北方向紅燈燈亮flag = 0;/計數(shù)清零,進(jìn)入下一個循環(huán)if(EW = 0)/判斷東西時間是否到0 flag1+;/ 東西時間到零的次數(shù)+1if(flag1 % 3 = 1) / 如果是周期內(nèi)第1次東西時間到零EW = 3; /給東西顯示時間重新賦值,黃燈顯示時間P0 = tab1; / 南北方向黃燈亮else if(flag1 % 3 = 2)EW = 63;/給東西顯示時間重新賦值,

21、紅燈顯示時間P0 = tab2; / 南北方向紅燈亮else EW = 79;/給南北顯示時間重新賦值,綠燈顯示時間P0 = tab0; / 南北方向綠燈亮flag1 = 0; /計數(shù)清零,進(jìn)入下一個循環(huán)display(EW-, SN-);/將東西、南北時間送到MAX7219并顯示/*主函數(shù)*/void main()init_time(); /調(diào)用定時器初始化函數(shù)init_7219(); /調(diào)用MAX7219初始化函數(shù)display(EW-, SN-); /將初始東西、南北顯示時間送入MAX7219并顯示P0 = tab0; /南北方向顯示綠燈P1 = tab2; /東西方向顯示紅燈while

22、(1); /死循環(huán),等待中斷/*MAX7219頭文件包含數(shù)據(jù)的寫入與發(fā)送*/# ifndef _MAX_H_# define _MAX_H_sbit DIN = P30;/MAX7219 片選 P30 腳sbit LOAD = P31; /MAX7219 串行數(shù)據(jù) P31 腳sbit CLK = P32;/MAX7219 串行時鐘 P32 腳/*地址、數(shù)據(jù)發(fā)送子程序*/void write_7219(uchar add, uchar dat) uchar i;LOAD = 0; /拉低片選線,選中器件/*發(fā)送地址*/for(i = 0; i < 8; i+) /移位循環(huán)8次 CLK =

23、0; /清零時鐘總線DIN = (bit)(add & 0x80); /每次取高字節(jié)add <<= 1; /左移一位CLK = 1; /時鐘上升沿,發(fā)送地址/*發(fā)送數(shù)據(jù)*/for(i = 0; i < 8; i+)CLK = 0;DIN = (bit)(dat & 0x80);dat <<= 1;CLK = 1; /時鐘上升沿,發(fā)送地址LOAD = 1; /發(fā)送結(jié)束,上升沿鎖存數(shù)據(jù)/*MAX7219初始化,設(shè)置MAX7219內(nèi)部的控制寄存器*/void init_7219(void)write_7219(0x0c, 0x01); /開啟正常工作模式(0xX1)write_7219(0x0f, 0x00); /選擇工作模式(0xX0)write_7219(0x09, 0xff); /選用全譯碼模式write_7219(0x0b, 0x07); /8 只LED全用write_7219(0x0a, 0x04); /設(shè)置初始亮度# endif六、收獲及體會經(jīng)過一周的努力工作,終于完成了自己的單片機(jī)課程設(shè)計。雖說忙碌了點,但我覺得這樣的生活充實且有成就感,當(dāng)然,也獲益匪淺。 整個課程設(shè)計過程我還掌握了一下幾點:(1)掌握了電子系統(tǒng)設(shè)計的流程,熟悉了各種硬件電路以及軟件編程方法。(2)理解了最單片機(jī)的各部分組成及

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論