移動(dòng)式廣告牌的設(shè)計(jì)_第1頁(yè)
移動(dòng)式廣告牌的設(shè)計(jì)_第2頁(yè)
移動(dòng)式廣告牌的設(shè)計(jì)_第3頁(yè)
移動(dòng)式廣告牌的設(shè)計(jì)_第4頁(yè)
移動(dòng)式廣告牌的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1.概 述此次我們進(jìn)行的課程設(shè)計(jì)的題目是移動(dòng)式廣告牌的設(shè)計(jì)。這個(gè)設(shè)計(jì)就大的方面可以分成兩個(gè)部分:硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件設(shè)計(jì):在硬件設(shè)計(jì)里,主要牽扯到芯片的應(yīng)用問(wèn)題。此次設(shè)計(jì)主要的芯片有擴(kuò)展8031,74ls373,8279,74ls240,74ls273,8255等芯片。設(shè)計(jì)要求用8255pc口接單色燈,pb口接彩色燈,pa口接開(kāi)關(guān)控制系統(tǒng)的啟動(dòng)、停止和復(fù)位。軟件設(shè)計(jì):在軟件設(shè)計(jì)里主要又三個(gè)大的子程序和四個(gè)小的子程序,三個(gè)大的子程序?yàn)椋簭V告語(yǔ)顯示程序、燈變化程序和中斷程序。四個(gè)小的子程序分別為啟動(dòng)、停止、復(fù)位和延時(shí)程序。廣告語(yǔ)顯示程序要求字符從右往左一次移入,相間1秒。燈變化程序要求彩燈按逆

2、時(shí)針依次點(diǎn)亮紅黃綠白各0.3秒,單色燈變化自定。啟動(dòng)、停止和復(fù)位程序要求啟動(dòng)后先顯示0.5秒的黃燈,然后彩色燈、單色燈再按自定義方式變化,系統(tǒng)停止后立即黑屏、熄燈。中斷程序要求影響燈變。延時(shí)程序要求獲取燈飾變化所需要的時(shí)間。2.控制系統(tǒng)硬件設(shè)計(jì)在此次課程設(shè)計(jì)里,需要擴(kuò)展8031,74ls373,8279,74ls240,74ls273,8255等芯片。設(shè)計(jì)要求用8255pc口接單色燈,pb口接彩色燈,pa口接開(kāi)關(guān)控制系統(tǒng)的啟動(dòng)、停止和復(fù)位。擴(kuò)張外部影響中斷。2.1愛(ài)迪克試驗(yàn)機(jī)簡(jiǎn)介艾迪克單片機(jī)試驗(yàn)開(kāi)發(fā)系統(tǒng)aedk5196et,是由試驗(yàn)機(jī)結(jié)合仿真技術(shù)開(kāi)發(fā)而成。支持mcs-51系列和mcs-96系列

3、微控制的試驗(yàn)與仿真開(kāi)發(fā)。該試驗(yàn)系統(tǒng)自帶一個(gè)21按鍵鍵盤(pán)、八位八段數(shù)碼管顯示器、8031和8096(80c196)微控制器、rs-232接口,可以連接pc機(jī),實(shí)現(xiàn)穿行監(jiān)控運(yùn)行,也無(wú)需其他設(shè)備而獨(dú)立運(yùn)行。2.2顯示器接口芯片8279簡(jiǎn)介8279是鍵盤(pán)、顯示器管理專(zhuān)用接口芯片,可以對(duì)顯示器和鍵盤(pán)進(jìn)行自動(dòng)掃描。這樣可以大大的減少cpu的任務(wù),節(jié)省系統(tǒng)資源。本系統(tǒng)采用的intel公司生產(chǎn)的8279。共有40個(gè)引腳,d0d7為數(shù)據(jù)總線,與單片機(jī)的p0口連接,用于數(shù)據(jù)、命令等的傳送。顯示器的控制有字形控制和字位控制兩種。其中顯示字符的字形碼從outa3outa0和0utb3outb0輸出,與顯示器的斷選a、

