智能儀器教案_第1頁
智能儀器教案_第2頁
智能儀器教案_第3頁
智能儀器教案_第4頁
智能儀器教案_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

智能儀器第1章緒論第2章智能儀器的標(biāo)準(zhǔn)數(shù)據(jù)通信接口第3章預(yù)處理電路及數(shù)據(jù)采集第4章人機接口技術(shù)第5章測量算法與系統(tǒng)化設(shè)計第6章監(jiān)控主程序的設(shè)計第1章緒論課時安排:2學(xué)時知識點:智能儀器的定義、特點、組成;智能積分式DVM的工作原理、智能儀器設(shè)計要點、監(jiān)控程序的結(jié)構(gòu)、程序設(shè)計技術(shù)。重點:智能儀器的組成、智能積分式DVM的工作原理、監(jiān)控程序的結(jié)構(gòu)。難點:智能積分式DVM的工作原理教學(xué)方法:以課堂講授方式進(jìn)行教學(xué),從介紹電子測量儀器的開展過程、深刻分析智能儀器與傳統(tǒng)電子儀器的區(qū)別。通過介紹智能儀器的結(jié)構(gòu)及設(shè)計要點,使學(xué)生明確智能儀器包含的主要模塊和涉及的知識領(lǐng)域,把本課程在其它幾章中要介紹的內(nèi)容關(guān)聯(lián)起來,使學(xué)生明確其余幾章在本課程中所占的地位,明確學(xué)習(xí)目的和任務(wù),激發(fā)學(xué)生的學(xué)習(xí)積極性和主動性。本章對學(xué)生的要求:要求學(xué)生上課認(rèn)真聽講,課后多查閱一些相關(guān)資料,進(jìn)一步了解電子儀器的開展過程、現(xiàn)狀和今后的開展趨勢,深入分析科技開展的規(guī)律。通過通過學(xué)習(xí)本章介紹的內(nèi)容,應(yīng)對智能儀器的定義、主要特點、根本結(jié)構(gòu)、工作原理,設(shè)計智能儀器的根本任務(wù)和應(yīng)該注意的事項有一定的了解;明確本課程學(xué)習(xí)的目的、主要任務(wù)等。1.1概述1.1.1智能儀器及其特點1.什么是智能儀器是帶有微型計算機和自動測試系統(tǒng)通用接口〔GP-IB〕的電子測量儀器。電子儀器的開展過程:從使用器件上看,分為三個階段。真空管時代晶體管時代集成電路時代從工作原理上看:已經(jīng)歷了三代:第一代:模擬式電子儀器特點:功能簡單、精度低、速度慢。第二代:數(shù)字式的電子儀器工作原理:A/D轉(zhuǎn)換測量數(shù)字顯示特點:精度高、速度快、讀數(shù)清晰直觀、能打印輸出能與計算機技術(shù)相結(jié)合,適于遙控遙測。第三代:智能儀器在數(shù)字化的根底上進(jìn)行微機化。智能儀器——含有微機和自動測試系統(tǒng)通用接口GP-IB的電子測量儀器。CPU在智能儀器中的作用可歸結(jié)為兩大類:對測試過程進(jìn)行控制和對測試數(shù)據(jù)進(jìn)行處理。2.智能儀器的特點1〕儀器的功能強大:可測量參數(shù)多;是通過間接測量實現(xiàn)的。儀器中常用的數(shù)值計算有:(1)線性變換(乘常數(shù)):R=cx(2)百分?jǐn)?shù)偏離:R=100(x-n)/n(3)偏移:R=x-Δ(4)比例:線性的R=x/r對數(shù)的R=20lg(x/r)功率的R=x2/r(5)最大/最小:記錄測量的最大/最小值。(6)極限:設(shè)置高、低極限值、越限報警。(7)統(tǒng)計:對測量結(jié)果進(jìn)行統(tǒng)計處理。2〕儀器的性能優(yōu)越CPU可實現(xiàn)自動補償、自動校正、屢次測量平均等技術(shù),以提高測量精度。用適當(dāng)和巧妙的算法,克服硬件本身的缺陷,提高儀器的性能。3〕操作自動化自選量程、自動校準(zhǔn),自動調(diào)整測試點,方便操作,提高精度。也稱為自動測試儀器。4〕具對外接口配備GP-IB接口,接入自動測試系統(tǒng),實現(xiàn)自動測試。5〕硬件軟化實現(xiàn)“硬件軟化”,降低本錢、減小體積、降低功耗和提高可靠性。6〕采用面板顯示有LED、LCD、CRT顯示,字跡清晰、直觀。7〕自測試、自診斷功能能測試自身工作是否正常并指出故障的部位。提高儀器工作可靠性,方便使用和維修。1.1.2智能儀器的組成組成框圖如下,典型的計算機結(jié)構(gòu)。CPU是整個智能儀器的核心;固化在只讀存儲器中的程序是儀器的靈魂。智能儀器的根本組成1.1.3智能儀器的工作原理傳統(tǒng)數(shù)字電壓表〔DVM〕的工作原理及特點傳統(tǒng)積分式DVM原理圖傳統(tǒng)積分式DVM工作過程:〔1〕積分器先對Ui進(jìn)行定時積分,積分時間T1稱為采樣期?!?〕T1結(jié)束后進(jìn)入比擬期T2,積分器對Er積分。積分器輸出電壓的斜率方向相反?!?〕積分器輸出到達(dá)零點時,比擬器輸出產(chǎn)生跳變,T2結(jié)束,一次轉(zhuǎn)換也結(jié)束。在T2內(nèi)計數(shù)器計數(shù),該值正比于被測電壓。經(jīng)標(biāo)度變換得測量結(jié)果,存儲、顯示。傳統(tǒng)的DVM具有以下特點:〔1〕通過旋扭改變儀器中的電參數(shù),以設(shè)置儀器的功能?!?〕各種控制、計數(shù)、漂移補償?shù)裙ぷ魍耆捎布瓿伞!?〕電路采用隨機邏輯,復(fù)雜,設(shè)計和調(diào)試難,可靠性差。2.智能積分式DVM的工作原理及特點智能積分式DVM原理框圖工作過程:CPU依來自鍵盤或GP-IB接口的命令,輸出適宜的開關(guān)量,規(guī)定量程。〔2〕CPU置輸出口b3位為高,接通S3,積分器對Ui進(jìn)行定時積分。通過計數(shù),控制采樣期T1時間?!?〕T1結(jié)束后,CPU置b3位為低,b4位為高,接通S4,斷開S3,進(jìn)入比擬期T2,積分器對Er積分,計數(shù)并檢查比擬器輸出是否發(fā)生跳變。〔4〕當(dāng)檢出比擬器輸出發(fā)生跳變,說明積分器輸出回零,即停止計數(shù);置輸出口的b3、b4位均為低,斷開S3、S3,積分器停止積分,一次模數(shù)轉(zhuǎn)換或測量結(jié)束?!?〕CPU比照擬期內(nèi)的計數(shù)值進(jìn)行處理后,存儲、顯示,或經(jīng)GP-IB總線發(fā)送到遠(yuǎn)地。特點:通過鍵盤向CPU發(fā)出命令,CPU對命令譯碼后發(fā)出適當(dāng)?shù)目刂菩盘枺?guī)定儀器的功能?!?〕CPU通過執(zhí)行程序發(fā)出控制信號,只要修改軟件就能改變儀器工作,有些硬件電路的功能可由軟件完成?!?〕CPU能對測量數(shù)據(jù)進(jìn)行處理,如自動校正零點偏移和增益漂移、統(tǒng)計及其它數(shù)學(xué)運算等?!?〕計算機結(jié)構(gòu),各部件都“掛”在總線上,方便系統(tǒng)的設(shè)計、調(diào)試、和維護?!?〕具有GP-IB接口,能接入自動測試系統(tǒng)進(jìn)行工作。1.1.4智能儀器的新開展呈現(xiàn)微型化、多功能化、智能化和網(wǎng)絡(luò)化的開展趨勢1.個人儀器:20世紀(jì)60年代以來測線系統(tǒng)開展經(jīng)三個階段:〔1〕測試儀器與小型儀用計算機通過專用接口連接而成?!?〕智能儀器〔3〕個人儀器:個人計算機通過系統(tǒng)總線控制多個儀器插件實現(xiàn)測量功能。如以下圖所示:個人儀器結(jié)構(gòu)個人儀器的特點:(1)本錢低每個測試功能不是由整機、而是由插件完成的。(2)使用方便標(biāo)準(zhǔn)的儀器功能寫入操作軟件,備有清單,用戶選擇清單就能完成各種測試任務(wù)。(3)制造方便:儀器制造廠只要研制、生產(chǎn)測試卡即可。(4)實時交互作用相互間通過微機系統(tǒng)總線連接,可進(jìn)行實時交互。在個人儀器和計算機軟件不斷開展的根底上出現(xiàn),更強調(diào)軟件的作用,提出了“軟件就是儀器”的思想。以通用計算機為控制器,添加模塊化硬件來完成數(shù)據(jù)采集,由高效、功能強大的軟件系統(tǒng)實現(xiàn)測量操作。虛擬儀器系統(tǒng)的根本構(gòu)架是:高性能的通用計算機;模塊化的通用硬件設(shè)備;功能強大的專業(yè)性測試軟件系統(tǒng)?!疤摂M”二字的含義:〔1〕面板虛擬。面板控件圖形與實物相像,對應(yīng)著相應(yīng)的控制程序,通過鼠標(biāo)點擊操作?!?〕功能由軟件實現(xiàn)。在硬件平臺下,通過軟件編程實現(xiàn)儀器的測試功能。特點:〔1〕通用硬件平臺確定后,可由軟件取代傳統(tǒng)儀器中的各種硬件?!?〕儀器的功能是用戶根據(jù)需要由軟件來定義,而不是由廠家事先定義的?!?〕儀器功能的改良和擴展只需進(jìn)行相關(guān)軟件更新設(shè)計,無須購置新的儀器。〔4〕研制周期較傳統(tǒng)儀器大為縮短。〔5〕虛擬儀器開放、靈活,可與計算機同步開展,與網(wǎng)絡(luò)及其它周邊設(shè)備互聯(lián)。1.2智能儀器設(shè)計簡介1.2.1設(shè)計要點主要任務(wù):CPU選擇、硬件設(shè)計、軟件設(shè)計CPU選擇:依功能而定,假設(shè)運算量不大,選高性能的8位單片機。硬件設(shè)計:先設(shè)計內(nèi)部的微機及外設(shè)、測試硬件和GP-IB接口;然后設(shè)計微機和其它部件的接口。軟件設(shè)計:任務(wù)描述、程序設(shè)計、編碼糾錯、調(diào)試、編寫文件。1.2.2監(jiān)控程序的結(jié)構(gòu)監(jiān)控程序是指管理機器工作的整個程序監(jiān)控主程序:接受和分析來自鍵盤的命令。把控制轉(zhuǎn)移到相應(yīng)處理子程序的入口監(jiān)控程序接口管理主程序:接受和分析來自GP-IB接口命令,把控制轉(zhuǎn)到相應(yīng)的處理子程序的入口命令處理子程序:具體執(zhí)行某個命令、完成命令所規(guī)定的操作的子程序1.2.3程序設(shè)計技術(shù)〔1〕模塊法把一個長的程序分成假設(shè)干個較小的程序模塊進(jìn)行設(shè)計和調(diào)試,然后把各模塊連接起來?!?〕自頂向下的設(shè)計方法設(shè)計思路從整體到局部,最后到具體細(xì)節(jié)的設(shè)計方法?!?〕結(jié)構(gòu)程序設(shè)計根本原那么:每個模塊只能有一個入口和一個出口。有以下三種根本結(jié)構(gòu):①序列結(jié)構(gòu)P1P2P3②分支結(jié)構(gòu)If-then-else結(jié)構(gòu)③循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)Repeat-until結(jié)構(gòu);(b)Do-while結(jié)構(gòu)另一種常用的結(jié)構(gòu)—選擇結(jié)構(gòu)選擇結(jié)構(gòu)1.2.4智能儀器的研制步驟大致可以分為3個階段:1.確定任務(wù)、擬制設(shè)計方案2.硬件、軟件研制及儀器結(jié)構(gòu)設(shè)計3.儀器總調(diào)、性能測定1.2.5智能儀器設(shè)計中應(yīng)注意的問題1、采用新穎的設(shè)計方法2、硬件軟件化3、分時操作:CPU速度極高,為分時操作提供可能。4、增強功能:充分利用微機的快速運算和靈活控制的特點。5、簡化面板結(jié)構(gòu)6、采用新器件、運用新技術(shù)習(xí)題與思考題1.電子儀器開展至今經(jīng)歷了哪幾個階段?2.什么是智能儀器?智能儀器有哪些主要特點?3.畫出智能儀器的根本組成框圖,并說明其各局部的作用。4.說明如圖1-4所示的智能積分式DVM的工作原理及其主要特點。5.將圖1-4中的微處理器確定為80C51單片機,請畫出單片機與測試電路的接口連接圖,并編寫啟動一次測量的程序。設(shè)采樣期T1的定時可調(diào)用DLYT1,比擬期T2用80C51內(nèi)部定時器T0計測;輸出口的某位為1時,相應(yīng)的開關(guān)接通,輸出口、輸入口的地址分別為2080H和2081H。6.什么是虛擬儀器?虛擬儀器的特點是什么?7.試述虛擬儀器的結(jié)構(gòu)原理。8.簡述虛擬儀器中軟件結(jié)構(gòu)與功能。9.設(shè)計智能儀器的主要任務(wù)是什么?研制的一般步驟怎樣?10.在智能儀器的設(shè)計中應(yīng)注意哪些問題?第2章智能儀器的標(biāo)準(zhǔn)數(shù)據(jù)通信接口2.1RS-232C標(biāo)準(zhǔn)串行接口總線2.2SPI總線標(biāo)準(zhǔn)2.3I2C標(biāo)準(zhǔn)總線2.4USB總線標(biāo)準(zhǔn)2.5CAN總線2.6GP-IB接口總線2.7無線數(shù)據(jù)傳輸及PTR2000應(yīng)用習(xí)題與思考題課時安排:6學(xué)時知識點:智能儀器中常用的標(biāo)準(zhǔn)總線、串行總線及各種總線的應(yīng)用重點:SPI和I2C總線標(biāo)準(zhǔn)、各信號的定義,對于不帶SPI、I2C總線接口的一般8051單片機這兩種總線的實現(xiàn)方法。難點:SPI、I2C總線的軟件實現(xiàn)及其應(yīng)用教學(xué)方法:主要采用課堂講授方式,考慮到學(xué)生已學(xué)過微機原理與接口技術(shù)、單片機原理及應(yīng)用等課程,但是一般對單片機操作時序的理解和實現(xiàn)有一定的難度,因此本章在講授過程中采用先分析時序波形,再用軟件模擬一些根本操作的子程序,之后再介紹幾個實際應(yīng)用的例子,循序漸進(jìn),以便于學(xué)生理解。本章對學(xué)生的要求:在第一章中介紹的智能儀器的構(gòu)成框圖可見,它是一個典型的計算機結(jié)構(gòu),其中的各個局部是通過總線聯(lián)系在一起的。與計算機系統(tǒng)一樣,智能儀器的標(biāo)準(zhǔn)總線可分為外部總線和內(nèi)部總線,由于本章教學(xué)時數(shù)有限,課堂上只重點介紹SPI、I2C兩種內(nèi)部總線,這兩種總線性能優(yōu)越,應(yīng)用廣泛,它們是單片機系統(tǒng)擴展、智能儀器設(shè)計的一個重要手段,要求學(xué)生認(rèn)真掌握它們的有關(guān)信號的定義及具體操作時序和用軟件模擬的實現(xiàn)方法。2.2SPI總線標(biāo)準(zhǔn)2.2.1SPI總線標(biāo)準(zhǔn)介紹串行外設(shè)接口,允許MCU與各種外設(shè)進(jìn)行串行通信。完整的SPI系統(tǒng)的特性:〔1〕全雙工、三線同步傳送。〔2〕主、從機工作方式?!?〕可程控的主機位傳送速率、時鐘極性和相位?!?〕發(fā)送完成中斷標(biāo)志?!?〕寫沖突保護標(biāo)志。用一個MCU為主機,控制數(shù)據(jù)向一個或多個從機傳送,SPI系統(tǒng)使用4個I/O引腳。1〕串行數(shù)據(jù)線(MISO、MOSI)主輸入/從輸出MISO和主輸出/從輸入MOSI:用于數(shù)據(jù)的收、發(fā),先MSB(高位),后LSB(低位)。主機方式時,MISO是主機數(shù)據(jù)輸入線,MOSI是主機數(shù)據(jù)輸出線;從機方式時,MISO是從機數(shù)據(jù)輸出線,MOSI是從機數(shù)據(jù)輸入線。2〕串行時鐘線(SCLK)用于同步MISO和MOSI引腳上數(shù)據(jù)的傳送。主機方式時,SCLK為輸出;主機啟動一次傳送,在SCLK腳產(chǎn)生8個時鐘。從機方式時,SCLK為輸入。在主機、機之間,SCLK的一個跳變進(jìn)行數(shù)據(jù)移位,數(shù)據(jù)穩(wěn)定后的另一個跳變進(jìn)行采樣。串行數(shù)據(jù)和時鐘之間有4種極性和相位關(guān)系。主、從機的定時關(guān)系必須相同。SPI系統(tǒng)時鐘的極性和相位關(guān)系3〕從機選擇()從機方式用于使能從機進(jìn)行數(shù)據(jù)傳送;主機方式一般由外部置為高電平。一般只需連接SPI的SCLK、MOSI及MISO三根線即可。對于有端的I/O擴展芯片,用一根I/O線來控制片選端。2.2.2利用模擬SPI總線擴展串行E2PROM1.串行E2PROM—93C46的特點及引腳93C46是64×16(1024)位串行的電擦除可編程的只讀存儲器。特點:〔1〕在線改寫數(shù)據(jù)和自動擦除功能?!?〕電+5V單電源供電;源關(guān)閉,數(shù)據(jù)也不喪失?!?〕輸入、輸出口與TTL兼容。〔4〕內(nèi)有電壓發(fā)生器,產(chǎn)生擦/寫所需的電壓?!?〕有控制和定時邏輯,控制擦和讀寫操作?!?〕整體編程允許和禁止功能,以增強數(shù)據(jù)的保護能力。〔7〕等待狀態(tài)時,電流為1.5mA~3mA。有兩種封裝形式,如以下圖:圖2-1193C46引腳排列

