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