模板課件系列之-chapter6MCS-51單片機(jī)的擴(kuò)展技術(shù)_第1頁
模板課件系列之-chapter6MCS-51單片機(jī)的擴(kuò)展技術(shù)_第2頁
模板課件系列之-chapter6MCS-51單片機(jī)的擴(kuò)展技術(shù)_第3頁
模板課件系列之-chapter6MCS-51單片機(jī)的擴(kuò)展技術(shù)_第4頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、chapter6第六章MCS-51單片機(jī)的擴(kuò)展技術(shù)chapter6內(nèi)容提要6.1 MCS-51擴(kuò)展及系統(tǒng)結(jié)構(gòu)6.2 MCS-51程序存儲器擴(kuò)展6.3 MCS-51數(shù)據(jù)存儲器擴(kuò)展6.4 MCS-51的I/O擴(kuò)展6.5 MCS-51與A/D、D/A的接口6.6 I2C總線及8051模擬6.7 SPI總線及8051模擬6.8 單相電子式預(yù)付電能表的設(shè)計(jì)與實(shí)現(xiàn)chapter6教學(xué)目的和要求 掌握MCS-51的擴(kuò)展系統(tǒng)結(jié)構(gòu),以及存儲器、并行接口、模數(shù)轉(zhuǎn)換、串行口擴(kuò)展接口的電路設(shè)計(jì)與相應(yīng)程序編寫。chapter66.1 MCS-51擴(kuò)展及系統(tǒng)結(jié)構(gòu)擴(kuò)展采用總線結(jié)構(gòu),通過總線把各擴(kuò)展部件連接起來。chapte

2、r6單片機(jī)擴(kuò)展通常采用總線結(jié)構(gòu)形式,整個擴(kuò)展系統(tǒng)以單片機(jī)為核心,通過總線把各擴(kuò)展部件連接起來。擴(kuò)展內(nèi)容包括ROM、RAM和I/O接口等??偩€,就是連接系統(tǒng)中各擴(kuò)展部件的一組公共信號線。按其功能通常把系統(tǒng)總線分為三組:即地址總線、數(shù)據(jù)總線和控制總線。chapter61. 地址總線Address Bus)用于傳送地址信號,進(jìn)行存儲單元和I/O端口的選擇。地址總線的數(shù)目決定著可直接訪問的存儲單元的數(shù)目。16根地址線:P0口低8位,P2口高8位。P0口采用分時復(fù)用技術(shù)對地址和數(shù)據(jù)進(jìn)行分離。增加一個8位鎖存器,由地址鎖存器提供低8位地址,然后再把P0口作為數(shù)據(jù)線使用。chapter62.數(shù)據(jù)總線Data

3、 Bus)數(shù)據(jù)總線在單片機(jī)與存儲器之間或單片機(jī)與I/O端口之間傳送數(shù)據(jù)??偩€的位數(shù)與單片機(jī)處理數(shù)據(jù)的字長一致。51單片機(jī)是8位字長,所以數(shù)據(jù)總線的位數(shù)也是8位。在系統(tǒng)擴(kuò)展時,數(shù)據(jù)總線由P0口構(gòu)造。chapter63.控制總線Control Bus)控制總線是一組控制信號線。包括地址鎖存信號ALE、程序存儲器的讀選通信號PSEN、以及讀RD和寫WR信號等。chapter6chapter6常用地址鎖存器 51單片機(jī)中的16位地址,高8位由P2口輸出,低8位由P0口輸出。而P0口同時又是數(shù)據(jù)輸入/輸出口,因此在進(jìn)行程序存儲器擴(kuò)展時,必須利用地址鎖存器將地址信號鎖存起來。74LS373的功能表 OE

4、G功 能 0 1直通(OUTi=Di) 00保持(OUTi保持不變) 1 輸 出 高 阻 chapter6 幾種地址鎖存器的管腳配置與8031的連接方法圖: chapter6 6.2 MCS-51單片機(jī)程序存儲器的擴(kuò)展用作程序存儲器的器件是EPROM、E2PROM和閃速存儲器(Flash)chapter6CPU讀取指令有兩種情況:不執(zhí)行MOVX指令;執(zhí)行MOVX指令。外部程序存儲器的操作時序 chapter6(b) 執(zhí)行MOVX指令時數(shù)據(jù)chapter6常用地址譯碼器在用多片存儲器芯片構(gòu)成外部存儲器時,除了低8位地址需要鎖存之外,還要由高8位地址產(chǎn)生片選信號。 產(chǎn)生片選信號有線選法和譯碼法兩種

