微機(jī)原理課程設(shè)計(jì)--簡(jiǎn)單字幕機(jī)_第1頁(yè)
已閱讀1頁(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、<p>  課 程 設(shè) 計(jì)</p><p>  課程設(shè)計(jì)題目:簡(jiǎn)單字幕機(jī)</p><p><b>  一、設(shè)計(jì)目的</b></p><p>  通過(guò)課程設(shè)計(jì)使學(xué)生更進(jìn)一步掌握微機(jī)原理與應(yīng)用課程的有關(guān)知識(shí),提高用匯編語(yǔ)言編程的能力,加深對(duì)匯編語(yǔ)言的理解。通過(guò)查閱資料,閱讀程序,提高設(shè)計(jì)程序的能力及動(dòng)手能力,使編程水平有一定的提高,

2、同時(shí)也使學(xué)生通過(guò)動(dòng)手進(jìn)行硬件設(shè)計(jì)及程序設(shè)計(jì)從而提高解決實(shí)際問(wèn)題的能力。</p><p>  二、設(shè)計(jì)的原始資料及依據(jù)</p><p>  查閱可編程并行芯片8255或其他相關(guān)資料。</p><p>  文字顯示是通過(guò)把該文字的圖形信息用輸出到顯示器件(),配合軟件不同的刷新方式即可實(shí)現(xiàn)文字的移動(dòng)。</p><p>  三、設(shè)計(jì)的主要內(nèi)容及要求

3、</p><p>  內(nèi)容:利用微機(jī)原理試驗(yàn)箱的8255單元和8X8發(fā)光二極管矩陣,動(dòng)態(tài)顯示漢字及字符。</p><p>  要求:實(shí)現(xiàn)多種方式的字幕移動(dòng)。</p><p>  四、對(duì)設(shè)計(jì)說(shuō)明書(shū)撰寫(xiě)內(nèi)容、格式、字?jǐn)?shù)的要求 </p><p>  1.課程設(shè)計(jì)說(shuō)明書(shū)(論文)是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,一般不應(yīng)少于3000字。</p&g

4、t;<p>  2.學(xué)生應(yīng)撰寫(xiě)的內(nèi)容為:中文摘要和關(guān)鍵詞、目錄、正文、參考文獻(xiàn)等。課程設(shè)計(jì)說(shuō)明書(shū)(論文)的結(jié)構(gòu)及各部分內(nèi)容要求可參照《沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫(xiě)規(guī)范》執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書(shū)寫(xiě)工整,裝訂整齊。</p><p>  3.說(shuō)明書(shū)(論文)手寫(xiě)或打印均可。手寫(xiě)要用學(xué)校統(tǒng)一的課程設(shè)計(jì)用紙,用黑或藍(lán)黑墨水工整書(shū)寫(xiě);打印時(shí)按《沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫(xiě)規(guī)范》的要求進(jìn)行打印

5、。</p><p>  4. 課程設(shè)計(jì)說(shuō)明書(shū)(論文)裝訂順序?yàn)椋悍饷?、任?wù)書(shū)、成績(jī)?cè)u(píng)審意見(jiàn)表、中文摘要和關(guān)鍵詞、目錄、正文、參考文獻(xiàn)</p><p>  五、 設(shè)計(jì)完成后應(yīng)提交成果的種類(lèi)、數(shù)量、質(zhì)量等方面的要求;</p><p>  提交完善的軟硬件實(shí)驗(yàn)電路一套和課程設(shè)計(jì)說(shuō)明書(shū)一份,組內(nèi)每人應(yīng)有自己的創(chuàng)新內(nèi)容,不得雷同。</p><p>&l

6、t;b>  六、時(shí)間進(jìn)度安排;</b></p><p>  七、主要參考資料(文獻(xiàn))。</p><p> ?。薄ⅰ段C(jī)原理與應(yīng)用》大連理工大學(xué)出版社</p><p> ?。病ⅰ段C(jī)原理與接口技術(shù)》北京航空航天大學(xué)出版社</p><p>  3、《微型計(jì)算機(jī)原理與匯編語(yǔ)言》電子工業(yè)出版社</p><p>

7、; ?。础ⅰ叮福埃福福福埃福秴R編語(yǔ)言程序設(shè)計(jì)》中央廣播電視大學(xué)出版社</p><p><b>  摘要:</b></p><p>  本次設(shè)計(jì)的簡(jiǎn)單字幕機(jī)可以實(shí)現(xiàn)時(shí)間的左移滾動(dòng)顯示。以I386EX CPU為核心,再經(jīng)8259中斷控制器即可進(jìn)行時(shí)、分、秒的計(jì)時(shí)。并采用可編程并行接口芯片8255,利用其A口和B口,連接到8*8 LED點(diǎn)陣,便可編程顯示任意圖形與符號(hào),即

8、實(shí)現(xiàn)滾動(dòng)樣式的電子鐘。</p><p><b>  關(guān)鍵詞:</b></p><p>  字幕機(jī)、滾動(dòng)、時(shí)間、可編程并行接口8255、8*8 LED點(diǎn)陣、中斷控制器8259、定時(shí)器8254</p><p><b>  目錄</b></p><p><b>  第1章 緒論1</b&

