80C51可控流水燈單片機(jī)課程設(shè)計(jì)報(bào)告_第1頁
80C51可控流水燈單片機(jī)課程設(shè)計(jì)報(bào)告_第2頁
80C51可控流水燈單片機(jī)課程設(shè)計(jì)報(bào)告_第3頁
80C51可控流水燈單片機(jī)課程設(shè)計(jì)報(bào)告_第4頁
80C51可控流水燈單片機(jī)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、80c51單片機(jī)流水燈實(shí)訓(xùn)和 調(diào)試報(bào)告 班級(jí): 姓名: 學(xué)號(hào):?jiǎn)纹瑱C(jī)及應(yīng)用課程設(shè)計(jì):可控流水燈設(shè)計(jì)1 目的單片機(jī)課程設(shè)計(jì)主要是為了讓我們?cè)鲞M(jìn)對(duì)80c51單片機(jī)電路的感性認(rèn)識(shí),加深對(duì)理論方面的理解。了解軟硬件的有關(guān)知識(shí),并掌握軟硬件設(shè)計(jì)過程、方法及實(shí)現(xiàn),為以后設(shè)計(jì)和實(shí)現(xiàn)應(yīng)用系統(tǒng)打下良好基礎(chǔ)。另外,通過簡(jiǎn)單課題的設(shè)計(jì)練習(xí),使我們了解必須提交的各項(xiàng)工程文件,達(dá)到鞏固、充實(shí)和綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的目的。2.2 課題的意義這次單片機(jī)課程設(shè)計(jì)是為了通過對(duì)流水燈控制的設(shè)計(jì)加強(qiáng)學(xué)生團(tuán)隊(duì)配合的能力和創(chuàng)造力;綜合運(yùn)用專業(yè)及基礎(chǔ)知識(shí),解決實(shí)際工程技術(shù)問題的能力。能夠讓學(xué)生深入真是的體會(huì)到所學(xué)的理論知識(shí)和實(shí)踐

2、相結(jié)合的過程。找出自身的不足并加以改正。2.3 預(yù)期的目標(biāo)對(duì)8個(gè)led燈設(shè)計(jì)5種流水燈顯示方式,用一個(gè)按鍵進(jìn)行方式選擇,并用一個(gè)數(shù)碼管顯示方式編號(hào);用兩個(gè)鍵來控制流水燈流動(dòng)的速度。2.4 面對(duì)的問題這次課程設(shè)計(jì)是通過80c51位單片機(jī)實(shí)現(xiàn)。但面對(duì)的問題卻是兩方面的:一個(gè)是軟件的設(shè)計(jì),也就是實(shí)現(xiàn)流水燈控制功能的程序編輯;另一個(gè)是硬件的設(shè)計(jì),需要我們自己連接、焊接電路板。而更為嚴(yán)峻的就是設(shè)計(jì)的最后還要將軟硬件相結(jié)合。首先我們需要通過protel將設(shè)計(jì)的實(shí)物的電路圖畫出來,再根據(jù)電路圖連接實(shí)物電路。2.5 課題的技術(shù)led燈的顯示方式、模式切換按鈕的控制、亮燈速度的按鍵控制等技術(shù)。3 系統(tǒng)分析3.1

3、 涉及的基礎(chǔ)知識(shí)電路焊接:制造電子產(chǎn)品的重要手段。80c51單片機(jī)指令系統(tǒng):規(guī)定80c51單片機(jī)內(nèi)操作的語句或命令。led數(shù)碼管的顯示:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分。3.2 80c51單片機(jī)引腳圖及引腳功能介紹本次實(shí)習(xí)的目的在于加深80c51單片機(jī)的理解,首先來簡(jiǎn)單認(rèn)識(shí)一下,它的引腳如圖3-1所示:圖3.1 80c51的引腳圖單片機(jī)的39個(gè)引腳大致可分為4類:電源、時(shí)鐘、控制和i/o引腳。1.電源:(1)vcc:芯片電源,接+5v;(2)vss:接地端;2.時(shí)鐘:xtal1、xtal2 :晶體振蕩電路反相輸入端和輸出端。3.控制線:控制線共有4根,(1)ale/prog:地址鎖存允許/

