0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談8051單片機(jī)進(jìn)行外部數(shù)據(jù)交換的3種方式

電子設(shè)計(jì) ? 作者:工程師飛燕 ? 2018-10-15 08:16 ? 次閱讀

單片機(jī)CPU與外部設(shè)備交換信息通常有如下幾種方式:無條件傳送方式,查詢傳送方式和中斷傳送方式。我們以單片機(jī)與微型打印機(jī)接口為例講述這三種方式。假定用戶要打印三個(gè)數(shù)據(jù),這三個(gè)數(shù)據(jù)保存在單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器10H,11H,和12H中,8051用并口P2與微型打印機(jī)的并行數(shù)據(jù)口DB進(jìn)行數(shù)據(jù)交換。

(1)無條件傳送方式

這種數(shù)據(jù)傳送方式中沒有聯(lián)絡(luò)信號(hào),即CPU總是認(rèn)為打印機(jī)在如何時(shí)候都是處于“準(zhǔn)備好”的狀態(tài)。這種傳送方式中只需要在程序中加入數(shù)據(jù)送往P2的指令,數(shù)據(jù)傳送便可以實(shí)現(xiàn)。但這種數(shù)據(jù)傳送方式有一個(gè)致命弱點(diǎn),數(shù)據(jù)易丟失,這是因?yàn)镃PU的速度相當(dāng)快,而打印機(jī)的速度相對(duì)來說較慢,其結(jié)果是在打印機(jī)打印一個(gè)數(shù)據(jù)的時(shí)間內(nèi),CPU已送來了多個(gè)數(shù)據(jù)。

(2)查詢傳送方式

查詢傳送也稱條件傳送是,在這種傳送方式中,無論是輸入還是輸出,都是以計(jì)算機(jī)為主動(dòng)一方。為了數(shù)據(jù)傳送的正確性,計(jì)算機(jī)在傳送數(shù)據(jù)之前,要首先查詢外部設(shè)備是否已處于“準(zhǔn)備好”狀態(tài);對(duì)于輸出操作,則要知道外設(shè)是否已把上一次計(jì)算機(jī)輸出的數(shù)據(jù)處理完畢。只有通過查詢,確信外設(shè)已處于“準(zhǔn)備好”的狀態(tài),計(jì)算機(jī)才能發(fā)出訪問外設(shè)的指令,實(shí)現(xiàn)數(shù)據(jù)交換。狀態(tài)信息一般只需要一位二進(jìn)制碼表示“準(zhǔn)備好”和“未準(zhǔn)備好”兩種狀態(tài),所以,在接口中只用一個(gè)D觸發(fā)器就可用來保存和產(chǎn)生狀態(tài)信息。例如,“準(zhǔn)備好”有D觸發(fā)器Q=1表示;“沒準(zhǔn)備好”用Q=0表示.查詢方式過程:查詢,即讀“準(zhǔn)備好”引腳,若該引腳為“準(zhǔn)備好”狀態(tài),則進(jìn)行數(shù)據(jù)傳送,若引腳為“未準(zhǔn)備好”狀態(tài),則繼續(xù)查詢,直到該引腳為“準(zhǔn)備好”狀態(tài),再進(jìn)行數(shù)據(jù)傳送。

在我們這個(gè)例子中可以在打印機(jī)上增加一條名為BUSY的引腳,打印機(jī)開始打印一個(gè)數(shù)據(jù)前,使該引腳為高電平,打印完一個(gè)數(shù)據(jù)后,使該引腳為低電 ,該引腳的初始化為0。我們將該引腳與單片機(jī)的引腳INT0相連,單片機(jī)每發(fā)送一個(gè)數(shù)據(jù)前,都查詢?cè)撘_狀態(tài)是否為0,若為0,則發(fā)送數(shù)據(jù)。否則,就繼續(xù)查詢,直到該引腳為0時(shí),再發(fā)送數(shù)據(jù),請(qǐng)看例子:

上電后打印機(jī)的BUSY引腳為0。

單片機(jī)運(yùn)行第一條指令,設(shè)置打印緩沖區(qū)起點(diǎn)。

單片機(jī)運(yùn)行第二條指令,設(shè)置打印字節(jié)。

單片機(jī)運(yùn)行第三條指令,讀入打印機(jī)BUSY引腳的狀態(tài),判斷該狀態(tài)是否為0。為0,則發(fā)送第一個(gè)數(shù)據(jù),打印機(jī)設(shè)置BUSY引腳為0,開始打印。

