夜班防睡控制器_第1頁
夜班防睡控制器_第2頁
夜班防睡控制器_第3頁
夜班防睡控制器_第4頁
夜班防睡控制器_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、題義分析及解決方案1.題義需求分析頁:1文章標號混亂,其他雷同1.1任務分析1)每5分鐘用一次較柔和的聲音提醒值班者按復位鍵,計時重新開始。2)若計時到6分鐘時,無人按復位鍵,則以較急促的聲音報警,黃燈閃爍。3)當?shù)?5分鐘的時候紅燈閃爍,并以持續(xù)尖銳的聲音報警,用LED顯示分和秒。1.2 功能分析本設計主要是為了防止值班人員在值班時睡覺。設計中通過揚聲器來防止值班人員睡覺,每隔5分鐘用較柔和的聲音提醒值班人員一次,值班人員按下復位鍵重新即時,說明值班人員并未睡著;若計時到6分鐘值班人員還沒有按復位鍵,說明此時值班人員可能已經(jīng)開始打瞌睡,揚聲器發(fā)出較急促的聲音報警,并且黃燈閃爍,若此按下復

2、位鍵,重新計時;若到了15分鐘還沒有人按復位鍵,那么此時值班人員可能已經(jīng)完全睡著,揚聲器發(fā)出持續(xù)的尖銳聲音報警,紅燈閃爍,并用LED記錄睡著的時間。1.3 需要解決的問題需要發(fā)聲提醒,發(fā)聲提醒又分為3種(柔和,急促,尖銳),通過鍵盤復位,要紅,黃燈閃爍。還要將時間動態(tài)顯示在LED顯示器上,每秒刷新一次。而且分秒顯示共需4位數(shù)字,所以要有4個LED數(shù)碼管進行控制。秒控制的兩位要在60秒后進位,分鐘的兩位加1,秒清零。揚聲器可用專門的揚聲器電路。2 解決問題方法及思路2.1 硬件部分 1) PC機一臺,并行接口8255A一片,LED數(shù)碼管4只,發(fā)光二極管2只(紅、黃各一只),開關(guān)一個,揚聲器一只。

3、2) 利用揚聲器發(fā)聲報警,節(jié)拍由延時程序決定。3) 使不同顏色的發(fā)光二極管按一定規(guī)律發(fā)光。4) 使實驗箱上的8255A作為輸出接口,驅(qū)動二極管發(fā)光。所用端口工作在方式0、輸出即可。5) 定義開關(guān)清零。6) PC7接開關(guān),用作輸入,控制復位。7) 通過8255A來控制LED發(fā)光二極管的亮滅。8) PC0接揚聲器、PC1接紅燈、PC2接黃燈。9) 二極管閃爍:開|關(guān) 輸出為0則亮,輸出為1則滅。2.2 軟件部分 程序部分首先進行初始8255,然后進行時間顯示,初值顯示00分00秒,四個顯示器每個顯示10ms,接著秒個位加1,進行下一次顯示,當秒個位為10時,秒十位加1,同時秒個位清零.當秒十位為6

4、時,分個位加1,秒位清零,依次顯示。當顯示為5分00秒時,發(fā)出控制信號使揚聲器發(fā)出柔和的聲音,此時,若有人撥動開關(guān),則四個顯示器全清零,又從00分00秒開始顯示。當顯示5分00秒時,發(fā)出輕微的柔和的報警聲, 當顯示6分00秒時,發(fā)出急促的報警聲,發(fā)出控制信號使黃燈閃爍。當顯示為15分00秒時,揚聲器持續(xù)發(fā)出尖銳的報警聲,發(fā)出控制信號使紅燈閃爍。二、硬件設計1.芯片8255-A8255A作為輸出接口,驅(qū)動二極管發(fā)光。所用端口工作在方式0??刂瓢l(fā)光二極管的亮滅。A口,B口控制LED數(shù)碼顯示管,C口低四位分別接揚聲器,紅燈,黃燈。高四位中的Pc4接開關(guān),用于輸入信號,使系統(tǒng)復位。功能分析8255A有

