單片機功能豆?jié){機設計-畢業(yè)論文_第1頁
已閱讀1頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  本設計從現(xiàn)代化計算機控制技術入手,利用單片機的強大智能功能,通過完整的軟件與硬件的結(jié)合,模擬了一種先進的豆?jié){制作的自動控制系統(tǒng)。</p><p>  根據(jù)豆?jié){機的工作要求與單片機功能的特點,本設計提出出一套適合實驗室條件下的豆?jié){機控制模擬設備,主要通過單片機、溫度傳感器,驅(qū)動與檢測電路組成。本次設計選擇

2、的電器設備有AT89S51單片機、DS18B20溫度傳感器,ULN2003驅(qū)動器,繼電器等。設計硬件控制流程圖、控制電路圖,軟件中的主程序流程圖及完整的控制程序。工作過程:硬件電路主要以單片機為核心,根據(jù)檢測電路(溫度傳感器及其他檢查電路)送來的不同信號做出處理后,通過改變單片機輸出端口的狀態(tài),控制驅(qū)動電路做出與之對應的工作;整個工作過程的控制思想有軟件編程來實現(xiàn),控制程序的編寫是根據(jù)豆?jié){機在工作過程中可能遇到的情況,及對其處理的判斷直

3、到工作結(jié)束,程序執(zhí)行完畢,從而完成對整個工作過程的控制。通過系統(tǒng)模擬實驗與下載調(diào)試表明:該系統(tǒng)設計合理,自動化程度高,實驗過程時間短,工作穩(wěn)定可靠,基本滿足了設計的相關要求。</p><p>  關鍵詞:單片機;溫度傳感器;驅(qū)動芯片;按鍵控制;</p><p><b>  Abstract</b></p><p>  The design of

4、 modern computer control technology from the start, using the power of intelligent features microcontroller, through the complete combination of software and hardware to simulate an advanced automatic control system of m

5、ilk production.</p><p>  Soymilk's work according to requirements and functional characteristics of MCU, the design of a set of suitable laboratory conditions for Soymilk control analog devices, primaril

6、y through the microcontroller, temperature sensor, drive and detection circuit. The design choices of electrical equipment AT89S51 microcontroller, DS18B20 the temperature sensor, ULN2003 drivers, relays and so on. Desig

7、n hardware control flow, control circuit, the software in the main program flow chart and complete con</p><p>  Keywords: microcontroller; temperature sensor; driver chip; keys to control</p><p>

8、;<b>  目 錄</b></p><p><b>  摘 要1</b></p><p>  Abstract2</p><p><b>  1系統(tǒng)總體設計1</b></p><p><b>  1.1 引言1</b></p>&l

9、t;p>  1.2 豆?jié){機控制系統(tǒng)的總體介紹1</p><p>  1.3 豆?jié){機功能的設計2</p><p>  1.4 豆?jié){機控制電路的硬件選擇2</p><p>  1.5 豆?jié){機工作算法的構(gòu)思3</p><p>  2 硬件電路設計4</p><p>  2.1 控制電路硬件簡述4</

10、p><p>  2.2 硬件電路設計4</p><p>  2.2.1 單片機的簡介4</p><p>  2.2.2 AT89S51單片機5</p><p>  2.2.3 驅(qū)動及檢測電路9</p><p>  2.2.4 溫度傳感器的控制電路15</p><p>  2.2.5 按鍵與

11、顯示指示電路24</p><p>  2.2.5 控制電路的電源電路25</p><p>  3系統(tǒng)軟件設計27</p><p>  3.1 溫度傳感器的讀寫控制程序27</p><p>  3.2 無水防干燒與按鍵的編程思路29</p><p>  3.3 煮豆、打漿及防溢出的編程及思路29</p&

12、gt;<p>  3.4 整體程序34</p><p>  4 系統(tǒng)模擬仿真36</p><p>  4.1功能測試36</p><p>  4.1.1 豆?jié){機防干燒與防溢出功能測試36</p><p>  4.1.2 豆?jié){機打漿功能的測試36</p><p><b>  5 設計總結(jié)

13、38</b></p><p>  5.1 本設計的優(yōu)點38</p><p>  5.2本設計可改進的方面38</p><p><b>  致 謝39</b></p><p><b>  參考文獻40</b></p><p><b>  附錄4

14、1</b></p><p><b>  1系統(tǒng)總體設計</b></p><p><b>  1.1 引言</b></p><p>  隨著人類的進步與社會的發(fā)展,電子產(chǎn)品也在飛速的發(fā)展。在人類科學不斷的進步中,我們的生活隨之發(fā)生改變,全自動豆?jié){機也逐漸變?yōu)闊徜N家用電器。豆?jié){機之所以成為家喻戶曉的家用電器,其中有

15、很多原因推動著豆?jié){機的發(fā)展,人們生活節(jié)奏的加快,對時間觀念的重視及奶粉、飲料事件的不斷出現(xiàn)等,使的人們對豆?jié){機更加偏愛。</p><p>  單片機作為整個控制系統(tǒng)的核心,其性能好壞對整個系統(tǒng)起著至關重要的作用。早期的單片機8031,89c51等,大多采用紫外線擦除或需要專用的燒錄器,在實驗調(diào)試仿真時比較麻煩,且存儲容量低,做大型的控制程序時,需要外接擴展存儲器,造價和電路設計上都不劃算,因此不宜使用。當前比較先

16、進的ARM嵌入式芯片,存儲容量大,運算速度快,智能度強大,外圍引腳豐富,穩(wěn)定性高,是比較合適的選擇[1]。但由于其價格昂貴,使豆?jié){機的成本大大增加,不適合大眾消費。而當前應用比較廣泛的AT89s51單片機及其同類單片機,有智能度高,外圍電路成熟,成本低且存儲容量可以滿足要求,使用比較方便。所以無論從價格,還是功能上考慮,都是比較合適的選擇。</p><p>  1.2 豆?jié){機控制系統(tǒng)的總體介紹</p>

17、<p>  本設計控制電路要求:首先,具有檢測豆?jié){機缸體內(nèi)是否有水,水量是否過少,以防加熱器干燒,遭到損壞,造成不必要的損失。其次,根據(jù)人們的放料及主觀意識選擇打漿方式。本系統(tǒng)共設置了三種工作方式:五谷漿,全豆豆?jié){及果蔬漿。在打漿工作中能根據(jù)溫度傳感器輸出信號,能分別控制高溫煮豆,啟動打漿,文火熬漿,防溢出和工作完畢自動報警等功能。最后是電路板的設計,選用雙層布線方式,既節(jié)省材料,又提高了集成度。設計產(chǎn)品制作過程:根據(jù)前期

18、設想對部分電路進行模擬調(diào)試通過后,畫出原理圖,制作印制電路板文件,印制電路板,焊接元器件,調(diào)試電路板排查故障,通過后根據(jù)豆?jié){機功能要求編寫程序并調(diào)試及在電路板上模擬仿真。</p><p>  1.3 豆?jié){機功能的設計</p><p>  一般豆?jié){機可分為:純豆豆?jié){機,五谷豆?jié){機,多功能豆?jié){機和冷熱多功能豆?jié){機。本設計為多功能豆?jié){機,其他豆?jié){機只是在此基礎上加減部分元件及改變部分模塊程序,這

19、里就不再敘述。</p><p>  多功能豆?jié){機可以制作純豆豆?jié){,五谷漿和果蔬漿。它們的制作是有人們根據(jù)原料的不同,選擇對應的功能鍵,然后調(diào)用相應的其工作程序。</p><p>  純豆豆?jié){的制作,根據(jù)大豆的成分,經(jīng)過8小時左右的清水浸泡,使其變得疏松,既有營養(yǎng)價值,又方便研磨。在加熱器加熱到一定溫度時,有溫度傳感器發(fā)出信號,啟動打漿,此時分別做打漿煮沸工作。經(jīng)過三遍后,開始文火熬漿及研磨

20、攪拌工作(兩遍),直到熬漿結(jié)束,報警提示,本次打漿即為五遍打漿法。</p><p>  五谷漿的制作,由于五谷原料雜亂,浸泡不方便,一般就直接打漿,考慮到原料的硬度不同,并使五谷充分混合,本次打漿采用六遍打漿法,其具體做法與上同。</p><p>  果蔬漿的制作,一般果樹比較軟,并要考慮其新鮮口感,所以無須多遍研磨及攪拌,本次打漿采用四遍打漿法。</p><p>

21、  1.4 豆?jié){機控制電路的硬件選擇</p><p>  在硬件選擇上為了有利于購買和實驗方便,根據(jù)當前市場上各種處理器的性價比,本設計選擇AT89C51單片機,溫度檢測采用DS18B20溫度傳感器,對交流電機的控制采用5V5腳繼電器,對加熱器的控制采用兩個5V8腳繼電器,因為豆?jié){機的功能要求,加熱器具有“高溫煮沸,文火熬漿”,所以對其控制采用兩路電源。報警裝置采用普通蜂鳴器。對繼電器,蜂鳴器的驅(qū)動采用ULN20

22、03,它即可滿足由單片機輸出端口直接控制驅(qū)動,同時可兼做無水防干燒與防溢出用。只是2003是高電平有效,這與單片機個管腳上電就輸出高電平有點沖突,但考慮到其價格低廉,控制簡單,在這里仍然用它,只需在其前段加一電平轉(zhuǎn)換即可。各器件的具體用法將在下文一一說明。</p><p>  1.5 豆?jié){機工作算法的構(gòu)思</p><p>  根據(jù)家用電器的特點:控制電路簡單,使用方便易學、易懂等。編程思路

23、如下圖1—1。</p><p>  圖1-1豆?jié){機工作的算法</p><p>  本設計從無水防干燒開始,缸體內(nèi)水量達到,檢測電路送出一個高電平,無水則報警。編程容易實現(xiàn),只是檢測信號電路不好設計。整個燒水煮豆過程是不確定的,當溫度達到以后定時器開始計時,以后的工作有時間的限制。</p><p>  對溫度傳感器的啟用與控制需要嚴格的時間限制,這部分程序的編寫是復雜

24、而繁瑣的。在進行煮豆與打漿的切換,高溫與文火的切換都有時間的控制,需要用到定時器中斷中斷;在煮豆防益,熬漿防益上不僅要用到外部中斷,還要用到記時延時。這些部分是一個連貫的過程,又有著不確定時間。因此,實現(xiàn)起來不太容易,這正是整個程序核心。整個程序調(diào)試過程中,這部分出現(xiàn)的問題最多。對問題的排除是,整體改過后,在逐步調(diào)試,一點一點添加功能模塊,最終得到實現(xiàn)。軟件編程語言采用C語言。</p><p><b>

25、  2 硬件電路設計</b></p><p>  2.1 控制電路硬件簡述</p><p>  一個完整的控制系統(tǒng),單純依靠一塊單片機是遠遠不夠的。它必須與外圍電路元件相互搭配,共同完成任務[2]。本設計用到的外圍電路有:溫度檢測電路,驅(qū)動電路,LED顯示電路,按鍵接口電路等。要是個部分電路能在一起穩(wěn)定的工作,就要讓他們銜接的很匹配,如各部分電路對電壓、電流的要求等都要合理的

26、設計。下面是對各部分硬件電路的介紹。如圖2-1所示。</p><p><b>  圖2-1硬件流程圖</b></p><p>  2.2 硬件電路設計</p><p>  以下是對本設計中的電路設計部分、硬件選取及元器件的用法等的介紹。</p><p>  2.2.1 單片機的簡介</p><p>

27、;  單片微型計算機(Single Chip Microcomputer)簡稱單片機,是指集成在一塊芯片上的計算機,它具有結(jié)構(gòu)簡單、控制功能強、可靠性高、體積小、價格低、等優(yōu)點。單片機技術作為計算機技術的一個重要分支,廣泛地應用于工業(yè)控制、智能化儀器儀表、家用電器、電子玩具等各領域。</p><p>  盡管單片機種類很多,但無論是從世界范圍還是從全國范圍來看,使用最為廣泛的應屬MCS-51系列單片機。其生產(chǎn)廠家

28、有:Intel公司、Atmel公司、Philips公司等。本設計采用Atmel公司的AT89S51,其它廠家單片機這里不再多說,以下是對AT89S51的介紹。</p><p>  2.2.2 AT89S51單片機 </p><p>  Atmel公司生產(chǎn)的AT89S51單片機是一種低功耗/低電壓、高性能的8位單片機,內(nèi)部除CPU外,還包括128B的內(nèi)部用戶數(shù)據(jù)存儲器RAM,4KB的內(nèi)部用戶

29、程序存儲器,4個8位并行可編程I/0口,2個16位計數(shù)/定時器,5個中斷源,2個優(yōu)先級別,1個可編程的串行通信口。以下是對各部分的具體介紹:</p><p><b>  內(nèi)部介紹:</b></p><p> ?。?)中央處理器又稱CPU,是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運