8腳雙列直插式塑料封裝(b)

14腳扁平式塑料封裝。引腳功能:DO:讀時數(shù)據(jù)輸出端;擦?xí)r為狀態(tài)指示,相當(dāng)于READY/信號,其它狀態(tài)該腳呈高阻。DI:用于接收命令、地址和數(shù)據(jù)信息,每一位均在CLK的上升沿寫入93C46。ORG:結(jié)構(gòu)端。連到Vcc或懸空時為16位結(jié)構(gòu);連到Vss時為8位結(jié)構(gòu)。注意:時鐘頻率低于1MHz時ORG端才能懸空,構(gòu)成16位結(jié)構(gòu)。2.指令系統(tǒng):共有7條指令,格式如下表。表2-393C46指令表(ORG=0,8位結(jié)構(gòu))一條指令操作完成之前,拒絕接收新指令。1〕讀指令(READ)從單元中讀取數(shù)據(jù)。接收指令后,DO端先輸出一低電平,之后從CLK的上升沿開始,DO連續(xù)輸出8位或16位串行數(shù)據(jù)。當(dāng)CS保持為高時允許連續(xù)讀,即自動周期性地輸出下一個地址單元的數(shù)據(jù)。時序如下。圖2-12讀指令的時序2〕寫指令(WRITE)向指定單元中寫入數(shù)據(jù)。指令指定了單元地址后輸出8位或16位數(shù)據(jù)。在最后一個數(shù)據(jù)位加在DI端后,在CLK的下一個上升沿以前,CS必須為低。DO端指示READY/狀態(tài)。指令的時序如圖2-13所示。圖2-13寫指令的時序3〕擦除指令(ERASE)將指定單元的內(nèi)容擦除,即強迫該單元所有數(shù)據(jù)位為“1”狀態(tài)。時序圖如下。圖2-14擦除指令的時序裝載最后的地址位后,CS為低。CS的下降沿啟動自定時編程周期。CS為低約250ns后恢復(fù)為高。擦除周期每字4ms。DO端指示器件的READY/狀態(tài):DO端為0時,指示編程仍在進(jìn)行;DO端為1時,表示擦除結(jié)束,可接收下一指令。4〕擦除整個存儲器指令(ERAL)將整個存儲器陣列強迫為邏輯“1”狀態(tài)。除操作碼不同外,與ERASE(擦除)相同,時序如圖2-15(a)所示。ERAL周期完成自定時,在CS的下降沿開始。無需CLK端的驅(qū)動時鐘。CS為低約250ns后恢復(fù)為高。DO端指示器件的READY/狀態(tài)。5〕寫整個存儲器指令(WRAL)將命令中指定的數(shù)據(jù)寫入整個存儲器陣列中。除操作碼不同外,與WRITE相同,時序如圖2-15(b)所示。WRAL周期也完成自定時。WRAL周期最大需30ms。圖2-15擦除和寫入整個存儲器指令的時序

