




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選文庫 機(jī)電工程學(xué)院課程設(shè)計(jì)報(bào)告 課程名稱: 單片機(jī)課程設(shè)計(jì) 專業(yè)班級(jí): 13電本2班 學(xué) 號(hào): 2013041632 7 學(xué)生姓名: 指導(dǎo)教師: 王清輝、何文豐 完成時(shí)間: 報(bào)告成績: 評(píng)閱意見: 評(píng)閱教師 日期 交通燈設(shè)計(jì) 、設(shè)計(jì)任務(wù)與要求 設(shè)計(jì)基本要求: (1)車輛通行繁忙的十字交叉路口,設(shè)計(jì)一交通燈控制器,設(shè)東西方向通行時(shí)間為 30秒,當(dāng)剩余3秒時(shí)黃燈亮,南北方向通行時(shí)間為 20秒,當(dāng)剩余3秒時(shí)黃燈亮。 (2) 東西、南北方向各用三個(gè)(綠、黃、紅)LED表示,并用數(shù)碼管顯示東西、南 北方向的剩余時(shí)間。 (3)可利用按鍵修改時(shí)間參數(shù),可以利用按鍵切換東西南北交通燈的當(dāng)前狀態(tài)(即 立刻?hào)|
2、西由紅變綠,南北有綠變紅,并按設(shè)定的時(shí)間工作)。 二、方案設(shè)計(jì)與論證 交通燈的工作方式及狀態(tài)設(shè)計(jì): 狀態(tài) 東西 南北 通行時(shí)間 注 紅黃綠 紅黃綠 1、東西綠燈南北紅燈 110 011 27秒(時(shí)間可設(shè)) 交通燈從狀態(tài)1至 4不斷循環(huán),通過 外設(shè)按鈕實(shí)現(xiàn)狀 態(tài)1和3的切換 2、東西黃燈南北紅燈 101 011 3秒(黃燈閃爍) 3、東西紅燈南北綠燈 011 110 17秒(時(shí)間可設(shè)) 4、東西紅燈南北黃燈 011 101 3秒(黃燈閃爍) 表2-1 :交通燈的工作狀態(tài)表 根據(jù)表2-1所示可將交通燈的工作狀態(tài)設(shè)為以下幾個(gè)步驟: 1、初始狀態(tài)時(shí)即為東西方向綠燈通行 27秒+3秒黃燈,此時(shí)南北紅燈亮
3、。 2、隨后是南北方向綠燈通行17秒+3秒黃燈,此時(shí)東西紅燈亮。 3、 通過按模式選擇鍵一次來切換東西南北交通燈的當(dāng)前狀態(tài)。(通過設(shè)置定時(shí)計(jì)時(shí) 器T1實(shí)現(xiàn)交通燈的計(jì)時(shí)) 4、通過按模式選擇鍵第二次切換至南北方向紅綠燈的計(jì)時(shí)設(shè)置,通過加減按鍵來 確定南北方向紅綠燈的計(jì)時(shí)數(shù)。 5、確定南北方向計(jì)數(shù)值后,通過按模式選擇鍵第三次切換至東西方向紅綠燈的計(jì) 時(shí)設(shè)置,通過加減按鍵來確定東西方向紅綠燈的計(jì)時(shí)數(shù)。 6、確定交通燈計(jì)時(shí)數(shù)后再按下模式選擇鍵后,交通燈便進(jìn)入工作狀態(tài)。 時(shí)間計(jì)時(shí)的實(shí)現(xiàn):采用定時(shí)中斷實(shí)現(xiàn)秒的精確計(jì)時(shí)(詳細(xì)方案入下列程序設(shè)計(jì)所 示)。 按鍵輸入的實(shí)現(xiàn):通過編寫按鍵讀取函數(shù),來實(shí)現(xiàn)交通燈的狀
4、態(tài)以及時(shí)間值得設(shè)定 (詳細(xì)方案入下列程序設(shè)計(jì)所示) te a 下產(chǎn)蓋 ittr- - T ; -說散 fcS- 宜咸一 嘻北方旬訐 曲直設(shè)E 怎北亡蓉,京S還r 下 一才曲問 3 5 if 3*5J 施琵繞ME 穆芟柴上| 5ZZ 巾斷包回 圖2-1程序設(shè)計(jì)流程框圖 三、硬件電路設(shè)計(jì) 1、倒計(jì)時(shí)顯示 該系統(tǒng)要求完成倒計(jì)時(shí)的功能。因只需顯示數(shù)字,基于上述原因,我完全采用數(shù)碼 管顯示,四個(gè)路口分別采用一個(gè)二位共陰極數(shù)碼管即可。 2、狀態(tài)燈顯示 該系統(tǒng)要求完成狀態(tài)燈顯示的功能。采用紅綠黃三種LED燈一個(gè)路口只需三個(gè)個(gè) 狀態(tài)燈,綠燈通行,紅燈停止,黃燈閃爍。 3、輸入方案 該系統(tǒng)要求能手動(dòng)改變東西與南
5、北的通行時(shí)間、紅綠燈狀態(tài)緊急交換處理。運(yùn)用單 片機(jī)中四個(gè)IO 口設(shè)置三個(gè)按鍵,三個(gè)按鍵的功能分別為:增加、減少、狀態(tài)切換和暫 停。 4、復(fù)位電路與晶振電路 復(fù)位電路:復(fù)位方式有多種,本設(shè)計(jì)采用按鍵復(fù)位。接線圖如圖3-1所示,當(dāng)按 下復(fù)位按鍵時(shí),RST端產(chǎn)生高電平,使單片機(jī)復(fù)位。復(fù)位后,其片內(nèi)各寄存器狀態(tài)改 變,片內(nèi)RAM內(nèi)容不變。 C2 圖3-1程序仿真接線圖 晶振電路(如圖3-2所示):結(jié)合單片機(jī)內(nèi)部產(chǎn)生單片機(jī)所需的時(shí)鐘頻率。 II X4 crystal 細(xì)- C3 _IH ;2uF 圖3-2程序仿真接線圖 TWIT 5、AT89S51的簡介 AT89S51是一個(gè)低功耗,高性能CMOS 8位
6、單片機(jī),片內(nèi)含4k Bytes ISP(ln-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用 ATMEL公司 的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu), 芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,AT89S51在眾多嵌入式控制 應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。 四、軟件設(shè)計(jì) Men r t # wri * *0 07 : 母 H-ff UP.-ID *iarrra farT Pri-Bld PJill 921 pavv FlhP *x-aMii fI*T h 已 b 1 rzTn n Ml T
7、iJ*ra 料AH TTKATr 27砂 TiiTwn 1 1 衛(wèi) LOAN昔即話 阻? -儲(chǔ)-T- i fi L *5+11* 辺訓(xùn)嶇衛(wèi).盧ah ABg叭M訶旳 PR s聲薦 律氏EJ=U CC-CL_iJU 圖3-3程序仿真接線圖 ir-iE-JW IK 5 R4 Ib1, i以1刖4 根據(jù)設(shè)計(jì)要求得完整的交通燈程序源代碼包含有:1.定時(shí)2.數(shù)碼管顯示3LED狀 態(tài)切換.4按鍵讀取。 #in elude reg51.h #define uint un sig ned int #define uchar un sig ned char uchar code num=0 x3f,0 x06,0
8、 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/數(shù)碼管顯示數(shù)組 uchar T0_Count=0,East_time=0,North_time=0;/定時(shí)變量,東西倒計(jì)時(shí)變量,南北倒計(jì)時(shí)變量 sbit DXD_Red=卩3人0; /東西方向紅燈 sbit DXD_Yellow=卩3人1; 東西方向黃燈 sbit DXD_Gree n=P 3人2; /東西方向綠燈 sbit NBD_Red=卩3人3; /南北方向紅燈 sbit NBD_Yellow=卩3人4; /南北方向黃燈 sbit NBD_Gree n=P 3人6; /南北方向綠燈 sbit
9、DXKZ_GE=卩2人4; 東西方向個(gè)位數(shù)碼管公共端 sbit DXKZ_SHI=卩2人5; 東西方向十位數(shù)碼管公共端 sbit NBKZ_GE=卩2人6; /南北方向個(gè)位數(shù)碼管公共端 sbit NBKZ_SHI=卩2人7; /南北方向十位數(shù)碼管公共端 sbit Key_Add=PIT; /增加按鍵 sbit Key_Dec=卩1人2; /減少按鍵 sbit Key_OK=卩1人3; /確定按鍵,兼具狀態(tài)切換 sbit LE=PIP; void delayms( uint i) /毫秒級(jí)延時(shí) uint x,y; for(x=i;x0;x-) for(y=110;y0;y-); void t0_
10、i nit() TMOD=0X01; /16位定時(shí)器 TH0=(65536-50000)/256; TL0=(65536-50000)%256; /定時(shí)50ms ET0=1; 開啟中斷1 EA=1; 開啟總中斷 TR0=1; 開啟定時(shí)器 void state1() 東西綠燈亮, 南北紅燈亮 DXD_Red=1; DXD_Yellow=1; DXD_Gree n=0; NBD_Red=0; 精選文庫 13 NBD_Yellow=1; NBD_Gree n=1; void state2() 東西黃燈閃爍 DXD_Red=1; DXD_Yellow=0; DXD_Gree n=1; void sta
11、te3() 東西紅燈亮,南北綠燈亮 DXD_Red=0; DXD_Yellow=1; DXD_Gree n=1; NBD_Red=1; NBD_Yellow=1; NBD_Gree n=0; void state4() /南北黃燈閃爍 NBD_Red=1; NBD_Yellow=0; NBD_Gree n=1; void Display(uchar num1,num2)/功能:數(shù)碼管掃描顯示函數(shù) /參數(shù):nu m1,東西方向數(shù)碼管顯示值;nu m2,南北方向數(shù)碼管顯示值 P 0=numn um1%10;/LE=1;LE=0; /寫入個(gè)位數(shù) DXKZ_GE=0;delayms(10);/開啟一個(gè)
12、數(shù)碼管公共端,顯示一段時(shí)間 DXKZ_GE=1; /關(guān)閉公共端 P 0=num num1/10;/LE=1;LE=0; /寫入十位數(shù) DXKZ_SHI=0;delayms(10); DXKZ_SHI=1; P 0=numn um2%10;/LE=1;LE=0; 寫入個(gè)位數(shù) NBKZ_GE=0;delayms(10); NBKZ_GE=1; P 0=num num2/10;/LE=1;LE=0; /寫入十位數(shù) NBKZ_SHI=0;delayms(10); NBKZ_SHI=1; uchar key_read() /功能:按鍵讀取 參數(shù):back,1,按下增加按鍵;2,減少按鍵;3確定鍵 uch
13、ar back=0; /按鍵延時(shí)消抖 if(P 1!=0 xff) delayms(10); if(Key_Add=0) back=1; else if(Key_Dec=0) back=2; else if(Key_OK=0) back=3; while( P1!=0 xff); retur n back; void Clear_Dis play() /關(guān)閉所有數(shù)碼管顯示 P O=OxOO;/LE=1;LE=O; DXKZ_GE=1; DXKZ_SHI=1; NBKZ_GE=1; NBKZ_SHI=1; void mai n() uchar Tab=1,key,East_TimeNum=30,
14、North_TimeNum=20; tO_i nit(); Clear_Dis play(); 開機(jī)初始化關(guān)閉所有數(shù)碼管 /設(shè)置東西方向倒計(jì)時(shí) while(key!=3) 按下確定鍵,退出while key=key_read(); /按鍵讀取函數(shù) /按下增加按鍵 else if(key=2) /按下減少按鍵 if(key=1) East_TimeNum+; /數(shù)碼管同步顯示東西方向設(shè)定的值 if(East_TimeNum3)East_TimeNum-; Dis play(East_TimeNum,O); key=0; /設(shè)置南北方向倒計(jì)時(shí) while(key!=3) /按下確定鍵,退出whil
15、e key=key_read(); /按鍵讀取函數(shù) /按下增加按鍵 else if(key=2) /按下減少按鍵 if(key=1) North_TimeNum+; if(North_TimeNum3)North_TimeNum-; 精選文庫 /數(shù)碼管同步顯示南北方向設(shè)定的值 case 1: Tab=2; /切換至下一紅綠燈狀態(tài) Dis play(0,North_TimeNum); key=0; while(1) switch(Tab) 紅綠燈狀態(tài)1 East_time=East_TimeNum; 填充東西倒計(jì)時(shí)值,大小為已設(shè)置好的East_TimeNum 21 state1(); while
16、(East_time!=3)/ 數(shù)碼管顯示 key=key_read(); if(key=3) key=0;East_time=0; 東西倒計(jì)時(shí)立刻清零 Tab=3; /按下切換按鍵,直接跳到狀態(tài)3 break; case 2: /紅綠燈狀態(tài)2 state2();Tab=3; /切換至下一紅綠燈狀態(tài) while while(East_time!=0) key=key_read(); DXD_Yellow=DXD_Yellow; if(key=3) key=0;Tab=3; /按下切換按鍵,直接跳到狀態(tài)3 East_time=0; 東西倒計(jì)時(shí)立刻清零 break; case 3: II紅綠燈狀態(tài)
17、3 II切換至下一紅綠燈狀態(tài) North_time=North_TimeNum;Tab=4; state3(); while(North_time!=3) key=key_read(); if(key=3) key=0;Tab=1;North_time=0; break; case 4: 紅綠燈狀態(tài)4 切換至下一紅綠燈狀態(tài) state4();Tab=1; while(North_time!=0) key=key_read(); NBD_Yellow=NBD_Yellow; if(key=3) key=0;Tab=1;North_time=0; break; void Timer_0() in
18、terr upt 1 T0_Cou nt+; TH0=(65536-50000)/256; /每50ms進(jìn)入一次中斷函數(shù) TL0=(65536-50000)%256; if(T0_Cou nt=20) /定時(shí) 20*50ms=1S 清零重新計(jì)時(shí) East_time-; /東西方向按秒間隔倒計(jì)時(shí) T0_Cou nt=0; if(East_time=0) East_time=0; else if(North_time=0) North_time=0; else North_time-; /南北方向按秒間隔倒計(jì)時(shí) 五、仿真過程與仿真結(jié)果 運(yùn)用ISIS 7 Professional仿真軟件進(jìn)行程序仿真,按程序要求設(shè)置 好程序仿真圖(圖3-1所示),把Keil uVision4生成交通
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣州科技職業(yè)技術(shù)大學(xué)《建筑學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 溫州肯恩大學(xué)《中學(xué)物理專題訓(xùn)練與研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025河北省安全員考試題庫及答案
- 德宏職業(yè)學(xué)院《新媒體概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年湖南省五市十校教研教改共同體高一上學(xué)期12月月考?xì)v史試卷
- 山東石油化工學(xué)院《工程結(jié)構(gòu)反分析理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 德宏職業(yè)學(xué)院《國際法與當(dāng)代中國》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東茂名農(nóng)林科技職業(yè)學(xué)院《互聯(lián)網(wǎng)+大學(xué)生創(chuàng)新創(chuàng)業(yè)設(shè)計(jì)與實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年山西省建筑安全員《A證》考試題庫
- 桂林山水職業(yè)學(xué)院《幼兒教師職業(yè)道德與專業(yè)發(fā)展》2023-2024學(xué)年第二學(xué)期期末試卷
- (課件)-幼兒園中班社會(huì)教案《新年里的開心事》
- 2025海南省交通投資控股限公司招聘30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 宋代美學(xué)研究
- 行政管理學(xué)知識(shí)點(diǎn)全套
- 船舶安全管理培訓(xùn)課件
- 《工業(yè)機(jī)器人現(xiàn)場編程》課件-任務(wù)3.涂膠機(jī)器人工作站
- 供應(yīng)鏈管理(第2版)課件:常用的供應(yīng)鏈管理方法
- 腰椎手術(shù)的疑難討論
- 中英文對(duì)照版 ASTM B594 2019 鋁合金形變產(chǎn)品超聲波檢測標(biāo)準(zhǔn)慣例
- 五年級(jí)下冊(cè)道德與法治教學(xué)計(jì)劃
- 2025屆高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):阿基米德三角形【六大題型】含答案
評(píng)論
0/150
提交評(píng)論