4、b、c、d、e、f、g、dp連接,形成各種字符;顯示器的位選信號(hào)由掃描輸出線sl3sl0經(jīng)外部譯碼獲得。cs和a0構(gòu)成8279的端口地址,cs和a0構(gòu)成8279的端口地址,接單片機(jī)的地址線,其中a0接單片機(jī)的a1、cs接地,當(dāng)a0=0、cs=0的時(shí)候,cpu將訪問(wèn)8279的數(shù)據(jù)口,當(dāng)a0=1、cs=0的時(shí)候,cpu將訪問(wèn)8279的控制口,因此,8279的數(shù)據(jù)口地址為0ff80h,命令/狀態(tài)口地址為0ff82h。用8279管理顯示器當(dāng)顯示輸出時(shí),它有128位顯示ram,其內(nèi)容可以用8段發(fā)光二極管組合顯示。8279芯片管腳分布如圖3-1所示:4039383736353433323130292827

5、2625242322211234567891011121314151617181920vccrl1rl0cntl/stbshiftsl3sl2sl1sl0outb0outb1outb2outb3outa0outa1outa2outa3bdcsa0rl2rl3clkirqrl4rl5rl6rl7resetrdwrd0d1d2d3d4d5d6d7gnd圖3-1 8279芯片管腳分布圖2.3芯片8255簡(jiǎn)介8255是通用可編程并行接口芯片,為40腳雙列直插式封裝型,片內(nèi)又3個(gè)8為并行i/o口,分別成為pa口(pa7-pa0),pb(pb7-pb0),pc(pc7-pc0),其中pc口又分為高4為口(

6、pc4-pc7)和低4為口(pc3-pc0),通過(guò)編程可設(shè)三種工作模式。其引腳排列如圖3.2所示。數(shù)據(jù)端a口,b口,c口均為8為,可編程選擇為輸入或輸出。端口c也可編程為兩個(gè)4位的端口來(lái)用,在具體結(jié)構(gòu)上三者略又區(qū)別:a口輸入/輸出均有鎖存器,而b口和c口具有輸出鎖存器,輸入無(wú)鎖存器,又緩沖器。數(shù)據(jù)總線緩沖器用于和單片機(jī)的數(shù)據(jù)總線(p0)連接,傳送數(shù)據(jù)和控制命令。內(nèi)部控制電路分為a組和b組,a組控制a口和c口的高4位,b組控制b口和c口的低四位,控制電路的工作受控于控制寄存器。8279芯片管腳分布如圖3-2所示。403938373635343332313029282726252423222112

7、34567891011121314151617181920pa4pa5pa6pa7wrresetd0d1d2d3d4d5d6d7vccpb7pb6pb5pb4pb3pa3pa2pa1pa0rdcsgnda1a0pc7pc6pc5pc4pc0pc1pc2pc3pb0pb1pb2圖3-2 8255芯片管腳分布圖8255片內(nèi)又1個(gè)8位控制寄存器,由寫(xiě)入的控制字決定8255工作方式,其中d7位表示該控制字是設(shè)定工作模式(d7=1)還是設(shè)定c口任何一位置1置0(d7=0).設(shè)定工作模式的控制字如圖3-3所示,c口置復(fù)位的控制在格式如圖3-4所示:d7d6d5d4d3d2d1d0pc0-pc3設(shè)置位,控制

8、字標(biāo)志位,1=方式字 1=輸入;0=輸出 a組設(shè)置位,00=方式0; pb口置置位,1=輸入;0=輸出01=方式1;1x=方式2 b組設(shè)置位,0=方式0;1=方式1pa口設(shè)置位,1=輸入,0=輸出 pc4-pc7設(shè)置位,1=輸出;0=輸入圖3-3 8255控制字格式d7d6d5d4d3d2d1d0 pc3設(shè)狀態(tài)置位,1=輸入;0=輸出 不用位 pc口引腳編程:pc0=000;pc1=001 控制字標(biāo)志位 pc2=002; pc3=003; pc4=004 0=pc方式字 pc5=005; pc6=006; pc7=007 圖3-4 8255pc口控制字格式2.4燈飾變化程序硬件設(shè)計(jì)綜合分析設(shè)計(jì)

9、任務(wù)書(shū),燈變化程序硬件接線圖如圖3-5所示:圖3-5 燈變化程序硬件接線圖3.控制系統(tǒng)軟件設(shè)計(jì)此次課程設(shè)計(jì)在軟件設(shè)計(jì)部分,主要又三個(gè)大的子程序和四個(gè)小的子程序,三個(gè)大的子程序?yàn)椋簭V告語(yǔ)顯示程序、燈變化程序和中斷程序。四個(gè)小的子程序分別為啟動(dòng)、停止、復(fù)位和延時(shí)程序。廣告語(yǔ)顯示程序、啟動(dòng)、復(fù)位和停止程序又同組其他同學(xué)負(fù)責(zé)。其余子程序設(shè)計(jì)如下:3.1單色燈變化子程序設(shè)計(jì)單色燈在此次設(shè)計(jì)里沒(méi)有嚴(yán)格的要求,所有顯示方式都自定,這就給了自己一個(gè)更廣闊的施展空間??刂瓶跒?255的pc口,地址為8404。單色燈的設(shè)計(jì)主要有兩種方式,分別為邏輯是設(shè)計(jì)和數(shù)表式設(shè)計(jì),下面一一做以介紹:3.1.1單色燈的排列:根據(jù)

