單片機課程設計多路數字溫度測量系統(tǒng)設計_第1頁
單片機課程設計多路數字溫度測量系統(tǒng)設計_第2頁
單片機課程設計多路數字溫度測量系統(tǒng)設計_第3頁
單片機課程設計多路數字溫度測量系統(tǒng)設計_第4頁
單片機課程設計多路數字溫度測量系統(tǒng)設計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設計報告題目名稱:多路數字溫度測量系統(tǒng)設計 系: 電 專 業(yè): 電 班 級: 學 號: 學生姓名: 指導教師: 職 稱: 年 月 日 一、摘要計算機技術的發(fā)展和普及提升了數據采集系統(tǒng)的技術水平。在生產過程中,應用數據采集系統(tǒng)可對生產現場的工藝參數進行采集、監(jiān)視和記錄,以方便人們對數據結果做出分析判斷。基于匯編語言的多路溫度采集與處理系統(tǒng),可以實現對多路不同溫度進行實時檢測,通過led顯示當前溫度值,可以更直觀的觀察數據、更便捷的對系統(tǒng)進行控制。本課題以內置a/d轉換器的單片機stc12c5a32ad為核心,對多路的溫度進行實時巡檢。采用多個模擬溫度傳感器lm35測量多路溫度。通過lm

2、358構成的同相放大器對模擬溫度信號進行放大,然后送至單片機處理。處理后由四位led數碼管對八路溫度予以動態(tài)顯示。通過獨立式鍵盤可對測量進行操控。同時該系統(tǒng)還具有報警功能,實現當測量溫度超出-55125時發(fā)出報警。本文結合實際使用經驗,介紹了lm35溫度傳感器在單片機下的硬件連接及軟件編程,并給出了流程圖。 關鍵詞:單片機;溫度傳感器;放大器;數碼管顯示;鍵盤二、總體方案設計方案的闡述與特點:本設計方案以lm35為溫度傳感器、內置a/d轉換器單片機stc89le516ad為控制核心組成多點溫度測量系統(tǒng),該系統(tǒng)包括傳感器及其放大電路、復位電路、晶振電路、報警電路、鍵盤與顯示、基準電壓電路組成。1

3、、本方案系統(tǒng)框圖為: 圖1 總體系統(tǒng)框圖2、 基本工作原理: 如圖1所示本設計以lm35模擬溫度傳感器對八路溫度進行實時測量,其輸出電壓經由lm358構成的同相放大器放大后送至單片機的a/d輸入口。單片機對輸入信號進行模數轉換執(zhí)行軟件程序后,由led數碼管顯示溫度值,每秒切換一個通道進行輪流顯示。通過鍵盤可以隨時查看指定通道的溫度值,當任何一路溫度的3次平均值超過設定的下限值或上限值時,發(fā)出警告。3、它有如下特點:(1)可以監(jiān)測8路環(huán)境溫度信號,可以擴充;對8路模擬信號輸入進行循環(huán)采集,每路連線采集三次,取平均值。(2)測量范圍為-55+125,精度為0.5(3)lcd液晶顯示或用4位led數

4、碼管進行循環(huán)顯示,其中最高位通道提示符ah,低三位顯示實際溫度值,每秒切換一個通道進行輪流顯示;(4)鍵盤控制,可隨時查看指定通道的溫度值;(5)可分別設定每一路的上限制和下限值,若采集平均值超過設定范圍,則對應通道指示燈閃爍10后一直亮,指示燈閃爍是喇叭發(fā)聲,以示警告。三、系統(tǒng)硬件設計本課題的整個系統(tǒng)是由傳感器及其信號放大電路、單片機、顯示電路、鍵盤電路、穩(wěn)壓電路、晶振電路、復位電路等構成。3.1控制器-單片機設計:本設計采用的單片機為stc12c5a32ad stc12c5a32ad單片機是單時鐘/ 機器周期(1t)的兼容8051 內核單片機,是高速/ 低功耗的新一代單片機,全新的流水線/

5、 精簡指令集結構。stc12c5a32ad單片機主要性能:高速:1個時鐘/機器周期,risc型8051內核,速度比普通8051快12倍工作電壓:5.5v-3.3v低功耗設計:空閑模式,掉電模式(可由外部中斷喚醒)工作頻率:035mhz時鐘:外部晶體或內部rc 振蕩器可選芯片內e2prom 功能 isp/iap,在系統(tǒng)可編程/在應用可編程,無需仿真器 8位8通道adc,轉換速度可達300k/s 2個硬件16位定時器,兼容普通8051 的定時器。再加上2 路pca 還可再實現2個16位定時器硬件看門狗(wdt)全雙工異步串行口(uart),由于stc12系列單片機是高速的8051,可再用定時器或p