(a)擦除整個存儲器指令的時序(b)寫整個存儲器指令的時序。6〕擦/寫允許指令(EWEN)和擦/寫禁止指令(EWDS)EWEN使芯片處于允許擦/寫狀態(tài),直至執(zhí)行了EWDS指令或電源關(guān)閉為止。EWDS禁止對整個芯片和單個單元的擦和寫操作。上電復(fù)位芯片處于擦/寫禁止?fàn)顟B(tài)。EWEN與EWDS操作碼不同,但周期相同。時序如圖2-16所示。圖2-16EWEN指令和EWDS指令時序

(a)

EWEN指令時序(b)

EWDS指令時序。3.

93C46與80C51單片機的接口與編程80C51串口方式0提供了簡化的SPI,特點:〔1〕SCLK極性、相位、傳送速率固定。〔2〕無從機選擇輸入端?!?〕數(shù)據(jù)入/出是同一根線,用軟件設(shè)置數(shù)傳方向。故80C51中SPI僅兩個腳:RXD(P3.1)—MOSI/MISO;TXD(P3.0)—SCLK?!?〕傳送數(shù)據(jù)位的順序為先LSB,后MSB。1〕利用80C51的串行口實現(xiàn)的接口80C51與93C46接口時,需適當(dāng)?shù)挠?、軟件配合。以下圖80C51串口工作在方式0。圖中80C51的TXD腳提供CLK信號;RXD送出命令和讀入數(shù)據(jù);P1.1為片選信號與93C46的CS相連。93C46與80C51單片機的接口之一該電路需注意兩點:◎必須將TXD反相,以適應(yīng)E2PROM時序需要;◎P1.0作為93C46的讀/寫控制信號。注:本方案中除起始位和“虛擬”數(shù)據(jù)位外,同步串口自動傳送操作碼、地址及數(shù)據(jù)的;由于兩種接口傳送數(shù)據(jù)位順序相反,所以數(shù)據(jù)要做倒序處理。下面列出相關(guān)操作子程序:

