《微機(jī)原理課程設(shè)計 溫度測控系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《微機(jī)原理課程設(shè)計 溫度測控系統(tǒng)(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、
南通大學(xué)電子信息學(xué)院
微機(jī)原理課程設(shè)計
報 告 書
課 題 名 溫度測控系統(tǒng)
班 級 ________ _集成092__ _
姓 名 ___ 杜軼群
指導(dǎo)教師 胡慧
日 期 2012.6.11—2012.6.15
組長:劉奇
組員:宋林峰 張偉 杜軼群
14
目錄
1、 設(shè)計目的----------------------------------
2、---------- 3
二、設(shè)計內(nèi)容和要求-------------------------------------- 3
三、設(shè)計原理-------------------------------------------- 3
四、程序代碼-------------------------------------------- 6
五、硬件系統(tǒng)調(diào)試---------------------------------------- 10
六、設(shè)計總結(jié)與體會-------------------------------------- 13
七、參考文獻(xiàn)----
3、---------------------------------------- 14
Proteus是英國Labcenter公司開發(fā)的電路分析與實物仿真及印制電路板設(shè)計軟件,它可以仿真、分析各種模擬電路與集成電路。軟件提供了大量模擬與數(shù)字元器件及外部設(shè)備,各種虛擬儀器,特別是它具有對單片機(jī)及其外圍電路組成的綜合系統(tǒng)的交互仿真功能。Proteus 7主要由ISIS和ARES兩部分組成,ISIS的主要功能是原理圖設(shè)計及與電路原理圖的交互仿真,ARES主要用于印制電路板的設(shè)計。
一、設(shè)計目的
1.鞏固和加深課堂所學(xué)知識;
4、通過課程設(shè)計,熟悉和掌握微機(jī)系統(tǒng)的軟件、硬件設(shè)計的方法、設(shè)計步驟,得到微機(jī)開發(fā)應(yīng)用方面的初步訓(xùn)練。
2.學(xué)習(xí)掌握一般的硬件的設(shè)計方法和查閱、運用資料的能力;真正做到理論聯(lián)系實際,提高動手能力和分析問題、解決問題的能力,實現(xiàn)由學(xué)習(xí)知識到應(yīng)用知識的初步過渡。
3.熟練掌握微機(jī)系統(tǒng)與接口擴(kuò)展電路的設(shè)計方法,熟練應(yīng)用8086匯編語言編寫應(yīng)用程序和實際設(shè)計中的硬軟件調(diào)試方法和步驟,熟悉微機(jī)系統(tǒng)的硬軟件開發(fā)工具的使用方法
4.通過溫度測控系統(tǒng)仿真系統(tǒng)設(shè)計與制作,深入了解與掌握數(shù)模轉(zhuǎn)換,數(shù)碼管顯示和電動機(jī)驅(qū)動的方法,熟悉proteus軟件操作。
二、設(shè)計內(nèi)容和要求
總體要求:根據(jù)題意自行設(shè)
5、計電路,在實驗箱上連接線路并編寫相關(guān)匯編程序,調(diào)試成功。
設(shè)計內(nèi)容:
利用ADC0809采用中斷方式設(shè)計一個溫度測控系統(tǒng),在七段數(shù)碼管上顯示溫度值,并根據(jù)測試的溫度進(jìn)行控制。當(dāng)檢測溫度到達(dá)溫度上限60℃時啟動直流電動機(jī),而溫度低于下限30℃時停止電動機(jī)。數(shù)碼管上的顯示內(nèi)容為:XX C(采用十進(jìn)制顯示)
三、設(shè)計原理
溫度測試系統(tǒng)主要由溫度傳感器、A/D轉(zhuǎn)換、顯示及電動機(jī)塊組成。溫度傳感器將外部溫度信號轉(zhuǎn)換為電壓信號,經(jīng)放大電路,再經(jīng)由ADC0808轉(zhuǎn)化為數(shù)字信號進(jìn)行處理,軟件中對數(shù)字量進(jìn)行判斷,并作相應(yīng)的跳轉(zhuǎn),由8255實現(xiàn)正常顯示和啟動電動機(jī)。各個
6、芯片由8086來進(jìn)行整體的控制。
1.電路原理圖
直流
電動機(jī)
上圖中ADC0808的INO輸入端接溫度傳感的ANZ端,進(jìn)行溫度量的采集,CLOCK接1M;8255A中A、B口與數(shù)碼管連接如上圖,PA0接直流電機(jī)的OUTPUT,其中地址端口接40H。
2.系統(tǒng)功能框圖
單片機(jī)控制電路
溫度傳感
A/D轉(zhuǎn)換電路
數(shù)碼管顯示
3.程序流程圖
開始
初始化8255A
選0809通道0并啟動A/D
讀A/D轉(zhuǎn)換結(jié)果
溫度>60℃
啟動直流電動機(jī)
溫度>=30℃
停止電動機(jī)
數(shù)碼管數(shù)值顯示
延時
上圖實現(xiàn)了本次實驗所要要求
7、的功能:檢測溫度到達(dá)溫度上限60℃時啟動直流電動機(jī),而溫度低于下限30℃時停止電動機(jī),并在數(shù)碼管上顯示所采集到的數(shù)字量和轉(zhuǎn)換后的模擬量。程序采用中斷處理的方式。
四、程序代碼
DATA SEGMENT
tab db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
buf db 0
a8255 equ 40h ;8255的A,B,C口及控制口地址
b8255 equ 42h
c8255 equ 44h
Q8255 equ 46h
adc0808 equ 20h
8、 ;ADC0808端口地址
DATA ENDS
CODE SEGMENT CODE
ASSUME DS:DATA,CS:CODE
START: mov ax,data
mov ds,ax
cli ;關(guān)中斷
mov dx,Q8255 ; 8255A初始化設(shè)置。8255A控制字,A口為輸出,B 口為輸出, C口的高四位為輸出
mov al,80h
out dx,al
mov ax,0 ;設(shè)置中斷向量,非屏蔽中斷NMI
mov es,ax
mov si,02H*4
mov ax
9、,offset int0
mov es:[si],ax
mov ax,seg int0
mov es: [si+2],ax
mov al,00010011b ;設(shè)置ICW1
mov dx,30H
out dx,al
mov al,00010000b ;ICW2
mov dx,32h
out dx,al
mov al,1bh ;ICW4
out dx,al
mov al,0feH ;OCW1
out dx,al
mov al,80H
10、 ;OCW2
mov dx,30H
out dx,al
sti ;開中斷
mov si,offset buf
MAIN : mov dx,adc0808 ;啟動ADC0808轉(zhuǎn)換
mov al,0
out dx,al
mov al,80H ;OCW2
mov dx,30H
out dx,al
MOV CX,5
MON: mov al,[si]
mov ah,0
mov bl,20
div bl
mov bx,offset tab
xlat
11、 ;換碼指令,換成對應(yīng)的段碼
mov dx,b8255 ;顯示十位
out dx,al
mov al,11101111b ;位碼選通
mov dx,c8255
out dx,al
call DELAY_1S
mov al,0ffh ;不選中任何位選
out dx,al
mov al,ah
mov ah,0
mov bl,2
div bl
mov bx,offset tab
xlat ;換碼指令
or al,80h
12、 ;個位帶小數(shù)點
mov dx,b8255
out dx,al ;顯示個位及小數(shù)點
mov al,11011111b ;位碼選通
mov dx,c8255
out dx,al
call DELAY_1S ;調(diào)用延時
mov al,0ffh ;不選中任何位選
out dx,al
mov al,ah ;小數(shù)位顯示
mov bx,offset tab
xlat
mov dx,b8255
out dx,al
mov a
13、l,10111111b
mov dx,c8255
out dx,al
call DELAY_1S
mov al,0ffh
out dx,al
mov al,01111111b
out dx,al
mov al,00111001b ;顯示最后字母”C”
mov dx,b8255
out dx,al
call DELAY_1S
mov dx,c8255
mov al,0ffh
out dx,al
call DELAY_1S
mov al,[si]
shr al,1 ;邏輯右
14、移一位,減小位擴(kuò)展時的誤差
cmp al,30 ;溫度低于30時,跳到down
jb down
cmp al,60 ;溫度高于60度時,跳到up
ja up
jmp MAIN
LOOP MON
down: mov dx,a8255
mov al,00h ;PA0輸出0,低電平不啟動電機(jī)
out dx,al
jmp MAIN
up: mov dx,a8255
mov al,01h ;PA0輸出1,高電平啟動電機(jī)
out dx,al
jmp MAIN
15、
int0 proc near ;中斷程序
push ax
push bx
PUSH SI
pushf
CLI
mov dx,adc0808 ;讀取轉(zhuǎn)換好的數(shù)據(jù)
in al,dx
mov [si],al
mov al,80H ;OCW2
mov dx,30H
out dx,al
sti
popf
POP SI
pop bx
pop ax
iret
int0 endp
DELAY_1S proc ;延時子程序
P
16、ush bx
Push cx
push si
mov bx,1
LP2: mov cx,10
LP1: LOOP LP1
DEC bx
JNZ LP2
Pop si
Pop cx
Pop bx
ret
DELAY_1S ENDP
CODE ENDS
END START
五、硬件系統(tǒng)調(diào)試
譯碼電路:
顯示電路:
模數(shù)轉(zhuǎn)化電路:
中斷電路:
電動機(jī)電路:
調(diào)試過程中遇到的主要問題和解決辦法
(1)仿真過程中,不能
17、啟動模數(shù)轉(zhuǎn)換電路
仿真運行中,改變模擬信號時,系統(tǒng)并不能做出相應(yīng)的顯示。
解決辦法:
利用debug下8086\Source Code 單步運行調(diào)試程序后,發(fā)現(xiàn)程序返回點過了0809啟動的程序段,所以將程序中返回點由MON改至MAIM啟動處,進(jìn)而實現(xiàn)程序啟動。
(2)當(dāng)壓力超出30~60范圍,程序里只調(diào)用電機(jī)停止模塊,而不調(diào)用數(shù)碼管顯示模塊。單步調(diào)試發(fā)現(xiàn),此時數(shù)碼管顯示模塊被跳過。
解決辦法:
在電機(jī)控制程序段結(jié)束后,跳轉(zhuǎn)到數(shù)碼管顯示部分。
六、設(shè)計總結(jié)與體會
這次微機(jī)原理的課程設(shè)計歷時一個星期,我們組做的是一個
18、溫度測控系統(tǒng),同時采用了中斷控制,用到了ADC0809、8255A和8259A等芯片。通過上網(wǎng)進(jìn)行了相關(guān)內(nèi)容的查詢,了解了實驗的基本原理,設(shè)計出了本系統(tǒng)的基本思想,然后按照實驗的要求由簡單到難,逐步實現(xiàn)了在七段數(shù)碼管上顯示出采集過來的數(shù)字量部分,在此基礎(chǔ)之上實現(xiàn)了當(dāng)檢測溫度到數(shù)字量上限60時啟動直流電動機(jī),而溫度低于下限30時停止電動機(jī)這個功能。以前對編程工具的使用還處于一知半解的狀態(tài),但是經(jīng)過了一段上機(jī)的實踐,對于怎么排錯,差錯,怎么看每一步的運行結(jié)果,怎么去了解每個寄存器的內(nèi)容以確保程序的正確性上都有了很大程度的提高。由于實驗采集到的數(shù)字量不是很直觀,最后我們將三位的數(shù)字量轉(zhuǎn)換為了溫度并和
19、數(shù)字量一并在數(shù)碼管上顯示出來,進(jìn)一步完善了本系統(tǒng)。
在實現(xiàn)各個功能的過程中遇到的主要問題:(1)中斷程序不執(zhí)行,0809不能啟動,這個問題經(jīng)過單步調(diào)試才發(fā)現(xiàn)是跳轉(zhuǎn)的程序段不正確。(2)第二個問題是經(jīng)老師提醒才發(fā)現(xiàn),設(shè)計電路在采集。
相當(dāng)于把所學(xué)的接口知識又復(fù)習(xí)了一遍,同時將平時實驗中存在的一些疑問都解決掉了。對于8255數(shù)碼管的顯示和0809 A/D轉(zhuǎn)換器基本工作原理有了更深入的了解,對兩者結(jié)合起來實現(xiàn)比較復(fù)雜的功能(本實驗中實現(xiàn)了在數(shù)碼管上顯示溫度值,并用溫度值來控制直流電機(jī)的運行情況的功能)也有了一定的了解。
通過這次課程設(shè)計使我懂得了理論和實踐相結(jié)合起來是很重要的,從理論中知識是遠(yuǎn)
20、遠(yuǎn)不夠的,只有把所學(xué)的理論知識和實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。
七、參考文獻(xiàn)
[1] 顧暉,梁惺彥.微機(jī)原理與接口技術(shù)—基于8086和Proteus仿真[M].北京:電子工業(yè)出版社,2011,262-293
[2] 徐晨,陳繼紅.微機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2004
[3] 康華光.電子技術(shù)基礎(chǔ)(數(shù)電部分)[M].北京:高等教育出版社,2006,143-151
[4] 沈美明,溫冬嬋.IBM-PC匯編程序設(shè)計[M].北京:清華大學(xué)出版社,2001
[5] 周潤景,張麗娜.Proteus入門實用教程[M].北京:機(jī)械工業(yè)出版社,2007