




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、題義分析及解決方案1.題義需求分析用star es598pci單板開(kāi)發(fā)機(jī)設(shè)計(jì)一款全自動(dòng)豆?jié){機(jī),豆?jié){機(jī)的工作原理如下:上電-水位檢測(cè)-水位合適開(kāi)始加熱-加熱到80°c開(kāi)始打漿(打15秒,停15秒,共4次)-繼續(xù)加熱一定時(shí)間(溢出到時(shí)暫時(shí)停止加熱)。打漿后繼續(xù)加熱,檢測(cè)到4次溢出完成。具體要求:(1) 加熱溫度可以不到80度,設(shè)為35度;(2) 水位合適由按鍵模擬;(3) 打漿過(guò)程由電機(jī)模擬(4) 溫度要求顯示由上述的需求可以分析如下:根據(jù)設(shè)計(jì)內(nèi)容要求可知:1)用star es598pci單板開(kāi)發(fā)機(jī)設(shè)計(jì)一個(gè)全自動(dòng)豆?jié){機(jī)。接口可以使用8255a或8279,考慮該設(shè)計(jì)要求實(shí)現(xiàn)的功能較多,
2、這里 我們選擇同時(shí)使用8255a和8279芯片,用于系統(tǒng)控制電路。其中8255芯片主要用于控制把直流電機(jī)的控制信號(hào)輸出到繼電器來(lái)控制電機(jī),接收水位測(cè)量的兩個(gè)按鍵信號(hào)。8279芯片用于控制溫度的測(cè)量,控制led數(shù)碼管的溫度顯示。2)水位合適檢測(cè)和水位溢出檢測(cè)由按鍵模擬,考慮到方便性,我們選擇二進(jìn)制開(kāi)關(guān),用1表示水位合適或溢出,0表示水位不合適或不溢出。3)加熱使用溫度傳感器ds18b20,ds18b20在本設(shè)計(jì)中主要是測(cè)量加熱的溫度并將接收的模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)輸出至8255a中。4)打漿過(guò)程由直流電機(jī)模擬,打漿時(shí),打15秒,停15秒,共四次,由軟件用匯編語(yǔ)言編程來(lái)實(shí)現(xiàn)。5)溫度的顯示用七段l
3、ed顯示器2.解決問(wèn)題方法及思路1) 硬件部分為了完成這個(gè)實(shí)驗(yàn),pc機(jī)和es-pci固然不可少,另外,為了能使各個(gè)功能模塊更好的實(shí)現(xiàn),我們選擇8255和8279作為我們的主控芯片。打漿功能由直流電機(jī)來(lái)實(shí)現(xiàn),溫度的測(cè)量由ds18b20來(lái)實(shí)現(xiàn),溫度的顯示由led來(lái)實(shí)現(xiàn),水位的合適與溢出由兩個(gè)二進(jìn)制開(kāi)關(guān)來(lái)實(shí)現(xiàn),直流電機(jī)的控制由繼電器來(lái)實(shí)現(xiàn)。我們用8279的b口連接led數(shù)碼管段碼,用于控制顯示那一段,c口連接led數(shù)碼管選擇腳。我們把8255的 pc0-pc3設(shè)置為輸入口,pc0連接ds18b20的tout,pa口連接二進(jìn)制開(kāi)關(guān), pc4-pc7設(shè)置為輸出口,pc4口連接繼電器(用于控制直流電機(jī)),
4、pc5連接ds18b20的tctrl,用于控制加熱和暫停加熱,到此,硬件設(shè)計(jì)基本完成。2) 軟件部分除了必需的硬件之外,合理的程序設(shè)計(jì)也是本實(shí)驗(yàn)的重中之重,為了完成本實(shí)驗(yàn)中的所有功能,需要5大程序段。、 溫度測(cè)量程序模塊。、 電機(jī)循環(huán)打漿程序模塊。、 溫度的顯示程序模塊(包括段選和位選)。、 加熱程序模塊。、 水位的檢測(cè)由二進(jìn)制開(kāi)關(guān)模擬,只需輸入一個(gè)信號(hào)即可(包括水位合適和水位溢出)。二、硬件設(shè)計(jì)1、 選擇芯片8255a1)芯片8255a在本設(shè)計(jì)中的作用8255在本實(shí)驗(yàn)作為控制芯片,把直流電機(jī)的控制信號(hào)輸出到繼電器來(lái)控制直流電機(jī),接收水位測(cè)量的兩個(gè)按鍵信號(hào)。2)芯片8255a的功能分析8255
5、a是一種可控制編程的并行接口芯片,采用40腳雙列直插式封裝,單一+5v電源,全部輸入/輸出均與ttl電平兼容。它有a、b、c三個(gè)并行輸入/輸出端口,其功能全部由程序設(shè)定,每個(gè)端口都有自己的特點(diǎn)。本設(shè)計(jì)中8255a工作于方式0,即基本輸入輸出方式,其中pa口作為輸入口,pb口作為輸出口,pc0作為輸入,c口的其他位不用。8255a在方式0下可將三個(gè)數(shù)據(jù)端口劃分為4個(gè)獨(dú)立的部分,a、b口分為兩個(gè)8位端口,c口高4位和低4位分別用作兩個(gè)4位端口。在此方式下,輸出的數(shù)據(jù)被鎖存,而輸入的數(shù)據(jù)是不鎖存的。1 8255a的內(nèi)部結(jié)構(gòu)圖如下: 圖 8255a的內(nèi)部結(jié)構(gòu)圖 2 8255a的方式控制字: d7 d6
6、 d5 d4 d3 d2 d1 d01a組工作方式a口i/oc7-c4 i/ob組工作方式b口i/oc3-c0 i/o | | | | | | | 特征位 00:方式0 1:輸入 1:輸入 0:方式0 1:輸入 1:輸入 01:方式1 0:輸出 0:輸出 1:方式1 0:輸出 0:輸出 10:方式2圖2 8255a的方式控制字3 8255a的置位/復(fù)位控制字: d7 d6 d5 d4 d3 d2 d1 d00×××寫(xiě)入位編碼寫(xiě)入內(nèi)容 寫(xiě)入位 | 編碼 | pc0 000 0:寫(xiě)入0 pc1 001 1:寫(xiě)入1 pc2 010 pc3 011 pc4 100 pc5
7、 101 pc6 110 pc7 111圖3 8255a的方式控制字:3) 芯片8255的技術(shù)參數(shù)表1_18255a主要技術(shù)參數(shù)參數(shù)名稱(chēng)符號(hào)測(cè)試條件最大規(guī)范值最小規(guī)范值輸入低電平電壓vil0.8v-0.5v輸入高電平電壓vihvcc2.0v輸入低電平電壓(數(shù)據(jù)總線)voliol=2.5ma0.45v輸入低電平電壓(外部端口)voliol=1.7ma0.45v輸入高電平電壓(數(shù)據(jù)總線)vohioh=-400ma2.4v輸入高電平電壓(外部端口)vohioh=-200ma2.4v達(dá)林頓驅(qū)動(dòng)電流idarrext=750vext=1.5v-0.4ma1.0ma電源電流icc120ma輸入負(fù)載電流iil
8、i=vcc0v+10ma-10ma輸出浮動(dòng)電流ioflvout=vcc-0+10ma-10ma 8255a主要參數(shù)分析:8255a的達(dá)林頓驅(qū)動(dòng)電流最大為4.0 ma, 當(dāng)電流超過(guò)達(dá)林頓驅(qū)動(dòng)電流是芯片就有可能會(huì)被損壞,而led的驅(qū)動(dòng)電流要比它高的多發(fā)光,在保證8255芯片安全的同時(shí)又能讓led管顯示就會(huì)需要外加器件。8255有a、b、c三個(gè)并行輸入輸出端口(簡(jiǎn)稱(chēng)為a口、b口、c口),其功能全部由程序設(shè)定,每個(gè)端口都有自己的特點(diǎn)。a口、b口通常作為獨(dú)立的i/o的端口使用,c口也可以作為獨(dú)立的i/o端口使用,但當(dāng)a口、b口作為應(yīng)答式的i/o端口使用時(shí),c口分別用來(lái)為a口、b口提供應(yīng)答控制信號(hào)。各端口
9、的功能如表1-2所示。表1_2 8255a的端口功能工作方式a口b口c口0基本輸入/輸出端口,輸入不鎖存,輸出鎖存。同a口同a口1選通輸入/輸出端口,輸入/輸出均可鎖存。同a口c口3位作為a口的應(yīng)答線;c口另3位作為b口的應(yīng)答線。2應(yīng)答式雙向輸入/輸出端口,均可鎖存。不用c口5位作為a口的應(yīng)答線。2、選擇芯片82791)8279在本設(shè)計(jì)中的作用:8279是專(zhuān)用鍵盤(pán)、數(shù)碼管顯示接口芯片,它可以自動(dòng)維持7段顯示器的刷新,不需要主機(jī)的干預(yù),并且可以同時(shí)完成矩陣鍵盤(pán)的掃描,通過(guò)譯碼器獲得8個(gè)顯示器的選通信號(hào),即位選通信號(hào)。8279芯片用于控制溫度的測(cè)量,控制led數(shù)碼管的溫度顯示。2)芯片8279的功
10、能分析:a. 8279的內(nèi)部結(jié)構(gòu)框圖如下所示:(1)數(shù)據(jù)緩沖器它連接內(nèi)、外總線,暫時(shí)cpu與8279芯片之間傳送的命令、數(shù)據(jù)或狀態(tài)。(2)i/o控制它用于控制信息的流向及區(qū)分信息的特征。cs=1時(shí),由ro或wr控制從8279讀出或向8279寫(xiě)入;a0=0時(shí),選中數(shù)據(jù)寄存器,輸入/輸出均為數(shù)據(jù)。a0=1時(shí),選中命令、狀態(tài)寄存器,輸入時(shí)位命令,輸出時(shí)位狀態(tài)。(3)控制與定時(shí)寄存器它用來(lái)寄存鍵盤(pán)和顯示的工作方式,以及由cpu編程的其他操作方式,并通過(guò)譯碼產(chǎn)生相應(yīng)的控制信號(hào),完成規(guī)定的控制功能。 圖4 8279的內(nèi)部結(jié)構(gòu)框圖 (4)定時(shí)控制它對(duì)外部時(shí)鐘信號(hào)clk分頻至內(nèi)部所需要的100khz時(shí)鐘。(5
11、)掃描計(jì)數(shù)器它可根據(jù)編程命令按編碼或譯碼方式工作。編碼方式:4位計(jì)數(shù)器按二進(jìn)制計(jì)數(shù),計(jì)數(shù)狀態(tài)從掃描線sl0sl3輸出,經(jīng)外部譯碼器譯碼后,為鍵盤(pán)和顯示器提供16個(gè)掃描信號(hào)。譯碼方式:掃描計(jì)數(shù)器最低兩位被譯碼后從sl0sl3輸出,可直接作為鍵盤(pán)和顯示器掃描信號(hào)。此時(shí)鍵盤(pán)矩陣為4×8,顯示字符為4位。(6)鍵盤(pán)去抖與控制鍵盤(pán)去抖電路:在鍵盤(pán)掃描方式中,當(dāng)有鍵閉合時(shí),按命令指定方式去抖動(dòng)后讀入鍵值??刂齐娐罚喊疵钪付ǚ绞娇刂迫ザ峨娐返墓ぷ鬟^(guò)程,以及對(duì)返回信號(hào)進(jìn)行處理。(7)返回緩沖器它鎖存來(lái)自rl0rl7的回復(fù)信號(hào),在鍵盤(pán)掃描方式中,返回線與鍵盤(pán)矩陣列線相連,在逐行掃描時(shí)搜尋一行中閉合鍵
12、所在的列。當(dāng)有鍵閉合時(shí),經(jīng)去抖動(dòng)后經(jīng)行、列編碼和附近的移位、控制狀態(tài)一起形成鍵盤(pán)數(shù)據(jù)送至fifo存儲(chǔ)器,供cpu讀取。表3 鍵盤(pán)數(shù)據(jù)格式 d7 d6 d5 d4 d3 d2 d1 d0cntlshiftsl2sl1sl0r2 r1r0控制移位行編碼列編碼其中,控制和移位由兩個(gè)獨(dú)立的附加開(kāi)關(guān)決定;sl2 sl1 sl0為按下鍵的行編碼,來(lái)自?huà)呙栌?jì)數(shù)器的低3位;r2 r1 r0是根據(jù)返回信號(hào)確定的列編碼。(8)fifo ram它是一個(gè)8×8ram,在鍵盤(pán)輸入方式時(shí)遵循先入先出(fifo)原則。(9)fifo ram的狀態(tài)寄存器它用來(lái)存放fifo ram的狀態(tài),例如ram空、滿(mǎn)等。當(dāng)工作在
13、鍵盤(pán)方式fifo存儲(chǔ)器不空時(shí),將產(chǎn)生irq1信號(hào)向cpu申請(qǐng)中斷。(10) 顯示ram、顯示地址寄存器顯示ram用來(lái)存儲(chǔ)顯示數(shù)據(jù)。容量為168位。在顯示過(guò)程中,存儲(chǔ)的顯示數(shù)據(jù)輪流從顯示寄存器輸出。顯示寄存器分別為a、b兩組,outa03和outb03可以單獨(dú)送數(shù),也可以組成一個(gè)8位的字。顯示寄存器的輸出與顯示掃描配合,不斷從顯示ram中讀出顯示數(shù)據(jù),同時(shí)輪流驅(qū)動(dòng)被選中的顯示器件,以達(dá)到多路復(fù)用的目的,使顯示器件呈現(xiàn)穩(wěn)定的顯示狀態(tài)。顯示地址寄存器用來(lái)寄存由cpu進(jìn)行讀/寫(xiě)顯示ram的地址,它可以由命令設(shè)定,也可以設(shè)置成每次讀寫(xiě)或?qū)懭胫笞詣?dòng)遞減。 (11)顯示寄存器它存放顯示內(nèi)容。在顯示過(guò)程中它
14、與顯示掃描配合,輪流從顯示ram中讀出顯示信息并依次驅(qū)動(dòng)被選中的顯示器件,循環(huán)不斷地刷新顯示字符編碼,使顯示器件呈現(xiàn)穩(wěn)定的顯示字符。8位顯示寄存器分為a、b兩組,outa03和outb03可以單獨(dú)送樹(shù),顯示4個(gè)字符也可以組成一個(gè)8位字符。(12)顯示地址寄存器它寄存讀/寫(xiě)顯示ram地址,即對(duì)應(yīng)顯示字符從哪一位開(kāi)始。它由命令設(shè)定,并可設(shè)置成每次讀出或?qū)懭胫笞詣?dòng)加1。b芯片8279是一種具有40條引腳的雙列直插式芯片,它的外部引腳如下圖所示:cs(片選):輸入線,當(dāng)cs=0時(shí)8279被選中,允許cpu對(duì)其讀、寫(xiě),否則被禁止。 d0d7(數(shù)據(jù)總線):雙向、三態(tài)總線,和系統(tǒng)數(shù)據(jù)總線相連;用于cpu和
15、8279間的數(shù)據(jù)/命令傳遞。a0:地址線,進(jìn)行片內(nèi)端口選擇。為0時(shí),選中數(shù)據(jù)寄存器;為1時(shí)選中命令/狀態(tài)寄存器。rd、wr(讀、寫(xiě)信號(hào)):輸入線。低電平有效,來(lái)自cpu的控制信號(hào),控制8279的讀、寫(xiě)操作。clk:系統(tǒng)時(shí)鐘,為8279芯片提供內(nèi)部定時(shí)。reset:復(fù)位線,高電平時(shí)復(fù)位8279到:16個(gè)字符顯示(左進(jìn)方式);編碼掃描鍵盤(pán)(雙鍵鎖定);時(shí)鐘設(shè)置為31。irq(中斷請(qǐng)求):輸出線。高電平有效。 圖5 外部引腳圖 在鍵盤(pán)工作方式中,當(dāng)fifo/傳感器ram存有數(shù)據(jù)時(shí),irq為高電平。cpu每次從ram中讀出數(shù)據(jù)時(shí),irq變?yōu)榈碗娖?。若ram中仍有數(shù)據(jù),則irq再次恢復(fù)高電平。在傳感器工
16、作方式中,每當(dāng)檢測(cè)到傳感器狀態(tài)變化時(shí),irq就出現(xiàn)高電平。sl0sl3:掃描線,用來(lái)掃描鍵盤(pán)或顯示器,可編程設(shè)定為編碼輸出或譯碼輸出。rl0rl7:返回線,用作鍵盤(pán)矩陣列線的返回信號(hào)輸入。shift:移位信號(hào),高電平有效,是鍵盤(pán)數(shù)據(jù)的d6位,用于擴(kuò)充鍵的控制功能,如作為上、下檔功能鍵。cntl:控制線,高電平有效,鍵盤(pán)工作方式時(shí),是鍵盤(pán)數(shù)據(jù)的d7位,用于擴(kuò)充鍵的控制功能控制功能鍵。outa0 outa3,outb0outb3:a組、b組顯示信號(hào)輸出線,與掃描線sl0sl3同步,實(shí)現(xiàn)分時(shí)數(shù)據(jù)顯示,即刷新各位顯示字符。兩組可獨(dú)立使用,也可合并使用。bd(顯示消隱):輸出線。低電平有效。該信號(hào)在數(shù)字
17、切換顯示或使用消隱命令時(shí),將顯示消隱。c8279的工作過(guò)程通過(guò)確定其方式字/命令字來(lái)實(shí)現(xiàn)。當(dāng)a0=1時(shí),cpu向8279芯片寫(xiě)入命令。(1) 設(shè)置鍵盤(pán)/顯示方式表2_2 設(shè)置命令字 d7 d6 d5 d4 d3 d2 d1 d0000ddkkk其中: d7、d6、d5=000方式設(shè)置命令特征位。 dd(d4、d3):來(lái)設(shè)定顯示方式,其定義如下: 00:8個(gè)字符顯示,左入口 01:16個(gè)字符顯示,左入口 10:8個(gè)字符顯示,右入口 11:16個(gè)字符顯示,右入口所謂左入口,即顯示位置從最左一位(最高位)開(kāi)始,以后逐次輸入的顯示字符逐個(gè)向右順序排列; 所謂右入口,即顯示位置從最右一位(最低位)開(kāi)始,
18、以后逐次輸入的顯示字符時(shí),已有的顯示字符逐個(gè)向左順序移動(dòng)。 kkk(d2、 d1、 d0):用來(lái)設(shè)定七種鍵盤(pán)、顯示工作方式: 000 編碼掃描鍵盤(pán),雙鍵鎖定 001 譯碼掃描鍵盤(pán),雙鍵鎖定 010 編碼掃描鍵盤(pán),n鍵輪回 011 譯碼掃描鍵盤(pán),n鍵輪回 100 編碼掃描傳感器矩陣 101 譯碼掃描傳感器矩陣 110 選通輸入,編碼顯示掃描 111 選通輸入,譯碼顯示掃描 雙鍵鎖定與n鍵輪回是多鍵按下時(shí)的兩種不同的保護(hù)方式。雙鍵鎖定為兩鍵同時(shí)按下提供的保護(hù)方法。再消顫周期里,如
19、果有兩鍵同時(shí)按下,則只有其中一個(gè)鍵彈起,而另一個(gè)鍵保持在按下位置時(shí),才被認(rèn)可。n鍵輪回為n鍵同時(shí)按下的保護(hù)方法。當(dāng)有若干鍵按下時(shí),鍵盤(pán)掃描能夠根據(jù)發(fā)現(xiàn)他們的順序,依次將它們的狀態(tài)送入fifo ram中。(2) 設(shè)置程序時(shí)鐘命令 表2_3 命令格式 d7 d6 d5 d4 d3 d2 d1 d0001ppppp其中:d7、d6、d5=001為時(shí)鐘命令特征位。ppppp( d4、d3、d2、d1、d0)用來(lái)設(shè)定外部輸入clk端的時(shí)鐘進(jìn)行分頻的分頻數(shù)n。n取值為231。例如外部時(shí)鐘頻率為2mhz,ppppp被置為10100(n=20),則對(duì)輸入的外部時(shí)鐘20分頻,以獲得8279內(nèi)部要求的
20、100kmz的基本頻率。(3) 讀fifo/傳感器ram命令 表2_4 命令格式 d7 d6 d5 d4 d3 d2 d1 d0010aixaaa其中:d7d6d5 =010為讀fifo/傳感器ram命令特征位。該命令字只在傳感器方式時(shí)使用。在cpu讀傳感器ram之前,必須使用這條命令來(lái)設(shè)定傳感器ram中的8個(gè)地址(每個(gè)地址一個(gè)字節(jié))。 aaa(d2、d1、d0)為傳感器ram中的八個(gè)字節(jié)地址。 ai(d4)為自動(dòng)增量特征位。當(dāng)ai=1時(shí),每次讀出傳感器ram后地址自動(dòng)加1使地址指針指向下一個(gè)存儲(chǔ)單元。這樣,下一個(gè)數(shù)據(jù)便從下一個(gè)地址讀出,而不必重新設(shè)置讀fifo/傳感器ram命令。在鍵盤(pán)工作方
21、式中,由于讀出操做嚴(yán)格按照先入先出順序,因此,不需使用此命令。(4) 讀顯示ram命令 表2_5 命令格式 d7 d6 d5 d4 d3 d2 d1 d0011aiaaaa其中:d7d6d5 =011為讀顯示ram命令字的特征位。該命令用來(lái)設(shè)定將要讀出的顯示ram地址。aaaa(d3、d2、d1、d0)用來(lái)尋址顯示ram命令字的特征位。由位顯示ram中有16個(gè)字節(jié)單元故需要4位尋址。ai(d4)為自動(dòng)增量特征位。當(dāng)ai=1時(shí),每次讀出后地址自動(dòng)加1指向下一地址。(5) 寫(xiě)顯示ram命令 表2_6 命令格式 d7 d6 d5 d4 d3 d2 d1 d0100aiaaaa其中:d7d6d5 =1
22、00為寫(xiě)顯示ram命令字的特征位。在寫(xiě)顯示器ram之前用該命令用來(lái)設(shè)定將要寫(xiě)入的顯示ram地址。aaaa(d3、d2、d1、d0)為將要寫(xiě)入的存儲(chǔ)單元地址,ai(d4)為自動(dòng)增量特征位。當(dāng)ai=1時(shí),每次寫(xiě)入后地址自動(dòng)加1指向下一次寫(xiě)入地址。(6) 顯示禁止寫(xiě)入/消隱命令特征位 表2_7 命令格式 d7 d6 d5 d4 d3 d2 d1 d0101 xiwaiwbiwciwd其中:d7d6d5 =101為顯示禁止寫(xiě)入/消隱命令特征位。iwa、iwb(d3、d2)為a、b組顯示ram寫(xiě)入屏蔽位。由于顯示寄存器分成a、b兩組,可以單獨(dú)送數(shù),故用兩位來(lái)分別屏蔽。當(dāng)a組的屏蔽位d3=1時(shí),a組的顯示
23、ram禁止寫(xiě)入。因此,從cpu寫(xiě)入顯示器ram數(shù)據(jù)時(shí),不會(huì)影響a的顯示。這種情況通常在采用雙4位顯示器時(shí)使用。因?yàn)閮蓚€(gè)雙四位顯示器是相互獨(dú)立的。為了給其中一個(gè)雙四位顯示器輸入數(shù)據(jù)而又不影響另一個(gè)四位顯示器,因此必須對(duì)另一組的輸入實(shí)行屏蔽。iwc、iwd(d1、d0)為消隱顯示位。用于對(duì)兩組顯示輸出消隱。若bl=1時(shí),對(duì)應(yīng)組的顯示輸出被消隱。當(dāng)bl=0時(shí),則恢復(fù)顯示。(7) 清除命令 表2_8 命令格式 d7 d6 d5 d4 d3 d2 d1 d0110cdcdcdcfca其中: d7d6d5 =110清除命令特征位。 cdcdcd(d4d3d2)用來(lái)設(shè)定清除顯示ram方式。共有四種消除方式,
24、見(jiàn)表6-10-1。 cf(d1)用來(lái)置空f(shuō)ifo存儲(chǔ)器,當(dāng)=1時(shí),執(zhí)行清除命令后,fifo ram被置空,使中斷輸出線復(fù)位。同時(shí),傳感器ram的讀出地址也被置0。 ca(d0)為總清的特征位。它兼有cd和cf的聯(lián)合效能。在cd=1時(shí),對(duì)顯示的清除方式由d3、d2的編碼決定。 清除顯示ram約需160s。在此期間fifo狀態(tài)時(shí)的最高位du=1,表示顯示無(wú)效。cpu不能向顯示ram寫(xiě)入數(shù)據(jù)。(8) 結(jié)束中斷/錯(cuò)誤方式設(shè)置命令 表2_9 命令格式 d7 d6 d5 d4 d3 d2 d1 d0111 exxxx其中: d7d6d5 =111為該命令的特征位。此命令有兩種不同的作用: 作為結(jié)束中斷命令
25、。在傳感器工作方式中使用。每當(dāng)傳感器狀態(tài)出現(xiàn)變化時(shí),掃描檢測(cè)電路將其狀態(tài)寫(xiě)入傳感器ram,并啟動(dòng)中斷邏輯,使irq變高,向cpu請(qǐng)求中斷,并且禁止寫(xiě)入傳感器ram。此時(shí),若傳感器ram讀出地址的自動(dòng)遞增特征沒(méi)有置位(ai=0),則中斷請(qǐng)求irq在cpu第一次從傳感器ram讀出數(shù)據(jù)時(shí)就被清除。若自動(dòng)遞增特征已置位(ai=1),則cpu對(duì)傳感器ram的讀出并不能清除irq,而必須通過(guò)給8279寫(xiě)入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令才能使irq變低。因此在傳感器工作方式中,此命令用來(lái)結(jié)束傳感器ram的中斷請(qǐng)求。 作為特定錯(cuò)誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤(pán)掃描n鍵輪回方式以后,如果cpu給8279又寫(xiě)
26、入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令(e=1),則8279將以一種特定的錯(cuò)誤方式工作。這種方式的特點(diǎn)是:在8279的消顫周期內(nèi),如果發(fā)現(xiàn)多個(gè)按鍵同時(shí)按下,則fifo狀態(tài)字中的錯(cuò)誤特征位s/e將置1,并產(chǎn)生中斷請(qǐng)求信號(hào)和阻止寫(xiě)入fifo ram。 上述八種用于確定8279操作方式的命令字皆由d7d6d5特征位確定,輸入8279后能自動(dòng)尋址相應(yīng)的命令寄存器。因此,寫(xiě)入命令字時(shí)唯一的要求是使數(shù)據(jù)選擇信號(hào)a0=1。8279芯片的狀態(tài)字主要用于鍵盤(pán)和選通工作方式,以指示fifo ram中的字符數(shù)和有無(wú)錯(cuò)誤發(fā)生。表2_10 鍵盤(pán)和選通工作方式格式 d7 d6 d5 d4 d3 d2 d1 d0dus/e0 ufn
27、nn其中: du( d7)為顯示無(wú)效特征位。當(dāng)du=1表示顯示無(wú)效。當(dāng)顯示ram由于清除顯示或全清命令尚未完成時(shí),du=1。d6(s/e):在鍵盤(pán)工作方式中為特殊錯(cuò)誤方式標(biāo)志位。s/e=1表示出現(xiàn)多鍵同時(shí)按下的錯(cuò)誤。d5(0):超出標(biāo)志位,當(dāng)向已滿(mǎn)的fifo ram中寫(xiě)入,致使fifo ram中的字符個(gè)數(shù)n>8而產(chǎn)生重疊時(shí),0被置為1。d4(u):“空”標(biāo)志位,當(dāng)fifo ram中的字符個(gè)數(shù)n=0時(shí),u被置為1。d3(f):“滿(mǎn)”標(biāo)志位,當(dāng)fifo ram中的字符個(gè)數(shù)n=8時(shí),f被置為1。d2d1d0(nnn):表示fifo ram中有n個(gè)字符待取走。3.選擇ds18b20溫度傳感器1
28、)ds18b20溫度傳感器在本設(shè)計(jì)中的作用 利用溫度傳感器檢測(cè)溫度,并轉(zhuǎn)換為數(shù)字量和設(shè)定的界限值比較。2 )ds18b20的功能分析ds18b20可編程溫度傳感器有三個(gè)管腳。gnd為接地線,dq為數(shù)據(jù)輸入輸出接口,通過(guò)一個(gè)較弱的上拉電阻與cpu相連。vdd為電源接口,既可由數(shù)據(jù)線提供電源,又可由外部提供電源,范圍3.05.5v。本系統(tǒng)中使用外部電源供電。其主要特點(diǎn)為: 用戶(hù)可以自行設(shè)定報(bào)警上下限溫度值; 不需要外部組件,能測(cè)量-55+125°c范圍內(nèi)的溫度; 在-10+85°c范圍內(nèi)的測(cè)溫準(zhǔn)確度為±0.5°c; 通過(guò)編程可以實(shí)現(xiàn)912位的數(shù)字讀數(shù)方式,可
29、在至多750ms內(nèi)將溫度轉(zhuǎn)換成12位數(shù)字,測(cè)溫分辨率可達(dá)到0.0625°c; 獨(dú)特的單總線接口方式,與微處理器連接時(shí)僅需要一條線既可實(shí)現(xiàn)和微處理器的雙向通訊。 圖6 ds18b20內(nèi)部結(jié)構(gòu)圖圖5 ds18b20ds18b20的內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl,配置寄存器。光刻rom中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該ds18b20的地址序列碼。64位光刻rom的排列是:開(kāi)始8位(28h)是產(chǎn)品類(lèi)型標(biāo)號(hào),接著的48位是該ds18b20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(crc=x8+x5+x4+1)。
30、光刻rom的作用是使每一個(gè)ds18b20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)ds18b20的目的。ds18b20的測(cè)溫原理:圖7 ds18b20的測(cè)溫原理圖ds18b20的測(cè)溫原理如圖所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。圖中還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),ds18b20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫
31、度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在 -55 所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度 值,這就是ds18b20的測(cè)溫原理。 表3_1 d
32、s18b20溫度值格式表3 )ds18b20的技術(shù)參數(shù)ds18b20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/lsb形式表達(dá),其中s為符號(hào)位。這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18b20的兩個(gè)8比特的ram中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。ds18b20的存儲(chǔ)器:ds18b20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存ram和一個(gè)非易失性的可電擦除的e2ram
33、,后者存放高溫度和低溫度觸發(fā)器th、tl和結(jié)構(gòu)寄存器。 暫存存儲(chǔ)器包含了8個(gè)連續(xù)字節(jié),前兩個(gè)字節(jié)是測(cè)得的溫度信息,第一個(gè)字節(jié)的內(nèi)容是溫度的低八位,第二個(gè)字節(jié)是溫度的高八位。第三個(gè)和第四個(gè)字節(jié)是th、tl的易失性拷貝,第五個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個(gè)字節(jié)的內(nèi)容在每一次上電復(fù)位時(shí)被刷新。第六、七、八個(gè)字節(jié)用于內(nèi)部計(jì)算。第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。該字節(jié)各位的意義如下: tm r1 r0 1 1 1 1 1低五位一直都是1 ,tm是測(cè)試模式位,用于設(shè)置ds18b20在工作模式還是在測(cè)試模式。在ds18b20出廠時(shí)該位被設(shè)置為0,用戶(hù)不要去改動(dòng)。r
34、1和r0用來(lái)設(shè)置分辨率,如下表所示:(ds18b20出廠時(shí)被設(shè)置為12位)分辨率設(shè)置表: r1r0分辨率溫度最大轉(zhuǎn)換時(shí)間009位93.75ms 0110位187.5ms 1011位375ms 1112位750ms 表2-2-2 分辨率表 根據(jù)ds18b20的通訊協(xié)議,主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)ds18b20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條rom指令,最后發(fā)送ram指令,這樣才能對(duì)ds18b20進(jìn)行預(yù)定的操作。復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號(hào)后等待1660微秒左右,后
35、發(fā)出60240微秒的存在低脈沖,主cpu收到此信號(hào)表示復(fù)位成功。4)rom操作命令一旦總線主機(jī)檢測(cè)到從屬器件的存在,它便可以發(fā)出器件rom操作命令之一。所有rom操作命令均為8位長(zhǎng)。這些命令列表如下:read rom(讀rom)33h此命令允許總線主機(jī)讀ds18b20的8位產(chǎn)品系列編碼,唯一的48位序列號(hào),以及8位的crc。此命令只能在總線上僅有一個(gè)ds18b20的情況下可以使用。如果總線上存在多于一個(gè)的從屬器件,那么當(dāng)所有從片企圖同時(shí)發(fā)送時(shí)將發(fā)生數(shù)據(jù)沖突的現(xiàn)象(漏極開(kāi)路會(huì)產(chǎn)生線與的結(jié)果)。match rom( 符合rom)55h此命令后繼以64位的rom數(shù)據(jù)序列,允許總線主機(jī)對(duì)多點(diǎn)總線上特定
36、的ds18b20尋址。只有與64位rom序列嚴(yán)格相符的ds18b20才能對(duì)后繼的存貯器操作命令作出響應(yīng)。所有與64位rom序列不符的從片將等待復(fù)位脈沖。此命令在總線上有單個(gè)或多個(gè)器件的情況下均可使用。skip rom( 跳過(guò)rom )cch在單點(diǎn)總線系統(tǒng)中,此命令通過(guò)允許總線主機(jī)不提供64位rom編碼而訪問(wèn)存儲(chǔ)器操作來(lái)節(jié)省時(shí)間。如果在總線上存在多于一個(gè)的從屬器件而且在skip rom命令之后發(fā)出讀命令,那么由于多個(gè)從片同時(shí)發(fā)送數(shù)據(jù),會(huì)在總線上發(fā)生數(shù)據(jù)沖突(漏極開(kāi)路下拉會(huì)產(chǎn)生線與的效果)。search rom( 搜索rom)f0h當(dāng)系統(tǒng)開(kāi)始工作時(shí),總線主機(jī)可能不知道單線總線上的器件個(gè)數(shù)或者不知道
37、其64位rom編碼。搜索rom命令允許總線控制器用排除法識(shí)別總線上的所有從機(jī)的64位編碼。alarm search(告警搜索)ech此命令的流程與搜索rom命令相同。但是,僅在最近一次溫度測(cè)量出現(xiàn)告警的情況下,ds18b20才對(duì)此命令作出響應(yīng)。告警的條件定義為溫度高于th 或低于tl。只要ds18b20一上電,告警條件就保持在設(shè)置狀態(tài),直到另一次溫度測(cè)量顯示出非告警值或者改變th或tl的設(shè)置,使得測(cè)量值再一次位于允許的范圍之內(nèi)。貯存在eeprom內(nèi)的觸發(fā)器值用于告警。 存儲(chǔ)器操作命令write scratchpad(寫(xiě)暫存存儲(chǔ)器)4eh這個(gè)命令向ds18b20的暫存器中寫(xiě)入數(shù)據(jù),開(kāi)始位置在地址
38、2。接下來(lái)寫(xiě)入的兩個(gè)字節(jié)將被存到暫存器中的地址位置2和3。可以在任何時(shí)刻發(fā)出復(fù)位命令來(lái)中止寫(xiě)入。read scratchpad(讀暫存存儲(chǔ)器)beh這個(gè)命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開(kāi)始,一直進(jìn)行下去,直到第9(字節(jié)8,crc)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來(lái)中止讀取。copy scratchpad(復(fù)制暫存存儲(chǔ)器)48h這條命令把暫存器的內(nèi)容拷貝到ds18b20的e2存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而ds18b20又正在忙于把暫存器拷貝到e2存儲(chǔ)器,ds18b20就會(huì)輸出一個(gè)“0”,如果
39、拷貝結(jié)束的話(huà),ds18b20 則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后立即起動(dòng)強(qiáng)上拉并最少保持10ms。convert t(溫度變換)44h這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無(wú)需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后ds18b20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而ds18b20又忙于做時(shí)間轉(zhuǎn)換的話(huà),ds18b20將在總線上輸出“0”,若溫度轉(zhuǎn)換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即起動(dòng)強(qiáng)上拉,并保持500ms。recall e2(重新調(diào)整e2)b8h這條命令把貯存在e2中溫度觸發(fā)器的值重新調(diào)至?xí)捍娲鎯?chǔ)器。這種重新調(diào)出的操作
40、在對(duì)ds18b20上電時(shí)也自動(dòng)發(fā)生,因此只要器件一上電,暫存存儲(chǔ)器內(nèi)就有了有效的數(shù)據(jù)。在這條命令發(fā)出之后,對(duì)于所發(fā)出的第一個(gè)讀數(shù)據(jù)時(shí)間片,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):“0”=忙,“1”=準(zhǔn)備就緒。read power supply(讀電源)b4h對(duì)于在此命令發(fā)送至ds18b20之后所發(fā)出的第一讀數(shù)據(jù)的時(shí)間片,器件都會(huì)給出其電源方式的信號(hào):“0”=寄生電源供電,“1”=外部電源供電。5)ds18b20時(shí)序圖圖8 ds18b20時(shí)序圖4. 選擇繼電器繼電器在本實(shí)驗(yàn)中主要用于控制直流電機(jī),當(dāng)ctrl端輸入1時(shí),直流電機(jī)工作,輸入0時(shí),直流電機(jī)停止工作。其ctrl連接到8255a的pc4口。r832k
41、r825.1kq518r8172365128out1close1out2close2com1com2k1vccvccjp30d4圖9 繼電器工作原理圖5.選擇功率放大器功放在本實(shí)驗(yàn)中主要用于控制ds18b20,當(dāng)in1端輸入1時(shí),啟動(dòng)加熱,輸入0時(shí),暫時(shí)停止加熱。其out1連接到ds18b20的tctrl。6. 選擇led數(shù)碼管1)在本設(shè)計(jì)中的作用led發(fā)光二級(jí)管(light-emitting diode),在本設(shè)計(jì)中采用7段數(shù)字發(fā)光二級(jí)管,做為終端顯示,顯示溫度。2) led功能分析七段碼顯示器工作原理:led 數(shù)碼管顯示器內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,每個(gè)發(fā)光二極管稱(chēng)
42、為一字段。因而它的控制原理和發(fā)光二極管的控制原理是相同的。根據(jù)各管的接線形式,可分成共陰極型和共陽(yáng)極型。給led 數(shù)碼管的七個(gè)發(fā)光二極管加不同的電平,二極管顯示不同亮暗的組合就可以形成不同的字形,這種組合稱(chēng)之為字形碼。有了字形碼表,我們就可以進(jìn)行編程。如果還用pa口來(lái)控制一個(gè)led 數(shù)碼管的八個(gè)字段,那么當(dāng)要顯示0f 的一個(gè)字型時(shí),我們給pa口輸出對(duì)應(yīng)的字形碼就可以了。如要在共陰極的數(shù)碼管顯示6,則pb口輸出0x7d 就可以了;要顯示9 則pa口輸出0x6f。 與發(fā)光二極管的工作原理相同,共陽(yáng)極時(shí),所有正端接電源正極,當(dāng)負(fù)端有低電平時(shí),該段有電流流過(guò),發(fā)光管亮,當(dāng)負(fù)端為高電平時(shí),該段無(wú)電流流過(guò)
43、,發(fā)光管不亮。要顯示什么數(shù)字,就使對(duì)應(yīng)的段為低電平。共陰極與共陽(yáng)極的電平變化狀態(tài)相反。當(dāng)每個(gè)段的驅(qū)動(dòng)電流為2ma20ma,電流越大,發(fā)光越亮。 圖10 led結(jié)構(gòu)圖 如下圖為led數(shù)碼管字形碼表(1為高電平,0 為低電平)。顯示字型dpgfedcba共陰極字形碼共陽(yáng)極字形碼0001111110x3f0xc01000001100x060xf92010110110x5b0xa43010011110x4f0xb04011001100x660x995011011010x6d0x926011111010x7d0x827000001110x070xf88011111110x7f0x809011011110
44、x6f0x90a011101110x770x88b011111000x7c0x83c001110010x390xc6d010111100x5e0xa1e011110010x790x86f011100010x710x8e表5-1 led數(shù)碼管字形碼表注:本實(shí)驗(yàn)中用的是共陽(yáng)極。7.選擇直流電機(jī)本實(shí)驗(yàn)直流電機(jī)主要模擬豆?jié){機(jī)打漿過(guò)程:直流電機(jī)轉(zhuǎn)15秒表示打漿15秒,直流電機(jī)停15秒表示打漿停15秒。8.選擇二進(jìn)制邏輯按鈕1). 二進(jìn)制邏輯按鈕在本設(shè)計(jì)中的作用:本實(shí)驗(yàn)中二進(jìn)制開(kāi)關(guān)主要模擬水位檢測(cè):水位合適和水位溢出,水位合適或溢出用1表示,水位不合適或不溢出用0表示。2) . 二進(jìn)制邏輯按鈕的功能說(shuō)明:
45、 本設(shè)計(jì)通過(guò)二進(jìn)制邏輯按鈕輸入開(kāi)關(guān)的編碼,來(lái)實(shí)現(xiàn)水位檢測(cè)。3) . 二進(jìn)制邏輯按鈕的技術(shù)參數(shù) 二進(jìn)制邏輯按鈕的工作電壓一般為0-5v,0v表示低電平,用0表示,5v表示高電平,用1表示。二進(jìn)制邏輯按鈕按下為0信號(hào),松開(kāi)為1信號(hào)。9.硬件總邏輯圖及其說(shuō)明連線說(shuō)明:b4區(qū):cs(8255)a3區(qū):cs1b4區(qū):a0,a1es-pci:a0,a1b4區(qū):pc5e1:in1b4區(qū):jp56(pa口)jp80(開(kāi)關(guān))b4區(qū):pc4e3區(qū):ctrlb4區(qū):pc0g1區(qū):toute5區(qū):jp78(8279b口)g5區(qū):jp42(b口)e5區(qū):jp77(8279c口)g5區(qū):jp41(c口)e5區(qū):clk(8
46、279)b2區(qū):2me5區(qū):cs(8279)a3區(qū):cs5e5區(qū):a0(8279)es-pci:a0e3區(qū):ctrlb4區(qū):pc4e3區(qū):com1c1區(qū):vcce2區(qū):out1g1區(qū):tctrl三、控制程序設(shè)計(jì)1. 控制程序設(shè)計(jì)思路說(shuō)明本程序采用模塊化的程序設(shè)計(jì)思想,將完成整個(gè)設(shè)計(jì)所需要的全部功能按要求劃分為若干子模塊。具體到本設(shè)計(jì)而言,控制程序主要有:主程序塊,設(shè)定溫度初值子模塊,初始化18b20子模塊,讀溫度子模塊,顯示讀出的溫度值子模塊,初始化8279子模塊,初始化8255子模塊,顯示輸入的溫度設(shè)定值子程序,啟動(dòng)加熱子程序及其他一些初始化程序和延時(shí)子程序。總的程序設(shè)計(jì)思路是首先通過(guò)溫度傳
47、感器ds18b20測(cè)量出環(huán)境溫度,利用8255來(lái)接收并通過(guò)芯片8279的控制使其顯示到led上;利用軟件實(shí)現(xiàn)將溫度與35攝氏度進(jìn)行比較,若小于35攝氏度,繼續(xù)加熱,若大于35攝氏度,進(jìn)入打漿過(guò)程。以下是對(duì)部分控制程序的說(shuō)明:由于ds18b20采用串行數(shù)據(jù)傳送和單總線數(shù)據(jù)傳輸方式,其數(shù)據(jù)輸入輸出都由同一條線完成。因此,對(duì)讀寫(xiě)的操作時(shí)序要求嚴(yán)格。為了保證ds18b20有嚴(yán)格的讀寫(xiě)時(shí)序,需要做較精確的延時(shí)。在操作中用到的延時(shí)有15us,90us,270us,540us等,可以在程序設(shè)計(jì)時(shí)用延時(shí)子程序來(lái)讀寫(xiě)延時(shí)操作。值得注意的是,首先要對(duì)8255a進(jìn)行初始化,否則可能和筆者遇到的情況一樣但ds18b2
48、0的溫度就已經(jīng)開(kāi)始傳送到數(shù)據(jù)端口等待輸出了,這務(wù)必會(huì)造成極大的麻煩。從ds18b20讀出數(shù)據(jù)時(shí)也采用每位傳輸?shù)姆椒ń?jīng)過(guò)pc0口傳輸?shù)?255a中,每次傳輸一位后暫存在al寄存器中,再把a(bǔ)l寄存器中數(shù)據(jù)向右循環(huán)移位一次,數(shù)據(jù)被移動(dòng)到標(biāo)志位中,此時(shí)在用帶標(biāo)志位的循環(huán)移位指令把數(shù)據(jù)移動(dòng)到另一個(gè)寄存器bl里,這樣就完成了一位數(shù)據(jù)的讀出。在移位的時(shí)候也需要注意讀寫(xiě)時(shí)序的問(wèn)題,所以采用專(zhuān)門(mén)的延時(shí)程序控制。循環(huán)移位8次即表示傳輸了一個(gè)字節(jié)的數(shù)據(jù),最后把bl中的數(shù)據(jù)再傳送到al寄存器中,完成數(shù)據(jù)的讀出操作。對(duì)8279進(jìn)行操作時(shí)要注意與實(shí)際情況相結(jié)合修改控制字選擇不同的顯示方式,同時(shí)應(yīng)注意左入口和右入口的區(qū)別。程序中顯示溫度值 需要數(shù)碼管不斷顯示,同時(shí)還需要發(fā)熱電阻可以正常工作,所以加熱部分的延時(shí)程序即顯示子程序中的延時(shí)。這樣會(huì)在操作中保證在加熱的同時(shí)溫度值能動(dòng)態(tài)的顯示出來(lái) 。2. 控制程序流程圖(1) 主程序流程圖(2) ds18b20初始化子程序流程圖開(kāi)始主機(jī)發(fā)出延時(shí)501us低脈沖等待15次ds18b20回復(fù)回復(fù)?15次等待結(jié)束yes18b20存在,置復(fù)位18b20不存在,結(jié)束啟動(dòng)ds18b20開(kāi)始復(fù)位ds18b20cf=0?ny控制字寫(xiě)入ds18b20發(fā)讀溫度指令結(jié)束讀溫度字操作流程圖開(kāi)始開(kāi)始時(shí)讓pc0口維持低電平寫(xiě)入新的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軟考知識(shí)體系優(yōu)化方案試題及答案
- 行政法學(xué)知識(shí)整合試題及答案探討
- 2025年公司運(yùn)營(yíng)中戰(zhàn)略適應(yīng)性的探討試題及答案
- 軟件開(kāi)發(fā)中的用例分析試題及答案
- 數(shù)據(jù)庫(kù)設(shè)計(jì)中的正則化與規(guī)范化試題及答案
- 網(wǎng)絡(luò)管理員考試備考資源與試題及答案
- 領(lǐng)導(dǎo)力發(fā)展的不同階段及策略計(jì)劃
- 測(cè)試方法與工具選型的思考試題及答案
- 高效會(huì)議與工作計(jì)劃的制定
- 生產(chǎn)計(jì)劃中的成本控制
- 北京2025年國(guó)家大劇院招聘24名專(zhuān)業(yè)技術(shù)人員筆試歷年參考題庫(kù)附帶答案詳解
- 2024建安杯信息通信建設(shè)行業(yè)安全競(jìng)賽題庫(kù)及答案【三份】
- 2025年信息系統(tǒng)管理知識(shí)考試試題及答案
- 中介股東合同范例
- 馬法理學(xué)試題及答案
- 合伙人協(xié)議書(shū)模板
- 2025年下半年揚(yáng)州現(xiàn)代農(nóng)業(yè)生態(tài)環(huán)境投資發(fā)展集團(tuán)公開(kāi)招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年中考第一次模擬考試卷:生物(成都卷)解析版
- 2025年山東濟(jì)南先行投資集團(tuán)有限責(zé)任公司招聘筆試參考題庫(kù)附帶答案詳解
- 從實(shí)踐中學(xué)習(xí)醫(yī)療人文關(guān)懷的案例分享
- 2025年上半年重慶合川區(qū)招考事業(yè)單位工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
評(píng)論
0/150
提交評(píng)論