版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 序號: </b></p><p> 課 程 設 計</p><p> ?。ㄎC原理及應用A)</p><p> 班 級 </p><p> 姓 名 </p><p> 學 號
2、 </p><p> 指導教師 </p><p> 二○一一 年 七 月 八 日</p><p> 課程設計任務書及成績評定</p><p> 課題名稱 壓力測控系統的設計 </p><p> I、題目的目的和要求:</p&g
3、t;<p> 設計一個對壓力傳感器的信號進行檢測并在LED數碼顯示器上顯示壓力值的系統,當壓力低于30pa時,黃燈閃爍,閃爍周期為1秒。當壓力高于150pa時,紅燈閃爍。LED的顯示內容為P=XXX。X為測試值。</p><p> II、設計進度及完成情況</p><p> III、主要參考文獻及資料</p><p> 《微型計算機原理及應用》
4、 清華大學出版社 鄭學堅 周斌</p><p> 《微型計算機技術及應用》清華大學出版社 史嘉權</p><p> 《微機原理與接口技術基礎與應用》海洋出版社 鄧振杰</p><p> 《微機原理與接口技術實驗及課程設計》西南交通大學出版社 楊斌 </p><p> 《單片機原理及接口技術》 清華大學出版社 梅麗鳳 王艷秋</p
5、><p> 學科部主任 (簽字)</p><p><b> ?、?、成績評定:</b></p><p> 設計成績: (教師填寫)</p><p> 指導老師: (簽字)</p><p> 二○一一 年 七 月 八
6、 日</p><p><b> 一、設計要求</b></p><p> 設計一個對壓力傳感器的信號進行檢測并在LED數碼顯示器上顯示壓力值的系統,當壓力低于30pa時,黃燈閃爍,閃爍周期為1秒。當壓力高于150pa時,紅燈閃爍。LED的顯示內容為P=XXX。X為測試值。</p><p><b> 二.設計思想</b>
7、;</p><p> 壓力測試系統的設計,必然要牽涉到壓力的感應與轉化,所以必須要有壓力傳感與A/D轉換器。將自然中的模擬量轉化為電壓信號,再轉化位數字信號進行處理。一個小型的微機系統,必須要有8086cpu來進行整體的控制,將其通過8255與A/D傳感器進行連接。這就是這個系統的主要框架。</p><p> 而具體的應用框架則是在主要的框架上添加。要當壓力低于30pa時,黃燈閃爍。當
8、壓力高于150pa時,紅燈閃爍。則應添加8255。模塊。通過編程來控制黃燈與紅燈的亮滅情況,考慮到要進行比較,所以我用了兩個比較器進行數據的比較。同時,由于燈要閃爍,閃爍周期要一秒,所以我們考慮到還要加一個8253芯片去控制。但根據個人情況,這個模塊我省略了。而至于LED顯示,且顯示內容為三位。我只在程序之中體現,而在硬件圖中沒有去體現。</p><p><b> 三.系統設計框圖</b>
9、</p><p><b> 四.程序流程圖</b></p><p><b> 五.源程序</b></p><p><b> ;宏定義</b></p><p> addr_8253 equ 208h</p><p> a_8253
10、 equ addr_8253 </p><p> b_8253 equ addr_8253+1h</p><p> ctrl_8253 equ addr_8253+3h</p><p> addr_adc0809 equ 210h </p><p>
11、addr_8255 equ 200h</p><p> a_8255 equ addr_8255</p><p> b_8255 equ addr_8255+1h</p><p> c_8255 equ addr_8255+2h</p><p&
12、gt; ctrl_8255 equ addr_8255+3h</p><p> ;******************************************</p><p> codesegment</p><p> assume cs:code,ds:code</p><p><b> s
13、tart:</b></p><p><b> movax,cs</b></p><p><b> movds,ax</b></p><p> ;******************************************</p><p> ;8253產生方形波,周期為
14、1s,通道0</p><p> movdx,ctrl_8253;設置8253控制口 </p><p> moval,3eh;控制字00111110 00表示計時器0;11表示先讀寫低八位,后寫讀高八位; X11表示工作在模式3; 0表示二進制計數</p><p> outdx,al ;寫控制字</p>&
15、lt;p> movdx,a_8253;設置計數初值(計數器0)</p><p> movax,1000d</p><p> outdx,al;先寫低八位,后寫高八位</p><p><b> moval,ah</b></p><p><b> outdx,al</b>
16、</p><p> ;8253產生方形波,周期為1s,通道1</p><p> movdx,ctrl_8253;設置8253控制口 </p><p> moval,7eh;控制字01111110 01表示計時器1;11表示先讀寫低八位,后寫讀高八位; X11表示工作在模式3; 0表示二進制計數</p><p> o
17、utdx,al ;寫控制字</p><p> movdx,b_8253;設置計數初值(計數器1)</p><p> movax,500d</p><p> outdx,al ;先寫低八位,后寫高八位</p><p><b> moval,ah</b></p
18、><p><b> outdx,al</b></p><p> ;******************************************</p><p><b> ;啟動A/D</b></p><p> movdx,addr_adc0809 ;ADC0809 </p
19、><p> outdx,al </p><p> ;******************************************</p><p><b> disp:</b></p><p><b> ;8255初始化</b></p><p&g
20、t; ;A口做為段碼輸出,B口做為位碼輸出,C口低2位做為有色燈的輸出</p><p> movdx,ctrl_8255;8255初始化 </p><p> moval,80h;控制字 10000000 1表示方式控制字; 00端口A方式0; 0輸出; 0PC7-PC4 輸出; 0定義端口B為0 輸出;0 PC0-PC3 輸出 </p><p
21、> outdx,al ;寫控制字</p><p><b> repeat:</b></p><p> ;初始化地址指針和位碼</p><p> leabx,TABLE;段碼表首址送bx Load effect address——取有效地址,也就是取偏移地址</p><p&g
22、t; leadi,BUFDA;指向緩沖區(qū)首地址 Load effect address——取有效地址,也就是取偏移地址</p><p> movcl,0dfh ;11011111b 位碼,共陰極,便于從第六位開始向低位依次顯示</p><p> next: ;顯示子程序</p><p><
23、;b> ;輸出位碼</b></p><p> movdx,b_8255;8255B口,輸出位碼</p><p> moval,cl</p><p> outdx,al</p><p> moval,[di];從緩沖區(qū)取段碼</p><p><b> xlat
24、</b></p><p> movdx,a_8255;輸出段碼到8255A口</p><p><b> outdx,al</b></p><p><b> ;延遲</b></p><p><b> pushcx</b></p><
25、p> movcx,30h</p><p><b> delay:</b></p><p> loopdelay</p><p><b> popcx</b></p><p><b> ;關LED顯示</b></p><p> mo
26、vdx,a_8255</p><p><b> moval,0</b></p><p><b> outdx,al</b></p><p> cmpcl,11111110b;已經顯示最低位</p><p> jzconvey;顯示完成</p><p>
27、 incdi;指向下一個段碼</p><p> rorcl,1;顯示向低一位轉移</p><p><b> jmpnext</b></p><p><b> convey:</b></p><p> ;延時,方便LED顯示結果及有色燈的閃爍</p><p&
28、gt; cmpcount,0;count在后面定義</p><p> jzadcall;延時時間到,開始下一次的數據采樣</p><p> deccount;延時時間未到</p><p> jmprepeat;******************jmp convey</p><p> ;***********
29、*******************************</p><p> ;ADC0809接收模擬信號并轉化為數字信號</p><p><b> adcall:</b></p><p><b> callad</b></p><p> movcount,0ffh;設置下一次數據
30、采集的時間間隔</p><p> jmprepeat</p><p> TABLE:;段碼表</p><p><b> db3fh;0</b></p><p><b> db06h;1</b></p><p><b> db5bh;2<
31、;/b></p><p><b> db4fh;3</b></p><p><b> db66h;4</b></p><p><b> db6dh;5</b></p><p><b> db7dh;6</b></p>&
32、lt;p><b> db07h;7</b></p><p><b> db7fh;8</b></p><p><b> db6fh;9</b></p><p><b> db73h;P</b></p><p><b> d
33、b48h;=</b></p><p> db00h;NULL</p><p> BUFDA:;顯示緩沖區(qū)</p><p> db10,11,12,12,12,0;初始顯示P= 0 </p><p> countdw0ffh</p><p> ;****************
34、**************************</p><p><b> adproc</b></p><p> ;讀取AD轉換結果并啟動AD</p><p><b> pushax</b></p><p><b> pushbx</b></p>
35、;<p><b> pushcx</b></p><p><b> pushdx</b></p><p><b> pushdi</b></p><p> movdx,addr_adc0809 ;通道0</p><p><b> ;讀結
36、果</b></p><p> inal,dx;數字量存放在al中</p><p><b> ;啟動A/D</b></p><p> outdx,al;啟動下一次的ad轉換</p><p><b> pushax</b></p><p> ;
37、******************************************</p><p> ;根據數字量的值判斷有色燈是否要亮</p><p> cmpal,30d</p><p> jbyellow;小于30 小于則轉移到目標指令執(zhí)行</p><p> cmpal,150d</p>&
38、lt;p> jared;大于150 大于則轉移到目標指令執(zhí)行</p><p> movdx,ctrl_8255 ;8255控制口</p><p><b> pushax</b></p><p> mov al,00h;介于30和150之間,PC0輸出低電平</p><p>&l
39、t;b> outdx,al</b></p><p><b> popax</b></p><p> jmpred_yellow</p><p> ;******************************************</p><p> red:movdx,c_8255
40、 ;控制口</p><p> mov al,02h;8255 PC1輸出高電平</p><p><b> outdx,al</b></p><p> jmpred_yellow</p><p> yellow:movdx,c_8255 ;控制口</p><p> mov
41、al,01h ;8255 PC0輸出高電平</p><p> out dx,al</p><p> red_yellow:</p><p><b> popax</b></p><p><b> movah,0</b></p><p>
42、;******************************************</p><p> ;將數字量轉換成十進制,方便顯示</p><p> callbinidec</p><p><b> popdi</b></p><p><b> popdx</b></
43、p><p><b> popcx</b></p><p><b> popbx</b></p><p><b> popax</b></p><p><b> ret</b></p><p><b> ade
44、ndp</b></p><p> ;******************************************</p><p> binidecproc</p><p> ;將存放于AL中的數轉換為十進制數存放到BUFDA中</p><p><b> pushax</b></p&g
45、t;<p> movah,0;ax=al</p><p><b> movbl,10</b></p><p> movcx,4;</p><p> leadi,BUFDA+5;指向顯示緩沖區(qū)末尾</p><p> binidec_next:</p><p>
46、; divbl;al:商,ah:余數</p><p> mov[di],ah</p><p><b> decdi</b></p><p><b> deccx</b></p><p><b> movah,0</b></p><p&
47、gt;<b> cmpal,0</b></p><p> jnzbinidec_next</p><p> binidec_null:</p><p> movbyte ptr [di],12</p><p><b> decdi</b></p><p>
48、 loopbinidec_null</p><p><b> popax</b></p><p><b> ret</b></p><p> binidecendp</p><p> ;******************************************</p&g
49、t;<p><b> codeends</b></p><p> endstart </p><p><b> 六、設計心得</b></p><p> 經過一周的微機課程設計,讓我對微機這一門課程有了系統的疏導。在學習這門課程是我們只是獨立的講解一些芯片的結構及用法,而通過微機課程設計,在我們在構
50、建一個小型的微機系統時,而真正的去關注這些芯片的連接。這不但要求我們對各個芯片要有一定的了解與認知。而且要懂得怎么融會貫通。這是我在這次微機實習中體會最深的。其二,通過微機課程設計,培養(yǎng)了我們想問題的思維方式。以前我們想問題時總是將一些問題孤立出來去思考,而這次實習,他引導我們以多維的方式去解析整個問題。在課程設計中,我們不但要理解好系統的結構,進而畫出硬件連接圖、而且要寫出程序流程圖及源程序就,這些雖然是不同的表現形式,但他們必須用統
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機原理課程設計---壓力測量系統的設計
- 微機原理壓力測控系統課程設計
- 微機原理壓力測控系統課程設計--壓力測控系統設計
- 微機原理課程設計--在線ph值的測量
- 微機原理課程設計
- 微機原理課程設計--電機調速系統設計
- 微機原理課程設計--- 溫度測控系統
- 微機原理課程設計----電壓采集系統
- 微機原理課程設計--溫度采集系統
- 微機原理課程設計報告
- 微機原理課程設計.rar
- 微機原理課程設計報告
- 2017微機原理課程設計
- 微機原理課程設計.rar
- 微機原理課程設計.rar
- 微機原理課程設計.rar
- 微機原理課程設計報告
- 《微機原理》課程設計報告
- 微機原理課程設計報告
- 微機原理課程設計課程設計----微機內存擴充卡
評論
0/150
提交評論