浙 江 科 技 學 院 課題實驗設計報告 班 級:建筑電氣與智能化111 學 生: 學 號: 指導老師: 陳軍統(tǒng) 一、設計題目 二、設計內容與要求 三、設計目的意義 四、系統(tǒng)硬件電路圖 五、程序流程圖與源程序 六、系統(tǒng)功能分析與說明 七、實物照片 八、設計體會 一、 設計題目 單片機交通燈控制器 二、設計內容與要求 某十字路口,南北向為主干道,東西向為支道,每個道口安裝一組交通燈:紅、黃、綠。設計十字路口的交通燈控制器,使交通燈按狀態(tài)1狀態(tài)2狀態(tài)3狀態(tài)4的規(guī)律變化,循環(huán)不止。 狀態(tài)1:東西向綠燈亮,南北向紅燈亮,其他燈全滅,保持30秒 狀態(tài)2:東西向黃燈亮,南北向紅燈亮,其他燈全滅,保持5秒 狀態(tài)3:東西向紅燈亮,南北向綠燈亮,其他燈全滅,保持20秒 狀態(tài)4:東西向紅燈亮,南北向黃燈亮,其他燈全滅,保持5秒 三、設計目的意義 1.通過親身的設計應用電路,將所用的理論知識應用到實踐中,增強實踐動手能力,進而促進理論知識的強化。 2.通過交通燈的設計系統(tǒng)掌握51單片機的應用。掌握A/D轉換的原理及軟件編程及硬件設計的方法,掌握根據課題的要求,提出選擇設計方案,查找所需元器,設計并搭建硬件電路,編程寫入EPROM并進行調試等。 四、系統(tǒng)硬件 4.1 系統(tǒng)原理框圖 硬件電路主要由電源電路、復位電路、時鐘振蕩電路和交通燈LED顯示電路 組成。 為了讓12只led燈可以“東西”方向、“南北” 方向分別顯示,分別選取AT89C52的P1口中低六位對交通燈LED管進行控制,一路信號控制兩個LED二極管顯示。LED發(fā)光二極管都采用共陽極接法,連接在P1口上,當P1口中有低電平輸出時發(fā)光二極管才會點亮。AT89C51單片機的時鐘晶振由外接電路產生,為12MHz的晶振。 主要接口說明:晶振接XTAL1和XTAL2,復位信號接RST,橫向的紅燈接P1.0,黃燈接P1.1,綠燈接P1.2;縱向的紅燈接P1.3,黃燈接P1.4,綠燈接P1.5 4..2芯片 1.STC89C52 STC89C52引腳圖
2.STC89C52具體介紹如下: ① 主電源引腳(2根) VCC(Pin40):電源輸入,接+5V電源 GND(Pin20):接地線 ②外接晶振引腳(2根) XTAL1(Pin19):片內振蕩電路的輸入端 XTAL2(Pin20):片內振蕩電路的輸出端 ③控制引腳(4根) RST/VPP(Pin9):復位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復位。 ALE/PROG(Pin30):地址鎖存允許信號 PSEN(Pin29):外部存儲器讀選通信號 EA/VPP(Pin31):程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。 ④可編程輸入/輸出引腳(32根) STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。 PO口(Pin39~Pin32):8位雙向I/O口線,名稱為P0.0~P0.7 P1口(Pin1~Pin8):8位準雙向I/O口線,名稱為P1.0~P1.7 P2口(Pin21~Pin28):8位準雙向I/O口線,名稱為P2.0~P2.7 P3口(Pin10~Pin17):8位準雙向I/O口線,名稱為P3.0~P3.7 STC89C52主要功能如表二所示。 表二 STC89C52主要功能 主要功能特性 | 兼容MCS51指令系統(tǒng) | 8K可反復擦寫Flash ROM | 32個雙向I/O口 | 256x8bit內部RAM | 3個16位可編程定時/計數(shù)器中斷 | 時鐘頻率0-24MHz | 2個串行中斷 | 可編程UART串行通道 | 2個外部中斷源 | 共6個中斷源 | 2個讀寫中斷口線 | 3級加密位 | 低功耗空閑和掉電模式 | 軟件設置睡眠和喚醒功能 |
4.3 時鐘電路和復位電路 (1).時鐘電路 STC89C52內部有一個用于構成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內部方式產生或外部方式產生。內部方式的時鐘電路如圖 (a) 所示,在RXD和TXD引腳上外接定時元件,內部振蕩器就產生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對頻率起微調的作用。 外部方式的時鐘電路如圖(b)所示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內時鐘發(fā)生器把振蕩頻率兩分頻,產生一個兩相時鐘P1和P2,供單片機使用。 RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內時鐘發(fā)生器把振蕩頻率兩分頻,產生一個兩相時鐘P1和P2,供單片機使用。 RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內時鐘發(fā)生器把振蕩頻率兩分頻,產生一個兩相時鐘P1和P2,供單片機使用。 (a)內部方式時鐘電路 (b)外部方式時鐘電路
(2).復位電路 復位是單片機的初始化操作。其功能主要是將程序計數(shù)器(PC)初始化為0000H,使單片機從0000H單元開始執(zhí)行程序,并將特殊功能寄存器賦一些特定值。復位是使單片機退出低功耗工作方式而進入正常狀態(tài)一種操作。復位是上電的第一個操作,然后程序從0000H開始執(zhí)行。在運行中,外界干擾等因素可能會使單片機的程序陷入死循環(huán)狀態(tài)或“跑飛”。要使其進入正常狀態(tài),唯一辦法是將單片機復位,以重新啟動。 復位后,程序計數(shù)器(PC)及各特殊功能寄存器(SFR)的值如表4.2所示。 表4.2 程序計數(shù)器及各特殊功能寄存器的復位值 RST引腳是復位端,高電平有效。在該引腳輸入至少連續(xù)兩個機器周期以上的高電平,單片機復位。RST引腳內部有一個斯密特ST觸發(fā)器(圖2.10)以對輸入信號整形,保證內部復位電路的可靠,所以外部輸入信號不一定要求是數(shù)字波形。使用時,一般在此引腳與VSS引腳之間接一個8.2kΩ的下拉電阻,與VCC引腳之間接一個約10μF的電解電容,即可保證上電自動復位。 手動復位要求電源接通后,單片機自動復位,并且在單片機運行期間,用開關操作也能使單片機復位。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時間的高電平。當單片機已在運行當中時,按下復位鍵K后松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或手動復位的操作。 (3)復位信號及其產生 RST引腳是復位信號的輸入端。復位信號是高電平有效,其有效時間應持續(xù)24個振蕩周期(即二個機器周期)以上。若使用頗率為6MHz的晶振,則復位信號持續(xù)時間應超過4us才能完成復位操作。 產生復位信號的電路邏輯如圖4—3所示: 圖4—3復位信號的電路邏輯圖 整個復位電路包括芯片內、外兩部分。外部電路產生的復位信號(RST)送至施密特觸發(fā)器,再由片內復位電路在每個機器周期的S5P2時刻對施密特觸發(fā)器的輸出進行采樣,然后才得到內部復位操作所需要的信號。 復位操作有上電自動復位相按鍵手動復位兩種方式。 上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的,其電路如圖4—4(a)所示。這佯,只要電源Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復位,即接通電源就成了系統(tǒng)的復位初始化。 按鍵手動復位有電平方式和脈沖方式兩種。其中,平復位是通過使復位端經電阻與Vcc電源接通而實現(xiàn)的,其電路如圖4—4(b)所示;而按鍵脈沖復位則是利用RC微分電路產生的正脈沖來實現(xiàn)的, 其電路如圖4—4(c)所示: (a)上電復位 (b)按鍵電平復位 (c)按鍵脈沖復位 圖4—4復位電路 上述電路圖中的電阻、電容參數(shù)適用于6MHz晶振,能保證復位信號高電平持續(xù)時間大于2個機器周期。 本系統(tǒng)的復位電路采用圖4—4(b)上電復位方式。 4.4硬件原理圖 XTAL1 P0.0 P0.1 P0.2XTAL2 P0.3 P0.4 P0.5RST STC89C52 /EA P1.0 P1.1 P1.2 P1.3 P1.4 P1.5
|
2.仿真圖 五、程序流程圖與源程序 匯編語言程序清單 MOV P1 ,#00011011B MOV P0,#00110110B MOV R2,#30 MAIN1: LCALL DELAY DJNZ R2,MAIN1 MAIN2: MOV P1,#00101101B MOV P0,#00110110B MOV R2,#05 M2: LCALL DELAY DJNZ R2,M2 MAIN3: MOV P1,#00110110B MOV P0,#00011011B MOV R2,#20 M3: LCALL DELAY DJNZ R2,M3 MAIN4: MOV P1,#00110110B MOV P0,#00101101B MOV R2,#5 M4: LCALL DELAY DJNZ R2,M4 LJMP MAIN1 DELAY:MOV R7,#10 D1: MOV R6,#200 D2: MOV R5,#250 DJNZ R5,$ DJNZ R6,D2 DJNZ R7,D1 RET RET END 七、實物照片 八、設計體會 經過近二周的單片機課程設計,終于完成了數(shù)字電壓表的設計,基本達到設計要求。 對于此次課程設計,有許多的感觸與體會,遇到的難題多,學習到的知識也就更多。 第一,硬件電路遇到問題,我們小組進行了多次討論,最終確定了在程序的修改,大大降低了硬件電路的復雜度。 第二,則是解決程序設計的問題,而程序設計是一個很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力,它才是一個設計的靈魂所在。因此在整個設計過程中大部分時間是用在程序上面的。其中,我們遇到了很多的問題,此次運用匯編語言編程,著實讓我當頭一棒,匯編語言的編程能力還停留在理論階段。在此次編程中給了我們很大的困難。 第三,在一個課題中,要設計一個成功的電路,必須要有耐心,要有堅持的毅力。在整個電路的設計過程中,重要的是各個單元電路的連接及電路的細節(jié)設計上,如在多種方案的選擇中,我們仔細比較分析其原理以及可行的原因。這就要求我們對硬件系統(tǒng)中各組件部分有充分透徹的理解和研究,并能對之靈活應用。完成這次設計后,我在書本理論知識的基礎上又有了更深層次的理解。 第四,在本次設計的過程中,我還學會了高效率的查閱資料、運用工具書、利用網絡查找資料。我發(fā)現(xiàn),在我們所使用的書籍上有一些知識在實際應用中其實并不是十分理想,各種參數(shù)都需要自己去調整,這就要求我們應更加注重實踐環(huán)節(jié)。 最后,還要在此感謝課程設計中實驗室的各位成員,他們在整個過程中都給予了我充分的幫助與支持。
|