30、算和控制輸入輸出功能等操作。</p><p> ?。?)數(shù)據(jù)存儲器又稱RAM,S51(AT89S51)內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型數(shù)據(jù)。并具有64KB外部數(shù)據(jù)存儲器尋址空間。</p><

31、p> ?。?)程序存儲器又稱ROM,S51共有4KB的掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。并具有64KB外部程序存儲器尋址空間。</p><p> ?。?)定時/計數(shù)器,S51有兩個16位的可編程定時/計數(shù)器,稱為定時器0(T0)和定時器1(T1)。T0有專用寄存器TH0和TL0組成,T10有專用寄存器TH1和TL1組成。并且可編程定時/計數(shù)器的工作方式、定時時間、計數(shù)值、啟動、中斷請求等都可以由

32、程序設定。</p><p> ?。?)中斷系統(tǒng),S51的中斷功能較強,可滿足控制應用的需要。共有5個中斷源,即兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,并具有兩個優(yōu)先級別的選擇。</p><p> ?。?)時鐘電路,S51內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。用于產(chǎn)生整個單片機運行的脈沖時序,系統(tǒng)允許的晶振頻率一般位6MHz和12MHz,在應用精度要求較高的場合一般選用11.0

33、592MHz,可以使定時器/計數(shù)器更精確。</p><p>  以上是從S51單片機的內(nèi)部介紹,下面再從外部看其結(jié)構(gòu)。如圖2-2所示。</p><p>  圖2-2 S51的外部結(jié)構(gòu)</p><p><b>  外部介紹:</b></p><p>  有外部結(jié)構(gòu)圖我們可以看到,S51單片機有40個管腳。正電源和地線兩根,

