2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  計(jì)算機(jī)科學(xué)與技術(shù)系</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  2008~2009學(xué)年第一學(xué)期</p><p><b>  2009年 1月</b></p><p>  一、題義分析及解決方案</p>

2、<p><b>  1、題義需求分析</b></p><p>  本程序設(shè)計(jì)需應(yīng)用軟件控制并運(yùn)行接口電路,使連接在該接口上的紅、綠、黃發(fā)光二極管按十字路口交通紅、綠、黃燈形式閃爍,并顯示綠燈的倒計(jì)時(shí)時(shí)間,如果需要還可以動(dòng)態(tài)的對到計(jì)時(shí)時(shí)間進(jìn)行設(shè)定。</p><p>  交通燈變化規(guī)律根據(jù)實(shí)地查看和查看資料:各個(gè)路口的交通燈變化規(guī)律并不相同,本課程設(shè)為了簡化,

3、只考慮了交通燈正常時(shí)的變化規(guī)律,即有如下規(guī)律變化:程序一開始,四個(gè)方向的燈全為紅燈,接著變?yōu)辄S燈閃爍數(shù)次,然后東西方向?yàn)榧t燈,南北方向?yàn)榫G燈并顯示倒計(jì)時(shí)時(shí)間,倒計(jì)時(shí)間結(jié)束后,交通燈變成黃燈,閃爍幾次后,東西方向變成綠燈,南北變成紅燈,再變成黃燈,如此按交通燈的變化規(guī)則交替變化,在對綠燈采取倒計(jì)時(shí)時(shí),采用的是為各個(gè)燈設(shè)置固定的亮持續(xù)時(shí)間。對此設(shè)計(jì)模擬交通燈變化規(guī)律,需要解決如下問題:</p><p> ?。?)綠燈

4、的倒計(jì)時(shí)時(shí)間如何顯示,倒計(jì)時(shí)間用什么來控制</p><p> ?。?)交通燈用什么器材來模擬顯示</p><p> ?。?)如何設(shè)計(jì)pc機(jī)與實(shí)驗(yàn)?zāi)M芯片接口通信</p><p> ?。?)交通燈運(yùn)行狀態(tài)怎么實(shí)現(xiàn),交通燈狀態(tài)的切換問題怎么解決</p><p> ?。?)如何實(shí)現(xiàn)交通燈的閃爍,并且控制閃爍時(shí)間,</p><p&

5、gt;  (6)如何對所選芯片進(jìn)行編程控制</p><p> ?。?)如何獲取開關(guān)上用戶設(shè)置的初值信息,并且把初值信息如何存儲(chǔ)。</p><p>  2、解決問題方法及思路</p><p><b>  1)硬件部分</b></p><p>  1、LED設(shè)計(jì)說明:</p><p>  用LED作為

6、倒計(jì)時(shí)時(shí)間的顯示器, LED在亮度、功耗、可視角度和刷新速率等方面,都更具優(yōu)勢。LED與LCD的功耗比大約為10:1,利用LED技術(shù),可以制造出比LCD更薄、更亮、更清晰的顯示器,LED是發(fā)光二極管屬于二極管的一種,LCD是液晶顯示器,兩者相差太多.但是用LED的點(diǎn)陣也能組成顯示器,適用于戶外大屏幕顯示,分辨率較低,LED與LCD具體比較如下圖</p><p>  表1-1:LCD與LED的比較</p>

7、;<p>  通過分析和對比,LED顯示器要較優(yōu)于LCD顯示器,因此本實(shí)驗(yàn)選擇LED</p><p>  2、8255設(shè)計(jì)說明:</p><p>  用8255A可編程并行接口芯片的A、B、C三口作為紅、綠、黃交通燈的控制輸入口。8255有三個(gè)并行輸入輸出口,可以方便的對三種顏色的交通燈進(jìn)行很好的控制。解決方案是:PB0~PB7接模擬燈二極管,PA0~PA7接7段二極管的段選

8、,PC0~PC3接7段二極管的位選,PC4~PC7與開關(guān)相連,處理器芯片集成芯片卡PCI卡連接,用于完成硬件方面的實(shí)驗(yàn)正常通信。其芯片比較說明:如下表</p><p>  表1-2:8255A與8251芯片的比較</p><p><b>  2)、軟件部分</b></p><p>  根據(jù)硬件需求采用8255A芯片,為實(shí)現(xiàn)對通信的控制,采用匯編

9、語言,分別編程控制8255的工作方式,在編程時(shí)應(yīng)考慮到狀態(tài)的轉(zhuǎn)換采用查詢方式控制,根據(jù)需求分析可采用8255的方式0下工作具體如下設(shè)置:</p><p>  硬件連接說明:8255A芯片的PA、PB、PC三口的工作方式為方式0,將8255的PB0~PB7接紅綠燈用以模擬交通燈的變化,PA0~PA7接7段LED燈的段選碼,,完成LED顯示器的段選,PC0~PC3接LED顯示器的位選碼用以完成位選,PC4-PC7接開

