路口燈火控制及顯示系統(tǒng)設(shè)計(jì)_第1頁
路口燈火控制及顯示系統(tǒng)設(shè)計(jì)_第2頁
路口燈火控制及顯示系統(tǒng)設(shè)計(jì)_第3頁
路口燈火控制及顯示系統(tǒng)設(shè)計(jì)_第4頁
路口燈火控制及顯示系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、路口燈火控制及顯示系統(tǒng)設(shè)計(jì) 專 業(yè): 計(jì)算機(jī)控制技術(shù) 班 級(jí): 計(jì)控0601 姓 名: 張萬海 地 點(diǎn): 單片機(jī)一體化實(shí)訓(xùn)室 指導(dǎo)老師: 劉明黎 成 績(jī): 目 錄第1節(jié) 引 言 31. 1路口燈火控制及顯示系統(tǒng)概述3 1.2設(shè)計(jì)任31. 3 系統(tǒng)主要功能 3第2節(jié)口燈火控制及顯示系統(tǒng)硬件設(shè)計(jì) 42.1系統(tǒng)的硬件構(gòu)成及功能 4 22 設(shè)計(jì)中用到的芯片及其功能 6 8279芯片的說明 6 其它器件的說明 7 其它器件的說明 7第3節(jié) 系統(tǒng)軟件設(shè)計(jì) 931 系統(tǒng)主程序設(shè)計(jì) 9 程序框圖及說明 932顯示子程序及說明 11 3. 3延時(shí)子程序的計(jì)算 123. 4各鍵的功能 12 第4節(jié) 結(jié)束語 13

2、參考文獻(xiàn) 14源程序 15路口燈火控制及顯示系統(tǒng)河南工業(yè)職業(yè)技術(shù)學(xué)院 計(jì)控0601 張萬海指導(dǎo)教師:劉明黎 第1節(jié) 引 言隨著經(jīng)濟(jì)的不斷發(fā)展,越來越多的汽車進(jìn)入普通老百姓家中,使得人們的生活質(zhì)量不斷提高,但是另一方面也容易引起交通堵塞,因此應(yīng)在車輛通行繁忙的十字交叉路口設(shè)置的燈火控制系統(tǒng)來控制交通。單片機(jī)具有體積小、功能強(qiáng)可靠性高、價(jià)格低廉等一系列優(yōu)點(diǎn),不僅已成為工業(yè)測(cè)控領(lǐng)域普遍采用的智能化控制工具,而且已滲入到人們工作和和生活的各個(gè)角落,有力地推動(dòng)了各行業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代,應(yīng)用前景廣闊。隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類生活帶來了根本性的改變。因此利用單片機(jī)

3、來控制十字交叉路口設(shè)置的燈火及顯示有關(guān)提醒信息。1.1 路口燈火控制及顯示系統(tǒng)概述本系統(tǒng)是車輛通行繁忙的十字交叉路口設(shè)置的燈火控制及顯示系統(tǒng),其特點(diǎn)是:道路較窄而車輛通行較多,支線、干線的車輛通行時(shí)間不等,并設(shè)有左右彎道通行時(shí)間,允許人工監(jiān)控或修改各線通行時(shí)間,同時(shí)設(shè)有道路應(yīng)急控制。16X16點(diǎn)陣LED液晶器可隨著按鍵的不同,顯示的內(nèi)容也不相同。1.2 設(shè)計(jì)任務(wù)(1)干道:左右彎道:占時(shí)5秒。顯示如上圖所示的第四位;直道:占時(shí)35秒,顯示如上圖所示的高兩為。(2)支道:左右彎道;占時(shí)5秒,顯示如上圖所示的二三位;直道:占時(shí)25秒,顯示如上圖所示的第0位。(3)同時(shí)的幾位燈在直道時(shí)那位亮,在彎道