5、。chapter6線選法線選法是用某幾根多余的高位地址線作為存儲器的片選信號,來實(shí)現(xiàn)外擴(kuò)存儲器的目的。優(yōu)點(diǎn):電路簡單;缺點(diǎn):不同的高位地址線控制不同芯片,導(dǎo)致地址空間不連續(xù),適用于外擴(kuò)芯片數(shù)目較少、不太復(fù)雜的系統(tǒng)。chapter6譯碼法 譯碼法是由譯碼器組成譯碼電路,譯碼電路將地址空間劃分為若干塊,其輸出分別選通各存儲器芯片。 充分利用了存儲空間,克服了空間分散的缺點(diǎn)。 若全部地址都參加譯碼,稱為全譯碼;若部分地址參加譯碼,稱為部分譯碼,這時存在部分地址重疊的情況。chapter6 常用的地址譯碼器是3-8線譯碼器74LS138和雙2-4線譯碼器74LS139。chapter6chapter6

6、 典型EPROM擴(kuò)展電路 1)常用的EPROM芯片紫外線擦除可編程只讀存儲器EPROM可作為51單片機(jī)的外部程序存儲器。芯片上有一個玻璃窗口,在紫外光下照射10分鐘左右,各位信息均變?yōu)?,此時,可以通過編程器將工作程序固化到這些芯片中。典型產(chǎn)品:Intel公司的2716(2kB8bit)、2732(4kB8bit)、2764(8kB8bit)、27128(16kB8bit)、27256(32kB8bit)和27512(64kB8bit)等。chapter6 An為地址線;On為數(shù)據(jù)輸出線;CE是片選線,OE/VPP是數(shù)據(jù)輸出選通編程電源線,PGM是編程脈沖輸入端。Vpp VccA12 PGMA

7、7 NCA6 A8A5 A9A4 A11 A3 OEA2 A10A1 CEA0 D7D0 D6D1 D5D2 D4GND D32764Vpp VccA12 PGMA7 A13A6 A8A5 A9A4 A11 A3 OEA2 A10A1 CEA0 D7D0 D6D1 D5D2 D4GND D327128Vpp VccA12 A14A7 A13A6 A8A5 A9A4 A11 A3 OEA2 A10A1 CEA0 D7D0 D6D1 D5D2 D4GND D327256chapter6 2).使用單片EPROM的擴(kuò)展電路 在程序存儲器擴(kuò)展電路設(shè)計(jì)中,由于所選中的EPROM芯片及地址鎖存器不同,電路

8、的連接方式也有所不同。 27128(16kB8bit)chapter63).擴(kuò)展多片EPROM的擴(kuò)展電路多片EPROM的擴(kuò)展除片選線CE外,其它均與單片擴(kuò)展電路相同。27128擴(kuò)展64k字節(jié)EPROM程序存儲器,片選信號由譯碼選通法產(chǎn)生。chapter6 擴(kuò)展多片程序存儲器時,也可采用線選法產(chǎn)生片選信號。 chapter651內(nèi)部僅有128字節(jié)的數(shù)據(jù)存儲器供用戶使用。實(shí)際應(yīng)用時往往需要外擴(kuò)數(shù)據(jù)存儲器。動態(tài)RAM需要刷新電路、靜態(tài)RAM、集成動態(tài)隨機(jī)存儲器iRAM。6.3 MCS-51單片機(jī)數(shù)據(jù)存儲器的擴(kuò)展chapter6外部數(shù)據(jù)存儲器的操作時序 MCS-51單片機(jī)設(shè)置了專門指令MOVX來訪問外

9、部數(shù)據(jù)存儲器,共有4條寄存器間接尋址指令。 chapter6chapter6 常用的靜態(tài)RAM芯片 常用的靜態(tài)RAM芯片有61162kB8、6264(8kB8)、62128(16kB8)、62256(32kB8)等多種,它們都用單一+5V供電,雙列直插封裝,6116為24引腳封裝,6264、62128、62256為28引腳封裝。引腳功能:An:地址輸入線;對6116,n=10;對6264,n=12;其他的類推。Dn:雙向數(shù)據(jù)線;CE:是片選輸入線,低電平有效;WE:寫允許信號輸入線,低電平有效;OE:讀選通信號輸入線,低電平有效;VCC:工作電源+5V。GND:電源地。chapter6chap

