




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C51程序設(shè)計課程報告流水燈設(shè)計學(xué) 院: 電信學(xué)院 班 級: 09電信本1班 學(xué) 號: 25 姓 名: 張程 摘要本課程是利用AT80C51單片機(jī)的自動控制功能,并結(jié)合其它電子元器件以及軟件實現(xiàn)的流水燈,實現(xiàn)不同種類的流水現(xiàn)象。單片機(jī)技術(shù)在社會各領(lǐng)域中得到了廣泛的應(yīng)用。在流水燈控制系統(tǒng)中,單片機(jī)更是取代了由齒輪調(diào)節(jié)延遲時間的舊式市發(fā)展速度,成為日后此系統(tǒng)中的核心部分。由于單片機(jī)具有一些突出的優(yōu)點(diǎn):體積小、重量輕、電源單一、功耗低;功能強(qiáng)、價格低;數(shù)據(jù)大都在單片機(jī)內(nèi)部傳送,運(yùn)行速度快、抗干擾能力強(qiáng)、可靠性高,所以單片機(jī)被廣泛的應(yīng)用于測控系統(tǒng)、數(shù)據(jù)采集、智能儀器儀表、機(jī)電一體化產(chǎn)品、智能接口、計算機(jī)通信以及單片機(jī)的多級系統(tǒng)等領(lǐng)域。本文主要講的是單片機(jī),課題名稱為多按鍵花樣流水燈,它使我們學(xué)會了如何使用單片機(jī)控制我們?nèi)粘I钪械亩嘣O(shè)備設(shè)施的應(yīng)用。通過本課題的設(shè)計以后,使我了解到了單片機(jī)的許多方面的應(yīng)用。利用單片機(jī)的自動控制功能,設(shè)計出相應(yīng)不同的電路,可以實現(xiàn)彩燈不同模式的流水效果。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說,智能控制與自動控制的核心即使單片機(jī)。單片機(jī)的最明顯的優(yōu)勢,就是想入到各種儀器,設(shè)備中。 目 錄緒論 11. 相關(guān)元件及電路設(shè)計21.1 AT89C51芯片功能特性及應(yīng)用21.2 MCS-51單片機(jī)31.2.1 內(nèi)部結(jié)構(gòu)31.2.2 引腳定義31.2.3 外部總線構(gòu)成51.3 單片機(jī)時鐘電路及時鐘時序單位61.4單片機(jī)的復(fù)位81.4.1 復(fù)位狀態(tài)81.4.2 復(fù)位電路92. 流水燈電路及程序設(shè)計102.1 電路原理圖設(shè)計103.2電路程序設(shè)計12總結(jié)17參考文獻(xiàn)18緒論當(dāng)今時代是一個新技術(shù)層出不窮的時代,在電子領(lǐng)域尤其是自動化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前所未見的速度被單片機(jī)智能控制系統(tǒng)所取代。目前,一個學(xué)習(xí)與應(yīng)用單片機(jī)的高潮正在工廠、學(xué)校及企事業(yè)單位大規(guī)模地興起。本設(shè)計用AT89C51單片機(jī)自制了一款簡易的花樣流水燈,介紹了其硬件電路及軟件編程方法,在實踐中體驗單片機(jī)的自動控制功能。該設(shè)計具有實際意義,可以在廣告業(yè)、媒體宣傳、裝飾業(yè)等領(lǐng)域得到廣泛應(yīng)用。學(xué)習(xí)單片機(jī)的最有效方法就是理論與實踐并重,現(xiàn)在我把單片機(jī)流水燈設(shè)計作為一個課程設(shè)計,需要更深的去了解單片機(jī)的很多功能,努力的去查找資料。本課題將以發(fā)光二極管作為發(fā)光器件,用單片機(jī)自動控制,實現(xiàn)一個簡易的花樣流水燈設(shè)計。1. 相關(guān)元件及電路設(shè)計1.1 AT89C51芯片功能特性及應(yīng)用單片機(jī)在我們的日常生活和工作中無處不在、無處不有:家用電器中的電子表、洗衣機(jī)、電飯褒、豆?jié){機(jī)、電子秤;住宅小區(qū)的監(jiān)控系統(tǒng)、電梯智能化控制系統(tǒng);汽車電子設(shè)備中的ABS、GPS、ESP、TPMS;醫(yī)用設(shè)備中的呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,病床呼叫系統(tǒng);公交汽車、地鐵站的IC卡讀卡機(jī)、滾動顯示車次和時間的LED點(diǎn)陣顯示屏;電腦的外設(shè),如鍵盤、鼠標(biāo)、光驅(qū)、打印機(jī)、復(fù)印件、傳真機(jī)、調(diào)制解調(diào)器;計算機(jī)網(wǎng)絡(luò)的通訊設(shè)備;智能化儀表中的萬用表,示波器,邏輯分析儀;工廠流水線的智能化管理系統(tǒng),成套設(shè)備中關(guān)鍵工作點(diǎn)的分布式監(jiān)控系統(tǒng);導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上的各種儀表等等。有資料表明:2007年全球單片機(jī)的產(chǎn)值達(dá)到151億美元,我國單片機(jī)的銷售額達(dá)到400億元人民幣,我國每年單片機(jī)的需求量達(dá)50至60億片,是全球單片機(jī)的最大市場。可以說單片機(jī)已經(jīng)滲透到了我們生活的各個領(lǐng)域。在AT89C51芯片內(nèi)部有一個高增益反相放大器,用于構(gòu)成振蕩器。反相放大器的輸入端為引腳XTAL1,輸出端為引腳XTAL2,在芯片的外部通過這兩個引腳跨接晶體振蕩器和微調(diào)電容C1、C2形成反饋電路,可構(gòu)成穩(wěn)定的自激振蕩器,振蕩頻率通常是1.212MHz。若晶體振蕩器頻率高,則系統(tǒng)的時鐘頻率也高,單片機(jī)的運(yùn)行速度也就快1.2 MCS-51單片機(jī)1.2.1 內(nèi)部結(jié)構(gòu)MCS-51系列單片機(jī)內(nèi)部采用模塊式結(jié)構(gòu),其結(jié)構(gòu)組成框圖如圖1所示。圖1 MCS-51系列單片機(jī)組成框圖由圖1可見,MCS-51系列單片機(jī)主要由以下部件通過片內(nèi)總線連接而成:中央處理器(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM)、并行輸入/輸出口(P0口P3口)、串行口、定時器/計數(shù)器、中斷控制、總線控制及時鐘電路。1.2.2 引腳定義引腳是單片機(jī)和外界進(jìn)行通信的通道連接點(diǎn),用戶只能通過引腳組建控制系統(tǒng)。從應(yīng)用的角度來看,引腳的應(yīng)用是單片機(jī)應(yīng)用的一個重要基礎(chǔ)。因此熟悉引腳是學(xué)習(xí)應(yīng)用單片機(jī)的基礎(chǔ)。MCS-51系列單片機(jī)的引腳封裝主要有: PDIP40、PLCC44和PQFP/TQFP44。不同封裝的芯片其引腳的排列位置有所不同,但他們的功能和特性都相同。方形封裝(PLCC44和POFP/TQFP44)有44引腳,其中4個NC為空引腳。采用40引腳PDIP封裝的80C51單片機(jī)的引腳排列及邏輯符號如圖2所示。由于工藝及標(biāo)準(zhǔn)化等原因,芯片的引腳數(shù)量是有限的,但單片機(jī)為實現(xiàn)控制所需要的信號數(shù)目卻遠(yuǎn)遠(yuǎn)超過其引腳數(shù)目。為解決這一矛盾,單片機(jī)的某些信號引腳被賦以雙重功能。1)電源及電源復(fù)位引腳:(1)VCC(40腳):正常操作時接+5V直流電源。(2)VSS (20腳):接地端。圖2 40引腳PDIP封裝的80C51單片機(jī)的引腳排列及邏輯符號圖(3)RST/VPD(9腳):復(fù)位信號輸入端。在該引腳上輸入一定時間(約兩個機(jī)器周期)的高電平將使單片機(jī)復(fù)位。該引腳的第二功能是VPD,即備用電源輸入端。當(dāng)主電源發(fā)生故障,降低到低電平規(guī)定值時,可將+5V備用電源自動接入VPD端,以保護(hù)片內(nèi)RAM中的信息不丟失,使復(fù)電后能繼續(xù)正常運(yùn)行。(4)/VPP(31腳):訪問程序存儲器控制信號/編程電源輸入。當(dāng)保持高電平時,訪問內(nèi)部程序存儲器,訪問地址范圍在04KB內(nèi);當(dāng)PC(程序計數(shù)器)值超過0FFFH,即訪問地址超出4KB時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序;當(dāng)保持低電平時,不管單片機(jī)內(nèi)部是否有程序存儲器,則只訪問外部程序存儲器(從0000H地址開始)。由此可見,對片內(nèi)有可用程序存儲器的單片機(jī)而言,端應(yīng)接高電平,而對片內(nèi)無程序存儲器的單片機(jī),可將接地。對于EPROM型單片機(jī),在EPROM編程期間,此引腳用于施加21V的編程電源(VPP)。2)時鐘振蕩電路引腳XTAL1和XTAL2:(1)XTAL1(19腳):外接石英晶體和微調(diào)電容引腳1。它是片內(nèi)振蕩電路反向放大器的輸入端。采用外部振蕩器時此引腳接地。(2)XTAL2(18腳):外接石英晶體和微調(diào)電容引腳2。它是片內(nèi)振蕩電路反向放大器的輸出端。采用外部振蕩器時此引腳為外部振蕩信號輸入端。3) (30腳):低8位地址鎖存控制信號/編程脈沖輸入。在系統(tǒng)擴(kuò)展時,ALE用于把P0口輸出的低8位地址鎖存起來,以實現(xiàn)低8位地址和數(shù)據(jù)的隔離。在訪問外部程序存儲器期間,ALE信號兩次有效;而在訪問外部數(shù)據(jù)存儲器期間,ALE信號一次有效。對于EPROM型單片機(jī),在EPROM編程期間,此引腳用于輸入編程脈沖。4)(29腳):外部程序存儲器的讀選通信號輸出端,低電平有效。在從外部程序存儲器取指令(或常數(shù))期間,此引腳定時輸出負(fù)脈沖作為讀取外部程序存儲器的信號,每個機(jī)器周期兩次有效,此時地址總線上送出的地址為外部程序存儲器地址;在此期間,如果訪問外部數(shù)據(jù)存儲器和內(nèi)部程序存儲器,不會產(chǎn)生信號。5)并行雙向輸入/輸出(I/O)口引腳:(1)P0口的P0.0P0.7引腳(3932腳):8位通用輸入/輸出端口和片外8位數(shù)據(jù)/低8位地址復(fù)用總線端口。(2)P1口的P1.0P1.7引腳(18腳):8位通用輸入/輸出端口。(3)P2口的P2.0P2.7引腳(2821腳):8位通用輸入/輸出端口和片外高8位地址總線端口。(4)P3口的P3.0P3.7引腳(1017腳):8位通用輸入/輸出端口,具有第二功能。1.2.3 外部總線構(gòu)成所謂總線,就是連接單片機(jī)與各外部器件的一組公共的信號線。當(dāng)系統(tǒng)要求擴(kuò)展時,單片機(jī)要與一定數(shù)量的外部器件和外圍設(shè)備連接。如果各部件及每一種外圍設(shè)備都分別用各自的一組線路與CPU直接連接,那么連線將會錯綜復(fù)雜,甚至難以實現(xiàn)。為了簡化硬件電路的設(shè)計和系統(tǒng)結(jié)構(gòu),常用一組線路,并配以適當(dāng)?shù)慕涌陔娐穪砼c各個外部器件和外圍設(shè)備連接,這組共用的連接線路就是總線。采用總線結(jié)構(gòu)便于擴(kuò)展外部器件和外圍設(shè)備,而統(tǒng)一的總線標(biāo)準(zhǔn)則使不同設(shè)備間的互連更容易實現(xiàn)。利用片外引腳可以構(gòu)造MCS-51系列單片機(jī)的三總線結(jié)構(gòu)。單片機(jī)的引腳除了電源端VCC、接地端VSS、復(fù)位端RST、晶振接入端XTAL1和XTAL2、通用I/O口的P1.0P1.7以外,其余的引腳都是為實現(xiàn)系統(tǒng)擴(kuò)展而設(shè)置的。用這些引腳構(gòu)造的單片機(jī)系統(tǒng)的三總線結(jié)構(gòu)如3所示。圖3 MCS-51系列單片機(jī)片外三總線結(jié)構(gòu)1)地址總線(Address Bus,AB):MCS-51系列單片機(jī)總共有16根地址線A15 A0,片外存儲器可尋址范圍達(dá)64KB(216=65536字節(jié)),由P2口直接提供高8位地址A15 A8,P0口經(jīng)地址鎖存器提供低8位地址A7 A0。2)數(shù)據(jù)總線(Data Bus,DB):MCS-51系列單片機(jī)總共有8根數(shù)據(jù)線D7D0,全由P0口提供。由于P0口是分時復(fù)用總線,分時輸送低8位地址(通過地址鎖存器鎖存)和高8位數(shù)據(jù)信息。3)控制總線(Control Bus,CB):控制總線由P3口的第二功能(P3.6)、(P3.7)和3根獨(dú)立的控制線、ALE、組成。1.3 單片機(jī)時鐘電路及時鐘時序單位1) 時鐘電路單片機(jī)本身如同一個復(fù)雜的同步時序電路,為了保證同步工作,電路應(yīng)在唯一的時鐘信號控制下,嚴(yán)格地按規(guī)定時序工作。而時鐘電路就用于產(chǎn)生單片機(jī)工作所需要的時鐘信號。MCS-51單片機(jī)時鐘電路示意圖如圖4所示。圖4 MCS-51單片機(jī)時鐘振蕩電路示意圖在MCS-51芯片內(nèi)部有一個高增益反相放大器,用于構(gòu)成振蕩器。反相放大器的輸入端為引腳XTAL1,輸出端為引腳XTAL2,在芯片的外部通過這兩個引腳跨接晶體振蕩器和微調(diào)電容C1、C2形成反饋電路,可構(gòu)成穩(wěn)定的自激振蕩器,振蕩頻率范圍通常是1.212MHz。晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機(jī)的運(yùn)行速度也就快。振蕩電路產(chǎn)生的振蕩脈沖并不直接使用,而是經(jīng)分頻后再為系統(tǒng)所用。振蕩脈沖在片內(nèi)通過一個時鐘發(fā)生電路二分頻后才作為系統(tǒng)的時鐘信號。片內(nèi)時鐘發(fā)生電路實質(zhì)上是一個二分頻的觸發(fā)器,其輸入來自振蕩器,輸出為二相時鐘信號,即狀態(tài)時鐘信號,其頻率為fosc/2;狀態(tài)時鐘三分頻后為ALE信號,其頻率為fosc/6;狀態(tài)時鐘六分頻后為機(jī)器周期,其頻率為fosc/12。在圖4中,使用晶體振蕩器時,C1、C2取值3010pF;使用陶瓷振蕩器時,C1、C2取值4010pF。C1、C2的取值雖然沒有嚴(yán)格的要求,但電容的大小影響振蕩電路的穩(wěn)定性和快速性,通常取值2030pF。在設(shè)計印制電路板時,晶振和電容等應(yīng)盡可能靠近芯片,以減少分布電容,保證振蕩器振蕩的穩(wěn)定性。也可以由外部時鐘電路向片內(nèi)輸入脈沖信號作為單片機(jī)的振蕩脈沖。這時外部脈沖信號是經(jīng)XTAL1引腳引入的,而XTAL2引腳懸空或接地。對外部信號的占空比沒有要求,但高低電平持續(xù)的時間不應(yīng)小于20ns。這種方式常用于多塊芯片同時工作,便于同步。其外部脈沖接入方式如圖5所示。圖5 MCS-51單片機(jī)外部時鐘輸入接線圖所謂時序,是指在指令執(zhí)行過程中,CPU的控制器所發(fā)出的一系列特定的控制信號在時間上的先后關(guān)系。CPU發(fā)出的控制信號有兩類:一類是用于單片機(jī)內(nèi)部的,用戶不能直接接觸此類信號,不必對它作過多了解;另一類是通過控制總線送到片外的,人們通常以時序圖的形式來表示相關(guān)信號的波形及出現(xiàn)的先后次序。為了說明信號的時間關(guān)系,需要定義時序單位。89C51的時序單位共有四個,從小到大依次是拍節(jié)、狀態(tài)、機(jī)器周期和指令周期。如圖4所示。1.4單片機(jī)的復(fù)位1.4.1 復(fù)位狀態(tài)復(fù)位是單片機(jī)的初始化操作,其主要功能是將程序計數(shù)器PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化外,當(dāng)程序運(yùn)行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,也須重新啟動單片機(jī),使其復(fù)位。單片機(jī)復(fù)位后,除P3P0的端口鎖存器被設(shè)置成FFH、堆棧指針SP設(shè)置成07H和串行口的SBUF無確定值外,其它各專用寄存器包括程序計數(shù)器PC均被設(shè)置成00H。片內(nèi)RAM不受復(fù)位的影響,上電后RAM中的內(nèi)容是隨機(jī)的。記住這些特殊功能寄存器的復(fù)位狀態(tài),對熟悉單片機(jī)操作,簡短應(yīng)用程序中的初始化部分是十分必要的。1.4.2 復(fù)位電路單片機(jī)的復(fù)位操作有上電自動復(fù)位和手動按鍵復(fù)位兩種方式。上電自動復(fù)位操作要求接通電源后自動實現(xiàn)復(fù)位操作。如圖1.5-1所示。圖6(a)所示為最簡單的復(fù)位電路。上電瞬間由于電容C上無儲能,其端電壓近似為零,RST獲得高電平,隨著電容器C的充電,RST引腳上的高電平將逐漸下降,當(dāng)RST引腳上的電壓小于某一數(shù)值后,單片機(jī)就脫離復(fù)位狀態(tài),進(jìn)入正常工作模式。只要高電平能保持復(fù)位所需要的時間(約兩個機(jī)器周期),單片機(jī)就能實現(xiàn)復(fù)位。相比于圖6(a),圖6(b)所示的電路只是增加了外接二極管VD和電阻R。其優(yōu)越性在于停電后,二極管VD給電容C提供了快速放電通路,保證再上電時RST為高電平,從而保證單片機(jī)可靠復(fù)位。正常工作時,二極管反偏,對電路沒影響。斷電后,VCC逐漸下降,當(dāng)VCC=0時,電容C通過VD迅速放電,恢復(fù)到無電量的初始狀態(tài),為下次上電復(fù)位做好準(zhǔn)備。(a) (b)圖6 上電自動復(fù)位電路手動按鍵復(fù)位要求在電源接通的條件下,用按鈕開關(guān)操作使單片機(jī)復(fù)位,如圖7所示。其工作原理為:復(fù)位鍵按下后,電容C通過R2放電,放電結(jié)束后,RST引腳的電位由R1和R2 分壓決定,由于R2R1,因此,RST引腳為高電平,單片機(jī)進(jìn)入復(fù)位狀態(tài),松開按鍵后,電容充電,RST上的電位降低,經(jīng)過一定的延時,單片機(jī)就脫離復(fù)位狀態(tài),進(jìn)入正常工作模式。R2的作用在于限流,避免按鍵按下的瞬間電容C放電產(chǎn)生火花,保護(hù)按鍵的觸點(diǎn)。圖7 手動按鍵復(fù)位電路系統(tǒng)上電運(yùn)行后,若需要復(fù)位,一般是通過手動復(fù)位來實現(xiàn)的。通常采用手動復(fù)位和上電自動復(fù)位結(jié)合。復(fù)位電路雖然簡單,但其作用十分重要。一個單片機(jī)系統(tǒng)能否正常運(yùn)行,首先要檢查是否能復(fù)位成功。初步檢查可用示波器探頭監(jiān)視RST引腳,按下復(fù)位鍵,觀察是否有足夠幅度的波形輸出(瞬時的),還可以通過改變復(fù)位電路阻容值的方法進(jìn)行檢測。2. 流水燈電路及程序設(shè)計2.1 電路原理圖設(shè)計1、實驗任務(wù)在 P1 口上接 8 個發(fā)光二極管,低電平有效,通過單片機(jī)控制實現(xiàn) 循環(huán)左移或右移。2、電路原理圖3.2電路程序設(shè)計3、程序設(shè)計(1) 順序程序?qū)崿F(xiàn)依次滅掉前一個燈同時點(diǎn)亮后一個燈,再延時一會,不斷循環(huán),就可以看到流水燈的效果了。流程圖:圖 4.5 流水燈順序程序流程圖程序代碼:/*/ / 流水燈左移-使用順序程序?qū)崿F(xiàn)/*/#include void delay1s(void)/延時 1 秒子程序unsigned char i,j,k; for(i=0;i4;i+) for(j=0;j100;j+) for(k=0;k250;k+);void main()P1=0xff;while(1)P1_0=0; delay1s(); P1_0=1; P1_1=0; delay1s(); P1_1=1; P1_2=0; delay1s(); P1_2=1; P1_3=0; delay1s(); P1_3=1; P1_4=0; delay1s();P1_4=1;P1_5=0; delay1s(); P1_5=1; P1_6=0; delay1s(); P1_6=1; P1_7=0; delay1s(); P1_7=1;(2) 移位實現(xiàn)P1 口的 8 個發(fā)光二極管(低電平有效)左移循環(huán)顯示時的數(shù)據(jù),如下表所示,可以看出只需要將有效數(shù)據(jù)左移一位就可以讓下一個燈亮。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0說明L8L7L6L5L4L3L2L111111110L1 亮11111101L2 亮11111011L3 亮11110111L4 亮11101111L5 亮11011111L6 亮10111111L7 亮01111111L8 亮對于高電平有效的發(fā)光二極管處理起來比較簡單,只需要讓P1=P11 就可以實現(xiàn)左移或右移,在 C51 沒有專用的環(huán)移位指令,并且不管左移還是右移,補(bǔ)充的數(shù)據(jù)都是 0,對于低電平有效的數(shù)據(jù)就不能單純的用一條移位指令完成了,不過可以通過邏輯運(yùn)算來實現(xiàn)自己需要的數(shù)據(jù),低電平有效的移位常見的有兩種處理方法,一種是或運(yùn)算,一種是取反,程序代碼如下:通過或運(yùn)算計算輸出數(shù)據(jù):temp=0xfe; /左移 for(cnt=0;cnt8;cnt+)a=temp(8-cnt); P1=a|b; delay1s();通過移位和取反計算輸出數(shù)據(jù):temp=0x01; /左移 delay1s(); for(cnt=1;cnt8;cnt+)temp=temp1;P1=temp;delay1s();流程圖:略 程序代碼:/*/ / 流水燈左移右移-使用移位實現(xiàn)(低電平有效) /*/#include unsigned char cnt;/亮燈選擇變量unsigned char temp; /臨時變量unsigned char a,b;void delay1s(void)/延時 1 秒子程序unsigned char i,j,k; for(i=0;i4;i+) for(j=0;j100;j+) for(k=0;k250;k+);void main(void)while(1)/低電平有效temp=0xfe; /左移 for(cnt=0;cnt8;cnt+)a=temp(8-cnt); P1=a|b; delay1s();temp=0x7f; /右移 for(cnt=1;cntcnt; b=temp(8-cnt); P1=a|b; delay1s();(3) 查表實現(xiàn)所謂的查表法是將一些特定的數(shù)據(jù),即 LED 展示的變化組合數(shù)據(jù)事先存在程序存儲器中,再以指令到程序存儲器中取出分別的樣 本數(shù)據(jù)輸出到 LED 輸出端口,便完成流水燈展示的效果。由于展示 的樣本數(shù)據(jù),可以隨意組合,因此用查表法來做流水燈控制的變化 較多,展示效果較佳。在 C 語言中,由于 C 語言沒有像匯編那樣有 專門的移位指令,所以只能每一個顯示花樣用一個 8 位數(shù)據(jù)來控制P1 口八個管腳的每個腳的高低電平了。 流程圖:略 程序代碼:/*/流水燈左移右移-使用查表方式實現(xiàn)/*/ #include unsigned char code table=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f, 0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f, 0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe, 0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe, 0xff,0x00,0xff,0x00, 0x11; /低電平有效/*unsigned char code table=0x01,0x02,0x04,0x08, 0x10,0x20,0x40,0x80, 0x01,0x02,0x04,0x08, 0x10,0x20,0x40,0x80, 0x80,0x40,0x20,0x10, 0x08,0x04,0x02,0x01, 0x80,0x40,0x20,0x10, 0x08,0x04,0x02,0x01, 0x00,0xff,0x00,0xff,0x11; /高電平有效*/unsigned char i; void delay(void)unsigned char m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-);void main(void)while(1)if(tablei!=0x11)P1=tablei;i+;delay();elsei=0;5、仿真結(jié)果圖 4.6 流水燈仿真結(jié)果6、其他流水燈:兩個兩個移位程序代碼:/*/流水燈左移兩位右移兩位-使用移位實現(xiàn)/*/#include unsigned char cnt;unsigned char temp;unsigned char a,b;void delay1s(void)/延時 1 秒子程序unsigned char i,j,k;for(i=0;i4;i+)for(j=0;j100;j+)for(k=0;k250;k+);void main(void)while(1)/高電平有效temp=0xfc;for(cnt=0;cnt4;cnt+)a=temp(8-(2*cnt); P1=a|b;delay1s();temp=0x3f;for(cnt=1;cnt(2*cnt); b=temp(8-(2*cnt); P1=a|b;delay1s();閃爍加移位程序代碼:/*/流水燈閃爍左移右移-使用移位實現(xiàn)/*/ #include unsigned char cnt; unsigned char temp; unsigned char a,b;void delay1s(void)/延時 1 秒子程序unsigned char i,j,k; for(i=0;i4;i+) for(j=0;j100;j+) for(k=0;k250;k+);void main(void)while(1)/高電平有效temp=0xfe;for(cnt=0;cnt8;cnt+)a=temp(8-cnt); P1=a|b; delay1s(); P1=0xff; delay1s(); P1=a|b; delay1s(); P1=0xff; delay1s(); P1=a|b; delay1s();temp=0x7f;for(cnt=1;cntcnt; b=temp(8-cnt); P1=a|b; delay1s(); P1=0xff; delay1s(); P1=a|b; delay1s(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職場素養(yǎng)與職業(yè)道德試題及答案
- 2025年自考行政管理深入題目及答案
- 主管護(hù)師考試技巧與試題及答案
- 臨床藥學(xué)在病案分析中的應(yīng)用試題及答案
- 2025年衛(wèi)生資格考試各類資源試題及答案
- 行政管理實踐案例分析試題及答案
- 深入淺出的衛(wèi)生資格考試試題及答案
- 新疆昌吉州第二中學(xué)高一上學(xué)期期末考試歷史試卷
- 自考行政管理全覆蓋的試題與答案輸出
- 導(dǎo)醫(yī)工作內(nèi)容培訓(xùn)
- 水質(zhì)監(jiān)測服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 內(nèi)容質(zhì)量評價體系
- 2025年中考作文試題預(yù)測及范文
- 2023年高考真題-地理(河北卷) 含答案
- 2024年貴州六盤水市中考道德與法治試卷真題(含答案詳解)
- DB50-T 1649-2024 餐飲業(yè)菜品信息描述規(guī)范
- GB/T 17775-2024旅游景區(qū)質(zhì)量等級劃分
- 2024-2030年中國凍干貓糧行業(yè)供需現(xiàn)狀及未來投資效益盈利性研究報告
- 2024年東南亞數(shù)字辦公場所軟件市場深度研究及預(yù)測報告
- 2024年4月自考00055企業(yè)會計學(xué)試題及答案
- 空調(diào)維修規(guī)章制度
評論
0/150
提交評論