10、系統(tǒng)的硬件設(shè)計(jì),單色燈的排列如圖3-6所示:dl1 dl2 dl3 dl4 dl5 dl6 dl7 dl8 圖3-6 單色燈的排列3.1.2單色燈子程序設(shè)計(jì)一(邏輯式設(shè)計(jì))在此次課程設(shè)計(jì)中對(duì)單色燈的要求不是很?chē)?yán)格,基本都是自定義。在系統(tǒng)總程序的初始化中對(duì)單色燈的控制單元31h復(fù)初值為aah,也就是說(shuō)在程序剛開(kāi)始執(zhí)行時(shí),單色燈的顯示為:1、3、5和7號(hào)燈亮,其他的燈滅。設(shè)計(jì)要求下一步亮的燈滅,滅的燈亮,故需用邏輯設(shè)計(jì)的話需用到求反語(yǔ)句(cpl)。單色燈顯示的子程序如下:dsd:movdptr,#8404h ;指向8255的pc口mov a,31h ;將31h的地址給a( mov 31h,#55h

11、)movx dptr,a cpla ;對(duì)a取反mov31h,a ret顯示效果如圖3-7所示:圖3-7 單色燈的顯示效果圖3.1.4單色燈子程序設(shè)計(jì)二(調(diào)用數(shù)表式設(shè)計(jì))這是此次課程設(shè)計(jì)關(guān)于單色燈的一個(gè)延展。單色燈的設(shè)計(jì)除了邏輯式,還又調(diào)用數(shù)表式的設(shè)計(jì)。調(diào)用數(shù)表就是把把個(gè)單色燈按順序排列,寫(xiě)出一個(gè)循環(huán)的顯示控制字。這種設(shè)計(jì)起始比前一種設(shè)計(jì)方式麻煩,而且容易出錯(cuò),但原理很簡(jiǎn)單,具體的子程序如下:dsd:movdptr,#8404h ;指向8255的pc口mova,r7 movdptr,#tab ;調(diào)用數(shù)表tabmovca,a+dptr mov31h,a ret就不同的顯示方式,其數(shù)表都是不同的,現(xiàn)

12、列幾種顯示方式和相對(duì)應(yīng)的數(shù)表,以供參考。具體如下:一、數(shù)表設(shè)計(jì)1: 顯示方式:從兩端開(kāi)始依次向中間亮燈,到中間相遇時(shí)再想兩邊返回,每次兩兩盞燈,其他的燈滅。數(shù)表:tab: db 81h,42h,24h,18h,24h,42h,81h二、數(shù)表設(shè)計(jì)2: 顯示方式:從左至由依次亮燈,每次亮一盞燈,其他的燈滅。數(shù)表:tab: db 80h,60h,40h,10h,08h,06h,04h,01h三、數(shù)表設(shè)計(jì)3: 顯示方式:第一次亮ld1,第二次亮ld1和ld2,第三次亮ld1、ld2和ld3,依此類(lèi)推,直到全亮再返回。數(shù)表:tab: db 80h,0b0h,0e0h,0f0h,0f8h,0fbh,0fe

13、h,0ffh3.2彩色燈變化子程序設(shè)計(jì)彩色燈在此次課程設(shè)計(jì)里要求較復(fù)雜,彩色燈的控制口為8255芯片的pb口,地址為8402.要求啟動(dòng)后先顯示0.5秒的黃燈,接著彩燈按逆時(shí)針依次點(diǎn)亮紅黃綠白各0.3秒。顯而易見(jiàn),后部分要求是彩色燈的循環(huán)程序,如同單色燈的設(shè)計(jì)一樣,在彩色燈的設(shè)計(jì)中也用到了邏輯式設(shè)計(jì)和數(shù)表式設(shè)計(jì)兩種設(shè)計(jì)方式。3.2.1彩色燈的排列如下:根據(jù)系統(tǒng)的硬件設(shè)計(jì),合理利用艾迪克單片機(jī)試驗(yàn)開(kāi)發(fā)系統(tǒng)aedk5196et的試驗(yàn)平臺(tái),彩色燈的排列如圖3-8所示:hl1hl3hl4hl2圖3-8 彩色燈的排列圖3.2.2彩色燈顏色的控制信號(hào):在彩色燈的控制設(shè)計(jì)中,彩色燈燈色的控制是個(gè)很重要的環(huán)節(jié)。