10、ter6 靜態(tài)RAM通常有讀出、寫入和未選中三種工作方式。 SRAM的工作方式選擇表chapter664KB字節(jié)以內(nèi)SRAM的擴(kuò)展:地址: P2口提供高8位地址,P0口低8位地址數(shù)據(jù): P0口8位雙向數(shù)據(jù)總線??刂? 讀和寫由RD和WR信號控制,片選端CE由地址譯碼器的譯碼輸出控制。chapter662648kB8chapter6三片6264對應(yīng)的存儲空間表P2.7 P2.6 P2.5 選中芯片 地址范圍 存儲空間 1 1 0 IC1 C000HDFFFH 8KB 1 0 1 IC2 A000HBFFFH 8KB 0 1 1 IC3 6000H7FFFH 8KB chapter6chapter

11、6各62128地址分配表138譯碼器輸入 P2.7 P2.6 138譯碼器有效輸出 選中芯片地址范圍 存儲容量0 0 Y0 IC1 0000H3FFFH 16KB 0 1 Y1 IC2 4000H7FFFH 16KB 1 0 Y2 IC3 8000HBFFFH 16KB 1 1 Y3 IC4 C000HFFFFH 16KB chapter6超過64K字節(jié)SRAM的擴(kuò)展可用增加地址線的辦法來擴(kuò)大RAM空間。增加地址線的方法有以下兩種:一種是利用P1口增加地址線,另一種是利用擴(kuò)展I/O口的方法增加地址線。chapter6 擴(kuò)展既可讀又可寫的程序存儲器問題:ROM不能寫,RAM不能運(yùn)行,程序調(diào)試?yán)щy

12、。程序存儲器使用PSEN作選通信號,而數(shù)據(jù)存儲器使用RD作選通信號。兩個信號經(jīng)過與門綜合后,再作為RAM存儲芯片的讀選通信號,即可達(dá)到擴(kuò)展可讀寫程序存儲器的目的。RAMchapter6概述在多數(shù)應(yīng)用系統(tǒng)中,MCS-51單片機(jī)都需要外擴(kuò)輸入輸出(I/O)接口芯片;MCS-51單片機(jī)的外部數(shù)據(jù)存儲器RAM和I/O統(tǒng)一編址;每一個接口芯片中的一個功能寄存器口地址就相當(dāng)于一個RAM存儲單元;CPU可以向訪問外部存儲器RAM那樣訪問外部接口芯片,對其功能寄存器進(jìn)行讀、寫操作。 6.4 MCS-51單片機(jī)的I/O擴(kuò)展chapter6編址進(jìn)行I/O擴(kuò)展時,同樣存在編址的問題。存儲器是對存儲單元進(jìn)行編址,而接

13、口電路則是對其中的端口進(jìn)行編址。常用的I/O編址有兩種方式:獨(dú)立編址方式和統(tǒng)一編址方式。獨(dú)立編址:把I/O和存儲器分開進(jìn)行編址,形成兩個獨(dú)立的地址空間。需要使用存儲器讀寫指令,以及專門的I/O指令以進(jìn)行數(shù)據(jù)輸入輸出操作。統(tǒng)一編址:把系統(tǒng)中的I/O和存儲器統(tǒng)一進(jìn)行編址。I/O接口中的寄存器端口與存儲器中的存儲單元同等。使用一個統(tǒng)一的地址空間,既供存儲器,也供I/O編址使用。chapter6MCS-51單片機(jī)使用統(tǒng)一編址方式。進(jìn)行擴(kuò)展IO接口設(shè)計(jì)時,要注意以下幾個問題:(1)熟悉MCS-51P0P3口的特性及指令功能。(2)分析清楚要擴(kuò)展的接口芯片的功能、結(jié)構(gòu)及能力。(3)在進(jìn)行硬件設(shè)計(jì)時要注意接