10、關(guān),以完成初值接收。初始化8255后。利用匯編語言編寫訪問控制程序,控制綠燈的顯示倒記時(shí)間,它與紅燈的顯示時(shí)間是相同的,編寫控制程序控制黃燈的閃爍時(shí)間,當(dāng)綠燈的顯示時(shí)間結(jié)束后切換到黃燈,再切換到紅燈,如此循環(huán)下去。 </p><p><b>  二、硬件設(shè)計(jì)</b></p><p>  1、選擇芯片74138譯碼器</p><p>  1)、

11、74138譯碼器在本實(shí)驗(yàn)中的作用:</p><p>  由于在對8255A寫控制字時(shí)只有C口可以實(shí)現(xiàn)高四位輸入,低四位輸出,然而集成箱中的接口不夠多,因此通過74138譯碼器實(shí)現(xiàn)動(dòng)態(tài)的設(shè)置到計(jì)時(shí)</p><p>  2)、74138譯碼器的功能分析:</p><p>  圖1-1:74138譯碼器的引腳排列圖和邏輯符號</p><p>  表

12、1-3:74138譯碼器真值表</p><p>  1、選擇芯片8255A</p><p>  1)、8255A在本實(shí)驗(yàn)中的作用:</p><p>  通過8255A的三個(gè)I/O端口A口、B口、C口與紅、綠、黃二極管連接起來控制交通燈的規(guī)律性變化。</p><p>  2)、8255A的功能分析:</p><p>  

13、PA、PB、PC三口均工作在方式0狀態(tài)。:PB2~PB3接黃燈,PB4~PB5接紅燈;PB0~PB1接綠燈,PA0~PA7作為段選碼;PC0~PC1作為位選碼。我們采用的是將PC口分成兩部分使用,PC0-PC3作為位選碼,PC4-PC7作為輸入口,接收開關(guān)輸入的初值信息。將在用8255A前首先要對它進(jìn)行初始化,設(shè)置它的方式選擇控制字。</p><p>  3)、8255A工作方式0說明:</p>&

14、lt;p>  方式0的工作特點(diǎn):這種方式通常不用聯(lián)絡(luò)信號,不使用中斷,三個(gè)通道中的每一個(gè)都有可以由程序選定作為輸入或輸出。其功能為:</p><p> ?。?)兩個(gè)8位通道:通道A、B。兩個(gè)四位通道:通道C高4位和低四位;</p><p> ?。?)任何一個(gè)通道可以作輸入/輸出;(3)輸出是鎖存的;</p><p> ?。?)輸入是不鎖存的;</p>

15、;<p> ?。?)在方式0時(shí)各個(gè)通道的輸入/輸出可有16種不同的組合。</p><p>  方式0的使用場合:同步傳送是在外設(shè)控制過程的各種動(dòng)作時(shí)間為固定,且已知的條件下使用的。因此,傳送中不要應(yīng)答信號。輸入時(shí),執(zhí)行程序只要給出IN指令;而輸出時(shí),也只給出OUT指令,就能實(shí)現(xiàn)數(shù)據(jù)的輸入或輸出。優(yōu)點(diǎn)是程序簡單,接口的硬件開銷小。</p><p>  查詢式傳輸時(shí),要先查詢一個(gè)

16、外設(shè)的狀態(tài),當(dāng)該狀態(tài)表示外設(shè)已準(zhǔn)備好時(shí),方能開始查詢傳輸,否則CPU將繼續(xù)查詢。但在方式0,沒有規(guī)定固定的應(yīng)答信號,所以,這時(shí)將通道A、B作為數(shù)據(jù)通道,把通道C的4個(gè)位(高4位或低4位)規(guī)定為輸出口,用來輸出一些控制信號,而把通道C的另外4個(gè)位規(guī)定為輸入口,用來輸入外設(shè)的狀態(tài)。這樣利用通道C來配合通道A和B的輸入/輸出操作。 </p><p>  4)、8255A方式選擇控制字說明:</p><

17、;p>  控制字格式如圖1-2:</p><p>  圖1-2:8255A芯片的控制字格式</p><p>  參數(shù)說明:D7=1工作方式控制標(biāo)志。D6D5組合設(shè)定A口工作方式:00~方式0、01~方式1、10/11~方式2。D4設(shè)定A口的輸入/輸出,D4=1輸入D4=0輸出。D3C口高位輸入/輸出選擇,D3=1輸入D3=0輸出。D2B口工作方式選擇,D2=1方式1;D2=0方式0。

18、D1B口輸入/輸出選擇D1=1輸入D1=0輸出。D0設(shè)定C口低位輸入/輸出D0=1輸入D0=0輸出。</p><p>  5)、8255A技術(shù)參數(shù):</p><p>  主要參數(shù)說明:8255A工作最大電流為120MA,VCC=-5V~+5V,I(DAR)工作電流最大為4MA。8255的輸出電壓不高,連接到LED時(shí),最好加入一個(gè)驅(qū)動(dòng)器起到電流放大的作用,其具體參數(shù)值說明如表3-1。<

19、;/p><p>  表1-4:8255A技術(shù)參數(shù)說明</p><p>  6)、8255A的邏輯圖</p><p>  圖1-3: 8255A內(nèi)部邏輯圖</p><p>  2、選擇芯片七段LED顯示器</p><p>  1)、LED顯示器在本設(shè)計(jì)中的作用:</p><p>  接收由8255A芯