6、ca軟件實現多串口如圖3.1為stc12c5a32ad引腳圖,各引腳功能說明如下: 圖3.1 stc12c5a32ad引腳圖 vcc: 電源 gnd: 地 p0 口:p0口是一個8位的雙向i/o口。對p0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,p0口也被作為低8位地址/數據復用。 p1 口:p1 口是一個具有內部上拉電阻的8 位雙向i/o 口,同時也是模擬量輸入口,可以對8路模擬量進行模數轉換。 p2 口:p2 口是一個具有內部上拉電阻的8 位雙向i/o 口。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執(zhí)行movx dptr)時,p2 口送出高八位地址。

7、 p3 口:p3 口是一個具有內部上拉電阻的8 位雙向i/o 口。p3口亦作為特殊功能口使用,如表3-1所示。 表3-1 stc12c5a32ad引腳號特殊功能p3.0 rxd(串行輸入)p3.1 txd(串行輸出)p3.2 int0(外部中斷0)p3.3 int0(外部中斷0)p3.4 t0(定時器0外部輸入和定時器0時鐘頻率輸出)p3.5 t1(定時器1外部輸入和定時器1時鐘頻率輸出)p3.6wr(外部數據存儲器寫選通)p3.7 rd(外部數據存儲器讀選通) rst: 復位輸入,晶振工作時,rst腳持續(xù)2個機器周期高電平將使單片機復位。 ale:地址鎖存控制信號(ale)是訪問外部程序存儲

8、器時,鎖存低8 位地址的輸出脈沖。 xtal1:振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。 xtal2:振蕩器反相放大器的輸出端。3.2傳感器檢測電路設計:lm35 是由national semiconductor 所生產的溫度傳感器,其輸出電壓與攝氏溫度成正比,具有10mv/的靈敏度,工作溫度范圍為4v30v;輸出阻抗為0.1。lm35溫度傳感器,由于它采用內部補償,所以輸出可以從0開始,器件有三個引腳,分別是電源負gnd,電源正vcc,信號輸出端。電路需要兩路運算放大電路,所以選擇雙路運算放大器,一路作跟隨器另一路作同向放大器,lm358 內部包括有兩個獨立的、高增益、內部頻率補償的雙運

9、算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,它的使用范圍包括傳感放大器、直流增益模塊和其他所有可用單電源供電的使用運算放大器的場合。 圖3.2.傳感器檢測電路3.3顯示電路設計:如圖3.3所示,本顯示方案采用單片機i/o口外擴74hc573驅動器驅動4位led數碼管實現動態(tài)顯示,所謂動態(tài)顯示就是在任何時刻只有一位led數碼管處于顯示狀態(tài),即單片機采用掃描的方式控制各個數碼管的輪流顯示。動態(tài)顯示具有編程簡單,占用i/o口線少的優(yōu)點。 圖3.3顯示電路3.4鍵盤電路設計:其原理圖如下:本設計中由于所用鍵盤不多,所以采用獨立連接式的編程掃描方式鍵盤就能夠滿足設計要求。鍵盤接

10、口與鍵盤程序的根本任務就是要檢測有沒有鍵按下?按下的是那個位置的鍵?鍵值是多少?在本次設計中采用了軟件掃描的方法。通過對鍵盤接口p3的查詢判斷是否有鍵按下。 圖3.4 鍵盤電路3.5晶振電路設計:晶振電路是單片機的心臟,它控制著單片機的工作節(jié)奏。單片機允許的時鐘頻率是因型號而異的,其典型值為12mhz。stc12c5a32ad內部有一個反相振蕩放大器,xtal1和 xtal2分別是該反向振蕩放大器的輸入端和輸出端。該反向放大器可配置為片內振蕩器,石晶振蕩和陶瓷振蕩均可采用。本設計采用的晶振頻率為12mhz。其晶振電路如圖3.5所示。此外還可使用外部時鐘。在使用外部時鐘時,外部時鐘必須從xtal

11、1輸入,而xtal2懸空。 圖3.5晶振電路3.6復位電路的設計: 復位使單片機處于起始狀態(tài),并從該起始狀態(tài)開始運行。stc12c5a32ad的rst引腳為復位端,該引腳連續(xù)保持2個機器周期(24個時鐘振動周期)以上高電平,則可使單片機復位。復位后,只影響sfr中的內容,內部ram中的數據不受影響。外部復位有上電復位和按鍵電平復位。由于單片機運行過程中,其本身的干擾或外界干擾會導致出錯,此時我們可按復位鍵重新開始運行。為了便于本設計運行調試,復位電路采用按鍵復位方式。如圖3.6 圖3.6 復位電路3.7報警電路設計:為了實現多點溫度檢測報警系統(tǒng),本課題采用stc12c5a32ad單片機作為主控

