版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 微</b></p><p><b> 機</b></p><p><b> 接</b></p><p><b> 口</b></p><p><b> 課</b></p><p
2、><b> 程</b></p><p><b> 設</b></p><p><b> 計</b></p><p><b> 之</b></p><p><b> 雙</b></p><p>&
3、lt;b> 機</b></p><p><b> 間</b></p><p><b> 的</b></p><p><b> 串</b></p><p><b> 行</b></p><p><b&
4、gt; 通</b></p><p><b> 信</b></p><p><b> 一、課程設計目的:</b></p><p> 通過本次課程設計實踐,熟悉和掌握微機系統(tǒng)的軟件、硬件設計方法、設計步驟,提高綜合應用所學知識及動手和分析問題、解決問題的能力;同時還應達到以下目的:</p>&
5、lt;p> 1. 了解串行通信的一般工作原理和工作過程;</p><p> 2.熟悉8259A中斷控制器的工作原理和應用編程;</p><p> 3. 熟悉RS—232C串行接口標準及和TTL電路的連接方法;</p><p> 4. 熟悉8251A芯片的工作原理,掌握用8251A進行異步串行通信時的編程</p><p><
6、b> 方法;</b></p><p> 5. 熟悉8253A計數(shù)器/定時器的工作方式及應用編程。</p><p><b> 二、課程設計任務:</b></p><p> 設有兩臺PC機——甲機和乙機,利用兩臺試驗箱上的8251A芯片、TTL和RS—232C電平轉換芯片(MC1488和MC1489)、8254A芯片等,實
7、現(xiàn)甲乙兩機之間的全雙工近距離異步串行通信;具體要求如下:</p><p> 甲機和乙機通過各自的鍵盤輸入控制鍵(ESC)和要發(fā)送的字符,檢查是否按下 ESC鍵,若按下,則退出程序,返回DOS;否則將輸入的字符發(fā)送到對方,每輸入一個字符發(fā)送一次;同時雙方又可接收對方發(fā)來的字符。</p><p> 2. 發(fā)送的字符和接收的字符均在甲機和乙機各自的顯示器上顯示;雙方
8、的發(fā)送均采用查詢方式,接收均采用中斷方式。</p><p> 3. 異步串行通信的字符數(shù)據(jù)格式為起止式:1位停止位,8位數(shù)據(jù)位,無校驗,波特率因子為16;傳輸速率,即波特率自定。</p><p><b> 提示:</b></p><p> 由于是近距離通信,故雙機接口間可采用零MODEM方式的簡單連接。</p><p&
9、gt; 由8254A產生方波時鐘信號作為8251A的發(fā)送和接收時鐘,8254A計數(shù)通道的CLK輸入可采用1MHZ的方波信號。</p><p> 中斷采用PC機內部可屏蔽中斷控制器(8259A)的IRQ7。</p><p> 8251A的端口地址:數(shù)據(jù)口—210H,命令/狀態(tài)口—211H;8254A的端口地址:計數(shù)器0—230H, 計數(shù)器1—231H,計數(shù)器2—232H,控制口—233
10、H;8259A的端口地址:20H和21H。</p><p><b> 三、所用設備:</b></p><p> IBM-PC機兩臺(串行通信接口8251A兩片,串行發(fā)送器MC1488和串行接收器MC1489各兩片,定時器/計數(shù)器8253,終端控制器8259等),串口線一根</p><p> 串行直連電纜用于兩臺臺電腦通過串行口直接相連,電
11、纜兩端的插頭都是9 針的母插頭:</p><p><b> 四、硬件設計:</b></p><p><b> 1.設計思想:</b></p><p> 計算機傳輸數(shù)據(jù)有并行和串行兩種模式。在并行數(shù)據(jù)傳輸方式中,使用8條或更多的導線來傳送數(shù)據(jù),雖然并行傳送方式的速度很快,但由于信號的衰減或失真等原因,并行傳輸?shù)木嚯x不能
12、太長,在串行通信方式中,通信接口每次由CPU得到8位的數(shù)據(jù),然后串行的通過一條線路,每次發(fā)送一位將該數(shù)據(jù)放送出去。</p><p> 串行通信采用兩種方式:同步方式和異步方式。同步傳輸數(shù)據(jù)時,一次傳送一個字節(jié),而異步傳輸數(shù)據(jù)是一次傳送一個數(shù)據(jù)塊。</p><p> 串口是計算機上一種非常通用設備串行通信的協(xié)議。大多數(shù)計算機包含兩個基于RS232的串口。串口按位(bit)發(fā)送和接收字節(jié)。
13、盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗。對于兩個進行通行的端口,這些參數(shù)必須匹配:</p><p>
14、 RS-232(ANSI/EIA-232標準)是IBM-PC及其兼容機上的串行連接標準。可用于許多用途,比如連接鼠標、打印機或者Modem,同時也可以接工業(yè)儀器儀表。用于驅動和連線的改進, RS-232只限于PC串口和設備間點對點的通信。</p><p> IBM PC及其兼容機提供了一種有較強的硬件依賴性,但卻比較靈活的串行口I/O的方法,即通過INT 14調用ROM BIOS串行通信口的例行程序。該例行程序
15、。該例行程序包括將串行口初始化為指定的字節(jié)結構和傳輸速率,檢查控制器的狀態(tài),讀寫字符等功能。</p><p> 14號中斷的功能總結如下:</p><p> 串行口服務(Serial Port Service——INT 14H) </p><p> 00H —初始化通信口03H —讀取通信口狀態(tài)</p><p> 01H —向通信口
16、輸出字符04H —擴充初始化通信口</p><p> 02H —從通信口讀入字符</p><p> (1)、功能00H:初始化通信口</p><p> 入口參數(shù):AH=00H</p><p> DX=初始化通信口號(0=COM1,1=COM2,……)</p><p> AL=初始化參數(shù),參數(shù)的說明如下: 波
17、特率奇偶位停止位字的位數(shù)</p><p><b> 76543210</b></p><p> 000 = 110X0 = None0 = 1 bit10 = 7 bits</p><p> 001 = 15001 = Odd1 = 2 bits11 = 8 bits</p><p> 010 = 30011 =
18、 Even</p><p><b> 011 = 600</b></p><p> 100 = 1200</p><p> 101 = 2400</p><p> 110 = 4800</p><p> 111 = 9600</p><p> (2)、功能01H
19、 :向通信口輸出字符</p><p> 入口參數(shù):AH=01H</p><p><b> AL=字符</b></p><p> DX=初始化通信口號(0=COM1,1=COM2,……)</p><p> 出口參數(shù):AL的值不變</p><p> AH的位7=0——操作成功,通信口狀態(tài),A
20、H的位6~0是其狀態(tài)位</p><p> (3)、功能02H :從通信口讀入字符</p><p> 入口參數(shù):AH=02H</p><p> DX=初始化通信口號(0=COM1,1=COM2,……)</p><p> 出口參數(shù):AL=接受的字符</p><p> AH的位7=0——操作成功,通信口狀態(tài),AH的
21、位6~0是其狀態(tài)位</p><p> (4)、功能03H </p><p> 功能描述:讀取通信口狀態(tài)</p><p> 入口參數(shù):AH=03H</p><p> DX=初始化通信口號(0=COM1,1=COM2,……)</p><p> 出口參數(shù):AH=通信口狀態(tài),AL=Modem狀態(tài),參見功能號00H中的
22、說明</p><p> (5)、功能04H </p><p> 功能描述:擴充初始化通信口,僅在PS/2中有效</p><p> 本設計正是利用14號配置串口,實現(xiàn)雙機的雙工通信及單機的自發(fā)自收通信。并畫出了比較完整的原理圖與寫出了比較詳細的程序</p><p><b> 原理框圖:</b></p>
23、<p><b> 資料:</b></p><p> 1)、8251A相關資料介紹:</p><p> 1、8251A的基本性能:</p><p> 8251A是可編程的串行通信接口芯片,基本性能有:</p><p> ?。?).兩種工作方式:同步方式,異步方式。同步方式下,波特率為064K,異步方式下
24、,波特率為0~19.2K。</p><p> ?。?).同步方式下的格式</p><p> 每個字符可以用5、6、7或8位來表示,并且內部能自動檢測同步字符,從而實現(xiàn)同步。除此之外,8251A也允許同步方式下增加奇/偶校驗位進行校驗。</p><p> ?。?).異步方式下的格式</p><p> 每個字符也可以用5、6、7或8位來表示,
25、時鐘頻率為傳輸波特率的1、16或64倍,用1位作為奇/偶校驗。1個啟動位。并能根據(jù)編程為每個數(shù)據(jù)增加1個、1.5個或2個停止位??梢詸z查假啟動位,自動檢測和處理終止字符。</p><p> ?。?).全雙工的工作方式</p><p> ?。?).提供出錯檢測</p><p> 2、8251A的內部結構:</p><p> 發(fā)送器由發(fā)送緩沖
26、器和發(fā)送控制電路兩部分組成。接收器由接收緩沖器和接收控制電路兩部分組成。數(shù)據(jù)總線緩沖器,讀/寫控制電路,調制解調控制電路。</p><p> 8251A內部結構圖</p><p> 3、8251外部引腳圖</p><p> 8251的外部引腳下圖所示,共28個引腳,每個引腳信號的輸入輸出方式如圖中的箭頭方向所示。</p><p><
27、;b> 8251外部引腳圖</b></p><p> 4、8251A的編程</p><p> 編程的內容包括兩大方面:</p><p> 一是由CPU發(fā)出的控制字,即方式選擇控制字和操作命令控制字;</p><p> 二是由8251A向CPU送出的狀態(tài)字。</p><p> ?。?)、方式選
28、擇控制字(模式字)</p><p> 方式選擇控制字的格式如圖所示。</p><p> ?。?)、操作命令控制字(控制字)</p><p> 操作命令控制字的格式如下:</p><p><b> ?。?)、狀態(tài)字</b></p><p><b> 狀態(tài)字的格式如下:</b&g
29、t;</p><p> 2)、8253A相關資料介紹:</p><p> ?。?)可編程定時/計數(shù)器模塊8253</p><p> 本電路模塊可用于產生定時中斷,實現(xiàn)實時時鐘實驗等,本電路端口地址為CS。</p><p> 8253由以下幾個部分組成:</p><p> (1 數(shù)據(jù)總線緩沖器(8位、三態(tài)、雙向)
30、;</p><p> (2 讀/寫控制邏輯;</p><p> CS:片選信號,低電平有效;</p><p> RD:讀信號,低電平有效;</p><p> WR:寫信號,低電平有效</p><p> A1A0:端口選擇信號</p><p> (3 三個通道( 0 ~ 2);<
31、/p><p> (4 一個控制寄存器;</p><p> 8253內部可分為6個模塊,每個模塊的功能如下:</p><p> 1. 數(shù)據(jù)總線緩沖器及數(shù)據(jù)總線D0~D7</p><p> 2. 讀/寫控制邏輯及控制引腳</p><p><b> 3. 控制字寄存器</b></p>
32、<p> 在初始化編程時,CPU寫入方式控制字到控制字寄存器中,用以選擇計數(shù)通道及其相應的工作方式。</p><p><b> 8253的控制字:</b></p><p> 8253的工作方式也是有控制字來決定,其控制字意義如下</p><p> 4. 計數(shù)通道0、計數(shù)通道1、計數(shù)通道2</p><p&g
33、t; 3個計數(shù)通道內部結構完全相同。每個計數(shù)通道都由一個16位計數(shù)初值寄存器、一個16位減法計數(shù)器和一個16位計數(shù)值鎖存器組成</p><p> 計數(shù)初值存于預置寄存器,在計數(shù)過程中,減法計數(shù)器的值不斷遞減,而預置寄存器中的預置不變。輸出鎖存器用于寫入鎖存命令時,鎖定當前計數(shù)值。</p><p> 計數(shù)器的3個引腳說明:</p><p> (1)CLK時鐘輸
34、入信號</p><p> 在計數(shù)過程中,此引腳上每輸入一個時鐘信號(下降沿),計數(shù)器的計數(shù)值減1</p><p> ?。?) GATE門控輸入信號</p><p> 控制計數(shù)器工作,可分成電平控制和上升沿控制兩種類型</p><p> ?。?) OUT計數(shù)器輸出信號</p><p> 當一次計數(shù)過程結束(計數(shù)值減
35、為0),OUT引腳上將產生一個輸出信號</p><p> 8253有6種工作方式,由方式控制字確定</p><p> 區(qū)分這6種工作方式的主要標志由3點:一是輸出波形不同;二是啟動計數(shù)器的觸發(fā)方式不同;三是計數(shù)過程中門控信號GATE對計數(shù)器操作的控制不同。</p><p> 1..方式0--低電平輸出(GATE信號上升沿繼續(xù)計數(shù))</p><
36、;p> 2.方式1--低電平輸出(GATE信號上升沿重新計數(shù))</p><p> 3.方式2--周期性脈沖輸出</p><p> 4.方式3--周期性方波輸出</p><p> OUT輸出低電平,裝入計數(shù)值n后,OUT立即跳變?yōu)楦唠娖?。如果當前GATE為高電平,則立即開始減“1”計數(shù),OUT保持為高電平,若n為偶數(shù),則當計數(shù)值減到n/2時,OUT跳變?yōu)?/p>
37、低電平,一直保持到計數(shù)值為“0”,系統(tǒng)才重新置入計數(shù)值n,實現(xiàn)循環(huán)計數(shù)。這時OUT端輸出周期為n×CLK周期,占空比為1:1的方波序列:若n為奇數(shù),則OUT端輸出周期為n×CLK周期,占空比(n+1)/2 : (n-1)/2的近似方波序列。</p><p> 5.方式4--單次負脈沖輸出(軟件觸發(fā))</p><p> 6.方式5--單次負脈沖輸出(硬件觸發(fā))<
38、/p><p> 每種工作方式的設置過程類似:</p><p><b> ?、?設定工作方式</b></p><p><b> ?、?設定計數(shù)初值</b></p><p> 〔 ⑶ 硬件啟動 〕</p><p> ?、?計數(shù)初值進入減1計數(shù)器</p><p&
39、gt; ⑸ 每輸入一個時鐘計數(shù)器減1的計數(shù)過程</p><p><b> ?、?計數(shù)過程結束</b></p><p> 3)、74LS138相關資料介紹:</p><p> 譯碼器74LS138:</p><p> 74LS138 為3 線-8 線譯碼器,共有 54/74S138和 54/74LS138 兩種線路
40、結構型式。 </p><p><b> 其工作原理如下: </b></p><p> ?、佼斠粋€選通端(E3)為高電平,另兩個選通端(E1)和/(E2))為低電平時,可將地址端(A0、A1、A2)的二進制編碼在Y0至Y7對應的輸出端以低電平譯出。比如:A0A1A2=011時,則Y6輸出端輸出低電平信號。 </p><p> ?、诶?E1、E
41、2和E3可級聯(lián)擴展成 24 線譯碼器;若外接一個反相器還可級聯(lián)擴展成 32 線譯碼器。</p><p> 4)、RS—232C電平轉換芯片(MC1488和MC1489)相關資料介紹:</p><p> 由于制定串行接口標準早在制定TTL邏輯系列之前,因此輸入輸出電平不與TTL兼容。因為這個原因,連接RS232到微機系統(tǒng)必須經過電平轉換。圖9.11中使用了MC1488從TTL 轉換到RS
42、232電平,用MC1489從RS232轉換到TTL電平。MC1488和MC1489集成電路芯片通常稱為線路驅動器和線路接收器。</p><p> 最簡單的RS-232C數(shù)據(jù)通信連接</p><p> RS-232C接口電平轉換:</p><p> RS-232C是早期為促進公用電話網絡進行數(shù)據(jù)通信而制定的標準,其邏輯電平對地是對稱的,完全與TTL、CMOS邏輯
43、電平不同。</p><p> RS-232C采用負邏輯,即:</p><p> 邏輯1:-5V~-15V。 邏輯0:+5V~+15V。</p><p> 由于MCS-51采用TTL電平,若用RS-232C標準接口通信必須進行電平轉換。目前RS-232C與TTL電平轉換最常用的集成電路芯片是傳輸線驅動器MC1488傳輸線接收器MC1489。其內部結構和引腳如下圖
44、所示。</p><p> MC1488可完成TTL電平到RS-232C的電平轉換,輸入為TTL電平,輸出為RS-232C電平。其內部有3個與非門和1個反相器。采用±12V或±15V電源供電。</p><p> MC1489可完成由RS-232C到TTL電平轉換,輸入為RS-232C電平,輸出為TTL電平。其內部有4個反相器,采用+5V電源供電。MC1489中每個反相
45、器都有一個控制端,高電平有效,可作為RS-232C操作的控制端。RS-232C電平轉換芯片MC1488和MC1489</p><p> 5)、ISA總線相關資料介紹:</p><p> ISA總線是IBM PC/AT機(CPU是80286)所用的系統(tǒng)總線:PC/AT總線經過標準化之后的名稱,IEEE將ISA總線作為IEEE P996推薦標準,這是一個16位兼8位的總
46、線標準。如果忽略標準化細節(jié),則可認為16位ISA總線就是PC/AT總線。由于IBM PC/AT與IBM PC、IBM PC/XT機(CPU都是8088)所用的Pc總線兼容,所以可認為8位ISA總線(16位ISA總的低8位部分)就是PC總線。</p><p><b> 引腳信號</b></p><p> 圖9.1所示為16位ISA總線板
47、卡(又稱I/O擴展板或接口板)及插槽外形示意圖,元件面和焊接面共有31+18個引腳(A1~A31、B1~B31、C1~C18和D1~</p><p> D18),其中A1~A31、Bl~B31是低8位部分即8位ISA總線所用的信號。8位ISA總線板卡及插槽與該圖的區(qū)別在于沒有36個引腳(C1一C18和D1~D18)那部分。顯然,8位ISA總線板卡可以插在16位的插槽中。表9.1給出了16位ISA總線前62個引腳
48、(亦是8位ISA總線的全部引腳)信號定義,表9.2給出了16位ISA總線的后36個引腳信號定義。</p><p> 下面對引腳信號做一些簡要說明,首先是62線部分(8位ISA總線)。</p><p> ?、貲7~DO:8位數(shù)據(jù)線,雙向,三態(tài)。對于16位ISA總線,它們是數(shù)據(jù)線 的低8位。</p><p> ?、贏19~A0:20位地址線,輸出。</p
49、><p> ③SMEMR(上劃線)、SMEMW(上劃線):存儲器讀、寫命令,輸出,低電平有效。</p><p> ?、躀OR(上劃線)、IOW(上劃線):I/O讀、寫命令,輸出,低電平有效</p><p> ?、軦EN:地址允許信號,輸出,高電平有效。該信號由DMAC發(fā)出,為高表示DMAC正在控制系統(tǒng)總線進行DMA傳送,所以它可用于指示DMA總線周期。</p&g
50、t;<p> ?、轇ALE:總線地址鎖存允許,輸出。該信號在CPU總線周期的Tl期間有效,可作為CPU總線周期的指示。</p><p> ⑦I/O CH RAY:I/O通道準備好,輸入,高電平有效。該引腳信號與8086的READY功能相同,用于插入等待時鐘周期。</p><p> ⑧I/OCHCK(上劃線):I/0通道校驗,輸入,低電平有效。它有效表示板卡上出現(xiàn)奇偶校驗錯
51、。</p><p> ?、酙RQ7~IRQ2:6個中斷請求信號,輸入,分別接到中斷控制邏輯的主8259A的中斷請求輸入端IR7~IR2(參看第五章的圖5.23)。這些信號由低到高的跳變表示中斷請求,但應一直保持高電平,直到CPU響應中斷為止。它們的優(yōu)先級別與所連接的IR線相同,即IRQ2在這6個請求信號中級別最高,IRQ7的級別最低。</p><p> ?、釪RQ3~DRQl:3個DMA請
52、求信號,輸入,高電平有效。它們分別接到DMA控制器8237A的DMA請求輸入端DREQ3~DREQl。因此,優(yōu)先級別與它們相對應(DRQ1的級別最高,DRQ 3的級別最低)。</p><p> ?DACK3(上劃線)~DACKl(上劃線):3個DMA響應信號,輸出,低電平有效。?T/C:計數(shù)結束信號,輸出,高電平有效。它由DMAC發(fā)出,用于表示進行DMA傳送的通道編程時規(guī)定傳送字節(jié)數(shù)已經傳送完。但它沒有說明是哪
53、個通道,這要結合DMA響應信號DACK(上劃線)來判斷。</p><p> ?OSC:振蕩器的輸出脈沖。</p><p> ?CLK:系統(tǒng)時鐘信號,輸出。系統(tǒng)時鐘的頻率通常在4.77 MHz一8 MHz內選擇,最高頻率為8.3 MHz。CLK是由()SC的輸出3分頻產生的,也就是說()SC的頻率應是CLK的3倍。</p><p> ?RESET:系統(tǒng)復位信號,
54、輸出,高電平有效。該信號有效時表示系統(tǒng)正處于復位狀態(tài),可利用該信號復位總線板卡上的有關電路。</p><p> ?NOWS:零等待狀態(tài),輸入,低電平有效。用于縮短按照缺省設置應等待的時鐘數(shù),當它有效時,不再插入等待時鐘。</p><p> ?REFRESH(上劃線):刷新信號,雙向,低電平有效,由總線主控器的刷新邏輯產生。該信號有效表示存儲器正處于刷新周期,</p>&l
55、t;p><b> 以下是對36線部分</b></p><p> 16位ISA總線的高8位)的簡要說明:</p><p> ? SDl5~SD8:數(shù)據(jù)總線的高8位,雙向,三態(tài)。</p><p> ?SBHE:總線高字節(jié)傳送允許,三態(tài)信號。該信號用來表示SDl5~SD8上正進行數(shù)據(jù)傳送。</p><p> ?
56、LA23~LAl7:非鎖存的地址線,在BALE為高電平時有效。將它們鎖存起來,并和已鎖存的低位地址線(A19~A0)組合在一起,可形成24位地址線,因而使系統(tǒng)的尋址能力擴大到16 MB。</p><p> _MEMR(上劃線),MEMW(上劃線):存儲器讀、寫信號,低電平有效。這兩個信號在所有的存儲器讀或寫周期有效。相比之下,前面所介紹的SMEMR(上劃線)和SMEMW(上劃線)僅當訪問存儲器的低1 MB時才有
57、效。</p><p> +MEMCSl6(上劃線):存儲器片選16,輸入,低電平有效。該信號用來表示當前的數(shù)據(jù)傳輸是具有一個等待時鐘的16位存儲器總線周期。</p><p> 1 I/OCCSl6(上劃線):I/O片選16,輸入,低電平有效。該信號為集電極開路,為低表示當前的數(shù)據(jù)傳輸是具有一個等待時鐘的16位I/O總線周期。</p><p> 2 MASTER
58、(上劃線):總線主控信號,輸入,在ISA總線的主控器初始化總線周期時產生,低電平有效。該信號與I/O通道上的I/0處理器的DRQ線一起用于獲取對系統(tǒng)總線的控制權。</p><p> 3 IRQl5~IRQ10:6個中斷請求信號,輸入,接到中斷控制邏輯的從8259A。</p><p> 4 DRQ7~DRQ5、DACK7(上劃線)~DACK5(上劃線)、DACK0(上劃線):通道7~5
59、的DMA請求和相應的DMA響應信號(另有一個通道0的響應信號)。這3個通道可進行16位DMA傳送。</p><p><b> ISA總線時序 </b></p><p> ISA總線的時序和8086/8088的時序基本相同,但也有一些區(qū)別。有了8086/8088時序基礎,對ISA總線時序的理解主要在于以下幾點: </p><p> ?、俚刂泛?/p>
60、數(shù)據(jù)已不再分時復用信號線,因此在整個總線周期內有效。 </p><p> ?、诤?086/8088的最大模式一樣,存儲器讀/寫和I/O讀/寫的控制信號已分開,進行一種操作只需一個控制信號。 </p><p> ?、垡粋€典型的存儲器讀/寫周期還是由T1、T2、T3和T4組成,而I/O讀/寫周期和DMA周期都自動插入了一個等待時鐘周期。</p><p> ④I/O C
61、H RAY相當于8086/8088時序中的:READY信號,當總線板卡上的存儲器或I/0電路較慢時,可利用該信號迫使CPU插入等待時鐘周期,但等待時鐘周期不得超過10個。</p><p> ?、?位ISA總線在存儲器讀/寫周期可用到20位地址,而16位.|SA總線在存儲器讀/寫周期中可使用24位地址。但由于受I/O指令的限制,8位和16位ISA總線的I/0讀/寫周期都只能使用低16位地址。 </p>
62、<p> ?、轇ALE在CPU總線周期的T1期間有效,它的基本作用是進行地址鎖存,但也可以作為一個新的CPU總線周期已開始的標志。 </p><p> ?、逜EN有效表示DMAC正在控制系統(tǒng)總線,所以它可以作為系統(tǒng)處于DMA總線周期的標志。</p><p><b> 3.工作原理:</b></p><p> IBM PC及其兼容
63、機間經過RS-232-C口串行通信是在實際系統(tǒng)中用的最廣泛的。</p><p> 上述框圖只是串口通信的的一個內部的原理圖,由于,本次設計是直接配置的PC機中的RS232適配卡,上述過程并不能看到,不過在,原理圖的分析中會做詳盡的解釋</p><p> 本次實驗的外部來看實際的電路圖</p><p> PC機上的串行口是 9 針公插座,引腳定義為: </
64、p><p> 所以本設計所采用的串口為雙端母插頭。</p><p> 串口為交叉線,2,3號針腳交叉相連,5號針接公共地。</p><p> EIA RS-232-C接口(9針)插頭連線方法:</p><p><b> 4.電路原理圖:</b></p><p> 4.1頂層的模塊圖,top.
65、pri</p><p> 此原理圖的主要參考資料是protel 99 se中Z80 Microprocessor的例子。整個串行通信系統(tǒng)包括六大部分:CPU部分、復位和時鐘電路部分、電源部分、存儲器部分、串口通信接口部分和外設部分。</p><p> 下就各部分座簡要介紹。</p><p> 4.2 CPU部分。CPU.sch</p><p
66、> CPU部分本來是用8086來做的,但考慮到,8086的尋址比較復雜,數(shù)據(jù)線分高八位和低八位,所以就改成了8088。IO/M,RD,WR幾個控制引腳的譯碼通過簡單的組合邏輯電路來實現(xiàn)。對RAM存儲器、ROM存儲器、各IO芯片的尋址譯碼,是通過一片3-8譯碼器74LS138來實現(xiàn)的。地址線的低13位代碼,在芯片選擇的時候,不起作用,只有A13~A15三位地址線負責譯碼。為了便于記憶,可把芯片選擇時的低13位地址線設為零,來代表它
67、的片選地址。如本設計中,RAM地址位0x00000來表示,而ROM的地址為0x20000,相應地,55,53,51的地址分別為:0x30000,0x40000,0x50000。</p><p> 低13位地址線只在選擇存儲器中的某一存儲單元時使用。</p><p> 4.3復位和時鐘電路。CPU_Clock.sch</p><p> 微機電路在工作中受到干擾后
68、,容易出現(xiàn)CPU程序“跑飛”而盲目運行甚至出現(xiàn)死機現(xiàn)象。此時復位信號有效,使微機系統(tǒng)重新恢復正常運行。本設計采用的是比較簡單的一種手動的復位電路。它是通用的吧,是直接從protel的一個例子中拷</p><p><b> 過來的。</b></p><p> 關于處理器的時鐘電路確實有研究頭</p><p> 8284除了提供頻率恒定的時鐘
69、信號外,還對準備好(ready)信號,和復位(reset)信號進行同步。外界的準備好信號輸入到8284的RDY,同步的準備好信號READY從8284輸出。同樣,外界的復位信號輸入到8284的RES,同步的復位信號RESET從8284輸出。這樣,從外部來說,可以在任何時候發(fā)出這兩個信號,但是,8284的內部邏輯電路設計成在時鐘下降沿處使READY和RESET有效。</p><p> 根據(jù)不同的振蕩器,8284和振
70、蕩器之間,用兩種不同的連接方式。通過F/\C來實現(xiàn):</p><p> 此電路圖是按同步通信的方式畫的,READY信號在以后的設計中,也沒有用到,便把它的連接去掉了</p><p> 4.4電源部分。Power Supply.sch</p><p> 4.5存儲器部分。serial_memory.sch</p><p> 2764只可
71、讀,6264可讀可寫,由于處理器用的是8088,便無需考慮A0的問題了,這種便利也體現(xiàn)在,后面的設計中,IO芯片的端口地址的設置上。</p><p> 4.6 串口通信接口部分。serial51.sch</p><p> 8253為8251提供波特率,8253只用它的第0個計數(shù)器,工作在方式3。下面是一段基于本設計的連接圖的通過8251實現(xiàn)自發(fā)自收串行通信的程序,內包含了8253,82
72、51的初始化。</p><p> STACKSEGMENTPARA STACK 'STACK'</p><p> DB128 DUP(?)</p><p> STACKENDS</p><p> CODESEGMENTPARA PUBLIC 'CODE'</p><p&g
73、t; ASSUMECS:CODE,SS:STACK,DS:CODE</p><p> START:JMPMAIN</p><p> SBUFDB1,2,3,4,5,6,7,8,9,10;定義保存“發(fā)送信息”</p><p> RBUFDB10 DUP(?);和“接收信息”的存儲器區(qū)域</p><p> OCOMM
74、PROC ;將(AL)寫入8251的命令口</p><p> PUSHCX ;保存所用寄存器</p><p><b> PUSHDX</b></p><p> MOVDX,209H;執(zhí)行端口寫入操作</p><p><b> OUTDX,AL</b></p
75、><p> MOVCX,400H ;延時</p><p><b> LOOP$</b></p><p> POPDX ;恢復所用寄存器</p><p><b> POPCX</b></p><p> RET ;返回主
76、調程序</p><p> OCOMMENDP</p><p> INITPROC ;初始化子程序</p><p> MOV DX,0x40003H;設置8253的1#通道為方式3、只讀寫低8位數(shù)據(jù)和2進制計數(shù)方式</p><p> MOVAL,56H</p><p><b
77、> OUTDX,AL</b></p><p> MOVDX, 0x40001H;設置計數(shù)值,通訊速率為1M÷52÷16≈1200 bps</p><p><b> MOVAL,52</b></p><p><b> OUTDX,AL</b></p>&l
78、t;p> MOVAX,300H;向8251的命令端口寫入3個0</p><p> II1:CALLOCOMM</p><p><b> DECAH</b></p><p><b> JNZII1</b></p><p> MOVAL,40H;復位8251</p&
79、gt;<p> CALLOCOMM</p><p> MOVAL,4EH;設置1個停止位、8個數(shù)據(jù)位和16的波特率因子</p><p> CALLOCOMM</p><p> MOVAL,37H;允許8251發(fā)送和接收</p><p> CALLOCOMM</p><p> RE
80、T ;返回主調程序</p><p><b> INITENDP</b></p><p><b> MAIN:</b></p><p> MOVAX,CS;初始化數(shù)據(jù)段寄存器</p><p><b> MOVDS,AX</b></p>
81、<p> LEASI,SBUF;和發(fā)送</p><p> LEADI,RBUF;與接收指針</p><p><b> call init</b></p><p><b> M01:</b></p><p> MOVDX,0x50002H;等待8251處于允許發(fā)送
82、狀態(tài)</p><p><b> M02:</b></p><p><b> INAL,DX</b></p><p><b> TESTAL,1</b></p><p><b> JZM02</b></p><p>
83、 MOVAL,[SI];發(fā)送1個數(shù)據(jù)</p><p><b> INCSI</b></p><p> MOVDX,0x50001H</p><p><b> OUTDX,AL</b></p><p> MOVCX,40H;延時</p><p><b
84、> LOOP$</b></p><p> MOVDX,0x50002H;等待8251處于允許接收狀態(tài)</p><p><b> M03:</b></p><p><b> INAL,DX</b></p><p><b> TESTAL,2</b
85、></p><p><b> JZM03</b></p><p> MOVDX,0x50001H;接收</p><p><b> INAL,DX</b></p><p> MOV[DI],AL;并保存一個數(shù)據(jù)</p><p><b> I
86、NCDI</b></p><p> CMPSI,OFFSET SBUF+10;判斷是否處理完了全部數(shù)據(jù)?</p><p> JBM01;未完,再處理下一個</p><p> HLT;完了,執(zhí)行停機動作</p><p><b> CODEENDS</b></p><p&
87、gt;<b> ENDSTART</b></p><p> 下面是一段基于本設計的連接圖的通過8251實現(xiàn)串行通信的程序。</p><p> stack segment stack</p><p> stack ends</p><p> data segment</p><p>&l
88、t;b> data ends</b></p><p> code segment</p><p> assume cs:code,ds:data,ss:stack</p><p><b> start: </b></p><p><b> push cs</b></
89、p><p><b> pop ds </b></p><p> mov dx,0x0003h;設置8253計數(shù)1工作方式3</p><p> mov al,56h</p><p><b> out dx,al</b></p><p> mov al,52 <
90、/p><p> mov dx,0x0001h給8253計數(shù)器1送初值</p><p><b> out dx,al</b></p><p> mov dx,0x50001h ;初始化8251</p><p><b> xor al,al</b></p><p>
91、mov cx,03;向8251控制端口送3個0</p><p><b> delay:</b></p><p><b> call out1</b></p><p> loop delay</p><p> mov al,40h;向8251控制端口送40H,使其復位</p&
92、gt;<p><b> call out1</b></p><p> mov al,4eh;設置為1個停止位,8個數(shù)據(jù)位,波特率因子為16</p><p><b> call out1</b></p><p> mov al,27h;向8251送控制字允許其發(fā)送和接收</p>
93、<p><b> call out1</b></p><p> next: mov dx,0x50001h</p><p><b> in al,dx</b></p><p> test al,02;檢查接收是否準備好</p><p> jz next;沒有,
94、等待</p><p> mov dx,0x50000h</p><p> in al,dx;準備好,接收 </p><p> push ax </p><p> mov cx,40h</p><p><b> s51: </b></p><p
95、> loop s51;延時</p><p><b> waiti: </b></p><p> mov dx,0x50001h</p><p><b> in al,dx</b></p><p> test al,01;發(fā)送是否準備好</p><p&
96、gt;<b> jz waiti</b></p><p> mov dx,0x50000h</p><p><b> pop ax</b></p><p> out dx,al </p><p><b> jmp next</b></p><
97、p> out1 proc near;向外發(fā)送一字節(jié)的子程序</p><p> out dx,al</p><p><b> push cx</b></p><p> mov cx,400h</p><p><b> gg:</b></p><p>
98、 loop gg;延時</p><p><b> pop cx</b></p><p><b> ret</b></p><p><b> out1endp</b></p><p><b> code ends</b></p>
99、;<p><b> end start</b></p><p> 4.7 外設部分。key_led.sch</p><p> 其實在PC機中應該是用8279來實現(xiàn)的。</p><p><b> 五、軟件設計:</b></p><p><b> 1.程序流程圖:<
100、;/b></p><p><b> 2.程序清單:</b></p><p> nameserialcommunication</p><p> datasegment</p><p> messagedb'Serial Communication',0ah,0dh,</p>
101、;<p> db'Any key press is sent to other PC',0ah,0dh</p><p> db'press any key to exit','$'</p><p><b> dataends</b></p><p> codesegm
102、ent</p><p> assumecs:code,ds:data</p><p><b> start:</b></p><p> movax,data</p><p><b> movds,ax</b></p><p> movah,09 ;顯
103、示字符串</p><p> movdx,offset message</p><p><b> int21h</b></p><p><b> ??;初始化串口 </b></p><p><b> movah,0</b></p><p> m
104、ovdx,0 ;初始化COM0</p><p> moval,0c3h;11000011,4800,n,1,8</p><p> int14h;調用BIOS 14號中斷</p><p><b> again:</b></p><p> movah,01;獲取鍵盤狀態(tài)</p>
105、<p> int16h;檢查鍵盤是否按下</p><p> jznext;如果沒有則轉入到接收模式</p><p> movah,0;如過有按鍵按下,讀取出來</p><p> int16h;調用16號BIOS中斷</p><p> cmpal,1bh;比較一下是否是’ESC’鍵</
106、p><p> jeexit;如果是,直接退出通信</p><p> movah,1;如果不是,把按下的字符發(fā)送到COM</p><p> movdx,0 ;選擇COM0</p><p> int14h;調用BIOS中斷</p><p> ??;以下這部分代碼,檢查COM0端口,看看是否有字符接
107、收,如果有,接收,并且把它在終端上顯示出來</p><p><b> next:</b></p><p> movah,3;把COM口的狀態(tài)讀到AH</p><p> movdx,0 ;選擇COM0</p><p> int 14h;解釋同上</p><p> a
108、ndah,1;屏蔽除D0位的其它位</p><p> cmpah,1;檢查D0看是否有一個字符等待接收</p><p> jneagain;沒有,則轉入到監(jiān)視鍵盤模塊</p><p> movah,2;有的話,從COM0讀出</p><p><b> movdx,0</b></p&
109、gt;<p><b> int14h</b></p><p> movdl,al;dl中存放要顯示的字符</p><p> movah,2;21號中斷2號調用,顯示字符</p><p> int21h;調用DOS 21號中斷</p><p> jmpagain;跳回到監(jiān)視
110、鍵盤模塊</p><p><b> exit:</b></p><p> movah,4ch;退出DOS</p><p><b> int21h</b></p><p><b> codeends</b></p><p> end s
111、tart</p><p> 以上是全雙工雙機通信的程序代碼,自發(fā)自收也可以用同樣的代碼,只需改變連線,把9針插座的2,3引腳用導線交叉互聯(lián)即可。</p><p><b> 六、方案論證:</b></p><p> 按設計題目實現(xiàn)雙機通信可有三種方法:</p><p> 第一種方法:通過配置PC機中固有的RS23
112、2適配卡,通過調用BIOS的14號中斷,及DOS中斷的16號、21號中斷里的功能,實現(xiàn)雙機的通信。</p><p> 第二種方案:在微機中通過配置可編程芯片8251來實現(xiàn)串行通信。</p><p> 第三種方案:由芯片級做起,查資料,畫原理圖,版圖,制版,調試,實現(xiàn)串口通信。</p><p> 總地來說,第三種方案不符合現(xiàn)實情況,在時間上,資源上不允許,但毋庸
113、置疑的是,它確實是最吸引我們的一種方案。</p><p> 第二種方案是最合情合理的,既不像第三種方案那樣遙遠,也不像第一種方案那樣簡單。但在實際做的工程中,發(fā)現(xiàn)按實驗資料所設計的程序并沒有實現(xiàn),可能有一些未知的原因。最后選擇了第三種方案,可惜的是,這種程序更加偏向于軟件。為彌補這種不足,只能把實驗原理圖畫得詳細一點了。</p><p><b> 七、實驗結果:</b&
114、gt;</p><p> 1.在發(fā)送端的程序顯示結果</p><p> 輸入的字符沒有顯示,因為程序沒有回顯功能</p><p> 2.在接收端的程序顯示結果</p><p> 注:其實“接收端”與“發(fā)送端”描述,只是在一次的通信中相對而言的,并沒有絕對的接收端與發(fā)送端,因為此程序是雙工的。</p><p>
115、 八、設計小結和心得:</p><p> 這次的課程設計,我覺得我學到了很多的東西,受益匪淺。因為之前已經做了幾次單片機課程設計的經驗,這次的課程設計相對于上次來說,明顯不再是那么手足無措。因為,對于一些基本硬件的基本用法,我們在前幾次的實驗中基本上都已經用過,所以比較了解來。此外,對于電路的設計也有了一定的理解。但是,通過本次的課程設計,我還是很很多體會。我更加懂得了如何利用匯編語言聯(lián)系實際來進行編程,同時在
116、編程的過程中,應當了解一些管腳的使用方法,以及在匯編語言中使用的代碼和一些器件的初始化方法,同時也讓我明白了自己的一些不足,認識到僅僅把書本上的知識學好是遠遠不夠的,需要拓寬自己的知識面,將所學習到的東西運用到實踐中去,這樣才能夠應付未來的挑戰(zhàn)。</p><p> 當然在本次課程設計中,我遇到了很多之前沒有想到會遇到的困難。此時,圖書館和上網查資料成了我們很好的助手。在查閱資料的過程中,我們要判斷優(yōu)劣、取舍相關
117、知識,不知不覺中我們查閱資料的能力也得到了很好的鍛煉。我們學習的知識是有限的,在以后的工作中我們肯定會遇到許多未知的領域,這方面能力的提升便會使我們受益非淺。而且在設計過程中,總是遇到這樣或那樣的問題。有時發(fā)現(xiàn)一個問題的時候,需要做大量的工作來進行調試,然后才能解決。自然而然,我分析問題解決問題的能力得到了增強。為以后的工作積累了經驗,增強了信心。通過這次的軟件設計,我熟悉了單片機開發(fā)的每個步驟,它不但檢查了我的整個知識面的掌握程度,知
118、道了自己的不足,讓我更加牢固的掌握了單片機方面的相關知識!這次的軟件設計也讓我學會了在遇到問題時,如何冷靜的思考問題以及解決問題!更讓我懂得了學習貴在堅持。我學到了更多以前沒有學到過的知識。在這里,我很感謝指導老師和同學給我的幫助,使我能順利完成我的軟件設計。</p><p> 總之通過本次設計,讓我很好的鍛煉了理論聯(lián)系實際,如何把理論應用于實際,又如何實踐中遇到的問題怎樣用理論去解決。感謝學校給我們大家這樣一
119、次課程設計的機會,為我們以后的工作打下了堅實的基礎。</p><p><b> 九、參考文獻:</b></p><p> 《微型計算機接口技術及應用》</p><p><b> 十、小組安排:</b></p><p> 組長(彭 勇):設計原理及方案;設計小結和心得;以及實驗報告</
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機原理課程設計報告-雙機串行通信
- 《微機原理與接口技術》課程設計--雙機串行通訊程序設計
- 接口技術課程設計-雙機串行通訊
- 雙機串行通信課程設計
- 課程設計 雙機串行通信的實現(xiàn)
- 微機接口課程設計
- 接口課程設計報告——雙機通信
- 雙機并行通訊微機原理課程設計
- 微機接口課程設計報告
- 接口與通信課程設計--雙機通信
- 單片機課程設計報告--雙機串行通訊
- 單片機課程設計---雙機之間的串行通信設計
- eda課程設計--rs-232485通信接口設計
- 微機原理課程設計--雙機并行通訊問題
- 微機接口課程設計---位移的測量
- 微機原理課程設計--中斷實現(xiàn)雙機通訊程序
- 接口與通信課程設計---雙擊串行通信
- 微機接口課程設計(電子鐘)
- 評分系統(tǒng)課程設計-微機接口課程設計報告
- 微機接口音樂點歌課程設計
評論
0/150
提交評論