14、口電平及驅(qū)動能力。(4)設(shè)計(jì)驅(qū)動程序要注意,防止總線上的數(shù)據(jù)沖突。應(yīng)根據(jù)實(shí)際情況采用不同的數(shù)據(jù)傳送控制方式。chapter6簡單輸入接口擴(kuò)展實(shí)際上就是擴(kuò)展數(shù)據(jù)緩沖器當(dāng)輸入設(shè)備被選通時,使數(shù)據(jù)源能與數(shù)據(jù)總線直接溝通;當(dāng)輸入設(shè)備處于非選通狀態(tài)時,把數(shù)據(jù)源與數(shù)據(jù)總線隔離,既緩沖器輸出高阻抗?fàn)顟B(tài)。常用的擴(kuò)展輸入口的TTL芯片有74LS244、74LS373等。74LS244是一個三態(tài)輸出八緩沖器及總線驅(qū)動器,可以作為8051外部的一個擴(kuò)展輸入口,接口電路如下圖。chapter68051和74LS244的接口圖chapter68位并行輸入口74LS244,由P2.6和RD相“或控制,地址為0BFFFH,

15、當(dāng)管腳P2.6=0時,執(zhí)行MOVX A,DPTR類指令可產(chǎn)生信號,將數(shù)據(jù)讀入單片機(jī)。讀入程序?yàn)椋篗OV DPTR,#0BFFFH ;指向244輸入口MOVX A,DPTR ;輸入數(shù)據(jù)74LS373為一個帶三態(tài)門的8D鎖存器,它可以作為8051外部的一個擴(kuò)展輸入口,接口邏輯如下圖。chapter6chapter6外部設(shè)備向單片機(jī)傳送數(shù)據(jù)時,產(chǎn)生一個選通信號XT連接到373的打入端G上,在選通信號的下降沿將數(shù)據(jù)鎖存,同時向單片機(jī)發(fā)中斷請求。單片機(jī)響應(yīng)中斷后,通過P0口在373鎖存器中讀取數(shù)據(jù)。74LS373的輸出由P2.7和RD相“或控制。373的口地址為7FFFH(即P2.7為0)。chapte

16、r6244為總線輸入緩沖,在選通時輸入數(shù)據(jù)送到總線上,在非選通時對總線呈高阻態(tài)。373有兩個控制端,一個是1腳的使能端為低時使能器件輸出,為高時器件呈高阻態(tài),另一個是11腳的鎖存端(先高后低完成數(shù)據(jù)鎖存),通常配合單片機(jī)用作地址鎖存。 chapter6簡單輸出接口擴(kuò)展輸出接口的主要功能是進(jìn)行數(shù)據(jù)保持,或者說是數(shù)據(jù)鎖存。所以簡單輸出接口擴(kuò)展的電路是鎖存器。簡單輸出接口擴(kuò)展通常使用74LS377、74LS373等。 74LS377為帶有允許輸出的8D鎖存器,有8個D輸入端,8個Q輸出端,一個時鐘輸入端CLK,一個鎖存允許信號E。當(dāng)E=0時,CLK端信號的上升沿,把8D輸入端的數(shù)據(jù)打入8位鎖存器。

17、chapter6通過8051的P0口擴(kuò)展一片74LS377鎖存器作輸出口,輸出控制信號為WR,接口邏輯如下圖。chapter6擴(kuò)展一片74LS377鎖存器作輸出口,輸出控制信號為WR,鎖存器被視為8051的一個外部RAM單元。使用MOVX DPTR,A 指令訪問。圖中377的口地址為7FFFH(即P2.7=0),輸出操作程序如下: MOV DPTR,#7FFFH ;指向377口地址MOV A,#DATA ;取數(shù)MOVX DPTR, A ; 送377鎖存器chapter6chapter6可編程接口芯片擴(kuò)展8255A芯片介紹8255A是Intel公司生產(chǎn)的可編程輸入輸出接口芯片;有3個8位的并行I

18、/O口,分別為PA口、PB口和PC口,其中PC口又分為高4位口PC7 PC4和低4位口(PC3 PC0),可以通過軟件編程來改變I/O口的工作方式。8255A可以與MCS-51單片機(jī)直接接口。chapter68255A的引腳圖它由以下幾個部分組成:(1)數(shù)據(jù)端口A、B、CPA口:一個8位數(shù)據(jù)輸出鎖存器和緩沖器;一個8位數(shù)據(jù)輸入鎖存器。PB口:一個8位數(shù)據(jù)輸出鎖存器和緩沖器;一個8位數(shù)據(jù)輸入緩沖器。PC口:一個8位的輸出鎖存器;一個8位數(shù)據(jù)輸人緩沖器。chapter68255A的結(jié)構(gòu)框圖chapter6A組和B組控制電路A組控制PA口和PC口的上半部PC7-PC4;B組控制PB口和PC口的下半部

