欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 101364|回復: 79
收起左側

基于單片機的交通燈顯示系統課程設計報告

  [復制鏈接]
ID:216765 發表于 2017-7-4 11:22 | 顯示全部樓層 |閱讀模式

唐 山 學 院

單片機與接口技術課 程 設 計

題    目  基于單片機的交通燈顯示系統

系   (部) 算機科學與技術系

班    級  

姓    名

學    號

指導教師  

2016 74 日至2016年 710

1

2016年 7 月8

單片機與接口技術課程設計任務書

一、設計題目、內容及要求

題目:基于單片機的籃球計分器設計

內容:

1、設計LCD顯示籃球比分牌;
2、通過加分按鈕可以給A隊或B隊加分;
3、設計對調功能,A隊和B隊分數互換,意味著中場交換場地;
4、顯示比賽倒計時功能;
5、創新內容:如顯示第幾小節。
要求:
1、根據設計內容,設計系統硬件結構,畫出系統流程圖。
2、應用Keil、Proteus軟件開發應用系統并仿真調試。

二、要求的設計成果(課程設計說明書、設計實物、圖紙等)

1.課程設計說明書:課程設計說明書1份,不少于2000字。說明書中要包含需求分析、硬件仿真圖、程序結構設計等內容。

2. 格式要求:設計說明書報告分系統簡介、需求分析、系統硬件設計、主要程序設計、系統的優缺點,以及需要改進部分。

報告于系統驗收答辯時交。

三、進程安排

7.4:完成需求分析和系統硬件設計工作。

7.5-7.6:完成程序編寫工作。

7.7:程序調試和撰寫課程設計說明書初稿。

7.8: 提交課程設計說明書、硬件原理圖、程序及答辯。

四、主要參考資料

[1]付家才,《單片機控制工程實踐技術》,化學工業出版社,2003年

[2]胡漢才,《單片機原理及接口設計》,清華大學出版社,2002年

[3]康華光,《模擬電子技術》,高等教育出版社,2004年

[4]張毅剛,《單片機原理與應用設計》,電子工業出版社,2008年


指導教師(簽名):

教研室主任(簽名):

注:可以附頁


課程設計成績評定表
出勤
情況
出勤天數

缺勤天數

出勤情況及設計過程表現(20分)

課設答辯(20分)

設計成果(60分)

總成績(100分)

提問
(答辯)
問題
情況


                 指導教師簽名:
                                  年    月    日

目錄

1.設計背景

2.需求分析

3.設計目的

4.設計要求

5.系統總體方案硬件設計

5.1設計思想及總體設計

5.2硬件設計

5.3復位電路

5.4數碼管顯示

5.5紅綠燈顯示

5.6鍵盤:獨立鍵盤+中斷

5.7系統原理圖

6.軟件設計

              6.1總體流程

6.2循環流程控制思路

6.3主要程序設計

7.調試運行

              7.1正常運行狀態

              7.2左右行顯示

              7.3黃燈閃爍顯示

              7.4中斷全紅燈顯示

8.設計心得體會

9. 系統的優缺點

1.設計背景

交通在人們的日常生活中占有重要的地位,隨著人們社會活動的日益頻繁,這點更是體現的淋漓盡致.交通信號燈的出現,使交通得以有效管制,對于疏導交通流量、提高道路通行能力、減少交通事故有明顯效果.本系統采用單片機AT89C51為中心器件來設計交通控制燈控制器,系統實用性強、操作簡單、擴張性強.本設計就是采用單片機模擬十字路口交通燈的各種狀態顯示以及倒計時時間.
本設計系統由單片機I/O口擴張系統、交通燈狀態顯示系統、LED數碼顯示管系統、緊急情況中斷系統、復位電路等幾大部分組成.系統除基本的交通燈功能外,還具有倒計時、緊急情況處理功能,較好的模擬實現了十字路口可能出現的狀況.
軟件上采用89C51編程,主要編寫了主程序,LED數碼顯示管程序,中斷程序延時程序等.經過整機調試,實現了對十字路口交通燈的模擬.

2.需求分析

近年來隨著科技的飛速發展,單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構軟硬件結合,加以完善。 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現這井然秩序呢?靠的就是交通信號燈的自動指揮系統。交通信號燈控制方式很多。本系統采用MSC-51系列單片機AT89C51為中心器件來設計交通燈控制器,實現了能根據實際車流量通過51芯片的P1口設置紅、綠燈燃亮時間的功能;紅綠燈循環點亮,倒計時剩3秒時黃燈閃爍警示;綠燈時間可檢測車流量并可通過雙位數碼管顯示。本系統實用性強、操作簡單、擴展功能強。