〔1〕送起始位子程序此時,P和P作為輸出,P=1時選通93C46,P=1時將指令寫入93C46。P和P作為標(biāo)準(zhǔn)的I/O輸出口線。INSB:CLRP;置片選無效SETBP;P1.0=1,使P=1,P接通DISETBP;置位DINOPNOPSETBP;置片選有效NOPNOPSETBP;時鐘置高NOPNOPCLRP;時鐘置低RET〔2〕數(shù)據(jù)倒序處理子程序ASMB:MOVR6,#0;工作單元R6清零MOVR7,#08H;計數(shù)器初值CLRCALO:RLCAXCHA,R6RRCAXCHA,R6DJNZR7,ALOXCHA,R6RET〔3〕讀數(shù)據(jù)子程序READ:MOVSCON,#00H ;置串行口為方式0輸出ACALLINSB;送起始位MOVA,#10001111B;送命令和地址,讀命令A(yù)CALLASMBMOVSBUF,AJNBTI,$;等待發(fā)送完畢CLRTIMOVSCON,#10H ;設(shè)為輸入,REN=1MOVR0,#BUF;指向數(shù)據(jù)緩沖區(qū)CLRP;準(zhǔn)備讀入數(shù)據(jù)JNBRI,$;等待接收數(shù)據(jù)結(jié)束CLRRIMOVA,SBUFACALLASMBMOV@R0,AINCR0JNBRI,$CLRRIMOVA,SBUFACALLASMBMOV@R0,ACLRP1.1;置片選無效NOPNOPSETBP1.1;置片選有效RET〔4〕寫數(shù)據(jù)子程序WRITE:MOVSCON,#00H ;置串行口為方式0ACALLINSB ;送起始位MOVA,#01001111B;送命令和地址,寫命令A(yù)CALLASMBMOVSBUF,AJNBTI,$ ;等待發(fā)送完畢CLRTIMOVR0,#BUF;指向數(shù)據(jù)緩沖區(qū)SETBP;準(zhǔn)備寫入數(shù)據(jù)MOVA,@R0ACALLASMBMOVSUBF,AJNBTI,$;等待發(fā)送完數(shù)據(jù)CLRTIINCR0MOVA,@R0ACALLASMBMOVSUBF,AJNBTI,$CLRTICLRP;置片選無效RET2〕利用軟件仿真SPI實現(xiàn)的接口假設(shè)51的串口已被用,或認(rèn)為串口使用不便,那么可用軟件來模擬SPI操作,包括時鐘的產(chǎn)生、數(shù)據(jù)的輸入/輸出等。其硬件電路如圖2-18所示。圖中斯密特觸發(fā)器74HC14是對時鐘脈沖整形,提高抗噪能力。圖2-1893C46與80C51單片機的接口之二軟件仿真常用的操作子程序如下:〔1〕送起始位“1”子程序INSB功能:80C51向93C46送出“1”INSB:SETBP;置片選無效CLRP;時鐘置低SETBP;置位DINOPNOPCLRP;置片選有效NOPNOPSETBP1.0;時鐘置高,移入數(shù)據(jù)NOPNOPCLRP;時鐘置低RET〔2〕寫入8位數(shù)據(jù)子程序WRI功能:80C51向93C46送出8位數(shù)據(jù)〔2位操作碼和6位地址碼或是8位數(shù)據(jù)〕。假設(shè)是16位數(shù)據(jù),可分兩次傳送。入口參數(shù):8位數(shù)據(jù)在A中。程序如下:WRI:MOVR4,#8;寫入數(shù)據(jù)的位數(shù)W10:RLCAMOVP,C;將CY送DINOPNOPSETBP;時鐘置高,移入數(shù)據(jù)NOPNOPCLRP;時鐘置低DJNZR4,WIO;未完,繼續(xù)RET〔3〕讀取8位數(shù)據(jù)子程序RDI功能:80C51從93C46的DO引腳讀取8位數(shù)據(jù)。入口參數(shù):無。出口參數(shù):讀出的8位數(shù)據(jù)在A中。RDI:MOVR4,#8 ;讀取的數(shù)據(jù)位數(shù)R10:NOPNOPSETBP;時鐘置高,移出數(shù)據(jù)NOPNOPCLRP;時鐘置低MOVC,P ;數(shù)據(jù)從DO讀入CYRLCADJNZR4,RIO ;未完,繼續(xù)RET〔4〕向93C46寫入16位數(shù)據(jù)功能:80C51向93C46寫入16位數(shù)據(jù)。入口參數(shù):B存放器:存待寫8位指令〔2位操作碼、6位地址碼A5-A0);R2:存待寫數(shù)據(jù)的高8位;R3:存待寫數(shù)據(jù)的低8位。出口參數(shù):無。程序如下:WRITE:LCALLINSB ;送起始位“1”MOVA,#30H ;擦/寫允許指令LCALLWRILCALLINSBMOVA,B ;寫入指令LCALLWRIMOVA,R2;寫入高8位LCALLWRIMOVA,R3;寫入低8位LCALLWRISETBP;置片選為無效NOPNOPCLRP ;片選有效WAIT:JNBP,WAIT ;編程未完,等待LCALLINSB MOVA,#00H;擦/寫禁止指令LCALLWRISETBP;置片選為無效RET;返回〔5〕從93C46讀取16位數(shù)據(jù)功能:80C51從93C46讀取16位數(shù)據(jù)。入口參數(shù):B存放器:存待寫8位指令〔2位操作碼,6位地址碼A5~A0)。出口參數(shù):R2:存讀出數(shù)據(jù)高8位。R3:存讀出數(shù)據(jù)低8位。程序如下:READ:LCALLINSB;送起始位“1”MOVA,B;寫讀出指令LCALLWRINOPNOPLCALLRDIMOVR2,A;讀出高8位LCALLRDIMOVR3,A;讀出低8位SETBP;置片選為無效RET2.3I2C標(biāo)準(zhǔn)總線2.3.1I2C標(biāo)準(zhǔn)總線介紹在器件之間用兩根信號線SDA和SCL以串行方式進(jìn)行信息傳送,并允許假設(shè)干兼容器件共享的雙線總線。SDA線:串行數(shù)據(jù)線,雙向傳輸數(shù)據(jù);SCL線:串行時鐘線,同步數(shù)據(jù)線上的數(shù)據(jù)。I2C器件的SDA和SCL引腳均開漏。故總線上所有器件的SDA和SCL需分別接在一起,通過電阻與電源連接,如圖。圖2-19I2C總線系統(tǒng)的示意圖I2C總線上器件按功能分為主器件和從器件。主器件:控制總線,產(chǎn)生時鐘、啟動傳送和結(jié)束傳送信號。總線必須由一個主器件控制。從器件:被主器件尋址,根據(jù)主器件的命令,收、發(fā)數(shù)據(jù)。系統(tǒng)中可有多個主器件,I2C總線系統(tǒng)允許多主。系統(tǒng)中任一器件可有4種工作方式:主發(fā)送方式、主接收方式、從發(fā)送方式和從接收方式??偩€上所有器件是按如下傳輸協(xié)議工作的:僅當(dāng)總線不忙時,數(shù)傳才能開始;數(shù)傳期間假設(shè)時鐘線為高,那么數(shù)據(jù)線必須保持穩(wěn)定,否那么將認(rèn)為是傳送的開始或停止。總線條件定義:1〕總線不忙(空閑)SCL和串行數(shù)據(jù)線SDA都保持高電平。2〕數(shù)據(jù)傳送開始起始信號START:SCL保持高,SDA上一個由高到低的變化。如圖2-20所示??偩€上所有命令必須在起始條件以后進(jìn)行。圖2-20起始條件和停止條件3〕數(shù)據(jù)傳送停止停止信號STOP:SCL保持高,SDA上發(fā)生由低到高的過程。見圖2-20??偩€上所有操作必須在停止條件以前結(jié)束。4〕數(shù)據(jù)有效起始信號后位傳輸開始。每位需一個時鐘脈沖。SCL保持高,SDA穩(wěn)定的狀態(tài)表示有效的數(shù)據(jù)。在SCL為低期間,數(shù)據(jù)線狀態(tài)應(yīng)改變。圖2-21I2C總線上的位傳輸每次數(shù)傳在START下啟動,在STOP下結(jié)束。重復(fù)的START將結(jié)束前一個傳送過程,但不釋放I2C總線,可接著下一個傳送過程。I2C總線上數(shù)傳有兩種方式,由START后的第一個字節(jié)的最低位(即方向位)決定?!?〕主發(fā)送到從接收。主器件產(chǎn)生START后,發(fā)送的第一個字節(jié)為從地址字節(jié)〔高7位為從器件的地址,最低位為方向位R/,此時該位為0),隨后發(fā)送數(shù)據(jù)字節(jié),如圖2-22所示。發(fā)送的數(shù)據(jù)可以是單字節(jié)或一串?dāng)?shù)據(jù),由主器件決定。從器件每接收一個數(shù)據(jù)字節(jié)后,都返回一個應(yīng)答信號ASK=0,即第9個時鐘脈沖時數(shù)據(jù)線低為應(yīng)答信號A,高為非應(yīng)答信號。圖2-22主發(fā)送到從接收〔2〕從發(fā)送到主接收。從器件收到主器件發(fā)的從地址和值為1的方向位后,返回一個應(yīng)答信號(ASK=0),接著從器件發(fā)數(shù)據(jù)給主器件,主器件每收一個數(shù)據(jù)字節(jié),都返回一個應(yīng)答信號。在接收從器件最后一個字節(jié)后,主器件發(fā)送一個“非應(yīng)答信號”,即終止從器件繼續(xù)發(fā)送。從器件發(fā)送的數(shù)據(jù)可以是單字節(jié)或一串?dāng)?shù)據(jù)。I2C總線的主要功能:①在主、從器件之間雙向傳送數(shù)據(jù);②無中間主器件的多主總線;③多主傳送時不發(fā)生錯誤;④可以使用不同的位速率;⑤串行時鐘作為交接信號;⑥可用于測試和診斷目的。有I2C總線的單片機可直接用I2C進(jìn)行串行擴展;51單片機大多無I2C總線接口,可用軟件模擬來實現(xiàn)系統(tǒng)的串行擴展。單片機應(yīng)用系統(tǒng)多為單主結(jié)構(gòu),其數(shù)傳狀態(tài)較簡單,無總線競爭與同步問題,僅有單片機對I2C總線的讀/寫操作。簡化了模擬軟件的設(shè)計工作。2.3.280C51單片機模擬I2C總線應(yīng)用實例1.

PCF8574的特性及引腳說明是帶I2C的8位準(zhǔn)雙向口的單片CMOS電路,在I2C總線系統(tǒng)中僅作從器件。特點:低損耗,靜態(tài)電流10;輸出電流大,可直接驅(qū)動LED發(fā)光管;3根地址引腳使一個系統(tǒng)可接8片;最高時鐘頻率為400kHz;有中斷邏輯線。引腳排列如圖2-23,功能如下:圖2-23PCF8574外部引腳SDA:串行數(shù)據(jù)線,雙向。SCL:串行時鐘線,輸入。P7~P0:8位準(zhǔn)雙向入/出口。上電復(fù)位均為高,某位作輸入前應(yīng)置為高。A2~A0:地址輸入線。:中斷輸出線,低有效。2.