19、(PC3-PC0)。雙向三態(tài)數(shù)據(jù)緩沖器 8255A和CPU數(shù)據(jù)總線的接口,CPU和8255A之間的命令、數(shù)據(jù)和狀態(tài)的傳遞都通過雙向三態(tài)總線緩沖器傳送,D7-D0接CPU的數(shù)據(jù)總線。chapter6讀寫和控制邏輯A0、A1、 CS :8255A的端口選擇信號和片選信號,RD 、WR : 8255A的讀寫控制信號,這些信號線分別和MCS-51的地址線和讀寫信號線相連接,實(shí)現(xiàn)CPU對8255A的口選擇和數(shù)據(jù)傳送。CPU對8255A的A口、B口、C口和控制口的尋址如表8-1所示。 復(fù)位控制引腳RESET為復(fù)位信號輸入腳,高電平有效。復(fù)位有效時,它把控制寄存器清零和 置所有端口(A、B、C)為輸入方式。

20、chapter6表8-1 8255A端口選擇表操作CSA1A0RDWR功能輸入00001A口數(shù)據(jù)總線(讀端口A)輸入00101B口數(shù)據(jù)總線(讀端口B)輸入01001C口數(shù)據(jù)總線(讀端口C)輸入01101狀態(tài)寄存器數(shù)據(jù)總線輸出00010數(shù)據(jù)總線A口(寫端口A)輸出00110數(shù)據(jù)總線B口(寫端口B)輸出01010數(shù)據(jù)總線C口(寫端口C)輸出01110數(shù)據(jù)總線控制寄存器禁止1數(shù)據(jù)總線為高阻態(tài)chapter68255A的3種工作方式及選擇8255A有三種基本工作方式: 方式0一基本輸入輸出; 方式1一選通輸入輸出; 方式2一雙向傳送(僅PA口)。chapter6工作方式的選擇由CPU輸出的控制字決定1

21、)“方式選擇控制字8255A的工作方式,由CPU送出一個控制字到8255A的控制字寄存器來選擇。chapter68255A的控制字D7是該控制字的標(biāo)志位,其狀態(tài)固定為1,用于表明本字節(jié)是方式控制字。chapter6例8-1: 若對8255A作如下設(shè)置:A口方式0輸入,B口方式1輸出,C口高位部分輸出低位部分為輸入。設(shè)控制寄存器地址為0FFFBH。按各口的設(shè)置要求,工作方式控制字為10010101B,即95H。則初始化程序段為:MOV DPTR,#0FFFBHMOV A,#95HMOVX DPTR,Achapter62)C口按位置位/復(fù)位功能這個功能主要用于控制端口C的8位中的任一位,可用一個寫

22、入8255A的控制口的置位復(fù)位控制字來置位或復(fù)位??刂谱值母袷饺鐖D8-4所示。D7是該控制字的標(biāo)志,其狀態(tài)固定為0。chapter6chapter6例8-2:如果想把8255A的C口的PC1置1,PC7復(fù)位,該如何對8255A編程。將03H寫入控制口,置“1PC1;0EH寫入控制口,清“0”PC7。設(shè)控制寄存器地址為0FFFBH。程序如下:MOV DPTR,#0FFFBHMOV A,#03HMOVX DPTR,AMOV A,#0EH MOVX DPTR,Achapter63. 接口應(yīng)用舉例例8-3:在8051單片機(jī)上擴(kuò)展一片8255A芯片,設(shè)端口A為方式0輸入,端口B方式0輸出,端口C上半部)

23、PC7PC4輸入,端口C(下半部)PC3PC0輸出。要求從A口讀入的數(shù)據(jù)從B口輸出。試設(shè)計(jì)擴(kuò)展接口電路,并給出初始化程序。完成上述功能的接口電路如下圖。chapter68255A的擴(kuò)展接口圖chapter6根據(jù)題目要求,8255A的控制字為10011000B=98H(控制字的格式見圖8-3)。初始化程序清單如下:MOV A,#98HMOV DPTR,#7FFFHMOVX DPTR, A MOV DPTR, #7FFCHMOVX A, DPTRINC DPTRMOVX DPTR,Achapter6能夠把模擬量變成數(shù)字量的器件稱為模數(shù)轉(zhuǎn)換器(A/D)。能夠把數(shù)字量變成模擬量的器件稱為數(shù)模轉(zhuǎn)換器(D