14、規(guī)定0為亮1為滅,先列個(gè)燈色的控制信號(hào)表3-1所示:表3-1 彩色燈燈色的控制信號(hào)信號(hào)紅綠黃白dgi1001sri01013.2.3彩色燈的控制字如下:在彩燈的設(shè)計(jì)種,彩色燈的控制字是所有編程的基礎(chǔ)。根據(jù)系統(tǒng)硬件的設(shè)計(jì)和彩色燈的空間排列,現(xiàn)編制彩色燈的控制字如表3-2所示,以供后續(xù)設(shè)計(jì)的需要。表3-2 彩色燈控制字表彩色燈運(yùn)行狀態(tài)hl1hl2hl4hl3控制字dr1dg1dr2dg2dr4dg4dr3dg3狀態(tài)01紅2黃3綠4白010010114bh狀態(tài)11白2紅3黃4綠11010010d2h狀態(tài)21綠2白3紅4黃10110100b4h狀態(tài)31、4紅2、3綠0110011066h狀態(tài)41、4綠

15、2、3紅1001100199h狀態(tài)51、4黃2、3白0011001133h狀態(tài)61、4白2、3黃11001100cch3.2.4彩色燈子程序設(shè)計(jì)一(邏輯式設(shè)計(jì))此次課程設(shè)計(jì)要求彩燈按逆時(shí)針依次點(diǎn)亮紅黃綠白各0.3秒。這就需要對(duì)彩色燈在程序初始化里定義30h的值為4bh,根據(jù)表3-2分析可得,這種循環(huán)關(guān)系是將彩色燈的控制字左移兩位,及用到了左移指令rl.另外還需調(diào)用延時(shí)程序,對(duì)r2給立即數(shù)3,及滿足了延時(shí)0.3秒的要求。具體的子程序如下:csd:movdptr,#8402h ;指向8255的pc口mova,30hmovxdptr,arla ;左移rlamov30h,amovr2,#3 ;給r2賦

16、值lcalldelay ;調(diào)用延時(shí)子程序ret ;返回顯示效果如圖3-8所示: hl1hl3hl4hl2 hl1hl3hl4hl2 hl1hl3hl4hl2 hl1hl3hl4hl2hl1hl3hl4hl2圖3-8 彩色燈的顯示效果圖3.2.5彩色燈子程序設(shè)計(jì)二(調(diào)用數(shù)表式設(shè)計(jì))如同單色燈的設(shè)計(jì),彩色燈的設(shè)計(jì)同樣可以用調(diào)用數(shù)表的方式設(shè)計(jì)。這種設(shè)計(jì)方式的弊端是彩色燈控制字的計(jì)算比較麻煩而且容易出錯(cuò),優(yōu)點(diǎn)在于設(shè)計(jì)的原理簡(jiǎn)單,容易接受。在燈顯示效果較復(fù)雜的設(shè)計(jì)里用此方法比較簡(jiǎn)便。具體的設(shè)計(jì)子程序如下:csd:movdptr,#8402h ;指向8255的pc口movr7,#0 mova,r7movd

17、ptr,#tab ;調(diào)用數(shù)表movca,a+dptrmov30h,amovr2,#3 ;給r2賦值lcalldelay ;調(diào)用延時(shí)子程序ret ;返回tab: db 66h,99h,33h,0cch,33h,99h,66h顯示效果如圖3-9所示:hl1hl3hl4hl2hl1hl3hl4hl2hl1hl3hl4hl2 hl1hl3hl4hl2hl1hl3hl4hl2hl1hl3hl4hl2圖3-9 彩色燈的顯示效果圖3.3 8279初始化子程序設(shè)計(jì)8279作為顯示器接口芯片,在整個(gè)系統(tǒng)中的作用非常的重要,8279的初始化也極為重要。在此次課程設(shè)計(jì)里對(duì)8279的初始化,主要用到了三部分:置827