4、時(shí)那位亮。(4)在綠燈轉(zhuǎn)紅燈時(shí),閃爍3次,變黃延時(shí)五秒變紅燈。 (5)按一個(gè)按鍵K1時(shí),顯示為雨天小心。 (6)按一個(gè)按鍵K2時(shí),顯示為一路順風(fēng)。1.3 系統(tǒng)主要功能其主要功能有:在正常的情況下,干道通行時(shí)間為40秒,其中左右彎道占時(shí)5秒,直道通行時(shí)間為25秒,其中左右彎道占時(shí)5秒,直道占時(shí)20秒。并且能夠在人工監(jiān)控狀態(tài)下,干道、支道通行時(shí)間通過鍵盤修改或通過開關(guān)人為控制。在下雨天,則按“K1”鍵,16X16點(diǎn)陣LED液晶器顯示“雨天小心”。在晴天,則按“K2”鍵,顯示“一路順風(fēng)”。第二節(jié) 路口燈火控制及顯示系統(tǒng)硬件設(shè)計(jì)燈火控制系統(tǒng)的硬件設(shè)計(jì)以單片機(jī)為主控器,包括一個(gè)擴(kuò)展存儲(chǔ)器(這里用的是32

5、K的6264型號(hào)的EEPROM、 一個(gè)鍵鍵盤、I/O口的擴(kuò)展(8255)、地址的鎖存(74LS373或74LS273)、還有反向器(7407)、8X8點(diǎn)陣LED液晶器4塊、416線譯碼器74LS154一塊、三極管S8050和S8550各16根、4.7K電阻32根、二個(gè)8255A芯片、還有十二盞指示燈。2.1 系統(tǒng)的硬件構(gòu)成及功能(1)硬件設(shè)計(jì)(硬件結(jié)構(gòu)圖如下圖所示)16X16點(diǎn)陣LED液晶顯示電路存儲(chǔ)器8051I/O接口8255A(2#)交通指示燈鍵 盤I/O接口8255A(1#) 圖 2 16X16點(diǎn)陣LED液晶顯示電路:硬件系統(tǒng)在該系統(tǒng)中的作用主要是進(jìn)行數(shù)據(jù)的傳送,有關(guān)邏輯的計(jì)算,并且提供

6、顯示,人為的進(jìn)行數(shù)據(jù)的修改,系統(tǒng)的啟動(dòng),停止等等。此外系統(tǒng)運(yùn)行的安全可靠性要靠硬件系統(tǒng)來實(shí)現(xiàn)。硬件系統(tǒng)的設(shè)計(jì)還應(yīng)滿足以下原則:() 滿足系統(tǒng)的設(shè)計(jì)要求,易于操作維護(hù)。() 系統(tǒng)功能靈活,便于擴(kuò)展。() 具有自動(dòng)診斷功能。硬件系統(tǒng)的設(shè)計(jì)主要包括下面的工作:a:擴(kuò)展存儲(chǔ)器:本系統(tǒng)設(shè)計(jì)中用到的是6264EPROM即可做程序存儲(chǔ)器又可做數(shù)據(jù)存儲(chǔ)器。它跟2個(gè)74LS373地址鎖存器相連,用到A0A14共15根地址線,所以他的尋址范圍07FFFH。b .配置鍵鍵盤,其中“A”為啟動(dòng)鍵,B為停止鍵.擴(kuò)展并行接口8255A.c鍵為修改鍵,e,f鍵人工控制鍵。在該系統(tǒng)中列線用到的是8279的SL經(jīng)過74LS13

7、8的8根列線中的3跟Y0,Y1,Y5,行線是8279的RL8根輸出線。22 設(shè)計(jì)中用到的芯片及其功能 8251芯片的說明 8051芯片MCS-51系列單片機(jī)芯片均為40條引腳,HMOS工藝制造的芯片用雙列直插(DIP)方式封裝,其引腳示意及功能分類如圖1.2所示。各引腳功能說明如下:1. 主電源引腳Vcc(40腳):接+5V電源正端。Vss(20腳):接+5V電源地端。 2. 外接晶體引腳XTAL1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳接地;對(duì)于CHMOS單片機(jī),該引腳作為外部振蕩信號(hào)

8、的輸入端。XTAL2(18腳):接外部石英晶體的另一端。在單片機(jī)內(nèi)部,它是片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端;對(duì)于CHMOS單片機(jī),該引腳懸空不接。2. 輸入/輸出引腳 (1) P0口(3932腳):P0.0P0.7統(tǒng)稱為P0口。在不接片外存儲(chǔ)器與不擴(kuò)展I/O口時(shí),可作為準(zhǔn)雙向輸入/輸出口。在接有片外存儲(chǔ)器或擴(kuò)展I/O口時(shí),P0口分時(shí)復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。 (2) P1口(18腳):P1.0P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O口使用。對(duì)于52子系列,P1.0與P1.1還有第二功能:P1.0可用作定時(shí)器/計(jì)數(shù)器2

9、的計(jì)數(shù)脈沖輸入端T2,P1.1可用作定時(shí)器/計(jì)數(shù)器2的外部控制端T2EX。(3) P2口(2128腳):P2.0P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O口使用;在接有片外存儲(chǔ)器或擴(kuò)展I/O口且尋址范圍超過256字節(jié)時(shí),P2口用作高8位地址總線。 表2.1 P3口第二功能引 腳 第二功能P3.0 RXD 串行口輸入P3.1 TXD 串行口輸出端P3.2 INT0 外部中斷0請(qǐng)求輸入端,低電平有效P3.3 INT1外部中斷1請(qǐng)求輸入端,低電平有效P3.4 T0 定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖輸入端P3.5 T1 定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)脈沖輸入端P3.6 WR 外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸入端,低電平有效

10、P3.7 RD 外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸入端,低電平有效(4) P3口(1017腳):P3.0P3.7統(tǒng)稱為P3口。除作為準(zhǔn)雙向I/O口使用外,還可以將每一位用于第二功能,而且P3口的每一條引腳均可以獨(dú)立定義為第一功能的輸入輸出或第三功能。P3口的第二功能如表2.1所示。4. 控制線 (1) ALE/PROG(30腳):地址鎖存有效信號(hào)輸入端。ALE在每個(gè)機(jī)器周期內(nèi)輸出兩個(gè)脈沖。在訪問片外程序存儲(chǔ)器期間,下降沿用于控制鎖存P0輸出的低8位地址;在不訪問片外程序存儲(chǔ)器期間,可作為對(duì)外輸出的時(shí)鐘脈沖或用于定時(shí)目的。但要注意,在訪問片外數(shù)據(jù)存儲(chǔ)器期間,ALE脈沖會(huì)跳空一個(gè),此時(shí)作為時(shí)鐘輸出就不妥了

11、。對(duì)于片內(nèi)含有EPROM的機(jī)型,在編程期間,該引腳用作編程脈沖PROG的輸入端。 (2) PSEN(29腳):片外程序存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效。當(dāng)從外部程序存儲(chǔ)器讀取指令或常數(shù)期間,每個(gè)機(jī)器周期該信號(hào)兩次有效,以通過數(shù)據(jù)總線P0口讀回指令或常數(shù)。在訪問片外數(shù)據(jù)存儲(chǔ)器期間,PSEN信號(hào)將不再出現(xiàn)。 (3) RST/VPD引腳(9腳):RST即為RESET,VPD為備用電源。該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。當(dāng)單片機(jī)振蕩器工作時(shí),該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平,就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)回復(fù)到初始狀態(tài)。上電時(shí),考慮到振蕩器有一定的起振時(shí)間,該引腳上高電平必須持續(xù)10ms以上才能