5、A、B、C三個并行輸入/輸出端口(簡稱為A口、B口、C口),其功能全部由程序設定,每個端口都有自己的特點。A口、B口通常作為獨立的I/O端口使用,C口也可作為一般的I/O端口使用,但當A口、B口作為應答式的I/O口使用時,C口分別用來作為A口、B口提供應答控制信號,各端口的功能如下:頁:2表名呢?工作方式A口B口C口0基本輸入/輸出端口輸入不鎖存,輸出鎖存同A口同A口1選通輸入/輸出端口輸入/輸出均可鎖存同A口C口3位作為A口的應答線;C口另3位作為B口的應答線2應答式雙向輸入/輸出端口,均可鎖存不用C口5位用作A口的應答線原理圖及功能表圖 2-1 8255A原理圖表 2-1 8255A的操作

6、功能表 A1 A0操 作數(shù) 據(jù) 傳 送 方 式 0 0 1 0 0讀 A 口A口數(shù)據(jù) 數(shù)據(jù)總線 0 0 1 0 1讀 B 口B口數(shù)據(jù) 數(shù)據(jù)總線 0 0 1 1 0讀 C 口C口數(shù)據(jù) 數(shù)據(jù)總線 0 1 0 0 0寫 A 口數(shù)據(jù)總線數(shù)據(jù) A口 0 1 0 0 1寫 B 口數(shù)據(jù)總線數(shù)據(jù) B口 0 1 0 1 0寫 C 口數(shù)據(jù)總線數(shù)據(jù) C口 0 1 0 1 1寫控制口數(shù)據(jù)總線數(shù)據(jù) 控制口8255A有三種工作方式,用戶可以通過編程來設置。方式控制字圖 2-2 8255A方式控制字頁:4太多空白1.5 方式0的工作特點這種方式通常不用聯(lián)絡信號,不使用中斷,三個通道中的每一個都有可以由程序選定作為輸入或輸出

7、。其功能為:1)兩個8位通道:通道A、B。兩個四位通道:通道C高4位和低四位;2)任何一個通道可以作輸入/輸出;3)輸出是鎖存的;4)輸入是不鎖存的;5)在方式0時各個通道的輸入/輸出可有16種不同的組合。1.6 8255部分技術(shù)參數(shù)表 2-2 8255A技術(shù)參數(shù)SymbolParameterMinMaxUnitVILInput Low VoltageVVIHInput High VoltageVCCVVOL(DB)Output Low Voltage(Date Bus)0.45*VVOL(PER)Output Low Voltage(Peripheral Port)0.45*VVOH(DB)

8、Input Low Voltage(Date Bus)VVOH(PER)Input Low Voltage(Peripheral Port)VIDAR(1)Dartington Drive CurrentmAICCPower Supply Current120mAIILInput Load Current±10AIOFLOutput Float Leakage±10A輸入最低電壓:min -0.5V,max 0.8 V,輸入最高電壓:2.0 V。輸出最低電壓:0.45 V輸出最高電壓:2.4 V。2.LED顯示器在本設計中的作用LED發(fā)光二級管(Light-Emitting

9、 Diode),在本設計中采用7段數(shù)字發(fā)光二級管,做為終端顯示。2.2 功能分析 圖 2-3 LED圖示(1)物理構(gòu)造:LED發(fā)光二級管,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個PN結(jié),具有單向?qū)щ娦浴?2)工作原理:當在發(fā)光二極管PN結(jié)上加正向電壓時,PN結(jié)勢壘降低,載流子的擴散運動大于漂移運動,致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空穴與電子相遇后會產(chǎn)生復合,復合時產(chǎn)生的能量大部分以光的形式出現(xiàn)。(3) 數(shù)字成像:將七個發(fā)光管進行組合,排列成數(shù)字圖形8,再根據(jù)需要控制七個管的亮與滅,即可顯示出定義數(shù)字。實驗中采頁:5注意整篇文章的段落和縮進,調(diào)整文章

10、段落關(guān)系,使之更有條理用的是共陰極七段LED顯示器,他由多個發(fā)光二極管組成,七段或八段筆畫顯示器,當段組發(fā)亮時,便可顯示數(shù)字1位,七段代碼的各位用作a-g和Dp的輸入,當對應的位為1時,則該段亮。圖2-4 LED內(nèi)部結(jié)構(gòu)示意圖2.3 LED顯示管段選碼編碼表表 2-3 LED段選碼數(shù)字DPgfedcba二進制編碼(字形)0001111113FH10000001103H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FHA0111011177HB011111