9、gt;</p><p>  第2章 實(shí)驗(yàn)原理2</p><p><b>  2.1主要原理2</b></p><p><b>  2.2硬件設(shè)計(jì)2</b></p><p>  2.2.1 8*8 LED點(diǎn)陣2</p><p>  2.2.2可編程并行接口82553&

10、lt;/p><p>  2.2.3中斷控制器82595</p><p><b>  2.3軟件設(shè)計(jì)6</b></p><p>  第3章 程序設(shè)計(jì)8</p><p><b>  3.1 源程序8</b></p><p>  3.2程序調(diào)試15</p>&

11、lt;p>  第4章 總 結(jié)17</p><p><b>  參考文獻(xiàn)18</b></p><p><b>  第1章 緒論</b></p><p>  隨著視頻及多媒體技術(shù)的不斷發(fā)展,字幕機(jī)用途越來(lái)越廣泛,不僅僅應(yīng)用于電視臺(tái)的節(jié)目字幕播出、電影電視劇的制作,在視頻監(jiān)控、民用廣告、婚慶錄像等活動(dòng)中也大量的使用,同

12、時(shí)操作字幕機(jī)也變得簡(jiǎn)單易用,就連很多沒(méi)有多少計(jì)算機(jī)專(zhuān)業(yè)知識(shí)的人也能夠輕松上手??梢钥闯?,字幕機(jī)對(duì)于當(dāng)前很多的影視行為都是不可缺少的</p><p>  字幕機(jī)是由計(jì)算機(jī)、字幕卡和字幕制作軟件三部分組成的。現(xiàn)在計(jì)算機(jī)很普及,相信大家不用多說(shuō),對(duì)它也很熟悉;字幕制作軟件就是控制字幕以何種方式疊加到背景畫(huà)面上,與使用者交互的工具,沒(méi)有字幕軟件,使用者就沒(méi)辦法控制計(jì)算機(jī),就沒(méi)辦法制作字幕;在有了計(jì)算機(jī)和字幕軟件后,必須要

13、有一個(gè)能夠允許背景畫(huà)面輸入,并且在疊加字幕以后,最終輸出帶有字幕視頻的設(shè)備。大家都知道,計(jì)算機(jī)在一般情況下,只有鍵盤(pán)、手寫(xiě)筆等輸入設(shè)備,顯示器、打印機(jī)等輸出設(shè)備,要想接收視頻進(jìn)入,而后把視頻輸出,是另外需要其他附加設(shè)備的,字幕卡就是這樣的設(shè)備。</p><p>  在將系統(tǒng)設(shè)置設(shè)為編碼方式后,接下來(lái)有三個(gè)選項(xiàng),一是字幕疊加、二是背景直通、三是字幕幀存;字幕卡分為兩層,一層是背景視頻,一層是字幕。當(dāng)選中字幕疊加時(shí),

14、字幕軟件就會(huì)控制字幕卡中的混疊器,把制作好的字幕混疊到背景畫(huà)面上,這時(shí)輸出的視頻就已經(jīng)是疊好字幕的視頻了;當(dāng)選中背景直通時(shí),混疊器不工作,字幕層與背景層互不干涉,背景視頻只作簡(jiǎn)單的模數(shù)、數(shù)模轉(zhuǎn)換,然后輸出,輸出的為沒(méi)有疊加字幕的視頻;當(dāng)選中字幕幀存時(shí),混疊器也不工作,字幕卡對(duì)接收到的背景視頻不予輸出,只輸出字幕層,所以最終輸出的只有字幕,沒(méi)有背景視頻。</p><p><b>  第2章 實(shí)驗(yàn)原理<

15、;/b></p><p><b>  2.1主要原理</b></p><p>  簡(jiǎn)單字幕機(jī)動(dòng)態(tài)顯示字幕移動(dòng)是由可編程的并行接口器件8255的四個(gè)口來(lái)實(shí)現(xiàn)的,包括8255的A口、B口、C口和一個(gè)控制寄存器。通過(guò)對(duì)其控制端口賦予一定的控制字,來(lái)設(shè)定8255的工作方式,在本設(shè)計(jì)中,使8255功能控制為方式選擇1,工作于方式0,即基本輸入輸出方式,并將A口、B口和C口

