999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

雙機通訊設(shè)計

2015-02-04 22:38:51李槐生
科技與創(chuàng)新 2015年1期
關(guān)鍵詞:信號

李槐生

摘??要:用匯編語言編寫了一個雙機通訊程序,即用中斷的方式實現(xiàn)從發(fā)送方鍵盤上輸入一個字符,接收方收到該字符后,將其顯示在微機屏幕上的過程。

關(guān)鍵詞:雙機通訊程序;雙機串行通訊;8250芯片;Modem

中圖分類號:TP273+.5????????????文獻標識碼:A???????????????DOI:10.15913/j.cnki.kjycx.2015.01.013

1??雙機通訊

雙機串行通訊如圖1所示。

圖1??雙機串行通訊

雙機通信時,通常采用串行方式。串行通訊是指只需要1條數(shù)據(jù)線就可以傳送數(shù)據(jù),且數(shù)據(jù)各數(shù)位按照規(guī)定順序傳送的通訊方式。從圖1中看以看出,用串行通信線將2臺計算機連接起來,再調(diào)用BIOS中斷指令,可利用中斷方式實現(xiàn)串行通信。在串行方式中,通信接口每次由CPU中獲得8位數(shù)據(jù),并串行通過1條線路,每次發(fā)送1位數(shù)據(jù)。

2??8250芯片和接口電纜

2.1??可編程串行通訊接口8250

8250芯片是各種微機系統(tǒng)和計算機網(wǎng)絡(luò)中被使用最多的一種異步通信接口芯片,是異步通信卡的核心部件。該芯片主要包括總線緩沖器、芯片內(nèi)部選擇控制邏輯、接收控制電路、發(fā)送控制電路、傳輸速度控制電路、調(diào)制解調(diào)控制電路和中斷控制電路。該芯片具有以下6種性能:①僅適用于異步串行通信方式,可選擇每字符的數(shù)據(jù)位數(shù)為5~8位;②內(nèi)裝可編程波特率發(fā)生器,允許數(shù)據(jù)傳輸?shù)牟ㄌ芈蕿?0~9?600?bps,且具有獨立的接收器時鐘信號輸入;③接收和發(fā)送均具有雙重緩沖;④具有優(yōu)先權(quán)中斷管理系統(tǒng),可對發(fā)送、接收、錯誤和通信線路狀態(tài)進行中斷檢測;⑤可提供通信線路和Modem的全部運行狀態(tài);⑥能檢測假起始位,產(chǎn)生和檢測終止符,且具有自診斷測試功能。

2.2??8250引腳

2.2.1??數(shù)據(jù)總線D0~D7

CPU與8250之間的信息通過數(shù)據(jù)總線D0~D7交換。

2.2.2??地址和地址控制線

地址線A0~A2尋址8250內(nèi)部寄存器。3個片選線為CS0、CS1和CS2都有效時,才可選中8250芯片。地址選通信號ADS(非)低電平有效時,鎖存上述地址線和片選線的輸入狀態(tài),并保證讀寫期間的地址穩(wěn)定。另外,當3個片選線都有效,且片選輸出引腳CSOUT輸出高電平時,證明8250已被選中。具體如圖2所示。

2.2.3??讀寫控制線

8250讀寫控制信號有2對,每對信號的作用完全相同,只有有效點不同。當8250被選中時,當數(shù)據(jù)輸入選通信號DISTR和DISTR(非)中只有一個信號有效時,CPU從被選擇的內(nèi)部寄存器中讀出數(shù)據(jù);當數(shù)據(jù)輸出選通信號DOSTR和DOSTR(非)中只有一個信號有效時,CPU會將數(shù)據(jù)寫入8250被選擇的內(nèi)部寄存器。另外,CPU從8250讀取數(shù)據(jù)時,8250輸出驅(qū)動器禁止信號DDIS為低電平,議禁止外部收發(fā)器對系統(tǒng)總線的驅(qū)動,且DDIS為高電平信號。

圖2??8250引腳圖

