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

歡迎光臨散文網(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ī)串口通信的理解的評論 (共 條)

分享到微博請遵守國家法律
黄冈市| 黑龙江省| 蕉岭县| 玉林市| 五寨县| 达拉特旗| 岚皋县| 中方县| 东莞市| 大邑县| 山东省| 读书| 当涂县| 宁波市| 潼南县| 巴林左旗| 平南县| 攀枝花市| 宁国市| 瑞丽市| 清徐县| 博客| 黔西县| 陵水| 锡林郭勒盟| 泗阳县| 盐边县| 汽车| 孝感市| 北碚区| 微山县| 双鸭山市| 大埔县| 泰兴市| 汾阳市| 南京市| 安仁县| 鄯善县| 阜新| 拉萨市| 务川|