PCF8574的尋址方式及操作1〕控制字節(jié)和器件尋址控制字節(jié)跟在開始條件后,結(jié)構(gòu)見圖2-24:前4位控制碼規(guī)定器件的型號:0100—PCF8574;0111—PCF8574A。接下來3位A2、A1、A0與引腳接法對應(yīng),指明同一種器件的不同芯片。圖2-24PCF8574及PCF8574A控制字節(jié)的配置2〕讀操作將接口數(shù)據(jù)傳給主器件,時序如以下圖。圖2-25讀操作的時序3〕寫操作將主器件的數(shù)據(jù)傳給PCF8574口,時序如以下圖。圖2-26寫操作的時序3.

PCF8574應(yīng)用和編程1〕通用子程序編寫模擬I2C總線一般用兩根I/O線。設(shè)用P1.6作SCL線,P1.7作SDA線。軟件仿真先編寫通用子程序,包括:啟動、停止、發(fā)送應(yīng)答位及非應(yīng)答位、應(yīng)答位檢查、單字節(jié)數(shù)據(jù)接收與發(fā)送等,供接口操作程序調(diào)用。子程序〔設(shè)晶振頻率為6MHz,否那么應(yīng)適當(dāng)增減程序中的NOP指令〕如下:SDABITP1.7SCLBITP1.6

;啟動I2C總線子程序STA:SETBSDASETBSCLNOPNOPCLRSDANOPNOPCLRSCLNOPRET;停止I2C總線子程序STOP:CLRSDASETBSCLNOPNOPSETBSDANOPNOPCLRSCLNOPRET;發(fā)送應(yīng)答位子程序MACK:CLRSDASETBSCLNOPNOPCLRSCLSETBSDARET;發(fā)送非應(yīng)答位子程序NACK:SETBSDASETBSCLNOPNOPCLRSCLCLRSDARET;應(yīng)答位檢查子程序。出口時,SDA線的狀態(tài)存入標(biāo)志位FO中。有ACK,F(xiàn)O=0,否那么FO=1CACK:SETBSDA;SDA為輸入狀態(tài)SETBSCL;第9個時鐘脈沖開始NOPMOVC,SDA;讀SDA線MOVFO,C;存入FO中CLRSCL;第9個時鐘脈沖結(jié)束NOPRET;發(fā)送一字節(jié)數(shù)據(jù)子程序。將Acc中待發(fā)數(shù)據(jù)送入SDA線WRBYT:MOVR7,#8 ;發(fā)送8位WRBYT1:RLCA ;將發(fā)送位移入C中JCWRBYT2 ;此位為1,轉(zhuǎn)WRBYT2CLRSDA ;此位為0,發(fā)送0SETBSCL ;時鐘脈沖開始NOPNOPCLRSCL ;時鐘脈沖結(jié)束DJNZR7,WRBYT1 ;未發(fā)送完,轉(zhuǎn)WRBYT1RETWRBYT2:

SETBSDA;此位為1,發(fā)送1SETBSCL;時鐘脈沖開始NOPNOPCLRSCL ;時鐘脈沖結(jié)束CLRSDADJNZR7,WRBYT1 ;未發(fā)送完,轉(zhuǎn)WRBYT1RET;接收一字節(jié)子程序。從SDA上讀一字節(jié)數(shù)據(jù),存ACC中RDBYT:MOVR7,#8 ;接收8位RDBYT1:SETBSDA ;SDA為輸入狀態(tài)SETBSCL ;時鐘脈沖開始NOPMOVC,SDA ;讀SDA線RLCA ;移入新接收位CLRSCL ;時鐘脈沖結(jié)束DJNZR7,RDBYT1 ;未讀完8位,轉(zhuǎn)RDBYT1RET ;讀完8位,返回2〕PCF8574作擴展8位輸入口圖2-27PCF8574讀方式的連接程序如下:RD8:ACALLSTA ;開始條件 MOVA,#41H ;PCF8574為讀方式 ACALLWRBYT ACALLCACK ;檢查ACK信號 JBFO,$ ACALLRDBYT ;讀數(shù)據(jù) MOV30H,A ACALLCACK JBFO,$ ACALLSTOP SJMP$3〕PCF8574作擴展8位輸出口PCF8574作擴展8位輸出口的連接如圖2-28所示。圖2-28PCF8574寫方式的連接程序如下:WR8:ACALLSTA ;開始條件

MOVA,#40H;PCF8574為寫方式

ACALLWRBYTACALLCACK ;檢查ACK信號

JBFO,$

MOVA,#0FFH;改變立即數(shù),指示燈亮與暗也改變ACALLWRBYTACALLCACK ;檢查ACK信號

JBFO,$

ACALLSTOP ;停止條件