其中,輸入信號的引腳如下:①CS0、CS1、CS2為片選信號。當這3個片選信號同時有效時,芯片被選中,經(jīng)地址選通信號ADS鎖存后,8250才可以與CPU通信。②ADS為地址選通。當該信號有效時,鎖存片選信號(CS0、CS1、CS2)和寄存器選擇信號(A0、A1、A2)。只有當寄存器選擇信號在讀操作或?qū)懖僮髌陂g不穩(wěn)定時,才需要有效的?ADS輸入;不需要此信號時,需要將其接入低電平。③DISTR、DISTR為數(shù)據(jù)輸入選通。當該芯片被選中,且DISTR為高電平或DISTR為低電平時,允許CPU從8250中某一被選中的寄存器讀取狀態(tài)信息或數(shù)據(jù)。④DOSTR、DOSTR為數(shù)據(jù)輸出選通。當該芯片被選中,且DOSTR為高電平或DOSTR為低電平時,允許CPU從8250中某一被選中的寄存器寫入數(shù)據(jù)或控制字符。⑤A0、A1、A2為寄存器選擇。這3個信號用于在讀操作或?qū)懖僮髌陂g,選擇8250中的一個讀寄存器或?qū)懠拇嫫鳌"轒R為主復位。當MR為高電平時,除接收數(shù)據(jù)寄存器、發(fā)送保持寄存器和數(shù)鎖存寄存器外,其余寄存器和控制邏輯均被復位,SOUT、INTRPT、OUT1、OUT2、RTS和DTR輸出信號也會受到影響,MR一般接入系統(tǒng)的復位信號線。⑦RCLK為接收時鐘。接16倍接收波特率的時鐘信號。⑧SIN為串行輸入。由外設(shè)或數(shù)據(jù)設(shè)備發(fā)送的串行數(shù)據(jù)接收端。

輸出信號引腳如下:①DTR為數(shù)據(jù)終端是否準備好。當DTR為低時,則通知Modem8250可開始通信。將Modem控制寄存器的第0位(DTR)設(shè)置成1,DTR引腳就會變?yōu)榈碗娖健"赗TS為請求發(fā)送。當RTS為低時,則通知Modem8250可發(fā)送數(shù)據(jù)。將Modem控制寄存器的第1位(RTS)設(shè)置成1,RTS引腳就會變?yōu)榈碗娖健"跜SOUT為片選輸出。當該信號為高電平時,表示8250已被CS0、CS1和CS2信號選中。只有該信號為高電平時,才能開始傳送數(shù)據(jù)。④BAUDOUT為波特率輸出。該信號是8250發(fā)送器所使用的傳輸速率16倍頻的時鐘信號。如果將該信號與RCLK相連,則此信號也可作為8250接收器的時鐘信號。⑤INTRPT為當下列任意一種中斷類型出現(xiàn)有效狀態(tài),并通過中斷允許存器允許中斷時,此信號為高電平。中斷類型包括接收器錯誤標志、接收數(shù)據(jù)就緒、發(fā)送保持寄存器空和Modem改變狀態(tài)。⑥SOUT為串行輸出。它是串行數(shù)據(jù)的輸出端。

2.2.4??復位線MR

該引腳接至系統(tǒng)的復位信號Reset.當其有效時,8250復位,控制部分寄存器和輸出信號的狀態(tài)如圖3所示。

圖3??8250的復位狀態(tài)

2.2.5??中斷請求線INTRPT

8250內(nèi)部有4種類型的中斷源,當任意一個未被屏蔽的中斷源有請求時,INTRPT輸出高電平會向CPU

請求中斷。適當?shù)闹袛喾?wù)或復位MR有效都可使INTRPT變?yōu)榈碗娖健?/p>

2.2.6??時鐘信號

外部晶體振蕩器電路產(chǎn)生的時鐘信號送至時鐘輸入引腳XTAL1,并作為8250的基準工作時鐘。

2.2.7??串行數(shù)據(jù)輸入線SIN

由串行數(shù)據(jù)輸入線SIN接收設(shè)備送來的串行數(shù)據(jù)。

2.2.8??串行數(shù)據(jù)輸出線SOUT

8250由串行數(shù)據(jù)輸出線SOUT發(fā)送串行數(shù)據(jù)給通信設(shè)備。

2.2.9??調(diào)制解調(diào)器控制線

調(diào)制解調(diào)器控制線包括數(shù)據(jù)終端DTR(非)、數(shù)據(jù)設(shè)備DSR(非)、發(fā)送請求RTS(非)、允許請求CTS(非)、接收線路檢測RSLD(非)和振鈴指示RI(非),均為低電平時有效。

2.2.10??輸出線

OUT1(非)和OUT2(非)是2個一般用途的輸出信號,調(diào)制解調(diào)器控制寄存器中的D2和D3可使其輸出低電平的有效信號,并能使其復位恢復為高電平。

2.3??RS-232-C串行接口標準

RS-232-C接口既可用于同步通信,又可用于異步通信,它是一種在數(shù)據(jù)終端設(shè)備DTE與數(shù)據(jù)通信設(shè)備DCE之間的聯(lián)接標準。在短距離通信時,可直接通過RS-232-C接口在計算機與計算機之間實現(xiàn)相連,具體如圖4所示.