24、/A)。6.5 MCS-51單片機(jī)與A/D、D/A的接口chapter6目前常用單片A/D轉(zhuǎn)換器的輸出形式大致可分為并行、串并行和串行輸出三種。 并行輸出A/D轉(zhuǎn)換器接口以位并行的形式輸出通過I/O口與微機(jī)連接,其接口包括三態(tài)緩沖器、狀態(tài)應(yīng)答和地址選擇等部分,這些部分可以集成于A/D轉(zhuǎn)換器之內(nèi),也可以包含在由CPU、I/O端口及內(nèi)存等組成的單片機(jī)內(nèi)。chapter6并行輸出ADC接口框圖chapter68位并行輸出A/D轉(zhuǎn)換器ADC0809接口 (1)ADC0809的結(jié)構(gòu)ADC0809是一種8路模擬輸入8位數(shù)字輸出的A/D轉(zhuǎn)換芯片,它是采用逐次逼近的方法完成A/D轉(zhuǎn)換的。帶鎖存8通道多路模擬開

25、關(guān),可對8路05V輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換,完成一次轉(zhuǎn)換約100us。chapter605V三個地址信號A、B和C決定是哪一路模擬信號被選中并送到內(nèi)部A/D轉(zhuǎn)換器中進(jìn)行轉(zhuǎn)換,完成一次轉(zhuǎn)換約需100s可對8路05V的輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換輸出具有TTL三態(tài)鎖存緩沖器,可直接接到單片機(jī)數(shù)據(jù)總線上。chapter6(2)ADC0809的引腳 ADC0809是28腳雙列直插式封裝各引腳功能如下:IN0IN7:8路模擬量輸入引腳。START:AD轉(zhuǎn)換啟動信號輸入端。當(dāng)START為高電平時,A/D開始轉(zhuǎn)換。ALE:通道地址鎖存允許信號輸入端,上升沿有效。EOC:轉(zhuǎn)換結(jié)束信號輸出引腳,開始轉(zhuǎn)換時為

26、低電平,當(dāng)轉(zhuǎn)換結(jié)束時為高電平。 chapter6OE:輸出允許控制端,用以打開三態(tài)數(shù)據(jù)輸出鎖存器。CLK:時鐘信號輸入端。A、B、C:地址輸入線,經(jīng)譯碼后可選通IN0IN7八通道中的一個通道進(jìn)行轉(zhuǎn)換。A為最低,C為最高。 D7 D0: 8位數(shù)字量輸出引腳。VR():參考電壓正端。一般接+5V高精度參考電源。VR():參考電壓負(fù)端。一般接模擬地。Vcc,GND:電源電壓Vcc接+5V,GND為數(shù)字地。chapter6ADC0809的操作時序:轉(zhuǎn)換結(jié)束允許輸出chapter6ALE腳的頻率是單片機(jī)時鐘頻率的1/6。轉(zhuǎn)換完成后可申請中斷。轉(zhuǎn)換通道地址選擇。轉(zhuǎn)換開始轉(zhuǎn)換結(jié)束chapter6 4ADC0

27、809接口控制程序圖示接口可以采用定時采樣、查詢和中斷三種控制方式,其程序如下。例:下面的程序是采用軟件延時的方法,分別對8路模擬信號輪流采樣一次,并依次把結(jié)果轉(zhuǎn)儲到數(shù)據(jù)存儲區(qū)20H開始的單元。 ADC8: MOV R1,20H ;置數(shù)據(jù)區(qū)首地址 MOV DPTR,#0FEF8H ;? MOV R7,#08H ;置通道數(shù) LOOP: MOVX DPTR,A ;啟動A/D轉(zhuǎn)換 MOV R6,0AH ;軟件延時,等待轉(zhuǎn)換結(jié)束chapter6DLAY: NOP NOP NOP DJNZ R6,DLAY MOVX A,DPTR ;讀取轉(zhuǎn)換結(jié)果 MOV R1,A ;轉(zhuǎn)儲 INC DPTR ;指向下一個通

28、道 INC R1 ;修改數(shù)據(jù)區(qū)指針 DJNZ R7,LOOP ;8個通道全采樣完了嗎? RETchapter6 ADC0809的EOC腳經(jīng)過一非門連接到8051的INTl腳,P3.3腳,可用查詢或中斷讀取轉(zhuǎn)換結(jié)果。 例:用查詢方式控制程序完成一次A/D啟動并讀取轉(zhuǎn)換結(jié)果。讀取數(shù)據(jù)存儲于內(nèi)部存儲單元30H中。ADCON:MOV DPTR,#0FEF8H MOVX DPTR,A WAIT:JB P3.3,WAIT ;0,wait WAIT1:JNB P3.3,WAIT1 ;1,wait1 MOVX A,DPTR MOV 30H,A RETchapter6例3:ADC0809中斷接口控制程序。程序如