AJMP$4〕PCF8574作擴展4位輸入口和4位輸出口硬件連接如圖2-29所示。圖2-29PCF8574高4位輸入、低4位輸出的連接程序如下:START:ACALLSTA ;開始條件 MOVA,#41H ;PCF8574為讀方式 ACALLWRBYT ACALLCACK ;檢查ACK信號 JB FO,$ ACALLRDBYT ;讀數(shù)據(jù) SWAPA CPLA MOV30H,A ACALLSTOPACALLSTA ;開始條件MOVA,#40H ;PCF8574為寫方式ACALL WRBYTACALL CACK ;檢查ACK信號JBFO,$MOVA,30HACALLWRBYTACALLDELAY ;延時子程序ACALLSTOP ;停止條件AJMPSTART第3章預(yù)處理電路及數(shù)據(jù)采集3.1概述3.2傳感器及其應(yīng)用3.3模擬信號放大電路3.4DAC接口3.5ADC接口3.6數(shù)據(jù)采集系統(tǒng)習(xí)題與思考題課時安排:12+4〔實驗〕知識點:DAC接口,對DAC接口編程產(chǎn)生所需的波形,ADC的主要信號線,ADC與單片機的根本接口方法,常用的ADC芯片如AD0809、5G14433等與單片機的接口,數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)、模擬開關(guān)、采樣保持電路、單片機數(shù)據(jù)采集系統(tǒng),串行DAC接口、串行ADC接口。重點:DAC與單片機接口,ADC與單片機接口的一般方法,常用的ADC芯片與單片機的接口,AD363單片數(shù)據(jù)采集系統(tǒng)。難點:多于8位的DAC和ADC與8位單片機80C51的接口。教學(xué)方法:主要采用課堂講授方式,因為涉及的知識面較寬,轉(zhuǎn)換器的種類多,接口的方法靈活多樣,授課過程先從一般方法入手,再介紹一些典型的實用的例子。這些例子往往都有多種接口方案,擬采用啟發(fā)式、討論式的教學(xué)方法,增加互動,引導(dǎo)學(xué)生積極思維,以利提高教學(xué)效果。本章對學(xué)生的要求:因為本章內(nèi)容重要,接口方案靈活多樣,要求學(xué)生務(wù)必掌握。上課認(rèn)真聽講,積極思維,不懂就問;課后及時復(fù)習(xí),認(rèn)真獨立完成作業(yè)。本章安排兩個實驗,要求學(xué)生進(jìn)實驗室之前做好預(yù)習(xí),編寫好接口程序,在實驗過程中應(yīng)按要求連接好接口電路,并據(jù)此確定端口地址,檢查是否與接口程序中的端口地址一致等,確定無誤后運行接口程序,對實驗中出現(xiàn)的各種現(xiàn)象應(yīng)認(rèn)真分析。實驗一定要得到正確的結(jié)果,之后,認(rèn)真完成實驗報告。概述智能儀器是一種典型的微機應(yīng)用系統(tǒng)。用計算機對模擬世界實行控制時,應(yīng)先把模擬信號轉(zhuǎn)換為數(shù)字信號,然后由計算機進(jìn)行各種處理,再存儲、顯示,或復(fù)原成模擬信號,輸出到模擬世界進(jìn)行種種控制。典型的微機控制的數(shù)據(jù)采集與處理系統(tǒng)框圖如下:圖3-1微型機控制的數(shù)據(jù)采集和處理系統(tǒng)框圖傳感器:將非電量轉(zhuǎn)換為電量。放大器:把微弱的模擬信號適當(dāng)放大。濾波器:把信號中無用的頻率分量濾除掉。采樣保持電路:使信號成為時間離散信號。A/D轉(zhuǎn)換器:對信號幅度進(jìn)行量化,輸出數(shù)字信號。D/A轉(zhuǎn)換器:將數(shù)字信號復(fù)原成模擬信號。本章主要介紹A/D、D/A轉(zhuǎn)換器與單片機的接口3.4DAC接口DAC的功能是把數(shù)字量轉(zhuǎn)換為與其成比例的模擬電壓或電流信號。數(shù)字量可為任何一種編碼形式,如無符號二進(jìn)制數(shù)、2補數(shù)、BCD碼等。DAC的分辨率取決于位數(shù),有8位、10位、12位等,通常不超過16位。3.4.1DAC與微機接口的一般方法1.8位DAC接口典型的CPU系統(tǒng)與DAC的接口如以下圖所示:圖3-218位DAC接口通過74100鎖存器把8位DAC連接到CPU系統(tǒng)。CPU把數(shù)字存入鎖存器;DAC把二進(jìn)制數(shù)變換為輸出電流。741型集成運放把電流變換為0~1V的輸出電壓,該模擬電壓與數(shù)字量成比例。以下程序可產(chǎn)生一個線性增加的斜波電壓。MOVSP,#53HCLRAMOVR1,#17HLOOP:MOVX@R1,AACALLDELAYINCAAJMPLOOPDELAY:…;延時子程序該斜波電壓由255個階梯組成,峰-峰值為1V,故每個階梯電壓增量為1/255V,持續(xù)時間t取決于DELAY的延時。圖3-21波形圖以下圖是8位單片機與10位DAC的一種接口,單片機分兩次發(fā)出10位數(shù)據(jù),低8位到鎖存器A,高2位到鎖存器B。圖3-2210位DAC接口之一設(shè)DPTR規(guī)定了待轉(zhuǎn)換數(shù)的存貯單元地址,單片機執(zhí)行下面幾條指令就完成了一次D/A轉(zhuǎn)換。MOVXA,@DPTRMOVR1,#2CHMOVX@R1,AINCDPTRINCR1MOVXA,@DPTRMOVX@R1,A存在問題:在輸出低8位和高2位中間,DAC會產(chǎn)生“毛刺”,如以下圖所示。圖3-22因數(shù)據(jù)分兩次輸出,先輸出低8位,這時DAC將新的低8位和原高2位合成的10位數(shù)據(jù)0000001011轉(zhuǎn)換成電壓〔是不需要的〕,稱為毛刺。防止產(chǎn)生毛刺的方法之一是采用雙緩沖器結(jié)構(gòu),如以下圖。圖3-2310位DAC接口之二設(shè)待轉(zhuǎn)換數(shù)據(jù)在外RAM中,地址由DPTR和DPTR+1決定,轉(zhuǎn)換程序如下:MOVR1,#2CHMOVXA,@DPTRMVOX@R1,AINCDPTRMOVXA,@DPTRINCR1MOVX@R1,AINCR1MOVX@R1,A實際上,圖中鎖存器A1可以省去。這時進(jìn)行一次轉(zhuǎn)換,CPU先將高2位數(shù)據(jù)送到鎖存器B1,然后再用一條輸出指令,把低8位數(shù)據(jù)送到A2,此時已鎖在B1中的高2位數(shù)據(jù)也一起送入鎖存器B2,于是十位數(shù)據(jù)同時加到10位DAC去進(jìn)行轉(zhuǎn)換。假設(shè)DAC內(nèi)有鎖存器和運放,接口如下:圖3-24內(nèi)部有鎖存器和運放的DAC與單片機接口單片機分兩次輸出,一次送低8位到8位鎖存器,另一次送高2位到2位鎖存器,然后再用一條輸出指令產(chǎn)生一負(fù)脈沖加到鎖存允許端,將10位數(shù)據(jù)一并送到DAC去轉(zhuǎn)換。AD7522是10位DAC,內(nèi)有一10位鎖存器。單片機先執(zhí)行兩條輸出指令分別控制LBS和HBS,送低8位和高2位;然后再執(zhí)行一輸出指令產(chǎn)生啟動DAC的信號加到LDAC端。圖3-24內(nèi)部有鎖存器和運放的DAC與單片機接口3.4.2DAC與MCU接口實例1.DAC0832與80C51的接口DAC0832有一個8位輸入存放器和一個8位DAC存放器,形成兩級緩沖結(jié)構(gòu)。這樣可使DAC轉(zhuǎn)換輸出前一個數(shù)據(jù)的同時,將下一個數(shù)據(jù)傳送到8位輸入存放器,以提高數(shù)/模轉(zhuǎn)換的速度。圖3-25DAC0832的引腳配置和內(nèi)部結(jié)構(gòu)