20、片送來的字型碼顯示編碼結(jié)果其中LED技術(shù)參數(shù)如表1-5:</p><p>  表1-5: LED技術(shù)參數(shù)說明</p><p>  2)、七段LED顯示器LED顯示器的功能分析:</p><p>  LED顯示器有共陽極和共陰極兩類。其原理圖(圖1-4):</p><p>  圖是一個(gè)6位LED動(dòng)態(tài)顯示電路,段驅(qū)動(dòng)器輸出LED字符7段代碼信息,

21、位驅(qū)動(dòng)器輸出6個(gè)LED的位選信號,即分時(shí)使Q0 ~ Q5輪流有效,使得LED0~LED5輪流顯示。</p><p>  圖1-4:七段LED顯示器</p><p>  筆畫型LED顯示器是由8個(gè)二極管電路a~dp按字型‘8’的方式排列,當(dāng)不同的二極管被選通后根據(jù)發(fā)光效果會(huì)顯示不同的自型。本設(shè)計(jì)中采用共陰極連接方式,a~dp分別與74LS273的1Q~8Q相連,接收段選碼信號(高電平);4位

22、LED顯示器的4根共陰極引線與8255A的PC0~PC3相連,接收位選碼信號(低電平)。段選碼和位選碼共同作用以顯示不同的字型。</p><p>  LED字型顯示原理:</p><p>  表1-6:LED字型顯示組合</p><p>  4、硬件總邏輯圖及其說明</p><p>  1)、硬件原理說明:</p><p&

23、gt;  本設(shè)計(jì)以STAR ES598PCI實(shí)驗(yàn)儀提供的最實(shí)用、新穎的接口實(shí)驗(yàn),提供的匯編控制程序設(shè)計(jì)控制硬件運(yùn)行為依據(jù)設(shè)計(jì)的;在課程設(shè)計(jì)中主要利用了STAR ES598PCI實(shí)驗(yàn)提供的8255A芯片,7段LED顯示器,以及紅綠燈LED顯示二極管,其中完成PC機(jī)與實(shí)驗(yàn)箱之間的通信用到了最主要的集成卡PCI卡。課程設(shè)計(jì)時(shí)完成編程調(diào)試的只要開發(fā)工具為**集成開發(fā)環(huán)境。</p><p>  2)、硬件連接說明:<

24、/p><p>  8255A芯片的PA、PB、PC三口的工作方式為方式0,將8255的PB0~PB7接紅綠燈用以模擬交通燈的變化,PA0~PA7接7段LED燈的段選碼完成LED顯示器的段選,PC0~PC3接LED顯示器的位選碼用以完成位選,PC機(jī)通過數(shù)據(jù)總線經(jīng)過集成電路卡PCI卡與8255A芯片相連接。其連接方式為:PCI卡的地址總線A1A0接到8255A芯片的A1A0來實(shí)現(xiàn)端口選擇。將8255A芯片的片選信號CS與

25、PCI卡的CS1相連接來決定各端口的初始地址。8255A芯片的PB口中PB0~PB7經(jīng)過排線與實(shí)驗(yàn)箱的紅綠燈電路板的插槽相連接,用來實(shí)現(xiàn)控制交通燈的變化規(guī)律;8255A的PC口中的PC0~PC3經(jīng)過排線與實(shí)驗(yàn)箱上的7段LED燈的位選碼插槽相連接,用來實(shí)現(xiàn)選擇綠燈倒計(jì)時(shí)時(shí)的7段LED燈的位置選擇,8255A芯片的PA口中的PA0~PA7經(jīng)過排線與實(shí)驗(yàn)箱上的7段LED燈的段選碼插槽相連接,用來實(shí)現(xiàn)7段LED燈的段選碼選擇。LED燈管的a、b

26、、c、d、e、f、g、dp做為段選來顯示倒計(jì)時(shí)數(shù)據(jù)。</p><p>  圖1-5: 硬件總連接圖</p><p><b>  三、控制程序設(shè)計(jì)</b></p><p>  1、控制程序設(shè)計(jì)思路說明:</p><p>  首先,明確交通燈的變化規(guī)律,假設(shè)在一個(gè)十字路口,其中東西方向,南北方向,工作方式如下:將紅黃綠燈按照

27、紅燈停,綠等行,黃燈閃爍為緩沖時(shí)間的原則進(jìn)行通車。倒計(jì)時(shí)將可以由用戶自由設(shè)定,用8255的PB,PC口來連接紅黃綠燈電路板,而PA口連接LED顯示管來計(jì)數(shù)倒計(jì)時(shí)。開始時(shí)初始化東西南北方向全為紅燈,然后東西方向綠燈亮,進(jìn)入倒計(jì)時(shí)默認(rèn)值40秒,結(jié)束后東西方向綠燈閃爍三次,變黃燈亮三秒,然后紅燈亮;南北方向綠燈亮,此時(shí)南北方向進(jìn)入倒計(jì)時(shí),倒計(jì)時(shí)時(shí)間可以在開關(guān)口提前設(shè)定本次倒計(jì)時(shí)時(shí)間。結(jié)束后綠燈閃爍三秒后,變黃燈亮三秒,然后紅燈亮,東西方向綠燈