圖4??通過RS-232-C接口連接計算機

3??編程思路

第一步,設(shè)傳輸波特率——寫入除數(shù)寄存器。應(yīng)確定傳輸速率、接收時鐘和發(fā)送時鐘,由此計算出分頻系數(shù),并將其寫入除數(shù)寄存器。下面是第一個通信接口COM1工作在1?200波特率的設(shè)置程序段:

MOV????????AL,80H

MOV????????DX,3FBH

OUT?????????DX,AL?????????;寫入通信線路控制寄存器,使DLAB=1

MOV????????AL,60H?????????;分頻系數(shù):1.834?2?MHz/(1?200×16)=96=60H

MOV????????DX,3F8H

OUT?????????DX,AL?????????;寫入寄存器低8位

MOV????????AL,0

INC?????????DX

OUT????????DX,AL??????????;寫入寄存器高8位

第二步,設(shè)置字符格式——寫入線路寄存器。根據(jù)起止式協(xié)議,假使我們用7個數(shù)據(jù)位、2個停止位,采用奇校驗的方式,則程序段如下:

MOV????????AL,00001110?B

MOV????????DX,3FBH

OUT?????????DX,AL??????;寫入通信線路控制寄存器

這段程序同時使DLAB=0,以方便下述初始化過程。

第三步,設(shè)置中斷工作方式的程序段。調(diào)制解調(diào)器控制寄存器的最低位兩位通常為1,即使系統(tǒng)中沒有使用調(diào)制解調(diào)器,也可建立數(shù)據(jù)終端準備好DTR(非)和請求發(fā)送RTS(非)的有效信號。設(shè)置中斷工作方式的程序段為:

MOV????????AL,0BH?????????????;控制OUT2為低,允許INTRPT產(chǎn)生請求

MOV????????DX,3FCH

OUT?????????DX,AL

第四步,設(shè)置中斷允許或屏蔽位——寫入中斷允許寄存器。其程序段為:

MOV???????AL,0??????????;禁止所有中斷

MOV???????DX,3F9H

OUT????????DX,AL????????;寫入中斷允許寄存器(應(yīng)保證此時DLAB=0)

第五步,讀取通信線路的狀態(tài),判斷是否可通信。

第六步,送出或讀入一個字符。

第七步,重復第二步和第三部,直至通信結(jié)束。

當允許中斷時,CPU送出(或讀入)一個字符。在8250收到一個字符或?qū)⒁粋€字符送出后,會通過IRQ4(或IRQ3)向CPU申請中斷,識別8250的中斷類型,并作出相應(yīng)的處理(送出或讀入一個字符等)。

4??程序設(shè)計

具體的程序設(shè)計如下:

DATA?SEGMENT

SHOWMESS?DB?100?DUP(?)

DATA?ENDS

CODE?SEGMENT

ASSUME?CS:CODE,DS:DATA

START:MOV?AX,DATA

MOV?DS,AX??????????;數(shù)據(jù)段基值裝入(通過AX)

LEA?DX,SHOWMESS????????;字符串有效地址裝入DX寄存器

MOV?AH,09H

INT?21H????????????;?DOS顯示字符串功能調(diào)用

MOV?DX,1

MOV?AL,8EH

INT?14H??????????????;初始化串口COM2

FORE:MOV?AH,03H

MOV?DX,1

INT?14H???????????????;讀串口2狀態(tài)字

TEST?AH,01H?????????;數(shù)據(jù)準備好?

JNZ?RECE?????????????;準備好轉(zhuǎn)接收程序

TEST?AH,20H?????????;發(fā)送移位寄存器空

JZ?FORE???????????????;不空轉(zhuǎn)FORE,繼續(xù)檢測

MOV?AH,1

INT?16H????;否則利用BIOS鍵盤中斷調(diào)用,輸入字符

JZ?FORE???????????????;沒有按鍵,繼續(xù)

MOV?AH,0

INT?16H???????????????;?BIOS鍵盤輸入

CMP?AL,1BH

JZ?QUIT???????????????;是否是ESC鍵,是否退出

MOV?AH,1

MOV?DX,1

INT?14H???????????????;是否則發(fā)送字符

CMP?AL,0DH

JNZ?RECE

MOV?AH,02H

MOV?DL,0AH

INT?21H?????????;如果發(fā)送的為回車符,則顯示換行

MOV?DL,0DH

INT?21H

RECE:MOV?AH,3

MOV?DX,1

