1、設計內容與要求1、通過按鍵設置溫度上、下限,基準溫度20℃,AD信號的0V~5V對應-20℃~70℃。
2、讀入A/D轉換數據,若數據<=下限,則顯示溫度、溫度調節范圍并顯示L,并使步進電機正轉,若數據>上限,則顯示溫度、溫度調節范圍并顯示H,并使步進電機反轉,下限<若數據<=上限,則顯示溫度、溫度調節范圍并顯示C,步進電機不轉動。
3、本機地址為08H,當接到上位機發的08H(P1.0口接開關,高電平發送)時,則回發08H,且本機P1.4口輸出高電平,上位機接受后P1.3口輸出高電平。
當接到上位機發的AAH(P1.1口接開關,高電平發送)時,則將當前溫度發給上位機,且本機P1.5口輸出高電平,上位機數碼管顯示溫度。
當收到上位機發的55H(P1.2口接開關,高電平發送)時,下位機修改設定上、下限,且本機P1.6口輸出高電平,數碼管全部顯示0。
當收到上位機發送的信號不是上面三個時,本機P1.7口輸出高電平,數碼管全部顯示0。
2、設計方案本設計采用AT89C51單片機實現。單片機軟件編程的自由度大,可通過編程實現各種各樣的算術算法和邏輯控制,而且體積小,硬件實現簡單,安裝方便,可以與PC機進行通信。
本設計利用單片機最小系統和ADC0809芯片、電位計設計溫度采集系統。并設計一個人機接口電路:鍵盤采用獨立式按鍵(功能是調節溫度的上下限),同時設計了步進電機控制電路,顯示器采用共陰極LED顯示。系統的總體設計方案框圖如圖1所示:

圖1
按照系統設計功能的要求,系統主要由單片機、ADC0809芯片、電位器、步進電機、LED數碼顯示管和PC機等組成,如圖2所示:

圖2
系統的硬件電路主要由復位電路、顯示電路、AD轉換電路、步進電路控制電路、晶振電路組成,系統總體結構方框圖如圖3所示:

圖3
3、方案實現3.1系統的軟件設計本系統的軟件設計主要可分為主程序,AD轉換程序,溫度顯示程序,步進電機控制程序,中斷系統程序等幾個模塊。
1、主程序⑴功能
主程序的主要功能是負責讀取當前溫度,并進行判斷,從而實時顯示溫度并根據判斷結果控制步進電機的工作。
⑵程序流程圖
如圖4所示:

圖4
2、AD轉換程序⑴功能
AD轉換程序分為AD采樣程序和采樣溫度轉換程序兩部分。其中,AD采樣程序的功能是啟動AD轉換并在100μs的延時后得到AD采樣值;采樣溫度轉換程序的功能是得到16次AD采樣值,然后取平均值,得到平均AD采樣值,并通過公式將平均AD采樣值轉換為實際溫度。
⑵程序流程圖
如圖5所示:

圖5
3、溫度顯示程序⑴功能
溫度顯示程序分為數碼管溫度顯示程序和顯示數據刷新程序。數碼管溫度顯示程序的功能是將數碼管需要顯示的溫度與溫度上下限進行比較,并送入相應的段碼,讓數碼管顯示溫度的正負(若為正顯示0,若為負顯示負號)、當前溫度、溫度狀態(L、C、H)以及溫度上下限的范圍;顯示數據刷新程序的功能是利用定時器T0,定時1ms,每隔1ms從右到左依次點亮數碼管,并進行循環,數碼管能夠進行動態、平穩的顯示。
⑵程序流程圖
如圖6所示:

圖6
4、步進電機控制程序⑴功能
步進電機控制程序的功能是通過判斷步進電機工作方式控制位,控制步進電機的正轉以及反轉。
⑵程序流程圖
如圖7所示:

圖7
5、中斷系統程序⑴功能
中斷系統程序分為溫度上下限設定程序和串口通信程序。溫度上下設定程序的功能是通過兩個外部中斷程序,采用下降沿觸發方式并設置兩個按鍵來設定上下限;串口通信程序的功能是通過串口中斷,并選擇串行口方式2的工作方式,進行數據的接受和發送。
⑵程序流程圖
如圖8所示:

圖8
3.2系統的硬件設計本系統的硬件設計主要可分為時鐘電路、復位電路、AD轉換、步進電機、數碼顯示及串口通信等幾個模塊。
1、時鐘電路如圖9:

圖9
2、復位電路如圖10:

圖10
3、AD轉換如圖11:

圖11
4、步進電機如圖12:

圖12
5、數碼顯示如圖13:

圖13
6、串口通信如圖14:

圖14
7、完整原理圖如圖15:

圖15
4、系統調試系統的軟件調試借助于Lab6000通用微控制器實驗系統。在進行系統軟件的連續調試之前要先進行軟件的初調,就是要使各個子程序模塊運行正確,程序的運行流程正確。軟件調試主要分以下幾個步驟進行:
1、功能子程序的調試功能子程序的調試包括AD轉換、溫度顯示以及步進電機控制等子程序的調試。在調試功能子程序時,許多參數都是未知的,要根據其所需的條件,給出假定的數據,使其運行,如果能完成預定的處理功能或與手工計算的結果相符,就說明該子程序己調試通過。調試時由小到大,由里到外。例如,調試溫度顯示子程序時,先調通其需要的AD轉換子程序和參數處理子程序,然后將它們連起來進行通調。通調時,也是假定一些數據、參數和初始條件,然后運行程序。當運算結果與手工計算的結果相同時,該算法子程序則調試完成,反之,就要進行相應的修改。其它子程序的調試同理。
2、程序流程的調試
程序流程的調試主要是查看程序運行的步驟是否正確,在某時刻程序運行所處的位置是否正確,是否能正確運行各個中斷服務程序。在調試過程中,在各個中斷服務子程序設置斷點,然后運行程序,查看程序是否能運行到所有的斷點,若所有斷點都能運行到,則程序流程基本正確。
3、程序的通調
在完成整個程序流程的調試后,運行程序,進行程序的通調,通過器件的現象來判斷程序的正確性。若不正確則設置斷點檢查錯誤。
如圖16為上位機調試實物圖:

圖16
如圖17為下位機調試實物圖:

圖17
5、結論本次測溫系統設計主要由AT89C51和ADC0809來實現功能。因此需要通過查閱資料來了解這些器件的基本結構,主要功能和注意事項等等。
整個設計從確定題目,到尋找相關資料,再到選擇合適的器件,接著對電路圖的繪制,程序的編寫,最終調試。一步步走過來,一點點的進步,花了大量的時間和精力,而成果也是喜人的。
通過這次設計,不僅鍛煉自己分析問題、處理問題的能力,還提高了自己的動手能力。在以后的學習中,要理論聯系實際,把我們所學的理論知識用到實際當中,學習單片機更是如此,程序只有在經常的寫與讀的過程中才能提高,這是我在這次課程設計中的最大收獲。但同時也發現了自己的不足,特別是在程序的編寫方面,有些細節部分沒有考慮到,比如開始沒有考慮到雙機通信時獨立運行的問題,這樣編出的程序運行起來效率會大大降低,沒有實用性,但在不斷的改進中,最終解決了這個問題;但在上位機實現對下位機的溫度調控這一設計中,沒有設計好,未能實現遠距離溫度控制,自己程序方面還有待加強。
總的來說,自己從此課程設計收獲了很多,一個設計的完成需要團隊間的密切合作,而且需要提升自己的自學能力,腳踏實地。通過這次設計,相信自己在未來的學習和生活中會繼續努力,提升自己的知識水平,不斷完善自我。
參考文獻[1]《單片機原理與應用設計》第二版.張毅剛主編.電子工業出版社
[2]《Altium Designer電路設計標準教程》程曉鴿編著.科學出版社
附錄上位機程序