12、制器,采用掃描的方式對多點溫度傳感器獲取對應該位置的溫度值,經處理后,如溫度不在設定的范圍內,給出報警信號。系統(tǒng)總體硬件電路圖如下所示: 圖3.7 報警電路3.8 3v穩(wěn)壓電路為了給stc89le516ad單片機提供精確的3v基準電壓,本設計采用了lm117三端可調正穩(wěn)壓集成電路。它的輸出電壓范圍是1.2v至37v,負載電流最大為1.5a。僅需外接兩個電阻就可以設置輸出電壓。此外它的線性調整率和負載調整率都比較好。 圖3.8 3v穩(wěn)壓電路3.9總電路見附錄四、系統(tǒng)軟件設計4.1系統(tǒng)主程序流程圖主程序主要實現系統(tǒng)的初始化,溫度數據采集與處理,鍵值處理,顯示數據,報警。 系統(tǒng)的初始化包括寄存器的初

13、始化(控制寄存器、堆棧、中斷寄存器等),led顯示的初始化,輸出端口的初始化,采集、累計數據的初始化。 圖4.1 主程序流程圖4.2測溫子程序的設計數據采樣程序功能:溫度檢測通道,控制存放數據的地址和采樣次數。數據檢測的方式是先對8個通道各采樣一次,共采集三次。采樣程序采用中斷方式。在設置通道初值、通道數、采樣次數和存放數據的開始地址后,啟動a/d轉換,隨后檢測標志位狀態(tài)。標志位被清零,標志著本通道的a/d轉換已經結束,在修改通道號和數據存放地址后,對下一通道繼續(xù)檢測。當8個通道的檢測工作完成后,判斷三次采樣是否全部完成,若沒完成,則對8個通道繼續(xù)采樣,直至完成三次采樣工作。數據采樣程序流程框

14、圖如4.2所示。 圖4.2 測溫子程序4.3報警子程序設計(1) 采樣被測參數(2)比較采樣值和給定的上下限。(3)根據比較結果執(zhí)行相應的處理程序。如果發(fā)現采樣值超過報警值,發(fā)出執(zhí)行報警程序。報警程序流程框圖4.3所示。 4.3 報警子程序流程圖 4.4顯示子程序設計 四位led數碼管進行輪流顯示,其中最高位顯示通道提示符ah,低三位顯示實際溫度。 圖4.4 顯示子程序流程圖 五、結論1、課題總結 本課題主要是實現對溫度進行多點同時測量并準確顯示。整個系統(tǒng)由單片機控制,將能夠接受傳感器的數據并顯示出來,可以從鍵盤輸入命令,系統(tǒng)根據命令選擇對應的傳感器,并由驅動電路驅動溫度顯示,對異常情況進行報

15、警。2、心得六、參考文獻1王為青, 程國剛. 單片機keil cx51應用開發(fā)技術m. 北京: 人民郵電出版社, 2006.223-226.2方佩敏編著智能化集成溫度傳感器原理與應用m.北京:電子工業(yè)出版社,2002.35-42.3張毅剛,彭喜元,彭宇.單片機原理及應用m.北京:高等教育出版社,2008.18-20,253-255,219-220,198-201.4劉篤人,韓保軍.傳感器及應用技術m.西安:西安電子科技大學出版社,2003.112-124.5童詩白. 模擬電子技術基礎m.北京: 高等教育出版社, 2004. 213-216.6閻石數字電子技術基礎m第五版北京:高等教育出版社,2

16、006.524-535.7閆玉德,葛龍,俞虹. 單片機微型計算機原理與設計m.北京: 中國電力出版社,2010.112-154,197-199. 8 郁有文. 傳感器原理及工程應用m. 西安: 西安電子科技大學出版社, 2008.215-238. 七、附錄:1.系統(tǒng)程序: ;*;常數定義;*tmel equ 0e0h ;20ms,定時器0時間常數tmeh equ 0b1htmephead equ 36h;*;工作內存定義;*bitst data 20htimeisok bit bitst.1temponeok bit bitst.2templ data 26htemph data 27htem

