單片機(jī)課程設(shè)計(jì)報(bào)告基于AT89C51單片機(jī)的流水燈_第1頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告基于AT89C51單片機(jī)的流水燈_第2頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告基于AT89C51單片機(jī)的流水燈_第3頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告基于AT89C51單片機(jī)的流水燈_第4頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告基于AT89C51單片機(jī)的流水燈_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 單片機(jī)設(shè)計(jì)報(bào)告學(xué)生姓名學(xué) 號(hào)教學(xué)院系電氣信息工程學(xué)院專業(yè)年級(jí)指導(dǎo)教師李杰完成日期2011年6月21日目錄目錄0第一章 基礎(chǔ)設(shè)計(jì)報(bào)告11.1 設(shè)計(jì)任務(wù)及功能11.2控制流程圖11.3 硬件設(shè)計(jì)仿真圖21.4 建立流水燈工程21.5 運(yùn)行及調(diào)試5第二章 提高設(shè)計(jì)報(bào)告62.1 設(shè)計(jì)任務(wù)及功能62.1.1設(shè)計(jì)任務(wù)62.1.2該系統(tǒng)實(shí)現(xiàn)的具體功能62.2 i/o口功能收集及表單匯總62.3系統(tǒng)流程框72.4 創(chuàng)建新工程82.4.1.啟動(dòng)keil uvision4,新建工程82.4.2. 啟動(dòng)proteus7.5,新建工程82.5系統(tǒng)方案及硬件設(shè)計(jì)92.5.1系統(tǒng)方案的確定92.5.2顯示部分電路設(shè)計(jì)9

2、2.5.3時(shí)鐘部分電路設(shè)計(jì)92.5.4復(fù)位電路設(shè)計(jì)102.6軟件設(shè)計(jì)102.6.1應(yīng)用系統(tǒng)軟件設(shè)計(jì)要求102.6.2應(yīng)用系統(tǒng)軟件設(shè)計(jì)112.6.3延時(shí)程序模塊的設(shè)計(jì)112.7 proteus軟件仿真122.7.1仿真開發(fā)系統(tǒng)的功能122.7.2 proteus軟件系統(tǒng)仿真122.7.3 具體仿真結(jié)果顯示122.8 運(yùn)行程序15第三章 提高設(shè)計(jì)報(bào)告任務(wù)說(shuō)明書173.1 小組成員及學(xué)號(hào)173.2 本人工作任務(wù)詳細(xì)說(shuō)明18第四章 實(shí)習(xí)心得18參考文獻(xiàn):18第一章 基礎(chǔ)設(shè)計(jì)報(bào)告設(shè)計(jì)題目1:基于at89c51單片機(jī)的流水燈1.1 設(shè)計(jì)任務(wù)及功能1) 用at89c51單片機(jī)設(shè)計(jì)一組由二極管組成的流水燈,并

3、編寫程序使發(fā)光二極管依次點(diǎn)亮。2) 用protues設(shè)計(jì)、仿真以at89c51為核心發(fā)光二極管流水燈實(shí)驗(yàn)裝置。3) 掌握發(fā)光二極管的控制方法。1.2控制流程圖開始p0口初值亮第一個(gè)燈延時(shí)p0口左移一位逐次點(diǎn)亮結(jié)束圖1-2流水燈程序控制流程圖1.3 硬件設(shè)計(jì)仿真圖圖1-3 proteus7.5仿真流水燈圖1.4 建立流水燈工程1) 打開keil程序,選擇工程菜單。圖1-4-1 keil程序2) 選擇新建uvision工程,保存為工程名稱。圖1-4-2 新建uvision工程3) 選擇atmel公司的at89c51設(shè)備。圖1-4-3 選擇at89c51設(shè)備4) 添加程序文本。圖1-4-4 添加程序

4、文本5) 編譯程序之前,在閃存菜單設(shè)置選項(xiàng)中選擇輸出選項(xiàng),在產(chǎn)生hex文件前打鉤即可。圖1-4-5 產(chǎn)生hex文件1.5 運(yùn)行及調(diào)試<1>編程程序: #include <reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int void delayms(uint xms); uchar a; void main() a=0xfe; while(1) p0=a; delayms(200); a=_crol_(a,1); void delayms(uint