4、片內(nèi)eprom編程脈沖ale功能:用來鎖存p0口送出的低8位地址prog功能:片內(nèi)有eprom的芯片,在eprom編程期間,此引腳輸入編程脈沖。(2) psen:外rom讀選通信號(hào)。(3)rst/vpd:復(fù)位/備用電源。rst(reset)功能:復(fù)位信號(hào)輸入端。vpd功能:在vcc掉電情況下,接備用電源。(4)ea/vpp:內(nèi)外rom選擇/片內(nèi)eprom編程電源。ea功能:內(nèi)外rom選擇端。vpp功能:片內(nèi)有eprom的芯片,在eprom編程期間,施加編程電源vpp。4.i/o線80c51共有4個(gè)8位并行i/o端口:p0、p1、p2、p3口,共32個(gè)引腳。p3口還具有第二功能,用于特殊信號(hào)輸入

5、輸出和控制信號(hào)(屬控制總線)。3.3 解決問題的基本思路因?yàn)檫x定用循環(huán)移位法來實(shí)現(xiàn)亮燈程序的,所以在一種設(shè)計(jì)好一種亮燈方式的前提下編程實(shí)現(xiàn)一個(gè)循環(huán)結(jié)構(gòu)體,分別來實(shí)現(xiàn)五種不同的亮燈方式。另外再編一個(gè)實(shí)現(xiàn)延時(shí)控制的調(diào)用程序,來提供亮燈速度的控制。3.4 總體方案在做本次課程設(shè)計(jì)之前將小組內(nèi)人員分為兩小組:一組分負(fù)責(zé)硬件設(shè)計(jì),另一組負(fù)責(zé)軟件編程。硬件小組負(fù)責(zé)實(shí)物的連接和焊接,并進(jìn)行硬件測(cè)試;軟件小組負(fù)責(zé)實(shí)現(xiàn)流水燈的各部分程序設(shè)計(jì),并進(jìn)行軟件的仿真測(cè)試。最后將完成的軟硬件相結(jié)合,從而達(dá)到實(shí)現(xiàn)課程設(shè)計(jì)的效果。4 系統(tǒng)設(shè)計(jì)4.1 硬件設(shè)計(jì)按照單片機(jī)系統(tǒng)擴(kuò)展與系統(tǒng)配置狀況,單片機(jī)應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小

6、功耗系統(tǒng)及典型系統(tǒng)等。80c51單片機(jī)是本次課程設(shè)計(jì)運(yùn)用的主要原件。流水燈控制設(shè)計(jì)是用一個(gè)帶有八個(gè)發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟件組成的單個(gè)單片機(jī)。4.2 軟件設(shè)計(jì)單片機(jī)的應(yīng)用系統(tǒng)由硬件和軟件組成,在硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環(huán)點(diǎn)亮的現(xiàn)象,我們還需要編寫程序控制單片機(jī)管腳電平的高低變化,來實(shí)現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機(jī)應(yīng)用系統(tǒng)中的一個(gè)重要的組成部分,也是本次課程設(shè)計(jì)的重點(diǎn)和難點(diǎn)。我們編程實(shí)現(xiàn)流水燈的方法是循環(huán)移位法,下面我們就來簡(jiǎn)述一下循環(huán)移位法的工作原理。循環(huán)移位法是采用循環(huán)程序結(jié)構(gòu)進(jìn)行編程。我們?cè)诔绦蛞?/p>