18、9的工作方式字,置鍵盤(pán)掃描速率字,置清楚led顯示字。故需在系統(tǒng)程序的初始化里對(duì)這三部分初始化。依次為10h,2fh,c1h。為了顯示的需要,需要調(diào)用延時(shí)程序。具體子程序設(shè)計(jì)如下:init8279:movdptr,#z8279mova,#ledmod;置8279工作方式字movx dptr,amova,#ledfeq;置鍵盤(pán)掃描速率字movx dptr,amov a,#ledcls;置清除led顯示字movx dptr,amov r2,#1lcall delayret3.4 8255初始化子程序設(shè)計(jì)如同8279的初始化一樣,8255的初始化同樣重要。需對(duì)8255置工作方式字,不同于8279初始

19、化的是,因?yàn)樵O(shè)計(jì)要求8255的pb口控制彩色燈,pc口控制單色燈,故需在8255的初始化中對(duì)pb和pc口進(jìn)行初始化,具體子程序如下:init8255:mov dptr,#8406h mov a,#90h movx dptr,a;置8255工作方式字 mov dptr,#8402h mov a,#0ffh movx dptr,a;初始化pb口 mov dptr,#8404h mov a,#0h movx dptr,a;初始化pc口 ret3.5 延時(shí)子程序設(shè)計(jì)延時(shí)程序在系統(tǒng)總程序中的作用也不可忽視。因?yàn)橄到y(tǒng)程序的需要,需對(duì)延時(shí)前做現(xiàn)場(chǎng)保護(hù)。設(shè)定r1為外層循環(huán)計(jì)數(shù)器,初值為00h,r0為內(nèi)層循環(huán)計(jì)

20、數(shù)器,初值為b2h.設(shè)定r2為循環(huán)計(jì)數(shù)器,當(dāng)然,循環(huán)程序結(jié)束是需對(duì)現(xiàn)場(chǎng)進(jìn)行恢復(fù)。具體延時(shí)子程序如下:delay:push1;保護(hù)現(xiàn)場(chǎng)push0delay1: movr1,#00h ;延時(shí),外層循環(huán)計(jì)數(shù)初值delay2: movr0,#0b2h ;內(nèi)層循環(huán)計(jì)數(shù)初值djnzr0,$djnzr1,delay2djnzr2,delay1pop0;恢復(fù)現(xiàn)場(chǎng)pop1ret3.6 中斷子程序設(shè)計(jì)此次課程設(shè)計(jì)要求外部中斷影響燈變,故在設(shè)計(jì)中,只要求中斷控制燈變,而不顯示程序?qū)?huì)暫停,引入的中斷信號(hào)為p3.2.在系統(tǒng)的初始化程序里,需對(duì)中斷程序定義,并設(shè)定地址區(qū)間(設(shè)為0030h),接著必須設(shè)定外部中斷源,和中

21、斷信號(hào)的觸發(fā),此程序里設(shè)定用低電平觸發(fā)。子程序的設(shè)計(jì)當(dāng)讓也要保護(hù)現(xiàn)場(chǎng)。因?yàn)橹袛嘀挥绊憻糇?,故在中斷子程序里需設(shè)置彩色燈和單色燈的顯示程序,切不可和前面的顯示效果相同,在此中斷設(shè)計(jì)里,燈的顯示設(shè)計(jì)將用第二種顯示設(shè)計(jì)方式設(shè)計(jì),即用調(diào)用數(shù)表的方式設(shè)計(jì)。具體設(shè)計(jì)如下:3.6.1中斷子程序設(shè)計(jì)流程圖根據(jù)設(shè)計(jì)的要求和設(shè)計(jì)硬件的設(shè)計(jì)需要,中斷子程序的設(shè)計(jì)流程圖如圖3-10所示:開(kāi)返回始保護(hù)現(xiàn)場(chǎng)偏移量r70顯示單色燈延時(shí)修正偏移量t7+1r7-1=0p3.2=0?恢復(fù)現(xiàn)場(chǎng)開(kāi)始返回yynn圖3-10 中斷子程序流程圖3.6.2中斷子程序設(shè)計(jì)源程序根據(jù)設(shè)計(jì)的要求和硬件設(shè)計(jì)的情況,參照設(shè)計(jì)流程圖,中斷子程序的具體設(shè)

