【正文】
MOV TL0, 44H SETB EA SETB ET0 SETB EX0 SETB IT0 JB ,MAIN START: LCALL ZHT0 LCALL ZHT1 LCALL ZHT2 LCALL ZHT3 LJMP START 22 ZHT0: MOV P1,0F3H MOV R4,22 MOV R3,3 LCALL DIR RET ZHT1: MOV P1,0F5H MOV R4,3 MOV R3,22 LCALL DIR RET ZHT2: MOV P1,0DEH MOV R4,22 MOV R3,0 LCALL DIR RET ZHT3: MOV P1,0EEH MOV R4,3 MOV R3,22 LCALL DIR RET DIR: MOV A,R3 MOV DPTR,TABLE MOVC A,A+DPTR MOV P2,A LCALL DELAY INC R3 DJNZ R4,DIR RET DELAY: MOV R5,20 23 D1: MOV R6,100 D2: MOV R7,248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET INT0: CPL TR0 RETI LP1: MOV TH0, 0FCH MOV TL0, 44H CPL RETI TABLE: DB 25H,24H,23H,22H,21H DB 20H,19H,18H,17H,16H,15H,14H,13H,12H,11H DB 10H,09H,08H,07H,06H,05H,04H,03H,02H,01H END 24 附 錄 2 0 1 2543012345X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1C12 2 P FC22 2 P FX1CR Y S T A LC32 2 U FR11 0 0R21 0 0R31 0 0R41 0 0R51 0 0R61 0 0R7P ULL U PD1L E D R E DD2L E D Y E L L O WD3L E D G RE E ND4L E D R E DD5L E D Y E L L O WD6L E D G RE E NR 2 21 0 0R 2 31 0 0R 2 41 0 0D7L E D R E DD8L E D Y E L L O WD9L E D G RE E NR 2 51 0 0R 2 61 0 0R 2 71 0 0D 1 0L E D R E DD 1 1L E D Y E L L O WD 1 2L E D G RE E NQ1NP NL S 1S O UN D E RR82 2 0R91 0 k。同時(shí),更重要的是,我在這一設(shè)計(jì)過(guò)程中,學(xué)會(huì)了 堅(jiān)持不懈,不輕易言棄。調(diào)試的基本步驟如下: 將所要調(diào)試的程序輸入道偉福 6000 中,然后進(jìn)行編譯,根據(jù)系統(tǒng)的提示查找原因?qū)⒊鲥e(cuò)的地方調(diào)整正確,例如:有的時(shí)標(biāo)號(hào)未定義,有的時(shí)少標(biāo)點(diǎn)符號(hào)等。他是以加法記數(shù)的,并能從全 1 到全 0 時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。下面我們用鼠標(biāo)左鍵點(diǎn)擊菜單 “File”,再點(diǎn)擊 “Load Design”,導(dǎo)入我們所完成的文件。如果我們把這兩個(gè)軟件結(jié)合來(lái)用,調(diào)試軟硬件就方便多了。注意,這個(gè)窗口是沒(méi)有滾動(dòng)條的,你可通過(guò)預(yù)覽窗口來(lái)改變?cè)韴D的可視范圍,或 shift+鼠標(biāo)移動(dòng)到窗口邊框來(lái)實(shí)現(xiàn)滾動(dòng)。目前支持的單片機(jī)類(lèi)型有: 68000 系列、8051 系列、 AVR 系列、 PIC12 系列、 PIC16 系列、 PIC18 系列、 Z80 系列、 HC11系列以及各種外圍芯片。 主程序模塊 主程 序初始化和按鍵控制,首先將時(shí)間、中斷 分別進(jìn)行初始化,然后啟動(dòng)定時(shí)器對(duì)時(shí)間進(jìn)行判斷,同時(shí)掃描按鍵程序,用無(wú)條件跳轉(zhuǎn)指令返回 , 再調(diào)用顯示程序,如此周而復(fù)始的循環(huán),如圖 12 主 干 道 綠 燈 亮支 干 道 紅 燈 亮主 干 道 黃 燈 亮支 干 道 紅 燈 亮主 干 道 紅 燈 亮支 干 道 綠 燈 亮主 干 道 紅 燈 亮支 干 道 黃 燈 亮 圖 主程序流程圖 13 主程序: 初值: X=216-定時(shí)時(shí)間/振蕩周期 12= 216- 50ms/1us=15536=3CB0H,TH0=3CH , TL0=0B0H。 如圖 Q1NP NL S 1S O UN D E RR82 2 0R91 0 k 圖 喇叭響起 10 電路原理 設(shè)計(jì) 電路的核心是 89C51 單片機(jī),其內(nèi)部帶有 4KB 的 FlashROM,無(wú)須擴(kuò)展程序存儲(chǔ)器;電腦沒(méi)有大量的運(yùn)算和暫存數(shù)據(jù),現(xiàn)有的 128B 片內(nèi) RAM 已能滿(mǎn)足要求,也不必?cái)U(kuò)展片外 RAM;按鍵接口,由 , 來(lái)完成。引起中斷的原因或發(fā)出中斷請(qǐng)求的來(lái)源,稱(chēng)為中斷源。 /EA/VPP:當(dāng) /EA 保持低電平時(shí),則在此期間外部程序存儲(chǔ)器( 0000HFFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè) ALE脈沖。作為輸入,由于外部下拉為低電平, P3 口將輸出電流( ILL)這是由于上拉的緣故。 P2 口: P2口為一個(gè)內(nèi)部上拉電阻的 8位雙向 I/O口, P2口緩沖器可接收,輸出 4個(gè) TTL 門(mén)電流,當(dāng) P2口被寫(xiě) “1” 時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。 GND:接地。 編 程 設(shè) 置時(shí) 間 參 數(shù)A T 8 9 C 5 1系統(tǒng)處理喇 叭 響 起交 通 燈