12、保證有效復(fù)位。當(dāng)Vcc發(fā)生故障,降低到低電平規(guī)定值或掉電時(shí),該引腳可接上備用電源VPD(+5V)為內(nèi)部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。 (4)EA/Vpp(31腳):EA為片外程序存儲(chǔ)器選用端。該引腳有效(低電平)時(shí),只選用片外程序存儲(chǔ)器,否則單片機(jī)上電或復(fù)位后選用片內(nèi)程序存儲(chǔ)器。對(duì)于片內(nèi)含有EPROM的機(jī)型,在編程期間,此引腳用作21V編程電源Vpp的輸入端。綜上所述,MCS-51系列單片機(jī)的引腳可歸納為以下兩點(diǎn):(1) 單片機(jī)功能多,引腳數(shù)少,因而許多引腳都有第二功能。(2) 單片機(jī)對(duì)外呈現(xiàn)3總線形式,由P2、P0口組成16位地址總線;由P0口分時(shí)復(fù)用為數(shù)據(jù)總線;由ALE、PSEN

13、、RST、EA與P3口中的INT0、INT1、T0、T1、WR、RD共10個(gè)引腳組成控制總線,如圖2.1(b)所示。由于是16位地址線,因此,可使片外存儲(chǔ)器的尋址范圍達(dá)到64KB。2.2.2 8279芯片的說明該芯片為一種專用的鍵盤顯示器接口芯片,能對(duì)顯示器進(jìn)行自動(dòng)掃描,能自動(dòng)識(shí)別鍵盤的鍵號(hào),大大減輕了的負(fù)擔(dān)。在這個(gè)系統(tǒng)中它主要的作用是形成鍵盤,顯示器。提供人工控制的物理系統(tǒng)。8279的組成:數(shù)據(jù)緩沖器,/控制邏輯,控制和定時(shí)寄存器及定時(shí)與控制電路,掃描計(jì)數(shù)器,回復(fù)緩沖器,鍵盤去抖動(dòng)及控制電路,/傳感器及其狀態(tài)寄存器,顯示及顯示地址寄存器等組成。8279的結(jié)構(gòu)及引腳功能:8279的內(nèi)部結(jié)構(gòu)由數(shù)

14、據(jù)緩沖器,I/O控制邏輯,控制和定時(shí)器及定時(shí)控制電路,掃描計(jì)數(shù)器,回復(fù)緩沖器,鍵盤去抖動(dòng)及控制電路,FIFO/傳感器RAM及其狀態(tài)寄存器,顯示RAM及顯示地址寄存器等部分組成.(1)數(shù)據(jù)緩沖器及I/O控制邏輯 數(shù)據(jù)緩沖器是一個(gè)雙向緩沖器,它連接內(nèi)部總線和外部總線,用于傳送CPU和8279之間的命令,數(shù)據(jù)和狀態(tài).I/O控制邏輯完成對(duì)芯片的讀寫控制,芯片選擇以及端口選擇.(2)控制和定時(shí)器及定時(shí)用來寄存操作命令字.(3)掃描計(jì)數(shù)器 掃描計(jì)數(shù)器有兩種工作方式.一種為外部譯碼方式.計(jì)數(shù)器以二進(jìn)制方式計(jì)數(shù),4位計(jì)數(shù)狀態(tài)從掃描線SL0-SL3輸出,經(jīng)外部譯碼器譯碼后,形成16位掃描信號(hào);另一種為內(nèi)部譯碼方