28、亮,如此循環(huán)下去。</p><p>  其次,主程序的設(shè)計(jì)思路:首先初始化8255A的芯片的控制字格式和狀態(tài)字格式,其次設(shè)置交通燈開始運(yùn)行的初始狀態(tài)并做相應(yīng)的延時(shí)便于觀察,再次調(diào)用子程序?qū)|西綠燈的倒計(jì)時(shí)時(shí)間,調(diào)用子程序顯示綠燈的倒計(jì)時(shí),后進(jìn)行查表選擇相應(yīng)的LED燈的段選碼,使相應(yīng)的燈亮,顯示東西綠燈交通燈變化,然后設(shè)置綠燈的閃爍,以及黃燈的亮持續(xù),再次就是查表設(shè)置轉(zhuǎn)換成南北綠燈的亮,同時(shí)調(diào)用子程序設(shè)置南北綠燈的

29、倒計(jì)時(shí)時(shí)間,后進(jìn)行查表選擇相應(yīng)的LED燈的段選碼,使相應(yīng)的燈亮,顯示南北綠燈交通燈變化,然后做南北綠燈的閃爍,和黃燈的亮持續(xù),最后做主程序的循環(huán),利用無條件跳轉(zhuǎn)指令。其控制流程如下</p><p><b>  2、程序流程圖</b></p><p>  圖1-6:主控制程序</p><p>  再次,也設(shè)計(jì)了一個(gè)到計(jì)時(shí)顯示子程序,用來顯示綠燈的

30、到計(jì)時(shí)時(shí)間,設(shè)計(jì)思路:</p><p>  首先要保存進(jìn)入到計(jì)時(shí)子程序時(shí)的斷點(diǎn)保存,以保證能夠子程序結(jié)束能夠正常返回主程序,其次設(shè)置LED燈的秒數(shù)跳的快慢,使其運(yùn)行結(jié)果便于觀察,再次設(shè)置程序分別顯示到計(jì)時(shí)LED燈的秒數(shù)的個(gè)位與十位,在顯示秒數(shù)的個(gè)位與十位時(shí)要做秒數(shù)的個(gè)位與十位計(jì)數(shù)是否到零的判斷,與此同時(shí)也要做秒數(shù)的個(gè)位與十位的斷選碼指示器的移動(dòng),最后做恢復(fù)斷點(diǎn)和子程序的返回。其控制流程圖:</p>

31、<p>  圖1-7:倒計(jì)時(shí)顯示程序</p><p>  最后,還設(shè)計(jì)了兩個(gè)延時(shí)程序,一個(gè)是綠燈閃爍3次時(shí)間的延時(shí)DL500子程序,一個(gè)是延時(shí)黃燈亮的時(shí)間DELAY子程序;DL500子程序的設(shè)計(jì)思路利用了設(shè)備提供的軟中斷實(shí)現(xiàn)的延時(shí),其控制流程如(流程圖:1-7);DELAY子程序的設(shè)計(jì)利用的是多次循環(huán)空操作實(shí)現(xiàn),思路首先保存斷點(diǎn)設(shè)置空操作的次數(shù),做判斷循環(huán)是否該結(jié)束,然后恢復(fù)斷點(diǎn),返回主程序,其控制流程

32、如下</p><p>  圖1-8:500ms延時(shí)程</p><p>  圖1-9:DELAY延時(shí)程序</p><p><b>  3、控制程序</b></p><p>  ;片選CS1偏移地址范圍 0F0H~0FFH</p><p>  .MODELTINY</p><

33、p>  PCIBAR3EQU1CH;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址, 也為DMA & 32 BIT RAM板卡上的8237提供基地址) </p><p>  Vendor_IDEQU 10EBH;廠商ID號</p><p>  Device_IDEQU8376;設(shè)備ID號</p><p>  .STACK100

34、</p><p><b>  .DATA</b></p><p>  IO_Bit8_BaseAddressDW?</p><p>  msg0DB'BIOS不支持訪問PCI $'</p><p>  msg1DB'找不到Star PCI9052板卡 $'&

35、lt;/p><p>  msg2DB'讀8位I/O空間基地址時(shí)出錯(cuò)$'</p><p>  GGG DW ?</p><p>  HHH DW ?</p><p>  WWW DW ?</p><p>  XXX DW ?</p>

36、;<p>  COM_ADDDW00F3H;控制口偏移量</p><p>  PA_ADDDW00F0H;PA口偏移量</p><p>  PB_ADDDW00F1H;PB口偏移量</p><p>  PC_ADDDW00F2H;PC口偏移量</p><p>  LED_DataDB

37、 10111110B ;東西綠燈,南北紅燈</p><p>  DB10111111B;東西綠燈滅,南北紅燈</p><p>  DB 10111101B;東西黃燈亮,南北紅燈</p><p>  DB11101011B;東西紅燈,南北綠燈</p><p>  DB11111011B;東西紅燈,南北綠

38、燈滅</p><p>  DB11011011B ;東西紅燈,南北黃燈亮</p><p>  SG DB 6fH,7fH,07H,7dH,6dH,66H,4fH,5bH,06H,3fH ;9-0 </p><p><b>  .CODE </b></p><p><b>  START