34、外置石英振蕩器的時鐘線兩根,一個復位端RESET,/EA,ALE,/PSEN三根線,P0-P3共32個I/O口,中斷口線與P3口線復用?,F(xiàn)在我們對這些引腳的功能加以說明:</p><p>  (1)主電源引腳Vcc和Vss </p><p>  Vcc(40腳):主電源接+5V </p><p>  Vss(20腳):接地 </p><p>

35、  (2)時鐘電路引腳XTAL1和XTAL2:接外部晶體振蕩器的引線端。當使用芯片內(nèi)部時鐘時,兩引腳用于外接石英晶體和微調(diào)電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。這兩個引腳連接的電路成為時鐘電路,用來產(chǎn)生單片機正常工作時所需要的時鐘脈沖信號。</p><p>  (3)控制信號RST/Vpd、ALE/(/PROG) 、/ PSEN和 (/EA)/Vpp </p><p>  RST

36、/Vpd(9腳):復位端。高電平有效,保持在2個機器周期寬度以上,使單片機復位,用于完成單片機的復位初始化操作。在進行單片機應用系統(tǒng)設計時,這個引腳一定要連接相應的電路,即復位電路。該引腳有復用功能,Vpd為備用電源輸入端,防止主電源掉電。</p><p>  ALE/(/PROG)(30腳):地址鎖存信號端。訪問片外存貯器時,ALE作低八位地址的鎖存控制信號。平時不訪問片外存貯器時,該端以六分之一的時鐘振蕩頻率

37、固定輸出脈沖。ALE端負載驅(qū)動能力為8個LSTTL門。該引腳有復用功能, 為片內(nèi)程序存貯器編程(固化)的編程脈沖輸入。 </p><p>  /PSEN(29腳):片外程序存貯器讀選通信號端。負載能力為8LSTTL門。 </p><p>  (/EA)/Vpp(31腳):/EA端接高電平時,CPU取指令從片內(nèi)程序存貯器自動順延至片外程序存貯器。 /EA端接低電平時,CPU僅從片外程序存貯器

38、取指令。該引腳有復用功能,Vpp為片內(nèi)程序存貯器編程時的編程電壓。</p><p>  (4)輸入/輸出引腳P0、P1、P2和P3口 </p><p>  P0.0~P0.7(39~32腳):訪問片外存貯器時作為低八位地址線和八位數(shù)據(jù)線(復用)。負載能力為8個LSTTL門。</p><p>  P1.0~P1.7(1~8腳): 8位準雙向I/O口。負載能力為3個LS

39、TTL門。 </p><p>  P2.0~P2.7(21~28腳):訪問片外存貯器時作為高八位地址線。</p><p>  P3.0~P3.7(10~17腳):8位準雙向I/O口。負載能力為3個LSTTL門。另外還有專門的第二功能。 </p><p><b>  P3口的第二功能是</b></p><p>  P3.0

40、(10腳): RXD(串行口輸入端)</p><p>  P3.1(11腳): TXD(串行口輸出端) </p><p>  P3.2(12腳): /INT0(外部中斷0輸入端) </p><p>  P3.3(13腳): /INT1(外部中斷1輸入端) </p><p>  P3.4(14腳): T0(定時器/計數(shù)器0外部輸入端) <

41、/p><p>  P3.5(15腳): T1(定時器/計數(shù)器1外部輸入端) </p><p>  P3.6(16腳): /WR(片外數(shù)據(jù)存貯器寫選通信號輸出端) </p><p>  P3.7(17腳): /RD(片外數(shù)據(jù)存貯器讀選通信號輸出端)[3]</p><p>  下圖是單片機工作的最小模塊,如圖2-3所示。</p><

