1、通過(guò)按鍵設(shè)置溫度上、下限,基準(zhǔn)溫度20℃,AD信號(hào)的0V~5V對(duì)應(yīng)-20℃~70℃。
2、讀入A/D轉(zhuǎn)換數(shù)據(jù),若數(shù)據(jù)<=下限,則顯示溫度、溫度調(diào)節(jié)范圍并顯示L,并使步進(jìn)電機(jī)正轉(zhuǎn),若數(shù)據(jù)>上限,則顯示溫度、溫度調(diào)節(jié)范圍并顯示H,并使步進(jìn)電機(jī)反轉(zhuǎn),下限<若數(shù)據(jù)<=上限,則顯示溫度、溫度調(diào)節(jié)范圍并顯示C,步進(jìn)電機(jī)不轉(zhuǎn)動(dòng)。
3、本機(jī)地址為08H,當(dāng)接到上位機(jī)發(fā)的08H(P1.0口接開(kāi)關(guān),高電平發(fā)送)時(shí),則回發(fā)08H,且本機(jī)P1.4口輸出高電平,上位機(jī)接受后P1.3口輸出高電平。
當(dāng)接到上位機(jī)發(fā)的AAH(P1.1口接開(kāi)關(guān),高電平發(fā)送)時(shí),則將當(dāng)前溫度發(fā)給上位機(jī),且本機(jī)P1.5口輸出高電平,上位機(jī)數(shù)碼管顯示溫度。
當(dāng)收到上位機(jī)發(fā)的55H(P1.2口接開(kāi)關(guān),高電平發(fā)送)時(shí),下位機(jī)修改設(shè)定上、下限,且本機(jī)P1.6口輸出高電平,數(shù)碼管全部顯示0。
當(dāng)收到上位機(jī)發(fā)送的信號(hào)不是上面三個(gè)時(shí),本機(jī)P1.7口輸出高電平,數(shù)碼管全部顯示0。
2、設(shè)計(jì)方案本設(shè)計(jì)采用AT89C51單片機(jī)實(shí)現(xiàn)。單片機(jī)軟件編程的自由度大,可通過(guò)編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便,可以與PC機(jī)進(jìn)行通信。
本設(shè)計(jì)利用單片機(jī)最小系統(tǒng)和ADC0809芯片、電位計(jì)設(shè)計(jì)溫度采集系統(tǒng)。并設(shè)計(jì)一個(gè)人機(jī)接口電路:鍵盤(pán)采用獨(dú)立式按鍵(功能是調(diào)節(jié)溫度的上下限),同時(shí)設(shè)計(jì)了步進(jìn)電機(jī)控制電路,顯示器采用共陰極LED顯示。系統(tǒng)的總體設(shè)計(jì)方案框圖如圖1所示:
圖1
按照系統(tǒng)設(shè)計(jì)功能的要求,系統(tǒng)主要由單片機(jī)、ADC0809芯片、電位器、步進(jìn)電機(jī)、LED數(shù)碼顯示管和PC機(jī)等組成,如圖2所示:
圖2
系統(tǒng)的硬件電路主要由復(fù)位電路、顯示電路、AD轉(zhuǎn)換電路、步進(jìn)電路控制電路、晶振電路組成,系統(tǒng)總體結(jié)構(gòu)方框圖如圖3所示:
圖3
3、方案實(shí)現(xiàn)3.1系統(tǒng)的軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)主要可分為主程序,AD轉(zhuǎn)換程序,溫度顯示程序,步進(jìn)電機(jī)控制程序,中斷系統(tǒng)程序等幾個(gè)模塊。
1、主程序⑴功能
主程序的主要功能是負(fù)責(zé)讀取當(dāng)前溫度,并進(jìn)行判斷,從而實(shí)時(shí)顯示溫度并根據(jù)判斷結(jié)果控制步進(jìn)電機(jī)的工作。
⑵程序流程圖
如圖4所示:
圖4
2、AD轉(zhuǎn)換程序⑴功能
AD轉(zhuǎn)換程序分為AD采樣程序和采樣溫度轉(zhuǎn)換程序兩部分。其中,AD采樣程序的功能是啟動(dòng)AD轉(zhuǎn)換并在100μs的延時(shí)后得到AD采樣值;采樣溫度轉(zhuǎn)換程序的功能是得到16次AD采樣值,然后取平均值,得到平均AD采樣值,并通過(guò)公式將平均AD采樣值轉(zhuǎn)換為實(shí)際溫度。
⑵程序流程圖
如圖5所示:
圖5
3、溫度顯示程序⑴功能
溫度顯示程序分為數(shù)碼管溫度顯示程序和顯示數(shù)據(jù)刷新程序。數(shù)碼管溫度顯示程序的功能是將數(shù)碼管需要顯示的溫度與溫度上下限進(jìn)行比較,并送入相應(yīng)的段碼,讓數(shù)碼管顯示溫度的正負(fù)(若為正顯示0,若為負(fù)顯示負(fù)號(hào))、當(dāng)前溫度、溫度狀態(tài)(L、C、H)以及溫度上下限的范圍;顯示數(shù)據(jù)刷新程序的功能是利用定時(shí)器T0,定時(shí)1ms,每隔1ms從右到左依次點(diǎn)亮數(shù)碼管,并進(jìn)行循環(huán),數(shù)碼管能夠進(jìn)行動(dòng)態(tài)、平穩(wěn)的顯示。
⑵程序流程圖
如圖6所示:
圖6
4、步進(jìn)電機(jī)控制程序⑴功能
步進(jìn)電機(jī)控制程序的功能是通過(guò)判斷步進(jìn)電機(jī)工作方式控制位,控制步進(jìn)電機(jī)的正轉(zhuǎn)以及反轉(zhuǎn)。
⑵程序流程圖
如圖7所示:
圖7
5、中斷系統(tǒng)程序⑴功能
中斷系統(tǒng)程序分為溫度上下限設(shè)定程序和串口通信程序。溫度上下設(shè)定程序的功能是通過(guò)兩個(gè)外部中斷程序,采用下降沿觸發(fā)方式并設(shè)置兩個(gè)按鍵來(lái)設(shè)定上下限;串口通信程序的功能是通過(guò)串口中斷,并選擇串行口方式2的工作方式,進(jìn)行數(shù)據(jù)的接受和發(fā)送。
⑵程序流程圖
如圖8所示:
圖8
3.2系統(tǒng)的硬件設(shè)計(jì)本系統(tǒng)的硬件設(shè)計(jì)主要可分為時(shí)鐘電路、復(fù)位電路、AD轉(zhuǎn)換、步進(jìn)電機(jī)、數(shù)碼顯示及串口通信等幾個(gè)模塊。
1、時(shí)鐘電路如圖9:
圖9
2、復(fù)位電路如圖10:
圖10
3、AD轉(zhuǎn)換如圖11:
圖11
4、步進(jìn)電機(jī)如圖12:
圖12
5、數(shù)碼顯示如圖13:
圖13
6、串口通信如圖14:
圖14
7、完整原理圖如圖15:
圖15
4、系統(tǒng)調(diào)試系統(tǒng)的軟件調(diào)試借助于Lab6000通用微控制器實(shí)驗(yàn)系統(tǒng)。在進(jìn)行系統(tǒng)軟件的連續(xù)調(diào)試之前要先進(jìn)行軟件的初調(diào),就是要使各個(gè)子程序模塊運(yùn)行正確,程序的運(yùn)行流程正確。軟件調(diào)試主要分以下幾個(gè)步驟進(jìn)行:
1、功能子程序的調(diào)試功能子程序的調(diào)試包括AD轉(zhuǎn)換、溫度顯示以及步進(jìn)電機(jī)控制等子程序的調(diào)試。在調(diào)試功能子程序時(shí),許多參數(shù)都是未知的,要根據(jù)其所需的條件,給出假定的數(shù)據(jù),使其運(yùn)行,如果能完成預(yù)定的處理功能或與手工計(jì)算的結(jié)果相符,就說(shuō)明該子程序己調(diào)試通過(guò)。調(diào)試時(shí)由小到大,由里到外。例如,調(diào)試溫度顯示子程序時(shí),先調(diào)通其需要的AD轉(zhuǎn)換子程序和參數(shù)處理子程序,然后將它們連起來(lái)進(jìn)行通調(diào)。通調(diào)時(shí),也是假定一些數(shù)據(jù)、參數(shù)和初始條件,然后運(yùn)行程序。當(dāng)運(yùn)算結(jié)果與手工計(jì)算的結(jié)果相同時(shí),該算法子程序則調(diào)試完成,反之,就要進(jìn)行相應(yīng)的修改。其它子程序的調(diào)試同理。
2、程序流程的調(diào)試
程序流程的調(diào)試主要是查看程序運(yùn)行的步驟是否正確,在某時(shí)刻程序運(yùn)行所處的位置是否正確,是否能正確運(yùn)行各個(gè)中斷服務(wù)程序。在調(diào)試過(guò)程中,在各個(gè)中斷服務(wù)子程序設(shè)置斷點(diǎn),然后運(yùn)行程序,查看程序是否能運(yùn)行到所有的斷點(diǎn),若所有斷點(diǎn)都能運(yùn)行到,則程序流程基本正確。
3、程序的通調(diào)
在完成整個(gè)程序流程的調(diào)試后,運(yùn)行程序,進(jìn)行程序的通調(diào),通過(guò)器件的現(xiàn)象來(lái)判斷程序的正確性。若不正確則設(shè)置斷點(diǎn)檢查錯(cuò)誤。
如圖16為上位機(jī)調(diào)試實(shí)物圖:
圖16
如圖17為下位機(jī)調(diào)試實(shí)物圖:
圖17
5、結(jié)論本次測(cè)溫系統(tǒng)設(shè)計(jì)主要由AT89C51和ADC0809來(lái)實(shí)現(xiàn)功能。因此需要通過(guò)查閱資料來(lái)了解這些器件的基本結(jié)構(gòu),主要功能和注意事項(xiàng)等等。
整個(gè)設(shè)計(jì)從確定題目,到尋找相關(guān)資料,再到選擇合適的器件,接著對(duì)電路圖的繪制,程序的編寫(xiě),最終調(diào)試。一步步走過(guò)來(lái),一點(diǎn)點(diǎn)的進(jìn)步,花了大量的時(shí)間和精力,而成果也是喜人的。
通過(guò)這次設(shè)計(jì),不僅鍛煉自己分析問(wèn)題、處理問(wèn)題的能力,還提高了自己的動(dòng)手能力。在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單片機(jī)更是如此,程序只有在經(jīng)常的寫(xiě)與讀的過(guò)程中才能提高,這是我在這次課程設(shè)計(jì)中的最大收獲。但同時(shí)也發(fā)現(xiàn)了自己的不足,特別是在程序的編寫(xiě)方面,有些細(xì)節(jié)部分沒(méi)有考慮到,比如開(kāi)始沒(méi)有考慮到雙機(jī)通信時(shí)獨(dú)立運(yùn)行的問(wèn)題,這樣編出的程序運(yùn)行起來(lái)效率會(huì)大大降低,沒(méi)有實(shí)用性,但在不斷的改進(jìn)中,最終解決了這個(gè)問(wèn)題;但在上位機(jī)實(shí)現(xiàn)對(duì)下位機(jī)的溫度調(diào)控這一設(shè)計(jì)中,沒(méi)有設(shè)計(jì)好,未能實(shí)現(xiàn)遠(yuǎn)距離溫度控制,自己程序方面還有待加強(qiáng)。
總的來(lái)說(shuō),自己從此課程設(shè)計(jì)收獲了很多,一個(gè)設(shè)計(jì)的完成需要團(tuán)隊(duì)間的密切合作,而且需要提升自己的自學(xué)能力,腳踏實(shí)地。通過(guò)這次設(shè)計(jì),相信自己在未來(lái)的學(xué)習(xí)和生活中會(huì)繼續(xù)努力,提升自己的知識(shí)水平,不斷完善自我。
參考文獻(xiàn)[1]《單片機(jī)原理與應(yīng)用設(shè)計(jì)》第二版.張毅剛主編.電子工業(yè)出版社
[2]《Altium Designer電路設(shè)計(jì)標(biāo)準(zhǔn)教程》程曉鴿編著.科學(xué)出版社
附錄
上位機(jī)程序
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |