相關(guān)元件pdf下載:2n5639 mc14069ub 8051 mc14053b 用容柵作為傳感器的數(shù)顯量具,它的數(shù)據(jù)處理部分是一個(gè)模塊,模塊上設(shè)置了一個(gè)串行接口,用此接口和單片機(jī)連接可以對(duì)其功能進(jìn)行擴(kuò)展,如增加某些控制功能,或用此模塊開(kāi)發(fā)自己的長(zhǎng)度測(cè)量或控制儀器。本文以bj200卡尺模塊為例給出它與51單片機(jī)的接口電路和接口程序。引腳: 圖1 、數(shù)顯模塊引腳圖 圖1示出了接口的相對(duì)位置,1為負(fù)1.5v;2為數(shù)據(jù)信號(hào);3為同步信號(hào);4為0v,即接地端。如果不使用電池,而采用穩(wěn)壓電源,可將電源電壓提高為1.8~2.0v,以提高其抗干擾能力。數(shù)據(jù)格式: 串行口的數(shù)據(jù)是二進(jìn)制碼,約0.2秒輸出一次,每次輸出兩組數(shù)據(jù),第一組為絕對(duì)相移,不受人工控制,對(duì)測(cè)量沒(méi)有意義,第二組為相對(duì)相移,是相對(duì)于零位置的相移,即是我們所要采集的數(shù)據(jù)。一組數(shù)據(jù)24位,低位在前,高位在后,最后一位是符號(hào)位。最后一位為“1”表示數(shù)據(jù)為負(fù)數(shù),以補(bǔ)碼輸出,為“0”表示數(shù)據(jù)為正數(shù),以原碼輸出。若用d作為此數(shù)據(jù)的十進(jìn)制表示,則最終測(cè)得的位移量“l(fā)”可表示如下:與8051接口: 信號(hào)電平轉(zhuǎn)換電路: 電路見(jiàn)圖2。由于模塊使用負(fù)2v電源,所以它的輸出信號(hào)需經(jīng)過(guò)轉(zhuǎn)換才能和8051相容。r2、q2、u1d和u1e對(duì)數(shù)據(jù)信號(hào)進(jìn)行變換,輸出用data表示;r1、q1和u1a對(duì)同步信號(hào)進(jìn)行變換,輸出用clk表示;clk后面的電路用來(lái)給單片機(jī)提供一個(gè)中斷信號(hào),信號(hào)未傳送時(shí),int信號(hào)為低電平,信號(hào)傳送期間,由于r3、c1積分電路的作用,int保持高電平,信號(hào)傳送完畢,int又回到低電平,單片機(jī)設(shè)為脈沖中斷方式,檢測(cè)到這個(gè)脈沖下降沿即轉(zhuǎn)入中斷服務(wù)程序,從串行口讀入數(shù)據(jù)。與8051接口電路: 電路見(jiàn)圖3,其中data、clk、int各端分別和圖2中同名端口相連。mc14053是3刀雙擲模擬開(kāi)關(guān),我們選用其中一組;mc14557是長(zhǎng)達(dá)64位的可變移位寄存器,移位位數(shù)由l1、l2、l4、l8、l16、l32的接法決定,在此接成24位((16+4+2+1)+1=24),其輸出端接到8051的串行口。 8051復(fù)位后,p1.7置0,mc14557的時(shí)鐘端接至模塊同步信號(hào)clk。數(shù)據(jù)傳送完畢,int產(chǎn)生負(fù)跳變,單片機(jī)轉(zhuǎn)入中斷服務(wù)程序,將p1.7置1,mc14557時(shí)鐘端接至8051的串行時(shí)鐘,程序分三次將24位數(shù)據(jù)讀入單片機(jī),數(shù)據(jù)通信任務(wù)完成。此后,即可對(duì)數(shù)據(jù)進(jìn)行各種加工處理,達(dá)到工作要求。編程: 為了和以上電路配合,程序中先將p1.7置0,主程序中開(kāi)放外中斷,中斷方式設(shè)為脈沖方式。8051采用串行通信方式0從mc14557讀取數(shù)據(jù),一次讀取8位,需三次讀完24位。 程序中用到r0、r1寄存器,數(shù)據(jù)讀入后按高位在前的順序存入30h、31h、32h單元,即30h的最高位為符號(hào)位?!?------------開(kāi)始----------------clr p1.7 ;mc14557時(shí)鐘接到模塊同步信號(hào)mov ie, #81h ;開(kāi)放外中斷0setb it0 ;中斷方式置為脈沖方式;以下為數(shù)據(jù)接收子程序: mov ie, #00h ;禁止中斷mov scon,#00h ;串行通信方式0setb p1.7 ;將mc14557的時(shí)鐘轉(zhuǎn)為cpu控制mov r0,#32hmov r1,#03h ;分三次讀取數(shù)據(jù)l0:setb ren ;開(kāi)始接收數(shù)據(jù)jnb ri,$mov a,sbuf ;數(shù)據(jù)從緩沖區(qū)移至ram單元mov @r0,aclr ridec r0djnz r1,l0clr p1.7 ;mc14557時(shí)鐘轉(zhuǎn)換到clkret 除了本例所用的串行讀取數(shù)據(jù)方式以外,還可以使用串入并出寄存器將模塊輸出的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),再讀入單片機(jī)。 此接口電路已用于筆者設(shè)計(jì)的數(shù)顯測(cè)厚儀,用來(lái)測(cè)量光學(xué)玻璃元件的厚度。在這個(gè)儀器中,筆者利用采集的數(shù)據(jù)添加了公差輸入、絕對(duì)/相對(duì)測(cè)量方式轉(zhuǎn)換、超差報(bào)警等功能,以滿足用戶的要求。