微機原理及其應用微型計算機溫度控制系統(tǒng)設計課程設計報告_第1頁
微機原理及其應用微型計算機溫度控制系統(tǒng)設計課程設計報告_第2頁
微機原理及其應用微型計算機溫度控制系統(tǒng)設計課程設計報告_第3頁
微機原理及其應用微型計算機溫度控制系統(tǒng)設計課程設計報告_第4頁
微機原理及其應用微型計算機溫度控制系統(tǒng)設計課程設計報告_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理及其應用課程設計報告 2011年3月2日1、 課程設計題目及系統(tǒng)功能介紹微型計算機溫度控制系統(tǒng)設計,假設工業(yè)現(xiàn)場溫度范圍為075,溫度值經(jīng)傳感器檢測后,經(jīng)變送器變成05V范圍內(nèi)的電壓信號。電壓信號送A/D轉換器ADC0809轉換成對應的數(shù)字量。數(shù)字量經(jīng)數(shù)字濾波后送入CPU作為本次采樣值。在LED數(shù)碼顯示器上顯示溫度值(采用十進制顯示),并對溫度進行測試和控制,當檢測溫度到達溫度上限60時紅燈亮,蜂鳴器報警,低于下限30時黃燈亮,蜂鳴器報警,以達到監(jiān)控溫度的目的。本設計采用程序控制方式。系統(tǒng)功能:每隔0.1秒鐘對現(xiàn)場溫度連續(xù)采集三次取平均值作為本次采樣的有效值;判斷溫度是否高于上限值60

2、或低于下限值30,如超出該范圍則分別用紅、黃發(fā)光二極管和報警;把采集來的電壓值轉化成溫度值在LED顯示器上顯示;若鍵盤輸入“R”則返回DOS,結束程序。2、 硬件設計系統(tǒng)的硬件工作原理: CPU通過8255查詢8253的定時時間是否已到,若到則對8253接口2重新初始化且用ADC0809模/數(shù)轉換器采樣,不到則繼續(xù)七段數(shù)碼管顯示與LED燈和蜂鳴器的過程,循環(huán)以上。系統(tǒng)框圖如下:地址分配: 8255 288h 8253 280h ADC0809 298h-29fh DAC0832 290h 重要芯片功能介紹:1、 可編程并行接口8255 采取工作方式0,輸入控制字 88h,即A口輸出,C口高四位

3、輸入,C口低四位輸出PA0PA6對應接七段數(shù)碼管a b c d e f g接口,PC0 PC1對應七段數(shù)碼管的位碼接口PC2 PC3對應黃紅LED燈,PC4接8253計數(shù)器2的OUT2端口 2、 可編程定時器計數(shù)器(8253) 分別對8253的計數(shù)器1和計數(shù)器2初始化采用方式3和方式0,使計數(shù)器2產(chǎn)生每隔0 .1秒的高電平3、ADC0809模/數(shù)轉換器如圖虛線接線即可3、DAC0832數(shù)/模轉換器DAC0832是用于蜂鳴器報警的三、軟件設計 先對硬件8255 8253進行初始化且用ADC0809第一次采樣,通過8255的PC4端口查詢8253的定時時間是否已到,若到則對8253接口2重新初始化

4、且用ADC0809模/數(shù)轉換器采樣,不到則繼續(xù)七段數(shù)碼管顯示與LED燈和蜂鳴器的過程,最后若有鍵按下則返回DOS,否則返回繼續(xù)查詢PC4端口、循環(huán)。主程序流程圖: 七段數(shù)碼管流程圖 紅黃燈及蜂鳴器程序如下: mov cl,shuju cmp cl,60 ;采樣得來的數(shù)據(jù)與30和60進行比較,不在它們之間的紅黃燈、蜂鳴器報警 jnc li cmp cl,30 jc xiong jmp exit li: or al,08h call beep jmp exitxiong: or al,04h call beepexit: mov dx,io8255a ;通過8255C端口輸出到LED燈 out d

5、x,al 采樣子程序 mov bx,0 mov cx,3 xun: mov dx,io0809 out dx,alpush cxmov cx,0FFH ;延時delay1: loop delay1pop cx in al,dx mov ah,0 mov dl,5 ;將采樣數(shù)據(jù)轉化為0-75之間的溫度值 mul dl mov dl,17 div dlmov ah,0 add bx,ax ;循環(huán)三次取樣loop xun mov ax,bx mov cl,3div cl;取三次數(shù)據(jù)后平均值 mov shuju,al mov ah,0 mov cl,10div cl mov di,offset buf