單片機(jī)運(yùn)行下一個(gè)指令,打印緩沖區(qū)加1,使下一次能發(fā)送第二個(gè)數(shù)據(jù)。判斷數(shù)據(jù)是否已經(jīng)發(fā)完,未發(fā)完,準(zhǔn)備發(fā)送下一個(gè)數(shù)據(jù),讀打印機(jī)引腳BUSY的狀態(tài) 。

引腳BUSY狀態(tài)為1,繼續(xù)查詢。

引腳BUSY狀態(tài)為0,發(fā)送第二個(gè)數(shù)據(jù),打印緩沖區(qū)加1,使下一次能發(fā)送第三個(gè)數(shù)據(jù),判斷數(shù)據(jù)是否已經(jīng)發(fā)完,未發(fā)完,準(zhǔn)備發(fā)送下一個(gè)數(shù)據(jù),打印緩沖區(qū)加1,判斷數(shù)據(jù)是否已經(jīng)發(fā)完。三個(gè)數(shù)據(jù)都發(fā)送完,程序結(jié)束。

可以看出,這種方式的缺點(diǎn)是需要有一個(gè)等待的過程,特別是在連續(xù)進(jìn)行數(shù)據(jù)傳送時(shí),由于外設(shè)工作速度比CPU慢得多,所以CPU在完成一次數(shù)據(jù)傳送后要等待很長(zhǎng)的時(shí)間才能進(jìn)行下一次傳送。在等待過程中,CPU不能進(jìn)行其他操作,所以效率比較低,提高CPU效率的一個(gè)有效方式是采用中斷方式。

(3)中斷方式

剛才我們講到,無條件傳送方式不可靠,查詢傳送方式太浪費(fèi)CPU的時(shí)間。

