




已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
I 目 錄 摘要 1 一、 設(shè)計(jì)目的 2 二、 設(shè)計(jì)任務(wù)和要求 2 三、 設(shè)計(jì)原理分析 2 四、 硬件模塊及功能 3 1、個(gè)模塊功能 3 2、材料清 單4 3、硬件圖 5 五、 軟件模塊及功能 6 1、個(gè)模塊功能原理 6 2、程序清 單6 3、程序流程圖 9 六、 調(diào)試運(yùn)行 10 II 1、程序編譯鏈接10 2、觀察模擬仿真11 七、 心得體會(huì) 12 參考文獻(xiàn) 12 致謝 13 1 摘 要: 單片微型計(jì)算機(jī)(單片機(jī))自問(wèn)世以來(lái),因其小巧靈活、成本低、控制能力強(qiáng)、 易于產(chǎn)品化等優(yōu)勢(shì),在社會(huì)各領(lǐng)域中得到廣泛的應(yīng)用。根據(jù) 89C52 單片機(jī)的特 點(diǎn)及交通燈在實(shí)際控制中的特點(diǎn),本文提出一種利用單片機(jī)自動(dòng)控制交通燈及 時(shí)間倒計(jì)時(shí)顯示的方法,將整個(gè)系統(tǒng)縮小在一塊小小的單片機(jī)上,大大提高了 產(chǎn)品的經(jīng)濟(jì)性和輕便性。設(shè)計(jì)過(guò)程包括硬件電路設(shè)計(jì)和程序設(shè)計(jì)兩大步驟。硬 件電路其結(jié)構(gòu)比較簡(jiǎn)單,主要包括核心器件單片機(jī)、12 只二極管組成的模擬 交通燈、復(fù)位電路、振蕩電路、顯示數(shù)碼管模塊。單片機(jī)開(kāi)發(fā)中除必要的硬件 外,同樣離不開(kāi)軟件,我們寫(xiě)的匯編語(yǔ)言源程序要變?yōu)?CPU 可以執(zhí)行的機(jī)器碼 有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編 的方法了。機(jī)器匯編是通過(guò)匯編軟件將源程序變?yōu)闄C(jī)器碼,用于 MCS-51 單片 機(jī)的匯編軟件有早期的 A51,隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯 編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開(kāi)發(fā),單片機(jī)的開(kāi)發(fā)軟件也在不斷發(fā)展,Keil 軟 件是目前最流行開(kāi)發(fā) MCS-51 系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠商紛 紛宣布全面支持 Keil 即可看出。Keil 提供了包括 C 編譯器、宏匯編、連接器、 庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi) 發(fā)環(huán)境(uVision)將這些部份組合在一起。本文就用 Keil 編程,相比硬件設(shè) 計(jì)程序設(shè)計(jì)較為復(fù)雜,必需同時(shí)考慮燈控制、時(shí)間顯示、緊急開(kāi)關(guān)等問(wèn)題,并 且具有一定的 C 語(yǔ)言基礎(chǔ)和一定的思維能力及邏輯能力。本文對(duì)十字路口狀態(tài) 預(yù)設(shè)為兩種,一種是正常狀態(tài),即倒計(jì)時(shí) 60 秒,交通燈循環(huán)亮,另一種是故 障或緊急狀態(tài),即無(wú)論交通燈處于何種狀態(tài)只要按下緊急開(kāi)關(guān),就立即打開(kāi)相 應(yīng)的綠燈,另一方向則亮紅燈,當(dāng)再按起開(kāi)關(guān)則反向,并從 60 秒倒計(jì)時(shí),恢 復(fù)正常狀態(tài),分別用黃、紅、綠色燈的不同組合來(lái)表示。本系統(tǒng)采用單片機(jī) AT89C52 為核心器件來(lái)設(shè)計(jì)交通燈控制器,模擬現(xiàn)實(shí)中的交通燈控制方法,具 有較強(qiáng)的實(shí)用性。 關(guān)鍵詞:89C51 單片機(jī);交通燈;自動(dòng)控制;時(shí)間顯示器;軟件;硬件; 定時(shí)器;延時(shí);外部中斷 2 一、設(shè)計(jì)目的 1 1、通過(guò)單片機(jī)課程設(shè)計(jì),熟練掌握 C 語(yǔ)言的編程方法,將理論聯(lián)系到實(shí)踐中 去,提高我們的動(dòng)腦和動(dòng)手的能力。 2 2、通過(guò)交通信號(hào)燈控制系統(tǒng)的設(shè)計(jì),掌握定時(shí)/計(jì)數(shù)器、中斷的使用方法,和 簡(jiǎn)單程序的編寫(xiě),最終提高我們的邏輯抽象能力。 二、設(shè)計(jì)任務(wù)和要求 任務(wù):任務(wù):設(shè)計(jì)一個(gè)能夠控制十二盞交通信號(hào)燈及顯示時(shí)間 60 秒倒計(jì)時(shí)的模擬系 統(tǒng) 要求:要求:利用單片機(jī)的定時(shí)器定時(shí)和中斷功能,令十字路口的紅綠燈交替點(diǎn)亮和 熄滅,并用共陽(yáng)極數(shù)碼管顯示倒計(jì)時(shí)間。 三、設(shè)計(jì)原理分析 紅 黃 綠 綠 黃 紅 綠 黃 紅 紅 黃 綠 1 1、根據(jù)實(shí)際交通燈的變化情況和規(guī)律。假設(shè)一個(gè)十字路口如上圖所以,為東 南西北走向。初始狀態(tài) 1 東西綠燈通車(chē),南北紅燈亮。過(guò)一段時(shí)間后,轉(zhuǎn)狀態(tài) 2,東西綠燈滅,黃燈閃幾下,南北還是紅燈。再轉(zhuǎn)狀態(tài) 3,南北綠燈通車(chē), 東西紅燈亮。過(guò)一段時(shí)間后轉(zhuǎn)狀態(tài) 4,南北綠燈滅,閃幾個(gè)黃燈,東西還是為 紅燈亮,一段時(shí)間后,又循環(huán)至狀態(tài) 1。 列出交通信號(hào)燈的狀態(tài)表如下列出交通信號(hào)燈的狀態(tài)表如下:(其中,1 代表燈亮,0 代表燈滅) 北北西西南南東東狀態(tài)狀態(tài) 綠 黃 紅綠 黃 紅綠 黃 紅綠 黃 紅 1 1001100001100 2 2001010001010 3 3 3100001100001 4 4010001010001 2 2、對(duì)于交通信號(hào)燈來(lái)說(shuō),應(yīng)該有東西南北共四組燈,但由于同一道上的兩組 的信號(hào)燈的顯示情況是相同的,所以只要用兩組就行了,因此,采用單片機(jī)內(nèi) 部的 I/O 口上的 P1 口中的 6 個(gè)引腳即可來(lái)控制 12 個(gè)信號(hào)燈。 3 3、通過(guò)編寫(xiě)程序,實(shí)現(xiàn)對(duì)發(fā)光二極管的控制,來(lái)模擬交通信號(hào)燈的管理。每 延時(shí)一段時(shí)間,燈的顯示情況都會(huì)按交通燈的顯示規(guī)律進(jìn)行狀態(tài)轉(zhuǎn)換。 4 4、通過(guò)延時(shí)時(shí)間送顯,可以在原有的交通信號(hào)燈系統(tǒng)的基礎(chǔ)上,增添其倒計(jì) 時(shí)間的顯示功能,實(shí)現(xiàn)其功能的擴(kuò)展。 四、硬件模塊及功能 主要用到的硬件:主要用到的硬件:P1 口、P3 口、P2 口、LED 數(shù)碼管、發(fā)光二級(jí)管、定時(shí)器 T0、 外部中斷 0 和外部中斷 1、復(fù)位開(kāi)關(guān) 1、個(gè)模塊功能: 發(fā)光二極管電路:根據(jù)發(fā)光二極管的特性,將二極管的正極與電源相接 (+5V) ,其中與一個(gè) 500 歐姆的電阻串聯(lián)。而發(fā)光二極管的負(fù)極與單片機(jī)的 P1 的八個(gè)端口相接,這樣只要 P1 口的某個(gè)端口出現(xiàn)低電平,即二極管導(dǎo)通發(fā) 光。 復(fù)位電路:本電路采用的是按鍵電平復(fù)位,按復(fù)位鍵后復(fù)位端通過(guò)電阻與 VCC 電源接通,此時(shí)復(fù)位端由低電平變?yōu)榱烁唠娖?,從而達(dá)到復(fù)位的效果。復(fù) 位電路關(guān)系到一個(gè)系統(tǒng)能否可靠地工作,一般由電阻、電容和門(mén)電路組成。 晶振電路:80C51 系列單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成振蕩 器,但要形成時(shí)鐘,外部需附加電路,引腳 XTAL1 是為反相放大器和時(shí)鐘發(fā)生 電路的輸入端,XATL2 為反相放大器的輸入端。本電路是由一個(gè) 12M 晶振和兩 個(gè) 22pF 的無(wú)極性電容組成。 數(shù)碼管驅(qū)動(dòng)顯示電路:由于數(shù)碼管是四位一體的,所以必須采用動(dòng)態(tài)掃描 方式,其基本原理是利用人眼的“視覺(jué)暫留”效應(yīng)。接口電路把所有顯示器的 8 個(gè)筆端 ab 分別并聯(lián)在一起,本電路時(shí)接單片機(jī)的 P2 口。每一個(gè)顯示器的 公共端 COM 各自獨(dú)立地受 I/O 線控制,本電路采用的是單片機(jī) P0.0、P0.1、P0.2、P0.3。CPU 向字段輸出口送出字型碼時(shí),所有的顯示器都 能接收到,再利用循環(huán)掃描的方式分時(shí)選通個(gè)顯示器的公共極,是各個(gè)顯示器 輪流導(dǎo)通。當(dāng)掃描的速度達(dá)到一定程度時(shí),人眼就分辨不出來(lái)了,認(rèn)為各個(gè)顯 示器同時(shí)發(fā)光了。 緊急開(kāi)關(guān)電路:緊急開(kāi)關(guān)電路很簡(jiǎn)單,只需要兩個(gè)開(kāi)關(guān)。為了便于中斷想 象的產(chǎn)生,開(kāi)關(guān)一端接于 P3.2P3.3 口,因?yàn)槠渚哂兄袛嗟墓δ?,另一端接?就行。當(dāng)按鍵按下時(shí)相應(yīng)的端口就會(huì)接受到低電平從而程序產(chǎn)生中斷。 4 2、材料清單: STC89C52+40 腳底座1 個(gè) 12MHz 晶振1 個(gè) 四位共陽(yáng)極數(shù)碼管+14 腳底座1 個(gè) PNP(9012) 4 個(gè) 8X8 按鍵1 個(gè) LED 發(fā)光二極管12 個(gè) 無(wú)極性電容 22pF2 個(gè) 極性電容 10uF1 個(gè) 4.7K 電阻4 個(gè) 500 歐電阻6 個(gè) 10K 電阻3 個(gè) 自鎖按鍵2 個(gè) 5 3、硬件圖 6 五、軟件模塊及功能 1、各模塊功能及原理 數(shù)碼管顯示:程序進(jìn)入主程序后在顯示程序中一直循環(huán),通過(guò)定時(shí)器中斷改 變 aa、bb 的值,使得數(shù)碼管顯示不同的數(shù)字。顯示程序利用動(dòng)態(tài)掃描原理: 首先將共陽(yáng)極編碼送入 P2 口,同時(shí)打開(kāi) P0 口的第一個(gè)數(shù)碼管關(guān)閉其他數(shù)碼 管,然后將下一個(gè)編碼送入 P2 口,同時(shí)打開(kāi) P0 口的第二個(gè)數(shù)碼管關(guān)閉其他 數(shù)碼管,以此類(lèi)推。讓人的視覺(jué)產(chǎn)生誤差,這樣就看到了四位數(shù)碼管同時(shí)顯示 并且不斷變化。 定時(shí)器中斷:本程序采用定時(shí)/計(jì)數(shù)器 0,定時(shí)時(shí)間為 50ms,讓它 50ms 產(chǎn) 生一次中斷,進(jìn)入中斷后把(6000-5000)/256 賦給高八位,把(6000-5000)% 256 賦給底八位,然后 shu 加 1,判斷 shu 的情況:如果 shu 等于 1140 即從開(kāi) 始到 57s 就將 0XF5 賦給 P1 口(南北點(diǎn)亮黃燈,東西依然紅燈) 。如果 shu 等 于 1200 即過(guò)了 60s,將 0xDE 賦給 P1 口(南北亮紅燈東西綠燈) 。如果 shu 等 于 2340 即過(guò)了 60+57s,就將 0xEE 賦給 P1 口(東西亮黃燈,南北紅燈) 。如 果 shu 等于 2400 即過(guò)了兩分鐘,就將 0xF3 賦給 P1 口(點(diǎn)亮南北綠燈,東西 紅燈) ,同時(shí)將 shu、xianshi 重新賦值并且進(jìn)入下一階段定時(shí)中斷。 外部中斷:本程序采用外部中斷 0 和外部中斷 1,即 P3.2 和 P3.3 口,由于 定時(shí)器中斷 0 比外部中斷 2 優(yōu)先級(jí)高,所以初始化程序中將 PX1=1 設(shè)定外部中 斷 1 為高優(yōu)先級(jí),這樣就可以達(dá)到緊急開(kāi)關(guān)的作用,當(dāng)按下緊急開(kāi)關(guān) 1 時(shí),即 P3.2 口由高電平變?yōu)榈碗娖剑绦蛄⒓催M(jìn)入中斷程序,將東西方向變?yōu)榫G燈, 南北方向紅燈,同時(shí)在中斷程序中判斷 P3.2 口是否有低電平信號(hào),如果有 (將開(kāi)關(guān)按起)即將東西方向點(diǎn)亮綠燈 南北方向紅燈并且重新給 shu、xianshi、aa、bb 賦值,使得數(shù)碼管從 60 秒重新倒計(jì)時(shí)。緊急開(kāi)關(guān) 2 與 其相似。 2、程序清單: #include #define uint unsigned int #define uchar unsigned char sbit P32=P32; sbit P33=P33; uint shu; uchar xianshi,xianshi2; 7 uchar aa,bb; /帶小數(shù)點(diǎn)的共陽(yáng)極數(shù)碼管的段編碼 0-9 uchar code table=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90; void init()/初始化函數(shù) shu=0; xianshi=60; aa=6; bb=0; P0=0xff; P1=0; TMOD=0x01; /用定時(shí)器 0 方式 1 EA=1; /打開(kāi)中斷 ET0=1;/打開(kāi)定時(shí)器 0 中斷 TL0=15536/256; TH0=15536%256; EX0=1;/外部中斷 0 EX1=1;/外部中斷 1 IT0=0;/外部中斷 0 電平觸發(fā) IT1=0;/外部中斷 1 電平觸發(fā) PX1=1;/設(shè)定外部中斷 1 為高優(yōu)先級(jí) void Delay(unsigned int i)/延時(shí)程序 unsigned int j; for(;i0;i-) for(j=0;j125;j+) ; void display(uchar a,uchar b,uchar c,uchar d) P2=tablea; /北十位 P0=0xfe; Delay(2); P2=tableb; /北個(gè)位 P0=0xfd; Delay(2); P2=tablec; /西十位 P0=0xfb; Delay(2); P2=tabled; /西個(gè)位 P0=0xf7; 8 Delay(2); void main() init(); TR0=1;/啟動(dòng)定時(shí)器 0 P1=0xff; P1=0xf3;/點(diǎn)亮南北綠燈,東西紅燈 while(1) display(aa,bb,aa,bb); void timer0() interrupt 1 using 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; shu+; if(shu%20=0) xianshi-; xianshi2-; aa=xianshi/10; bb=xianshi%10; if(shu=1140) P1=0xf5;/南北黃亮,東西依然紅燈 if(shu=1200) P1=0xDE;/南北亮紅燈,東西綠燈 xianshi=60; if(shu=2340) P1=0xee;/東西亮黃燈,南北紅燈 if(shu=2400)/再過(guò) 3s 返回 shu=0; xianshi=60; P1=0xf3;/點(diǎn)亮南北綠燈,東西紅燈 9 void inter0() interrupt 0 using 2 /南北方向綠燈 P0=0xff; P1=0xf3;/南北綠 東西紅 while(P32=0); P1=0xDE; xianshi=60; shu=1200; aa=6; bb=0; void inter1() interrupt 2 using 3 /東西方向綠燈 P0=0xff; P1=0xDE;/ 東西綠 南北紅 while(P33=0); P1=0xf3; xianshi=60; shu=0; aa=6; bb=0; 3、程序流程圖 10 六、調(diào)試運(yùn)行 1、程序編譯鏈接 程序完成后,確保無(wú)誤,然后進(jìn)行編譯鏈接。 編譯鏈接無(wú)錯(cuò)并將程序生成.hex 文件圖: 2、觀察模擬仿真 利用模擬仿真觀察現(xiàn)象,將外圍設(shè)備中 P0、P1、P2、P3 口打開(kāi)。程序正常運(yùn) 行: 利用模擬仿真,模擬緊急開(kāi)關(guān)作用,即在程序運(yùn)行,將 P3.2 和 P3.3 口變?yōu)榈?電平,觀察其現(xiàn)象。 12 七、心得體會(huì) 在一個(gè)多月的單片機(jī)課程設(shè)計(jì),我不僅加深了對(duì)單片機(jī)理論的理解,將 理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神, 從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新,是要我們學(xué)會(huì)將理論很好地聯(lián)系實(shí)際, 并不斷地去開(kāi)動(dòng)自己的大腦,從為人類(lèi)造福的意愿出發(fā),做自己力所能及的, 別人卻沒(méi)想到的事。使之不斷地戰(zhàn)勝別人,超越前人。同時(shí),更重要的是,我 在這一設(shè)計(jì)過(guò)程中,學(xué)會(huì)了堅(jiān)持不懈,不輕易言棄。設(shè)計(jì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)電子零售行業(yè)市場(chǎng)調(diào)查研究及投資前景預(yù)測(cè)報(bào)告
- 幼兒園特殊兒童進(jìn)餐安全與風(fēng)險(xiǎn)控制
- 教育旅游及研學(xué)實(shí)踐項(xiàng)目分享
- 建筑消防設(shè)施的定期檢測(cè)與維護(hù)
- 高質(zhì)量發(fā)展背景下心理專(zhuān)科醫(yī)院成本精細(xì)化管理研究
- 拼多多平臺(tái)用戶(hù)購(gòu)物行為分析
- 教育與文化傳承資源的融合
- 探索不同類(lèi)型的事件營(yíng)銷(xiāo)策略
- 教與學(xué)視角下的教育資源共享機(jī)制
- 教育信息化與創(chuàng)新教育模式的構(gòu)建
- 環(huán)保相關(guān)知識(shí)培訓(xùn)課件
- 2025年3月10日吉林省紀(jì)委監(jiān)察廳遴選面試真題及解析
- 2025年 內(nèi)蒙古能源集團(tuán)所屬單位招聘考試筆試試題(含答案)
- 2025年“安康杯”安全知識(shí)競(jìng)賽題庫(kù)(含答案)
- 2025年江西省高考物理真題
- CJ/T 463-2014薄壁不銹鋼承插壓合式管件
- 風(fēng)電場(chǎng)安全管理制度
- T/SHPTA 071.2-2023高壓電纜附件用橡膠材料第2部分:半導(dǎo)電橡膠材料
- 2025年鎢合金項(xiàng)目市場(chǎng)調(diào)查研究報(bào)告
- 多模態(tài)感知與無(wú)人機(jī)低空安全評(píng)估-洞察闡釋
- 【課件】科技創(chuàng)新與研發(fā)管理培訓(xùn)研討會(huì)
評(píng)論
0/150
提交評(píng)論