單片機課程設計與總結報告
摘要
近年來隨著科技的飛速發展,單片機的應用正在不斷地走向深入,同時帶動傳統控制檢測日新月益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構,以及針對具體應用對象特點的軟件結合,加以完善。交通信號燈的出現,使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。本系統采用單片機AT89C51為中心器件來設計交通燈控制器,系統實用性強、操作簡單、擴展性強。
目錄
一.設計任務…………………………
二.交通燈的設計程序框圖………………
三.交通燈程序的主程序 ………………
四.系統硬件電路的設計……………………
五.原理圖………………
六.檢測與調試…………………………….
七.總結與體會……………………………….
八.致謝……………………………….
一.設計任務
(一)、功能及技術指標要求
設計交通燈的基本要求 : 設計一個交通燈,要應用DVCC實驗系統。
(二)、設計內容
按設計技術指標進行交通燈的硬件和軟件設計。
(三)設計思路及關鍵技術
一個完整的交通燈相當于一個簡單的單片機系統,該系統有交通燈設置電路、單片機、顯示電路等構成。單片機是集成的IC芯片,只需根據實際設計要求選型。其他部分都需要根據應用要求和性能指標自行設計。
基于單片機的交通燈的設計時要充分的認識以下兩個問題:
1.因為本實驗是交通燈控制實驗,所以要先了解實際交通燈的變化規律。假設一個十字路口為東西南北走向。初始狀態0為東西紅燈,南北紅燈。然后轉狀態1南北綠燈通車,東西紅燈。過一段時間轉狀態2,南北綠燈閃幾次轉亮黃燈,延時幾秒,東西仍然紅燈。再轉狀態3,東西綠燈通車,南北紅燈。過一段時間轉狀態4,東西綠燈閃幾次轉亮黃燈,延時幾秒,南北仍然紅燈。最后循環至狀態1。
2.雙色LED是由一個紅色LED管芯和一個綠色LED管芯封裝在一起,公用負端。當紅色正端加高電平,綠色正端加低電平時,紅燈亮;紅色正端加低電平,綠色正端加高電平時,綠燈亮;兩端都加高電平時,黃燈亮。
二. 交通燈的設計程序框圖
開始
↓
四個路口紅燈亮
↓
東西綠燈亮,南北紅燈亮,延時
↓
東西黃燈閃爍,南北紅燈亮,延時
↓
東西紅燈亮,南北綠燈亮,延時
↓
東西紅燈亮,南北黃燈閃爍,延時
↓
三.交通燈程序的主程序
程序如下:
ORG 0000H
SJMP A3 ;四盞紅燈亮
A3:MOV SP,#60H
MOV A, #24H
MOV P1, A
CLR P3.4
CLR P3.3
SETB P3.5
SETB P3.2 ;顯示5秒
MOV R4,#05H
LOOP1:MOV R2,#03H
LCALL xian ;調顯示子程序
DJNZ R4,LOOP1
MOV R4,#00H
MOV R2,#03H
LCALL xian
;東西綠燈亮,南北紅燈亮
A2:MOV A,#0CH
CLR P3.5
MOV P1,A
SETB P3.3
CLR P3.4
SETB P3.2 ;顯示20秒
MOV R4,#14H
LOOP2 :MOV R2,#03H
LCALL xian ;調顯示子程序
DJNZ R4,LOOP2
MOV R4,#00H
MOV R2,#03H
LCALL xian ;調顯示子程序
SETB P3.2
CLR P3.3 ; 顯示5秒
MOV R4 ,#05H ;東西黃燈亮,南北紅燈亮
LOOP9:MOV A,#14H
MOV P1 ,A
CLR P3.5
SETB P3.4
MOV R2,#02H
LCALL xian ;調顯示子程序
MOV R2,#01H ;定時
LCALL DELAY ;調延時子程序
;南北紅燈亮
MOV A ,#04H
MOV P1 ,A
CLR P3.4
CLR P3.5
MOV R2,#01H ;定時
LCALL DELAY ;調延時子程序
DJNZ R4,LOOP9
MOV R4,#00H
MOV R2,#03H
LCALL xian ;調顯示子程序
;東西紅燈亮,南北綠燈亮
A8: MOV A, #61H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
SETB P3.5 ; 顯示20秒
MOV R4,#14H
LOOP3: MOV R2,#03H
LCALL xian ;調顯示子程序
DJNZ R4,LOOP3
MOV R4,#00H
MOV R2,#03H
LCALL xian ;調顯示子程序
SETB P3.5
MOV R4 ,#05H
LOOP10: MOV R2,#02H
LCALL xian ;調顯示子程序
; 東西紅燈亮,南北黃燈亮
A0:MOV A,#0A2H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
MOV R2,#01H ;定時
LCALL DELAY ;調延時子程序
; 東西紅燈亮
MOV A,#20H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
MOV R2,#01H ;定時
LCALL DELAY ;調延時子程序
DJNZ R4,LOOP10
MOV R4,#00H
MOV R2,#03H
LCALL xian ;調顯示子程序
LJMP A2 ;延時子程序
DELAY:PUSH 2
PUSH 1
PUSH 0
DELAY1: MOV 1,#00H
DELAY2:MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2
DJNZ 2,DELAY1
POP 0
POP 1
POP 2
DJNZ R2 ,DELAY
RET
;顯示子程序
xian: MOV A,R4
MOV B,#10
DIV AB
MOV R6,A
MOV DPTR,#TAB
MOV A,B
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S:DJNZ R7,H55S
MOV A,R6
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S1:DJNZ R7,H55S1
LCALL DELAY
RET
TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
END
四.系統硬件電路的設計
(1)芯片由DVCC實驗系統提供(AT89C51)
1.主要特性:
與MCS-51 兼容
4K字節可編程閃爍存儲器
壽命:1000寫/擦循環
數據保留時間:10年
全靜態工作:0Hz-24Hz
三級程序存儲器鎖定
128*8位內部RAM
32可編程I/O線
兩個16位定時器/計數器
5個中斷源
可編程串行通道
低功耗的閑置和掉電模式
片內振蕩器和時鐘電路
2.管腳說明:
VCC:供電電壓。
GND:接地。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:
口管腳 備選功能
P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口)
P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1)
P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入)
P3.6 /WR(外部數據存儲器寫選通) P3.7 /RD(外部數據存儲器讀選通)
P3口同時為閃爍編程和編程校驗接收一些控制信號。
RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
3.振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。
4.芯片擦除: 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節被重復編程以前,該操作必須被執行。
此外,AT89C51設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。
(2) 完整的DVCC實驗箱面板
(3)硬件電路連接說明
五.原理圖
六.檢測與調試
1、硬件調試:
硬件調試是利用DVCC實驗與開發系統、基本測試儀器(萬用表、示波器等),檢查用戶系統硬件中存在的故障。
硬件調試可分為靜態調試與動態調試兩步進行。
靜態調試是在用戶系統未工作時的一種硬件檢測。
第一步:目測。檢查外部的各種元件或者是電路是否有斷點。
第二步用萬用表測試。先用萬用表復核目測中有疑問的連接點,再檢測各種電源線與地線之間是否有短路現象。
第三步加電檢測。給板加電,檢測所有插座或是器件的電源端是否符合要求的值
第四步是聯機檢查。因為只有用單片機開發系統才能完成對用戶系統的調試。
動態調試是在用戶系統工作的情況下發現和排除用戶系統硬件中存在的器件內部故障、器件連接邏輯錯誤等的一種硬件檢查。動態調試的一般方法是由近及遠、由分到合。由分到合是指首先按邏輯功能將用戶系統硬件電路分為若干塊,當調試電路時,與該元件無關的 器件全部從用戶系統中去掉,這樣可以將故障范圍限定在某個局部的電路上。當各塊電路無故障后,將各電路逐塊加入系統中,在對各塊電路功能及各電路間可能存在的相互聯系進行調試。由分到合的調試既告完成。由近及遠是將信號流經的各器件按照距離單片機的邏輯距離進行由近及遠的分層,然后分層調試。調試時,仍采用去掉無關元件的方法,逐層調試下去,就會定位故障元件了。
2、軟件調試:
軟件調試是通過對程序的匯編、連接、執行來發現程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。
七.總結與體會
本系統是以單片機AT89C51芯片為核心部件,實現了能根據實際車流量通過AT89C51芯片設置紅、綠燈燃亮時間的功能。此次在軟件上是花費時間最多的,我們上網找資料,上圖書館,盡可能的了解有關于交通燈這方面的知識。通過這次畢業設計,使我得到了一次用專業知識、專業技能分析和解決問題全面系統的鍛煉。使我在單片機的基本原理、單片機應用系統開發過程,以及在常用編程設計思路技巧(特別是匯編語言)的掌握方面都能向前邁一大步。
八.致謝
通過本次畢業設計,我在涂老師和王老師的精心指導和嚴格要求下,獲得了豐富的理論知識,極大地提高了實踐能力,單片機領域這對我今后進一步學習計算機方面的知識有極大的幫助。在此,忠心感謝涂老師和王老師以及許多同學的指導和支持。
要圖的話,多給我點分,我發到你郵箱里!
給你個網址也許你用得著,是單片學習網的:
.
上一篇:布袋除塵器的價格
下一篇:聊天中化學是什么意思