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

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

計算機(jī)串口通信的理解

2022-04-17 21:53 作者:我愛計算機(jī)科學(xué)  | 我要投稿

1、串行接口

是指數(shù)據(jù)一位一位地順序傳送。其特點是通信線路簡單,只要一對傳輸線就可以實現(xiàn)雙向通信(可以直接利用電話線作為傳輸線),從而大大降低了成本,特別適用于遠(yuǎn)距離通信,但傳送速度較慢。

2、并行接口

簡稱并口。所謂“并行”,是指8位數(shù)據(jù)同時通過并行線進(jìn)行傳送,這樣數(shù)據(jù)傳送速度大大提高,但并行傳送的線路長度受到限制,因為長度增加,干擾就會增加,數(shù)據(jù)也就容易出錯,目前,并行接口主要作為打印機(jī)端口等。

圖1

圖1表示兩臺計算機(jī)的網(wǎng)絡(luò)通信連接示意圖。兩臺計算機(jī)的發(fā)送和接收都是通過網(wǎng)線中的單根導(dǎo)線連接,所以,不管是發(fā)送信息還是接收信息,都只能一位一位地進(jìn)行,也就是以串行的方式進(jìn)行,這也是串口名稱的由來。

圖2

圖2表示串口的內(nèi)部結(jié)構(gòu)圖。一臺計算機(jī)通過串口的TXD引腳發(fā)送數(shù)據(jù),通過RXD接收數(shù)據(jù)。

圖3

圖3是單片機(jī)中斷連接圖。如前文所示,串口發(fā)送中斷要發(fā)生的話,就必須TI開關(guān)、ES開關(guān)、EA開關(guān)以及優(yōu)先級開關(guān)都必須閉合。

現(xiàn)在我們想象一下,如果我們要將信息傳送出去,需要解決哪幾個問題呢?

1:我們要知道待發(fā)送的數(shù)據(jù)放在什么地方。

2:我們發(fā)送數(shù)據(jù)的速率是多少,如何控制這個發(fā)送速率。

圖3表示,當(dāng)CPU要發(fā)送數(shù)據(jù)時,即將數(shù)據(jù)并行寫入發(fā)送緩沖器SBUF中,同時啟動數(shù)據(jù)由

TXD(P3.1)引腳串行發(fā)送,當(dāng)一幀數(shù)據(jù)發(fā)送完畢即發(fā)送緩沖器空時,由硬件自動將發(fā)送中斷標(biāo)志位TI置位(TI開關(guān)閉合),向CPU發(fā)出中斷請求。CPU響應(yīng)中斷后,用軟件將TI位清除,同時又將下幀數(shù)據(jù)寫入SBUF中,重復(fù)上述過程直到所有數(shù)據(jù)發(fā)送完畢。

以上敘述說明了如下問題:

1:存儲發(fā)送數(shù)據(jù)的是緩沖寄存器SBUF.

2:當(dāng)SBUF中存滿8位數(shù)據(jù)時,自動觸發(fā)發(fā)送過程,將這8位數(shù)據(jù)一位一位串行發(fā)送出去。發(fā)送的速率(波特率)可以由定時器T1或者T2確定。

3:當(dāng)8位數(shù)據(jù)都發(fā)送完成以后,這個時候會自動硬件將TI置1。

4:為了進(jìn)行下一次發(fā)送,需要軟件清0.因為TI等于0是8位數(shù)據(jù)逐位串行發(fā)送進(jìn)行等待的條件


發(fā)送過程的程序主要就是下面幾條:

MOV SBUF, A ;數(shù)據(jù)寫入SBUF并啟動發(fā)送,發(fā)送方式是一位一位串行發(fā)送,發(fā)送速率由

定時器控制

WAIT: JNB TI, WAIT ;測試TI位,如果為0,則等待SBUF中8位數(shù)據(jù)發(fā)送完成。TI位為1

是跳出本條等待指令的條件

CLR TI ;如果TI為1,則表示SBUF中8位數(shù)據(jù)發(fā)送完畢,TI被硬件置1,從而跳出上一條等 待語句。為了進(jìn)行下一次發(fā)送,又要軟件清除TI標(biāo)志(置0)。

以上3條指令重復(fù)執(zhí)行就可以了。

所以,串口通信發(fā)送時主要解決的問題就是:

1:當(dāng)發(fā)送緩沖器里面SBUF有8位數(shù)據(jù)時,自動啟動串行發(fā)送過程,發(fā)送速率由定時器控制。

2:當(dāng)8位數(shù)據(jù)發(fā)送完畢時,觸發(fā)發(fā)送中斷,準(zhǔn)備下一次發(fā)送。

從以上敘述可以看出,TI置1觸發(fā)的串口發(fā)送中斷好像并沒有做出什么實質(zhì)性的操作,只是將發(fā)送過程從等待中跳出來。


計算機(jī)串口通信的理解的評論 (共 條)

分享到微博請遵守國家法律
大足县| 长沙县| 康马县| 修文县| 淳化县| 奉新县| 临邑县| 临朐县| 十堰市| 廉江市| 原阳县| 丽江市| 马公市| 泽库县| 沙坪坝区| 西贡区| 关岭| 五莲县| 苍南县| 耿马| 梓潼县| 威海市| 伊宁县| 梁平县| 竹北市| 秦皇岛市| 天峻县| 吴堡县| 宾阳县| 准格尔旗| 庆元县| 朝阳县| 无锡市| 阿克苏市| 湄潭县| 富蕴县| 罗平县| 湛江市| 石棉县| 郓城县| 同江市|