版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實 習 報 告電子與信息工程學院課 程 設 計 報 告(2010 2011學年 第 2 學期)課程名稱: 單片機課程設計 班 級: 學 號: 姓 名: 指導教師: 2011年 03月1、 目的實習是在教師指導下,學生運用所學理論知識及實驗方法解決實際問題的一種實踐活動,通過這些活動培養(yǎng)學生分析問題和解決問題的能力。具體表現(xiàn)在構(gòu)造一個控制系統(tǒng)框架的能力;檢索和閱讀文獻資料的能力;綜合運用所學專業(yè)知識使之對所設計系統(tǒng)具有獨立調(diào)試的能力和故障處理的能力;繪圖能力;計算機運用能力;邏輯思維能力與形象思維能力;文字及口頭表達的能力;撰寫實習報告的能力2、 內(nèi)容和要求任務1:交通燈(1)基本要求:以單片機
2、為核心設計一個完整的交通燈模擬系統(tǒng)。所謂模擬就是以每組有綠,紅,黃色3支共兩組發(fā)光二極管表示交通信號燈,數(shù)碼管2只共兩組以遞減的方式表示各色信號燈的時間。在雙干線路口上,交通信號燈的變化是定時的。假定: 放行線,綠燈亮放行25秒,黃燈亮警告5秒,然后紅燈亮禁止。 禁止線,紅燈亮禁止30 秒,然后綠燈亮放行。使兩條路線交替地成為放行線和禁止線,就可以實現(xiàn)定時交通控制。假定以p1口線接6支發(fā)光二極管(即交通信號燈),因為電路中有反相器的關(guān)系,所以口線輸出高電平則“信號燈”熄滅,口線輸出低電平則“信號燈“亮。(2)進階要求一:在基本要求的基礎(chǔ)上,要求紅綠燈時間可通過按鍵設置,例如紅燈60秒,綠燈52
3、秒,黃燈8秒。提示:時間設置一定是要遵循以下規(guī)律:紅燈時間綠燈時間黃燈時間;任務2:秒表要求:至少包括4個功能:時間清零;啟動計時;暫停計時;繼續(xù)計時;計時最小單位0.1 秒,最大計時時間999.9秒3過程(如實際程序開發(fā)、電子制作,詳細說明有關(guān)原理、開發(fā)過程、調(diào)試過程、結(jié)果)一交通燈芯片介紹sst89e58rd:是8位flash flex51系列單片機。flash flex51是在高級flash cmos半導體工藝下設計和生產(chǎn)出來的單片機產(chǎn)品之一。單片機有40k片內(nèi)flash eeprom程序存儲器,它利用sst的超級flash專利技術(shù),這些都是sst的領(lǐng)先技術(shù)。超級flash存儲器被分為兩
4、個獨立的程序存儲器塊,基本flash block0占用32k字節(jié)片內(nèi)程序存儲空間,二級flash block1占用8k字節(jié)的片內(nèi)程序存儲器空間;8k字節(jié)的二級flash塊能被映射到32k字節(jié)低地址空間它也能從程序計數(shù)器中被隱藏掉而用做一個獨立的類似eeprom的數(shù)據(jù)存儲器。其具有以下特點:兼容80c51系列,內(nèi)置超級flash存儲器的單片機;工作電壓vdd=4.55.5;1k*8的內(nèi)部ram(256bytes+768bytes,可以放心使用c語言編程)等。8155:intel8155是可編程ram/io芯片,為40腳雙列直插式封裝。有256*8位靜態(tài)ram,2個8位和1個6位可編程并行i/o接
5、口,以及1個14位可編程定時器/計數(shù)器??芍迸cmcs-51單片機相接,是mcs-51單片機應用系統(tǒng)中應用最多的芯片之一其內(nèi)部結(jié)構(gòu)圖和引腳圖如圖1所示圖11.數(shù)碼管顯示模塊在交通燈系統(tǒng)中,四位數(shù)碼管是用來顯示交通燈倒計時時間的,一路顯示放行線時間,一路顯示禁止線時間四位數(shù)碼管的電路如圖2:圖2四位八段數(shù)碼管,屬共陰逆序,高電平有效,所以不帶小數(shù)點的0-f的段碼如下:0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h,0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh;proteus 仿真圖如圖3:圖3四位數(shù)碼管的顯示使用了并行擴展芯片8155,8155與
6、單片機sst89e58rd的接口如圖4圖48155的高8位數(shù)據(jù)地址線與單片機的p0口相連,ce與ad15相連,io/m與ad8相連數(shù)碼管的八位段選與pb口相連,四位位選與pa口相連。用c語言初始化8155和顯示程序如下:#define pa8155 xbyte0x7101#define pb8155 xbyte0x7102#define com8155 xbyte0x7100com8155=0x03;2發(fā)光二極管模塊用兩組分別為紅黃綠共六盞led燈來模擬實際的交通信號燈,時間上遵循紅燈時間等于綠燈時間加黃燈時間。led燈是低電平有效,硬件電路圖如圖5所示:圖5led的控制是在定時器0的中斷中實
7、現(xiàn)的,每一秒時間到后,會根據(jù)實時時間(current_time)與紅黃綠時間比較,來確定相應的兩盞燈亮,程序如下所示: if(current_timegreen)/主綠燈和從紅燈時間 allocate(green-current_time)*100+green+yellow-current_time); p1=0xf3; else if(current_timegreen+yellow)/主黃從紅 allocate(green+yellow-current_time)*100+green+yellow-current_time); p1=0xf5; else if(current_time2)
8、 traffic_mode=0;ea=1;4.程序流程圖如下:開始初始化1s到?進入定時器中斷0led及數(shù)碼管顯示traffic_mode=1?狀態(tài)1按鍵處理按鍵是否按下狀態(tài)2traffic_mode=2?主流程圖k1按下進入修改選擇狀態(tài)進入加狀態(tài)k3按下進入減狀態(tài)k4按下返回按鍵流程圖二秒表秒表的要求是至少包括4個功能:時間清零;啟動計時;暫停計時;繼續(xù)計時;計時最小單位0.1 秒,最大計時時間999.9秒數(shù)碼管顯示模塊見一中“數(shù)碼管顯示模塊”,此處略;程序主流程圖如下:開始初始化復位鍵?暫停暫停鍵?顯示時間結(jié)束 秒表主流程圖三將兩個程序合并將兩個程序合并需要用一個變量來判斷,我們選擇掃描p
9、1.7口來設定變量的值,然后在中斷和主函數(shù)中用變量的值來選擇執(zhí)行的程序段程序流程圖如下:開始初始化執(zhí)行交通燈功能mode=2?執(zhí)行秒表功能mode =1?四合并后的程序如下:#include /頭文件#include#include #include#define pa8155 xbyte0x7101 /數(shù)碼管位選地址#define pb8155 xbyte0x7102 /數(shù)碼管段選地址#define com8155 xbyte0x7100unsignedcharcode table16=0x0fc,0x60,0x0da,0x0f2,0x66,0x0b6,0x0be,0x0e0,0x0fe,0
10、x0f6;unsigned char buf4=0,0,0,0;/數(shù)據(jù)緩沖區(qū)sbit btn=p17;sbit inte0=p32;sbit add=p34;sbit minus=p35;unsigned int mode=1; unsigned int traffic_count=0; /交通燈變量unsigned int traffic_mode=0;unsigned int current_time=0;unsigned int green=25;unsigned int yellow=5;unsigned int time_count=0; /秒表變量unsigned int time
11、=0;unsigned int reset; /復位標志位bit i=0; /啟停標志位void delay(unsigned int t)/延遲函數(shù) while(t-);void disp_led(unsigned char *bufptr)/ 數(shù)碼管顯示 unsigned char disi;unsigned char bitct=0x10; for(disi=0;disi4;disi+) pa8155=bitct; pb8155=table*bufptr+(disi=1 & mode=2); bitct=bitct1;/左移一位delay(500); void allocate(unsi
12、gned int a)/ 數(shù)據(jù)分配 buf3=a/1000; buf2=a%1000/100; buf1=a%100/10; buf0=a%10;unsigned char chkey(bit key)/ 鍵值掃描函數(shù) if(key=0) delay(20000); if(key=0) return 1; void testmode()/鍵值掃描函數(shù) if(chkey(btn)=1) mode+; if(mode=3) mode=1; allocate(mode*10); unsigned char scankey (unsigned char sec)/加減實現(xiàn)函數(shù) if(!add) del
13、ay(20000); sec+; if(!minus) delay(20000); sec-; return sec;void ex0() interrupt 0 /外部中斷0if(mode=1) /ea=0; if(!inte0) delay(2500); if(!inte0) traffic_mode+; if(traffic_mode=3) traffic_mode=0; /ea=1; else if(mode=2) reset=1;void timer0() interrupt 1 /定時器0中斷 if(mode=1) traffic_count+; if(traffic_count=
14、20) traffic_count=0; current_time=(current_time+1)%(2*yellow+2*green); if(current_timegreen) allocate(green-current_time)*100+green+yellow-current_time); p1=0xf3; else if(current_timegreen+yellow) allocate(green+yellow-current_time)*100+green+yellow-current_time); p1=0xf5; else if(current_timegreen*
15、2+yellow) allocate(2*green+2*yellow-current_time)*100+green*2+yellow-current_time); p1=0xde; else allocate(2*green+2*yellow-current_time)*100+2*green+2*yellow-current_time); p1=0xee; else if(mode=2) time_count+; if(time_count=2) time_count=0; time+; allocate(time); th0=0x4b; tl0=0x40;void ex1() inte
16、rrupt 2 /外部中斷1 if(mode=2) i=i;void main() tmod=0x01; th0=0x4b; tl0=0x40; ip=0x01; ea=1; et0=1; ex0=1; it0=1; ex1=1; it1=1; com8155=0x03; tr0=1; allocate(green*100+green+yellow);while(1) while(mode=1)/交通燈 testmode(); switch(traffic_mode) case 1: yellow=scankey(yellow); allocate(yellow*100); break; ca
17、se 2: green=scankey(green); allocate(green); break; disp_led(buf); while(mode=2) /秒表 testmode(); if(i=1) tr0=1; else tr0=0; if(reset=1) /當接收到復位信號后令各緩沖區(qū)清零,同時停止計時 time=0; reset=0; i=0; tr0=0; allocate(0); disp_led(buf);五完整的硬件電路圖圖7秒表的實現(xiàn)是在上圖的基本上去掉led部分,在獨立按鍵控制模塊換成下面的圖8圖84.小結(jié)(1).通過這次實現(xiàn)我熟悉了51單片機c語言程序的編寫和單
18、片機設計仿真工具proteus的使用。用c編寫程序比匯編更符合人們的思考習慣,開發(fā)者可以擺脫與硬件無必要的接觸,更專心的考慮功能和算法而不是考慮一些細節(jié)問題,這樣就減少了開發(fā)和調(diào)試的時間。c語言具有良好的程序結(jié)構(gòu),適用于模塊化程序設計,因此采用c語言設計單片機應用系統(tǒng)程序時,首先要盡可能地采用結(jié)構(gòu)化的程序設計方法,將功能模塊化,由不同的模塊完成不同的功能;proteus不僅是模擬電路,數(shù)字電路,模/數(shù)混合電路的設計與仿真平臺,更是目前世界上最先進,最完整的多種型號單片機系統(tǒng)的設計與仿真平臺。它真正實現(xiàn)了在計算機上完成從原理圖設計,電路分析與仿真,單片機代碼級調(diào)試與仿真,系統(tǒng)測試與功能驗證到形成pcb的完整的電子設計,研發(fā)過程。在本次實習中主要用到isis功能模塊,isis是單片機與外設的設計,仿真和協(xié)同仿真環(huán)境,它提供了進行設計的方法,為單片機系統(tǒng)的實時交互式仿真提供了結(jié)構(gòu)體系;為單片機編輯源程序,產(chǎn)生目標代碼提供了管理系統(tǒng)。(2). 在本次實習中主要遇到兩個大的問題,一個是在交通燈進階模塊,如何通過按鍵實現(xiàn)交通燈時間的修改,起初準備把整個修改時間的功能實現(xiàn)都放在一個外部中斷中實現(xiàn),進入中斷就進入了交通燈時間的修改,可實現(xiàn)起來比較困難,最后設計思路是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度安徽省城市軌道交通運營管理合同3篇
- 2025年新版填土工程安全協(xié)議書范本3篇
- 2025年送氣工解雇經(jīng)濟補償協(xié)議3篇
- 二零二五年度不銹鋼門窗制作與安裝服務合同2篇
- 2025年度煤礦公司員工勞動合同解除及補償協(xié)議4篇
- 二零二五年度管件行業(yè)智能制造與工業(yè)互聯(lián)網(wǎng)應用合同3篇
- 2025年水土保持設施驗收技術(shù)服務及后續(xù)監(jiān)管合同3篇
- 二零二五年螺旋鋼管倉儲物流服務合作協(xié)議4篇
- 二零二五年度能源項目融資合同4篇
- 二零二五年度標識牌行業(yè)標準制定與合作合同3篇
- 萬達廣場裝修手冊
- 云南省律師服務收費管理辦法及標準
- 華為C語言通用編程規(guī)范
- 搞笑詩朗誦《生活》4人
- 團建活動滿意度調(diào)查問卷
- 數(shù)獨題目難度系數(shù)3級共100題后附參考答案
- 齊魯醫(yī)學數(shù)字疼痛評分表
- GB∕T 7588.1-2020 電梯制造與安裝安全規(guī)范 第1部分:乘客電梯和載貨電梯
- 植物種植施工方案與技術(shù)措施
- 空調(diào)工程竣工驗收單(共1頁)
- STM32固件庫使用手冊(中文版)
評論
0/150
提交評論