16、都設(shè)置成輸出,所以控制字為80H。整個(gè)設(shè)計(jì)程序是這樣實(shí)現(xiàn)的:首先,是定義公共變量L_CON,包括定義8255端口A、B、C口地址和控制口地址,定義堆棧段,定義一個(gè)32位的字型存儲(chǔ)空間。然后輸入組成“電子”二字的筆畫(huà)代碼數(shù)據(jù),共由15行、8列組成,這個(gè)數(shù)字矩陣可根據(jù)不同的數(shù)字而改變,這也是程序編寫(xiě)的關(guān)鍵之一。然后,編寫(xiě)程序初始化語(yǔ)句。把上述數(shù)據(jù)全部數(shù)據(jù)寄存器DS中;把控制字80H該8255的控制端口輸出(使8255功能控制為方式選擇1,工

17、作于方式0,即基本輸入輸出方式,并將A口、B口和C口都設(shè)置成輸出,所以控制字為80H);因?yàn)闈M(mǎn)足8X8發(fā)光二極管矩陣燈亮的條件是列為0且行為1,所以在此設(shè)定列的最高位L8列滿(mǎn)足全0,從列高位到列低位即為01111111。定義完成后,即為程序最關(guān)鍵的部分——循環(huán)顯示字幕移動(dòng)。定義</p><p><b>  2.2硬件設(shè)計(jì)</b></p><p>  2.2.1 8*8

18、 LED點(diǎn)陣</p><p>  8*8 LED點(diǎn)是將8行8列個(gè)LED以矩陣方式排成為一個(gè)器件。本次設(shè)計(jì)所使用的LED點(diǎn)陣是使每行LED的陰極連接在一起,每列LED的陽(yáng)極連接在一起,再經(jīng)過(guò)驅(qū)動(dòng)電路分別引出8個(gè)行引角和8個(gè)列引角,若要點(diǎn)亮其中的LED,則需行為低電平0,列為高電平1。LED點(diǎn)陣的顯示采用掃描的方式,首先將所要顯示的字按每行拆解成多組顯示信號(hào)。若LED點(diǎn)陣的第一列為顯示數(shù)據(jù)的D0、第8列為D7,則可列

19、出數(shù)字“0”的顯示編碼,如表2.1所示:</p><p>  表_2.1 LED行顯示</p><p>  編碼方式必須與實(shí)際線(xiàn)路相符,苦第1列為MSB,第8列為L(zhǎng)SB,則連接到接口時(shí),也一定要按這樣的順序才行。當(dāng)然,若要第1列為L(zhǎng)SB,第8列為MSB,則線(xiàn)路連接也要跟著調(diào)整。</p><p>  LED點(diǎn)陣的顯示方式就是按顯示數(shù)據(jù)編碼的順序,一行一行地顯示。若要

20、顯示數(shù)字“0”,先將“7FH”掃描信號(hào)送到至LED點(diǎn)陣的行引腳,再將第一行的顯示數(shù)據(jù)“00H”送到LED點(diǎn)陣的列引腳,即可顯示第一行,此時(shí)其它行并不顯示。接著顯示第二行,先將“BFH”掃描信號(hào)送至LED點(diǎn)陣的行引腳,再將第二行的顯示數(shù)據(jù)“4FH”送至LED點(diǎn)陣的列引腳,即可顯示第二行,此時(shí)其它行并不顯示……依此類(lèi)推,直到最后一行。</p><p>  第行的顯示要有一定時(shí)間,若反復(fù)執(zhí)行從第一行到最后一行的掃描,由

21、于人類(lèi)視覺(jué)瞬時(shí)現(xiàn)象,將會(huì)感覺(jué)到8行LED同時(shí)顯示的樣子。若顯示時(shí)間太短,則亮度不夠,若顯示時(shí)間太長(zhǎng),則會(huì)感覺(jué)閃爍。</p><p>  在以上基礎(chǔ)上,若間隔一定時(shí)間,再使每次顯示不同的字型,即可實(shí)現(xiàn)不同的動(dòng)態(tài)顯示效果。</p><p>  根據(jù)以上分析,可使8*8 LED點(diǎn)陣的行引角與8255芯片的A口相連,列引角與B口相連,如“硬件電路接線(xiàn)圖”部分。</p><p&g

22、t;  2.2.2可編程并行接口8255</p><p>  8255工作在方式0時(shí),A口和B口的輸出是可以獨(dú)立的,而且都具有鎖存能力,因此使用此芯片作為L(zhǎng)ED點(diǎn)陣字幕機(jī)與系統(tǒng)總線(xiàn)的接口單元。其連接如“硬件電路接線(xiàn)圖”部分。</p><p>  RD為讀信號(hào)線(xiàn),接系統(tǒng)總線(xiàn)的IOR信號(hào),實(shí)現(xiàn)對(duì)8255的讀操作。</p><p>  WR為寫(xiě)信號(hào)線(xiàn),接系統(tǒng)總線(xiàn)的IOW端

23、,實(shí)現(xiàn)對(duì)8255的寫(xiě)操作。</p><p>  CS為片選信號(hào)線(xiàn),接系統(tǒng)總線(xiàn)的IOY1,當(dāng)它為低電平(有效)時(shí),才選中該8255芯片。</p><p>  A0、A1為口地址選擇信號(hào)線(xiàn)。本次設(shè)計(jì)使其分別與系統(tǒng)總線(xiàn)的XA1、XA2相連,它們的不同編碼可分別尋址3個(gè)口和一個(gè)控制寄存器,如表2.2所示:</p><p>  表_2.2 選擇編碼</p>&l