22、計(jì)如下所示:int0:pushdpl;保護(hù)現(xiàn)場(chǎng)pushdphpushaccpush7push 2push 0push 1next:movr7,#0tt:mova,r7movdptr,#tab1;置單色燈數(shù)表起始位置movca,a+dptrmovdptr,#8404hmovxdptr,a;單色燈開(kāi)始執(zhí)行mova,r7movdptr,#tab2;置彩色燈數(shù)表起始位置movca,a+dptrmovdptr,#8402hmovxdptr,a;彩色燈開(kāi)始執(zhí)行movr2,#3;延時(shí)lcalldelayincr7cjner7,#7,tt;判斷是否到第7位jnbp3.2,next;判斷是否執(zhí)行中斷pop1;恢

23、復(fù)現(xiàn)場(chǎng)pop0pop2pop7popaccpopdphpopdplreti5.控制系統(tǒng)調(diào)試在燈的顯示程序調(diào)試過(guò)程種出現(xiàn)的問(wèn)題不是很多,但還是或多或少的出現(xiàn)了這樣那樣的問(wèn)題,具體問(wèn)題及解決方案如下:?jiǎn)栴}一、彩燈的顯示混亂檢查了程序,確定程序的邏輯關(guān)系沒(méi)有問(wèn)題,后來(lái)突然發(fā)現(xiàn),在程序的初始化時(shí)對(duì)彩燈的控制字的賦值不正確,這主要是由于對(duì)彩燈控制字的順序沒(méi)又搞明白。起始顯示狀態(tài)按彩燈從1至4依次為紅黃綠白四色,剛開(kāi)是賦值為95h,經(jīng)過(guò)計(jì)算后發(fā)現(xiàn)賦值應(yīng)為4bh.問(wèn)題二、彩燈的顯示仍然混亂檢查程序,確定程序的邏輯關(guān)系和賦值沒(méi)有錯(cuò)的前提下,問(wèn)題肯定就出在硬件連線或者芯片問(wèn)題上。檢查發(fā)現(xiàn),8255的pb口控制先

24、沒(méi)有接正確。正確的接線應(yīng)該為表5-1所示:表5-1 8255pb口和74ls240接線口的對(duì)應(yīng)表8255pb口pb0pb1pb2pb3pb4pb5pb6pb774ls240dgqdr1dg2dr2dg4dr4dg3dr3問(wèn)題三、彩燈的變化不按要求循環(huán) 任務(wù)要求彩燈先顯示0.5秒的黃色燈,然后各彩燈按逆時(shí)針依次點(diǎn)亮紅黃綠白各0.3秒。但是顯示的結(jié)果是按順時(shí)針顯示,分析問(wèn)題應(yīng)該出在彩燈的子程序。檢查彩燈的子程序發(fā)現(xiàn),在子程序里應(yīng)用了右移指令rr,檢驗(yàn)發(fā)現(xiàn)應(yīng)該為左移,并應(yīng)該使用兩次左移指令rl.6. 心得體會(huì)為期兩個(gè)星期的單片機(jī)接口技術(shù)課程設(shè)計(jì)終于畫(huà)上了句號(hào),說(shuō)實(shí)在的好累,但充實(shí)的兩個(gè)星期還是讓我學(xué)

25、到了很多東西。大四的學(xué)生,課程設(shè)計(jì)對(duì)我們來(lái)說(shuō)并不是什么新鮮事,基本上每個(gè)學(xué)期都會(huì)有不少這樣的學(xué)習(xí)機(jī)會(huì),但是每次完成的質(zhì)量都有點(diǎn)不太令人滿意,隨著畢業(yè)的臨近,就業(yè)的壓力也就自然而然的降臨到我們的身上。我們是本科應(yīng)用型人才,所以動(dòng)手能力必須特別強(qiáng),這就需要大量的鍛煉,所以我們必須抓住這些已經(jīng)為數(shù)不多的機(jī)會(huì)了!說(shuō)實(shí)在的,對(duì)單片機(jī)的學(xué)習(xí)我不是學(xué)的很好,也就略知一二的樣子。剛拿到課程設(shè)計(jì)任務(wù)書(shū)的時(shí)候很沒(méi)覺(jué)得又多的難。查閱了一些資料,翻了課本上相關(guān)的環(huán)節(jié),終于還是搞清楚了系統(tǒng)輸入輸出與硬件的接法,這對(duì)課題的理解是大有幫助的,但是也只是初步的了解。后來(lái)又去網(wǎng)上看了一下,到網(wǎng)上找資料并不是一件容易的事情找到了