7、開始就給p1口送一個(gè)數(shù),這個(gè)數(shù)本身就讓p1.0先低,其他位為高,然后延時(shí)一段時(shí)間,再讓這個(gè)數(shù)據(jù)向高位移動(dòng),然后再輸出至p1口,這樣就實(shí)現(xiàn)“流水”效果了。另外,由于80c51系列單片機(jī)的指令中只有對(duì)累加器acc中數(shù)據(jù)左移或右移的指令,因此實(shí)際編程中我們應(yīng)把需移動(dòng)的數(shù)據(jù)先放到acc中,讓其移動(dòng),然后將acc移動(dòng)后的數(shù)據(jù)再轉(zhuǎn)送到p1口,這樣也可以實(shí)現(xiàn)“流水”效果。4.3 元件清單表4-1 元件清單名稱型號(hào)數(shù)量電阻2209電容1034開關(guān)1芯片1單片機(jī)80c511pc機(jī)串行口led燈8電源指示燈1二極管2三極管4數(shù)碼顯示器1按鍵44.4 硬件原理圖圖 4-1硬件原理圖4.5 硬件焊接圖圖 4-2硬件焊

8、接圖4.6 設(shè)計(jì)主要功能打開電路開關(guān),按下第一個(gè)模式控制鍵,8個(gè)led數(shù)碼管會(huì)從右向左一個(gè)接著一個(gè)亮燈,led顯示器會(huì)顯示數(shù)字“1”來表示當(dāng)前的亮燈方式是模式1。在8個(gè)led數(shù)碼管全部亮后再次按下第一個(gè)模式控制鍵,8個(gè)led數(shù)碼管會(huì)從又向左2個(gè)一組的一次亮燈,同時(shí)led顯示器會(huì)顯示數(shù)字“2”來表示當(dāng)前的亮燈方式是模式2。以此類推,一共有5種顯示模式。而第2、3個(gè)按鍵分別控制亮燈速度的快慢。5 代碼編寫org 00h ;設(shè)置主程序開始地址clr p3.4 ;這里可以使小喇叭發(fā)出嗒、嗒聲 delay: mov r6, #255 ;延時(shí)0.1s d1: mov r7,#255 ;延時(shí)一段時(shí)間 djn

9、z r7, $ ;原地等待 djnz r6, d1 retenddelay1: mov r6, #150 ;延時(shí)0.05s d2: mov r7,#150 djnz r6, d2 retendstart: mov a,p1.4 ;選中p1.4 數(shù)碼管使能 jz ttt add r5,acjne r5,#3,c1ajmp m1c1:cjne r5,#3,c1ajmp m3c2: jnc c2c3:ttt:inc am1: mov p0,#7eh ;把7eh送p0口,數(shù)碼管顯示1lcall delay ;數(shù)碼管亮后的緩沖mov a, #11111110b ;賦值mov r4,a ;保存所賦的值lo

10、op: mov p2, a ;值給led燈acall v ;調(diào)用延時(shí)子程序mov a,r4 ;保存的值還給arl a ;左移 ajmp loop ;不為零,重復(fù)把值給led燈retm2:mov p0,#0a2h ;數(shù)碼管顯示2lcall delayagain: mov r3, #8hloop1: mov a, #fehmov r4,ax1: mov p2, aacall v ;調(diào)用延時(shí)子程序mov a,r4rl adjnz r3, x1mov r3, #8loop2: mov a, #7fhx2: mov p2, aacall v ;調(diào)用延時(shí)子程序mov a,r4rr adjnz r3, x2

11、ajmp againretm3:mov p0, #62h ;數(shù)碼管顯示3lcall delay mov r1, #05houtl: mov dptr, #tablemov r2,#04hmov a, 00hinl: mov r0, a movc a, a+dptr mov p2, aacall v ;調(diào)用延時(shí)子程序mov a, r0inc adjnz r2, inldjnz r1, outltable: db 7eh, 0bdh, 0dbh, 0e7hretm4:mov p0,#74h ;數(shù)碼管顯示4lcall delaymov a, #01111111bmov r4,a loop: mov