42、;p>  圖2-3單片機最小工作模塊</p><p>  2.2.3 驅(qū)動及檢測電路</p><p>  本設計選用的驅(qū)動芯片是ULN2003,它具有價格便宜、原理簡單易使用、工作穩(wěn)定性高,并且可兼做豆?jié){機的無水防干燒和防溢出檢測器用。以下將對其進行詳細介紹。ULN2003的外部結(jié)構(gòu)如圖2-4所示。</p><p>  圖2-4 ULN2003的外部結(jié)構(gòu)<

43、;/p><p>  從ULN2003外部結(jié)構(gòu)圖上,可以很輕松的看出各管腳的功能,這足以說明它的使用相當簡單。它有一個接電源引腳,一個接地引腳,六路輸入對應著六路輸出。</p><p>  ULN2003 是高耐壓、大電流達林頓陳列,由七個硅NPN 達林頓管組成。</p><p><b>  其特點是:</b></p><p>

44、; ?、賃LN2003 的每一對達林頓都串聯(lián)一個2.7K 的基極電阻,在5V 的工作電壓下它能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數(shù)據(jù)。</p><p> ?、赨LN2003 工作電壓高,工作電流大,灌電流可達500mA,并且能夠在關態(tài)時承受50V 的電壓,輸出還可以在高負載電流并行運行。</p><p> ?、踀LN2003 采用DIP—16 或

45、SOP—16 塑料封裝。</p><p>  由于其接口可以與多種元件直接連用,且封裝常規(guī)已購買、驅(qū)動電流大使用方便等特點。因此常被用在數(shù)字電路及大電流高電壓的燈、繼電器、打印機錘和其它類似負載電路的接口處。也是本設計比較理想的驅(qū)動芯片。</p><p>  圖2-5 內(nèi)部構(gòu)造圖</p><p>  圖2-6 工作原理圖</p><p>  

46、由其內(nèi)部構(gòu)造圖和原理圖可知,該芯片是高電平有效、集電極輸出的開關元件。這里畫出原理圖供大家參考一下,其原理不再多說,只要懂得它的用法即可。下圖是ULN2003在電路中的用法,如圖2-7所示。</p><p><b>  圖2-7 驅(qū)動電路</b></p><p>  電路圖中的PA是豆?jié){機的兩路檢測電路:無水防干燒與防溢出。</p><p> 

47、 實現(xiàn)方法是:利用水的導電特性,將5V電壓放入缸體中及PA的1端放入缸體,再將P A的2端放入缸體,如果有水的話它們即通過水連接在一起,因為水的電阻在15K歐姆左右,不會引起電流過大,燒壞元器件。因而可以利用檢測ULN2003的2腳是否有高電平來判斷缸體內(nèi)是否有水。</p><p>  其具體方法是:將PA的2腳接在ULN2003的2腳,由于ULN2003的輸入端是高電平有效,當某一輸入端有效時,對應輸出端變?yōu)榻?/p>

48、地,這樣再將ULN2003輸出端的2腳接在單片機的P27腳上,通過單片機檢測其指定端口電平的高低,即可作出有水無水的判斷。同理,將PA的3腳放在接近缸口的地方,利用水的導電性與ULN2003的輸出端,單片機即可檢測有無溢出。值得注意的是,豆?jié){機什么時候溢出,是一個不確定的因素。根據(jù)單片機針對突發(fā)事件處理的功能,這里要接指定端口,即外部中斷端口P32或P33。</p><p>  因為單片機不能直接對交流電進行控制

49、,但可以控制繼電器的斷開與閉合,從而實現(xiàn)對交流電的控制。</p><p>  ULN2003的12腳、13腳,即輸出端的4腳、5腳為加熱器繼電器,即8腳繼電器的驅(qū)動控制端,因為豆?jié){機在工作的時候分為:高溫煮豆與文火熬漿,所以這里選用兩個繼電器來控制。在高溫煮豆時有繼電器K2工作,為加熱器接通220V電源。在文火熬漿時讓繼電器K3工作,為加熱器接通110V電源。為了安全期間,以防驅(qū)動芯片損壞,造成220V與110V

50、同時導通。這里采用具有互鎖功能的繼電器,確保它們不會同時得電而損壞元器件的器件[4]。</p><p>  接著是研磨、攪拌電機的繼電器驅(qū)動控制端ULN2003的11腳,即輸出端的6腳。這里沒有必要為豆?jié){機的電機采用調(diào)速控制,因為采用調(diào)速控制與不用調(diào)速控制,對豆?jié){的味道幾乎都沒有區(qū)別。但采用調(diào)速控制雖然可以減少電能損耗,卻要使豆?jié){機的成本增加。以企業(yè)對現(xiàn)在市場上豆?jié){機的定位及大眾對豆?jié){機的消費情況來看,不易采用調(diào)

51、速控制。在所有繼電器下面都并聯(lián)了一個續(xù)流二極管,用來對繼電器斷電后產(chǎn)生的電流進行處理。</p><p>  最下面ULN2003的第10腳,即輸出端的7腳,接的是蜂鳴器的驅(qū)動控制端,用于報警作用。</p><p>  ULN2003的所有驅(qū)動控制端,全部接在單片機上,由單片機根據(jù)情況來做出具體控制。對于ULN2003的部分輸入端口,驅(qū)動電流要求交大一點,可以在其對應段加一上拉電阻皆即可。&

52、lt;/p><p>  由于單片機上電時瞬間各I/O管腳默認為高電平,而ULN2003的輸入端是高電平有效,這樣在上電的一瞬間將會造成加熱器繼電器、電機繼電器誤動作。而加熱器繼電器電路才擁有互鎖功能,上電瞬間系統(tǒng)不會有什么表現(xiàn)。只需要在ULN2003驅(qū)動電機的控制端加一電平轉(zhuǎn)換即可,電路原理如圖2-8所示。</p><p>  圖2-8 電平轉(zhuǎn)換電路</p><p> 

53、 電路原理是:在ULN2003的電機控制端加一PNP三極管,使其工作在飽和與截止狀態(tài),因三極管是PNP型,在其控制端基極為低電平有效,這樣就可以完成電平轉(zhuǎn)換了。</p><p>  2.2.4 溫度傳感器的控制電路</p><p><b>  溫度傳感器的選擇 </b></p><p>  溫度傳感器有很多種,如熱電偶溫度傳感器、鉑電阻溫度傳感

54、器、紅外溫度傳感器、數(shù)字溫度傳感器等。為了便于實驗,并且自己有實物,本設計采用數(shù)字溫度傳感器DS18B20。</p><p>  DS18B20的簡介</p><p>  DS18B20是美國DALLAS半導體器件公司推出的單總線數(shù)字化智能集成溫度傳感器。單總線(1-Wire)是DALLAS公司的一項專有技術,它采用單根信號線,既傳輸時鐘又傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,具有節(jié)省I/O口線

55、資源、結(jié)構(gòu)簡單、成本低廉、便于總線擴展和維護等諸多優(yōu)點。[5]</p><p>  DS18B20 的特點及內(nèi)部構(gòu)造</p><p><b>  特點如下:</b></p><p> ?、俨捎锚毺氐膯慰偩€接口方式,即只有一根信號線與控制器相連,實現(xiàn)數(shù)據(jù)的雙向通信,不需要外部元件;</p><p> ?、跍y量結(jié)果直接輸出數(shù)

56、字溫度信號,以單總線串行傳送給控制器,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力;</p><p> ?、壑С侄帱c組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三根線上,實現(xiàn)組網(wǎng)多點測量;</p><p>  ④適應電壓范圍寬3.0-5.5V,不需要備份電源、可用數(shù)據(jù)線供電,溫度測量范圍為-55℃~125℃,-10℃~85℃時測量精度為±0.5℃;</p>&l

57、t;p> ?、萃ㄟ^編程可實現(xiàn)9~12位的數(shù)字值讀數(shù)方式,對應的可分辨溫度分別為0.5℃,0.25℃,0.125℃,0.0625℃,實現(xiàn)高精度測溫;</p><p>  ⑥負壓特性。電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。</p><p>  封裝圖及內(nèi)部構(gòu)造,如下圖所示。</p><p>  圖2-10 DS18B20的封裝</p>

58、<p><b>  引腳功能如下:</b></p><p>  NC:空引腳,懸空不使用;</p><p>  VDD:可選電源腳,電源電壓范圍3~5.5V。工作于寄生電源時,此引腳應接地;</p><p>  I/O:數(shù)據(jù)輸入/輸出腳,漏極開路,常態(tài)下高電平。</p><p>  DS18B20采用3腳TO

59、-92封裝或8腳SOIC及CSP封裝方式。圖2-8所示為DS18B20的內(nèi)部結(jié)構(gòu)框圖,它主要包括寄生電源、溫度傳感器、64位光刻ROM及單總線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式RAM)、存儲與控制邏輯、用于存儲用戶設定的溫度上下限值的TH和TL觸發(fā)器、結(jié)構(gòu)寄存器、8位循環(huán)冗余校驗碼(CRC)發(fā)生器等八部分。</p><p>  64位ROM的結(jié)構(gòu)如圖2-11所示,開始8位是產(chǎn)品類型的編號;接著是每個器件唯