3.設計目的

3.1鞏固和加深對單片機原理和接口技術知識的理解;

3.2培養根據課題需要選學參考書籍、查閱手冊和文獻資料的能力;

3.3學會方案論證的比較方法,拓寬知識,初步掌握工程設計的基本方法;

3.4掌握常用儀器、儀表的正確使用方法,學會軟、硬件的設計和調試方法;

3.5能按課程設計的要求編寫課程設計報告,能正確反映設計和實驗成果,能用計算機繪制電路圖和流程圖。

4.設計要求

1)東西干道和南北干道的通行分左行、右行、直行,其中左行、右行固定15秒;直行固定30秒;

2)信號燈分綠燈(3種)、紅燈、黃燈,每次綠燈換紅燈時,黃燈亮3秒鐘;

3)東西干道和南北干道交替控制,每次干道綠燈交替時,有3秒鐘所有干道的交通燈都是黃燈閃爍3秒鐘,提示已經進入路口的車輛迅速通過;

4)其他創新內容。

5.系統總體方案硬件設計

5.1設計思想及總體設計

1)分析目前交通路口的基本控制技術以及各種通行方案,并以此為基礎提出自己的交通控制的初步方案

2)確定系統交通控制的總體設計,包括,十字路口具體的通行禁行方案設計以及系統應擁有的各項功能,在這里,本設計除了有信號燈狀態控制能實現基本的交通功能,還增加了倒計時顯示提示.

3)進行智能傳感器的硬件電路、顯示電路等的設計和對各器件的選擇及連接,大體分配各個器件及模塊的基本功能要求。

4)進行軟件系統的設計,對于本系統,本人采用單片機c語言編寫,對單片機內部結構和工作情況做了充足的研究,了解定時器,中斷以及延時原理,總體上完成了軟件的編寫。


5.2硬件設計

1)單片機選型:AT89C51

AT89S51單片機是美國ATMEL公司生產的低功耗、高性能CMOS 8位單片機,片內含4K bytes的可系統編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度,非易失性存儲技術生產,兼容標準8051指令系統及引腳。它集Flash程序存儲器,既可在線編程(ISP)也可用傳統方法進行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強大,低價AT89S51單片機可為您提供許多高性價比的應用場合,可靈活應用于各種控制領域。AT89S52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程 Flash 存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業 80C51 產品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的 8 位 CPU 和在系統 可編程Flash,使得 AT89S52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。 AT89S52具有以下標準功能: 8k字節Flash,256字節RAM, 32 位 I/O 口線,看門狗定時器,2 個數據指針,三個 16 位 定時器/計數器,一個6向量 2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S52 可降至 0Hz 靜態邏 輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工 作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。

P0:P0口是一組8位漏極開路型雙向I/O口,也即地址/數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。  在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。  在FIash編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。

P1:P1是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,過內部上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。  FIash編程和程序校驗期間,P1接收低8位地址。

引腳號第二功能

P1.0 T2(定時器/計數器T2的外部計數輸入),時鐘輸出

P1.1 T2EX(定時器/計數器T2的捕捉/重載觸發信號和方向控制)

P1.5 MOSI(在系統編程用)

P1.6 MISO(在系統編程用)

P1.7 SCK(在系統編程用)

P2 口:P2 口是一個具有內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動4 個

TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。

