版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)</p><p><b> ——數(shù)據(jù)采集</b></p><p><b> 二零一三年一月八號(hào)</b></p><p><b> 一、任務(wù)要求</b></p><p> 對(duì)一路溫度、一路壓力信號(hào)進(jìn)行巡回?cái)?shù)據(jù)采集,并把A/D
2、轉(zhuǎn)換后的結(jié)果在實(shí)驗(yàn)機(jī)的數(shù)碼管上顯示出來(lái)。采集到的數(shù)據(jù)超過(guò)規(guī)定的限值時(shí),使發(fā)光二極管發(fā)光報(bào)警。</p><p><b> 二、硬件連線</b></p><p> 本程序?qū)崿F(xiàn)兩路數(shù)據(jù)采集:一路采集溫度信號(hào),一路采集壓力信號(hào)。對(duì)每一路信號(hào)要連續(xù)采集8次,然后把8次A/D轉(zhuǎn)化后的平均值顯示在數(shù)碼管上。左邊三位顯示壓力值,右邊三位顯示溫度值。</p><
3、p> ?。?)撥碼開關(guān):將撥碼開關(guān)SW2撥上。表示將GAL20V8的地址輸入A-5接至系統(tǒng)地址線A5;A-6接至地址線A6;A-7接至地址線A7。</p><p> (2)壓力實(shí)驗(yàn)?zāi)K的“壓力輸出”端接至ADC0809的輸入端IN0,溫度實(shí)驗(yàn)?zāi)K的“溫度輸出”端接至ADC0809的輸入端IN1。</p><p> ?。?)0809的EOC的輸出端與8259的IRQ0端相連,0809
4、的CS連CS8(3E0H)。</p><p> ?。?)8259的片選CS-1連地址輸出CS6(3A0H),8259的INT1連總線輸入INTR,8259模塊的INT-A連總線的INTA,8259的SP/1連+5V。</p><p> (5)8253的片選CS連地址輸出端CS1(300H),8253的A0、A1分別連地址總線的A2、A3,8253的GATE0連+5V,8253的CLK0連
5、74LS393分頻輸出的47K輸出端,8253的OUT0連到任一發(fā)光二極管上;8253的GATE1連+5V,8253的CLK1連74LS393分頻輸出的47K輸出端,8253的OUT1連到溫度實(shí)驗(yàn)?zāi)K的“占空比輸入”端。</p><p> ?。?)8255并行模塊下方的4個(gè)片選信號(hào)CS-1、CS-2、CS-3和CS-4分別與地址譯碼輸出模塊的對(duì)應(yīng)引腳(實(shí)驗(yàn)箱中部的CS-1、CS-2、CS-3和CS-4)連接。&l
6、t;/p><p> (7)74系列模塊中開放的3根輸出信號(hào)和4根輸入信號(hào)對(duì)鍵盤進(jìn)行控制。鍵盤的行信號(hào)Q_0、Q_1、Q_2、Q_3分別與開放的輸入信號(hào)Q0、Q1、Q2、Q3相連,鍵盤的列信號(hào)P_0和開放的輸出信號(hào)P0相連,片選信號(hào)CS2接CS4(360H)。</p><p> 如按上述連線,則8255的A口、B口、C口和控制口地址分別是200H、204H、208H、20CH;8259的奇地
7、址是3A8H,偶地址是3A0H。</p><p><b> 三、流程圖</b></p><p><b> 主程序模塊:</b></p><p><b> 中斷服務(wù)程序模塊:</b></p><p><b> 四、代碼實(shí)現(xiàn)</b></p>
8、<p><b> 1、8255模塊:</b></p><p> 顯示溫度值、壓力值;</p><p><b> 2、8253模塊:</b></p><p> ?。?)輸出負(fù)脈沖控制LED燈亮,即報(bào)警;</p><p> (2)8253的OUT1作為“占空比輸入”。</p&
9、gt;<p> 3、8259模塊: </p><p> 實(shí)現(xiàn)中斷服務(wù)程序,即進(jìn)行壓力和溫度的數(shù)據(jù)采集。</p><p><b> 4、74系列模塊:</b></p><p> 實(shí)現(xiàn)數(shù)據(jù)采集的停止;</p><p> 5、A/D轉(zhuǎn)換模塊:</p><p> 實(shí)現(xiàn)溫度、壓力模
10、擬信號(hào)向數(shù)字信號(hào)的轉(zhuǎn)換。</p><p><b> 源代碼如下:</b></p><p><b> .486p</b></p><p> data segment use16 at 0 </p><p><b> org 1000h</b></p>&l
11、t;p> alarmflag db ?</p><p> max db?</p><p> pbai db?</p><p><b> pshidb?</b></p><p><b> pgedb?</b></p><p><b>
12、 tbaidb?</b></p><p><b> tshidb?</b></p><p><b> tgedb?</b></p><p> pbufferdb8 dup(?)</p><p> tbufferdb8 dup(?)</p>&l
13、t;p> timesdb?</p><p><b> chudb?</b></p><p> countdb?</p><p> stackp equ 1100h</p><p><b> data ends</b></p><p> cod
14、e segment use16</p><p> assume cs:code,ds:data,ss:data</p><p><b> org 1500h</b></p><p> beg:jmp start</p><p> sevencod db 0C0H,0F9H,0A4H,0B0H,99H,92H,8
15、2H,0F8H</p><p> db 80H,90H,88H,83H,0C6H,0A1H,86H,8EH </p><p> start:moveax,60000000h</p><p> movcr0,eax</p><p> movax,data</p><p><b> movds,
16、ax</b></p><p> movtimes,8</p><p> movchu,10</p><p> movmax,200</p><p><b> cli</b></p><p> movalarmflag,0</p><p> m
17、ovcount,0</p><p> moveax,80808080h</p><p> movdx,20ch</p><p> outdx,eax;初始化8255</p><p> moveax,0ffffffffh</p><p> movdx,200h</p><p>
18、; outdx,eax;a口全滅</p><p> movdx,204h</p><p> outdx,eax;b口全滅</p><p><b> ;初始化8259</b></p><p> movdx,3a0h</p><p> moval,13h</p>
19、<p> outdx,al;icw1</p><p> movdx,3a8h</p><p> moval,08h</p><p> outdx,al;icw2</p><p> moval,03h</p><p> outdx,al;icw4</p><p>
20、 movdx,30ch</p><p> moval,56h</p><p><b> outdx,al</b></p><p> moval,128</p><p> movdx,304h</p><p> outdx,al;占空比</p><p>
21、; mov ax,offset pic</p><p> mov bx,20h</p><p> mov [bx],ax</p><p> mov ax,seg pic</p><p> mov [bx+2],ax;中斷向量表</p><p> movdx,3a8h</p><p>
22、; movdx,0feh</p><p> outdx,al;ocw1,開放irq0</p><p><b> sti</b></p><p> leabx,pbuffer</p><p> re:movdx,3e0h</p><p> outdx,al </p&g
23、t;<p> call delayint</p><p> cmpcount,7</p><p><b> jbere</b></p><p><b> cli;采集壓力值</b></p><p> leabx,pbuffer</p><p>&
24、lt;b> movcx,8</b></p><p><b> xorax,ax</b></p><p> count0:addal,[bx]</p><p><b> adcah,0</b></p><p><b> incbx</b>&l
25、t;/p><p> loopcount0</p><p><b> divtimes</b></p><p><b> movah,0</b></p><p><b> divchu</b></p><p> movpge,ah</
26、p><p><b> movah,0</b></p><p><b> divchu</b></p><p> movpshi,ah</p><p><b> movah,0</b></p><p><b> divchu<
27、;/b></p><p> movpbai,ah</p><p> moval,pbai</p><p> leabx,sevencod</p><p><b> xlat</b></p><p> movpbai,al</p><p> mov
28、al,pshi</p><p><b> xlat</b></p><p> movpshi,al</p><p> moval,pge</p><p><b> xlat</b></p><p> movpge,al</p><p>
29、 movdx,200h</p><p> moval,pbai</p><p><b> outdx,al</b></p><p> movdx,204h</p><p> moval,pshi</p><p><b> outdx,al</b><
30、;/p><p> movdx,201h</p><p> moval,pge</p><p> outdx,al;轉(zhuǎn)換</p><p> calldelayint</p><p><b> sti</b></p><p> movcount,0</p
31、><p> leabx,tbuffer</p><p><b> re1:</b></p><p> movdx,3e4h</p><p> outdx,al </p><p> call delayint</p><p> cmpcount,7</
32、p><p><b> jbere1</b></p><p><b> cli;采集溫度值</b></p><p> leabx,tbuffer</p><p><b> movcx,8</b></p><p><b> xorax
33、,ax</b></p><p> count1:addal,[bx]</p><p><b> adcah,0</b></p><p><b> incbx</b></p><p> loopcount1</p><p><b> di
34、vtimes</b></p><p><b> movah,0</b></p><p><b> divchu</b></p><p> movtge,ah</p><p><b> movah,0</b></p><p>
35、<b> divchu</b></p><p> movtshi,ah</p><p><b> movah,0</b></p><p><b> divchu</b></p><p> movtbai,ah</p><p> mo
36、val,tbai</p><p> leabx,sevencod</p><p><b> xlat</b></p><p> movtbai,al</p><p> moval,tshi</p><p><b> xlat</b></p>&
37、lt;p> movtshi,al</p><p> moval,tge</p><p><b> xlat</b></p><p> movtge,al</p><p> movdx,205h</p><p> moval,tbai</p><p&g
38、t;<b> outdx,al</b></p><p> movdx,202h</p><p> moval,tshi</p><p><b> outdx,al</b></p><p> movdx,206h</p><p> moval,tge&l
39、t;/p><p> outdx,al;轉(zhuǎn)換</p><p><b> exit: </b></p><p><b> cli</b></p><p> movdx,3a8h</p><p> moval,00h</p><p> out
40、dx,al;恢復(fù)屏蔽寄存器</p><p> call delayint</p><p><b> jmp start</b></p><p><b> hlt</b></p><p> delayint proc</p><p><b> push d
41、x</b></p><p><b> push ax</b></p><p><b> push cx</b></p><p> mov cx,1024</p><p><b> loop $</b></p><p><b>
42、; pop cx</b></p><p><b> pop ax</b></p><p><b> pop dx</b></p><p><b> ret</b></p><p> delayint endp</p><p>
43、picproc far</p><p><b> cli</b></p><p><b> pushdx</b></p><p><b> pushax</b></p><p><b> pushcx</b></p><
44、p><b> inal,dx</b></p><p> cmpal,max</p><p><b> jaexit2</b></p><p> mov[bx],al</p><p><b> incbx</b></p><p>
45、<b> inccount</b></p><p><b> jmpexit1</b></p><p><b> exit2:</b></p><p> movdx,30ch</p><p> moval,10h</p><p><
46、;b> outdx,al</b></p><p> movax,128</p><p> movdx,300h</p><p> outdx,al;報(bào)警</p><p> exit1:movdx,3a0h</p><p> moval,20h</p><p&
47、gt; outdx,al;關(guān)中斷</p><p> mov al,0feh</p><p> mov dx,360h</p><p><b> out dx,al</b></p><p><b> nop</b></p><p><b> nop<
48、;/b></p><p><b> in al,dx</b></p><p> and al,0fh</p><p> cmp al,0fh</p><p><b> je next</b></p><p><b> hlt</b><
49、;/p><p><b> next:</b></p><p><b> popcx</b></p><p><b> popax</b></p><p><b> popdx</b></p><p><b>
50、sti</b></p><p><b> iret</b></p><p><b> picendp</b></p><p><b> codeends</b></p><p><b> endbeg</b></p>
51、<p><b> 五、調(diào)試運(yùn)行</b></p><p> 在調(diào)試運(yùn)行過(guò)程中,我遇到了以下幾個(gè)問(wèn)題:</p><p> 1、當(dāng)壓力、溫度超過(guò)限值時(shí),LED燈不能報(bào)警;</p><p> 2、單步調(diào)試時(shí),停止鍵有用,全速運(yùn)行時(shí)就不起作用;</p><p> 3、剛?cè)龠\(yùn)行時(shí),溫度值、壓力值的顯示亮度不
52、一樣,壓力值較亮,溫度值較暗。</p><p> 經(jīng)過(guò)多次單步調(diào)試及I/O檢測(cè),終于發(fā)現(xiàn)了癥結(jié)所在,原因及解決辦法如下:</p><p> 1、針對(duì)第一個(gè)問(wèn)題,我的想法是可以采用8253的定時(shí)計(jì)數(shù)功能,使得OUT0口定時(shí)輸出負(fù)脈沖,將OUT0與LED燈連接,即可以報(bào)警。由于我采用了方式2,輸出的負(fù)脈沖只持續(xù)很短的時(shí)間,所以肉眼幾乎看不到LED燈在閃爍。于是,我改用了方式3。</p
53、><p> 2、針對(duì)第二個(gè)問(wèn)題,每一輪采樣中,我都初始化一遍8253,使得按鍵無(wú)效。所以,我將初始化8253的計(jì)數(shù)器1改放在了整個(gè)程序的初始化部分。</p><p> 3、針對(duì)第三個(gè)問(wèn)題,我詢問(wèn)了老師和同學(xué),但是還是沒(méi)有解決亮度的問(wèn)題,這是這次課設(shè)的一個(gè)未解癥狀之一。</p><p><b> 六、總結(jié)</b></p><
54、p> 這次課程設(shè)計(jì)讓我充分認(rèn)識(shí)到了我思考問(wèn)題不周到全面。比如,在報(bào)警方面,我沒(méi)有考慮到8253工作在方式2時(shí)輸出的負(fù)脈沖只持續(xù)很短暫的時(shí)間,我也沒(méi)有認(rèn)識(shí)到進(jìn)入中斷服務(wù)程序時(shí)保護(hù)現(xiàn)場(chǎng)的重要性。這些都是在以后的學(xué)習(xí)、工作中需要注意的問(wèn)題。</p><p> 同時(shí),通過(guò)這次課程設(shè)計(jì),我對(duì)自己更加充滿了信心。在老師的幫助下,在與同學(xué)的討論中,我認(rèn)識(shí)到了自己的問(wèn)題,并加以改正,獨(dú)立完成了這次課程設(shè)計(jì)??吹阶约号?/p>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì).
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
- 微機(jī)接口技術(shù)課程設(shè)計(jì)報(bào)告
- 紅外通信-微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告書
- 微機(jī)接口技術(shù)課程設(shè)計(jì)
- 微機(jī)接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)--流水燈
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告——電子琴
- 單機(jī)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-交通燈
- 電子密碼鎖-微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì) --存儲(chǔ)器
- 電子密碼鎖-微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告
- 《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-----交通燈設(shè)計(jì)
- 電子表設(shè)計(jì)(微機(jī)原理與接口技術(shù)課程設(shè)計(jì))
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告---開關(guān)控制霓虹燈
評(píng)論
0/150
提交評(píng)論