26、一些與課題密切相關(guān)的的設(shè)計(jì)資料,了解了系統(tǒng)工作的基本流程,心里面已經(jīng)形成了控制程序的設(shè)計(jì)具體思想。接下來(lái)的工作并沒(méi)有想象中的那么順利,首先是編寫(xiě)程序,由于首先沒(méi)有拿到老師的流程圖,就自己閉門(mén)造車(chē)的編了起來(lái),我負(fù)責(zé)的是燈顯示這部分的編程,另又一些例如延時(shí),啟動(dòng),復(fù)位,停止等小程序的編寫(xiě)。我請(qǐng)教了我班學(xué)得好的 同學(xué)給我講解了一下設(shè)計(jì)任務(wù)。接下來(lái)就是調(diào)試程序了,這可不是一個(gè)簡(jiǎn)單的過(guò)程,首先由于這個(gè)程序相對(duì)來(lái)說(shuō)有點(diǎn)長(zhǎng),所以第一次輸入的時(shí)候竟然會(huì)把程序都寫(xiě)錯(cuò)了,找了很久都沒(méi)有發(fā)現(xiàn)問(wèn)題,心里在想程序沒(méi)有什么問(wèn)題怎么就是無(wú)法執(zhí)行下去呢?后來(lái)仔細(xì)檢查之后才發(fā)現(xiàn)是有一個(gè)語(yǔ)句寫(xiě)錯(cuò)了一點(diǎn)點(diǎn),改正以后程序也就調(diào)試成功

27、了。這時(shí)候我深刻的體會(huì)到:做什么事都不要急于求成,一定要認(rèn)真仔細(xì),否則就會(huì)事半功倍、得不償失。最后的工作就是編寫(xiě)課程設(shè)計(jì)說(shuō)明書(shū),在這次課程設(shè)計(jì)前我們都以為這部分的工作是最簡(jiǎn)單的事情,但發(fā)現(xiàn)其實(shí)這次課程設(shè)計(jì)最麻煩的部分在這里,在以后的課程設(shè)計(jì)中再也不能對(duì)這部分掉以輕心了。在進(jìn)行這部分工作的時(shí)候大多數(shù)的同學(xué)對(duì)老師都有些怨言,認(rèn)為老師根本就沒(méi)有必要對(duì)排版有這么高的要求,因?yàn)檫@畢竟不是word的課程設(shè)計(jì)。就我個(gè)人看來(lái),其實(shí)嚴(yán)格一點(diǎn)也不是什么壞事,我們適應(yīng)以后就好了,以后還有很多的課程設(shè)計(jì)等著我們呢!為了以后少走彎路現(xiàn)在嚴(yán)格一點(diǎn),多學(xué)點(diǎn)知識(shí)也是不錯(cuò)的,更重要的是畢業(yè)時(shí)候的課程設(shè)計(jì),那是絕對(duì)要求很高的,對(duì)

28、排版肯定是不能有半點(diǎn)的差錯(cuò),所以現(xiàn)在對(duì)這方面就加強(qiáng)鍛煉,對(duì)我們是有利而絕對(duì)無(wú)害的。通過(guò)這一次的課程設(shè)計(jì),我對(duì)單片機(jī)有了更加深刻的理解,對(duì)它的編程語(yǔ)言也有了進(jìn)一步的了解,覺(jué)得真的學(xué)會(huì)可很多東西,尤其是通過(guò)實(shí)際動(dòng)手操作后,我覺(jué)得在課堂上由于太抽象而無(wú)法理解知識(shí)大部分都得到了解決。說(shuō)心里話,我覺(jué)得課程設(shè)計(jì)是最有意義的學(xué)習(xí)形式。它第一方面是很貼近我們的生活,讓我們覺(jué)得現(xiàn)在學(xué)的知識(shí)只很有價(jià)值的;它第二方面是讓我們更快、更加具體的學(xué)會(huì)知識(shí)。我希望在大學(xué)里面有更多的這樣的機(jī)會(huì),這確實(shí)對(duì)我們能力的提高是大有幫助的!在這次課程設(shè)計(jì)中,我非常感謝我的輔導(dǎo)老師周老師。別的小組在星期二就已經(jīng)做完了,可我小組遲遲沒(méi)有進(jìn)