24、t;p>  PA0~PA7為A口的8條輸入輸出信號(hào)線(xiàn),該口的這8條線(xiàn)是工作于輸入、輸出還是雙向(輸入、輸出)方式,可由軟件編程來(lái)決定。</p><p>  PB0~PB7為B口的8條輸入輸出信號(hào)線(xiàn),利用軟件編程可指定這8條線(xiàn)是輸入還是輸出。</p><p>  由于C口未使用,所以這里不研究。</p><p>  這里的8255接口所占地址范圍為0640H~0

25、646H。當(dāng)對(duì)8255接口進(jìn)行寫(xiě)操作時(shí),各信號(hào)線(xiàn)的狀態(tài)如表2.3所示:</p><p>  表_2.3 信號(hào)線(xiàn)狀態(tài)</p><p>  8255在應(yīng)用過(guò)程中,將不同的控制字裝入芯片中控制寄存器,即可確定8255的工作方式。8255的控制字由8位二進(jìn)制數(shù)構(gòu)成,各位的控制功能如圖2.1所示:</p><p>  圖2.1 控制功能</p><p&g

26、t;  說(shuō)明:當(dāng)控制字bit7=1時(shí),控制字的bit6~bit3這4位用來(lái)控制A組,即A口的8位和C口的高4位,而控制字的低3位bit2~bit0用來(lái)控制B組,包括B口的8位和C口的低4位。</p><p>  2.2.3中斷控制器8259</p><p>  (1)本次設(shè)計(jì)是利用8259按鍵中斷,并在中斷服務(wù)程序中對(duì)時(shí)間進(jìn)行控制。該單元包含有兩個(gè)級(jí)聯(lián)中斷控制器,其內(nèi)部連接及外部管角引出如

27、圖2.2所示:</p><p>  圖2.2 8259內(nèi)部連接及外部管腳</p><p>  內(nèi)部連接 INT為8259的中斷請(qǐng)求輸出信號(hào),直接接到CPU的INTR輸入端。 CAS2:0為從控制器的級(jí)聯(lián)控制線(xiàn)。IR2接到從片的INT端構(gòu)成兩片8259的級(jí)聯(lián)外部管角 0供系統(tǒng)串口使用。 MIR6、MIR7中斷請(qǐng)求輸入端,這里只用其MIR7端,與8254的連接如“硬件電路接線(xiàn)圖”部分。<

28、/p><p>  (2)8259初始化和操作命令說(shuō)明</p><p>  8259內(nèi)部有二類(lèi)控制字,一類(lèi)是初始化命令字(ICW),主要使8259處于初始狀態(tài),另一類(lèi)是操作命令(OCW),使處于初始狀態(tài)的8259去執(zhí)行具體的某種操作方式,操作命令字可在8259初始化后的任何時(shí)刻寫(xiě)入。</p><p>  8259僅占兩個(gè)接口地址,在利用各種命令字對(duì)其初始化時(shí),一方面利用這

29、兩個(gè)地址,同時(shí)利用命令字中D4、D5的狀態(tài)及命令字的寫(xiě)入順序?qū)@些命令加以區(qū)分,如表2.4所示</p><p>  表_2.4 接口地址</p><p><b>  2.3軟件設(shè)計(jì)</b></p><p>  通過(guò)硬件電路的設(shè)計(jì),已將各芯片連接成一個(gè)完整的電路,在此基礎(chǔ)上,即可進(jìn)行程序的編寫(xiě)、改錯(cuò)與調(diào)試。</p><p>

30、;  為實(shí)現(xiàn)在8*8LED點(diǎn)陣上顯示時(shí)間的左移滾動(dòng)顯示,程序的編寫(xiě)分為兩大模塊,第一模塊是設(shè)計(jì)任意字幕的左移滾動(dòng),第二模塊是電子鐘設(shè)計(jì)。只要將兩??焱ㄟ^(guò)同一段內(nèi)存單元聯(lián)系在一起,即可實(shí)現(xiàn)遇期的顯示效果。</p><p>  由于本次課設(shè)的時(shí)間有限,而且程序也比較大,容易出現(xiàn)各種意想不到的錯(cuò)誤與結(jié)果,所以由我和另外一名同學(xué)分別完成每一模塊,本人主要完成字幕的左移滾動(dòng)和兩模塊的連接。</p><p

31、>  為把時(shí)間和字幕滾動(dòng)聯(lián)系在一起,最簡(jiǎn)單易行的辦法就是在內(nèi)存中占同一地址單元,而此段單元必需存放8*8 LED點(diǎn)陣以直接顯示的編碼。根據(jù)8*8 LED點(diǎn)陣的顯示特點(diǎn)(前已敘述),假如顯示如下時(shí)間如圖2.4所示:</p><p><b>  圖2.3時(shí)間顯示</b></p><p>  共40行,每一行顯示編碼為8位二進(jìn)制(一個(gè)字節(jié)),所以此段內(nèi)存單元共需40個(gè)