5、 xms) uint i,j; for(i=xms;i>0;i-) for(j=110;j>0;j-); <2>調(diào)試與運(yùn)行:進(jìn)入調(diào)試運(yùn)行階段。會(huì)看到led燈逐個(gè)點(diǎn)亮。保存運(yùn)行畫面。圖1-4-5 運(yùn)行界面圖第二章 提高設(shè)計(jì)報(bào)告設(shè)計(jì)題目2:基于at89c51單片機(jī)的交通燈系統(tǒng)2.1 設(shè)計(jì)任務(wù)及功能2.1.1設(shè)計(jì)任務(wù)運(yùn)用單片機(jī)原理及應(yīng)用、c語(yǔ)言的相關(guān)知識(shí),設(shè)計(jì)簡(jiǎn)易交通燈控制系統(tǒng)。要求該系統(tǒng)能形象地反映出十字路口簡(jiǎn)易交通燈控制系統(tǒng)的工藝流程,并同時(shí)具有顯示通車倒計(jì)時(shí),修改道路通車時(shí)間,單向控制通車及顯示通車道路等功能。2.1.2該系統(tǒng)實(shí)現(xiàn)的具體功能1) 東西方向(1路)車道和南

6、北方向(2路)車道兩條交叉路上的車輛交替運(yùn)行,每次通行30秒。2)在倒計(jì)時(shí)最后5秒內(nèi),亮著的燈不停閃爍,提示即將變換車道。直到倒計(jì)時(shí)為0變換車道。3) 可以通過(guò)按鍵選擇進(jìn)入調(diào)時(shí)系統(tǒng),進(jìn)入調(diào)時(shí)系統(tǒng)后,加減通行時(shí)間。4) 一車道有緊急車輛通過(guò)時(shí)(或車流量大時(shí)),手動(dòng)控制該車道持續(xù)通行。5)當(dāng)退出手動(dòng)控制后,交通燈恢復(fù)原來(lái)運(yùn)行狀態(tài)。2.2 i/o口功能收集及表單匯總經(jīng)過(guò)初步設(shè)計(jì),制作設(shè)計(jì)表單如下:表2-2-1 顯示畫面設(shè)計(jì)數(shù)碼管顯示通車倒計(jì)時(shí)顯示通車路段二極管紅色二極管亮表示禁止通行綠色二極管亮表示可以通行二極管閃爍表示即將更換通行車道表2-2-2 總體設(shè)計(jì)需要設(shè)備類別配置情況硬件pc機(jī)軟件keil

7、 uvision4 proteus7.5表2-2-3 at89c51i/o口引腳使用情況序號(hào)i/o位號(hào)名稱說(shuō)明i/o類型1p1、p2口數(shù)碼管數(shù)據(jù)口輸出2p0_0-p0_3二極管數(shù)據(jù)口輸出3p0_4、p0_5數(shù)碼管片選口輸出4p3_0-p3_5按鍵接口輸入2.3系統(tǒng)流程框數(shù)據(jù)信號(hào)交通燈振蕩電 路at89c51段碼led數(shù)碼管上電復(fù)位電 路調(diào)時(shí)電 路片選按鍵輸入圖2-3簡(jiǎn)易交通燈系統(tǒng)流程圖2.4 創(chuàng)建新工程2.4.1.啟動(dòng)keil uvision4,新建工程圖2-4-1 keil uvision4新建工程圖2.4.2. 啟動(dòng)proteus7.5,新建工程圖2-4-2 proteus7.5新建工程圖