17、phc data 28htemplc data 29h;*; 引腳定義;* tempdin bit p3.7;*; 中斷向量區(qū);*org 000hljmp start org 00bh ljmp t0it;*;系統(tǒng)初始化;* org 100hstart: mov sp,#60hclsmem: mov r0,#20h mov r1,#60hclsmem1: mov r0,#00h inc r0 djnz r1,clsmem1 mov tmod,#00100001b mov th0,#timel mov tl0,#timeh sjmp initerror: nop ljmp start nopin

18、it: nop setb et0 setb tr0 setb ea mov psw,#00h clr temponeok ljmp main;*; 定時器0中斷服務程序;*t0it: push psw mov psw,#10h mov th0,#timeh mov tl0,#timel inc r7 cjne r7,#32h,t0iti mov r7,#00h setb timeisoktoit1: pop psw reti;*; 主程序;*main: lcall lm35_1 jnb time1sok,main clr time1sokjnb temponeok,main2lcall rea

19、dtemp1lcall convtemplcall lm35_1main2: lcall readtempsetb temponeokljmp main;*;子程序區(qū);*; resetlm35;*inilm35: setb tempdinnop nopclr tempdinmov r6,#0a0hdjnz r6,$mov r6,#0a0h djnz r6,$ setb tempdin mov r6,#32h djnz r6,$ mov r6,#3chlooplm35: mov c,tempdinjc inilm35utdjnz r6,looplm35mov r6,#064hdjnz r6,$s

20、jmp inilm35ret;inilm35ut: setb tempdinret; *; 讀lm35的程序,從lm35中讀出一個字節(jié)的數據; *readlm35: mov r7,#08hsetb tempdinnopnopreadlm35loop: clr tempdinnopnopnopsetb tempdinmov r6,#07hdjnz r6,$mov c,tempdinmov r6,#3chdjnz r6,$rrc asetb tempdindjnz r7,readlm35loopmov r6,#3chdjnz r6,$ret; *; 寫lm35的程序,從lm35中寫一個字節(jié)的數據;

21、 *writelm35: mov r7,#08hsetb tempdinnopnopwritelm35lop: clr tempdinmov r6,#07hdjnz r6,$rrc amov tempdin,cmov r6,#34hdjnz r6,$setb tenpdindjnz r7,writelm35lopret; *; read temp; *readtemp: lcall initelm35mov a,#0cchlcall writelm35mov r6,#34hdjnz r6,$mov a,#44hlcall writelm35mov r6,#34hdjnz r6,$retread

22、temp1: lcall inilm35mov a,#0cchlcall writelm35mov r6,#34hdjnz r6,$mov a,#0behlcall writelm35mov r6,#34hdjnz r6,$mov r5,#09hmov r0,#tempheadmov b,#00hreadtemp2: lcall readlm35mov r0,ainc r0readtemp21: lcall crc8caldjnz r5,readtemp2mov a,bjnz readtempoutmov a,temphead+0mov templ,amov a,temphead+1mov t

23、emph,areadtempout: ret; *; 處理溫度bcd碼子程序; *convteamp: mov a,temphanl a,#80hjz tempc1clr cmov a,templcpl aadd a,#01hmov templ,amov a,temphcpl aaddc a,#00hmov temph,amov temphc,#0bhsjmp tempchtempc1: mov temphc,#0ahtempc11: mov a,temphcswap amov temphc,amov a,templanl a,#0fhmov dptr,#tempdottabmovc a,a+

24、dptrmov templc,amov a,templanl a,#0f0hswap amov templ,amov a,temphanl a,#0fhswap aorl a,templlcall hex2bcd1mov templ,aanl a,#0f0hswap aorl a,temphcmov temphc,amov a,templanl a,#0fhswap aorl a,templcmov templc,amov a,r7jz tempc12anl a,#0fhswap amov r7,amov a,temphcanl a,#0fhorl a,r7mov temphc,atempc1

25、2: ret; *; 小數部分碼表; *tempdottab: db 00h, 01h, 01h, 02h, 03h, 03h, 04h,04h,05h,06hdb 06h,07h,08h,09h,09h; *; 顯示區(qū)bcd碼溫度值刷新子程序; *lmbcd: mov a,templcanl a,#0fhmov 70h,amov a,templcswap aanl a,#0fhmov 71h,amov a,temphcanl a,#0fhmov 72h,amov a,temphcswap aanl a,#0fhmov 73h,amov a,temphcanl a,#0f0hcjnz a,#010h,dispbcd0sjmp dispbcd2lmbcd0: mov a,temphc anl a,#0fh jnz dispbcd2 mov a,temphc swap aanl a,#0fhm

溫馨提示

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

最新文檔

評論

0/150

提交評論