15、式.該方式下,掃描計(jì)數(shù)器的低二位經(jīng)內(nèi)部譯碼后從SL0-SL3輸出,形成4位掃描信號(hào).(4)回復(fù)緩沖器,鍵盤去抖動(dòng)及控制電路 回復(fù)緩沖器緩沖并鎖存來自SL0-SL7八根回復(fù)線的回復(fù)信號(hào).(5)FIFO/傳感器RAM及其狀態(tài)寄存器 FIFO/傳感器RAM是一個(gè)雙重功能的8*8RAM.(6)顯示RAM及顯示地址寄存器 顯示RAM用來存儲(chǔ)顯示數(shù)據(jù),容量為16*8位.在顯示過程中,存儲(chǔ)的顯示數(shù)據(jù)輪流從顯示寄存器輸出.在燈火控制實(shí)驗(yàn)中,它的片選信號(hào)線接Q0、數(shù)據(jù)選擇輸入線接的是Q1,所以他的控制口地址是FF82H,數(shù)據(jù)口地址是FF80H,中斷是懸空的,因?yàn)殒I盤不是中斷方式是查詢方式。2.2.3 其它器件的

16、說明6264靜態(tài)RAM擴(kuò)展6264是8k的8位靜態(tài)隨機(jī)存儲(chǔ)器芯片.CMOS工藝制作,單一+5V供電,28腳雙列直插式封裝.額定功耗為200MW.典型存取時(shí)間為200ns.地址線為A0-A14.74LS373地址鎖存器 74LS373地址鎖存器是透明的帶有三態(tài)門的八D鎖存器.它的鎖存控制端可直接與單片機(jī)的鎖存控制信號(hào)端ALE相連,在ALE下降沿進(jìn)行地址鎖存.當(dāng)三態(tài)門的使能端信號(hào)線/E為低電平時(shí).三態(tài)門處于導(dǎo)通狀態(tài),允許Q端輸出;當(dāng)/E端為高電平時(shí),輸出三態(tài)門斷開.輸出端對(duì)外部電路呈高阻狀態(tài).74.LS138譯碼器74LS138譯碼器有3個(gè)輸入端,組成8種輸入狀態(tài),輸出端有8個(gè),每個(gè)輸出端對(duì)應(yīng)8種

17、輸入狀態(tài)的一種,低電平有效。此外還有3個(gè)使能端E3,E2,E1,這3個(gè)使能端必須同時(shí)輸入有效電平,譯碼器才能工作,既E3=1,E2=0,E1=0。8255可編程接口芯片() 三個(gè)并行I/O口-A口,B口,C口在此設(shè)計(jì)中用到了A,B兩個(gè)口。() 工作方式控制電路;() 讀寫控制邏輯電路;() 數(shù)據(jù)總線緩沖器;引腳功能:CS片選信號(hào),RD讀入信號(hào)線,WR寫入信號(hào),A1,A0端口選擇信號(hào);RESET復(fù)位信號(hào)線,Vcc,GND等。74LS240驅(qū)動(dòng)器 在該系統(tǒng)中它是作為線驅(qū)動(dòng)器起驅(qū)動(dòng)作用的,它的輸入端1A1-1A4,2A1-2A4,與8279的輸出端相連,輸出端與雙色LED燈相連。其引腳圖為附件。第3

18、節(jié) 系統(tǒng)的軟件設(shè)計(jì)在該系統(tǒng)的軟件設(shè)計(jì)中用到的是模塊程序設(shè)計(jì),主要的模塊程序是鍵盤的模塊程序,它包括顯示的模塊程序,通過軟件的設(shè)計(jì)使系統(tǒng)有簡(jiǎn)易的監(jiān)控功能,通過鍵盤可以修改通行時(shí)間和啟動(dòng)或停止人工控制的路口燈火控制系統(tǒng). 31 系統(tǒng)主程序設(shè)計(jì)程序框圖及說明在本次設(shè)計(jì)中最后對(duì)鍵盤程序方案流程圖的確定如下圖所示:在本次設(shè)計(jì)中鍵盤采用查詢方式,故在鍵盤程序的開始必須對(duì)現(xiàn)場(chǎng)進(jìn)行保護(hù),同時(shí)在查詢結(jié)束時(shí)不能影響相應(yīng)程序段中在上一時(shí)刻的計(jì)數(shù)值,故在對(duì)鍵盤進(jìn)行查詢完畢之后也必須能夠把正確的返回值送給斷點(diǎn),不能在此出現(xiàn)死循環(huán)(在調(diào)試中有此情況發(fā)生)。按照如下圖,所示框圖進(jìn)行設(shè)計(jì)的調(diào)試后發(fā)現(xiàn)程序能夠很好的從死循環(huán)中跳

19、出,繼續(xù)執(zhí)行其后的程序。但也必須考慮到在需要的時(shí)候不妨讓它暫時(shí)的進(jìn)入到死循環(huán)狀態(tài)。比如在按下B、E、F,這三個(gè)鍵時(shí),就必須讓程序在這里停止,不能讓它返回。圖中是讓它去繼續(xù)查詢有無別的按鍵,也就是說在這幾個(gè)鍵被按下的時(shí)候,如果沒有別的按鍵,它就一直在此等待,執(zhí)行自己相應(yīng)的功能。入口8255干通支斷調(diào)用顯示并延1秒調(diào)用鍵盤程序判斷是否有鍵按下寄存器減1減完否?返回鍵服務(wù)程序YNYN 開始初始化調(diào)用狀態(tài)0調(diào)用狀態(tài)1調(diào)用狀態(tài)2調(diào)用狀態(tài)3調(diào)用狀態(tài)4返回 圖 1 初始化 圖 2 8255干通支斷程序 入口8255干斷支通調(diào)用顯示并延1秒調(diào)用鍵盤程序判斷是否有鍵按下寄存器減1減完否?返回鍵服務(wù)程序YNYN入

20、口8255干通支斷轉(zhuǎn)換狀態(tài)調(diào)用顯示并延1秒調(diào)用鍵盤程序判斷是否有鍵按下寄存器減1減完否?返回鍵服務(wù)程序YYNN 圖 3 8255干斷支通程序 圖 4 88255干通支斷轉(zhuǎn)換狀態(tài)程序保護(hù)現(xiàn)場(chǎng)有鍵按下B鍵功能有鍵按下為A清屏并返回?cái)帱c(diǎn)為C ?C鍵功能為E?E鍵功能為F?F鍵功能為B? 圖 5 中斷服務(wù)程序32顯示子程序及說明主程序在剛上電時(shí)對(duì)系統(tǒng)進(jìn)行初始化,然后讀一次鍵開關(guān)狀態(tài),由鍵標(biāo)志位決定顯示的內(nèi)容。 YPC.5=1顯示字符串“雨天小心”Y開始按一個(gè)鍵PC.4=1顯示字符串“一路順風(fēng)”NN圖 6 顯示子程序3.3延時(shí)子程序的計(jì)算采用寄存器R0、R1、R2作為記數(shù)值,R2中暫存1,R1中存0。當(dāng)

21、減1后變?yōu)?55即R1中存數(shù)256。R0中存數(shù)#0B2H即178。DELAY2延時(shí)為:N=(2+2+2+1+1+2*178)+255*(1+1+2+2*178)=9164。共計(jì)9164個(gè)指令周期,而系統(tǒng)晶振為11.0592。所以t=12/11.0592=1.085(微秒)延時(shí)DELAY2為:T=9164*1.085/1000000=0.09996約等于0.1(秒)通過改變R2的值可以改變延時(shí)的秒數(shù)。3.4各鍵的功能各鍵功能:在本次設(shè)計(jì)中主要定義和調(diào)用了以下幾個(gè)鍵及其功能:A、B、C、D、E和F鍵。各鍵功能如下所示:A鍵 用于啟動(dòng)主程序,如果沒有A鍵按下,則一直處于等待狀態(tài),所有的燈在此時(shí)為黃色

22、,主程序不被執(zhí)行。B鍵 用于在工作過程中對(duì)程序做急停處理,在鍵B被按下的時(shí)候主程序停止不動(dòng)(在此要注意對(duì)斷點(diǎn)的保護(hù)問題)。直到當(dāng)有別的鍵被按下時(shí)才轉(zhuǎn)至相應(yīng)鍵的功能支執(zhí)行相應(yīng)的程序。C鍵 用于做對(duì)任意時(shí)段時(shí)間的修改及其處理并且能夠自動(dòng)返回到該時(shí)段的初始狀態(tài)重新進(jìn)行計(jì)數(shù)(此數(shù)值即修改后的數(shù)值)。E健 用于人工控制支斷干通狀態(tài)。無別的鍵按下便一直保持該狀態(tài)。F健 用于人工控制支通干斷狀態(tài)。無別的鍵按下便一直保持該狀態(tài)。結(jié)束語這次課程設(shè)計(jì)我是把交通燈與16X16 LED液晶顯示器一起聯(lián)合起來寫的,因?yàn)閷?duì)這些項(xiàng)目不太熟悉,只是結(jié)合自已平時(shí)來寫,因此有可能不是正確的。但經(jīng)過這次課程設(shè)計(jì),雖說沒做出成品,程