8、2.5系統(tǒng)方案及硬件設(shè)計(jì)2.5.1系統(tǒng)方案的確定 交通燈在安全行車過(guò)程中起著十分重要的作用,現(xiàn)在交通燈一般設(shè)在十字路口,在醒目位置用紅、黃、綠三種顏色的指示燈(本次實(shí)驗(yàn)只用了紅、綠兩種燈),加上一個(gè)倒計(jì)時(shí)的顯示計(jì)時(shí)器來(lái)控制行車,對(duì)于一般情況下的安全行車、車輛分流發(fā)揮著重要作用,但根據(jù)實(shí)際行車過(guò)程中出現(xiàn)的情況,如何全面有效地利用交通燈指示交通情況,我們嘗試用單片機(jī)來(lái)控制交通燈,在軟、硬件方面采取一些改進(jìn)措施,使交通燈在控制中靈活而有效。 硬件系統(tǒng)是指構(gòu)成單片機(jī)系統(tǒng)的實(shí)體和裝置,通常由運(yùn)算器、控制器、存儲(chǔ)器、輸入接口電路和輸出接口電路、輸入設(shè)備和輸出設(shè)備等組成。單片機(jī)實(shí)質(zhì)上是一個(gè)硬件的芯片,在實(shí)際

9、應(yīng)用中,通常很難直接和被控制對(duì)象進(jìn)行電氣連接,必須外加各種擴(kuò)展接口電路、外部設(shè)備、被控制對(duì)象等硬件和軟件,才能構(gòu)成一個(gè)單片機(jī)應(yīng)用系統(tǒng)。該交通燈模擬系統(tǒng)的硬件部分主要由鍵盤、顯示和運(yùn)算部分組成。按照設(shè)計(jì)要求,在本設(shè)計(jì)中使用led數(shù)碼管顯示和擴(kuò)展按鍵。在該交通燈系統(tǒng)的設(shè)計(jì)中采用at89c51單片機(jī)。2.5.2顯示部分電路設(shè)計(jì) 本次設(shè)計(jì)采用動(dòng)態(tài)顯示方式,選亮數(shù)碼管采用靜態(tài)掃描顯示。送人一次字型碼顯示字型一直保持,直到送入新字型碼為止。這種方法的優(yōu)點(diǎn)是占用cpu時(shí)間少,顯示便于監(jiān)控和檢測(cè)。各數(shù)碼管在顯示過(guò)程中持續(xù)得到顯示信號(hào),與各數(shù)碼管接口的i/o口是專用的。本設(shè)計(jì)采用p1口和p2口作為數(shù)碼管數(shù)據(jù)輸出

10、口,p0_4與p0_5作為數(shù)碼管片選端。 本設(shè)計(jì)采用如下圖所示數(shù)碼管,表示通車剩余時(shí)間。a到g為碼段控制口,we1和we2為片選端口。圖2-5-1 數(shù)碼顯示管2.5.3時(shí)鐘部分電路設(shè)計(jì) 時(shí)鐘電路用于產(chǎn)生51單片機(jī)工作時(shí)所必須的時(shí)鐘控制信號(hào)。其內(nèi)部電路在時(shí)鐘信號(hào)控制下,嚴(yán)格地按時(shí)序執(zhí)行指令進(jìn)行工作。在執(zhí)行指令時(shí),cpu首先要到程序存儲(chǔ)器中取出要執(zhí)行的指令操作碼,然后譯碼,并由時(shí)序電路產(chǎn)生一系列控制信號(hào)去完成指令所規(guī)定操作。 本設(shè)計(jì)采用11.0592mhz晶振和兩個(gè)30pf電容,他們構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。該電容的大小影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。 為單片機(jī)提供標(biāo)準(zhǔn)時(shí)鐘,其

11、中兩個(gè)電容起微調(diào)作用。如下圖所示: 圖2-5-2 時(shí)鐘電路2.5.4復(fù)位電路設(shè)計(jì) 復(fù)位引腳rst通過(guò)一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來(lái)控制噪聲,在每個(gè)機(jī)器周期的s5p2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。 復(fù)位電路通常采用上電復(fù)位和按鈕復(fù)位兩種。本設(shè)計(jì)采用上電復(fù)位,復(fù)位電容采用10uf,電阻1000歐。加電瞬間,res管腳為高電平。通過(guò)電阻回路放電。如下圖所示:圖2-5-2 復(fù)位電路2.6軟件設(shè)計(jì)2.6.1應(yīng)用系統(tǒng)軟件設(shè)計(jì)要求 在進(jìn)行應(yīng)用系統(tǒng)的總體設(shè)計(jì)時(shí),軟件設(shè)計(jì)與硬件設(shè)計(jì)應(yīng)統(tǒng)一考慮,結(jié)合并進(jìn)。當(dāng)系統(tǒng)的電路設(shè)計(jì)定型后,軟件設(shè)計(jì)的任務(wù)也