32、字節(jié)??稍跀?shù)據(jù)段內(nèi)(DATA)定義TABLE DB 40 DUP(0)</p><p>  假設(shè)內(nèi)存物理單元如圖2.4所示:</p><p>  圖2.4 內(nèi)存物理單元</p><p>  TABLE開(kāi)始的前4個(gè)字節(jié)固定為“00H”,即什么也不顯示,這是為正確讀準(zhǔn)時(shí)間而插入的空白區(qū),避免了時(shí)間滾動(dòng)時(shí),時(shí)的第1位與分的最后1位混淆在一起.</p><

33、;p>  PP是事先定義的一個(gè)字內(nèi)存單元,用來(lái)存放TABLE開(kāi)始段的某一單元地址,開(kāi)始指向TABLE,顯示某一字型時(shí),以PP所指單元開(kāi)始,掃描到第8個(gè)字節(jié),然后再?gòu)腜P開(kāi)始,循環(huán)掃描這8個(gè)字節(jié),循環(huán)一定次數(shù)后,便能看清這一字型。然后使PP值加1,即指向下一單元,再重復(fù)以上步驟,便顯示第二、三、四……個(gè)字型了,這在點(diǎn)陣字幕上就會(huì)形成向左移動(dòng)的效果。</p><p><b>  2.4硬件接線(xiàn)圖<

34、;/b></p><p>  圖2.5 硬件接線(xiàn)圖</p><p><b>  第3章 程序設(shè)計(jì)</b></p><p><b>  3.1 源程序</b></p><p>  PUBLIC L_CON ; 定義公共變量</p><p&

35、gt;  M8255_AEQU 0640H ;定義8255A口、B口、C口和控制口地址</p><p>  M8255_BEQU 0642H</p><p>  M8255_CEQU 0644H</p><p>  M8255_CONEQU 0646H</p><p>  SSTACK SEGMENT STA

36、CK ;定義堆棧段</p><p>  DW 32 DUP(?) ;定義一個(gè)32位的字型存儲(chǔ)空間</p><p>  SSTACK ENDS</p><p>  DATA SEGMENT</p><p>  TAB1 DB 7cH,00H,00H,00H,00H,00H,00H,00H ;

37、組成"電子"二字的</p><p>  TAB2 DB 54H, 7cH,00H,00H,00H,00H,00H,00H ;數(shù)字代碼</p><p>  TAB3 DB 0ffH, 54H,7cH,00H,00H,00H,00H,00H</p><p>  TAB4 DB 55H, 0ffH,54H,7cH,00H,00

38、H,00H,00H</p><p>  TAB5 DB 7DH,55H,0FFH,54H,7CH,00H,00H,00H</p><p>  TAB6 DB 07H,7DH,55H,0FFH,54H,7CH,00H,00H</p><p>  TAB7 DB 00H,07H,7DH,55H,0FFH,54H,7CH,00H</p>&

39、lt;p>  TAB8 DB 20H,00H,07H,7DH,55H,0FFH,54H,7CH</p><p>  TAB9 DB 0A0H,20H,00H,07H,7DH,55H,0FFH,54H</p><p>  TAB10 DB 0BFH,0A0H,20H,00H,07H,7DH,55H,0FFH</p><p>  TAB11 D

40、B 0E0H,0BFH,0A0H,20H,00H,07H,7DH,55H</p><p>  TAB12 DB 0A0H,0E0H,0BFH,0A0H,20H,00H,07H,7DH</p><p>  TAB13 DB 00H,0A0H,0E0H,0BFH,0A0H,20H,00H,07H</p><p>  TAB14 DB 00H,00H,00H,

41、0A0H,0E0H,0BFH,0A0H,20H</p><p>  TAB15 DB 00H,00H,00H,00H,0A0H,0E0H,0BFH,0A0H</p><p>  L_CON DB ?</p><p>  DATA ENDS</p><p>  CODE SEGMENT</p><p>  AS

42、SUME CS:CODE, DS:DATA</p><p>  START:PUSH DS</p><p>  MOV AX, 0000H</p><p>  MOV DS, AX</p><p>  MOV AX, OFFSET MIR6 ;取中斷入口地址</p><p>  MOV SI, 0078H;

43、中斷矢量地址</p><p>  MOV [SI], AX;填I(lǐng)RQ7的偏移矢量</p><p>  MOV AX, CS;段地址</p><p>  MOV SI, 007AH</p><p>  MOV [SI], AX;填I(lǐng)RQ7的段地址矢量</p><p><b>  CLI<

44、;/b></p><p><b>  POP DS</b></p><p>  ;初始化主片8259</p><p>  MOV AL, 11H</p><p>  OUT 20H, AL;ICW1</p><p>  MOV AL, 18H</p><p>

45、  OUT 21H, AL;ICW2</p><p>  MOV AL, 04H</p><p>  OUT 21H, AL;ICW3</p><p>  MOV AL, 01H</p><p>  OUT 21H, AL;ICW4</p><p>  MOV AL, 0BFH;OCW1

46、</p><p>  OUT 21H, AL</p><p><b>  STI</b></p><p>  MOV AX, DATA ; 初始化語(yǔ)句</p><p>  MOV DS, AX</p><p>  MOV L_CON, 7FH<