23、序的設(shè)計(jì)也是參考網(wǎng)絡(luò)上的資料及書上的資料,因?yàn)槲沂怯?jì)算機(jī)專業(yè)的,本身對(duì)電子方面的器件也不太熟悉,電路設(shè)計(jì)也不是太清楚。自已從中雖說沒真正了解其真正的設(shè)計(jì)過程,但是從參考中得到一些啟示,了解到在處理一些項(xiàng)目時(shí),應(yīng)該從哪幾方面入手,知道哪個(gè)問題應(yīng)該從哪方面下手,知道這里所使用的器件是做什么用途,為自已以后去設(shè)計(jì)相類似的項(xiàng)目打下基礎(chǔ),增加自已在單片機(jī)方面的一些經(jīng)驗(yàn)。通過這次課程設(shè)計(jì),我從中了解到原來在我們的生活中各個(gè)方面都用到了單片機(jī),單片機(jī)影響了人們的生活,因此我們作為計(jì)算機(jī)專業(yè)的學(xué)生,應(yīng)該在這方面多下些功夫,等以后有機(jī)會(huì),去設(shè)計(jì)真正的成品。參考文獻(xiàn)1 范風(fēng)強(qiáng) 蘭嬋麗,單片機(jī)語言C51應(yīng)用實(shí)戰(zhàn)集錦

24、(修訂版),電子工業(yè)出版社 北京2 李光飛 樓苗然, 51系列單片機(jī),北京航空航天大學(xué)出版社 3 潭浩強(qiáng) ,MCS-51單片機(jī)應(yīng)用教程,清華大學(xué)出版社 4 梁廷貴 , 現(xiàn)代集成電路手冊(cè), 科學(xué)技術(shù)文獻(xiàn)出版社 源程序Z8279EQU0FF82H;8279狀態(tài)/命令口地址D8279EQU0FF80H ;8279數(shù)據(jù)口地址LEDMODEQU00H ;左邊輸入八位字符顯示 ;外部譯碼鍵掃描方式,雙鍵互鎖LEDFEQEQU2FH ;掃描速率LEDCLSEQU0C1H ;清除顯示RAMLEDWR0EQU80H ;設(shè)定的將要寫入的顯示RAM地址 READKB EQU 40H ;讀FIFO RAM地址0的命令

25、字ORG0000HLJMPSTART ;主程序入口ORG0003HLIMPSTARTA ;開外部中斷ORG000BHRETIORG0013HLIMPSTARTB ;開外部中斷 顯示程序:ORG 0000HMOV DPTR,#8406H ;8255控制口地址 MOV A,#80H ;命令字傳入控制口MOVX DPTR,ALJMP START ;開始程序 ORG 0040HSTART: MOV 16H,#35 ;設(shè)定顯示秒數(shù)MOV SP,#30H LCALL STATUS0 ;調(diào)用初始狀態(tài)全紅燈STARTA: MOVDPTR,#TAB1 PUSH DPH PUSH DPL LJMP START1S

26、TARTB: MOVDPTR,#TAB2 PUSH DPH PUSH DPL LJMP START1START: JZ P3.2,STARTAJZP3.3,STARTBMOVDPTR,#TAB LJMP START1START1: LACALL CLEARMENMOVR4,#O3H;相臨字符串之間的間隔距離MOVR5,#40H;1幀顯示時(shí)間控制LJMPFUZHI初始化程序:CLEARMEN:MOVA,#0FFHMOVR2,#50HMOV DPTR, #1FFFHMOV A, #80HMOVX DPTR, AZERO: MOV R2,A;50H6FH內(nèi)存單元清零INCR2CJNER2,#6FH,

27、ZERORET掃描子程序:DISPLAY: MOV A,#0FFH MOV DPTR,#1FFCH MOVX DPTR, A MOV DPTR,#1FFDHMOVX DPTR, A;關(guān)掃描MOV DPTR, #1FFEHMOVX DPTR,A MOVR6,#OFH ;關(guān)顯示數(shù)據(jù)MOVR2,#6FHDISLOOP:MOV DPTR,#1FFDH MOV A, R2 MOVX DPTR,ADECR2MOV A,R2MOV DPTR,#1FFCH MOV A, R2MOVX DPTR,AMOV DPTR,#1FFEH MOV A, R6MOVX DPTR,ALCALLDL1MS;延時(shí)程序JZR6,P

28、AND;判斷結(jié)束跳轉(zhuǎn)程序DECR2DECR6CIRCLE: LCALL STATUS1 ;南北綠燈東西紅燈LCALL STATUS2 ;南北綠燈閃轉(zhuǎn)黃燈東西紅燈LCALL STATUS3 ;南北紅燈東西綠燈 LCALL STATUS4 ;南北紅燈東西綠燈閃轉(zhuǎn)黃燈LJMPDISLOOP賦值程序:FUZHI: POP DPL POP DPH MOVA,#00H MOVR0,#00HDAT1: MOVA,A+DPTRMOV6FH,ALCALLDISPLAY判斷程序:PAND: DJNZR5,DISPLAY CJNER0,#5FH,PAND2 LJMPFUZHI2PAND2: ACALL LEFT1M