11、007CHC0011100169HD010111105EHE0111100179HF0111000171H 技術(shù)參數(shù)表 2-4 LED技術(shù)參數(shù)PCWIfVrIrIfRP對應型號散射顏色BT-235-270255200SEL-10紅色3.單刀雙擲開關(guān)在本設計中的作用本次設計需要用1個開關(guān),用于檢測值班者是否睡著。+5V圖 2-5 單刀雙擲開關(guān)功能分析開關(guān)閉合輸入0,開關(guān)斷開輸入1。3.3 技術(shù)參數(shù)開關(guān)高電平:+5V、低電平:0V實驗中單刀雙擲開關(guān)接地,即通過8255,PC5檢測到為0,當值班者撥動開關(guān)接+5V電壓時,PC5檢測到為1(即相當于值班者按動按扭)4揚聲器4.1 在本設計中的作用本次設

12、計需要揚聲器發(fā)出三種不同頻率的響聲,由8255的PC0控制(第0位控制)4.2 功能分析如果使該位交替為0為1則產(chǎn)生一個脈沖電流,該電流放大后驅(qū)動揚聲器發(fā)出聲音。5.硬件總邏輯圖及其說明圖 2-8 硬件總邏輯圖上圖所示為數(shù)碼顯示管邏輯總圖,圖中所用到的為一片8255芯片、1位開關(guān)、4個七段LED數(shù)碼顯示管、紅燈和黃燈。將PCI的CS、A0、A1分別接8255A的CS、A0、A1,8255A的PA0PA7接入數(shù)碼管選擇腳, PB0PB7分別與數(shù)碼管段碼相連,作為段選擇。8255的A口,B口控制LED數(shù)碼顯示管,C口低四位作輸出口,PC0接揚聲器,PC1接黃燈,PC2接紅燈,高四位作輸入口,PC7

13、接開關(guān)。三、控制程序設計1.控制程序設計思路說明首先將8255初始化(設置8255A的控制方式,A口、B口用于輸出C口高四位輸入,低四位輸出),LED動態(tài)顯示時間(分、秒),用軟件查詢判斷分秒的情況:當顯示5:00 、6:00、15:00時,分別調(diào)用不同的發(fā)聲子程序。顯示期間若按復位鍵則時間從00:00開始計時。2 控制程序流程圖頁:7流程圖要居中,不要超出邊界,且每一個流程圖下面都要有圖標。 圖 3-1主程序流程圖圖 3-2判斷時間控制流程圖 圖 3-3進位判斷3 控制程序.MODELTINYpcibar3equ1ch;8位i/o空間基地址(它就是實驗儀的基地址, 也為dma & 3

14、2 bit;ram板卡上的8237提供基地址) vendor_idequ 10ebh ;廠商id號device_idequ8376;設備id號.stack100.dataio_bit8_baseaddressdw?msg0 db'bios不支持訪問pci $'msg1 db'找不到star pci9052板卡 $'msg2 db'讀8位i/o空間基地址時出錯$'com_adddw00f3h;控制口偏移量pa_adddw00f0h;pa口偏移量pb_adddw00f1h;pb口偏移量pc_adddw00f2h;pc口偏移量tab db 3fh,06

15、h, 5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;存儲表示數(shù)字的各段選碼分別表示為0-9m1 db 00h,00h,00h,00h ;存儲要顯示的四個時間量.codestart:movax,datamovds,axnopcallinitpcicallmodifyaddress ;根據(jù)pci提供的基地址,將偏移地址轉(zhuǎn)化為實地址init8255: mov dx,com_add ;寫8255a方式控制字mov al,88h ;設置端口a為工作方式0輸出端口;端口pc7到pc4為輸入,pc3到pc0為輸出;端口b 為輸出并工作在方式0out dx,almov dx,pc_add m