60、一的序號,共48位;最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可采用單線進行通信的原因。非易失性溫度報警觸發(fā)器TH、TL,可以通過編程寫入用戶報警上下線數(shù)據(jù)。</p><p>  圖2-11 64位ROM示意圖</p><p>  DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EEPROM。</p><p>

61、  高速暫存RAM的結(jié)構(gòu)位9字節(jié)的存儲器,結(jié)構(gòu)如圖2-12所示。前兩個字節(jié)包括測得溫度的信息。3、4字節(jié)是TH和TL的拷貝,是易失的,每次上電復位時被刷新。第5字節(jié)為配置寄存器,其內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換頻率,DS18B20工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換成相應精度的數(shù)值。該字節(jié)各位的定義如圖2-13,其低5位一直為1;TM是測試模式位,用于設置DS18B20在工作模式還是在檢測模式,在DS18B20出廠時,該位被設置為0,用戶

62、不要去改動;R1和R2決定溫度轉(zhuǎn)換的精度位數(shù),即用來設置分辨率,其定義方法見表a。</p><p>  表a DS18B20分辨率的定義</p><p>  由表a可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且設定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應用中要將分辨率和轉(zhuǎn)換時間權衡考慮。</p><p>  高速暫存RAM的第6、7、8字節(jié)保留未用

63、,表現(xiàn)為全1.第9字節(jié)是前面8字節(jié)的CRC碼,可以用來檢驗數(shù)據(jù)的正確性。</p><p>  當DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在暫存RAM的第1、2字節(jié)中。</p><p>  單片機可以通過單線接口讀出該數(shù)據(jù)。的數(shù)據(jù)時低位在前,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。</p><

64、p><b>  表b 溫度值格式</b></p><p>  表b中,S表示符號位。當S=0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,在計算十進制值。表c是部分溫度值對應的二進制溫度表示數(shù)據(jù)。</p><p>  表c DS18B20溫度與表示值對應表</p><p&

65、gt;  DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容對照,若T>TH或T<TL,則將該器件內(nèi)的報警標志位置位,并對主機發(fā)出的報警搜索命令做出響應。[6]因此,可以用多個DS18B20同時測得溫度并進行報警搜索。</p><p>  在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機根據(jù)ROM的前56位來計算CRC值,并與存入DS18B20的CRC值作比

66、較,以判斷主機收到的ROM數(shù)據(jù)是否正確。</p><p>  關于DS18B20的工作原理這里就不再多說,有感興趣的可以查閱相關手冊。</p><p>  DS18B20的編程指令</p><p>  DS18B20的指令有:讀ROM(33H),匹配ROM(55H),跳過ROM(CCH),搜索ROM(F0H),報警搜索(ECH),穩(wěn)定轉(zhuǎn)換(44H),度暫存器(BEH

67、),寫暫存器(4EH),復制暫存器(48H),重調(diào)E2PROM(B8H),讀供電方式(B4H)。關于這些指令,這里也不再一一介紹,只把本設計用到的用法說一下。</p><p>  CCH-跳過ROM指令。忽略64位ROM地址,直接向DS18B20發(fā)溫度變換命令,適用于一個從機工作。</p><p>  44H-溫度轉(zhuǎn)換指令。啟動DS18B20進行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時最長為750ms(9位

68、93.75ms)。結(jié)果存入內(nèi)部9字節(jié)的RAM中。</p><p>  BEH-讀暫存器指令。讀內(nèi)部RAM中9字節(jié)的溫度數(shù)據(jù)。</p><p>  如圖2-14所示,是DS18B20在電路中的接發(fā),本設計采用的是單獨電源供電方式,下面將介紹其工作時序,有工作時序圖可以很清楚的知道該這樣控制DS18B20。</p><p>  圖2-14 DS18B20的工作電路<