47、;/p><p>  MOV DX, M8255_CON</p><p>  MOV AL, 80H ;寫(xiě)8255控制字</p><p>  OUT DX, AL</p><p><b>  AAe:NOP</b></p><p><b>

48、;  JMP AAe</b></p><p><b>  MIR6:STI</b></p><p><b>  CALL DELA</b></p><p>  AA0:MOV BL, 0D0H ;定義外循環(huán)次數(shù)</p><p>  

49、AA1:MOV SI, OFFSET TAB1 ; 循環(huán)顯示第一個(gè)圖形</p><p>  MOV CX, 0008H ; 定義內(nèi)循環(huán)次數(shù)8次</p><p>  DIS1:MOV DX, M8255_A </p><p>  MOV AL, L_CON</p><p> 

50、 OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1 ; 列右移一位</p><p>  INC SI ;

51、行自動(dòng)加1</p><p>  CALL DELAY ; 調(diào)用延時(shí)子程序</p><p>  LOOP DIS1 </p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b&

52、gt;  JNE AA1</b></p><p>  MOV BL, 0D0H</p><p>  AA2:MOV SI, OFFSET TAB2 ; 循環(huán)顯示第二個(gè)圖形;</p><p>  MOV CX, 0008H</p><p>  DIS2:MOV DX, M8255_A</p><p&

53、gt;  MOV AL, L_CON</p><p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b&g

54、t;  INC SI</b></p><p>  CALL DELAY</p><p><b>  LOOP DIS2</b></p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JN

55、E AA2</b></p><p>  MOV BL, 0D0H</p><p>  AA3:MOV SI, OFFSET TAB3 ; 循環(huán)顯示第三個(gè)圖形</p><p>  MOV CX, 0008H</p><p>  DIS3:MOV DX, M8255_A</p><p>  MOV A

56、L, L_CON</p><p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI

57、</b></p><p>  CALL DELAY</p><p><b>  LOOP DIS3</b></p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA3</

58、b></p><p>  MOV BL, 0D0H</p><p>  AA4:MOV SI, OFFSET TAB4 ; 循環(huán)顯示第四個(gè)圖形</p><p>  MOV CX, 0008H</p><p>  DIS4:MOV DX, M8255_A</p><p>  MOV AL, L_C

59、ON</p><p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b

60、></p><p>  CALL DELAY</p><p><b>  LOOP DIS4</b></p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA4</b>&

61、lt;/p><p>  MOV BL, 0D0H</p><p>  AA5:MOV SI, OFFSET TAB5 ; 循環(huán)顯示第五個(gè)圖形 </p><p>  MOV CX, 0008H</p><p>  DIS5:MOV DX, M8255_A</p><p>  MOV AL, L_CON<

62、;/p><p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b>&

63、lt;/p><p>  CALL DELAY</p><p><b>  LOOP DIS5</b></p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA5</b></p

64、><p>  MOV BL, 0D0H</p><p>  AA6:MOV SI, OFFSET TAB6 ; 循環(huán)顯示第六個(gè)圖形</p><p>  MOV CX, 0008H</p><p>  DIS6:MOV DX, M8255_A</p><p>  MOV AL, L_CON</

65、p><p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b><

66、;/p><p>  CALL DELAY</p><p><b>  LOOP DIS6</b></p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA6</b></p&g

67、t;<p>  MOV BL, 0D0H</p><p>  AA7:MOV SI, OFFSET TAB7 ; 循環(huán)顯示第七個(gè)圖形</p><p>  MOV CX, 0008H </p><p>  DIS7:MOV DX, M8255_A</p><p>  MOV AL, L_CON</p>

68、<p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b></p&g

69、t;<p>  CALL DELAY</p><p><b>  LOOP DIS7</b></p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA7</b></p>&

70、lt;p>  MOV BL, 0D0H</p><p>  AA8:MOV SI, OFFSET TAB8 ; 循環(huán)顯示第八個(gè)圖形</p><p>  MOV CX, 0008H</p><p>  DIS8:MOV DX, M8255_A</p><p>  MOV AL, L_CON</p>&l

71、t;p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b></p>

72、<p>  CALL DELAY</p><p><b>  LOOP DIS8</b></p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA8</b></p><p

73、>  MOV BL, 0D0H</p><p>  AA9:MOV SI, OFFSET TAB9 ; 循環(huán)顯示第九個(gè)圖形</p><p>  MOV CX, 0008H</p><p>  DIS9:MOV DX, M8255_A</p><p>  MOV AL, L_CON</p><p> 

74、 OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b></p><p>

75、;  CALL DELAY</p><p><b>  LOOP DIS9</b></p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA9</b></p><p>  MO

76、V BL, 0D0H</p><p>  AA10:MOV SI, OFFSET TAB10 ; 循環(huán)顯示第十個(gè)圖形</p><p>  MOV CX, 0008H</p><p>  DIS10:MOV DX, M8255_A</p><p>  MOV AL, L_CON</p><p>  OUT

77、 DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b></p><p>  C