29、OVA,R0INCAMOVR0,A LJMPDAT1FUZHI2: INCR4JZR4,STARTACALLLEFT1LCALLDISPLAY左移程序:LEFT1: MOVR2,#50HMOVA,#51HMOVR2,AINCR2INCACJNER2,#6FH,LEFT1RET延時(shí)程序:DL1MS: MOVR7,#250;延時(shí)1mSL1: DJNZ R7,L1 RET顯示數(shù)據(jù)表:TAB1:DB 00H,00H,00H,00H,00H,10H,10H,0F0H ;雨DB 10H,10H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,7FH,01H,06H,09H,7F

30、HDB 06H,09H,11H,21H,7FH,00H,00H,00HDB 00H,00H,00H,00H,00H,10H,10H,0F0H ;天DB 10H,10H,00H,00H,00H,00H,00H,00HDB 00H,40H,20H,10H,08H,04H,02H,01HDB 01H,02H,04H,08H,10H,20H,40H,00HDB 00H,00H,00H,00H,80H,40H,00H,0F0H;小DB 00H,40H,80H,00H,00H,00H,00H,00HDB 00H,00H,02H,01H,00H,10H,20H,3FHDB 00H,00H,00H,02H,0

31、1H,00H,00H,00HDB 00H,00H,80H,80H,00H,00H,00H,80H ;心DB 00H,00H,00H,00H,00H,00H,00H,00HDB 02H,01H,00H,00H,01H,02H,04H,06HDB 09H,0AH,08H,08H,0AH,0DH,0AH,04HTAB2:DB 00H,00H,00H,00H,00H,00H,00H,00H ;一DB 00H,00H,00H,00H,00H,04H,0FFH,0FEHDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HD

32、B 00H,40H,7CH,40H,44H,0FCH,45H,88H;路DB 46H,50H,44H,20H,7CH,50H,50H,88HDB 13H,06H,5CH,04H,50H,0F8H,50H,88HDB 50H,88H,5CH,88H,0E0H,0F8H,00H,88HDB 00H,04H,47H,0FEH,54H,20H,54H,40H;順DB 55H,0FCH,55H,04H,55H,24H,55H,24HDB 55H,24H,55H,24H,55H,24H,55H,24HDB 54H,50H,44H,48H,84H,86H,01H,02HDB 00H,10H,3FH,0F8H

33、,20H,10H,28H,50H ;風(fēng)DB 24H,50H,22H,90H,22H,90H,21H,10HDB 21H,10H,22H,90H,22H,90H,24H,50HDB 28H,50H,30H,12H,40H,0AH,80H,06H鍵盤服務(wù)程序:FUWU00:PUSH 11H ;保護(hù)現(xiàn)場(chǎng)PUSH PSWLCALLGETKEY ;判斷是否有鍵輸入CJNE A,#0FFH,JAP0MOV 50H,BMOV A,50HCJNE A, #0BH,PADJ ;是否為B鍵LCALL KEYB ;調(diào)用B鍵服務(wù)功能WAIT0:LCALLGETKEY ;等待有鍵輸入CJNE A,#0FFH,WAIT0

34、MOV 50H,BMOV A,50HCJNE A,#0AH,PADJ ;是否為A鍵LCALL INIT8279 ;清屏SJMP JAP0 ;返回?cái)帱c(diǎn)PADJ:MOV A,50H CJNE A,#0CH,PDJE0 ;判斷是否為C鍵LCALLKEYC ;調(diào)用C鍵功能LCALLKEYD ;調(diào)用D鍵功能PDJE0:MOV A,50HCJNE A,#0EH,PDJF0 ;判斷是否為E鍵LCALLKEYE ;調(diào)用E鍵功能PDJF0:MOV A,50HCJNE A,#0FH,WAIT0 ;是否為F鍵LCALLKEYF ;調(diào)用F鍵功能LJMP WAIT0 ;繼續(xù)等待按鍵JAP0:POP PSW ;彈出堆棧P

35、OP 11HRET ;返回FUWU01:PUSH 11HPUSH PSWLCALLGETKEYCJNEA,#0FFH,JAP01MOV 50H,BMOV A,50HCJNE A,#0BH,PADJ1LCALLKEYBWAIT01:LCALLGETKEYCJNE A,#0FFH,WAIT01MOV 50H,BMOV A,50HCJNE A,#0AH,PADJ1LCALLINIT8279MOV DPTR,#8400HMOV A,#96HMOVXDPTR,ASJMP JAP01PADJ1:MOV A,50HCJNE A,#0CH,PDJE01LCALLKEYCLCALLKEYD1PDJE01:MOV