29、下:ORG 0000HAJMP ADCNORG 0013HAJMP PINTIORG 1000H ADCN: SETB IT1 ;外部中斷1初始化編程 SETB EA SETB EX1 MOV DPTR,#0FEF8H ;啟動0809的IN0 MOV A,00H MOVX DPTR,A ADED: SJMP ADENchapter6; 中斷服務(wù)程序: PINTI:MOV DPTR,#0FEF8H ;讀取AD結(jié)果 MOVX A,DPTR MOV 30H,A MOV A,#00H ;啟動0809對IN0的轉(zhuǎn)換 MOVX DPTR,A; RETI # include # include unsign

30、ed char xdata AD08090 x8 _ at_ 0 xFEF8; /通道0unsigned char xdata buf0 x8 _at _ 0 x2000; /存放采集數(shù)據(jù)unsigned int idata pointer;unsigned char idata count;void main(void) pointer=0 x0000;count=0 x8;IT1=0;EA=1;EX1=0;AD08988-count=0 x00;while(1);unsigned char xdata *pointer=0 x2000;for(;count0;count-)AD08098-

31、count=0 x00;Delay(100us);*pointer=AD08098-count;pointer+;chapter6; 中斷服務(wù)程序:void ad() interrupt 2 unsigned char tmp;tmp=AD08098-count;bufpointer=tmp;pointer=pointer+1;count=count-1if(count=0) EX1=0;chapter6串行輸出ADC與單片機(jī)的接口以串行數(shù)據(jù)形式輸出有利于提高儀器的集成度和減小體積。在需要進(jìn)行模擬與數(shù)字隔離的場合,能方便、廉價(jià)地實(shí)現(xiàn)隔離。具備串行輸出接口的A/D轉(zhuǎn)換器有多種,其接口時序隨型號不

32、同而有所不同。但從接口的實(shí)現(xiàn)和控制方法來說,基本相同。chapter6(1)MAX1241串行輸出ADC簡介MAX1241是低功耗、低電壓的12位串行ADC。它使用逐次逼近技術(shù)完成A/D轉(zhuǎn)換過程。最大非線性誤差小于1LSB,轉(zhuǎn)換時間9s。采用三線式串行接口,內(nèi)置快速采樣/保持電路。chapter6chapter6(2) MAX1241A/D轉(zhuǎn)換器與8051的接口一是使用普通端口,利用程序?qū)崿F(xiàn)串行輸入。另一種則是直接使用串行口。前者輸入速度低,后者需占用串行通訊口。以接口使用三位通用I/O端口P1.0P1.2為例.#include#define uchar unsigned char#defin

33、e uint unsigned intsbit ADC_CS=P10;sbit ADC_CLK=P11;sbit ADC_DOUT=P12;uint Read_Max1241() uint ADC_Data;uchar i;ADC_CLK=0;ADC_CS=0;ADC_Data=0;while(!ADC_DOUT);/0waitADC_CLK=1;ADC_CLK=0;for(i=0;i12;i+)ADC_CLK=1;ADC_Data1;ADC_Data=ADC_DOUT;ADC_CLK=0;ADC_CS=1;ADC_CLK=0;return ADC_Data;chapter6MCS-51單片機(jī)

34、與8位DA轉(zhuǎn)換器接口技術(shù) DAC0832的結(jié)構(gòu)原理1DAC0832的特性分辨率為8位;電流輸出,穩(wěn)定時間為1s;可雙緩沖、單緩沖或直接數(shù)字輸入;只需在滿量程下調(diào)整其線性度;單一電源供電+5+15V;低功耗,20mW。chapter6DAC0832的邏輯結(jié)構(gòu)DAC0832主要由一個8位輸入寄存器、一個8位DAC 寄存器和一個8位D/A 轉(zhuǎn)換器組成。在D/A 轉(zhuǎn)換器中采用的是T型R-2R電阻網(wǎng)絡(luò)。chapter6DAC0832芯片為20腳雙列直插式封裝,各管腳的功能如下:CS:片選信號引腳(低電平有效)。ILE:數(shù)據(jù)鎖存允許控制信號輸入線(高電平有效)。WRl:第一級鎖存寫選通(低電平有效)。XF