16、ov si,offset m1 ;設置m1的偏移地址于si中initime: mov ah,0 mov si,ah ;初始化4位時間的初值 mov si+1,ah mov si+2,ahmov si+3,ahmov al,0ffhout dx,allop1: mov ah,30 ;設置一秒鐘顯示之間的間隔時間waite: mov di,offset m1+3 ;顯示四個時間量 mov cl,0feh ;位選碼送入cl低位為1110;將tab內(nèi)的段選碼傳送入m1空間內(nèi)的相對位置,根據(jù)位選碼決定disp: mov al,dimov bx,offset tabxlat mov dx,pb_add ;

17、寫入端口b out dx,al ;將從tab空間內(nèi)讀取的段選碼輸入到端口bmov al,clmov dx,pa_add out dx,al ;將位選碼送入端口a call delay ;調(diào)用延時子程序延時低于20um則不閃爍 cmp cl,0f7h ; 1111 01111b 判斷該位選碼是否指向最后一個時間值(一次時間顯示有四個時間值顯示在led上) jz judge ;是最后一個時間值則轉(zhuǎn)向?qū)r間加一秒的程序 dec di ;指向下一個時間值以待顯示 rol cl,1 ;將位選碼左移一 位 cl 1110 jmp disp ;重新顯示下一位 lop2: jmp lop1 delay pro

18、c ;每一位經(jīng)段選和位選后的延時,之后處理下一位的段選、位選push cxmov bl,10del: mov cx,1000wait5: loop wait5dec bljnz delpop cxret delay endp judge: dec ah jnz waite ;若一秒未顯示30次則轉(zhuǎn)向以上顯示四個時間量的程序顯示30次;否則轉(zhuǎn)向判斷報警 mov dx,pc_add ;判斷c口開關(guān)端口pc7輸入是否為0in al,dxtest al,10000000b jnz initime ;為零則轉(zhuǎn)向初始化時間量的程序段;是否復位 ;報警方式 mov al,0 mov ah,1 mov bl,

19、5 mov bh,6 mov ch,10 cmp si,ah jb a cmp si+1,bl jb b call red jump carrya: cmp si+1,bh jnb b cmp si+1,bl jnb c jmp carryb: call yellow jmp carryc: call soft jump carry ;時間進位控制carry: add si+3,ah ;秒個數(shù)的時間量加1 cmp si+3,ch ;判斷秒個位是否為10,不為則轉(zhuǎn)向以上顯示四個時間量的程序段中 jnz lop1 mov si+3,al ;若秒個位為10則將其置零 add si+2,ah ;秒十位

20、加1 cmp si+2,bh jnz lop2 ;判斷秒十位是否為6,是則轉(zhuǎn)向顯示時間量的程序段 mov si+2,al ;若為6則將其清零 add si+1,ah ;并分個位加1pp: cmp si+1,ch jnz asd ;若分個位不為10則轉(zhuǎn)向顯示時間量 mov si+1,al ;若為10則將其清零 add si,ah ;并分十位加1asd: jmp lop1 ;控制時間進位soft proc ;柔和報警子程序push axpush bxpush cx mov bx,5 ;bx為一秒內(nèi)報警次數(shù)sound1:mov dx,pc_add mov al,11111110b out dx,al

21、 ;揚聲器工作 mov cx,00fffh ;一次報警的延時wait1: loop wait1 mov al,0ffh ;揚聲器停止工作out dx,al dec bxjne sound1mov cx,00effh ;一秒內(nèi)5次報警完畢后的停頓延時wai1: loop wai1pop cxpop bxpop axretsoft endpyellow proc ;黃燈急促報警子程序push axpush bxpush cxmov bx,20sound2:mov dx,pc_add mov al,11111100bout dx,al ;揚聲器mov cx,01f00h wait2: loop wa

22、it2 mov al,0ffhout dx,aldec bxmov cx,000ffhwai2:loop wai2 dec bxjne sound2pop cxpop bxpop axretyellow endpred proc ;紅燈尖銳報警子程序push axpush bxpush cx mov bx,100sound3:mov dx,pc_add mov al,11111010bout dx,al ;揚聲器 dec bxmov cx,00fffh wait3: loop wait3 mov al,0feh out dx,almov cx,000f0h wai3: loop wai3 de