為了解決這個(gè)問題,單片機(jī)設(shè)置了另一個(gè)傳送方式—中斷方式。所謂中斷,就是指中央處理器CPU正在處理某件事情的時(shí)候,外部發(fā)生某一事件,請(qǐng)求CPU迅速去處理,于是,CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事件;中斷服務(wù)處理以后,再回到原來被中斷的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。實(shí)現(xiàn)這種功能的部件稱為中斷系統(tǒng),產(chǎn)生中斷的請(qǐng)求源稱為中斷源。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44455

    瀏覽量

    630896
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10772

    瀏覽量

    210438
  • 數(shù)據(jù)傳輸
    +關(guān)注

    關(guān)注

    9

    文章

    1743

    瀏覽量

    64331
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問ESP8266-01如何與51單片機(jī)STC89C51進(jìn)行數(shù)據(jù)交換的?

    ESP8266-01初學(xué)者,想知道ESP8266-01如何與51單片機(jī)STC89C51進(jìn)行數(shù)據(jù)交換。比如通過單片機(jī)的串口,能夠設(shè)置WiFi模塊的名稱和密碼,手機(jī)連WiFi模塊,通過WiFi串口助手
    發(fā)表于 06-28 00:04

    如何通過TXD、RXD與上位機(jī)進(jìn)行數(shù)據(jù)交換?

    如何通過TXD、RXD與上位機(jī)進(jìn)行數(shù)據(jù)交換?
    發(fā)表于 10-09 07:43

    一個(gè)系統(tǒng)中多單片機(jī)之間的數(shù)據(jù)交換

    摘要介紹了在一個(gè)監(jiān)測(cè)或監(jiān)控系統(tǒng)中使用多個(gè)單片機(jī)時(shí),單片機(jī)之間的數(shù)據(jù)交換方法。重點(diǎn)闡述了雙單片機(jī)之間數(shù)據(jù)交換的雙向平行、單向平行、串行、并轉(zhuǎn)串
    發(fā)表于 02-09 10:52 ?13次下載

    單片機(jī)系統(tǒng)中的數(shù)據(jù)交換

    本文列舉出了多單片機(jī)系統(tǒng)中數(shù)據(jù)交換的幾種可行方法,并提出其優(yōu)缺點(diǎn)。
    發(fā)表于 04-16 09:00 ?20次下載

    單片機(jī)系統(tǒng)中的數(shù)據(jù)交換

    單片機(jī)系統(tǒng)中的數(shù)據(jù)交換
    發(fā)表于 05-15 15:05 ?13次下載

    單片機(jī)教程二十:單片機(jī)串行口介紹

    單片機(jī)教程二十:單片機(jī)串行口介紹 介紹:串行口是單片機(jī)與外界進(jìn)行信息交換的工具。 8051
    發(fā)表于 05-15 23:16 ?1653次閱讀
    <b class='flag-5'>單片機(jī)</b>教程二十:<b class='flag-5'>單片機(jī)</b>串行口介紹

    什么是數(shù)據(jù)交換技術(shù)

    什么是數(shù)據(jù)交換技術(shù) 數(shù)據(jù)交換技術(shù)主要是電路交換、分組交換和 ATM (異步傳送)。電路交換是通過交換
    發(fā)表于 06-17 08:11 ?4753次閱讀

    動(dòng)態(tài)數(shù)據(jù)交換(DDE),動(dòng)態(tài)數(shù)據(jù)交換(DDE)原理是什么?

    動(dòng)態(tài)數(shù)據(jù)交換(DDE),動(dòng)態(tài)數(shù)據(jù)交換(DDE)原理是什么? 動(dòng)態(tài)數(shù)據(jù)交換(DDE)是建立在Windows內(nèi)部消息系統(tǒng)、全局原子和共項(xiàng)全局內(nèi)存基礎(chǔ)上的一協(xié)議,可
    發(fā)表于 03-18 15:23 ?1w次閱讀

    基于8051單片機(jī)外部設(shè)備交換信息的三種數(shù)據(jù)傳輸方式解析

    單片機(jī)CPU與外部設(shè)備交換信息通常有如下幾種方式:無條件傳送方式,查詢傳送方式和中斷傳送
    的頭像 發(fā)表于 01-09 15:50 ?1w次閱讀
    基于<b class='flag-5'>8051</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>外部</b>設(shè)備<b class='flag-5'>交換</b>信息的三<b class='flag-5'>種數(shù)據(jù)</b>傳輸<b class='flag-5'>方式</b>解析

    單片機(jī)串行口介紹,8051單片機(jī)的通信方式

    51單片機(jī)一個(gè)可編程的全雙工串行通信接口??捎米鳟惒酵ㄐ?b class='flag-5'>方式(UART),與串行傳送信息的外部設(shè)備相連接?;蛴糜谕ㄟ^同步或異步標(biāo)準(zhǔn)通信協(xié)議進(jìn)行全雙工的
    的頭像 發(fā)表于 04-12 14:22 ?1.6w次閱讀
    <b class='flag-5'>單片機(jī)</b>串行口介紹,<b class='flag-5'>8051</b><b class='flag-5'>單片機(jī)</b>的通信<b class='flag-5'>方式</b>

    如何對(duì)51單片機(jī)進(jìn)行外部擴(kuò)展

    最近在項(xiàng)目中用到51單片機(jī),因?yàn)槟承l件限制,51單片機(jī)片上程序不是很大,需要進(jìn)行外部擴(kuò)展。
    的頭像 發(fā)表于 11-07 17:16 ?1.5w次閱讀

    8051單片機(jī)數(shù)據(jù)傳送的方式有哪些

    單片機(jī)CPU與外部設(shè)備交換信息通常有如下幾種方式:無條件傳送方式,查詢傳送方式和中斷傳送
    發(fā)表于 04-11 15:54 ?3008次閱讀

    8051單片機(jī)的這三種數(shù)據(jù)傳輸方式,你了解多少?

    單片機(jī)CPU與外部設(shè)備交換信息通常有如下幾種方式:無條件傳送方式,查詢傳送方式和中斷傳送
    發(fā)表于 02-10 11:00 ?1次下載
    <b class='flag-5'>8051</b><b class='flag-5'>單片機(jī)</b>的這三<b class='flag-5'>種數(shù)據(jù)</b>傳輸<b class='flag-5'>方式</b>,你了解多少?

    8051單片機(jī)和PIC單片機(jī)的區(qū)別是什么

    8051單片機(jī)和PIC單片機(jī)都屬于單片機(jī)的一,8051單片
    的頭像 發(fā)表于 07-07 11:31 ?2070次閱讀

    STM32單片機(jī)外部中斷簡(jiǎn)介 STM32單片機(jī)外部中斷的配置過程

    STM32 單片機(jī)是一款高性能、低功耗的 32 位微控制器,具有強(qiáng)大的計(jì)算能力、靈活的外設(shè)模塊以及優(yōu)秀的擴(kuò)展性,開發(fā)周期短、成本低。在單片機(jī)應(yīng)用中,外部中斷是一重要的硬件觸發(fā)
    發(fā)表于 08-15 18:21 ?2817次閱讀