35、ER:數(shù)據(jù)傳輸控制信號輸入線,低電平有效。WR2:第二級鎖存寫選通(低電平有效)。當(dāng)XFER=0,WR2=0時,可使輸入寄存器中的數(shù)據(jù)傳送到DAC寄存器中 。chapter6D0D7:數(shù)據(jù)輸入線。D0是最低位(LSB),D7是最高位(MSB)。 Iout1(IO1):DAC電流輸出線。當(dāng)DAC寄存器為全1時,表示Ioutl為最大值,當(dāng)DAC寄存器為全0時,表示Ioutl為0。Iout2(IO2):DAC電流輸出線。Iout2為常數(shù)減去Iout1,或者Iout1+Iout2=常數(shù)。在單極性輸出時,Iout2通常接地。Rfb:內(nèi)部集成反饋電阻,為外部運(yùn)算放大器提供一個反饋電壓。Rfb可由內(nèi)部提供,

36、也可由外部提供。chapter6VREF:參考電壓輸入,要求外部接一個精密的電源。當(dāng)VREF為10V(或5V)時,可獲得滿量程四象限的可乘操作。Vcc:數(shù)字電路供電電壓,一般為5V5V +15V。AGND:模擬地。DGND:數(shù)字地。chapter6工作原理 內(nèi)部結(jié)構(gòu)框圖0鎖存,1轉(zhuǎn)換chapter68位D/A轉(zhuǎn)換器的接口方法1單緩沖型接口方法把D/A轉(zhuǎn)器中的兩個寄存器中任一個接成常通狀態(tài)。 2雙緩沖型接口方法雙緩沖方式的接口主要應(yīng)用在多路DA轉(zhuǎn)換器同步輸出系統(tǒng)中。這種接口電路主要是把0832的輸入寄存器的鎖存信號和DAC寄存器的鎖存信號分別進(jìn)行控制。3直通型的接口方法 直通型電路與單緩沖接法比

37、較相似,只是要把兩級緩沖器接成常通。 chapter6直通型接口電路即將ILE接高電平,WRl和WR2與單片機(jī)的WR連接,CS和XFER與P2.7口連接,最終進(jìn)行I/V轉(zhuǎn)換輸出電壓信號。chapter6可以編出許多種波形輸出的D/A轉(zhuǎn)換程序,如鋸齒波、三角波、梯形波、矩形波等。例:利用DAC0832產(chǎn)生各種波形。產(chǎn)生鋸齒波程序如下: DAADR EQU 7FFFH ORG 2000H STAR: MOV DPTR,#DAADR ;選中DAC0832 MOV A,#00H LP: MOVX DPTR,A ;向0832輸出數(shù)據(jù) INC A SJMP LPchapter6# include # de

38、fine DAC0832 XBYTE0 x7fffvoid delay(unsigned char t) while(t-);void saw(void)unsigned char j;for(j=0;j255;j+)DAC0832=j;delay(10);void main(void)while(1)saw();chapter6三角波程序如下: STAR: MOV DPTR,#DAADR DAS0: MOV A,#00H DASl: MOVX DPTR,A INC A JNZ DASl DAS2: DEC A MOVX DPTR,A JNZ DAS2 AJMP DAS0chapter6# i

39、nclude # define DAC0832 XBYTE0 x7fffvoid delay(unsigned char t) while(t-);void saw(void)unsigned char j;for(j=0;j0;j-)DAC0832=j;delay(10);chapter6梯形波程序如下:ORG 2000HSTAR:MOV DPTR,#DAADR ;選中D/ALP1:MOV A,#dataL ;置下限LP2:MOVX DPTR,AINC ACLR CSUBB A,#dataH ;與上限比較JNC DOWNADD A,#dataH ;恢復(fù)原值SJMP LP2chapter6DOWN:LCALL DEL ;調(diào)上限延時程序 LP3:MOVX DPTR,A DEC A SUBB A,#dataL ;與下限比較 JC LP1 ADD A,#dataL SJMP LP3chapter6# include # define DAC0832 XBYTE0 x7fffvoid delay(unsigned char t) while(t-);void saw(void)unsigned char j;for(j=0;j0;j-)DAC0832=j;delay(10);chapter66.6 I2C總線及8051單片機(jī)模擬簡介I

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論