39、:</b></p><p>  MOV AX,@DATA</p><p>  MOV DS,AX</p><p><b>  NOP</b></p><p>  CALL InitPCI</p><p>  CALL MoDIfyAddress;根據(jù)PCI提供

40、的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址</p><p><b>  ;程序開始</b></p><p>  MOV DX,COM_ADD ;初始化8255控制口,將地址設(shè)置成COM_ADD</p><p>  MOV Al,88H ;方式0下,PA,PB為輸出口 PC為輸入口</p><p&

41、gt;  OUT DX,Al</p><p>  LEA DI,[SG + 7]</p><p>  MOV GGG,DI</p><p>  MOV WWW,DI</p><p>  LEA SI,[SG + 9]</p><p>  MOV HHH,SI</p><p&g

42、t;  MOV XXX,SI </p><p>  CALL DL500ms</p><p><b>  START1:</b></p><p>  CALL TEST1 </p><p>  LEABX,LED_Data;將控制信息表的首地址給B</p&g

43、t;<p>  MOVDX,PB_ADD</p><p>  MOVAl,0;Al為0表示查表中第一個(gè)字節(jié)的內(nèi)容</p><p>  XLAT;查表,將表中第一個(gè)字節(jié)的內(nèi)容放入Al中</p><p>  OUTDX,Al;東西綠燈,南北紅燈 </p><p>  MOV SI,

44、HHH</p><p>  MOV DI,GGG</p><p><b>  CALLDJS</b></p><p>  MOVCX,3</p><p><b>  START2:</b></p><p>  MOVAl,1</p>

45、<p><b>  XLAT</b></p><p>  OUTDX,Al;東西綠燈滅,南北紅燈</p><p>  CALLDL500ms</p><p>  MOVAl,0</p><p><b>  XLAT</b></p><p>

46、;  OUTDX,Al;東西綠燈亮,南北紅燈</p><p>  CALLDL500ms </p><p>  LOOPSTART2</p><p>  MOVAl,2;東西黃燈亮,南北紅燈</p><p><b>  XLAT</b></p><p&g

47、t;  OUTDX,Al</p><p>  CALLDL2S </p><p>  MOVAl,3;東西紅燈,南北綠燈</p><p><b>  XLAT</b></p><p>  OUT DX,Al</p><p>  CALL

48、 TEST1</p><p>  MOV SI,XXX</p><p>  MOV DI,WWW</p><p><b>  CALLDJS</b></p><p>  MOVCX,3</p><p><b>  START3:</b></p&g

49、t;<p>  MOVAl,4;東西紅燈,南北綠燈滅</p><p><b>  XLAT</b></p><p>  OUTDX,Al</p><p>  CALLDL500ms</p><p>  MOVAl,3;東西紅燈,南北綠燈亮</p><p>&l

50、t;b>  XLAT</b></p><p>  OUTDX,Al</p><p>  CALLDL500ms</p><p>  LOOPSTART3</p><p>  MOVAl,5;東西紅燈,南北黃燈亮</p><p><b>  XLAT</b>

51、;</p><p>  OUTDX,Al</p><p>  CALLDL2S</p><p>  JMPSTART1</p><p><b>  ;延時(shí)500ms</b></p><p>  DL500msPROCNEAR</p><p><

52、b>  PUSHAX</b></p><p><b>  PUSHDX</b></p><p>  MOVDX,500</p><p>  MOVAH,0FFH</p><p><b>  INT21H</b></p><p>&

53、lt;b>  POPDX</b></p><p><b>  POPAX</b></p><p><b>  RET</b></p><p>  DL500msENDP</p><p><b>  ;延時(shí)2秒</b></p>&

54、lt;p>  DL2SPROCNEAR</p><p><b>  PUSHCX</b></p><p>  MOVCX,4</p><p><b>  DL2S1:</b></p><p>  CALLDL500ms</p><p>  LOO

55、PDL2S1</p><p><b>  POPCX</b></p><p><b>  RET</b></p><p>  DL2SENDP</p><p>  TEST1 PROC NEAR</p><p><b>  PUSH AX&l

56、t;/b></p><p><b>  PUSH BX</b></p><p><b>  PUSH CX</b></p><p><b>  PUSH DX</b></p><p>  MOV DX,PC_ADD</p><p>  I

57、N AL,DX</p><p>  TEST AL,80H</p><p><b>  JZ OOO</b></p><p>  MOV DX,PC_ADD</p><p>  IN AL,DX</p><p>  AND AL,7FH</p><p>

58、;  SHR AL,4</p><p>  MOV BL,9</p><p>  SUB BL,AL</p><p>  MOV BH,0</p><p>  MOV SI,BX</p><p>  LEA DI,[SG+SI]</p><p>  MOV GGG,D

59、I</p><p>  mov WWW, DI</p><p><b>  OOO: </b></p><p><b>  POP DX</b></p><p><b>  POP CX</b></p><p><b>  PO

60、P BX</b></p><p><b>  POP AX</b></p><p><b>  RET </b></p><p>  TEST1 ENDP</p><p>  ;倒計(jì)時(shí)顯示程序 </p><p>  DJS PROCNEA

61、R </p><p><b>  PUSH DX</b></p><p><b>  PUSH CX</b></p><p><b>  PUSH BX</b></p><p><b>  PUSH AX</b><