(a)引腳配置(b)內(nèi)部結(jié)構(gòu):片選,低有效。與ILE信號結(jié)合,可對是否起作用進(jìn)行控制。ILE:允許輸入鎖存,高電平有效。:寫信號1,輸入,低有效。用來將CPU送來的數(shù)據(jù)鎖存于輸入存放器中。:寫信號2,輸入,低有效。將輸入存放器中的數(shù)據(jù)傳送到DAC存放器中并鎖存。有效時,也必須同時有效。:傳送控制信號,低電平有效。用來控制面,選通DAC存放器。DI7~DI0:8位數(shù)字輸入端。Iout1:DAC電流輸出1,當(dāng)數(shù)字量為全1時輸出電流最大;當(dāng)數(shù)字量為全0時,輸出電流最小。Iout2:DAC電流輸出2,其與Iout1的關(guān)系滿足:Rbf:反應(yīng)信號輸入線,片內(nèi)已有反應(yīng)電阻。Vref:參考電壓輸入,通過它將外加高精度電壓源與內(nèi)部的電阻網(wǎng)絡(luò)相連接。Vref可在+10V~-10V范圍內(nèi)選擇。以下圖是將80C51與0832接成采用單緩沖方式。圖3-26DAC0832與80C51的單緩沖方式接口電路將累加器A中的數(shù)字量轉(zhuǎn)換為模擬電壓,只需執(zhí)行下面兩條指令:MOVDPTR,#7FFFHMOVX@DPTR,A為使多片0832同步輸出,可先將多路數(shù)據(jù)分別打入對應(yīng)的0832的輸入存放器,再將多片0832的XFER由一個片選信號控制,即采用雙緩沖方式。圖3-27DAC0832與80C51的雙緩沖方式接口電路雙緩沖方式的程序如下:MOVR1,#0FEHMOVA,#DATA1;數(shù)據(jù)寫入1#的輸入存放器MOVX@R1,ADECR1MOVA,#DATA2;數(shù)據(jù)寫入2#的輸入存放器MOVX@R1,AMOVR1,#0FBH;選通1#和2#的DAC存放器MOVX@R1,A…………2.帶串口的DACTLC5615與80C51的接口1〕5615性能與特性3線串行總線10位電壓輸出DAC,輸出電壓范圍為基準(zhǔn)電壓的兩倍,易與工業(yè)標(biāo)準(zhǔn)的CPU及MCU接口。MHz??蓮V泛用于電池供電測試儀表、遠(yuǎn)程工業(yè)控制和移動等領(lǐng)域。為8腳小型D或DIP封裝,如以下圖:圖3-28TLC5615引腳排列圖引腳功能:DIN:串行數(shù)據(jù)輸入端。SCLK:串行時鐘輸入端。:片選端,低電平有效。DOUT:用于級聯(lián)的串行數(shù)據(jù)輸出端。AGND:模擬地。REFIN:基準(zhǔn)電壓輸入端。OUT:DAC模擬電壓輸出端。VDD:正電源端。TLC5615的時序圖如下:圖3-29TLC5615的時序圖當(dāng)為低時,數(shù)據(jù)從DIN端輸入,先高位后低位。由SCLK同步,上升沿把串行數(shù)據(jù)從DIN移入內(nèi)部的16位移位存放器,下降沿將串行數(shù)據(jù)從DOUT輸出,的上升沿把數(shù)據(jù)傳送至DAC存放器。5615有兩種使用方式:級聯(lián)方式和非級聯(lián)方式。非級聯(lián)方式:DIN輸入12位數(shù)據(jù),前10位為D/A轉(zhuǎn)換數(shù)據(jù),后兩位必須寫入為零的低于LSB的位。級聯(lián)方式下:來自DOUT的數(shù)據(jù)需要輸入16個時鐘下降沿,因此一次數(shù)據(jù)輸入需要16個時鐘周期,輸入的數(shù)據(jù)為16位,前4位為高虛擬位,中間10位為D/A轉(zhuǎn)換數(shù)據(jù),最后2位為低于LSB的零位。2〕應(yīng)用電路與接口程序?qū)嵗韵聢D為開關(guān)電源中5615和89C51的接口電路。圖3-30TLC5615與51單片機接口電路單片機的P3.0~P3.2分別控制5615的片選、SCLK和DI。本例5615的基準(zhǔn)電壓選2.048V,最大輸出電壓4.096V,可滿足開關(guān)電源基準(zhǔn)電壓為0V~4V的設(shè)計要求。用非級聯(lián)方式,待輸入的12位數(shù)據(jù)存在R0、R1中,前/高4位放在R0中的低4位,后/低8位〔最低2位為00〕放在R1中。轉(zhuǎn)換程序如下:CLRP3.0 ;片選有效MOVR2,#4;送前4位數(shù)據(jù)的位數(shù)MOVA,R0;前4位數(shù)據(jù)送累加器低4位SWAPA;A中高4位與低4位互換LCALLWR-Data;DIN輸入前4位數(shù)據(jù)MOVR2,#8;送后8位數(shù)據(jù)的位數(shù)MOVA,R1;8位數(shù)據(jù)送入累加器A送數(shù)子程序如下:LCALLWR-Data;DIN輸入后8位數(shù)據(jù)CLRP3.1;時鐘低電平SETBP3.0;用SCLK的上升沿移入數(shù)據(jù)ENDWR-Data:NOP;空操作LOOP:CLRP3.1;時鐘低電平RLCA;數(shù)據(jù)送入CYMOVP3.2,C;數(shù)據(jù)輸入有效SETBP3.1;時鐘高電平DJNZR2,LOOP;循環(huán)送數(shù)RET;返回3.5ADC接口3.5.1ADC芯片與微機接口的一般方法1、ADC的主要信號線圖3-31ADC芯片的主要信號線START:輸入一個觸發(fā)信號,啟動一次A/D轉(zhuǎn)換。DONE/:狀態(tài)指示,可供CPU查詢,也可作為中斷請求信號。DB:數(shù)據(jù)輸出線,用來傳送A/D轉(zhuǎn)換的結(jié)果,供CPU讀取。OE:當(dāng)ADC的數(shù)據(jù)是三態(tài)輸出時,有輸出允許端OE。2、8位ADC與單片機的接口方法〔1〕帶三態(tài)輸出的ADC與單片機接口圖3-32帶三態(tài)輸出的ADC與單片機接口〔2〕不帶三態(tài)輸出的ADC與單片機接口圖3-33不帶三態(tài)輸出的ADC與單片機接口CPU要讀取A/D轉(zhuǎn)換結(jié)果,先要判轉(zhuǎn)換是否結(jié)束,通常有以下幾種通信方式:①延時等待:以轉(zhuǎn)換時間來判斷轉(zhuǎn)換結(jié)束與否②查詢方式:通過檢測狀態(tài)信號線的狀態(tài)③中斷方式:以狀態(tài)信號作為中斷請求信號3、多于8位的ADC與單片機的接口這時要用兩個數(shù)據(jù)口,分別傳送低8位和高位數(shù)據(jù),多余的口線還可用來傳送狀態(tài)信號,如以下圖所示:圖3-3410位A/D轉(zhuǎn)換器與單片機接口接口程序:CONVRT:MOVR1,#1FHMOVX@R1,AMOVR0,#36HCHK:MOVXA,@R0JNBACC.7,CHKANLA,#03HMOVR2,ADECR0MOVXA,@R0MOVX@DPTR,AINCDPTRMOVA,R2MOVX@DPTR,A假設(shè)ADC數(shù)據(jù)輸出是三態(tài)鎖存的,那么與單片機的數(shù)據(jù)總線間就不必用三態(tài)門了。如以下圖AD7550是13位的ADC,13位數(shù)據(jù)可分兩次輸出。LBEN:使能低8位輸出。HBEN:使能高5位輸出。OVRG:指示超量程。BUSY:指示轉(zhuǎn)換是否結(jié)束。STEN:使能OVEG、BUSY輸出。START:啟動轉(zhuǎn)換信號輸入端。接口電路如以下圖:圖3-35AD7550與80C51的接口3.5.2ADC芯片與80C51單片機接口舉例1.ADC0809與80C51單片機的接口ADC0809簡介8位逐次逼近式、8個模擬通道、片內(nèi)有地址鎖存器、三態(tài)輸出、CMOS工藝、轉(zhuǎn)換速度100us。圖3-36ADC0809內(nèi)部結(jié)構(gòu)圖D0~D7:8位數(shù)據(jù)輸出線IN0~I(xiàn)N7:8位模擬輸入線STRAT:啟動〔下降沿啟動〕信號ALE:地址鎖存允許〔上升沿鎖存〕EOC:轉(zhuǎn)換結(jié)束信號,結(jié)束時為高OE:輸出允許,高電平有效CLK:時鐘輸入,允許最高頻率640KHzVCC:+5V工作電壓REF〔+〕:參考電壓正端REF〔-〕:參考電壓負(fù)端B、C:通道地址選擇2〕接口方法延時等待方式圖3-37ADC0809與80C51的延時等待方式接口對8路模擬信號輪流采樣一次,并依次把結(jié)果轉(zhuǎn)儲到數(shù)據(jù)存儲區(qū)的程序。MAIN:MOVR1,#DATA;置數(shù)據(jù)區(qū)首地址MOVR7,#08H;置通道數(shù)MOVDPTR,#7FF8H;P2.7=0,且指向通道0LOOP:MOVX@DPTR,A;啟動A/D轉(zhuǎn)換MOVR6,#0AH;軟件延時,等待轉(zhuǎn)換結(jié)束DLAY:NOPNOPNOPDJNZR6,DLAYMOVXA,@DPTR;讀取轉(zhuǎn)換結(jié)果MOV@R1,A;轉(zhuǎn)儲INCDPTR;指向下一個通道INCR1;修改數(shù)據(jù)區(qū)指針DJNZR7,LOOP;8個通道采樣完了嗎?…………〔2〕查詢方式查EOC判A/D結(jié)束否。可將EOC與單片機的輸入口連接。圖3-38ADC0809與80C51的查詢方式接口程序如下:MAIN:MOVR1,#DATA;置數(shù)據(jù)區(qū)首地址MOVR7,#08H;置通道數(shù)MOVDPTR,#7FF8H;P2.7=0,且指向通道0LOOP:MOVX@DPTR,A;啟動A/D轉(zhuǎn)換HERE:JNBP1.0,HEREMOVXA,@DPTR;讀取轉(zhuǎn)換結(jié)果MOV@R1,A;轉(zhuǎn)儲INCDPTR;指向下一個通道INCR1;修改數(shù)據(jù)區(qū)指針DJNZR7,LOOP;8個通道全采樣完了?…………(3)中斷方式:接口電路只需將上圖的EOC腳經(jīng)一非門連到80C51的INT1腳即可。圖3-39ADC0809與80C51的中斷方式接口程序如下:〔對IN0通道進(jìn)行8次轉(zhuǎn)換并將結(jié)果存到數(shù)據(jù)區(qū)〕INITI:SETBIT1;外中斷1初始化,選邊沿觸發(fā)SETBEASETBEX1MOVR1,#DATAMOVR7,#08HMOVDPTR,#7FF8H;P2.7=0,且指向通道0MOVX@DPTR,A;啟動A/D轉(zhuǎn)換……PINT1:MOVDPTR,#7FF8H;讀取A/D結(jié)果送緩沖單元MOVA,@DPTRMOVX@R1,AINCR1DJNZR7,LOOPCLREX1AJMPENALOOP:MOVX@DPTR,A;啟動IN0通道的下一次轉(zhuǎn)換ENA:RETI2.AD574與80C51的接口1〕AD574簡介12位逐次逼近型ADC。轉(zhuǎn)換時間25us,精度0.05%,片內(nèi)有時鐘、三態(tài)緩沖電路,可單級性/雙級性轉(zhuǎn)換。該片有兩檔量程,分別是:〔1〕0V~10V〔單級性〕-5V~+5V〔雙級性〕〔2〕0V~20V〔單級性〕-10V~+10V〔雙級性〕引腳功能::片選:片啟動R/:讀出和轉(zhuǎn)換控制12/8:數(shù)據(jù)輸出格式選擇接+5V:12位同時輸出接地:只有高8位或低4位有效A0:字節(jié)選擇控制線STS:狀態(tài)輸出,轉(zhuǎn)換期間為高,結(jié)束為低VL:接+5VVcc:接+12V/+15VVee:接-12V/-15VREFIN、REFOUT:參考輸入、輸出AC、DC:模擬地、數(shù)字地BIPOFF:雙極性偏置10VIN、20VIN:10V/20V檔輸入AD574的控制信號真值表如表3-4所列。圖3-40AD574單極性轉(zhuǎn)換電路圖3-41AD574雙極性轉(zhuǎn)換電路2〕AD574與80C51的接口電路〔要求全12位轉(zhuǎn)換,12位數(shù)據(jù)分2次輸出〕圖3-42AD574與80C51的接口3〕AD574與80C51的接口程序〔轉(zhuǎn)換結(jié)果高8位在R2中,低4位在R3中〕MAIN:MOVR0,#7CH;選中574,A0=0,12位轉(zhuǎn)換MOVX@R0,A;啟動A/D轉(zhuǎn)換LOOP:NOPJBP3.2,LOOP;查詢轉(zhuǎn)換是否結(jié)束MOVXA,@R0;讀取高8位MOVR2,A;存入R2中MOVR0,#7DH;令A(yù)0=1〔為讀低4位〕MOVXA,@R0;讀取低4位MOVR3,A;存入R3中3.5G14433與80C51的接口1〕5G14433簡介為雙積分式三位半〔相當(dāng)于11bit〕BCD碼,分4次輸出。精度高、抗干擾能力強、速度慢〔1~10次/秒〕,量程為199.9mV或1.999V。圖3-435G14433邏輯框圖EOC:轉(zhuǎn)換結(jié)束標(biāo)志寬度為1/2時鐘周期的正脈沖OR:過量程標(biāo)志,當(dāng)過量程時OR為低電平。DU:更新轉(zhuǎn)換結(jié)果輸出的輸入端〔正脈沖〕DS1~DS4:多路選通脈沖輸出〔DS1對應(yīng)千位〕。Q3~Q0:BCD碼輸出線在DS1有效期間:3.5G14433與80C51的接口1〕5G14433簡介圖3-455G14433選通脈沖時序圖2)接口電路圖3-465G14433和80C51的接口及A/D結(jié)果存放的格式