6、fer1 ;將采樣三次得出的均值的個位與十位分別存在buffer與buffer+1中mov di,ahmov di+1,al四、討論和感想 首先感受最深的的是匯編的基礎一定要扎實,否則很容易出現(xiàn)低級錯誤,比如說一些死循環(huán)之類的東西。 我們這組最開始的時候連硬件檢測都沒做就直接執(zhí)行程序,當然做不出什么來的。后來又入入續(xù)續(xù)發(fā)現(xiàn)了一些低級錯誤,不過都一步步改正了。還有就是主程序一定要簡潔易讀,最好事先畫好流程圖。硬件不要頻繁初始化,最好是在程序開頭就全部初始化完畢,像8255 8253一類。 為保證程序易讀、便于添加和修改,必要的注釋是很好的,子程序中最好開頭和結尾對子程序中用到的寄存器都進行入出棧

7、操作,這能有效的防止一些低級錯誤。以上是我碰到的問題及其解決方法、心得體會。五、源程序的清單: data segmentioportequ 0c400h-0280hio8255aequ ioport+28ah ;8255C口地址io8255bequ ioport+28bh ;8255控制寄存器地址io8255c equ ioport+288h;8255A口地址io0832a equ ioport+290hio8253aequ ioport+283h;8253工作方式控制寄存器地址io8253bequ ioport+281h;計數(shù)器1io8253cequ ioport+282h;計數(shù)器2io08

8、09 equ ioport+298h ;蜂鳴器led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段碼buffer1 db 0,0 ;存放要顯示的十位和個位bz dw ? ;位碼data1 db 80h,0,0,0,0,0,0,0 db 0ffh,0,0,0,0,0,0,0 db 80h,0,0,0,0,0,0,0 db 00h,0,0,0,0,0,0,0;紅燈正弦波數(shù)據(jù)data2 db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h db

9、 80h,66h,4eh,38h,25h,15h,09h,04h db 00h,04h,09h,15h,25h,38h,4eh,66h;黃燈正弦波數(shù)據(jù)shuju db 0 ;存放采樣三次后的均值data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8255b ;將8255設為A口輸出 C高4位輸入低四位輸出mov al,88h out dx,al moval,70h ;設8253通道1工作方式0movdx,io8253aoutdx,al movax,100 ;寫入計數(shù)器初值2000movdx

10、,io8253boutdx,almov al,ahoutdx,al moval,0b6h ;設8253通道2工作方式3movdx,io8253aoutdx,al movax,1000 ;寫入計數(shù)器初值500movdx,io8253coutdx,almoval,ahoutdx,alcall adcy panduan: mov dx,io8255a ;從8255的c口輸入 in al,dx and al,10h jz xianshi ;Pc4不為1跳到顯示 call delaycall adcyxianshi: call qiduan push ax ;LED燈與蜂鳴器程序段 push cx pu

11、sh dx mov cl,shuju cmp cl,60 jnc li cmp cl,30 jc xiong jmp exit li: or al,08h call beep jmp exitxiong: or al,04h call beepexit: mov dx,io8255a out dx,al pop dx pop cx pop ax mov dx,0ffh mov ah,06int 21hje panduan;有按鍵退出 否則循環(huán) mov ah,4ch ;返回int 21hqiduan procnear ;七段數(shù)碼管子程序 push dipush sipush bxpush cxp

12、ush dxmov di,offset buffer1 ;設di為顯示緩沖區(qū)loop2:mov bh,02lll: mov byte ptr bz,bhpush didec diadd di, bzmov bl,di ;bl為要顯示的數(shù)pop di mov al,0 mov dx,io8255a out dx,al mov bh,0mov si,offset led ;置led數(shù)碼表偏移地址為SIadd si,bx ;求出對應的led數(shù)碼mov al,byte ptr simov dx,io8255c ;自8255a的口輸出 out dx,al mov al,byte ptr bz ;使相應的

13、數(shù)碼管亮mov dx,io8255a ;位選變化out dx,almov cx,3000delay2: loop delay2 ;延時 mov bh,byte ptr bz shr bh,1 jnz lll pop dx pop cx pop bx pop si pop di ret ;子程序返回qiduan endpadcy procnear ;AD采樣子程序push axpush bxpush cxpush dxpush dimov bx,0 mov cx,3 xun: mov dx,io0809 out dx,alpush cxmov cx,0FFH ;延時delay1: loop de

14、lay1pop cx in al,dx mov ah,0 mov dl,5 mul dl mov dl,17 div dlmov ah,0 add bx,ax ;循環(huán)三次取樣loop xun mov ax,bx mov cl,3div cl;取三次數(shù)據(jù)后平均值 mov shuju,al mov ah,0 mov cl,10div cl mov di,offset buffer1mov di,ahmov di+1,alpop dipop dxpop cxpop bxpop axretadcy endpdelay procnearpushax ;8253初始化pushdxmoval,70h ;設8253通道0工作方式0movdx,io8253aoutdx,al movax,500 ;寫入計數(shù)器初值500movdx,io8253boutdx,almoval,ahoutdx,al popdxpopaxret ;子程序返回delay endpbeep proc near ;蜂鳴器子程序push cxpush axpush dxpush si mov cx,60 ;取60次32個正弦波數(shù)據(jù)dd:mov si,0

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論