最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

串口芯片的簡單理解

2023-03-26 17:49 作者:我愛計(jì)算機(jī)科學(xué)  | 我要投稿

串口芯片的引腳如下:

內(nèi)部結(jié)構(gòu)如下:

上面兩個圖比較復(fù)雜,也似乎很難記住。其實(shí),對于串口通信芯片,最關(guān)鍵的就是每塊芯片有一根發(fā)送信號線和一根接收信號線,兩塊8251連接如圖所示:

兩塊8251要進(jìn)行通信,只要各自檢查下面的兩個引腳就行:

①TxRDY(Transmitter Ready):發(fā)送器準(zhǔn)備好,高電平有效。如果該信號有效,就表示發(fā)送緩沖器已空,通知CPU可以向芯片送入新的數(shù)據(jù)。

②RxRDY(Receiver Ready):接收器準(zhǔn)備好,高電平有效。如果RxRDY為高,表示接收緩沖器中已經(jīng)有組裝好了的一個數(shù)據(jù)字符,通知CPU讀取數(shù)據(jù)。

如果都準(zhǔn)備好了,再通過下面兩個引腳發(fā)送和接收數(shù)據(jù):

①TxD:發(fā)送數(shù)據(jù)線。

②RxD:接收數(shù)據(jù)線。

上圖是進(jìn)行通信的兩塊8251連接圖:

初始化程序由兩部分組成:

①將一方定義為發(fā)送方,發(fā)送方CPU查詢到TxRDY有效時,則CPU向8251A并行輸出一個待發(fā)送的字節(jié)數(shù)據(jù);

②將對方定義為接收方,接收方CPU查詢到RxRDY有效時,則從8251A輸入一個已接收到的字節(jié)數(shù)據(jù),直到全部數(shù)據(jù)傳送完畢為止。

程序如下:

發(fā)送程序如下:

START:MOV  DX,3F9H

MOV  AL,7FH   ??;異步方式,8位數(shù)據(jù),

;一位停止位,偶校驗(yàn)

OUT  DX,AL   波特率因子為64,允許發(fā)送

MOV  AL,11H   ?。徊僮髅钭?/p>

OUT  DX,AL

MOV  DI,1000H  ;設(shè)置地址指針

MOV  CX,40H  ;設(shè)置計(jì)數(shù)器初值

-----------------------------------------------------------------------------------------

程序到這里是設(shè)置芯片的工作狀態(tài),包括同步異步等。

L1: MOV  DX,3F9H

 IN  AL,DX

 AND AL,01H  ;查詢TxRDY是否有效

  JZ L1   ;無效則等待

 MOV  DX,3F8H

 MOV  AL,[DI]  ;向8251A輸出一個字節(jié)數(shù)據(jù)

 OUT  DX,AL 

 INC  DI   ?。恍薷牡刂分羔?/p>

  LOOP L1     ;未傳送完,則繼續(xù)下一個

  HLT

--------------------------------------------------------------------------------

這一部分就是發(fā)送數(shù)據(jù),很簡單,TxRDY準(zhǔn)備好了就發(fā)送。

接收程序如下:

BEGIN:MOV  DX,3F9H

MOV  AL,7FH ;異步方式,8位數(shù)據(jù),1位停止位

OUT  DX,AL ;偶校驗(yàn),波特率因子64,允許接收

MOV  AL,14H?。徊僮髅钭郑ㄖ肊R,RxE 為1)

------------------------------------------------------------------------------

程序到這里也是設(shè)置芯片的工作狀態(tài),包括同步異步等。

MOV  DX,AL

MOV  SI, 2000H?。辉O(shè)置地址指針

MOV  CX,40H ?。辉O(shè)置計(jì)數(shù)器初值

L2:MOV  DX,3F9H

IN  AL,DX;讀取狀態(tài)字

TEST  AL,38H ;查詢接收器是否有錯。

JNZ  ERR ;有錯則轉(zhuǎn)錯誤處理

AND  AL,02H ;無誤則查狀態(tài)位D1(RxRDY)

JZ    L2 ;接收未準(zhǔn)備好則等待

MOV  DX,3F8H

IN   AL,DX ;接受準(zhǔn)備好,則接收1個字節(jié)數(shù)據(jù)

MOV?。跾I],AL

INC   SI ;修改接收數(shù)據(jù)區(qū)地址

LOOP L2

JMP  L3

ERR:CALL  ERR-OUT(略)

L3:MOV  AX,4C00H??;已接收完,返回DOS

  INT  21H

--------------------------------------------------------------------------------

這一部分就是接收數(shù)據(jù),很簡單,RxRDY準(zhǔn)備好了就接收。


因此,上述程序總結(jié)一下就非常簡單:

1:設(shè)置芯片工作狀態(tài);

2:檢查發(fā)送是否準(zhǔn)備好,準(zhǔn)備好則發(fā)送數(shù)據(jù);

3:檢查接收是否準(zhǔn)備好,準(zhǔn)備好則接收數(shù)據(jù)。


串口芯片的簡單理解的評論 (共 條)

分享到微博請遵守國家法律
望奎县| 吉林省| 岳池县| 德阳市| 正蓝旗| 阿勒泰市| 康保县| 馆陶县| 柳林县| 富蕴县| 崇仁县| 都昌县| 浦城县| 讷河市| 新巴尔虎右旗| 北宁市| 兴化市| 尼玛县| 惠州市| 闽清县| 印江| 吉首市| 太谷县| 来宾市| 东乌珠穆沁旗| 江川县| 金华市| 丹凤县| 淮安市| 申扎县| 河间市| 湖口县| 上高县| 北辰区| 舟山市| 澄迈县| 临海市| 柳州市| 盈江县| 石河子市| 宝鸡市|