12、就明確了。一般來(lái)說(shuō),軟件的功能可分為兩大類。一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測(cè)量計(jì)算、顯示、打印、輸出控制等;另一類是監(jiān)控軟件,它是專門用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者得關(guān)系,在系統(tǒng)軟件中充當(dāng)組織協(xié)調(diào)角色。我們?cè)O(shè)計(jì)時(shí),從以下幾個(gè)方面考慮:1)根據(jù)軟件功能的要求,將系統(tǒng)軟件分為若干個(gè)相對(duì)獨(dú)立的部分。設(shè)計(jì)出合理的軟件總體結(jié)構(gòu),使其清晰、簡(jiǎn)捷、流程合理。2)各功能程序?qū)嵭心K化,子程序化。3)在編寫應(yīng)用軟件之前,應(yīng)繪制出程序流程圖。4)合理分配系統(tǒng)資源,包括rom、ram、定時(shí)器/計(jì)數(shù)器、中斷源等。2.6.2應(yīng)用系統(tǒng)軟件設(shè)計(jì) 主程序流程圖如下圖所示:開始1路放行1路綠燈亮,2路紅燈亮1路紅燈亮

13、,2路綠燈亮延時(shí)25秒亮著的燈閃爍5秒緊急車通過(guò)1路 結(jié)束ynyn圖2-6 交通燈中斷控制程序流程圖 2.6.3延時(shí)程序模塊的設(shè)計(jì) 延時(shí)程序模塊是要生成一定的時(shí)間延時(shí),這在數(shù)碼管顯示模塊中會(huì)用到延遲程序,以滿足數(shù)碼管閃爍時(shí)能產(chǎn)生視覺效果。2.7 proteus軟件仿真2.7.1仿真開發(fā)系統(tǒng)的功能一個(gè)單片機(jī)系統(tǒng)經(jīng)過(guò)總體設(shè)計(jì),完成了硬件和軟件開發(fā)。元件安裝后在系統(tǒng)存儲(chǔ)器中放入編制好的應(yīng)用程序,系統(tǒng)即可運(yùn)行。一般來(lái)說(shuō),仿真開發(fā)系統(tǒng)應(yīng)具有如下的功能:1) 用戶樣機(jī)硬件電路的診斷與檢查;2) 用戶樣機(jī)程序的輸入與修改;3)程序的運(yùn)行、調(diào)試、排錯(cuò)、狀態(tài)查詢功能;4)將程序固化到eprom芯片中。2.7.2

14、 proteus軟件系統(tǒng)仿真 如下圖所示本設(shè)計(jì)硬件連接,在1路和2路的十字路口有紅、綠兩種交通燈,1路上的兩組同色燈連在一起,2路也是互連,p3_0到p3_5為按鍵控制,緊急車請(qǐng)求通過(guò)或延長(zhǎng)(減短)某路放行時(shí)間時(shí)由人工控制,以中斷方式輸入單片機(jī)。圖2.7.1 proteus7.5設(shè)計(jì)好的交通燈圖2.7.3 具體仿真結(jié)果顯示根據(jù)功能要求分別仿真各種情況下的亮燈情況,具體如下:如下圖仿真圖所示,正常情況下南北方向亮紅燈,東西方向亮紅燈。即1路放行,2路禁行(數(shù)碼管顯示為剩余放行時(shí)間):圖2.7.2 1路放行,2路禁行如下圖仿真圖所示,正常情況下東西方向亮紅燈,南北方向亮紅燈。即2路放行,1路禁行(

15、數(shù)碼管顯示為剩余放行時(shí)間):圖2.7.3 2路放行,1路禁行當(dāng)1路有緊急車需要通行時(shí),人工設(shè)置(進(jìn)入菜單后,按“1路通”)1路通行(1路綠燈亮,2路紅燈亮)數(shù)碼管顯示“1”,如下圖所示:圖2.7.4 1路有緊急車通過(guò)時(shí)(1路放行,2路禁行)當(dāng)2路有緊急車需要通行時(shí),人工設(shè)置(進(jìn)入菜單后,按“2路通”)2路通行(2路綠燈亮,1路紅燈亮)數(shù)碼管顯示“2”,如下圖所示:圖2.7.5 2路有緊急車通過(guò)時(shí)(2路放行,1路禁行)當(dāng)?shù)褂?jì)時(shí)為5秒時(shí),亮著的燈開始閃爍,由于閃爍時(shí)截圖無(wú)法體現(xiàn),所以此處就省略截圖。2.8 運(yùn)行程序#include<at89x51.h>#include<stdio