29、展,問(wèn)題就出在顯示程序和子程序的拼合上。由于我小組的幾個(gè)人都學(xué)得不好,所以前進(jìn)的路途真的好渺茫。而我們很多都不懂,剛開(kāi)始的時(shí)候我們真的不敢問(wèn)老師,后來(lái)實(shí)在沒(méi)辦法了,我們只好不恥下問(wèn)。記得我請(qǐng)周老師過(guò)來(lái)給我們指導(dǎo)的時(shí)候我笑著給周老師說(shuō)不準(zhǔn)罵我,周老師笑著說(shuō),傻孩子,我怎么會(huì)罵你呢?所有的顧慮一掃而空。我們也就放開(kāi)了心去和周老師交流。星期四的上午我們和周老師拼戰(zhàn)了一個(gè)上午,中午周老師就吃了盒方便面,感激之情難于言表。感謝您,周老師,感謝您母親般的指導(dǎo)! 機(jī)械設(shè)計(jì)0504:王公強(qiáng)2008-12-13附 錄總程序清單:z8279equ0ff82h;8279狀態(tài)/命令口地址d8279equ0ff80h;

30、8279數(shù)據(jù)口地址ledmodequ10h;右邊輸入,八字符顯示,外部譯碼ledfeqequ2fh;掃描速率ledclsequ0c1h;清除顯示ramledwr0equ80h;設(shè)定的將要寫(xiě)入的顯示ram地址org0000h;主程序入口地址ajmpstartorg0003hajmpint0org0030hstart: movsp,#60h;設(shè)置堆棧指針 mov30h,#4bh;彩燈控制字送30h mov31h,#0aah;單色燈控制字送31h lcallinit8255;調(diào)用8255初始化程序 lcallinit8279;調(diào)用8279初始化程序 setbex0;外部中斷0為中斷源 clrit0;

31、中斷信號(hào)用低電平觸發(fā)loop: movdptr,#8400h movxa,dptrjbacc.0,loop;判斷是否啟動(dòng)setbea;允許cpu響應(yīng)中斷movdptr,#8402hmova,#00hmovxdptr,a;黃燈亮movr2,#5lcalldelay;延時(shí)0.5秒loop1:mov32h,#0lcalldisplay movdptr,#8400hmovxa,dptrjbacc.2,jieshu;判斷是否停止jbacc.1,start;判斷是否復(fù)位mov32h,#14lcalldisplay sjmploop1jieshu: movdptr,#8402hmova,#0ffhmovxd

32、ptr,a;彩燈全息incdptrincdptrmova,#00hmovxdptr,a;單色燈全息movdptr,#0ff82hmova,#ledclsmovxdptr,a;顯示器熄屛ajmpxxdisplay:mov r7,#14;置顯示循環(huán)次數(shù)movr5,#00hmovr4,#0loop2: lcall disled;調(diào)用合成顯示位子程序 inc r4;顯示位置向左移一位inc r5;取數(shù)表中下一位數(shù)djnz r7,loop2;判斷循環(huán)次數(shù)是否達(dá)到16次 movdptr,#z8279;控制口地址mova,#ledclsmovxdptr,a;清屏retdisled: ;合成顯示位置子程序mo

33、vdptr,#z8279 mov a,#ledclsmovxdptr,a;清屏lcall delay;調(diào)用延時(shí)子程序pushdph;保護(hù)現(xiàn)場(chǎng)pushdplpushaccmova,r4 movdptr,#z8279adda,#ledwr0movxdptr,a;置顯示ram地址mova,r5;送段碼值movdptr,#ledseg;置顯示常數(shù)表起始位置movca,a+dptr;在斷碼表中取顯示字符movdptr,#d8279movxdptr,a;字符控制字送控制口mov a, r4add a, #1;位碼偏移量加1mov r3, a;暫存mov a,r5movdptr,#ledseg;置顯示數(shù)表起

34、始位置adda,32hmovc a,a+dptrmov r0,#10hmov r0, a;將字符存入r0所指向的10h單元mov a, r4 mov r6, alp: mova,#ledwr0;置顯示ram起始地址adda,r6;加顯示位偏移量movdptr,#z8279movxdptr,a;設(shè)定顯示位置mova,r0inc r0;指向10h系列中的下一單元movdptr,#d8279movxdptr,a;送顯示字符 dec r6;顯示位向右移一位djnz r3, lp ;判斷取出的字符是否全部顯示popacc;恢復(fù)現(xiàn)場(chǎng)popdplpopdphretint0:pushdpl;保護(hù)現(xiàn)場(chǎng)pushdphpushaccpush7push 2push 0push 1next:movr7,#0tt:mova,r7movdptr,#tab1;置單色燈數(shù)表起始位置movca,a+dptrmovdptr,#8404hmovxdptr,a;單色燈開(kāi)始執(zhí)行mova,r7movdptr,#tab2;置彩色燈數(shù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論