69、;/p><p><b>  工作時序</b></p><p>  初始化時序,當主機將單總線P30從邏輯高拉到邏輯低時,即啟動一個寫時隙,所有的寫時隙必須在60~120us完成,且在每個循環(huán)之間至少需要1us的恢復時間。寫0和寫1時隙如圖所示。在寫0時隙期間,微控制器在整個時隙中將總線拉低;而寫1時隙期間,微控制器將總線拉低,然后在時隙起始后15us之釋放總線。時序圖如圖

70、2-15所示。</p><p>  圖2-15 初始化時序圖</p><p><b>  具體步驟如下:</b></p><p> ?、傧葘?shù)據(jù)線置高電平1。</p><p>  ②延時(時間應盡量短些)。</p><p> ?、蹟?shù)據(jù)線拉到低電平0。</p><p> ?、?/p>

71、延時750 μs(該范圍可以在480~960μs)。</p><p> ?、輸?shù)據(jù)線拉置高電平1.</p><p>  ⑥延時等待。如果初始化成功則在15~60ms內(nèi)產(chǎn)生一個由DS18B20返回的低電平0,據(jù)該狀態(tài)可以確定它的存在。但是應注意,不能無限地等待,不然會使程序進入死循環(huán),所以要進行超時判斷。若CPU讀到數(shù)據(jù)線上的低電平0后,還要進行延時,其延時的時間從發(fā)出高電平算起(第5)步的時

72、間算起)最少要480μs。</p><p>  ⑦將數(shù)據(jù)線再次拉置高電平1后結(jié)束。</p><p><b>  寫數(shù)據(jù)時序</b></p><p>  當主機將單總線P30從邏輯高拉到邏輯低時,即啟動一個寫時隙,所有的寫時隙必須在60~120us完成,且在每個循環(huán)之間至少需要1us的恢復時間。寫0和寫1時隙如圖所示。在寫0時隙期間,微控制器在整

73、個時隙中將總線拉低;而寫1時隙期間,微控制器將總線拉低,然后在時隙起始后15us之釋放總線。時序圖見圖2-16所示。</p><p>  圖2-16 寫數(shù)據(jù)時序圖</p><p><b>  具體步驟如下:</b></p><p>  ①數(shù)據(jù)線先置低電平0。</p><p> ?、谘訒r確定時間為15μs。按從低位到高位的

74、順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位)。</p><p> ?、垩訒r時間為45μs。</p><p> ?、軐?shù)據(jù)線拉到高電平1。</p><p> ?、葜貜廷佟莶襟E,直到發(fā)送完整個字節(jié)。</p><p> ?、拮詈髮?shù)據(jù)線拉高到1。</p><p><b>  讀數(shù)據(jù)時序</b></p>

75、<p>  DS18B20器件僅在主機發(fā)出讀時隙時,才向主機傳輸數(shù)據(jù)。所以在主機發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時隙,以便DS18B20能夠傳輸數(shù)據(jù)。所有的讀時隙至少需要60us,且在兩次獨立的讀時隙之間,至少需要1us的恢復時間。每個讀時隙都由主機發(fā)起,至少拉低總線1us。在主機發(fā)起讀時隙之后,DS18B20器件才開始在總線上發(fā)送0或1,若DS18B20發(fā)送1,則保持總線為高電平。若發(fā)送為0,則拉低總線當發(fā)送0時,DS18

76、B20在該時隙結(jié)束后,釋放總線,由上</p><p>  拉電阻將總線拉回至高電平狀態(tài)。DS18B20發(fā)出的數(shù)據(jù),在起始時隙之后保持有效時間為15us。因而主機在讀時隙期間,必須釋放總線。并且在時隙起始后的15us之內(nèi)采樣總線的狀態(tài)。時序圖見圖2-17所示。</p><p>  圖2-17 讀數(shù)據(jù)時序圖</p><p><b>  具體步驟如下:</

77、b></p><p>  ①將數(shù)據(jù)線拉高到1。</p><p><b> ?、谘訒r2μs。</b></p><p>  ③將數(shù)據(jù)線拉低到0。</p><p><b> ?、苎訒r6μs。</b></p><p> ?、輰?shù)據(jù)線拉高到1。</p><p&

78、gt;<b> ?、扪訒r4μs。</b></p><p> ?、咦x數(shù)據(jù)線的狀態(tài)得到一個狀態(tài)位,并進行數(shù)據(jù)處理。</p><p><b>  ⑧延時6μs。</b></p><p> ?、嶂貜廷佟卟襟E,直到讀取完一個數(shù)據(jù)。[7]</p><p>  2.2.5 按鍵與顯示指示電路 </p>