16、.h>#define uint unsigned intvoid led_display(int l2,int l1);void display(int number);void xiangling();uint anjian();void tiaoshi();void delay(t);char c10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;int m=30;char coun;char flag=0;void time(void) interrupt 1 uint recieve;recieve=anjian();if(r

17、ecieve=3) tiaoshi(); th0=0x3c;tl0=0xb0;coun+;if(coun=20)coun=0;if(m=0) m=31; flag+; m-;void main() p0_4=0; p0_5=0; p3_0=1; p3_1=1; p3_2=1; p3_3=1; p3_4=1; p3_5=1; tmod=0x01; ie=0x82; ip=0x02; tr0=1; th0=0x3c; tl0=0xb0;while(1) display(m);if(flag%2=0) p0_2=0; p0_0=0; p0_1=1; p0_3=1; delay(100); if(m&

18、lt;=5) p0_2=1;p0_0=1;p0_1=1; p0_3=1; /東西通車,南北停止 if(flag%2) p0_2=1;p0_0=1;p0_1=0; p0_3=0; delay(100); if(m<=5) p0_2=1;p0_0=1; p0_1=1; p0_3=1; /南北通車,東西停止 */ /-個(gè)位、十位分離- void display(int number) int n1; int n2; n1=number/10; n2=number%10; led_display(n1,n2); /-數(shù)碼管輸出顯示-void led_display(int l2,int l1)

19、p1=cl1; p2=cl2; delay(100); /-延時(shí)- void delay(t) int a,b; for(a=t;a>0;a-) for(b=110;b>0;b-); /-按鍵判斷- uint anjian() uint temp=0; if(p3_0=0) temp=1; delay(200); else if(p3_1=0) temp=2; delay(200); else if(p3_2=0) temp=3; delay(200); else if(p3_3=0) temp=4;delay(200); else if(p3_4=0) temp=5;delay(

20、200); else if(p3_5=0) temp=6; delay(200); return temp; /-調(diào)時(shí)或某路一直通車- void tiaoshi() uint recieve; display(0); recieve=anjian(); while(recieve!=4) recieve=anjian(); if(recieve=1) m+; display(m); else if(recieve=2) m-; display(m); else if(recieve=5) p0_2=0;p0_0=0;p0_1=1;p0_3=1; display(1); else if(recieve=6) p0_2=1; p0_0=1; p0_1=0; p0_3=0;display(2); 第三章 提高設(shè)計(jì)報(bào)告任務(wù)說(shuō)明書3.1 小組成員及學(xué)號(hào)姓名學(xué)號(hào)鐘超亮0807040130劉 聰08070401233.2 本人工作任務(wù)詳細(xì)說(shuō)明在本次設(shè)計(jì)中,我們小組每人都做了一分設(shè)計(jì),硬件設(shè)計(jì)部分,兩人合作完成,軟件編程,各寫一份,設(shè)計(jì)報(bào)告按照自己設(shè)計(jì)方案各寫一份。1.根據(jù)選題基于51單片機(jī)的流水燈和簡(jiǎn)易交通燈設(shè)計(jì)在網(wǎng)上查找資料。網(wǎng)絡(luò)的發(fā)達(dá)使我們找到了很多資料。我們?cè)谡业降馁Y料中層層篩選終于找到了我們需要的資料。從查到的資料中我們一起分析交通燈和

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論