12、p2, aacall v ;調(diào)用延時(shí)子程序mov a,r4rl a ajmp loop retm5:mov p0,#61h ;數(shù)碼管顯示5;lcall delay mov r1, #05houtl: mov dptr, #tablemov r2,#04hmov a, 00hinl: mov r0, a movc a, a+dptr mov p2, aacall v ;調(diào)用延時(shí)子程序mov a, r0inc adjnz r2, inldjnz r1, outltable: db 0e7h , 0dbh , 0bdh ,7eh ret;延時(shí)選擇程序v: delay mov a, p1.5 ;p1.

13、5低電平時(shí)延時(shí)長(zhǎng),流水燈速度慢 jz delay mov a, p1.6 ;p1.6低電平時(shí)延時(shí)短,流水燈速度快 jz delay1 ret ;子程序返回end ;程序結(jié)束6 程序調(diào)試本程序運(yùn)行過程中沒有錯(cuò)誤。但對(duì)于雙鍵控制流水燈亮燈速度的功能并沒有得到實(shí)現(xiàn)。將電路板用數(shù)據(jù)線連接,打開開關(guān),按鈕用來切換模式,一共有五種流動(dòng)方式,每按一次按鈕就會(huì)有一種方式,并在led顯示器上面顯示出該模式的序號(hào)。單片機(jī)的應(yīng)用系統(tǒng)由硬件和軟件組成,上述硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環(huán)點(diǎn)亮的現(xiàn)象,我們還需要告訴單片機(jī)怎么來進(jìn)行工作,即編寫程序控制單片機(jī)管腳電平的高低變化,來實(shí)現(xiàn)發(fā)光二極管的一亮一

14、滅。軟件編程是單片機(jī)應(yīng)用系統(tǒng)中的一個(gè)重要的組成部分,是單片機(jī)學(xué)習(xí)的重點(diǎn)和難點(diǎn)。下面我們以最簡(jiǎn)單的流水燈控制功能即實(shí)現(xiàn)8個(gè)led燈的循環(huán)點(diǎn)亮,來介紹實(shí)現(xiàn)流水燈控制的幾種軟件編程方法。位控法這是一種比較笨但又最易理解的方法,采用順序程序結(jié)構(gòu),用位指令控制p1口的每一個(gè)位輸出高低電平,從而來控制相應(yīng)led燈的亮滅。程序如下:org 0000h ;單片機(jī)上電后從0000h地址執(zhí)行ajmp start ;跳轉(zhuǎn)到主程序存放地址處org 0030h ;設(shè)置主程序開始地址start:mov sp,#60h ;設(shè)置堆棧起始地址為60hclr p1.0 ;p1.0輸出低電平,使led1點(diǎn)亮acalldelay ;

15、調(diào)用延時(shí)子程序setbp1.0 ;p1.0輸出高電平,使led1熄滅clr p1.1 ;p1.1輸出低電平,使led2點(diǎn)亮acalldelay ;調(diào)用延時(shí)子程序setbp1.1 ;p1.1輸出高電平,使led2熄滅clr p1.2 ;p1.2輸出低電平,使led3點(diǎn)亮acalldelay ;調(diào)用延時(shí)子程序setbp1.2 ;p1.2輸出高電平,使led3熄滅clr p1.3 ;p1.3輸出低電平,使led4點(diǎn)亮acalldelay ;調(diào)用延時(shí)子程序setbp1.3 ;p1.3輸出高電平,使led4熄滅clr p1.4 ;p1.4輸出低電平,使led5點(diǎn)亮acalldelay ;調(diào)用延時(shí)子程序setbp1.4 ;p1.4輸出高電平,使led5熄滅clr p1.5 ;p1.5輸出低電平,使led6點(diǎn)亮acalldelay ;調(diào)用延時(shí)子程序setbp1.5 ;p1.5輸出高電平,使led6熄滅clr p1.6 ;p1.6輸出低電平,使led7點(diǎn)亮acalldelay ;調(diào)用延時(shí)子程序s

溫馨提示

  • 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)論