79、;<p>  1.豆?jié){機的按鍵電路</p><p>  豆?jié){機本身沒有太多功能鍵,在此對按鍵的設計采用獨立式按鍵,為節(jié)省元件,并提高集成度,對按鍵的消抖設計采用編程的方法。一下是按鍵部分電路圖。</p><p><b>  如圖2-18所示。</b></p><p>  圖2-18 豆?jié){機的按鍵電路</p><

80、p>  2.豆?jié){機顯示指示電路</p><p>  現(xiàn)在市場上豆?jié){機的顯示部分,一般都是按下某功能鍵,對應的功能指示燈亮,來表示當前的工作狀態(tài)。而一般用戶對豆?jié){機的顯示部分也沒過多要求,在此本設計顯示部分也采用LED指示燈。電路原理如圖2-19所示。</p><p>  圖2-19 顯示指示電路</p><p>  關于按鍵電路與顯示電路的原理,這里就不再敘述

81、。</p><p>  2.2.5 控制電路的電源電路 </p><p>  本系統(tǒng)所有芯片都需要+5V的工作電壓,雖然用干電池足能提供的電壓為1.5V的倍數(shù)的電壓,并且隨著使用時間的延長,其電壓會逐漸下降,想要得到穩(wěn)定的+5V工作電壓,可用給豆?jié){機供電的變壓器或開關電源上直接引出,只需要一穩(wěn)壓芯片L7805 即可。封裝模型及原理圖如下圖所示,關于其原理這里不再敘述。</p>

82、<p>  圖2-20 穩(wěn)壓芯片L7805</p><p>  圖2-21 穩(wěn)壓電路</p><p>  整體原理圖及元件明細表見附錄Ⅱ。</p><p><b>  3系統(tǒng)軟件設計</b></p><p>  在完成了硬件的設計之后,需要進行相應的軟件設計,對豆?jié){機的控制思想,是直接通過軟件編程來實現(xiàn)的。因

83、此,軟件部分是整個設計過程中最重要的部分之一,直接關系到豆?jié){機在工作中的穩(wěn)定性。本章先對程序運行的重要環(huán)節(jié)—DS18B20溫度傳感器的讀寫控制進行了說明,再針對各個功能模塊設計了相關軟件,各模塊間相互獨立,可用于測試各個部件的運行狀況。最后合成一個具有完整性能和多判斷的豆?jié){控制程序。</p><p>  3.1 溫度傳感器的讀寫控制程序</p><p>  DS18B20采用的是單總線傳輸

84、數(shù)據(jù),硬件電路十分簡單,但軟件編程卻相當麻煩。必須嚴格按照其時序圖編寫工作程序。</p><p>  DS18B20 的數(shù)據(jù)傳送端接在S51的P3.0端口上,流程圖及編寫程序如下:</p><p>  圖3-1 溫度轉(zhuǎn)換流程圖</p><p>  void intt(void) //18B20初始化子程序</p><

85、;p><b>  {</b></p><p><b>  uint i;</b></p><p>  DS=0;//數(shù)據(jù)線拉倒低電平</p><p>  i=103; //延時480us—960us</p><p>  while(i>0)i--;</

86、p><p>  DS=1;//將數(shù)據(jù)線拉到高電平</p><p>  i=4; //延時等待</p><p>  while(i>0)i--;</p><p><b>  }</b></p><p>  void tmpchange(void)

87、 //啟動DS18B20開始轉(zhuǎn)換溫度子程序 </p><p><b>  {</b></p><p>  intt(); </p><p><b>  delay(1);</b></p><p>  tmpwritebyte(0xcc); //跳過64位ROM指

88、令</p><p>  tmpwritebyte(0x44); //啟動18B20檢測溫度指令</p><p><b>  }</b></p><p>  uint tmp() //向單片機送去溫度數(shù)據(jù)子程序 </p><p><b>  {

89、 </b></p><p><b>  float tt;</b></p><p>  uchar a,b;</p><p>  intt(); //調(diào)用初始化</p><p>  delay(1);//延時1ms</p><p>  tmpwriteb

90、yte(0xcc); //發(fā)送跳過64位ROM指令</p><p>  tmpwritebyte(0xbe); //讀18B20的數(shù)據(jù)</p><p>  a=tmpread(); // 讀低8位溫度數(shù)據(jù)</p><p>  b=tmpread(); // 讀高8位溫度數(shù)據(jù)</p><p>&

91、lt;b>  temp=b;</b></p><p>  temp<<=8; //合并兩字節(jié)數(shù)據(jù)</p><p>  temp=temp|a;</p><p>  tt=temp*0.0625; //溫度數(shù)據(jù)轉(zhuǎn)換成十進制</p><p>  temp=tt*1

92、0+0.5; //減小誤差</p><p>  return temp; </p><p><b>  }</b></p><p>  3.2 無水防干燒與按鍵的編程思路</p><p>  無水防干燒是利用水的導電特性,將兩根導線分別接在5V電源與ULN2003輸入端的2腳上,其2腳對

93、應輸出端接在單片機的P27上。兩根導線分別放在缸內(nèi)兩個不同的地方。如果剛內(nèi)有水,兩根導線便通過水連在一起。水的電阻在15K歐姆左右,通上5V電源不會產(chǎn)生多大電流,但足夠給ULN2003的輸入端提供一高電平,使其導通。這樣它的對應輸出端,即單片機的P27被拉為低電平。在編程時,只要對P27的狀態(tài)進行檢測,便知道缸內(nèi)是否有水。</p><p>  按鍵程序的編寫同樣也是靠單片機對其對應端口進行檢測,通過判斷其管腳電平

94、的高低來確定是否有鍵按下,對應什么處理程序,然后有單片機進行處理。無水防干燒與按鍵程序過于簡單這里不再舉出,可在附表中查詢。</p><p>  3.3 煮豆、打漿及防溢出的編程及思路</p><p>  程序的編寫主要是根據(jù)豆?jié){機的工作流程而定。從豆?jié){機煮豆開始,溫度傳感器就在不停的檢測水的溫度。當水溫達到設定值時,開始第一次打漿,并啟動定時器0,為打漿計時。一般第一次打漿是幾秒鐘,主要

95、是使缸體內(nèi)的水能全面加熱。定時器0計時3秒后,關斷定時器0,關斷電機,啟動定時器1開始計時,再經(jīng)過兩分鐘的加熱,才開始正式的打漿。打漿時間有是預先設定好的,由定時器0計時控制,時間到關斷打漿,啟動加熱。有單片機控制打漿次數(shù),當打到第三遍時,啟動標志位,將加熱器切換到熬漿當。如此循環(huán)判斷,繼續(xù)上述過程,直到打漿結(jié)束,啟動結(jié)束標志位,在下次循環(huán)時啟動報警。在整個工作流程中,打漿與加熱是輪流進行的。有軟件編程使其在內(nèi)部以自鎖形式存在。關于定時

96、器的應用,將于豆?jié){機的防益功能一起介紹。</p><p>  豆?jié){機的防益功能是采用單片機的中斷系統(tǒng)來完成的,定時器計時功能用的也是中斷系統(tǒng)。具體用法,下面將一一介紹。</p><p><b>  防益外部中斷</b></p><p>  本設計的防益功能,是通過51單片機的中斷控制功能實現(xiàn)的。MCS-51系列單片機有5個中斷源,可分為2個中斷

97、優(yōu)先級。本防益功能所用到的中斷源為外部中斷0。其請求信號由P3.2輸入,請求信號有效電平由IT0設置,一旦輸入信號有效,則將TCON中的IE0標志位置1,可向CUP申請中斷。</p><p>  以下操作位本設計不用的的就不再敘述,可查閱相關資料。</p><p>  MCS-51系統(tǒng)中斷控制由3個專用寄存器組成。[8]</p><p>  中斷請求標志寄存器TCO

98、N,該字節(jié)各位的定義如圖3-2所示。</p><p>  圖3-2 TCON各位的定義</p><p>  其中IE0/IE1為外部中斷零的申請標志位。當外部中斷源有請求時,該位置1,其復位由觸發(fā)方式來設置。IT0/IT1為外部中斷觸發(fā)方式設置位,IT0/IT1=0時,為電平觸發(fā)方式,該方式下,CUP每個機器周期對外部中斷源采樣,如果為低電平,則進入中斷。該方式中CUP響應中斷后不能自動清

99、除IE標志位,所以中斷返回前,外部中斷源引腳上的低電平必須撤銷。IT0/IT1=1時為脈沖觸發(fā)方式,即在兩個相鄰的機器周期內(nèi)P32/P33上的電平發(fā)生由高到低的跳變即進入中斷IE=1保持到CUP響應中斷時,才由硬件清除,該方式下,中斷源低電平需要至少保持一個機器周期。</p><p>  中斷允許和禁止寄存器IE,圖3-3是其各位的定義。</p><p>  圖3-3 中斷允許寄存器各位的

100、定義</p><p>  其中,EA為總中斷允許位,當EA=1時開放中斷,當EA=0時關斷一切中斷。EX0為外部中斷0允許位,EX0=1時允許中斷。其余位的操作一樣。</p><p>  ET0為定時器0中斷允許位。</p><p>  EX1為外部中斷1中斷允許位。</p><p>  ET1為定時器1中斷允許位。</p>&

101、lt;p>  中斷優(yōu)先級寄存器IP,其各位的定義如圖3-4所示。</p><p>  圖3-4 中斷優(yōu)先級寄存器各位的定義</p><p>  其中PX0為外部中斷0優(yōu)先級設定。當PX0=1時,外部中斷0為高優(yōu)先級。</p><p>  當PX0=0時,外部中斷0位低優(yōu)先級。其余位也是如此。</p><p>  PT0為定時器0優(yōu)先級設

102、定。</p><p>  PX1為外部中斷1優(yōu)先級設定。</p><p>  PT1為定時器1優(yōu)先級設定。</p><p>  防益功能中斷程序的編寫如下:</p><p>  void int0()interrupt 0 //防溢出程序</p><p>  { p32=1; </p

103、><p>  p33=p34=0; //關斷加熱器</p><p>  biao=1; //置位延時標志位</p><p>  yans=jishu1; //賦計時初值</p><p>  wence(); //延時</p><p><b>  }</b&

104、gt;</p><p>  定時/計數(shù)器內(nèi)部中斷</p><p>  定時/計數(shù)器的工作方式有4種。工作方式設置寄存器TMOD,其各位的定義如圖3-5所示。</p><p>  圖3-5 TMOD各位的定義</p><p>  TMOD的低4位為定時器0的方式字段,高4位為定時器1的方式字段,它們的含義完全相同。</p><

105、;p>  M1和M0為定時器工作方式選擇位。其定義如圖3-6所示。</p><p>  定時/計數(shù)器分內(nèi)部計數(shù)與外部計數(shù)。當C/T=1時,為外部計數(shù),等于0時為內(nèi)部計數(shù)。當TR0/TR1為1時,啟動定時器,內(nèi)部計數(shù)是對單片機內(nèi)部時鐘周期進行計數(shù),外部計數(shù)是對外部脈沖計數(shù)(來自單片機P34或P35端口)當計滿數(shù)后,置位中斷標志位TF0/TF1,如果中斷允許寄存器允許,在下一機器周期,CPU響應中斷請求,進入中

106、斷服務子程序。其中斷設置方式與外部中斷相同。</p><p>  在使用時一定先給其專用寄存器TH0、TL0或TH1、TL1賦初值,以免發(fā)生意想不到的錯誤,增加調(diào)試難度。以下是定時器的中斷服務程序。</p><p>  void t0()interrupt 1 //轉(zhuǎn)數(shù)控制程序</p><p><b>  {</b></p>

107、<p>  TH0=0x3c; //賦初值</p><p><b>  TL0=0xb0;</b></p><p><b>  jishi++;</b></p><p>  if(jishi==20)//一秒判斷</p><p><b>  { <

108、;/b></p><p>  jishi=0;jishu++;</p><p>  if(jishu==a) //判斷打漿是否結(jié)束</p><p>  {p35=1;TR1=1;jishu=0;TR0=0;} //關閉打漿電機,啟動T1,關閉T0 </p><p><b>  }</b></

109、p><p><b>  }</b></p><p>  void t1()interrupt 3 //熬煮時間控制程序</p><p><b>  {</b></p><p>  TH1=0x3c; //為定時器賦初值</p><p><b>

110、;  TL1=0xb0;</b></p><p>  jishi1++; </p><p>  if(jishi1==100) //5秒判斷</p><p>  {jishi1=0;jishu1++;</p><p>  if(jishu1-yans==1)biao=0;yans=jishu1;//溢出后延

111、時5秒的判斷</p><p>  if(jishu1==6&&zhonglei>0) //判斷熬煮時間是否結(jié)束</p><p>  { jishu1=0;cisu++; //記錄打漿次數(shù)</p><p>  if(cisu==1)a=10; //根據(jù)打漿次數(shù)設置打漿時間</p>

112、<p>  else if(cisu==2)a=15; </p><p>  else if(cisu==3)a=20;</p><p>  else a=30;</p><p>  TR0=1;TR1=0;zhonglei--;p34=p33=0;p35=0; //熬煮結(jié)束,關閉T1,啟動T0</p><p>  }

113、 //判斷是否進入延時熬漿</p><p>  if(zhonglei==0)</p><p><b>  {</b></p><p><b>  jishi1=0;</b></p><p>  if(jishu1==(7-cisu)*10) </p><p&g

114、t;  {F0=0;biao4=1;TR1=0;}</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  3.4 整體程序</b></p>&l

115、t;p>  以上所述的幾大功能模塊之間有一定的聯(lián)系,定時器0、定時器1和外部中斷0之間有一定的互鎖性,因為他們是豆?jié){機控制程序的核心,溫度傳感器與按鍵稍加改動都可以獨立使用,分別完成不同的任務。而把它們聯(lián)系到一塊,則可以形成一個完整的程序,使豆?jié){機可以完成幾種不同的任務。</p><p>  整體程序流程圖見附錄Ⅰ。</p><p>  整體程序代碼見附錄Ⅰ。</p>

溫馨提示

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

評論

0/150

提交評論