62、;/p><p><b>  PRT:</b></p><p>  MOV CX,050H ;設(shè)置循環(huán)秒數(shù)跳的快慢(LED);;;;循環(huán)計(jì)數(shù)初值CX->30</p><p>  NUM: </p><p>  MOV Al,[SI] ;設(shè)置段選碼,將SI中的內(nèi)容送入PA口 </p>

63、<p>  MOV DX,PA_ADD</p><p>  OUT DX,Al </p><p>  MOV Al, 0FcH ;設(shè)置位選碼,PC0口置0高四位為0 </p><p>  MOV DX,PC_ADD ;其他口為1來選中LED1,顯示個(gè)位</p><p>  OUT DX,Al

64、 </p><p>  CALL DELAY</p><p>  MOV Al,[DI] ;設(shè)置段選碼,將DI中的內(nèi)容送入PA口</p><p>  MOV DX,PA_ADD</p><p>  OUT DX,Al </p><p>  MOV Al,0FDH ;設(shè)置位選碼,PC

65、1口置0高四位為0 </p><p>  MOVDX,PC_ADD ;其他口為1來選中LED2,顯示十位</p><p>  OUT DX,Al </p><p>  CALL DELAY</p><p>  LOOP NUM ;循環(huán)到NUM

66、 </p><p>  INC SI ;個(gè)位SI自增1</p><p>  CMP SI,OFFSET SG + 10;與表外的第一個(gè)偏移地址相比較,如果不</p><p>  JNZ PRT ;等則顯示數(shù)據(jù)且SI+1,如果相等順序執(zhí) </p><p>  INC DI

67、 ;十位DI自增1</p><p>  MOV SI,OFFSET SG;將SG即9的偏移地址送給SI</p><p>  CMP DI,OFFSET SG + 10;與表外的第一個(gè)偏移地址相比較,如果不</p><p>  JNZ PRT ;等則顯示數(shù)據(jù)且DI+1,如果相等順序執(zhí)行</p&

68、gt;<p>  mov al, 0</p><p>  out dx, al</p><p>  POP AX ;結(jié)束子程序</p><p><b>  POP BX</b></p><p><b>  POP CX</b></p>

69、<p><b>  POP DX</b></p><p><b>  RET</b></p><p><b>  DJS ENDP</b></p><p><b>  ;延時(shí)子程序</b></p><p>  DELAY PROC

70、 </p><p><b>  PUSH CX</b></p><p>  MOV CX,0FFFFH</p><p><b>  LOOP5:</b></p><p><b>  STD</b></p><p>  LOOP LOOP5<

71、/p><p><b>  POP CX</b></p><p>  MOV Al, 0FfH ;</p><p>  MOV DX,PC_ADD </p><p>  ;OUT DX,Al;顯示器清0</p><p><

72、b>  RET</b></p><p>  DELAY ENDP </p><p><b>  ;程序結(jié)束</b></p><p>  InitPCIPROCNEAR</p><p>  MOVAH,00H</p><p>  MOVAl,03H</

73、p><p>  INT10H;清屏</p><p>  MOVAH,0B1H</p><p>  MOVAl,01H</p><p><b>  INT1AH</b></p><p>  CMPAH,0</p><p>  JZInitPCI

74、2</p><p>  LEADX,msg0</p><p>  InitPCI1:</p><p>  MOVAH,09H</p><p><b>  INT21H</b></p><p><b>  JMPExit</b></p>&l

75、t;p>  InitPCI2:</p><p>  MOVAH,0B1H</p><p>  MOVAl,02H</p><p>  MOVCX,Device_ID</p><p>  MOVDX,Vendor_ID</p><p>  MOVSI,0</p><

76、p><b>  INT1AH</b></p><p>  JNCInitPCI3;是否存在Star PCI9052板卡</p><p>  LEADX,msg1</p><p>  JMPInitPCI1</p><p>  InitPCI3:</p><p>  MO

77、VDI,PCIBAR3</p><p>  MOVAH,0B1H</p><p>  MOVAl,09H</p><p>  INT1AH;讀取該卡PCI9052基地址</p><p>  JNCInitPCI4</p><p>  LEADX,msg2</p><

78、p>  JMPInitPCI1</p><p>  InitPCI4:</p><p>  ANDCX,0FFFCH</p><p>  MOVIO_Bit8_BaseAddress,CX</p><p><b>  RET</b></p><p>  InitPCI

79、ENDP</p><p>  MoDIfyAddressPROCNEAR</p><p>  ADDCOM_ADD,CX</p><p>  ADDPA_ADD,CX</p><p>  ADDPB_ADD,CX</p><p>  ADDPC_ADD,CX</p>&

80、lt;p><b>  RET</b></p><p>  MoDIfyAddressENDP</p><p><b>  Exit:</b></p><p>  MOVAH,4CH</p><p><b>  INT21H</b></p>&l

81、t;p>  ENDSTART</p><p><b>  四、上機(jī)調(diào)試過程</b></p><p><b>  1、硬件調(diào)試</b></p><p>  根據(jù)實(shí)驗(yàn)硬件原理圖和硬件連接說明,進(jìn)行連線,結(jié)合實(shí)驗(yàn)時(shí)的實(shí)驗(yàn)箱的實(shí)際環(huán)境連接好上述部件后給實(shí)驗(yàn)箱通電。在實(shí)驗(yàn)硬件連接時(shí)曾出現(xiàn),LED燈全部都不亮,后來經(jīng)過幾遍檢