23、c bxjne sound3pop cx pop bx pop ax retred endpinitpciprocnearmovah,00hmoval,03hint10h;清屏movah,0b1hmoval,01hint1ahcmpah,0jzinitpci2leadx,msg0initpci1:movah,09hint21hjmpexitinitpci2:movah,0b1hmoval,02hmovcx,device_idmovdx,vendor_idmovsi,0int1ahjncinitpci3;是否存在star pci9052板卡leadx,msg1jmpinitpci1initpci

24、3:movdi,pcibar3movah,0b1hmoval,09hint1ah;讀取該卡pci9052基地址jncinitpci4leadx,msg2jmpinitpci1initpci4:andcx,0fffchmovio_bit8_baseaddress,cxretinitpciendpmodifyaddressprocnearaddcom_add,cxaddpa_add,cxaddpb_add,cxaddpc_add,cxretmodifyaddressendpexit:movah,4chint21hendstart四、設計結(jié)果分析及問題討論1.上機調(diào)試過程頁:6調(diào)試分為硬件調(diào)試,軟件

25、調(diào)試,聯(lián)機調(diào)試3部分,詳細些1)在揚聲器發(fā)聲的時候,LED數(shù)碼顯示管停止顯示時間,這將導致當前時間顯示太長。2) 在程序控制部分出現(xiàn)了錯誤,時間從6分00秒開始黃燈閃爍,發(fā)出急促的報警聲后,到7分00秒就不報警了。應該從6分00后一直報警直到15分00秒。通過對程序的反復檢驗,發(fā)現(xiàn)在調(diào)用聲音子程序的模塊上少了個循環(huán)語句。3)最后在報警聲音方面上又遇到了問題,沒有達到預期的聲音逐漸增強的效果。通過反復的對聲音模塊參數(shù)的修改終于達到了預期效果。4)蜂鳴器正常發(fā)聲后,出現(xiàn)了不能及時將其關(guān)閉的問題,經(jīng)過思考后決定采用8255的PC0作為GATE門控信號,對8253的計數(shù)器2進行控制,解決這個問題的關(guān)鍵

26、是對8255的PC0進行置位/復位,以此來控制8253開始和停止輸出方波。2 課程設計結(jié)果及分析2.1 設計結(jié)果程序開始運行時,四個LED燈從00分00秒開始顯示時間,并隔相應的時間加一秒,一直顯示到59分59秒,然后又從00分00秒開始顯示,如此循環(huán)下去。當時間顯示到05分00秒時,揚聲器發(fā)出較柔和的聲音,到06分00秒時,揚聲器發(fā)出較急促的聲音,黃燈閃爍,到15分00秒時,揚聲器發(fā)出尖銳的報警聲,紅燈閃爍。每次撥開關(guān)為高電平時,LED燈就變成從00分00秒開始顯示。2.2 結(jié)果分析1、數(shù)碼管的顯示使用段選和位選的方法進行控制,即用位選來選擇哪一個顯示燈亮,用段選來控制顯示器顯示的時間值。設

27、計中因為時間的確定決定著發(fā)聲和燈亮的操作,故一定要設置一個時間數(shù)字的緩沖區(qū),以便于對時間的變化進行查詢。本次設計中最為重要的是定義段碼表,其作用可歸納為:(1)初始狀態(tài)時,時間為00:00這時要利用段碼表提供的數(shù)和位選依次對各個位進行賦值。(此時偏移地址為0)(2)計時時通過改變緩沖區(qū)內(nèi)的數(shù)值值,以此作為換碼指令的偏移地址,通過換碼指令得到應該在數(shù)碼顯示器中顯示的時間值。2、時間變化過程中要進行查詢,注意與0,5,6,15幾個敏感的數(shù)值進行比較,通過比較進行相應的操作。3、本設計中峰鳴器的發(fā)聲由8253完成,通過在計數(shù)器中打入不同的計數(shù)初值,使8253在特定的工作方式下實現(xiàn)峰鳴器發(fā)出不同頻率和強度的報警聲。8253要與8255的C口相連,8255向8253輸出門控信號,通過對8255控制口寫C口置位復位控制字,控制PC0置1,使8253以方式3產(chǎn)生方波,從而驅(qū)動蜂鳴器的發(fā)聲。3 收獲、體會和

溫馨提示

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

評論

0/150

提交評論