




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)原理課程設(shè)計(jì)報(bào)告題 目: 畜舍通風(fēng)換氣風(fēng)機(jī)自動(dòng)控制設(shè)計(jì) 學(xué)生姓名: 劉桂奇 學(xué) 號(hào): 200817010121 專(zhuān)業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)08101班 同組姓名: 王國(guó)策 指導(dǎo)教師: 楊紅杰 設(shè)計(jì)時(shí)間: 2011年上學(xué)期第19周 指導(dǎo)老師意見(jiàn):評(píng)定成績(jī): 簽名: 日期: 年 月 日 15目錄一、設(shè)計(jì)前言21.1設(shè)計(jì)目的意義21.2設(shè)計(jì)任務(wù)21.3設(shè)計(jì)要求2二、總體設(shè)計(jì)22.1溫度數(shù)據(jù)采集模塊32.2 溫度轉(zhuǎn)換及顯示模塊32.3 led顯示控制模塊42.4蜂鳴器控制模塊42.5直流電機(jī)控制模塊4三、課程設(shè)計(jì)過(guò)程53.1硬件設(shè)計(jì)53.2軟件設(shè)計(jì)5四、系統(tǒng)測(cè)試64.1系統(tǒng)調(diào)試64.2過(guò)程調(diào)試6
2、五、程序代碼清單7六、課程設(shè)計(jì)總結(jié)15一、設(shè)計(jì)前言1.1設(shè)計(jì)目的意義 隨著智能畜禽農(nóng)業(yè)規(guī)模的不斷擴(kuò)大,環(huán)境的好壞對(duì)農(nóng)業(yè)產(chǎn)品健康的影響逐步地體現(xiàn)出來(lái),只有創(chuàng)造一個(gè)空氣新鮮,溫、濕度適宜,干暖舒適的環(huán)境條件,才能讓農(nóng)業(yè)產(chǎn)品更好的生長(zhǎng),保持旺盛,發(fā)病率降低,獲得較高的增長(zhǎng)速度和轉(zhuǎn)換率,創(chuàng)造較高的經(jīng)濟(jì)效益。因此,調(diào)控好室內(nèi)空氣、濕度和溫度等環(huán)境,是農(nóng)業(yè)產(chǎn)品管理的最根本問(wèn)題 。1.2設(shè)計(jì)任務(wù) 通過(guò)a/d采集并存儲(chǔ)蓄舍溫度,根據(jù)蓄舍溫度要求,通過(guò)d/a輸出控制信號(hào),控制風(fēng)機(jī)的轉(zhuǎn)速及風(fēng)機(jī)的啟動(dòng)、停止,實(shí)現(xiàn)蓄舍溫度及空氣的自動(dòng)調(diào)節(jié)。1.3設(shè)計(jì)要求(1)當(dāng) 溫度18,風(fēng)機(jī)不轉(zhuǎn)動(dòng),并且四個(gè)紅燈閃爍。(2)當(dāng)18
3、溫度 20,啟動(dòng)風(fēng)機(jī)低速轉(zhuǎn)動(dòng)。(3)當(dāng)20 溫度 25,啟動(dòng)風(fēng)機(jī)中速轉(zhuǎn)動(dòng)。(4)當(dāng)25 溫度 30,啟動(dòng)風(fēng)機(jī)高速轉(zhuǎn)動(dòng)。(5)當(dāng)溫度超過(guò)30,紅色發(fā)光二極管全亮、喇叭連續(xù)發(fā)聲報(bào)警。(6)用直流電機(jī)帶動(dòng)風(fēng)機(jī),計(jì)算機(jī)輸出的數(shù)字量經(jīng)d/a轉(zhuǎn)換后變?yōu)楦摺⒅?、低三種電壓,控制直流風(fēng)機(jī)的三種轉(zhuǎn)速。二、總體設(shè)計(jì) 使用可編程并行接口8255對(duì)實(shí)驗(yàn)箱上的溫度檢測(cè)芯片ds18b20進(jìn)行控制和數(shù)據(jù)傳輸,編寫(xiě)程序?qū)?shù)據(jù)進(jìn)行讀取并轉(zhuǎn)換為相應(yīng)的bcd碼,判斷從外界采集的溫度并根據(jù)此溫度與所在的不同區(qū)間的溫度來(lái)調(diào)用的相應(yīng)的子程序,并利用da0832進(jìn)行數(shù)模轉(zhuǎn)換來(lái)控制風(fēng)機(jī)的轉(zhuǎn)動(dòng)。利用8255pa端口控制led燈的顯示、pc端口
4、(c1)進(jìn)行蜂鳴器的控制,并提取溫度轉(zhuǎn)換為非壓縮的bcd碼,顯示到八段數(shù)碼管上。該設(shè)計(jì)主要分為以下幾個(gè)主要功能模塊:2.1溫度數(shù)據(jù)采集模塊本模塊利用實(shí)驗(yàn)箱自帶的數(shù)字溫度計(jì)ds18b20測(cè)量溫度,程序通過(guò)可編程并行接口8255的pc0口對(duì)ds18b20寫(xiě)讀寫(xiě)命令,并將讀到的溫度數(shù)據(jù)從pc0口按位讀取出來(lái),存放在ax寄存器內(nèi)。2.2 溫度轉(zhuǎn)換及顯示模塊本模塊將數(shù)據(jù)采集模塊得到的溫度數(shù)值首先轉(zhuǎn)換為bcd碼,提取溫度數(shù)據(jù),轉(zhuǎn)換為非壓縮型bcd碼。具體轉(zhuǎn)換過(guò)程可參考附錄ii的核心代碼的bcd轉(zhuǎn)換部分。轉(zhuǎn)換完后調(diào)用display8在八段數(shù)碼管上顯示溫度。2.3 led顯示控制模塊根據(jù)此次課程設(shè)計(jì)的目的與要
5、求,當(dāng)溫度超過(guò)30時(shí),紅色發(fā)光二極管閃爍。用8255的pa端口來(lái)控制紅燈亮,中間再調(diào)用一個(gè)延時(shí),可以從視覺(jué)上看出紅燈閃爍。具體過(guò)程可參考附錄中的程度代碼。2.4蜂鳴器控制模塊根據(jù)此次課程設(shè)計(jì)的目的與要求,當(dāng)溫度值大于30時(shí),要控制蜂鳴器做出報(bào)警。本程序是利用8255pc端口(pc1)來(lái)控制蜂鳴器發(fā)出報(bào)警聲音。2.5直流電機(jī)控制模塊根據(jù)此次課程設(shè)計(jì)的目的與要求,當(dāng)溫度超過(guò)20小于25時(shí),要控制風(fēng)機(jī)低速轉(zhuǎn)動(dòng)。當(dāng)溫度超過(guò)25小于30時(shí),要控制風(fēng)機(jī)中速轉(zhuǎn)動(dòng),當(dāng)溫度超過(guò)30時(shí),要控制風(fēng)機(jī)高速轉(zhuǎn)動(dòng)。設(shè)計(jì)中通過(guò)不同區(qū)間數(shù)據(jù)的比較,給低、中、高三種不同的轉(zhuǎn)速賦予不同的電壓值傳送給da0832,利用da0832
6、控制直流電機(jī)轉(zhuǎn)動(dòng),由于輸出高電平功率較小,導(dǎo)致無(wú)法自動(dòng)驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),所以在輸出之后接試驗(yàn)箱的功放模塊,放大功率后,輸出高電平可自動(dòng)驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng)。三、課程設(shè)計(jì)過(guò)程3.1硬件設(shè)計(jì)3.1.1硬件電路連線表1 硬件連線e5:b、c-g5: b、ca3:cs1-b4:csa3:cs2-b4:csa3:cs5-e5:csa3:a0-e5:a0a3:a1、a0-b4:a1、a0g1:tout-b4:pc0g6:發(fā)光二極管-b4:jp56b2:2m-g1:tctrle2:in1-b3:oute2:out1-f1:ctrlb4:pc1-d1:ctrl3.2軟件設(shè)計(jì)軟件部分利用實(shí)驗(yàn)箱為運(yùn)行平臺(tái),運(yùn)用匯編指令編
7、寫(xiě)??刂瞥绦蛑饕囟葦?shù)據(jù)采集模塊、溫度轉(zhuǎn)換及顯示模塊、led顯示控制模塊、蜂鳴器控制模塊、風(fēng)機(jī)控制模塊等。初始化程序包含:8255初始化程序、18b20初始化子程序。四、系統(tǒng)測(cè)試4.1系統(tǒng)調(diào)試按照硬件連線連接電路,為方便調(diào)試,將程序內(nèi)的溫度區(qū)間作了調(diào)整。將原來(lái)設(shè)計(jì)要求里的cs1;8255.pc.0-18b20.tout;a0-a0;a1-a1;18b2018b20.tout-8255.pc.7 con_8255 equ 0f003h pc_8255 equ 0f002h pb_8255 equ 0f001h pa_8255 equ 0f000h da0832 equ 0d000h extr
8、n display8:near.stack 300.data voltage db 0 buffer db 8 dup(0) ;溫度臨時(shí)存放區(qū).code start: mov ax,data mov ds,ax mov es,ax nop call init8255 main: call start_temperature ;向ds18b20發(fā)送讀溫度指令 jb main call delaytime call rd_temperature ;讀出溫度值,并轉(zhuǎn)換為bcd碼 calltemperature_case call delaytime call dac0832 call dis_bcd
9、 ;提取溫度數(shù)據(jù),轉(zhuǎn)換為非壓縮型bcd碼,并顯示 jmp main;判斷溫度控制電機(jī)速度 temperature_case procnear pushax;寫(xiě)1(8255.pc.1=1) movdx,pc_8255 ;蜂鳴器不響 moval,03h outdx,al mov bx,ax cmpbx,0120h;18 jbcase1 cmpbx,0140h;20 jbcase2 cmpbx,0190h;25 jbcase3 cmpbx,01e0h;30 jbcase4 ;寫(xiě)0(8255.pc.1=0) movdx,pc_8255;超過(guò)30時(shí),驅(qū)動(dòng)蜂鳴器響 moval,02h outdx,al j
10、mp case5 return:popax ret case1: movvoltage,0fh jmpreturn case2: movvoltage,0fh jmpreturn case3: movvoltage,20h ;2025間風(fēng)機(jī)開(kāi)始低速轉(zhuǎn)動(dòng) jmpreturn case4: movvoltage,55h ;2530間風(fēng)機(jī)中速轉(zhuǎn)動(dòng) jmpreturn case5: mov dx,pa_8255 ;超過(guò)30時(shí)風(fēng)機(jī)高速轉(zhuǎn)動(dòng),此時(shí)紅燈閃爍 mov al,0cch out dx,al call delaytime mov dx,pa_8255 mov al,00h out dx,al mov
11、voltage,99h jmpreturn temperature_caseendp dac0832 proc near push ax mov dx,da0832 mov al,voltage out dx,al pop ax ret dac0832 endp;*;溫度轉(zhuǎn)換/顯示;* dis_bcd proc near mov bx,ax lea di,buffer+7 std mov al,10h ;10h表示不需要顯示 stosb stosb stosb stosb test ah,08h jnz dis_bcd1 stosb ;正數(shù) jmp dis_bcd2 dis_bcd1: mov
12、 al,11h stosb ;負(fù)數(shù) neg bx dis_bcd2: ;將溫度整數(shù)位轉(zhuǎn)換為asci shl bx,1 ;將溫度的個(gè)位與十位合在bh中 shl bx,1 shl bx,1 shl bx,1 mov ax,10 xchg al,bh div bh cmp al,0 jnz dis_bcd3 ;判斷溫度的十位是否為0進(jìn)行相應(yīng)處理 mov al,10h ;十位為0 xchg al,di+1 stosb jmp dis_bcd4 dis_bcd3: stosb dis_bcd4: mov al,ah or al,80h ;小數(shù)點(diǎn) stosb xor al,al ;轉(zhuǎn)換小數(shù)部分 test
13、bl,10h jz dis_bcd5 mov al,6 dis_bcd5: test bl,20h jz dis_bcd6 add al,12h daa dis_bcd6: test bl,40h jz dis_bcd7 add al,25h daa dis_bcd7: test bl,80h jz dis_bcd8 add al,50h daa dis_bcd8: mov cl,4 ror al,cl and al,0fh stosb cld lea si,buffer ;顯示溫度 call display8 ret dis_bcd endp;延時(shí)程序 delaytime proc near
14、 xor cx,cx loop $ loop $ loop $ ret delaytime endp ;寫(xiě) 0 w_l proc near push ax mov dx,con_8255 mov al,80h out dx,al pop ax ret w_l endp;寫(xiě) 1 w_h proc near push ax mov dx,con_8255 mov al,01h out dx,al pop ax ret w_h endp;ds18b20復(fù)位初始化子程序 init_18b20 proc near call w_l ;主機(jī)發(fā)出501us復(fù)位低脈沖 mov cx,136 loop $ mo
15、v dx,con_8255 mov ax,89h out dx,al ;pc輸入狀態(tài) dec dx mov cx,15 init_18b20_1: in al,dx test al,01h jz init_18b20_2 loop init_18b20_1 stc ;置位標(biāo)志位,表示ds18b20不存在 ret init_18b20_2: mov cx,136 loop $ clc ;復(fù)位標(biāo)志位,表示ds18b20存在 ret init_18b20 endp;寫(xiě)操作 write_18b20 proc near mov cx,8 ;一共8位數(shù)據(jù) wri: call w_l ;0-pc0 ror
16、al,1 jnb wri1 call w_h wri2: push cx mov cx,12 loop $ ;延時(shí)55us pop cx call w_h loop wri ret wri1: push cx pop cx jmp wri2 write_18b20 endp;讀操作 read_18b20 proc near mov cx,8 ;數(shù)據(jù)一共有8位 read: mov dx,con_8255 mov al,80h out dx,al ;0-pc0 mov al,89h out dx,al ;輸入狀態(tài) nop nop nop mov dx,pc_8255 in al,dx ror al
17、,1 rcr bl,1 mov dx,con_8255 mov al,80h out dx,al mov al,01h out dx,al ;1-pc0 loop read mov al,bl ret read_18b20 endp;*; 判斷ds18b20是否存在,啟動(dòng)ds18b20 ;cy為判斷標(biāo)志;* start_temperature: call init_18b20 ;先復(fù)位ds18b20 jb get_t mov al,0cch ;跳過(guò)rom匹配 call write_18b20 mov al,44h ;發(fā)出溫度轉(zhuǎn)換命令 call write_18b20 clc get_t: ret;*; 讀出轉(zhuǎn)換后的溫度值,存在ax;* rd_temperature: call init_18b20 ;準(zhǔn)備讀溫度前先復(fù)位 mov al,0cch ;跳過(guò)rom匹配 call write_18b20 mov al,0beh ;發(fā)出讀溫度命令 call write_18b20 call read_18b20 ;讀出溫度 mov ah,al ;存放到ax call read_18b20 xchg al,ah ret init8255 proc near mov dx,con_8255 mov al,80h out dx,al dec dx mov al,0ffh out dx,al ret
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年仙居縣人民醫(yī)院招聘工作人員考試真題
- 中標(biāo)后催業(yè)主簽合同范例
- 2024年新疆昌吉學(xué)院(團(tuán)隊(duì))引進(jìn)筆試真題
- 鄉(xiāng)村承包開(kāi)發(fā)合同范本
- 人員反聘合同范本
- 云梯租賃合同范本
- app開(kāi)發(fā)服務(wù)合同范本
- 勞務(wù)合同范例放牧
- 《五、標(biāo)明引用內(nèi)容的出處》教學(xué)設(shè)計(jì)教學(xué)反思-2023-2024學(xué)年初中信息技術(shù)人教版七年級(jí)上冊(cè)
- 農(nóng)村電器購(gòu)銷(xiāo)合同范本
- 2024年南京機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 投標(biāo)技術(shù)服務(wù)和質(zhì)保期服務(wù)計(jì)劃
- 教學(xué)評(píng)一體化
- 2023年全國(guó)高考體育單招考試英語(yǔ)試卷試題真題(精校打印版)
- 音樂(lè)欣賞與實(shí)踐(中職音樂(lè))全套教學(xué)課件
- 粵語(yǔ)活動(dòng)策劃方案模板范文相關(guān)7篇
- 蘇教版三年級(jí)數(shù)學(xué)下冊(cè)教學(xué)計(jì)劃及進(jìn)度表
- 財(cái)務(wù)管理中的財(cái)務(wù)指標(biāo)
- 2016-2023年青島酒店管理職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 中國(guó)春節(jié)ppt英文版 Chinese New Year
- 高中數(shù)學(xué)《6.2 排列與組合》課件與導(dǎo)學(xué)案
評(píng)論
0/150
提交評(píng)論