亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        雙機(jī)通訊設(shè)計(jì)

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

        李槐生

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

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

        中圖分類號:TP273+.5????????????文獻(xiàn)標(biāo)識(shí)碼:A???????????????DOI:10.15913/j.cnki.kjycx.2015.01.013

        1??雙機(jī)通訊

        雙機(jī)串行通訊如圖1所示。

        圖1??雙機(jī)串行通訊

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

        2??8250芯片和接口電纜

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

        8250芯片是各種微機(jī)系統(tǒng)和計(jì)算機(jī)網(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,且具有獨(dú)立的接收器時(shí)鐘信號輸入;③接收和發(fā)送均具有雙重緩沖;④具有優(yōu)先權(quán)中斷管理系統(tǒng),可對發(fā)送、接收、錯(cuò)誤和通信線路狀態(tài)進(jìn)行中斷檢測;⑤可提供通信線路和Modem的全部運(yùn)行狀態(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個(gè)片選線為CS0、CS1和CS2都有效時(shí),才可選中8250芯片。地址選通信號ADS(非)低電平有效時(shí),鎖存上述地址線和片選線的輸入狀態(tài),并保證讀寫期間的地址穩(wěn)定。另外,當(dāng)3個(gè)片選線都有效,且片選輸出引腳CSOUT輸出高電平時(shí),證明8250已被選中。具體如圖2所示。

        2.2.3??讀寫控制線

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

        圖2??8250引腳圖

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

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

        2.2.4??復(fù)位線MR

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

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

        2.2.5??中斷請求線INTRPT

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

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

        2.2.6??時(shí)鐘信號

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

        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(非),均為低電平時(shí)有效。

        2.2.10??輸出線

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

        2.3??RS-232-C串行接口標(biāo)準(zhǔn)

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

        圖4??通過RS-232-C接口連接計(jì)算機(jī)

        3??編程思路

        第一步,設(shè)傳輸波特率——寫入除數(shù)寄存器。應(yīng)確定傳輸速率、接收時(shí)鐘和發(fā)送時(shí)鐘,由此計(jì)算出分頻系數(shù),并將其寫入除數(shù)寄存器。下面是第一個(gè)通信接口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個(gè)數(shù)據(jù)位、2個(gè)停止位,采用奇校驗(yàn)的方式,則程序段如下:

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

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

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

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

        第三步,設(shè)置中斷工作方式的程序段。調(diào)制解調(diào)器控制寄存器的最低位兩位通常為1,即使系統(tǒng)中沒有使用調(diào)制解調(diào)器,也可建立數(shù)據(jù)終端準(zhǔn)備好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)保證此時(shí)DLAB=0)

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

        第六步,送出或讀入一個(gè)字符。

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

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

        4??程序設(shè)計(jì)

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

        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ù)準(zhǔn)備好?

        JNZ?RECE?????????????;準(zhǔn)備好轉(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ù)準(zhǔn)備好?

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

        MOV?AH,01H

        MOV?DX,1

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

        MOV?DL,AL

        AND?DL,7FH??????????;屏蔽校驗(yàn)位

        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個(gè)信號,警惕寶寶要感冒
        媽媽寶寶(2019年10期)2019-10-26 02:45:34
        孩子停止長個(gè)的信號
        《鐵道通信信號》訂閱單
        基于FPGA的多功能信號發(fā)生器的設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:42
        基于Arduino的聯(lián)鎖信號控制接口研究
        《鐵道通信信號》訂閱單
        基于LabVIEW的力加載信號采集與PID控制
        Kisspeptin/GPR54信號通路促使性早熟形成的作用觀察
        亚洲乱码av中文一区二区| 天天摸天天做天天爽天天舒服| 一本久久伊人热热精品中文| 日本黑人乱偷人妻在线播放| 不卡一卡二卡三乱码免费网站| 伊人色综合九久久天天蜜桃| 狠狠色噜噜狠狠狠狠97俺也去| 精品国产三区在线观看| 日日摸日日碰人妻无码| 吸咬奶头狂揉60分钟视频| 91精品日本久久久久久牛牛| 亚洲性av少妇中文字幕| 亚洲夜夜性无码| 拍摄av现场失控高潮数次| 国产剧情无码中文字幕在线观看不卡视频| 久亚洲一线产区二线产区三线麻豆 | 粉嫩av最新在线高清观看| 欧美精品黑人粗大免费| 国产精品无码一区二区在线国| 日韩有码中文字幕av| 精品亚洲国产成人av色哟哟| 国产伦久视频免费观看视频 | 亚洲av色香蕉一区二区蜜桃| 最新国产女主播在线观看| 久久久亚洲欧洲日产国码αv| 国产啪精品视频网给免丝袜| 国内人妖一区二区在线播放| 一边摸一边做爽的视频17国产 | 无码伊人久久大香线蕉| 福利利视频在线观看免费| 亚洲av无码专区亚洲av伊甸园 | av在线播放一区二区免费| 美女内射毛片在线看免费人动物 | 久久免费视亚洲无码视频| 日韩女优一区二区在线观看| 国产精品人人做人人爽| 久久精品国产亚洲av电影| 一区二区三区四区四色av| 中文字幕一区二区三区视频| 真实单亲乱l仑对白视频| 亚洲日本无码一区二区在线观看 |