82、查,才找出原因,PA口和和PC口接線反了,錯(cuò)誤的原因是實(shí)驗(yàn)時(shí)不細(xì)心和實(shí)驗(yàn)態(tài)度不認(rèn)真,經(jīng)過此次經(jīng)歷,明白實(shí)驗(yàn)要同理論一樣仔細(xì),任何一個(gè)小錯(cuò)誤都可能是造成實(shí)驗(yàn)失敗的原因。</p><p><b>  2、軟件調(diào)試</b></p><p>  我和同組人員一起討論,在完成老師要求的基本功能基礎(chǔ)上又相應(yīng)相應(yīng)的增加了相應(yīng)的子程序用來實(shí)現(xiàn)相應(yīng)的功能,例如如何動(dòng)態(tài)的設(shè)計(jì)倒計(jì)時(shí)時(shí)間,

83、如何在綠燈倒計(jì)時(shí)結(jié)束時(shí)使蜂鳴器發(fā)出警報(bào)的聲音等等。</p><p>  在程序的調(diào)試過程中卻出現(xiàn)了各種錯(cuò)誤現(xiàn)象,在單步調(diào)試過程下不斷改正錯(cuò)誤,重新調(diào)試,直到調(diào)試通過。但是功能還是不理想。后來經(jīng)過參考其他班同學(xué)的程序設(shè)計(jì),分別對各個(gè)程序代碼進(jìn)行了修改,后經(jīng)過老師指導(dǎo)在老師的指導(dǎo)下,調(diào)試通過,功能基本實(shí)現(xiàn)。。</p><p>  在此基礎(chǔ)上,老師提出由開關(guān)輸入初值,以達(dá)到人為控制倒計(jì)時(shí)時(shí)間,我

84、在原來程序基礎(chǔ)上增加了掃描開關(guān)子程序,在每次倒計(jì)時(shí)前程序自動(dòng)檢測開關(guān),判斷開關(guān)的值,并且存入初值寄存器。對倒計(jì)時(shí)時(shí)間的正確顯示和功能實(shí)現(xiàn),單步調(diào)試中倒計(jì)時(shí)實(shí)現(xiàn)后,由于程序中設(shè)置的循環(huán)次數(shù)不合適,導(dǎo)致路燈倒計(jì)時(shí)的一秒跳動(dòng)過快,經(jīng)過修改MOV CX,050H從而使功能得到更好的實(shí)現(xiàn)</p><p><b>  3、 聯(lián)機(jī)調(diào)試</b></p><p>  將實(shí)驗(yàn)箱總電源

85、開關(guān)打開,打開PC機(jī)上的星源集成軟件。將控制程序輸入其中后,對程序進(jìn)行編譯,編譯通過后,單步調(diào)試并觀察結(jié)果以及各寄存器中值得變化,然后單步連續(xù)執(zhí)行觀察按下鍵與顯示數(shù)值。出現(xiàn)問題時(shí)對程序進(jìn)行修改,直至出現(xiàn)正確結(jié)果。再作全速運(yùn)行。</p><p>  4、調(diào)試結(jié)果及問題的提出</p><p>  調(diào)試結(jié)果基本正確,符合任務(wù)書的結(jié)果:接口上的紅、綠、黃發(fā)光二極管按十字路口交通紅、綠、黃燈形式閃爍

86、,并顯示綠燈的倒計(jì)時(shí)時(shí)間。</p><p><b>  問題的提出:</b></p><p>  如何使用開關(guān)實(shí)現(xiàn)對倒計(jì)時(shí)進(jìn)行動(dòng)態(tài)的的設(shè)置</p><p>  循環(huán)一秒是怎么確定的</p><p>  五、設(shè)計(jì)結(jié)果分析及問題討論</p><p>  1、課程設(shè)計(jì)結(jié)果及分析</p>&

87、lt;p>  本實(shí)驗(yàn)結(jié)果與主程序流程吻合,開始紅燈全亮,接著變?yōu)辄S燈閃爍,然后東西方向?yàn)榧t燈,南北方向?yàn)榫G燈并顯示倒計(jì)時(shí)時(shí)間,倒計(jì)時(shí)間結(jié)束后,交通燈變成黃燈,閃爍幾次后,東西方向變成綠燈,南北變成紅燈,再變成黃燈,如此按交通燈的變化規(guī)則交替變化。至于倒計(jì)時(shí)初值設(shè)置,由于只有4位二進(jìn)制作為輸入口,所以我采用二進(jìn)制形式作為輸入數(shù)字格式,開關(guān)5-8 分別對應(yīng)二進(jìn)制,其中開關(guān)7為最低位,5對應(yīng)最高位,8用來判斷是否修改初值。例如開關(guān)5-8