INT?14H???????????????;讀串口2狀態(tài)字

TEST?AH,01H?????????;數(shù)據(jù)準備好?

JZ?FORE???????????;數(shù)據(jù)位準備好轉(zhuǎn)FORE繼續(xù)檢測

MOV?AH,01H

MOV?DX,1

INT?14H????????????????;否則讀入字符

MOV?DL,AL

AND?DL,7FH??????????;屏蔽校驗位

MOV?AH,02H

INT?21H????????????????;DOS中斷顯示字符

JMP?FORE??????????????;接受方發(fā)送字符

QUIT:MOV?AH,4CH??????????;退出程序,返回DOS

INT?21H

CODE?ENDS??????????????????;代碼段結(jié)束

END?START??????????????;程序結(jié)束

〔編輯:張思楠〕

Dual-machine?Communication?Design

Li?Huaisheng

Abstract:?Written?in?assembly?language?a?two-machine?communication?program,?which?uses?interrupts?a?way?that?a?character?input?from?the?keyboard?on?the?sender,?the?recipient?received?after?the?character,?which?is?displayed?on?a?computer?screen?process.

Key?words:?two-machine?communication?program;?dual?serial?communication;?8250?chip;?modem

猜你喜歡
信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
7個信號,警惕寶寶要感冒
媽媽寶寶(2019年10期)2019-10-26 02:45:34
孩子停止長個的信號
《鐵道通信信號》訂閱單
基于FPGA的多功能信號發(fā)生器的設(shè)計
電子制作(2018年11期)2018-08-04 03:25:42
基于Arduino的聯(lián)鎖信號控制接口研究
《鐵道通信信號》訂閱單
基于LabVIEW的力加載信號采集與PID控制
Kisspeptin/GPR54信號通路促使性早熟形成的作用觀察
主站蜘蛛池模板: 免费一级毛片完整版在线看| 一级做a爰片久久毛片毛片| 国产网站免费看| 五月婷婷综合网| 久久精品国产精品青草app| 国产三级成人| 国产精品对白刺激| 欧美成人综合视频| 日本精品影院| 国产不卡国语在线| 亚洲码在线中文在线观看| 亚洲人成人无码www| 国产爽妇精品| 中文字幕免费在线视频| 亚洲成人精品久久| 免费人成视网站在线不卡| 免费 国产 无码久久久| 特级精品毛片免费观看| 天天躁狠狠躁| 久久这里只有精品2| 亚洲AV一二三区无码AV蜜桃| 精品视频一区二区三区在线播| 日韩中文精品亚洲第三区| 日韩专区欧美| 四虎精品免费久久| 男女男免费视频网站国产| 久久久久国产精品嫩草影院| 无码福利日韩神码福利片| 欧美日韩精品在线播放| 国产在线拍偷自揄观看视频网站| av一区二区三区高清久久| 国产无码网站在线观看| 国产网友愉拍精品视频| 国产亚洲精品91| 成人免费网站久久久| 亚洲欧美在线精品一区二区| 国产精欧美一区二区三区| 全免费a级毛片免费看不卡| 国内精品九九久久久精品| 亚洲清纯自偷自拍另类专区| 欧美色伊人| 国产白浆一区二区三区视频在线| 高清免费毛片| 国产精品视频导航| 99久久精品国产精品亚洲| 国产乱子伦一区二区=| 在线免费亚洲无码视频| 青青青亚洲精品国产| 欧美全免费aaaaaa特黄在线| 国产拍在线| 欧美精品亚洲二区| 怡春院欧美一区二区三区免费| 国产成人综合日韩精品无码首页| 国产福利2021最新在线观看| 精品伊人久久久大香线蕉欧美| 日韩美毛片| 婷婷六月激情综合一区| 国产亚卅精品无码| 欧美一级高清视频在线播放| 香蕉网久久| 亚洲国产精品无码久久一线| 婷婷综合缴情亚洲五月伊| 亚洲国产成人麻豆精品| 国产玖玖视频| 中文字幕日韩欧美| 亚洲国产成人久久精品软件| 国产av一码二码三码无码 | 亚洲国产日韩在线成人蜜芽| 亚洲第一中文字幕| 亚洲人成色在线观看| 91精品专区| 国产日韩欧美一区二区三区在线 | 国产精品欧美在线观看| 国产91精品最新在线播放| 在线免费不卡视频| h视频在线观看网站| 国产一区二区三区日韩精品 | 中国国产高清免费AV片| 污污网站在线观看| 青青青草国产| 国产无套粉嫩白浆| av在线无码浏览|