(a)5G14433和80C51的接口(b)結(jié)果存放的格式3)接口程序主程序:INIT1:SETBIT1;與外中斷有關(guān)的初始化MOVIE,#84HMOVSP,#53HMOVA,#0FFHMOVP1,A;P1設(shè)為輸入……中斷效勞程序:PINT1:MOVA,P1;外部中斷1效勞程序JNBACC.4,PINT1;DS1有效?JBACC.0,PE;量程錯誤處理JBACC.2,PL1;為正數(shù),轉(zhuǎn)SETB07H;為負(fù),符號位置1AJMPPL2PL1:CLR07H;正數(shù),符號位清0PL2:JBACC.3,PL3;判千位是0還是1SETB04H;千位為1AJMPPL4PL3:CLR04H;千位為0PL4:MOVA,P1;準(zhǔn)備讀百位JNBACC.5,PL4;百位是否選通?〔DS2有效〕MOVR0,#20HXCHDA,@R0;讀百位放入(20H).0~3PL5:MOVA,P1;準(zhǔn)備讀十位JNBACC.6,PL5;十位是否選通?SWAPA;轉(zhuǎn)移到高4位INCR0MOV@R0,APL6:MOVA,P1JNBACC.7,PL6;個位是否選通?XCHDA,@R0RETIPE:SETB10H;置量程錯誤標(biāo)志RETI;返回4.ICL7135與80C51的接口1)ICL7135簡介4位半〔相當(dāng)于14bit〕雙積分式,精度高、價格低,接口方便。引腳安排如以下圖:圖3-47ICL7135的引腳V-:負(fù)電源輸入端。V+:正電源輸入端。VREF:基準(zhǔn)電源輸入端,基準(zhǔn)電壓為1V。AC:模擬地。DG:數(shù)字地。INTO:積分器輸出端。AZ:調(diào)零輸入端。BUFO:緩沖器輸出端。CR+、CR-:外接基準(zhǔn)電容CREF。INL:信號輸入〔低〕端。INH:信號輸入〔高〕端。CLK:時鐘輸入端?!搽p極性〕最高頻率為125kHz,轉(zhuǎn)換速率3次/秒。〔單極性〕最高頻率為1MHz,轉(zhuǎn)換速率25次/秒。BUSY:狀態(tài)線,轉(zhuǎn)換過程為高,結(jié)束時為低。POL:極性輸出端。當(dāng)輸入信號為正時POL為高;當(dāng)輸入信號為負(fù)時POL為低。OR:過量程標(biāo)志,假設(shè)過量程輸出高電平。UR:欠量程標(biāo)志,假設(shè)欠量程輸出高電平。STB:輸出選通脈沖,寬度為時鐘脈沖的1/2,一次轉(zhuǎn)換結(jié)束輸出5個負(fù)脈沖,分別選通高到低位的BCD碼輸出。B8、B4、B2、B1:BCD碼數(shù)據(jù)輸出線。D5、D4、D3、D2、D1:BCD碼位驅(qū)動信號輸出端,分別選通萬、千、百、十、個位。R/H:啟動A/D控制端。接高時為自動連續(xù)轉(zhuǎn)換,每隔40002個時鐘完成一次轉(zhuǎn)換;接低時轉(zhuǎn)換結(jié)束后保持轉(zhuǎn)換結(jié)果,輸入一個大于300ns正脈沖啟動另一次轉(zhuǎn)換。輸出時序如下:圖2-48ICL7135輸出時序圖為使7135工作于最正確狀態(tài),獲得最好的性能,必須注意對外接元器件的選擇。典型接線如圖3-49所示。圖3-497135外接元件圖VREF必須接1V穩(wěn)定的參考電源。RINT為積分電阻CINT為積分電容滿量程積分輸出電壓波動值控制在±3.5V~±4V選用較大的自動調(diào)零電容CAZ可以減小噪聲,典型值為1uF。基準(zhǔn)電容應(yīng)大到足以使節(jié)點對地的寄生電容可以被忽略為止,典型值為1uF。積分輸出端串接一個二極管D和電阻R是為了消除滾動誤差。2)接口電路7135轉(zhuǎn)換結(jié)果輸出是動態(tài),必須通過并行接口才能和80C51連接。本例采用8155為接口芯片。圖3-50ICL7135和80C51的接口圖中,8155的A口工作于選通輸入方式,7135的數(shù)據(jù)輸出選通脈沖STB接到8155的A口數(shù)據(jù)選通信號線ASTB〔PC2〕,8155A口中斷請求線AINTR〔PC0〕反相后接80C51的INT1。數(shù)據(jù)選擇器74LS157:SEL=1-選B組;萬位,狀態(tài)位輸入PA0~PA3SEL=0-選A組;千位,移入PA0~PA3圖中ALE連8155的定時器〔設(shè)為方波發(fā)生器〕的輸入端,假設(shè)系統(tǒng)時鐘為12MHz,那么ALE的頻率2MHz,經(jīng)定時器16分頻,輸出為125KHz方波,作為7135的時鐘。當(dāng)完成一次A/D轉(zhuǎn)換后,產(chǎn)生5個數(shù)據(jù)選通脈沖,分別將各位的BCD結(jié)果和標(biāo)志D1~D4打入8155的A口。A口收到一個數(shù)據(jù)后,中斷請求線AINTR〔PC0〕升高,80C51外部中斷INT1輸入端變?yōu)榈?,向CPU請求中斷。CPU響應(yīng)中斷,讀取8155A口的數(shù)據(jù)。3)接口程序設(shè)數(shù)據(jù)存放格式如下:圖3-51主程序〔送轉(zhuǎn)換結(jié)果〕流程圖圖3-52A/D中斷效勞程序流程圖主程序清單:MAIN:MOVDPTR,#7F04H;8155定時器初始化MOVA,#10H;16分頻MOVX@DPTR,AINCDPTRMOVA,#40HMOVX@DPTR,AMOVDPTR,#7F00H;控制字D6H→8155MOVA,#0D6HMOVX@DPTR,AMOVSP,#60HMOV20H,#00H;數(shù)據(jù)緩沖器區(qū)清0MOVP2,#7EH;8155RAM緩沖器地址初值MOVR0,#00HMOVR7,#55H;置長度計數(shù)器初值MOVIE,#84H;開放外部中斷1WDIN:JBCPSW.5,TRAN;A/D結(jié)果緩沖器裝滿否?AJMPWDINTRAN:MOVA,20H;A/D結(jié)果傳送到外部RAMMOVX@R0,AINCR0MOVA,21HMOVX@R0,AINCR0MOVA,22HMOVX@R0,AINCR0DJNZR7,WDINACALLPDATA;調(diào)用數(shù)據(jù)處理子程序MOVR0,#00H;重置8155RAM首地址MOVR7,#55H;重置長度AJMPWDINA/D中斷效勞程序:PINT1:MOVDPTR,#7F01H;讀8155A口的A/D結(jié)果MOVXA,@DPTRMOVR2,AANLA,#0F0H;保存高4位PA4~PA7,即D1~D4JNZPR1;D5=0,返回MOVR1,#20H;D1~D4全0,說明D5=1MOVA,R2ANLA,#01H;取萬位數(shù)據(jù)XCHDA,@R1MOVA,R2ANLA,#0EH;保存POL、OR、UR3位SWAPAORLA,@R1MOV@R1,AINCR1WD4:MOVXA,@DPTR;讀千位JNBACC.7,WD4SWAPAMOV@R1,A;千位→(22H).4~7WD3:MOVXA,@DPTR;讀百位JNBACC.6,WD3XCHDA,@R1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論