版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第9章 MCS-51單片機(jī)的其他接口9.1 LCD與MCS-51接口液晶顯示器按其功能可分為三類:筆段式液晶顯示器、字符點(diǎn)陣式液晶顯示器和圖形點(diǎn)陣式液晶顯示器。9.1.1 字符型點(diǎn)陣式LCD液晶顯示器有16字1行、16字2行、20字2行和40字2行等的字符液晶顯示模塊。這些LCM雖然顯示字?jǐn)?shù)各不相同,但是都具有相同的輸入輸出界面。本節(jié)將以162字符型液晶顯示模塊RT-1602C為例,詳細(xì)介紹字符型液晶顯示模塊的應(yīng)用。一字符型液晶顯示模塊RT-1602C的外觀與引腳RT-1602C采用標(biāo)準(zhǔn)的16腳接口,各引腳情況如下:第1腳:VSS,電源地第2腳:VDD,+5V電源第3腳:VL,液晶顯示偏壓信號
2、第4腳:RS,數(shù)據(jù)/命令選擇端,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W,讀/寫選擇端,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號,當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。 第6腳:E,端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7,為8位雙向數(shù)據(jù)線。第15腳:BLA,背光源正極第16腳:BLK,背光源負(fù)極二字符型液晶顯示模塊RT-1602C的內(nèi)部結(jié)構(gòu)液晶顯示模塊RT-C1602C的內(nèi)部結(jié)構(gòu)可以分成三部份:一為LCD控制器,二為LCD驅(qū)動(dòng)器,
3、三為LCD顯示裝置,如圖所示:LCD控制器LCD驅(qū)動(dòng)器LCD顯示裝備VSSVDDVOVSV/WEDB0DB7控制器采用HD44780,驅(qū)動(dòng)器采用HD44100。HD44780集成電路的特點(diǎn):1、可選擇57或510點(diǎn)字符。2、HD44780不僅作為控制器而且還具有驅(qū)動(dòng)4016點(diǎn)陣液晶像素的能力,在外部加一HD44100外擴(kuò)展多40路/列驅(qū)動(dòng),則可驅(qū)動(dòng)162LCD。3、HD44780內(nèi)藏顯示緩沖區(qū)DDRAM、字符發(fā)生存儲器(ROM)及用戶自定義的字符發(fā)生器CGRAM。HD44780有80個(gè)字節(jié)的顯示緩沖區(qū),分兩行,地址分別為00H27H,40H67H,它下實(shí)際顯示位置的排列順序跟LCD的型號有關(guān),
4、液晶顯示模塊RT-1602C的顯示地址與實(shí)際顯示位置的關(guān)系如圖所示。HD44780內(nèi)藏的字符發(fā)生存儲器(ROM)已經(jīng)存儲了160個(gè)不同的點(diǎn)陣字符圖形,如圖所示: 這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。比如數(shù)字“1”的代碼是00110001B(31H),又如大寫的英文字母“A”的代碼是01000001B(41H),可以看出英文字母的代碼與ASCII編碼相同。要顯示“1”時(shí),我們只需將ASCII碼31H存入DDRAM指定位置,顯示模塊將在相應(yīng)的位置把數(shù)字“1”的點(diǎn)陣字符圖形顯示出來,我們就能看到數(shù)字“1”了。 00 01 02 03 04
5、 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 27 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 67 LCD 16字2行 4、HD44780具有8位數(shù)據(jù)和4位數(shù)據(jù)傳輸兩種方式,可與4/8位CPU相連。5、HD44780具有簡單而功能較強(qiáng)的指令集,可實(shí)現(xiàn)字符移動(dòng),閃爍等顯示功能。三指令格式與指令功能 LCD控制器HD44780內(nèi)有多個(gè)寄存器,通過RS和R/W引腳共同決定選擇哪一個(gè)寄存器,選擇情況如表 RSR/W寄存器及操作00指令寄存器寫入01忙標(biāo)志和地址計(jì)數(shù)器讀出10數(shù)據(jù)寄存器寫入11數(shù)據(jù)寄存器讀出總共有11
6、條指令,它們的格式和功能如下:1清屏命令格式:RSR/WD7D6D5D4D3D2D1D00000000001功能:清除屏幕,將顯示緩沖區(qū)DDRAM的內(nèi)容全部寫入空格(ASCII20H)。光標(biāo)復(fù)位,回到顯示器的左上角。地址計(jì)數(shù)器AC清零。2光標(biāo)復(fù)位命令格式: RSR/WD7D6D5D4D3D2D1D00000000010功能:光標(biāo)復(fù)位,回到顯示器的左上角。 地址計(jì)數(shù)器AC清零。 顯示緩沖區(qū)DDRAM的內(nèi)容不變。 3輸入方式設(shè)置命令格式: RSR/WD7D6D5D4D3D2D1D000000001I/DS功能:設(shè)定當(dāng)寫入一個(gè)字節(jié)后,光標(biāo)的移動(dòng)方向以及后面的內(nèi)容是否移動(dòng)。當(dāng)I/D=1時(shí),光標(biāo)從左向右
7、移動(dòng);I/D=0時(shí),光標(biāo)從右向左移動(dòng)。當(dāng)S=1時(shí),內(nèi)容移動(dòng),S=0時(shí),內(nèi)容不移動(dòng)。4顯示開關(guān)控制命令格式:RSR/WD7D6D5D4D3D2D1D00000001DCB功能:控制顯示的開關(guān),當(dāng)D=1時(shí)顯示,D=0時(shí)不顯示。 控制光標(biāo)開關(guān),當(dāng)C=1時(shí)光標(biāo)顯示,C=0時(shí)光標(biāo)不顯示。 控制字符是否閃爍,當(dāng)B=1時(shí)字符閃爍,B=0時(shí)字符不閃爍。5光標(biāo)移位置命令格式:RSR/WD7D6D5D4D3D2D1D0000001S/CR/L*功能:移動(dòng)光標(biāo)或整個(gè)顯示字幕移位。當(dāng)S/C=1時(shí)整個(gè)顯示字幕移位,當(dāng)S/C=0時(shí)只光標(biāo)移位。當(dāng)R/L=1時(shí)光標(biāo)右移,R/L=0時(shí)光標(biāo)左移。6功能設(shè)置命令格式:RSR/WD7
8、D6D5D4D3D2D1D000001DLNF*功能:設(shè)置數(shù)據(jù)位數(shù),當(dāng)DL=1時(shí)數(shù)據(jù)位為8位,DL=0時(shí)數(shù)據(jù)位為4位。設(shè)置顯示行數(shù),當(dāng)N=1時(shí)雙行顯示,N=0時(shí)單行顯示。設(shè)置字形大小,當(dāng)F=1時(shí)510點(diǎn)陣,F(xiàn)=0時(shí)為57點(diǎn)陣。7設(shè)置字庫CGRAM地址命令格式:RSR/WD7D6D5D4D3D2D1D00001CGRAM的地址功能:設(shè)置用戶自定義CGRAM的地址,對用戶自定義CGRAM訪問時(shí),要先設(shè)定CGRAM的地址,地址范疇063。8顯示緩沖區(qū)DDRAM地址設(shè)置命令格式:RSR/WD7D6D5D4D3D2D1D0001DDRAM的地址功能:設(shè)置當(dāng)前顯示緩沖區(qū)DDRAM的地址,對DDRAM訪問時(shí)
9、,要先設(shè)定DDRAM的地址,地址范疇0127。9讀忙標(biāo)志及地址計(jì)數(shù)器AC命令格式:RSR/WD7D6D5D4D3D2D1D001BFAC的值功能:讀忙標(biāo)志及地址計(jì)數(shù)器AC,當(dāng)BF=1時(shí)則表示忙,這時(shí)不能接收命令和數(shù)據(jù);BF=0時(shí)表示不忙。低7位為讀出的AC的地址,值為0127。10寫DDRAM或CGRAM命令格式:RSR/WD7D6D5D4D3D2D1D010寫入的數(shù)據(jù)功能:向DDRAM或CGRAM當(dāng)前位置中寫入數(shù)據(jù)。對DDRAM或CGRAM寫入數(shù)據(jù)之前須設(shè)定DDRAM或CGRAM的地址。11讀DDRAM或CGRAM命令格式:RSR/WD7D6D5D4D3D2D1D011讀出的數(shù)據(jù)功能:從DD
10、RAM或CGRAM當(dāng)前位置中讀郵數(shù)據(jù)。當(dāng)DDRAM或CGRAM讀出數(shù)據(jù)時(shí),先須設(shè)定DDRAM或CGRAM的地址。四LCD顯示器的初始化LCD使用之前須對它進(jìn)行初始化,初始化可通過復(fù)位完成,也可在復(fù)位后完成,初始化過程如下:1清屏。2功能設(shè)置。3開/關(guān)顯示設(shè)置。4輸入方式設(shè)置。9、12 LCD顯示器與單片機(jī)的接口與應(yīng)用 下圖是LCD顯示器與8051單片機(jī)的接口圖,圖中RT-1602C的數(shù)據(jù)線與8051的P1口相連,RS與8051的P2.0相連,R/ W與8051的P2.1相連,E端與8051的P2.7相連。編程在LCD顯示器的第一行、第一列開始顯示“GOOD”,第二行、第6列開始顯示“BYE”。
11、匯編語言程序:RS BIT P2.0RW BIT P2.1E BIT P2.7ORG 00HAJMP STARTORG 50H;主程序START:MOV SP,#50HACALL INITMOV A,#10000000B ;寫入顯示緩沖區(qū)起始地址為第1行第1列。ACALL WC51RMOV A,“G” ;第1行第1列顯示字母“G”。ACALL WC51DDRMOV A,“O” ;第1行第2列顯示字母“O”。ACALL WC51DDRMOV A,“O” ;第1行第3列顯示字母“O”。ACALL WC51DDRMOV A,“D” ;第1行第4列顯示字母“D”。ACALL WC51DDRMOV A,
12、#11000101B ;寫入顯示緩沖區(qū)起始地址為第2行第6列。ACALL WC51RMOV A,“B” ;第2行第6列顯示字母“B”。ACALL WC51DDRMOV A,“Y” ;第2行第7列顯示字母“Y”。ACALL WC51DDRMOV A,“E” ;第2行第8列顯示字母“E”。ACALL WC51DDRLOOP:AJMP LOOP;初始化子程序INIT:MOV A,#00000001H ;清屏ACALL WC51RMOV A,#00111000B ;使用8位數(shù)據(jù),顯示兩行,使用5*7的字型。LCALL WC51RMOV A,#00001110B ;顯示器開,光標(biāo)開,字符不閃爍。LCAL
13、L WC51RMOV A,#00000110B ;字符不動(dòng),光標(biāo)自動(dòng)右移一格。LCALL WC51RRET;檢查忙子程序F_BUSY:PUSH ACC ;保護(hù)現(xiàn)場PUSH DPHPUSH DPLPUSH PSWWAIT:CLR RSSETB RWCLR ESETB EMOV A,P1CLR EJB ACC.7,WAIT ;忙,等待POP PSW ;不忙,恢復(fù)現(xiàn)場POP DPLPOP DPHPOP ACCACALL DELAYRET;寫入命令子程序。WC51R:ACALL F_BUSYCLR ECLR RSCLR RWSETB EMOV P1,ACCCLR EACALL DELAYRET;寫入數(shù)
14、據(jù)子程序。WC51DDR:ACALL F_BUSYCLR ESETB RSCLR RWSETB EMOV P1,ACCCLR EACALL DELAYRET;延時(shí)子程序。DELAY:MOV R6,#5D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RETENDC語言編程:#include #define uchar unsigned charsbit RS=P20;sbit RW=P21;sbit E=P27;void delay(void);void init(void);void wc5r(uchar i);void wc51ddr(uchar i);void fbusy
15、(void);/主函數(shù)void main()SP=0 x50;init();wc51r(0 x80); /寫入顯示緩沖區(qū)起始地址為第1行第1列wc51ddr(0 x44); /第1行第1列顯示字母“G”wc51ddr(0 x4f); /第1行第2列顯示字母“O”wc51ddr(0 x4f); /第1行第3列顯示字母“O”wc51ddr(0 x47); /第1行第4列顯示字母“D”wc51r(0 xc5); /寫入顯示緩沖區(qū)起始地址為第2行第6列wc51ddr(0 x42); /第2行第6列顯示字母“B”wc51ddr(0 x59); /第2行第7列顯示字母“Y”wc51ddr(0 x45);
16、/第2行第8列顯示字母“E”while(1);/初始化函數(shù)void init()wc51r(0 x01); /清屏wc51r(0 x38); /使用8位數(shù)據(jù),顯示兩行,使用5*7的字型wc51r(0 x0e); /顯示器開,光標(biāo)開,字符不閃爍wc51r(0 x06); /字符不動(dòng),光標(biāo)自動(dòng)右移一格/檢查忙函數(shù)void fbusy()RS=0;RW=1;E=1;E=0;while (P1&0 x80) E=0; E=1; /忙,等待delay();/寫命令函數(shù)void wc51r(uchar j)fbusy();E=0;RS=0;RW=0;E=1;P1=j;E=0;delay();/寫數(shù)據(jù)函數(shù)v
17、oid wc51ddr(uchar j)fbusy();E=0;RS=1;RW=0;E=1;P1=j;E=0;delay();/延時(shí)函數(shù)void delay()uchar y;for (y=0;y0 xff;y+);9.2 MCS-51單片機(jī)與I2C總線芯片接口9.2.1 I2C總線簡介一I2C總線的主要特點(diǎn)I2C總線是由PHILIPS公司開發(fā)一種簡單、雙向二線制同步串行總線。它只需要兩根線即在連接于總線上的器件之間傳送信息。這種總線的主要特點(diǎn)有:1總線只有兩根線,即串行時(shí)鐘線(SCL)和串行數(shù)據(jù)線(SDA),這在設(shè)計(jì)中大大減少了硬件接口。2每個(gè)連接到總線上的都有一個(gè)用于識別的器件地址,器件地
18、址由芯片內(nèi)部硬件電路和外部地址引腳同時(shí)決定,避免了片選線的連接方法,并建立簡單的主從關(guān)系,每個(gè)器件既可以作為發(fā)送器,又可以作為接收器。3同步時(shí)鐘允許器件以不同的波特率進(jìn)行通信。4同步時(shí)鐘可以作為停止或重新啟動(dòng)串行口發(fā)送的握手信號。5串行的數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá)400kbit/s,高速模式下可達(dá)3.4Mbit/s。6連接到同一總線的集成電路數(shù)只受400pF的最大總線電容的限制。二I2C總線的基本結(jié)構(gòu)三I2C總線信息傳送當(dāng)I2C總線沒有進(jìn)行信息傳送時(shí),數(shù)據(jù)線(SDA)和時(shí)鐘線(SCL)都為高電平時(shí)。當(dāng)主控制器向某個(gè)器件傳送信息時(shí),首先應(yīng)向總線送開始信號,然
19、后才能傳送信息,當(dāng)信息傳送結(jié)束時(shí)應(yīng)送結(jié)束信號,開始信號和結(jié)束信號規(guī)定如下:開始信號:SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。結(jié)束信號:SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。開始信號和結(jié)束信號之間傳送的是信息,信息的字節(jié)數(shù)沒有限制,但每個(gè)字節(jié)必須為8位,高位在前,低位在后。數(shù)據(jù)線SDA上每一位信息狀態(tài)的改變只能發(fā)生在時(shí)鐘線SCL為低電平的期間,因?yàn)镾CL高電平的期間SDA狀態(tài)的改變已經(jīng)被用來表示開始信號和結(jié)束信號。每個(gè)字節(jié)后面必須接收一個(gè)應(yīng)答信號(ACK),ACK是從控制器在接收到8位數(shù)據(jù)后向主控制器發(fā)出的特定的低電平脈沖,用以表示已收到數(shù)據(jù)。主控制器接
20、收到應(yīng)答信號(ACK)后,可根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號的判斷。若未收到ACK,則判斷為從控制器出現(xiàn)故障。具體情況如圖所示:SDASCL開始信號12789應(yīng)答位12891應(yīng)答位結(jié)束信號主控制器每次傳送的信息的第一個(gè)字節(jié)必須是器件地址碼,第二個(gè)字節(jié)為器件單元地址,用于實(shí)現(xiàn)選擇所操作的器件的內(nèi)部單元,從第三個(gè)字節(jié)開始為傳送的數(shù)據(jù)。其中器件地址碼格式如下:D7D6D5D4D3D2D1D0器件類型碼片選R/W四I2C總線讀、寫操作1當(dāng)前地址讀該操作將從所選器件當(dāng)前地址讀,讀的字節(jié)數(shù)不指定,格式如下:S控制碼(R/W=1)A數(shù)據(jù)1A數(shù)據(jù)2AP2指定單元讀該操作將從所選器件指定地址讀,讀的字節(jié)數(shù)不指定
21、,格式如下:S控制碼(R/W=0)A器件單元地址AS控制碼(R/W=1)A數(shù)據(jù)1A數(shù)據(jù)2AP3指定單元寫該操作將從所選器件指定地址寫,寫的字節(jié)數(shù)不指定,格式如下:S控制碼(R/W=0)A器件單元地址A數(shù)據(jù)1A數(shù)據(jù)2AP其中:S表示開始信號,A表示應(yīng)答信號,P表示結(jié)束信號。 9.2.2 I2C總線EEPROM芯片與單片機(jī)接口一串行EEPROM電路CAT24WCXX系列概述 CAT24WCXX系列是美國CATALYST公司出品的,包含1-256K位,支持I2C總線數(shù)據(jù)傳送協(xié)議的串行CMOS EEPROM芯片,可用電擦除,可編程自定義寫周期,自動(dòng)擦除時(shí)間不超過10ms,典型時(shí)間為5ms。CAT24W
22、CXX系列包含CAT24WC01020408163264128256共8種芯片,容量分別為1、2、4、8、16、32、64、128、256KB。串行EEPROM一般具有兩種寫入方式,一種是字節(jié)寫入方式,還有另一種頁寫入方式。允許在一個(gè)寫周期內(nèi)同時(shí)對1個(gè)字節(jié)到一頁的若干字節(jié)的編程寫入,一頁的大小取決于芯片內(nèi)頁寄存器的大小。其中,CAT24WC01具有8字節(jié)數(shù)據(jù)的頁面寫能力,CAT24WC02040816具有16字節(jié)數(shù)據(jù)的頁面寫能力,CAT24WC3264具有32字節(jié)數(shù)據(jù)的頁面寫能力,CAT24WC128256具有64字節(jié)數(shù)據(jù)的頁面寫能力。 二CAT24WCXX的引腳CAT24WC01/02/04
23、/08/16/32/64、CAT24WC128、CAT24WC256管腳排列圖分別為如圖(1)、(2)、(3)所示: 其中:SCL:串行時(shí)鐘線。這是一個(gè)輸入管腳,用于形成器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘。 SDA:串行數(shù)據(jù)/地址線。它是一個(gè)雙向傳輸線,用于傳送地址和所有數(shù)據(jù)的發(fā)送或接收。它是一個(gè)漏極開路端,因此要求接一個(gè)上拉電阻到Vcc端(速率為100KHz時(shí)電阻為10K,400KHz時(shí)為1K)。對于一般的數(shù)據(jù)傳輸,僅在SCL為低電平期間SDA才允許變化。SCL為高電平期間,留給開始信號(START)和停止信號(STOP)。A0、A1、A2:器件地址輸入端。這些輸入端用于多個(gè)器件級聯(lián)時(shí)設(shè)置器件地址
24、,當(dāng)這些腳懸空時(shí)默認(rèn)值為0(CAT24WC01除外)。WP:寫保護(hù)。如果WP管腳連接到VCC,所有的內(nèi)容都被寫保護(hù)(只能讀)。當(dāng)WP管腳連接到VSS或懸空,允許對器件進(jìn)行正常的讀/寫操作。VCC:電源線。VSS:地線。 三CAT24WCXX的器件地址型號控制碼片選讀寫總線訪問的器件CAT24WC011010A2 A1 A01/0最多8個(gè)CAT24WC021010A2 A1 A01/0最多8個(gè)CAT24WC041010A2 A1 a81/0最多4個(gè)CAT24WC081010A2 a9 a81/0最多2個(gè)CAT24WC161010a10 a9 a81/0最多1個(gè)CAT24WC321010A2 A1
25、 A01/0最多8個(gè)CAT24WC641010A2 A1 A01/0最多8個(gè)CAT24WC1281010X X X1/0最多1個(gè)CAT24WC25610100 A1 A01/0最多4個(gè)四CAT24WCXX的寫操作1字節(jié)寫結(jié)束應(yīng)答信號數(shù)據(jù)數(shù)據(jù)器件內(nèi)單元地址應(yīng)答信號應(yīng)答信號讀寫位器件地址開始SDA線信號2頁寫應(yīng)答信號數(shù)據(jù)1器件內(nèi)單元地址應(yīng)答信號應(yīng)答信號讀寫位器件地址寫開始SDA線信號數(shù)據(jù)n應(yīng)答信號結(jié)束3應(yīng)答查詢 可以利用內(nèi)部寫周期時(shí)禁止數(shù)據(jù)輸入這一特性。一旦主器件發(fā)送停止位指示主器件操作結(jié)束時(shí),CAT24WCXX啟動(dòng)內(nèi)部寫周期,應(yīng)答查詢立即啟動(dòng),包括發(fā)送一個(gè)起始信號和進(jìn)行寫操作的從器件地址。 4寫
26、保護(hù) 寫保護(hù)操作特性可使用戶避免由于不當(dāng)操作而造成對存儲區(qū)域內(nèi)部數(shù)據(jù)的改寫,當(dāng)WP管腳接高電平時(shí),整個(gè)寄存器區(qū)全部被保護(hù)起來而變?yōu)橹豢勺x取。 五CAT24WCXX的讀操作1當(dāng)前地址讀SDA線信號開始讀寫位應(yīng)答信號無應(yīng)答信號結(jié)束數(shù)據(jù)器件地址2隨機(jī)地址讀讀寫位器件地址讀器件內(nèi)單元地址應(yīng)答信號應(yīng)答信號讀寫位器件地址寫開始SDA線信號應(yīng)答信號結(jié)束器件內(nèi)單元地址開始應(yīng)答信號3順序地址讀應(yīng)答信號數(shù)據(jù)1應(yīng)答信號讀寫位器件地址讀SDA線信號數(shù)據(jù)2應(yīng)答信號結(jié)束數(shù)據(jù)n無應(yīng)答信號六CAT24WCXX與單片機(jī)的接口與編程下圖是8051單片機(jī)與串行EEPROM芯片CAT24WCXX的接口電路。圖中用的EEPROM芯片為
27、CAT24WC04,其它芯片與單片機(jī)的連接與它相同。8051的P1.0、P1.1作為I2C總線與CAT24WC04的SDA和SCL相連,連接時(shí)注意I2C總線須通過電阻接電源。P1.3與WP相連。CAT24WC04的地址線A2、A1、A0直接接地。則片選編碼為000,CAT24WC04的器件地址碼的高7位為1010000。8051P1.0P1.1P1.2VCCSDASCLWPVSSA0A1A2CAT24W04VCC20K20K編程(略) 9.3 MCS-51單片機(jī)與時(shí)鐘日歷芯片接口9.3.1 并行日歷時(shí)鐘芯片DS12887與單片機(jī)接口一DS12887主要功能(1)內(nèi)含一個(gè)鋰電池,斷電后運(yùn)行十年以
28、上不丟失數(shù)據(jù)。(2)計(jì)秒,分,時(shí),天,星期,日,月,年,并有閏年補(bǔ)償功能。(3)二進(jìn)制數(shù)碼或BCD碼表示時(shí)間,日歷和定鬧。(4)12小時(shí)或24小時(shí)制,12小時(shí)時(shí)鐘模式帶有PM和AM指示,有夏令時(shí)功能。(5)Motorola和Intel總線時(shí)序選擇。(6)有128個(gè)字節(jié)RAM單元與軟件接口,其中:14個(gè)字節(jié)作為時(shí)鐘寄存器和控制寄存器,114字節(jié)為通用RAM,所有RAM單元數(shù)據(jù)都具有掉電保護(hù)功能。(7)可編程方波信號輸出。(8)中斷信號輸出(IRQ)和總線兼容,定鬧中斷、周期性中斷、時(shí)鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測試。二DS12887基本原理及引腳說明 DS12887內(nèi)部由振蕩
29、電路,分頻電路,周期中斷/方波選擇電路,14字節(jié)時(shí)鐘寄存器和控制寄存器,114字節(jié)用戶非易失RAM,十進(jìn)制/二進(jìn)制累加器,總線接口電路,電源開關(guān)寫保護(hù)單元和內(nèi)部鋰電池等部分組成。DS12887引腳如圖所示:Vcc:直流電源+5V電壓。當(dāng)Vcc電壓在正常范圍內(nèi)時(shí),數(shù)據(jù)可讀寫;當(dāng)Vcc低于4.25V,讀寫被禁止,計(jì)時(shí)功能仍繼續(xù);當(dāng)Vcc下降到3V以下時(shí),RAM和計(jì)時(shí)器供電被切換到內(nèi)部鋰電池。MOT(模式選擇):MOT引腳接到Vcc時(shí),選擇MOTOROLA時(shí)序,當(dāng)接到GND時(shí),選擇Intel時(shí)序。SQW(方波輸出信號):SQW引腳能從實(shí)時(shí)鐘內(nèi)部15級分頻器的13個(gè)抽頭中選擇一個(gè)作為輸出信號,其輸出頻
30、率可通過對寄存器A編程改變。AD0-AD7(雙向地址/數(shù)據(jù)復(fù)用線):總線接口,可與Motorola微機(jī)系列和Intel微機(jī)系列接口。ALE(地址鎖存信號):在ALE的下降沿把AD0AD7輸入的地址鎖存入DS12887。(數(shù)據(jù)讀信號):低電平有效。 (數(shù)據(jù)寫信號):低電平有效。 (片選信號):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。 (中斷請求信號):低電平有效,可作微處理的中斷輸入。沒有中斷的條件滿足時(shí), 處于高阻態(tài)。線是漏極開路輸入,要求外接上接電阻。 (復(fù)位信號):當(dāng)該腳保持低電平時(shí)間大于200ms,保證DS12887有效復(fù)位。 三內(nèi)部寄存器 DS12887的內(nèi)部有128個(gè)
31、存儲單元,其中:10字節(jié)的存放實(shí)時(shí)時(shí)鐘時(shí)間、日歷和定鬧的RAM;4個(gè)字節(jié)的控制和狀態(tài)特殊寄存器;114字節(jié)的帶掉電保護(hù)的用戶RAM。幾乎所有的128個(gè)字節(jié)都可直接讀寫。1時(shí)間、日歷和定鬧單元 時(shí)間、日歷和定時(shí)鬧鐘通過寫相應(yīng)的存儲單元字節(jié)設(shè)置或初始化,當(dāng)前時(shí)間和日歷信息通過讀相應(yīng)的存儲單元字節(jié)來獲取,其字節(jié)內(nèi)容可以是二進(jìn)制或BCD形式。時(shí)間可選擇12小時(shí)制或24小時(shí)制,當(dāng)選擇12小時(shí)制時(shí),小時(shí)字節(jié)的高位邏輯“1”代表PM,邏輯“0”代表AM。時(shí)間、日歷和定鬧字節(jié)是雙緩沖的,總是可訪問的。每秒鐘這10個(gè)字節(jié)走時(shí)1秒,檢查一次定時(shí)鬧鐘條件,如在更新時(shí),讀時(shí)間和日歷可能引起錯(cuò)誤。地址功能數(shù)范圍二進(jìn)制格
32、式BCD碼格式0秒059003BH0059H1秒鬧鐘059003BH0059H2分059003BH0059H3分鬧鐘059003BH0059H4小時(shí)(12時(shí)制)112010CH AM 818CH PM010CH AM 818CH PM小時(shí)(24時(shí)制)0230017H0023H5時(shí)鬧鐘(12時(shí)制)112010CH AM 818CH PM010CH AM 818CH PM時(shí)鬧鐘(24時(shí)制)0230017H0023H6星期(星期天=1)170007H0007H7日131011FH0131H8月112010CH0112H9年0990063H0099H2寄存器A寄存器0AH的格式如下:D7D6D5D4D
33、3D2D1D0UIPDV2DV1DV0RS3RS2RS1RS0UIP:更新(UIP)位用來標(biāo)志芯片是否即將進(jìn)行更新。當(dāng)UIP位為1時(shí),更新即將開始,這時(shí)不準(zhǔn)對時(shí)鐘、日歷和鬧鐘信息寄存器進(jìn)行讀/寫操作;當(dāng)它為0時(shí),表示在至少44s內(nèi)芯片不會更新,此時(shí),時(shí)鐘、日歷和鬧鐘信息可以通過讀寫相應(yīng)的字節(jié)獲得和設(shè)置。UIP位為只讀位,并且不受復(fù)位信號(RESET)的影響。通過把寄存器B中的SET位設(shè)置為1,可以禁止更新并將UIP位清0。DV0,DV1,DV2:這3位是用來開關(guān)晶體振蕩器和復(fù)位分頻器。當(dāng)DV0DV1DV2010時(shí),晶體振蕩器開啟并且保持時(shí)鐘運(yùn)行;當(dāng)DV0DV1DV211X時(shí),晶體振蕩器開啟,但
34、分頻器保持復(fù)位狀態(tài)。 RS3,RS2,RS1,RS0:中斷周期和SQW輸出頻率選擇位。4位編碼與中斷周期和SQW輸出頻率的對應(yīng)關(guān)系見下表:RS3 RS2 RS1 RS0中斷周期SQW輸出頻率0000-00013.90625ms256Hz00107.8125ms128 Hz0011122.070s8192 Hz0100244.141s4069 Hz0101488.281s2048 Hz0110976.562s1024 Hz01111.953125ms512 Hz10003.90625 ms256 Hz10017.8125 ms128 Hz101015.625 ms64 Hz101131.25 m
35、s32 Hz110062.5 ms16 Hz1101125 ms8 Hz1110250 ms4 Hz1111500 ms2 Hz3寄存器B寄存器0BH的格式如下:D7D6D5D4D3D2D1D0SETPIEAIEUIESQWEDM24/12DSESET:當(dāng)SET0,芯片更新正常進(jìn)行;當(dāng)SET1,芯片更新被禁止。SET位可讀寫,并不會受復(fù)位信號的影響。PIE:當(dāng)PIE0,禁止周期中斷輸出到 IRQ;當(dāng)PIE1,允許周期中斷輸出到 IRQ.AIE:當(dāng)AIE0,禁止鬧鐘中斷輸出到IRQ ;當(dāng)AIE1,允許鬧鐘中斷輸出到 IRQ.UIE:當(dāng)UIE0,禁止更新結(jié)束中斷輸出到 IRQ;當(dāng)UIE1,允許更新
36、結(jié)束中斷輸出到IRQ 。此位在復(fù)位或設(shè)置SET為高時(shí)清0. SQWE:當(dāng)SQWE0,SQW腳為低;當(dāng)SQWE1,SQW輸出設(shè)定頻率的方波。DM:DM0,BCD;DM1,二進(jìn)制,此位不受復(fù)位信號影響。24/12:此位為1,24時(shí)制;為0,12小時(shí)制DSE:夏令時(shí)允許標(biāo)志。在四月的第一個(gè)星期日的15959AM,時(shí)鐘調(diào)到30000AM;在十月的最后一個(gè)星期日的15959AM,時(shí)鐘調(diào)到10000AM。4寄存器C寄存器0CH的格式如下:D7D6D5D4D3D2D1D0IRQFPFAFUF0000IRQF:當(dāng)有以下情況中的一種或幾種發(fā)生時(shí),中斷請求標(biāo)志位(IRQF)置1;PFPIE1或AFAIE1或UFU
37、IE1,既IRQFPFPIE+AFAIE+UFUIE,IRQF旦置1,IRQ腳輸出低電平,送出中斷請求。所有標(biāo)志位在讀寄存器C或復(fù)位后清0。PF:周期中斷標(biāo)志。AF:鬧鐘中斷標(biāo)志。UF:更新中斷標(biāo)志。第0位到第3位無用,不能寫入,只能讀出,且讀出的值恒為0。 5寄存器D寄存器0DH的格式如下:D7D6D5D4D3D2D1D0VRT0000000VRT:當(dāng)VRT0時(shí)表示內(nèi)置電池能量耗盡,此時(shí)RAM中的數(shù)據(jù)的正確性就不能保證了。第0位到第6位無用,只能讀出,且讀出的值恒為0。6用戶RAM在DS12887中,114字節(jié)帶掉電保護(hù)RAM不專用一任何特殊功能,它們可被處理器程序用作非易失內(nèi)存,在更新周期
38、也可訪問,它的地址范圍為0DH7FH。如果片選地址CS =0F000H,則DS12887內(nèi)部128個(gè)存儲單元的地址為0F000H0F07FH。 四DS12887與單片機(jī)的接口 下圖是8051與DS12887的接口電路,DS12887的片選信號接P2.7,則DS12887的片內(nèi)128個(gè)單元的地址可為7F00H7F7FH。 DS12887的處理過程為:1寄存器B的SET位置1,芯片停止工作。2時(shí)間、日歷和定鬧單元置初值。3讀寄存器C,以消除已有的中斷標(biāo)志。4讀寄存器D,使片內(nèi)寄存器和RAM數(shù)據(jù)有效。5寄存器B的SET位清0,啟動(dòng)DS12887開始工作。DS12887的驅(qū)動(dòng)程序(略)9.3.2 串行
39、日歷時(shí)鐘芯片與單片機(jī)接口一DS1302的主要性能指標(biāo)(1)DS1302實(shí)時(shí)時(shí)鐘具有能計(jì)算2100年之前的秒、分、時(shí)、日、日期、星期、月、年的能力,還有閏年調(diào)整的能力。(2)內(nèi)部含有31個(gè)字節(jié)靜態(tài)RAM,可提供用戶訪問。(3)采用串行數(shù)據(jù)傳送方式,使得管腳數(shù)量最少,簡單3 線接口。(4)工作電壓范圍寬:2.05.5V。(5)工作電流:2.0V時(shí),小于300nA。(6)時(shí)鐘或RAM數(shù)據(jù)的讀/寫有兩種傳送方式:單字節(jié)傳送和多字節(jié)傳送方式。(7)采用8腳DIP封裝或SOIC封裝。(8)與TTL兼容,Vcc=5V。(9)可選工業(yè)級溫度范圍:-40C+85C。(10)具有涓流充電能力。(11)采用主電源和
40、備份電源雙電源供應(yīng)。(12)備份電源可由電池或大容量電容實(shí)現(xiàn)。二引腳功能DS1302的引腳如圖所示其中:X1、X2:32.768KHz晶振接入引腳。GND:地。 :復(fù)位引腳,低電平有效。I/O:數(shù)據(jù)輸入/輸出引腳,具有三態(tài)功能。SCLK:串行時(shí)鐘輸入引腳。Vcc1:工作電源引腳。Vcc2:備用電源引腳。三DS1302的寄存器及片內(nèi)RAMDS1302有一個(gè)控制寄存器、12個(gè)日歷、時(shí)鐘寄存器和31個(gè)RAM。1控制寄存器 控制寄存器用于存放DS1302的控制命令字,DS1302的RST引腳回到高電平后寫入的第一個(gè)字就為控制命令。它用于對DS1302讀寫過程進(jìn)行控制,它的格式如下: D7D6D5D4D
41、3D2D1D01RAM/CKA4A3A2A1A0RD/W其中:D7:固定為1D6:RAM/CK位,片內(nèi)RAM或日歷、時(shí)鐘寄存器選擇位。 D5D1:地址位,用于選擇進(jìn)行讀寫的日歷、時(shí)鐘寄存器或片內(nèi)RAM。對日歷、時(shí)鐘寄存器或片內(nèi)RAM的選擇見表。寄存器名稱D7D6D5D4D3D2D1D01RAM/CKA4A3A2A1A0R/W秒寄存器10000000或1分寄存器10000010或1小時(shí)寄存器10000100或1日寄存器10000110或1月寄存器10001000或1星期寄存器10001010或1年寄存器10001100或1寫保護(hù)寄存器10001110或1慢充電寄存器10010000或1時(shí)鐘突發(fā)模
42、式10111110或1RAM011000000或1110或1RAM3011111100或1RAM突發(fā)模式11111110或12日歷、時(shí)鐘寄存器DS1302共有12個(gè)寄存器,其中有7個(gè)與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)為BCD碼形式。日歷、時(shí)鐘寄存器的格式如表。寄存器名稱取值范圍D7D6D5D4D3D2D1D0秒寄存器0059CH秒的十位秒的個(gè)位分寄存器00590分的十位分的個(gè)位小時(shí)寄存器0112或002312/240A/PHR小時(shí)的個(gè)位日寄存器013100日的十位日的個(gè)位月寄存器01120001或0月的個(gè)位星期寄存器01070000星期幾年寄存器0199年的十位年的個(gè)位寫保護(hù)寄存器WP0000000
43、慢充電寄存器TCSTCSTCSTCSDSDSRSRS時(shí)鐘突發(fā)寄存器說明:(1)數(shù)據(jù)都以BCD碼形式。(2)小時(shí)寄存器的D7位為12小時(shí)制/24小時(shí)制的選擇位,當(dāng)為1時(shí)選12小時(shí)制,當(dāng)為0時(shí)選24小時(shí)制。當(dāng)12小時(shí)制時(shí),D5位為1是上午,D5位為0是下午,D4為小時(shí)的十位。當(dāng)24小時(shí)制時(shí),D5、D4位為小時(shí)的十位。(3)秒寄存器中的CH位為時(shí)鐘暫停位,當(dāng)為1時(shí)鐘暫停,為0時(shí)鐘開始啟動(dòng)。(4)寫保護(hù)寄存器中的WP為寫保護(hù)位,當(dāng)WP=1,寫保護(hù),當(dāng)WP=0未寫保護(hù),當(dāng)對日歷、時(shí)鐘寄存器或片內(nèi)RAM進(jìn)行寫時(shí)WP應(yīng)清零,當(dāng)對日歷、時(shí)鐘寄存器或片內(nèi)RAM進(jìn)行讀時(shí)WP一般置1。(5)慢充電寄存器的TCS位為
44、控制慢充電的選擇,當(dāng)它為1010才能使慢充電工作。DS為二極管選擇位。DS為01選擇一個(gè)二極管,DS為10選擇二個(gè)二極管,DS為11或00充電器被禁止,與TCS無關(guān)。RS用于選擇連接在VCC2與VCC1之間的電阻,RS為00,充電器被禁止,與TCS無關(guān),電阻選擇情況見表.RS位電阻器阻值00無無01R12K10R24K11R38K3.片內(nèi)RAMDS1302片內(nèi)有31個(gè)RAM單元,對片內(nèi)RAM的操作有兩種方式:單字節(jié)方式和多字節(jié)方式。當(dāng)控制命令字為C0HFDH時(shí)為單字節(jié)讀寫方式,命令字中的D5D1用于選擇對應(yīng)的RAM單元,其中奇數(shù)為讀操作,偶數(shù)為寫操作。當(dāng)控制命令字為FEH、FFH時(shí)為多字節(jié)操作
45、(表9.5中的RAM突發(fā)模式),多字節(jié)操作可一次把所有的RAM單元內(nèi)容進(jìn)行讀寫。FEH為寫操作,F(xiàn)FH為讀操作。 DS1302通過RST引腳驅(qū)動(dòng)輸入輸出過程,當(dāng)置RST高電平啟動(dòng)輸入輸出過程,在SCLK時(shí)鐘的控制下,首先把控制命令字寫入DS1302的控制寄存器,其次根據(jù)寫入的控制命令字,依次讀寫內(nèi)部寄存器或片內(nèi)RAM單元的數(shù)據(jù),對于日歷、時(shí)鐘寄存器,根據(jù)控制命令字,一次可以讀寫一個(gè)日歷、時(shí)鐘寄存器,也可以一次讀寫8個(gè)字節(jié),對所有的日歷、時(shí)鐘寄存器(表9.5中的時(shí)鐘突發(fā)模式),寫的控制命令字為0BEH,讀的控制命令字為0BFH;對于片內(nèi)RAM單元,根據(jù)控制命令字,一次可讀寫一個(gè)字節(jié),一次也可讀寫
46、31個(gè)字節(jié)。當(dāng)數(shù)據(jù)讀寫完后,RST變?yōu)榈碗娖浇Y(jié)束輸入輸出過程。無論是命令字還是數(shù)據(jù),一個(gè)字節(jié)傳送時(shí)都是低位在前,高位在后,每一位的讀寫發(fā)生在時(shí)鐘的上升沿。 4DS1302的輸入輸出過程四、DS1302與單片機(jī)的接口 DS1302與單片機(jī)的連接僅需要3條線:時(shí)鐘線SCLK、數(shù)據(jù)線I/O和復(fù)位線 RST。連接圖如圖。時(shí)鐘線SCLK與P1.0相連,數(shù)據(jù)線I/O與P1.1相連,復(fù)位線 RST與P1.2相連。 VCC2X1X2GNDVCC1SCLKI/ORST+5V8051P1.0P1.1P1.2+5V圖中DS1302的驅(qū)動(dòng)程序。(略)9.4 MCS-51單片機(jī)與數(shù)字溫度傳感器的接口9.4.1 DS18
47、B20簡介9.4.2 DS18B20的主要特性(1)適應(yīng)電壓范圍寬:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電。(2)在使用中不需要任何外圍元件。(3)獨(dú)特的單線接口方式:DS18B20與微處理器連接時(shí)僅需要一條信號線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通信。(4)測溫范圍:-55+125,在-10+85時(shí)精度為0.5。(5)編程可實(shí)現(xiàn)分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測溫。(6)在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字。(7)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B2
48、0可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫;(8)用戶可自設(shè)定非易失性的報(bào)警上下限值。(9)負(fù)壓特性:電源極性接反時(shí),溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作。9.4.3 DS18B20的外部結(jié)構(gòu) 1 2 3 DALLAS DS18B20 GND DQ VDD 1 2 3 NC NC NC NC NC VDD DQ GND (a) TO-92封裝 (b) SOIC封裝 (1) DQ:數(shù)字信號輸入/輸出端。(2) GND:電源地。(3) VDD:外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。9.4.4 DS18B20的內(nèi)部結(jié)構(gòu) DS18B20內(nèi)部主要由4部分組成:64位光刻ROM、溫度傳感器、非
49、易失性溫度報(bào)警觸發(fā)器TH和TL、配置寄存器等。其內(nèi)部結(jié)構(gòu)圖如圖所示。1光刻ROM存儲器64位序列號的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗(yàn)碼。 2高速暫存存儲器字節(jié)序號功 能0溫度轉(zhuǎn)換后的低字節(jié)1溫度轉(zhuǎn)換后的高字節(jié)2高溫度觸發(fā)器TH3低溫度觸發(fā)器TL4配置寄存器5保留6保留7保留8CRC校驗(yàn)寄存器D7D6D5D4D3D2D1D0LS Byte232221202-12-22-32-4D7D6D5D4D3D2D1D0MS ByteSSSSS262524用符號擴(kuò)展的二進(jìn)制補(bǔ)碼數(shù)表示,S為符號位。上表是12位轉(zhuǎn)化后得到的
50、12位數(shù)據(jù),高字節(jié)的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘以0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘以0.0625即可得到實(shí)際溫度。 溫度/16位二進(jìn)制編碼十六進(jìn)制表示1250000 0111 1101 000007D0H850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111
51、1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90HDS18B20部分溫度數(shù)據(jù)表配置寄存器用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,該字節(jié)各位的意義如下:D7D6D5D4D3D2D1D0TMR1R011111溫度值分辨率設(shè)置表與轉(zhuǎn)換時(shí)間R1R0分辨率/位溫度最大轉(zhuǎn)換時(shí)間/ms00993.750110187.51011275.001112750.009.4.5 DS18B20的溫度轉(zhuǎn)換過程主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每
52、一次讀寫之前都要對DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。 ROM指令表指 令約定代碼功 能讀ROM33H讀DS18B20溫度傳感器ROM中的編碼(即64位地址)匹配 ROM55H發(fā)出此命令之后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上與該編碼相對應(yīng)的 DS18B20 使之作出響應(yīng),為下一步對該 DS18B20 的讀寫作準(zhǔn)備搜索 ROM0F0H用于確定掛接在同一總線上 DS18B20 的個(gè)數(shù)和識別 64 位 ROM 地址。為操作各器件做好準(zhǔn)備跳過 ROM0CCH忽略 64 位 ROM 地址,直接向 DS1820 發(fā)
53、溫度變換命令。適用于單片工作告警搜索命令0ECH執(zhí)行后只有溫度超過設(shè)定值上限或下限的片子才作出響應(yīng)RAM指令表指 令約定代碼功 能溫度變換44H啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時(shí)最長為750ms(9位為93.75ms)。結(jié)果存入內(nèi)部9字節(jié)RAM中讀暫存器0BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫暫存器4EH發(fā)出向內(nèi)部RAM的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48H將RAM中第3、4字節(jié)的內(nèi)容復(fù)制到EEPROM中重調(diào) EEPROM0B8H將EEPROM中的內(nèi)容恢復(fù)到RAM中的第3、4字節(jié)讀供電方式0B4H讀DS18B20的供電模式。寄生供電時(shí)DS1
54、8B20發(fā)送“0”,外接電源供電時(shí)DS18B20發(fā)送“1”9.4.6 DS18B20與單片機(jī)的接口進(jìn)行遠(yuǎn)距離測溫時(shí),無需本地電源;可以在沒有常規(guī)電源的條件下讀取ROM;電路更加簡潔,僅用一根I/O口來實(shí)現(xiàn)測溫。 單片寄生電源供電方式連接 改進(jìn)的單片寄生電源供電圖解決電流供應(yīng)不足的問題,適合于多點(diǎn)測溫應(yīng)用,缺點(diǎn)就是要多占用一根I/O口線進(jìn)行強(qiáng)上拉切換。 單片外部電源供電方式 外部供電方式的多點(diǎn)測溫電路圖 9.4.7 DS18B20使用中的注意事項(xiàng)(1)較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)格地保證讀
55、寫時(shí)序,否則將無法讀取測溫結(jié)果。對DS18B20操作最好采用匯編語言實(shí)現(xiàn)。 (2) 在DS1820的有關(guān)資料中均未提及單總線上所掛DS18B20數(shù)量的問題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20,在實(shí)際應(yīng)用中卻并非如此。當(dāng)單總線上所掛DS18B20超過8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。 (3)連接DS18B20的總線電纜是有長度限制的。普通信號電纜50m,雙絞線帶屏蔽電纜可達(dá)150m. (4) 在DS18B20測溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號,一旦某個(gè)DS18B20接觸不好或斷線,當(dāng)程
56、序讀該DS18B20時(shí),將沒有返回信號,程序進(jìn)入死循環(huán)。 9.5 MCS-51單片機(jī)與串行A/D、D/A的接口9.5.1 MCS-51單片機(jī)與串行A/D芯片MAX1241的接口1MAX1241的功能特點(diǎn)(1)+2.7+5.25 V單電源供電。(2)12位分辨率。(3)8腳DIP/SO封裝。(4)低功耗:Pmax=3mW(73 KSPS),Pmin=5W(待機(jī)工作方式)。(5)內(nèi)部提供采樣/保持電路。(6)兼容于SPI/QSPI/MICROWIRE 串行三線外設(shè)接口。(7)內(nèi)部提供轉(zhuǎn)換時(shí)鐘。MAX1241是MAXIM公司推出的一種單通道12位逐次逼近型串行A/D轉(zhuǎn)換器,具有低功耗、高精度、轉(zhuǎn)換速
57、度快、體積小、接口簡單等優(yōu)點(diǎn)。2MAX1241的外部特性:關(guān)斷控制輸入端,可實(shí)現(xiàn)MAX1241兩種工作模式的切換,接低電平,MAX1241工作于待機(jī)工作模式,輸入電流可減小至10A以下,處于節(jié)能模式;接高電平,MAX1241工作于正常工作模式,可實(shí)現(xiàn)D/A轉(zhuǎn)換。 REF:基準(zhǔn)電壓輸入端,范圍為0VDD。 GND:接地端。 DOUT:數(shù)據(jù)輸出端。 片選端,低電平有效。 SCLK:外部時(shí)鐘脈沖輸入端。 3MAX1241的工作過程(1)在 為高電平的條件下,每次使片選信號 由高電平變?yōu)榈碗娖絼t啟動(dòng)轉(zhuǎn)換,此時(shí)時(shí)鐘脈沖 SCLK必須為低電平。(2)A/D轉(zhuǎn)換啟動(dòng)后,內(nèi)部控制邏輯切換采樣/保持電路為保持狀
58、態(tài),并使輸出數(shù)據(jù)線DOUT變低,轉(zhuǎn)換結(jié)束時(shí)DOUT由低變高。在整個(gè)轉(zhuǎn)換期內(nèi),SCLK應(yīng)保持低電平。(3)一次轉(zhuǎn)換結(jié)束后,內(nèi)部控制邏輯將自動(dòng)把采樣/保持電路切換為捕捉狀態(tài)。在外部時(shí)鐘脈沖SCLK作用下讀出數(shù)據(jù),從時(shí)序圖可以看出每一位數(shù)據(jù)是在時(shí)鐘脈沖由高電平變低電平時(shí)送到數(shù)據(jù)輸出端DOUT上,并一直保持到時(shí)鐘脈沖下一次下降沿,因而每一位數(shù)據(jù)可以在時(shí)鐘脈沖上升沿讀出。在13個(gè)時(shí)鐘脈沖后,數(shù)據(jù)讀取結(jié)束,可將片選信號 置為高電平,DOUT端輸出高電平。只要使片選信號再次有效,就可以重新開始一輪新的A/D轉(zhuǎn)換和讀取過程。 (4)數(shù)據(jù)讀取完成后,如果仍然保持片選信號有效,則DOUT端始終輸出低電平。4MAX1241與單片機(jī)的接口MAX1241與8051單片機(jī)常見的接口電路如圖 匯編語言程序:;功能:本程序主要是讀出MAX1241芯片的A/D轉(zhuǎn)換值。A/D轉(zhuǎn)換值放在地址20H和21H兩單元中,高位在21H中,低位在20H中。MAX1241的DOUT數(shù)據(jù)輸出端、 CS片選控制端和SCLK時(shí)鐘輸入端分別由8051的P1.1、P1.2和P1.3控制,而MAX1241的SHDN由P1.0控制 SHDNEQU P1.0DOUTEQU P1.1CSEQU P1.2SCLKEQU P1.3 ORG 0000H MOV SP,#6
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度電力行業(yè)風(fēng)險(xiǎn)管理電力購銷合同范本3篇
- 2025年鐵路貨運(yùn)合同第三方監(jiān)管范本3篇
- 二零二五版美容院設(shè)備采購與維護(hù)服務(wù)合同4篇
- 2025年項(xiàng)目施工安全協(xié)議書完善施工現(xiàn)場安全管理體系3篇
- 二零二五版生活垃圾處理設(shè)施投資建設(shè)合作協(xié)議3篇
- 2025年項(xiàng)目部安全生產(chǎn)責(zé)任協(xié)議書執(zhí)行示范范本3篇
- 二零二五年度高效節(jié)能型10KV線路及變臺安裝施工合作協(xié)議3篇
- 2025年度農(nóng)業(yè)大棚租賃與智能控制系統(tǒng)安裝合同2篇
- 個(gè)人健身會員卡2024年度合同2篇
- 2025版鋁塑窗環(huán)保材料認(rèn)證與推廣合同4篇
- 人教版初中語文2022-2024年三年中考真題匯編-學(xué)生版-專題08 古詩詞名篇名句默寫
- 2024-2025學(xué)年人教版(2024)七年級(上)數(shù)學(xué)寒假作業(yè)(十二)
- 山西粵電能源有限公司招聘筆試沖刺題2025
- 醫(yī)療行業(yè)軟件系統(tǒng)應(yīng)急預(yù)案
- 使用錯(cuò)誤評估報(bào)告(可用性工程)模版
- 《精密板料矯平機(jī) 第2部分:技術(shù)規(guī)范》
- 2024光伏發(fā)電工程交流匯流箱技術(shù)規(guī)范
- 旅游活動(dòng)碳排放管理評價(jià)指標(biāo)體系構(gòu)建及實(shí)證研究
- 2022年全國職業(yè)院校技能大賽-電氣安裝與維修賽項(xiàng)規(guī)程
- 2024年黑龍江省政工師理論知識考試參考題庫(含答案)
- 四年級上冊脫式計(jì)算300題及答案
評論
0/150
提交評論