36、 A,50HCJNE A,#0EH,PDJF01LCALLKEYEPDJF01:MOV A,50HCJNE A,#0FH,WAIT01LCALLKEYFLJMP WAIT0JAP01:POP PSWPOP11HRETFUWU02:PUSH 11HPUSHPSWLCALLGETKEYCJNE A,#0FFH,JAP02MOV 50H,BMOV A,50HCJNE A,#0BH,PADJ2LCALLKEYBWAIT02:LCALLGETKEYCJNE A,#0FFH,WAIT02MOV 50H,BMOV A,50HCJNE A,#0AH,PADJ2LCALL INIT8279SJMP JAP02P

37、ADJ2:MOV A,50HCJNE A,#0CH,PDJE02LCALLKEYCLCALLKEYD2PDJE02:MOV A,50HCJNE A,#0EH,PDJF02LCALLKEYEPDJF02:MOV A,50HCJNE A,#0FH,WAIT02LCALLKEYFLJMP WAIT0JAP02:POP PSWPOP 11HRETFUWU03:PUSH 11HPUSH PSWLCALLGETKEYCJNE A,#0FFH,JAP03MOV 50H,BMOV A,50HCJNE A,#0BH,PADJ3LCALLKEYBWAIT03:LCALLGETKEYCJNE A,#0FFH,WAI

38、T03MOV50H,BMOV A,50HCJNE A,#0AH,PADJ3LCALLINIT8279SJMP JAP03PADJ3:MOV A,50HCJNE A,#0CH,PDJE03LCALLKEYCLCALLKEYD3PDJE03:MOV A,50HCJNE A,#0EH,PDJF03LCALLKEYEPDJF03:MOV A,50HCJNE A,#0FH,WAIT01LCALLKEYFLJMP WAIT0JAP03:POPPSWPOP 11HRET鍵盤子程序:KEYB:MOV R5,#0BH ;在第七位顯示字符BMOV R4,#06HLCALLERROR ;調(diào)用出錯(cuò)程序RETKEYC:

39、LCALLINIT8279 MOV R5,#0CH ;在第七位顯示字符CMOV R4,#06HLCALLDISLED ;調(diào)用顯示W(wǎng)AIT1:LCALLGETKEY ;等待十位數(shù)據(jù)輸入CJNE A,#0FFH,WAIT1MOV R5,BMOV 31H,BMOV R4,#01H ;把數(shù)據(jù)送第二位顯示LCALLDISLED WAIT2:LCALLGETKEY ;等待個(gè)位數(shù)據(jù)輸入CJNE A,#0FFH,WAIT2MOV R5,BMOV 30H,BMOV R4,#0 ;把數(shù)據(jù)送第一位顯示 LCALLDISLEDRETKEYD:MOV A,31H ;對(duì)十位數(shù)據(jù)進(jìn)行處理MOV B,#10MUL ABMOV

40、 B,30HADD A,B MOV 16H,A ;把處理后的數(shù)據(jù)送入16H單元AJMP CIRCLE0 ;轉(zhuǎn)到干道時(shí)間顯示RETKEYD1:MOVA,31HMOV B,#10MUL ABMOV B,30HADD A,B MOV 17H,A ;處理后的數(shù)據(jù)送入17H單元AJMP CIRCLE1 ;轉(zhuǎn)到干道的延時(shí)5S時(shí)間顯示RETKEYD2:MOV A,31HMOV B,#10MUL ABMOV B,30HADD A,B MOV 18H,A ;處理后的數(shù)據(jù)送入18H單元AJMP CIRCLE2 ;轉(zhuǎn)到支道時(shí)間顯示RETKEYD3:MOV A,31HMOV B,#10MUL ABMOV B,30HA

41、DD A,B MOV 19H,A ;處理后的數(shù)據(jù)送入19H單元AJMP CIRCLE3 ;轉(zhuǎn)到支道的延時(shí)5S時(shí)間顯示RETKEYE:MOV R5,#0EH ;把字符E送到第七位顯示MOV R4,#06HLCALLDISLEDMOV DPTR,#8400H ;控制交通燈為南北綠,東西紅MOV A,#96HMOVX DPTR, ARETKEYF:MOV R5,#0FH ;把字符F送到第七位顯示MOV R4,#06HLCALLDISLEDMOV DPTR,#8400H ;控制交通燈為南北紅,東西綠MOV A,#69HMOVX DPTR,ARETSTATUS0:MOV DPTR , #8400H MOV A,#0FHMOVX DPTR, AMOV R2,#10 ;延時(shí)一秒LCALL DELAY RETSTATUS1: ;南北綠燈東西紅燈MOV DPTR , #8400HMOV A,#96HMOVX DPTR, AMOV 11H,16H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論