88、分別設(shè)置1101,則代表修改初值為60秒。</p><p><b>  2、問題討論</b></p><p>  在課程設(shè)計(jì)過程中,遇到一個(gè)麻煩的問題就是:我想加入開關(guān)作為初值設(shè)置,但是8255A就三個(gè)口并且PB口已經(jīng)接了模擬燈,PA和PC需要接倒計(jì)時(shí)顯示的段選和位選,沒有多余的接口接開關(guān)了。最后在老師指導(dǎo)下,我們把位選線只接4根,剩下4根用來接開關(guān)。因此開關(guān)只能接4

89、根,分別是k5,k6,k7,k8 。最高位作為是否重新設(shè)置初值判斷,1則為重新設(shè)置初值,0 則保持初值。開關(guān)的前三位則用來表示初值大小,初值大小可以在程序中任意設(shè)定。在本次試驗(yàn)中我們?yōu)榱耸乖囼?yàn)簡單,我們設(shè)定三位二進(jìn)制的數(shù)值表示的是十進(jìn)制中十位。例如1101,怎表示更改初值為40秒。</p><p>  另外一個(gè)問題就是:關(guān)于顯示屏幕刷新的問題。其實(shí)在給顯示器送入顯示信號后,顯示器能夠立即顯示信號,但是我要的是倒計(jì)

90、時(shí)顯示,需要時(shí)間不斷變化,即顯示也不能總是顯示同一個(gè)信號,這個(gè)時(shí)候就需要刷新電信號,為了顯示一個(gè)數(shù)字,在一秒內(nèi)可能要將這個(gè)數(shù)字電信號的刷新幾百次以上,這樣的效果就是當(dāng)輸出信號停止時(shí),顯示立即停止,這就跟我們用的pc機(jī)顯示一樣。</p><p>  3、收獲,體會(huì)和建議</p><p>  通過此次模擬實(shí)驗(yàn)設(shè)計(jì),加深了對芯片74138譯碼器以及8255A的理解,對8255A芯片的PA口、PB

91、口、PC口的初始化設(shè)計(jì)有了更好的了解,同時(shí)在對8255A芯片的工作方式選擇,有了更好的認(rèn)識。通過實(shí)驗(yàn)的硬件連接,使我認(rèn)識到實(shí)驗(yàn)時(shí)獨(dú)自動(dòng)手能力的重要性,也使我意識到我的動(dòng)手能力的欠缺,使我認(rèn)識到在以后的學(xué)習(xí)和其他工作時(shí)應(yīng)對獨(dú)自動(dòng)手能力的培養(yǎng)。在課本上學(xué)得都是些理論知識,通過本次的實(shí)際操作,更加鍛煉了我對所學(xué)知識的認(rèn)知應(yīng)用能力,對8255A芯片的編程的更為直觀的應(yīng)用理解。</p><p>  經(jīng)過兩個(gè)星期的設(shè)計(jì)和調(diào)試

92、,我認(rèn)為此程序段雖然說比較通俗易懂,但這也存著很多的不足,經(jīng)過對程序和設(shè)計(jì)的認(rèn)真思考,我對控制程序做了如下的改進(jìn)設(shè)想:對東西和南北的綠燈倒計(jì)時(shí)初值重裝時(shí)可以采用同一個(gè)子程序,一個(gè)修改思想,是在初值重裝時(shí)可以利用小鍵盤來進(jìn)行手動(dòng)設(shè)置,另一個(gè)改進(jìn)思想是在控制程序中加入緊急情況的處理程序,既是要在緊急情況發(fā)生時(shí)采用中斷來完成,但是由于我的能力有限,在本次課程設(shè)計(jì)并沒有實(shí)現(xiàn)這些功能。</p><p>  在設(shè)計(jì)結(jié)束之后,

93、我也對程序進(jìn)行了認(rèn)真的思考。我認(rèn)為此程序段雖然說比較通俗易懂,但這也存著很多的不足,經(jīng)過對程序和設(shè)計(jì)的認(rèn)真思考,我對控制程序做了如下的改進(jìn)設(shè)想:在控制程序中加入緊急情況的處理程序,既是要在緊急情況發(fā)生時(shí)采用中斷來完成,但是由于我的能力有限,在本次課程設(shè)計(jì)并沒有實(shí)現(xiàn)這些功能。不過通過本次課程設(shè)計(jì),我對單片機(jī)不再感覺是那么難懂,和對程序控制硬件的理解,此次實(shí)驗(yàn)不但提高了我的實(shí)踐能力和理論水平,而且對于我認(rèn)識掌握各種操作技巧具有重大意義,使我

94、的綜合動(dòng)手能力得到了很大的提高!</p><p>  通過此次課程設(shè)計(jì),發(fā)現(xiàn)自己很多地方不足。剛開始拿到題目時(shí)自認(rèn)為和簡單,可仔細(xì)想象都不能很明確的說出交通燈的具體變化規(guī)則,可見對周邊那么常見事物的忽視,讓我認(rèn)識到要想在各個(gè)方面做的更好必須用心對待身邊的每一件事,我認(rèn)為做實(shí)驗(yàn),首先實(shí)驗(yàn)態(tài)度要端正,正確對待任何一個(gè)小的程序,有耐心,一步一步做下去,不斷完善,切不可冒進(jìn),編程更需要腳踏實(shí)地,逐個(gè)調(diào)試子程序。在這方面*

溫馨提示

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

評論

0/150

提交評論