版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)</b></p><p> 設(shè)計(jì)題目:串行通信系統(tǒng) </p><p> 專(zhuān) 業(yè) 網(wǎng)絡(luò)工程 </p><p> 設(shè)計(jì)時(shí)間 2/6/7--2/6/13 </p><p> 目錄 </p><p><b&g
2、t; 一、概述</b></p><p><b> 1.1 設(shè)計(jì)背景</b></p><p><b> 1.2設(shè)計(jì)要求</b></p><p> 1.3 設(shè)計(jì)方案的討論與選擇</p><p><b> 二、概要設(shè)計(jì)</b></p><p&
3、gt;<b> 2.1所用設(shè)備</b></p><p><b> 2.2設(shè)計(jì)思想</b></p><p> 2.3電路原理與主要心片功能</p><p> 2.3.1 8251主要功能</p><p> 2.3.2 8279主要功能</p><p> 2.3.3
4、8253主要功能</p><p><b> 詳細(xì)設(shè)計(jì)</b></p><p> 3.1顯示模塊的實(shí)現(xiàn)</p><p> 3.2發(fā)送模塊與接收模塊</p><p> 3.3發(fā)送/接收時(shí)鐘</p><p><b> 3.4主程序流程圖</b></p>&l
5、t;p><b> 四、接口電路邏輯圖</b></p><p><b> 五、調(diào)試記錄</b></p><p> 六、課程設(shè)計(jì)記錄日志</p><p><b> 七、總結(jié)體會(huì)</b></p><p> 八、附錄(程序清單)</p><p>
6、<b> 一、概述</b></p><p><b> 1.1 設(shè)計(jì)背景</b></p><p> 1).計(jì)算機(jī)之間以及計(jì)算機(jī)與一些常用的外部設(shè)備之間的數(shù)據(jù)交換,往往需要采用串行通信的方式。在計(jì)算機(jī)遠(yuǎn)程通信中,串行通信更是一種不可缺少的通信方式。 在并行通信中,數(shù)據(jù)有多少位就要有多少根傳輸線,而串行通信中只需要一條傳輸線,所以串行通信可以節(jié)省
7、傳送線,在位數(shù)較多,傳輸距離較長(zhǎng)的情況下,這個(gè)優(yōu)點(diǎn)更為突出,但串行通信的速度比并行通信低。2).串行通信中數(shù)據(jù)的傳送模式 在串行通信中,數(shù)據(jù)通常在兩個(gè)站(如A和B)之間進(jìn)行傳送。串行通信可分為單工通信模式、半雙工通信模式和全雙工通信模式。 (1) 單工(Simplex)通信模式:該模式僅能進(jìn)行一個(gè)方向的數(shù)據(jù)傳送,數(shù)據(jù)只能從發(fā)送器A發(fā)送到接收器B。 (2) 半雙工(Half Duplex)通信模式:該模式能夠在設(shè)備A和設(shè)備B之間交
8、替地進(jìn)行雙向數(shù)據(jù)傳送。即數(shù)據(jù)可以在一個(gè)時(shí)刻從設(shè)備A傳送到設(shè)備B,而另一時(shí)刻可以從設(shè)備B傳送到設(shè)備A,但不能同時(shí)進(jìn)行。 (3) 全雙工(Full Duplex)通信模式:該模式設(shè)備A或B均能在發(fā)送的同時(shí)接收數(shù)據(jù)。</p><p><b> 1.2設(shè)計(jì)要求</b></p><p> 利用8251或8250完成兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳送。</p><
9、p> 1.3 設(shè)計(jì)方案的討論與選擇</p><p> 方案一:兩臺(tái)計(jì)算機(jī)通信時(shí),接收結(jié)果只在計(jì)算機(jī)的屏幕上顯示所接收到的數(shù)據(jù)。</p><p> 方案二:兩臺(tái)計(jì)算機(jī)通信時(shí),接收結(jié)果可以在試驗(yàn)箱上顯示所接收到的數(shù)據(jù)。</p><p><b> 初步討論結(jié)果:</b></p><p> 在屏幕上顯示比較簡(jiǎn)單,
10、但是不直觀,為了方便查看發(fā)送的數(shù)據(jù),就選擇方案二。</p><p><b> 二、概要設(shè)計(jì)</b></p><p><b> 2.1所用設(shè)備</b></p><p><b> ?。?)計(jì)算機(jī)兩臺(tái)</b></p><p> 功能:用于對(duì)程序的進(jìn)行編譯測(cè)試等,同時(shí)還需要對(duì)實(shí)驗(yàn)
11、設(shè)備進(jìn) 行控制,提供整個(gè)程序的運(yùn)行平臺(tái),并且收集和釋放硬件信號(hào),實(shí)現(xiàn)程序功能。</p><p><b> (2)實(shí)驗(yàn)箱兩臺(tái)</b></p><p> 功能:此設(shè)備必須能提供我們小組做的串行通信所需的8253、8279和8251三個(gè)芯片。并且能通過(guò)接受PC機(jī)傳來(lái)的信息,顯示出相應(yīng)的功能以實(shí)現(xiàn)通信。</p><p><b>
12、(3)導(dǎo)線若干條</b></p><p> 功能:用于電路和芯片之間的連接。</p><p><b> 2.2設(shè)計(jì)思想</b></p><p> 這次的課程設(shè)計(jì)我們小組選用的是8251、8253、8279這三個(gè)芯片來(lái)實(shí)現(xiàn),我們選用的是一個(gè)單工的異步串行通信,也就是說(shuō)一方發(fā)送一方接收。</p><p>
13、 發(fā)送方:先初始化8279、8251、8253芯片,檢測(cè)是否發(fā)送數(shù)據(jù),若TxRDY為1,則發(fā)送數(shù)據(jù),用CX來(lái)控制要發(fā)送的個(gè)數(shù),到CX為0時(shí)結(jié)束發(fā)送。</p><p> 接收方:先初始化8279、8251、8253芯片,檢測(cè)是否接收數(shù)據(jù),若RxRDY為1,則接收數(shù)據(jù),用CX來(lái)控制要接收的個(gè)數(shù),到CX為0時(shí)結(jié)束接收。</p><p> 2.3電路原理與主要心片功能</p>&
14、lt;p><b> 8251A芯片</b></p><p> 8251A是一種可編程的同步/異步串行通信接口芯片, 具有獨(dú)立的接收器和發(fā)送器,能實(shí)現(xiàn)單工、 半雙工、雙工通信。</p><p> 由于近距離傳輸,所以可以不用MODEM,而直接互連。同時(shí)采用查詢(xún)方式,故接收/發(fā)送程序中只需檢查發(fā)送/接收的準(zhǔn)備好狀態(tài)是否置位,在準(zhǔn)備好時(shí)就發(fā)送或接收一個(gè)字節(jié)。&l
15、t;/p><p> (1)在實(shí)驗(yàn)過(guò)程中,數(shù)據(jù)通信的基本方式可分為并行通信與串行通行,而我們的實(shí)驗(yàn)正是采用了串行通行方式,這種方式通信線路簡(jiǎn)單,利用線路就可實(shí)現(xiàn)通信,這樣實(shí)驗(yàn)易于實(shí)現(xiàn)并且降低了成本,而且適合遠(yuǎn)距離通信。</p><p> (2)實(shí)驗(yàn)中用到的8251A就是一個(gè)可編程的通用串行通信接口芯片,在使用時(shí)必須對(duì)它進(jìn)行初始化編程。編程的內(nèi)容包括兩大方面:一是由CPU發(fā)出的控制字,即方式選
16、擇控制字和操作命令控制字;另一方面是由8251A向CPU送出的狀態(tài)字。</p><p> ① 8251A的方式控制字和命令控制字</p><p> 方式控制字確定8251A的通信方式(同步/異步)、校驗(yàn)方式(奇校/偶校/不校)、字符長(zhǎng)度及波特率等,格式如下圖5-16所示。命令控制字使8251A處于規(guī)定的狀態(tài)以準(zhǔn)備收發(fā)數(shù)據(jù),格式如下圖。方式控制字和命令控制字無(wú)獨(dú)立的端口地址,8251A
17、根據(jù)寫(xiě)入的次序來(lái)區(qū)分。CPU對(duì)8251A初始化時(shí)先寫(xiě)方式控制字,后寫(xiě)命令控制字。</p><p> 方式選擇控制字的格式如圖所示。</p><p> 操作命令控制字的格式如下:</p><p><b> ?、?狀態(tài)寄存器</b></p><p> 狀態(tài)寄存器用于寄存8251A的狀態(tài)信息,供CPU查詢(xún)。各位定義如下:
18、</p><p> TXRDY位:當(dāng)數(shù)據(jù)緩沖器空時(shí)置位,而TXRDY引腳只有當(dāng)條件( 數(shù)據(jù)緩沖器空· /CTS·TXE)成立時(shí)才置位。</p><p> 溢出錯(cuò)誤:CPU沒(méi)讀走前一個(gè)字符,下一個(gè)字符又接收到,稱(chēng)為溢出錯(cuò)誤。</p><p> 幀錯(cuò)誤:在字符結(jié)尾沒(méi)檢測(cè)到停止位,稱(chēng)為幀錯(cuò)誤。</p><p><b&
19、gt; 狀態(tài)字的格式如下:</b></p><p><b> 狀態(tài)字的格式</b></p><p> 8251A 內(nèi)部數(shù)據(jù)總線圖</p><p><b> 8279芯片</b></p><p> 8279芯片是一種專(zhuān)用于鍵盤(pán)/顯示器的接口器件,它能對(duì)顯示器自動(dòng)掃描,能識(shí)別鍵盤(pán)上
20、閉合的鍵號(hào),提高CPU的工作效率。8279包括鍵盤(pán)輸入和顯示輸出兩個(gè)部分。鍵盤(pán)部分提供的掃描方式可以和64個(gè)按鍵或傳感器陣列相連;能自動(dòng)消除開(kāi)關(guān)抖動(dòng)以及對(duì)N鍵同時(shí)按下采取保護(hù)。顯示部分按掃描方式工作,可以顯示8或16位LED數(shù)碼管顯示器。</p><p> (1)8279的引腳功能</p><p> DB0-DB7:雙向數(shù)據(jù)總線,用于在CPU和8279之間傳</p>&l
21、t;p> 送命令、數(shù)據(jù)和狀態(tài);</p><p> CLK:時(shí)釧輸入線,用于產(chǎn)生內(nèi)部定時(shí);</p><p> RESET:復(fù)位輸入線,復(fù)位后,8279被置為以下工作方式:16顯示左邊輸入,編碼掃描鍵盤(pán)雙鍵封鎖,時(shí)鐘系數(shù)為31;</p><p> CS:選片信號(hào)輸入線,低電平時(shí)CPU選中8279,允許對(duì)8279進(jìn)行讀寫(xiě)操作;</p><
22、p> A0:緩沖器地址輸入線,高電平時(shí)數(shù)據(jù)線上傳送的是命令或狀態(tài)信息,低電平時(shí)數(shù)據(jù)線上傳送的是數(shù)據(jù)信息;</p><p> RD:讀信號(hào)輸入線,低電平有效,8279內(nèi)部緩沖器信息送DB0-7;</p><p> WR:寫(xiě)信號(hào)輸入線,低電平有效,接收數(shù)據(jù)總線DB0-7上的信息寫(xiě)入內(nèi)部緩沖器;</p><p> IRQ:中斷請(qǐng)示輸出線,高電平有效。在鍵盤(pán)工
23、作方式中,F(xiàn)IFO RAM中有鍵輸入數(shù)據(jù)時(shí),IRQ上升為高電平,向CPU請(qǐng)求中斷,CPU每次讀出FIFO RAM數(shù)據(jù)時(shí),IRQ上升為高電平,向CPU請(qǐng)求中斷,CPU每次讀出FIFO RAM數(shù)據(jù)時(shí),IRQ變?yōu)榈碗娖?,若RAM中還有數(shù)據(jù),IRQ在讀出后又返回高電平,直至FIFO中的所有數(shù)據(jù)被讀完IRQ才保持低電平。在傳感器方式中,每當(dāng)檢查到傳感器信號(hào)變化時(shí)IRQ上升為高電平;</p><p> SL0-SL3:掃描
24、輸出線,用以對(duì)鍵盤(pán)/傳感器矩陣和顯示器進(jìn)行掃描;</p><p> RL0-RL7:數(shù)據(jù)輸入線,鍵盤(pán)/傳感器矩陣的行(或行號(hào))數(shù)據(jù)輸入線。該輸入線內(nèi)部有提高電路,使之保持高電平,也可以由外部開(kāi)關(guān)拉成低電平;</p><p> SHIFT:換檔輸入線,在鍵掃描中,閉合鍵的位置信息(行和列號(hào))與換檔輸入線的狀態(tài)一起存入FIFO,使鍵盤(pán)上的每個(gè)鍵可以定義為上、下兩檔功能;</p>
25、<p> CNTL/STB:控制/選通輸入線,在鍵盤(pán)方式中,作為控制輸入線,它的狀態(tài)和鍵輸入信息一起存儲(chǔ)到FIFO中。在選通工作方式中,作為數(shù)據(jù)送入FIFO的選通輸入線。</p><p> OUTA0~OUTA3:四位輸出口;</p><p> OUTB0~OUTB3:四位輸出口;</p><p> BD:顯示消隱輸出線,低電平有效,該輸出線在
26、數(shù)字切換過(guò)程中或使用顯示器熄滅命令使顯示器消隱;</p><p><b> Vcc:電源;</b></p><p><b> Vss:地。</b></p><p> ?。?)8279的內(nèi)部結(jié)構(gòu)與工作原理</p><p> 8279的內(nèi)部結(jié)構(gòu)主要由I/O控制及數(shù)據(jù)緩沖器、控制與定時(shí)寄存器及定時(shí)控
27、制、掃描計(jì)數(shù)器、輸入緩沖器、鍵盤(pán)去抖及控制、FIFO/傳感器及其狀態(tài)寄存器、顯示RAM和顯示地址寄存器組成。</p><p> I/O控制及數(shù)據(jù)緩沖器</p><p> 雙向的三態(tài)數(shù)據(jù)緩沖器將內(nèi)部總線和外部系統(tǒng)的數(shù)據(jù)總線DB0-DB7相連,用于在CPU和8279之間傳送命令、數(shù)據(jù)和狀態(tài)信息。I/O控制電路以CS、A0、RD、WR線上輸入信號(hào)控制總線上信息的傳送,即對(duì)內(nèi)部不同的寄存器和緩
28、沖器進(jìn)行讀或?qū)憽?lt;/p><p> CS為片選輸入線,為低電平有效。當(dāng)該引腳上為低電平時(shí)允許CPU對(duì)其進(jìn)行讀寫(xiě),一般接系統(tǒng)的地址譯碼器。</p><p> AO為信息屬性選擇線,用來(lái)指出所傳送的信息是命令/狀態(tài),還是數(shù)據(jù),A0為邏輯1時(shí),CPU寫(xiě)入8279的信息是控制命令,從8279讀出的狀態(tài)字節(jié);A0為邏輯0時(shí),讀出和定入的信息都是數(shù)據(jù)。A0通常接系統(tǒng)的地址總線低位。</p&g
29、t;<p><b> 時(shí)序控制邏輯</b></p><p> 控制和時(shí)序寄存器用于存放鍵盤(pán)和顯示器的工作方式和其他狀態(tài)信息。時(shí)序和控制部件包含了定時(shí)計(jì)數(shù)器,其中一個(gè)計(jì)數(shù)據(jù)是N分頻器,分頻系數(shù)可以編程為2-31之間的任何一個(gè)數(shù),對(duì)CLK上輸入的時(shí)鐘脈沖信號(hào)進(jìn)行N分頻,以產(chǎn)生基本的100KHz的內(nèi)部計(jì)數(shù)信號(hào)(此時(shí)掃描時(shí)間為5.1ms,去抖動(dòng)時(shí)間為10.3ms),共它計(jì)數(shù)器將10
30、0KHz信號(hào)再分頻,以提供適當(dāng)?shù)逆I盤(pán)矩陣掃描和顯示器掃描的時(shí)間。</p><p><b> 掃描計(jì)數(shù)器</b></p><p> 掃描計(jì)數(shù)器有兩種工作方式,一種是編碼工作方式,計(jì)數(shù)器以二進(jìn)制方式計(jì)數(shù),4位計(jì)數(shù)的狀態(tài)直接從掃描線SL0-SL3上輸出,必須由外部譯碼對(duì)SL0-SL3進(jìn)行譯碼,以產(chǎn)生對(duì)鍵盤(pán)和顯示器的掃描信號(hào),另一種是譯碼工作方式,對(duì)計(jì)數(shù)器的低兩位進(jìn)行譯碼
31、后從SL0-SL3上輸出,作為4×8鍵盤(pán)和4位顯示器的掃描信號(hào),因此在譯碼方式中只有顯示RAM的前4個(gè)字符被顯示出來(lái)。編碼方或掃描出高電平有效,譯碼方式中掃描輸出線低電平有效。</p><p><b> 8253芯片</b></p><p> 計(jì)算機(jī)系統(tǒng)中,實(shí)現(xiàn)定時(shí)或延時(shí)有三種方法:軟件定時(shí)、不可編程的硬件定時(shí)、可編程的硬件定時(shí)器。8253為可編程的硬件
32、定時(shí)/計(jì)數(shù)器。</p><p><b> 1. 主要功能</b></p><p> * 具有3個(gè)獨(dú)立的16位計(jì)數(shù)器通道;</p><p> * 每個(gè)計(jì)數(shù)器均可按二進(jìn)制或二—十進(jìn)制計(jì)數(shù);</p><p> * 每個(gè)計(jì)數(shù)器的計(jì)數(shù)速率高達(dá)2MHz;</p><p> * 每個(gè)通道有6種工作方
33、式,可由程序設(shè)置和改變;</p><p> * 所有的輸入輸出都與TTL兼容。</p><p><b> 8253內(nèi)部結(jié)構(gòu)圖</b></p><p><b> 3、8253控制字</b></p><p> 在8253的初始化編程中,由CPU向8253的控制字寄存器寫(xiě)入一個(gè)控制字來(lái)規(guī)定825
34、3的工作方式。</p><p> 4、8253還有5種工作方式</p><p> 方式0——計(jì)數(shù)結(jié)束中</p><p> 方式1——可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器</p><p> 方式2——頻率發(fā)生器</p><p> 方式3——方波發(fā)生器</p><p> 方式4(軟件觸發(fā)選通)<
35、;/p><p> 方式5(硬件觸發(fā)選通)</p><p><b> 三、詳細(xì)設(shè)計(jì)</b></p><p> 3.1顯示模塊的實(shí)現(xiàn)</p><p> 使用8279控制,用數(shù)碼管的顯示功能來(lái)設(shè)計(jì),顯示部分用八只LED為顯示管,這些LED發(fā)光二極管的陰極是互相連接在一起的,所以稱(chēng)為共陰極數(shù)碼管。通過(guò)在這八只發(fā)光二極管的陽(yáng)極
36、加+5V或0V的電壓使不同的二極管發(fā)光,形成不同的字符和數(shù)字。</p><p><b> 具體代碼如下:</b></p><p><b> push cx</b></p><p><b> mov ch,al</b></p><p><b> mov cl,4
37、</b></p><p> ror al,cl </p><p> and al,0fh ;將al的高4位,移動(dòng)到低4位 </p><p><b> push ax</b></p><p> mov dx,z8279</p><p> mov al,8
38、1h </p><p> out dx,al ; 將81h </p><p><b> pop ax</b></p><p> lea bx,led</p><p><b> xlat</b></p><p> mov dx,d8279
39、;顯示轉(zhuǎn)換結(jié)果高4位</p><p><b> out dx,al</b></p><p> call delay</p><p><b> mov al,ch</b></p><p> and al,0fh</p><p><b> push ax<
40、;/b></p><p> mov dx,z8279</p><p> mov al,80h</p><p><b> out dx,al</b></p><p><b> pop ax</b></p><p> lea bx,led</p>&
41、lt;p><b> xlat</b></p><p> mov dx,d8279;顯示轉(zhuǎn)換結(jié)果低4位</p><p><b> out dx,al</b></p><p> call delay</p><p><b> pop cx</b></p&g
42、t;<p> 3.2 發(fā)送與接收模塊</p><p> 該模塊是用8251的芯片實(shí)現(xiàn)的,通過(guò)檢測(cè)是否TxTDY和RxRDY是否為1,檢測(cè)發(fā)送和接收數(shù)據(jù),代碼如下:</p><p><b> 發(fā)送方: </b></p><p><b> mov cx,13</b></p><
43、p> next: mov dx,209h</p><p><b> in al,dx</b></p><p> test al,01h ;TxRDY?</p><p><b> jz next</b></p><p> mov al,[si] </p><
44、;p> out dx,al ;逐個(gè)發(fā)送數(shù)據(jù)</p><p><b> inc si</b></p><p><b> Loop next</b></p><p><b> 接收方:</b></p><p> mov di,offset dat2&l
45、t;/p><p><b> xor cx,cx</b></p><p><b> mov cx,15</b></p><p> next:mov dx,209h</p><p><b> in al,dx</b></p><p> test a
46、l,02h ;RxRDY?</p><p><b> jz next</b></p><p> mov dx,208h</p><p> in al,dx ;逐個(gè)接收數(shù)據(jù)</p><p> mov [di],al</p><p><b> inc di </
47、b></p><p> 3.3發(fā)送/接收時(shí)鐘</p><p> 在異步串行通信中,發(fā)送端需要用一定的頻率時(shí)鐘來(lái)決定每一位數(shù)據(jù)發(fā)送所占的時(shí)間長(zhǎng)度,接收端也要用一定的頻率時(shí)鐘來(lái)測(cè)定每一位輸入數(shù)據(jù)的時(shí)間長(zhǎng)度,TxCLK和RxCLK一起接在8253的OUT1的引腳,8253的CS接200H~207H,將其計(jì)數(shù)器1設(shè)置在計(jì)數(shù)方式3,使其對(duì)1MHz的輸入脈沖52分頻,這樣OUT1會(huì)輸出19.
48、2KHz的脈沖,再取波特率因子為16,最后獲得的串行通信波特率為1200bps。</p><p><b> 3.4主程序流程圖</b></p><p><b> 四、接口電路邏輯圖</b></p><p><b> 電路邏輯圖:</b></p><p><b>
49、 調(diào)試記錄</b></p><p> 為方便查看接收的數(shù)據(jù)將Rbuf db 7 dup(?) 改為Rbuf db 7 dup(1) ,這樣在代碼的代碼段窗口可以看到該區(qū)的7個(gè)1即可以判斷在程序運(yùn)行后Rbuf應(yīng)該顯示接收11,22,33,44,55,66,77,這7個(gè)數(shù)據(jù)。</p><p> 按F8單步運(yùn)行,先讓接收端運(yùn)行到允許部分,在運(yùn)行發(fā)送端,先在發(fā)送端觀察到了AX寄
50、存器的值11,繼續(xù)在發(fā)送端單步運(yùn)行,在接收端可以觀察到了相應(yīng)接收的數(shù)據(jù)11,22,33,44,55,66,77。</p><p> 3、在程序運(yùn)行過(guò)程中經(jīng)過(guò)單步運(yùn)行,發(fā)現(xiàn)卡在了讀取數(shù)據(jù)計(jì)數(shù)值CX處,mov cx,count,而CX是由equ語(yǔ)句獲得count equ $-dat。就刪了直接將cx賦值7,即為要發(fā)送的數(shù)據(jù)個(gè)數(shù)。</p><p> 4、在優(yōu)化程序時(shí),發(fā)現(xiàn)先全速運(yùn)行接收方,時(shí)
51、間間隔不長(zhǎng)的情況下,全速運(yùn)行發(fā)送方可以觀察到發(fā)送方發(fā)送的數(shù)據(jù),而間隔比較長(zhǎng)時(shí)間時(shí)就接收不到發(fā)送發(fā)送的數(shù)據(jù)。接著就用F8單步運(yùn)行,發(fā)現(xiàn)發(fā)送方卡在了測(cè)試接收數(shù)據(jù)的階段,修改前的代碼如下:</p><p><b> 發(fā)送方:</b></p><p> lea si,dat</p><p> lea di,dat1</p><
52、p> AA: mov dx,209h</p><p><b> in al,dx</b></p><p> test al,01h ;TxRDY?</p><p> jz next </p><p> mov al,[si]</p><
53、;p> out dx,al ;發(fā)送1</p><p> mov dx,209h</p><p><b> in al,dx</b></p><p> test al,02h</p><p><b> jz AA</b></p><p> mov dx,
54、208h </p><p><b> in al,dx</b></p><p> mov [di],al ;接收1</p><p><b> xor bl,bl</b></p><p> mov bl,[di]</p><p><b> c
55、mp bl,1h</b></p><p><b> jne AA</b></p><p> mov dx,209h</p><p><b> in al,dx</b></p><p> test al,01h ;TxRDY?</p><p> j
56、z next ;發(fā)送1</p><p> mov al,[si]</p><p><b> out dx,al</b></p><p><b> 接收方:</b></p><p> lea si,dat</p><p> lea di,dat1</p&
57、gt;<p> AA: mov dx,209h</p><p><b> in al,dx</b></p><p> test al,01h ;TxRDY?</p><p> jz next </p><p> mov al,[si]</
58、p><p> out dx,al ;發(fā)送1</p><p> mov dx,209h</p><p><b> in al,dx</b></p><p> test al,02h</p><p><b> jz AA</b></p><p>
59、; mov dx,208h </p><p><b> in al,dx</b></p><p> mov [di],al ;接收1</p><p><b> xor bl,bl</b></p><p> mov bl,[di]</p><p>&l
60、t;b> cmp bl,1h</b></p><p><b> jne AA</b></p><p> mov dx,209h</p><p><b> in al,dx</b></p><p> test al,01h ;TxRDY?</p>&l
61、t;p> jz next ;發(fā)送1</p><p> mov al,[si]</p><p><b> out dx,al</b></p><p> 兩處的代碼都是一樣的,運(yùn)行發(fā)送方的話(huà),在檢測(cè)接收的情況下,又不斷的發(fā)送數(shù)據(jù),導(dǎo)致了接收方接收的數(shù)據(jù)不正確,先運(yùn)行接收方也是一樣的情況。改進(jìn)如下:</p><
62、;p> AA: mov dx,209h</p><p><b> in al,dx</b></p><p> test al,01h ;TxRDY?</p><p> jz next </p><p> mov al,[si]</p>&
63、lt;p> out dx,al ;發(fā)送1</p><p> BB:mov dx,209h</p><p><b> in al,dx</b></p><p> test al,02h</p><p><b> jz BB</b></p><p> 將
64、這里的檢測(cè)接收代碼段標(biāo)為BB,狀態(tài)還沒(méi)準(zhǔn)備好時(shí)跳到該階段,而不是AA這個(gè)發(fā)送的階段。</p><p><b> 課程設(shè)計(jì)記錄日志</b></p><p> 2012/6/7:由于該實(shí)驗(yàn)在之前做過(guò)類(lèi)似的,在用自己編寫(xiě)的程序多次不成功的情況下,可能是實(shí)驗(yàn)箱的問(wèn)題,也可能是程序問(wèn)題,沒(méi)有找到原因的情況下,然后決定用老師之前給的程序,做自發(fā)自收的,修改了一些相關(guān)數(shù)據(jù)之后用
65、單步運(yùn)行,具體如下:</p><p> Rbuf db 7 dup(?) 改為Rbuf db 7 dup(1) </p><p> 這樣在代碼的數(shù)據(jù)段窗口可以看到Rbuf 區(qū)的7個(gè)1即可以判斷在程序運(yùn)行后Rbuf應(yīng)該顯示接收的11,22,33,44,55,66,77,,但是做了很多次,結(jié)果還是失敗了,原因很多,得一步一步排除和分析。</p><p> 201
66、2/6/8:繼續(xù)第一天的程序,在進(jìn)行很多次實(shí)驗(yàn)后,未果。在下午的一次實(shí)驗(yàn)中,最開(kāi)始時(shí),進(jìn)行的是全速運(yùn)行,但是結(jié)果端還是沒(méi)有發(fā)現(xiàn)接收到的數(shù)據(jù)11,22,33,44,55,66,77</p><p> 分析:通過(guò)單步運(yùn)行,先讓接收端運(yùn)行到允許部分,在運(yùn)行發(fā)送端</p><p> 解決方法:按F8單步運(yùn)行</p><p> 結(jié)果:1.先在發(fā)送端觀察到了AX寄存器的值
67、11,繼續(xù)在發(fā)送端單步運(yùn)行,在接收端可以觀察到了相應(yīng)接收的數(shù)據(jù)11,22,33,44,55,66,77。</p><p> 2.一般是實(shí)驗(yàn)箱的硬件問(wèn)題,導(dǎo)致了實(shí)驗(yàn)過(guò)程中有時(shí)接收不到數(shù)據(jù),從而得不到結(jié)論。</p><p> 2012/6/11:過(guò)了一個(gè)周末,繼續(xù)實(shí)驗(yàn),又發(fā)現(xiàn)了一些問(wèn)題,不能得到結(jié)果。在程序運(yùn)行過(guò)程中經(jīng)過(guò)單步運(yùn)行,發(fā)現(xiàn)卡在了讀取數(shù)據(jù)計(jì)數(shù)值CX處,mov cx,count,而
68、CX是由equ語(yǔ)句獲得count equ $-dat。</p><p> 問(wèn)題分析:由于該實(shí)驗(yàn)對(duì)于硬件要求比較高,所以考慮到了兩方面的原因</p><p> 1.硬件問(wèn)題,讀取不了數(shù)據(jù);</p><p> 2.程序初步分析不會(huì)有問(wèn)題,所以可能是編譯軟件對(duì)于count equ $-dat的處理有編譯問(wèn)題,導(dǎo)致程序運(yùn)行不了。</p><p>
69、;<b> 解決方法:</b></p><p> 1.對(duì)于解決硬件問(wèn)題,是通過(guò)自發(fā)自收的程序來(lái)測(cè)試試驗(yàn)箱是否沒(méi)問(wèn)題,在測(cè)試時(shí)對(duì)應(yīng)的代碼段窗口可以看到11,22,33,44,55,66,77,11,22,33,44,55,66,77的連續(xù)數(shù)據(jù)顯示,在測(cè)試了十幾個(gè)試驗(yàn)箱后,找到了相對(duì)較好的兩個(gè),花了將近一個(gè)小時(shí)的時(shí)間。</p><p> 2.修改前是: count
70、 equ $-dat</p><p> mov cx,count</p><p> 修改后:直接將cx賦值7,要發(fā)送的數(shù)據(jù)個(gè)數(shù)。</p><p> 在排除硬件問(wèn)題的情況下,調(diào)試了程序,發(fā)現(xiàn)在接收端看到了接收的數(shù)據(jù)11,22,33,44,55,66,77,并讓它在數(shù)碼管上顯示出來(lái)。</p><p> 但是改程序不足的地方是,要先執(zhí)行
71、接收端,在執(zhí)行發(fā)送端才可以接收到數(shù)據(jù),發(fā)過(guò)來(lái)接收不到數(shù)據(jù)。</p><p> 2012/6/11:程序已經(jīng)可以運(yùn)行了,結(jié)果也成功的顯示,但是不足的問(wèn)題還有很多,小組一直在討論解決。在修改程序時(shí)也發(fā)現(xiàn)了一些問(wèn)題,具體有:</p><p> 1.在8251的先初始化命令控制字時(shí),mov al,40h ,01000000b,可以看到D6為1,該位表示的是8251的內(nèi)部復(fù)位,則方式控制字應(yīng)該寫(xiě)
72、在命令控制字之后。</p><p> 2.關(guān)于6個(gè)數(shù)碼管的初始清零問(wèn)題,一共有6個(gè)數(shù)碼管,所以清零循環(huán)CX為6,但是之前程序是設(shè)置為3,清零不完全,導(dǎo)致了后續(xù)的讀寫(xiě)數(shù)據(jù)表有沖突,即數(shù)碼管未清零又有取值,就導(dǎo)致了查表不符,于是出錯(cuò)。</p><p> 在討論后,未達(dá)成一致,在優(yōu)化的思想上還是沒(méi)有突破。</p><p> 2012/6/12:為了優(yōu)化,并改進(jìn)要先執(zhí)
73、行接收端,在執(zhí)行發(fā)送端才可以接收到數(shù)據(jù)的問(wèn)題,修改了程序。小組討論了將近1小時(shí)多,具體思想如下:</p><p> 1.在發(fā)送端也加上了顯示發(fā)送的數(shù)據(jù)。即發(fā)送端上顯示要發(fā)送的內(nèi)容,這樣可以比較直觀的看到發(fā)送與接收是否一致 。</p><p> 2.在接收端和發(fā)送端上的程序初始化8251,8253,8279之后添加上發(fā)送01H的程序,接著就是接收檢測(cè),檢測(cè)發(fā)送端是否發(fā)送了01H,如果檢測(cè)
74、到接收了01H,說(shuō)明發(fā)送端已將開(kāi)始運(yùn)行;如果沒(méi)有接收到01H則繼續(xù)等待接收發(fā)送端發(fā)送的數(shù)據(jù)。當(dāng)接收了發(fā)送端發(fā)送的01H后,說(shuō)明發(fā)送端開(kāi)始工作,接收端在發(fā)送一次01H,確保發(fā)送端也接收到01H,這樣發(fā)送端就不會(huì)進(jìn)入無(wú)限等待接收的狀態(tài),確保了之后發(fā)送端發(fā)送的數(shù)據(jù)能讓接收端接收到。從而消除了接收方要先運(yùn)行才能接收到數(shù)據(jù)的限制。</p><p> 3.有了思路在程序的多次修改并不斷調(diào)試的情況下,終于解決了這個(gè)問(wèn)題,該實(shí)
75、驗(yàn)也有了突破性的進(jìn)展。</p><p><b> 總結(jié)體會(huì)</b></p><p> 11:作為組長(zhǎng),很高興能帶領(lǐng)一個(gè)小組在這一周里在共同努力下作出了一 些成效。小組成員都很積極,每一次的討論,都會(huì)有不少的收獲。比如在 討論如何讓任意一臺(tái)機(jī)箱先運(yùn)行都能使數(shù)據(jù)傳輸問(wèn)題時(shí),自己之前也有學(xué)習(xí)過(guò)TCP/IP協(xié)議 所以結(jié)合到當(dāng)前問(wèn)題就想到了TCP/IP協(xié)議的三次握手來(lái) 保障
76、通信的正常,在小組討論覺(jué)得可行,經(jīng)修改與調(diào)試后,證明可行。 有時(shí)候自己想的問(wèn)題會(huì)遭遇瓶頸,但是集齊一個(gè)小組的智慧就不一樣了,問(wèn)題就會(huì)轉(zhuǎn)變?yōu)榇鸢?,我覺(jué)得這是我最大的收獲。三個(gè)臭皮匠賽過(guò)一個(gè)諸葛亮。</p><p> 22:作為書(shū)記員,考勤和每天的工作記錄我都有認(rèn)真落實(shí),我想在這樣一個(gè)團(tuán)隊(duì)中,我們每個(gè)人都應(yīng)該發(fā)揮一點(diǎn)自己的長(zhǎng)處,不論是分析問(wèn)題,還是處理問(wèn)題上,大家都應(yīng)該積極的參與,我覺(jué)得讓我最有成就感的是,我調(diào)試出
77、了,不用單步也可以查看到數(shù)據(jù)的變化問(wèn)題,之前因?yàn)檠訒r(shí)的問(wèn)題每次在全速運(yùn)行的時(shí)候不能看到數(shù)據(jù)的變化,而是從一開(kāi)始的11瞬間變到77,就是計(jì)算機(jī)運(yùn)行的速度太快了導(dǎo)致看不到結(jié)果,我修改了程序,讓它在讀取要發(fā)送的數(shù)據(jù)時(shí)用LED數(shù)碼管上顯示,這樣就延遲了數(shù)據(jù)發(fā)送,讓它在接收端的數(shù)碼管上不會(huì)變化的那么快。還有就是在最后優(yōu)化階段,要解決不要先運(yùn)行接收端也可以接收到數(shù)據(jù)的時(shí)候,小組在一直討論,并把想出的方案在程序上實(shí)現(xiàn),當(dāng)然由于粗心問(wèn)題,錯(cuò)誤很多,在編
78、譯器的提示和大家一起細(xì)心排錯(cuò)的情況下,終于解決了這個(gè)問(wèn)題。這期間讓我感悟最深的是,大家積極討論解決問(wèn)題的精神,合作很愉快!就像你的一個(gè)蘋(píng)果跟我一個(gè)蘋(píng)果交換了還是一個(gè)蘋(píng)果,但是你的思想跟的我的思想交換了就是兩個(gè)思想,不管是微機(jī)上的知識(shí)還是合作上的精神都收獲甚多!</p><p> 66:通過(guò)這短短的一周的課程設(shè)計(jì),感覺(jué)學(xué)到了很多的東西,特別是經(jīng)過(guò)團(tuán)隊(duì)的相互配合,產(chǎn)生了許多好的思想,這是這次項(xiàng)目中最值得珍藏的東西,
79、讓我明白了團(tuán)結(jié)的力量,也許如果沒(méi)有幾個(gè)人的共同努力想要完成這個(gè)課程設(shè)計(jì),我想難度有多大是可想而知的。說(shuō)真的在還沒(méi)有課程設(shè)計(jì)之前我對(duì)微機(jī)這門(mén)課的許多知識(shí)點(diǎn)還是有很多都是半懂的,可是經(jīng)過(guò)這次加深了對(duì)其認(rèn)識(shí),一個(gè)個(gè)問(wèn)題被我們攻破的那種喜悅,我想大家都是有共同體會(huì)的,真希望能有多幾次這樣的課程設(shè)計(jì)。</p><p> 77:一周的《微型計(jì)算機(jī)原理與接口技術(shù)》的專(zhuān)周一轉(zhuǎn)眼就過(guò)去了,通過(guò)我們小組成員的努力,總算是完成了任務(wù)
80、,其中的每一個(gè)環(huán)節(jié),都留下了我們每一個(gè)人的歡笑與汗水。開(kāi)始時(shí),我們都很迷茫,不知道從何入手。我們知道,串行通信看起來(lái)簡(jiǎn)單,但是要實(shí)現(xiàn)起來(lái)也不是很容易。我們分工明確,一部分人去查資料,一部分人去挑選機(jī)器,從20幾臺(tái)機(jī)器中總算是挑出了2臺(tái)能實(shí)現(xiàn)通信的。期間,我們小組成員積極討論,這是我們以前沒(méi)有經(jīng)歷過(guò)的,使我們小組成員的友誼得到了進(jìn)一步加深 ,總的來(lái)說(shuō)這是很難忘的一周。最后,我們還在原來(lái)方案的基礎(chǔ)上進(jìn)一步加強(qiáng),實(shí)現(xiàn)了不管是哪一方先運(yùn)行都能實(shí)
81、現(xiàn)通信,這是很大的一筆收獲。</p><p> 88:總的來(lái)說(shuō),微機(jī)這一專(zhuān)周我收獲頗多,專(zhuān)周剛開(kāi)始時(shí)對(duì)微機(jī)實(shí)驗(yàn)非常迷茫,前幾天是收獲甚少,后兩天收獲非常多。從這我更明白了,一個(gè)人的去費(fèi)力思考,費(fèi)力看書(shū),而不去交流,不去探討,與交流相比較,收獲少得可憐,而且互相交流更具有激情,更有動(dòng)力,尤其是一堆大老爺們加一個(gè)妞,使小組不單一,增加各種活力。總結(jié):有個(gè)妞也是有好處的</p><p><
82、;b> 附錄(程序清單)</b></p><p><b> 發(fā)送端:</b></p><p> Z8279 equ 212h ;控制寄存器端口地址 </p><p> D8279 equ 210h ;數(shù)據(jù)寄存器端口地址 </p><p> L
83、edmod equ 0</p><p> Ledfeq equ 38h ;8279工作模式位0,掃描頻率為38h</p><p> code segment</p><p> assume cs:code</p><p> start:push cs </p><p><b> pop ds&
84、lt;/b></p><p> mov dx,z8279</p><p> mov al,ledmod ;設(shè)定8279工作模式</p><p> out dx,al ;左邊輸入,8位顯示</p><p> mov al,ledfeq</p><p> out dx,al
85、;掃描頻率,al的內(nèi)容輸出到DX指示的端口</p><p> mov cx,6 </p><p> xz:mov dx,d8279</p><p><b> mov al,0</b></p><p> out dx,al ;清空顯示</p><p><
86、;b> loop xz</b></p><p> mov dx,d8279</p><p> mov al,5eh</p><p> out dx,al </p><p> mov dx,d8279</p><p> mov al,77h</p><p> ou
87、t dx,al;顯示'Ad'</p><p> mov dx,203h ; 控制字的地址送DX</p><p> mov al,56h ; 控制字的內(nèi)容送AL,01010110B,D7D6為01表示計(jì)數(shù)器1,D5D4為01表示只讀寫(xiě)低4位,D3D2D1為表示方式3,D0為0表示二進(jìn)制</p><p> out dx,al ;寫(xiě)入
88、控制字</p><p><b> mov al,52</b></p><p> mov dx,201h</p><p><b> out dx,al</b></p><p> mov dx,209h</p><p><b> xor al,al</b
89、></p><p> mov cx,3 </p><p> delay1:call out1</p><p> loop delay1</p><p> mov al,40h</p><p><b> call out1</b></p><
90、;p> mov al,4eh;01001110B,D7D6為01表示1個(gè)停止位,D5D4為00表示不校驗(yàn),D3D2為11表示8個(gè)數(shù)據(jù)位,D1D0為10表示波特率因子16</p><p><b> call out1</b></p><p> mov al,27h ;允許接收與發(fā)送(第249頁(yè))</p><p><b&g
91、t; call out1</b></p><p> lea si,dat</p><p> lea di,dat1</p><p> AA: mov dx,209h</p><p><b> in al,dx</b></p><p> test al,01h ;Tx
92、RDY?</p><p> jz next </p><p> mov al,[si]</p><p> out dx,al ;發(fā)送1</p><p> mov dx,209h</p><p><b> in al,dx</b></
93、p><p> test al,02h</p><p><b> jz AA</b></p><p> mov dx,208h </p><p><b> in al,dx</b></p><p> mov [di],al ;接收1</p>
94、<p><b> xor bl,bl</b></p><p> mov bl,[di]</p><p><b> cmp bl,1h</b></p><p><b> jne AA</b></p><p> mov dx,209h</p>&l
95、t;p><b> in al,dx</b></p><p> test al,01h ;TxRDY?</p><p> jz next ;發(fā)送1</p><p> mov al,[si]</p><p><b> out dx,al</b></p>&l
96、t;p> lea si,dat2</p><p><b> mov cx,13</b></p><p> next: mov dx,209h</p><p><b> in al,dx</b></p><p> test al,01h ;TxRDY?</p>&
97、lt;p><b> jz next</b></p><p> mov al,[si]</p><p><b> push cx</b></p><p><b> mov ch,al</b></p><p><b> mov cl,4</b>
98、</p><p> ror al,cl </p><p> and al,0fh ;將al的高4位,移動(dòng)到低4位 </p><p><b> push ax</b></p><p> mov dx,z8279</p><p> mov al,81h
99、</p><p> out dx,al ; 將81h </p><p><b> pop ax</b></p><p> lea bx,led</p><p><b> xlat</b></p><p> mov dx,d8279;顯示轉(zhuǎn)換結(jié)果高4位
100、</p><p><b> out dx,al</b></p><p> call delay</p><p><b> mov al,ch</b></p><p> and al,0fh</p><p><b> push ax</b><
101、;/p><p> mov dx,z8279</p><p> mov al,80h</p><p><b> out dx,al</b></p><p><b> pop ax</b></p><p> lea bx,led</p><p>&l
102、t;b> xlat</b></p><p> mov dx,d8279;顯示轉(zhuǎn)換結(jié)果低4位</p><p><b> out dx,al</b></p><p> call delay</p><p><b> pop cx</b></p><p&
103、gt; mov al,[si]</p><p> mov dx,208h</p><p><b> call out1</b></p><p><b> inc si</b></p><p><b> loop next</b></p><p>
104、;<b> jmp $</b></p><p> out1 proc near</p><p><b> out dx,al</b></p><p><b> push cx</b></p><p> mov cx,400h</p><p
105、><b> loop $</b></p><p><b> pop cx</b></p><p><b> ret</b></p><p><b> out1endp</b></p><p> Led db 3fh,06h,5bh,4fh
106、,66h,6dh,7dh,07h,7fh,6fh,77h</p><p> db 7ch,39h,5eh,79h,71h ;數(shù)碼表</p><p> delay proc near ;延時(shí)子程序</p><p><b> push cx</b></p><p> mov cx,0FFFFh&l
107、t;/p><p><b> loop $</b></p><p><b> pop cx</b></p><p><b> ret</b></p><p> delay endp</p><p> dat db 1 </p><
108、;p> Dat1db 1 dup(?)</p><p> Dat2 db 11h,22h,33h,44h,55h,66h,77h,88h,99h,0AAh,0BBh,0CCh,0DDh</p><p><b> codeends</b></p><p> end start</p><p>
109、;<b> 接收端:</b></p><p> Z8279 equ 212h ;控制寄存器端口地址 </p><p> D8279 equ 210h ;數(shù)據(jù)寄存器端口地址 </p><p> Ledmod equ 0</p><p> Ledfeq equ 3
110、8h</p><p> code segment</p><p> assume cs:code</p><p> start:push cs </p><p><b> pop ds</b></p><p> mov dx,z8279</p><p> m
111、ov al,ledmod ;設(shè)定8279工作模式</p><p> out dx,al ;左邊輸入,8位顯示</p><p> mov al,ledfeq</p><p> out dx,al ;掃描頻率 38</p><p><b> mov cx,6</b></p>
112、;<p> xz:mov dx,d8279</p><p><b> mov al,0</b></p><p> out dx,al ;清空顯示</p><p><b> loop xz</b></p><p> mov dx,d8279</p>&
113、lt;p> mov al,7ch</p><p> out dx,al </p><p> mov dx,d8279</p><p> mov al,5bh</p><p> out dx,al </p><p> mov dx,203h</p><p> m
114、ov al,56h</p><p><b> out dx,al</b></p><p><b> mov al,52</b></p><p> mov dx,201h</p><p><b> out dx,al</b></p><p> m
115、ov dx,209h</p><p><b> xor al,al</b></p><p><b> mov cx,3</b></p><p> Delay1:call out1</p><p> loop delay1</p><p> mov al,40h<
116、;/p><p><b> call out1</b></p><p> mov al,4eh;1個(gè)停止位,8個(gè)數(shù)據(jù)位,波特率因子16</p><p><b> call out1</b></p><p> mov al,27h ;允許接收與發(fā)送</p><p>
117、<b> call out1</b></p><p> lea si,dat</p><p> lea di,dat1</p><p> AA: mov dx,208h</p><p> mov al,[si]</p><p> out dx,al ;發(fā)送1</
118、p><p> BB: mov dx,209h</p><p><b> in al,dx</b></p><p> test al,02h</p><p><b> jz BB</b></p><p> mov dx,208h </p>
119、<p><b> in al,dx</b></p><p> mov [di],al ;接收1</p><p><b> xor bl,bl</b></p><p> mov bl,[di]</p><p><b> cmp bl,1h</b><
120、/p><p><b> jne AA</b></p><p> mov dx,208h ;發(fā)送1</p><p> mov al,[si]</p><p><b> out dx,al</b></p><p> mov di,offset dat2</p&
121、gt;<p><b> xor cx,cx</b></p><p><b> mov cx,15</b></p><p> next: mov dx,209h</p><p><b> in al,dx</b></p><p> test al,
122、02h ;RxRDY?</p><p><b> jz next</b></p><p> mov dx,208h</p><p> in al,dx ;逐個(gè)接收數(shù)據(jù)</p><p> mov [di],al</p><p><b> inc di </b&
123、gt;</p><p><b> push cx</b></p><p><b> mov ch,al</b></p><p><b> mov cl,4</b></p><p> ror al,cl </p><p> and
124、al,0fh ;將al的高4位,移動(dòng)到低4位 </p><p><b> push ax</b></p><p> mov dx,z8279</p><p> mov al,81h </p><p> out dx,al ; 將81h </p><p>
125、;<b> pop ax</b></p><p> lea bx,led</p><p><b> xlat</b></p><p> mov dx,d8279;顯示轉(zhuǎn)換結(jié)果高4位</p><p><b> out dx,al</b></p><
126、p> call delay</p><p><b> mov al,ch</b></p><p> and al,0fh</p><p><b> push ax</b></p><p> mov dx,z8279</p><p> mov al,80h&l
127、t;/p><p><b> out dx,al</b></p><p><b> pop ax</b></p><p> lea bx,led</p><p><b> xlat</b></p><p> mov dx,d8279;顯示轉(zhuǎn)換結(jié)果低
128、4位</p><p><b> out dx,al</b></p><p> call delay</p><p><b> pop cx</b></p><p><b> loop next</b></p><p><b> jm
129、p $</b></p><p> out1 proc near</p><p><b> out dx,al</b></p><p><b> push cx</b></p><p> mov cx,400h</p><p><b> lo
130、op $</b></p><p><b> pop cx</b></p><p><b> ret</b></p><p><b> out1endp</b></p><p> Led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,
131、7fh,6fh,77h</p><p> db 7ch,39h,5eh,79h,71h ;數(shù)碼表</p><p> delay proc near ;延時(shí)子程序</p><p><b> push cx</b></p><p> mov cx,0FFFFh</p&g
132、t;<p><b> loop $</b></p><p><b> pop cx</b></p><p><b> ret</b></p><p> delay endp</p><p> dat db 1h</p><p>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理課程設(shè)計(jì)報(bào)告-雙機(jī)串行通信
- 串行通信微機(jī)原理課程設(shè)計(jì)--串行通信實(shí)現(xiàn)文件傳輸
- 移動(dòng)通信ofdm課程設(shè)計(jì)說(shuō)明書(shū)
- 微機(jī)原理課程設(shè)計(jì)說(shuō)明書(shū)---步進(jìn)電機(jī)控制
- 基于arm的串口通信系統(tǒng)的課程設(shè)計(jì)說(shuō)明書(shū)
- 基于arm的串口通信系統(tǒng)的課程設(shè)計(jì)說(shuō)明書(shū)
- 課程設(shè)計(jì)說(shuō)明書(shū)
- 課程設(shè)計(jì)說(shuō)明書(shū)
- 工廠管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 醫(yī)院管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 雙機(jī)串行通信課程設(shè)計(jì)
- vfp課程設(shè)計(jì)--學(xué)生管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 倉(cāng)儲(chǔ)管理系統(tǒng)-課程設(shè)計(jì)說(shuō)明書(shū)
- 歌手比賽系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 采購(gòu)管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 前門(mén)課程設(shè)計(jì)說(shuō)明書(shū)
- javaweb課程設(shè)計(jì)說(shuō)明書(shū)
- 后蓋課程設(shè)計(jì)說(shuō)明書(shū)
- 鍋爐課程設(shè)計(jì)說(shuō)明書(shū)
評(píng)論
0/150
提交評(píng)論