在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX @DPTR) 時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內部上拉發送1。在使用8位地址(如MOVX @RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。

在flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號。

P3 口:P3 口是一個具有內部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅動4 個TTL 邏輯電平。對P3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。

P3口亦作為AT89C51特殊功能(第二功能)使用,如下表所示。

在flash編程和校驗時,P3口也接收一些控制信號。

   端口引腳 第二功能

   P3.0 RXD(串行輸入口)

   P3.1 TXD(串行輸出口)

   P3.2 INTO(外中斷0)

   P3.3 INT1(外中斷1)

   P3.4 TO(定時/計數器0)

   P3.5 T1(定時/計數器1)

   P3.6 WR(外部數據存儲器寫選通)

   P3.7 RD(外部數據存儲器讀選通)

此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。 RST——復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將是單片機復位。

ALE/PROG——當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。

對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。

如有必要,可通過對特殊功能寄存器(SFR)區中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE禁止位無效。

PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。

EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態如EA端為高電平(接Vcc端),CPU則執行內部程序存儲器的指令。

FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。

AT89C51引腳分布圖如圖1-2

1.011.jpg

5.3復位電路

1.012.jpg

圖1-3

當8051的ALE及/PSEN兩引腳輸出高電平,RST引腳高電平到時,單片機復位。RST/VPD端的高電平,若直接由啟動瞬間產生,則為啟動復位,若通過按動按鈕產生高電平復位稱手動復位。如圖1-3所示,上電時,接通電源,電容器C相當于瞬間短路,+5V加到了RST/VPD端,該高電平使8051全機復位。若運行過程中,需要程序從頭執行,只需按動按鈕S,則直接把+5V加到了RST/VPD端,從而復位。顯然,該電路即可以上電復位,也可以手動復位,是常用復位電路之一。

5.4數碼管顯示

1.013.jpg              1.014.jpg

圖1-3.1

5.5  紅綠燈顯示

1.015.jpg

圖1-4

每個路口都采用了4個LED燈來顯示,分別代表紅綠(左綠)黃三種燈,來模擬路口交通的變換。如圖1-4

以南北方向舉例,正常狀況下,從30秒開始倒計時,南北方向可直行,即綠燈亮起,東西方向禁止通行,亮紅燈。當顯示至15秒時,南北方向可直行和轉彎,即兩個綠燈亮起,東西方向禁止通行,亮紅燈。當顯示至3秒時,通知車輛快速通過,南北黃燈閃爍,東西方向禁止通行,亮紅燈。

5.6鍵盤:獨立鍵盤+中斷

1.016.jpg 圖1-5

采用開關來控制進入中斷,可以在路口出現緊急情況時,拉動開關。使紅綠燈發生相應的改變,已處理緊急情況下車輛通行。如圖1-5所示

中斷有三個功能:

  • 全體紅燈10s(由于數碼管不夠了,沒有計數顯示),防止突發情況比如救護車需要迅速通過。
  • 時間加5s 防止高峰期某個方向路口車流嚴重負荷,增大通行時間。
  • 時間減5s 防止高峰期某個方向路口車流嚴重負荷,而另一個路口路況資源浪費,可以合理利用路況資源。

5.7系統原理圖

總電路如圖1-6所示

1.017.jpg

圖1-6

6.軟件設計

6.1總體流程


1、東西干道和南北干道的通行分左行、右行、直行,其中左行、右行固定15秒;直行固定30秒;
2、信號燈分綠燈(3種)、紅燈、黃燈,每次綠燈換紅燈時,黃燈亮3秒鐘;
3、東西干道和南北干道交替控制,每次干道綠燈交替時,有3秒鐘所有干道的交通燈都是黃燈閃爍3秒鐘,提示已經進入路口的車輛迅速通過;

1.018.jpg          

6.2循環流程控制思路


流程控制圖

1.019.jpg

6.3主要程序設計

利用段碼位碼選址的方法,結合查表法調用數碼管顯示函數

  1. /*********************顯示子函數**************************/

  2. void              Display()

  3.               {

  4.                             char h,l;

  5.                             h=Time_EW/10;

  6.                             l=Time_EW%10;

  7.                     P2=table[l];

  8.                             EW_LED2=0;

  9.                             Delay(2);

  10.                             EW_LED2=1;

  11.                   P2=table[h];

  12.                             EW_LED1=0;

  13.                             Delay(2);

  14.                             EW_LED1=1;



  15.                            

  16.                            

  17.                             h=Time_SN/10;

  18.                             l=Time_SN%10;

  19.                   P2=table[l];

  20.                             SN_LED2=0;

  21.                             Delay(2);

  22.                             SN_LED2=1;

  23.                   P2=table[h];

  24.                             SN_LED1=0;

  25.                             Delay(2);

  26.                             SN_LED1=1;

  27.                            



  28. 緊急中斷程序,全紅燈10s

  29. if(Special_Btton==0)              //緊急情況下,全紅燈10S

  30.      {

  31.               uchar i;

  32.               for(i=0;i<50;i++) //循環50次

  33.               {Flag_SN_Yellow=0;

  34.             Flag_EW_Yellow=0;

  35.               P1=0xEE;

  36.               Delay(200);     //延時200ms

  37.             

  38.               }

  39.       }            

  40. }

  41. /**********************外部0中斷服務程序************************/



  42. void              EXINT0(void)interrupt 0 using 1

  43. {

  44.    EX0=0; //關中斷

  45.    if(Reduces_Button==0) //時間減

  46.        {

  47.          EW1-=5;                  

  48.          SN1-=5;

  49.          if(EW1<=25)

  50.            {

  51.                    EW1=25;

  52.              SN1=15;

  53.            }

  54.         }

  55.    EX0=1;//開中斷

  56. }

  57. /**********************外部1中斷服務程序************************/



  58. void              EXINT1(void)interrupt 2 using 1

  59. {

  60.    EX1=0; //關中斷

  61.    if(Add_Button==0) //時間加

  62.      {

  63.        EW1+=5;                    

  64.        SN1+=5;

  65.        if(EW1>=45)

  66.               {

  67.                 EW1=45;

  68.                 SN1=35;

  69.         }   

  70.      }                    

  71.                     

  72.    EX1=1;//開中斷      

  73. }      

  74. /**********************T0中斷服務程序*******************/

  75. void timer0(void)interrupt 1 using 1

  76. {

  77.    static uchar count;

  78.    TH0=(65536-50000)/256;

  79.    TL0=(65536-50000)%256;

  80.    count++;

  81.    if(count==10)

  82.      {

  83.        if(Flag_SN_Yellow==1) //測試南北黃燈標志位

  84.         {SN_Yellow=~SN_Yellow;}

  85.        if(Flag_EW_Yellow==1)  //測試東西黃燈標志位

  86.         {EW_Yellow=~EW_Yellow;}

  87.      }



  88.      if(count==20)

  89.      {

  90.        Time_EW--;

  91.        Time_SN--;

  92.        if(Flag_SN_Yellow==1)//測試南北黃燈標志位

  93.         {SN_Yellow=~SN_Yellow;}

  94.        if(Flag_EW_Yellow==1)//測試東西黃燈標志位

  95.         {EW_Yellow=~EW_Yellow;}

  96.        count=0;

  97.      }            

  98. }

  99. 主程序,利用中斷調用,將不同的交通燈情況列成s1-s7情況

  100. /*********************主程序開始**********************/

  101. void main(void)

  102. {

  103.   IT0=1;      //INT0負跳變觸發

  104.   IT1=1;      //INT1負跳變觸發

  105.   TMOD=0x01;  //定時器工作于方式1

  106.   TH0=(65536-50000)/256;//定時器賦初值50ms

  107.   TL0=(65536-50000)%256;

  108.   EA=1; //CPU開中斷總允許

  109.   ET0=1;//開定時中斷

  110.   EX0=1;//開外部INTO中斷

  111.   EX1=1;//開外部INT1中斷

  112.   TR0=1;//啟動定時                           

  113.   Flag_SN_Yellow=0;                 //SN關黃燈顯示信號

  114.   Flag_EW_Yellow=0;                 //EW關黃燈顯示信號

  115.   Time_EW=TZ;            

  116.   Time_SN=TZ;

  117.   P1=0xFF;

  118.   while(Time_SN>=0)

  119.    {

  120.      EW_Red=0;              //全紅燈3S   0xEE

  121.      SN_Red=0;

  122.      Display();

  123.    }                                         

  124.    while(1)               

  125.     {   /*******S0狀態**********/

  126.          Flag_EW_Yellow=0; //EW關黃燈顯示信號

  127.               Time_EW=EW1;            

  128.               Time_SN=SN1;



  129.                   while(Time_SN>=0)

  130.                    {P1=S[0];              //SN通行,EW紅燈       0xBE

  131.                     Display();}







  132.        /*******S1狀態**********/

  133.               /*P1=0xFF;

  134.               while(Time_SN>=0)

  135.                   {Flag_SN_Yellow=1;              //SN開黃燈信號位

  136.                    EW_Red=0;      //SN黃燈亮,等待左拐信號,EW紅燈   0xDE

  137.                    Display();}





  138.               /*******S2狀態**********/

  139.               Flag_SN_Yellow=0; //SN關黃燈顯示信號

  140.               Time_SN=SNL;

  141.               while(Time_SN>=3)

  142.                  {P1=S[2];//SN左拐綠燈和直行綠燈亮,EW紅燈       0x3E

  143.                   Display();}







  144.               /*******S3狀態**********/

  145.               P1=0xFF;

  146.               while(Time_SN>=0)

  147.                  {Flag_SN_Yellow=1;//SN開黃燈信號位

  148.                   EW_Red=0;        //SN黃燈亮,等待停止信號,EW紅燈    0xDE

  149.                   Display();}





  150.               /***********賦值**********/

  151.               EW=EW1;

  152.               SN=SN1;

  153.               EWL=EWL1;

  154.               SNL=SNL1;





  155.               /*******S4狀態**********/

  156.               Flag_SN_Yellow=0;  //SN關黃燈顯示信號

  157.               Time_EW=SN;

  158.               Time_SN=EW;

  159.                 while(Time_EW>=0)

  160.             {P1=S[4];              //EW通行,SN紅燈    0xEB

  161.                    Display();}

  162.                                                       

  163.               /*******S5狀態**********/

  164.               /*P1=0XFF;

  165.               while(Time_EW>=0)

  166.                 {Flag_EW_Yellow=1;//EW開黃燈信號位

  167.                  SN_Red=0;//EW黃燈亮,等待左拐信號,SN紅燈    0xED

  168.                  Display();}

  169.                                              

  170.               /*******S6狀態**********/

  171.               Flag_EW_Yellow=0;//EW關黃燈顯示信號           0xE3

  172.               Time_EW=EWL;

  173.               while(Time_EW>=3)

  174.                  {P1=S[6];//EW左拐綠燈亮,SN紅燈

  175.                   Display();}

  176.                                                       



  177.               /*******S7狀態**********/

  178.               P1=0xFF;

  179.               while(Time_EW>=0)

  180.                 {Flag_EW_Yellow=1; //EN開黃燈信號位

  181.                  SN_Red=0;//EW黃燈亮,等待停止信號,SN紅燈    0xE7            

  182.                  Display();}

  183.                                          

  184.               /***********賦值**********/

  185.               EW=EW1;

  186.               SN=SN1;

  187.               EWL=EWL1;

  188.               SNL=SNL1;

  189.    }

  190. }
復制代碼

            

7.調試運行

7.1正常運行狀態

1.020.jpg

7.2左右行顯示

1.021.jpg







7.3黃燈閃爍顯示

1.022.jpg

7.4中斷全紅燈顯示

1.023.jpg

8.設計心得體會

一周的單片機課程設計很快就結束了,在這一周當中,雖然開始有點困難,但是經過一次次的失敗,合理地進行設計安排,再加上老師的耐心指導,終于順利地完成了本次單片機課程設計,同時也學到了很多東西。在本次課程設計中,通過動手實踐操作,進一步學習和掌握了單片機原理的有關知識,特別是程序的編程方面,加深了對單片機原理及應用技術的認識,進一步鞏固了對單片機知識的理解,掌握簡單單片機應用系統的設計、制作、調試的方法。在設計時根據課題要求,復習相關的知識,查詢相關的資料。根據實驗條件,找到適合的方案,找到需要的元器件及工具,進行實驗。

這次的單片機課程設計重點是通過實踐操作和理論相結合,提高動手實踐能力,提高科學的思維能力,更在一周的時間了解了更多的有關單片機的知識,使知識更加豐富,使自己更加充實。學會靜下心來自己學習,相信這對以后在社會上工作和學習會有很多幫助,讓我們能更好的進入工作狀態。最重要的是,這次課程設計也增加了我們對問題的研究和探討,對以后的學習中會有更多的幫助。

單片機為我們的主要專業課之一,但要做好一個課程設計,就必須做到:在設計程序之前,對所用單片機的內部結構有一個系統的了解,知道該單片機內有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設計程序時,不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設計的必經之路;要養成注釋程序的好習慣,一個程序的完美與否不僅僅是實現功能,而應該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設計課程過程中遇到問題是很正常德,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設計結束了,但是從中學到的知識會讓我們受益終身。

在完成單片機課程設計后,我發現我還有許多不足,所學到的知識還遠遠不夠,以至于還有一些功能不能被動完成。但通過學習這一次實踐,增強了動手能力,提高和鞏固了單片機方面的知識,特別是軟件方面。讓我們認識到把理論應用到實踐中去是多么重要。

9.系統的優缺點

系統功能:1、程序初始化,所有燈都是紅燈的,3S

2、先南北通,東西不通,時間30S,其中30S是直行(27S綠+3S黃),15S左轉(12S綠+3秒黃)

          3、時間加減按鈕一次是5S,緊急情況是10S(數碼管不足,沒顯示)

系統優點:1、系統能夠比較準確的實現十字路口交通燈的基本功能,并且擁有一種緊急情況處理系統(由中斷系統實現),當南北方向綠燈亮時,南北方向車輛通行,同時倒計時30秒;當倒計時到15秒時,指示轉向的路燈同時點亮;當倒計時即將結束時,黃燈閃爍3秒,之后東西方向綠燈點亮,與南北方向運行方式相同。緊急情況是考慮到路口發生車禍或有緊急車輛通行時,按下按鈕后東西南北方向紅燈全部亮起,保持10秒后恢復正常運行。能夠基本符合老師給出的題目要求。

系統缺點:1、系統實用性較差,與實際情況相關性教差。首先,指示轉向的紅綠燈應用相應箭頭表示,可以用點陣實現。              其次,緊急情況不符合實際要求,當車禍或緊急車輛通行時,應先疏通當時路口車輛,之后設置路障或恢復通行,靈活性應較強,目前只通過交通燈的不容易實現。在之后的學習中應將該題目中的缺點逐漸完善并創新,使其更加人性化。

改進:     1、針對應急情況,要實際考慮應急情況,把緊急轉換通行車道,變換成一紅一綠,不能全紅。

              2、添加指示箭頭



完整論文下載(word格式 可編輯):

實訓報告模板.doc (475 KB, 下載次數: 477)





評分

參與人數 3黑幣 +60 收起 理由
阿玲玲玲 + 5 絕世好帖!
137435504 + 5 nice
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1 發表于 2017-7-4 23:32 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

ID:200039 發表于 2017-7-5 13:41 | 顯示全部樓層
不錯。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。!真的挺好的
回復

使用道具 舉報

ID:258074 發表于 2017-12-6 10:41 | 顯示全部樓層
412.C(13): error C202: 'Time_EW': undefined identifier
412.C(15): error C202: 'Time_EW': undefined identifier
412.C(19): error C202: 'EW_LED2': undefined identifier
請問一下按照上面的的程序這個怎么解決?謝謝
回復

使用道具 舉報

ID:87193 發表于 2017-12-6 15:29 | 顯示全部樓層
很詳細啊,下載了看看怎么樣
回復

使用道具 舉報

ID:259701 發表于 2017-12-13 13:18 | 顯示全部樓層
樓主能不能把原代碼發上來,在你這個基礎上改不好!
回復

使用道具 舉報

ID:259701 發表于 2017-12-13 13:25 | 顯示全部樓層
樓主可不可以把源程序共享上來,我是小白,這個程序有點駕馭不了
回復

使用道具 舉報

ID:276690 發表于 2018-1-16 18:13 | 顯示全部樓層
把圖紙也文件也發上來就好了
回復

使用道具 舉報

ID:276932 發表于 2018-1-17 12:17 | 顯示全部樓層
厲害了,我的天
回復

使用道具 舉報

ID:286111 發表于 2018-3-3 13:41 | 顯示全部樓層
好資料
回復

使用道具 舉報

ID:288294 發表于 2018-3-7 08:40 | 顯示全部樓層
hj1120 發表于 2017-12-6 10:41
412.C(13): error C202: 'Time_EW': undefined identifier
412.C(15): error C202: 'Time_EW': undefined  ...

請問解決了嗎
回復

使用道具 舉報

ID:308262 發表于 2018-5-4 09:41 | 顯示全部樓層
HELLO.C(5): error C202: 'Time_EW': undefined identifier
HELLO.C(6): error C202: 'Time_EW': undefined identifier
HELLO.C(7): error C202: 'P2': undefined identifier
HELLO.C(8): error C202: 'EW_LED2': undefined identifier
HELLO.C - 4 Error(s), 0 Warning(s).
求解決啊 大神們
回復

使用道具 舉報

ID:333595 發表于 2018-5-19 12:47 | 顯示全部樓層
nice 很給力
回復

使用道具 舉報

ID:336010 發表于 2018-5-22 20:47 | 顯示全部樓層

兄弟,幫幫忙唄,搞出來程序沒
回復

使用道具 舉報

ID:336281 發表于 2018-5-23 14:19 | 顯示全部樓層
很詳細,對我很有用
回復

使用道具 舉報

ID:338103 發表于 2018-5-28 10:02 | 顯示全部樓層
不錯不錯
回復

使用道具 舉報

ID:339851 發表于 2018-6-1 01:00 來自觸屏版 | 顯示全部樓層
你好,有事找你
回復

使用道具 舉報

ID:345806 發表于 2018-6-5 22:43 | 顯示全部樓層
111.C(8): error C202: 'table': undefined identifier
回復

使用道具 舉報

ID:349163 發表于 2018-6-11 09:13 | 顯示全部樓層
交通燈.C(8): error C202: 'Time_EW': undefined identifier 交通燈.C(10): error C202: 'Time_EW': undefined identifier 交通燈.C(12): error C202: 'P2': undefined identifier 交通燈.C(14): error C202: 'EW_LED2': undefined identifier
回復

使用道具 舉報

ID:352837 發表于 2018-6-16 13:03 | 顯示全部樓層
hi
你真棒
回復

使用道具 舉報

ID:353719 發表于 2018-6-18 16:19 | 顯示全部樓層
怎么下載不了
回復

使用道具 舉報

ID:353746 發表于 2018-6-19 00:31 | 顯示全部樓層
Build target 'Target 1'
compiling 交通信號燈.c...
交通信號燈.C(9): error C202: 'Time_EW': undefined identifier
交通信號燈.C(11): error C202: 'Time_EW': undefined identifier
交通信號燈.C(13): error C202: 'P2': undefined identifier
交通信號燈.C(15): error C202: 'EW_LED2': undefined identifier
Target not created

大神有在嗎?求解
回復

使用道具 舉報

ID:340020 發表于 2018-6-20 22:04 | 顯示全部樓層
不錯不錯。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
回復

使用道具 舉報

ID:358220 發表于 2018-6-25 09:48 | 顯示全部樓層
大神求助!
回復

使用道具 舉報

ID:358220 發表于 2018-6-25 09:49 | 顯示全部樓層
厲害厲害!
回復

使用道具 舉報

ID:358220 發表于 2018-6-26 15:48 | 顯示全部樓層
Warrior10 發表于 2018-5-4 09:41
HELLO.C(5): error C202: 'Time_EW': undefined identifier
HELLO.C(6): error C202: 'Time_EW': undefine ...

請問這個問題解決了嗎?我也遇到了,非常著急,可以回復一下怎么解決的嗎?
回復

使用道具 舉報

ID:368258 發表于 2018-7-9 21:16 | 顯示全部樓層
很棒啊
回復

使用道具 舉報

ID:369970 發表于 2018-7-12 12:31 | 顯示全部樓層
LED1.c(9): error C202: 'table': undefined identifier
LED1.c(10): error C202: 'EW_LED2': undefined identifier
請問怎么解決
回復

使用道具 舉報

ID:369970 發表于 2018-7-12 12:34 | 顯示全部樓層
Nanjolno 發表于 2018-6-26 15:48
請問這個問題解決了嗎?我也遇到了,非常著急,可以回復一下怎么解決的嗎?

請問你解決了沒有?
回復

使用道具 舉報

ID:369970 發表于 2018-7-12 15:34 | 顯示全部樓層

你能運行?
回復

使用道具 舉報

ID:385228 發表于 2018-8-11 14:20 | 顯示全部樓層
你好,我想下載這文件,謝謝了
回復

使用道具 舉報

ID:205392 發表于 2018-8-25 17:09 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

ID:391085 發表于 2018-8-30 20:43 | 顯示全部樓層
666非常好
回復

使用道具 舉報

ID:399095 發表于 2018-9-20 19:38 | 顯示全部樓層
很有參考價值 謝謝
回復

使用道具 舉報

ID:400057 發表于 2018-10-9 16:28 | 顯示全部樓層
這個里面有源程序和仿真圖嗎
回復

使用道具 舉報

ID:407214 發表于 2018-10-9 20:20 | 顯示全部樓層
好貼頂起
回復

使用道具 舉報

ID:407265 發表于 2018-10-9 21:32 | 顯示全部樓層
頂起...
回復

使用道具 舉報

ID:406775 發表于 2018-10-9 21:53 來自觸屏版 | 顯示全部樓層
強,解決了我們初學者很多問題
回復

使用道具 舉報

ID:411961 發表于 2018-10-19 16:55 | 顯示全部樓層
兄弟,幫幫忙唄,搞出來程序沒
回復

使用道具 舉報

ID:413618 發表于 2018-10-22 18:21 | 顯示全部樓層
nice  找了了好久
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表