78、ALL DELAY</p><p>  LOOP DIS10</p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA10</b></p><p>  MOV BL, 0D0H</p>

79、<p>  AA11:MOV SI, OFFSET TAB11 ; 循環(huán)顯示第十一個(gè)圖形</p><p>  MOV CX, 0008H</p><p>  DIS11:MOV DX, M8255_A</p><p>  MOV AL, L_CON</p><p>  OUT DX, AL</p><

80、p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b></p><p>  CALL DELAY</p>&l

81、t;p>  LOOP DIS11</p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA11</b></p><p>  MOV BL, 0D0H</p><p>  AA12:MOV S

82、I, OFFSET TAB12 ; 循環(huán)顯示第十二個(gè)圖形</p><p>  MOV CX, 0008H</p><p>  DIS12:MOV DX, M8255_A</p><p>  MOV AL, L_CON</p><p>  OUT DX, AL</p><p>  MOV DX,

83、M8255_B</p><p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b></p><p>  CALL DELAY</p><p>  LOOP D

84、IS12</p><p><b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA12</b></p><p>  MOV BL, 0D0H</p><p>  AA13:MOV SI, OFFSET TAB13

85、 ; 循環(huán)顯示第十三個(gè)圖形</p><p>  MOV CX, 0008H</p><p>  DIS13:MOV DX, M8255_A</p><p>  MOV AL, L_CON</p><p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><

86、p>  MOV AL, [SI]</p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b></p><p>  CALL DELAY</p><p>  LOOP DIS13</p><p&g

87、t;<b>  DEC BL</b></p><p>  CMP BL, 00H</p><p><b>  JNE AA13</b></p><p>  MOV BL, 0D0H</p><p>  AA14:MOV SI, OFFSET TAB14 ; 循環(huán)顯示第十四個(gè)圖形</p&

88、gt;<p>  MOV CX, 0008H</p><p>  DIS14:MOV DX, M8255_A</p><p>  MOV AL, L_CON</p><p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]<

89、/p><p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b></p><p>  CALL DELAY</p><p>  LOOP DIS14</p><p><b>  DEC BL<

90、/b></p><p>  CMP BL, 00H</p><p><b>  JNE AA14</b></p><p>  MOV BL, 0D0H</p><p>  AA15:MOV SI, OFFSET TAB15 ; 循環(huán)顯示第十五個(gè)圖形</p><p

91、>  MOV CX, 0008H</p><p>  DIS15:MOV DX, M8255_A</p><p>  MOV AL, L_CON</p><p>  OUT DX, AL</p><p>  MOV DX, M8255_B</p><p>  MOV AL, [SI]</p>&l

92、t;p>  OUT DX, AL</p><p>  ROR L_CON, 1</p><p><b>  INC SI</b></p><p>  CALL DELAY</p><p>  LOOP DIS15</p><p><b>  DEC BL</b><

93、/p><p>  CMP BL, 00H</p><p><b>  JNE AA15</b></p><p>  MOV AL, 20H</p><p>  OUT 20H, AL;中斷結(jié)束命令</p><p><b>  IRET</b></p><

94、;p>  DELA:PUSH CX</p><p>  MOV CX, 0F00H</p><p>  AAw:PUSH AX</p><p><b>  POP AX</b></p><p><b>  LOOP AAw</b></p><p><b>

95、;  POP CX</b></p><p><b>  RET</b></p><p>  DELAY:PUSH CX ;延時(shí)子程序</p><p>  MOV CX, 0100H</p><p>  DLAY1:LOOP DLAY1</p&g

96、t;<p><b>  POP CX</b></p><p><b>  RET</b></p><p><b>  CODEENDS</b></p><p><b>  END START</b></p><p><b>  3

97、.2程序調(diào)試</b></p><p>  3.2.1 調(diào)試過(guò)程</p><p>  1.現(xiàn)象:LED點(diǎn)陣無(wú)顯示</p><p>  原因:所要顯示的40個(gè)字節(jié)內(nèi)存內(nèi)容(編碼)是在定義時(shí)賦值的,即都為00H,而在中斷服務(wù)程序中,時(shí)間改變時(shí),末能對(duì)此內(nèi)容進(jìn)行更新。</p><p>  解決:(1)修改中斷服務(wù)程序,未能實(shí)現(xiàn)。</

98、p><p> ?。?)在程序的開(kāi)始直接加以任意數(shù)字編碼的賦值語(yǔ)句。LED有顯示。</p><p>  2.現(xiàn)象:LED所顯示的數(shù)字是左右顛倒的樣子(像是反字)。</p><p>  原因:行掃描順序應(yīng)該是從第1行到第8行,而此時(shí)是從第8行到第1行。</p><p>  解決:交LED點(diǎn)陣的行引角接線(xiàn)反過(guò)來(lái)接。如硬件電路接線(xiàn)圖。</p>

99、<p>  3.現(xiàn)象:LED顯示內(nèi)容移動(dòng)太快,難以看清。</p><p>  原因:在進(jìn)行行掃描時(shí),延時(shí)太短,另外在顯示一個(gè)字型到別一字型時(shí),延時(shí)也短。</p><p>  解決:將DELAYL中的CX值改大,BL中的值改為0DH即可。</p><p>  4.現(xiàn)象:LED所顯示內(nèi)容不能循環(huán)移動(dòng),只能從頭左移到最后, 然

100、后就顯示一些亂碼。(這是本程序中很難解決的一個(gè)問(wèn)題,即是難以被發(fā)現(xiàn)的問(wèn)題)</p><p>  原因:程序中的無(wú)條件轉(zhuǎn)移指令JAE AA1,錯(cuò)誤時(shí)是</p><p><b>  CMP DX,8 </b></p><p>  JA AA1 </p><p>  當(dāng)DX為8時(shí),就不發(fā)生轉(zhuǎn)移,接著向下執(zhí)行。而后面有

101、兩條語(yǔ)句:</p><p><b>  MOV CX,8</b></p><p>  SUB CX,DX </p><p>  執(zhí)行后CX內(nèi)容為0,緊接著就執(zhí)行</p><p>  DIS3:CALL OUT_L</p><p>  LOOP DIS3 </p><p

102、>  當(dāng)?shù)谝淮无D(zhuǎn)向DIS3執(zhí)行時(shí),CX自動(dòng)減1,其值就變成了“8001H”,通過(guò)單步執(zhí)行可以看到這一變化。當(dāng)每進(jìn)行這樣的循環(huán)次數(shù)后,又要重新循環(huán)0DH次以上步驟,顯然,程序會(huì)在此執(zhí)行很長(zhǎng)一段時(shí)間。所以出現(xiàn)亂碼。</p><p>  解決:只將JA AA1語(yǔ)句改為JAE AA1。</p><p>  5.現(xiàn)象:以上所顯示的時(shí)間是通過(guò)賦值語(yǔ)句實(shí)現(xiàn)的,但時(shí)間本身不能改變。</p>

103、;<p>  原因:中斷服務(wù)程序內(nèi)時(shí)間刷新語(yǔ)句有問(wèn)題。</p><p>  解決:進(jìn)行了多次修改,但仍未能解決。由于課設(shè)時(shí)間有限,只能實(shí)現(xiàn)到這種情況。</p><p><b>  第4章 總 結(jié)</b></p><p>  通過(guò)對(duì)這程序的制作,使我對(duì)匯編語(yǔ)言的基本知識(shí)的使用更加熟練,同時(shí)也增加了我對(duì)匯編語(yǔ)言的一些認(rèn)識(shí),在作業(yè)完成過(guò)

104、程中通過(guò)和同學(xué)的交流,也增加了合作的技巧。通過(guò)查閱以下資料也學(xué)到了一些課本上沒(méi)有的東西,拓寬了自己的知識(shí)面,增加了學(xué)好匯編語(yǔ)言的信心。 </p><p>  這不是第一次用匯編語(yǔ)言來(lái)設(shè)計(jì)一個(gè)小程序,平時(shí)做了很多實(shí)驗(yàn),寫(xiě)了很多小程序。但這次是一個(gè)綜合的程序,平時(shí)的很多程序都用到了。很多子程序的設(shè)計(jì)是固定的,因此可以直接從指導(dǎo)資料中調(diào)用,大多只需要修改幾個(gè)參數(shù)就可以,這大大方便了我們的設(shè)計(jì),為我們節(jié)省了很多

105、的時(shí)間。在這次課程設(shè)計(jì)中,我真正體會(huì)到了合作的重要性,遇到很多問(wèn)題時(shí),當(dāng)我看書(shū)查資料不能解決時(shí),這是去找同學(xué)討論一下,收獲很大,可以使很多問(wèn)題迎刃而解,直到問(wèn)題最終解決。</p><p>  在一周的課程設(shè)計(jì)里,我的態(tài)度一直很認(rèn)真,并且努力去完成每一天的內(nèi)容,甚至?xí)霭胍?。雖然很累,但是程序設(shè)計(jì)的興趣卻深深地吸引了我,使我堅(jiān)持到了最后。我每一天都會(huì)圍繞設(shè)計(jì)題目的要求,自行查找資料,翻閱教科書(shū),經(jīng)過(guò)思考與深心專(zhuān)研

106、構(gòu)成自己的設(shè)計(jì)思路,畫(huà)出流程圖,再經(jīng)過(guò)老師的指導(dǎo)與修改,便完全可以成為自己的東西。一周的課程設(shè)計(jì),時(shí)間雖然短,但我們的收獲都卻不少。</p><p>  不可否認(rèn),本程序存在不少缺點(diǎn)和不足,但通過(guò)這次課程設(shè)計(jì)的卻找出了自己在學(xué)習(xí)上的不足,對(duì)以后的工作也有指導(dǎo)作用。我相信在以后的學(xué)習(xí)中會(huì)克服這些不足,達(dá)到熟練掌握匯編語(yǔ)言的目的!</p><p><b>  參考文獻(xiàn)</b&g

溫馨提示

  • 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ù)僅提供信息存儲(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)論