《《微機原理與接口技術》實驗內容提要》由會員分享,可在線閱讀,更多相關《《微機原理與接口技術》實驗內容提要(10頁珍藏版)》請在裝配圖網上搜索。
1、1 實 驗 報 告課程名稱: 微機原理與接口技術實驗 指導老師: 齊杭麗 成績:_實驗名稱: 并行 AD、DA 實驗 實驗類型:_ _同組學生姓名:_無_1. 實驗目的 掌握采用并行接口實現(xiàn)外部器件的擴展方法; 掌握 ADC0809 模/數轉換芯片與單片機的接口設計及 ADC0809 的典型應用; 掌握 DAC0832 模/數轉換芯片與單片機的接口設計及 DAC0832 的典型應用。2. 預習要求 理解內存與 IO 統(tǒng)一編址的外設端口地址的映射及控制; 理解用查詢方式、中斷方式完成模/數轉換程序的編寫方法; 理解 DAC0832 直通方式,單緩沖器方式、雙緩沖器方式的編程方法。3. 實驗設備計
2、算機 1 臺; ZDGDTH-1 型 80C51 實驗開發(fā)系統(tǒng) 1 套;2 號導線、8P 數據線 若干條;萬用表 1 個;4. 基礎型實驗內容 圖 4-1 為 ADC0809 的擴展電路圖,用 8P 數據線將 D2 區(qū) 80C51/C8051F020 MCU 模塊的 JD0(P0 口) 、JD8 分別與 C5 區(qū)并行 A/D 轉換模塊的 JD1C5、JD2C5 相連;用二號導線將 D2 區(qū) 80C51/C8051F020 MCU 模塊的 WR、RD、P2.0、CLK、P3.3 分別與 C5 區(qū)并行A/D 轉換模塊的 WR、RD、 CS、ALE、EOC 相連;并行 A/D 轉換模塊的Vref 接
3、5V, AIN0 接 D6 區(qū)可調電源模塊的 05V 端。說明 AD 轉換的過程,并在 Keil 環(huán)境設置斷點運行以下程序,可調電源分別調至兩個極端,觀察寄存器及內存單元的變化。專業(yè):信息工程(光電系)姓名: 王釗 學號: 3070801185 日期: 2009-12-28 地點: 東 4-606 2 GND13VCI-06msb79485lEOABLref()STR+KU/W_P.uF 圖 4-1 ADC0809 的擴展電路圖 ORG 0000H MAIN: CLR A SETB P3.3 ;設定與 EOC 接口 IO 處于接收狀態(tài) MOV DPTR,#0FEF8H ;選擇 A/D 端口地址
4、 NOP MOVX DPTR,A ;啟動 AD 轉換WAIT: JB P3.3,WAIT MOVX A,DPTR ; 讀入結果 NOP LJMP MAIN 圖 4-2 為 DAC0832 的擴展電路圖,用 8P 數據線將 D2 區(qū) 80C51/C8051F020 MCU 模塊的 JD0(P0 口)與 C4 區(qū)并行 DA 轉換模塊的 JD1C4 相連,用二號導線將 D2 區(qū)80C51/C8051F020 MCU 模塊的 P2.0、WR 分別與 C5 區(qū)并行 D/A 轉換模塊的 CS、WR 模塊,用萬用表測量“-Vref”端的電壓,手動調節(jié)電位器 RW1C4,把-Vref 電壓調到-5V,萬用表監(jiān)
5、測并行 D/A 轉換的 OUT 與 GND 輸出引腳。填寫下列程序中的空白處,說明 DA 轉換的過程,并在 Keil 環(huán)境運行設置斷點運行該程序,調節(jié) RW1C4,觀察寄存器的變化與萬用表輸出值的變化。3 1OutIN-2+VD4567890EULMcolsbRfremWCSXAG/_QTPK.F圖 4-2 DAC0832 的擴展電路圖ORG 0100HSTART: MOV DPTR,#0FEFFH ;置 DAC0832 的地址LP: MOV A,#0FFH ;設定高電平MOVX DPTR,A ;啟動 D/A 轉換,輸出高電平 LCALL DELAY ;延時顯示高電平 MOV A,#00H ;
6、設定低電平 MOVX DPTR,A ;啟動 D/A 轉換,輸出低電平 LCALL DELAY ;延時顯示低電平 SJMP LP ;連續(xù)輸出方波DELAY: MOV R3,#18 ;延時子程序D1: NOP NOP NOP DJNZ R3,D1 RET END5. 設計型實驗內容 采用中斷法設計 ADC0809 數據采集程序,并將采集到的十六進制結果顯示在 LED 顯示模塊上。源代碼:DBUF EQU 30HDAT EQU P3.0CLK EQU P3.14 ORG 0000HLJMP MAINORG 0013HLJMP INDATAORG 0030HMAIN: SETB P3.3MOV DPT
7、R,#0FEF8HSETB IT1CLRASETB EX1SETB EASTART: MOVX DPTR,ALCALL DELAYMOV B,AANL A,#0FHDISP: ;靜態(tài)顯示程序 MOV DBUF,#00H MOV DBUF+1,#00H MOV DBUF+2,#00H MOV DBUF+3,#00H MOV DBUF+5,AMOV A,BANL A,#0F0HSWAP AMOV DBUF+4,AMOV R0,#DBUF MOV R5, #6 MOV DPTR,#TAB DP12: MOV R2, #8 MOV A, R0 MOVC A,A+DPTR DP13: RLC A MOV
8、 P3.0,C ;DIN, C5 CLR P3.1 ;CLK SETB P3.1 ;CLK DJNZ R2, DP13 INC R0 DJNZ R5, DP12LCALL DELAYLJMP MAINTAB: DB 3FH,06H,5BHDB 4FH,66H,6DHDB 7DH,07H,7FHDB 6FH,77H,7CHDB 58H,5EH,79HDB 71HINDATA: MOVX A,DPTR ;中斷服務程序RETIDELAY: MOV R0,#00DELAY1: NOP NOP DJNZ R0,DELAY1RETEND 用中斷方式編寫 A/D 轉換程序,每秒以 100ms 的間隔采集 8
9、 次,求 8 次結果的平均值,保存到內部 RAM40H 開始的單元,共采集 30 秒鐘。由于不但包含本題的要求,而且將采集到的數據送至靜態(tài)數碼管上,因此源代碼省略,詳見 要求同,計算出每秒的平均值并顯示在靜態(tài)數碼管上。 源代碼: DBUF DATA 060H6 ORG 0000H LJMP MAIN ORG 0003H LJMP INDATA ORG 0100HMAIN: MOV R1,#40H MOV R4,#30MAIN1: MOV R2,#00H MOV R3,#00H MOV R7,#08H CLR A MOV R0,#DBUF MOV DPTR,#0FEF0H ;啟動 A/D 轉換器
10、 SETB IT0 SETB EX0 SETB EA NOP NOPNOPLOOP: SETB F0 MOVX DPTR,A WAIT: JB F0,WAIT ;A/D 轉換結束信號LCALL DELAY7 DJNZ R7,LOOPLCALL DELAYLCALL DELAY MOV R7,#03HNEXT: CLR C ;求平均值 MOV A,R3 RRC A MOV R3,A MOV A,R2 RRC A MOV R2,A DJNZ R7,NEXT MOV A,R2 MOV R1,A INC R1ANL A,#0FHMOV DBUF+5,AMOV A,R2ANL A,#0F0HSWAP A
11、MOV DBUF+4,A LCALL DISP DJNZ R4,MAIN1RET8 INDATA:MOVX A,DPTR ;A/D 轉換結果讀入 ADD A,R2 MOV R2,A CLR A ADDC A,R3 MOV R3,A CLR A CLR F0 RETIDISP: ;靜態(tài)顯示程序 MOV DBUF,#00H MOV DBUF+1,#00H MOV DBUF+2,#00H MOV DBUF+3,#00H MOV R0, #DBUF MOV R5, #6 MOV DPTR,#TAB DP12:MOV R2, #8 MOV A, R0 MOVC A,A+DPTR DP13:RLC A M
12、OV P3.0,C ;DIN, C CLR P3.1 ;CLK SETB P3.1 ;CLK DJNZ R2, DP13 INC R0 DJNZ R5, DP12 RET 9 TAB:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 58H,5EH,79H,71H,00H,40HDELAY:MOV R5,#2S1: MOV TMOD,#01HMOV TL0,#0B0HMOV TH0,#3CHSETB TR0JNB TF0,$CLR TF0DJNZ R5,S1RETEND6. 實驗擴展及思考 采用 ADC0809 的 8 個通道采集
13、 8 個模擬量信號,并將實際電壓值分通道、分時地顯示在LED 上。 根據基礎型實驗的步驟、,由 DAC0832 輸出模擬量,ADC0809 采集數據。分配端口實現(xiàn)的硬件連接,畫出流程并設計程序實現(xiàn)該過程,比較輸出的數據跟采集到的數據是否一致,如不一致分析一下產生誤差的原因。 采用 DAC0832 設計一簡易的信號發(fā)生器,設計流程并編寫程序實現(xiàn) 50Hz 的方波、鋸齒波。7. 心得、體會由于前面聽說實驗報告隨便寫寫就行了,于是也沒寫這部分,只是把當時的源代碼粘到實驗報告里了。在此,我也只能通過一點印象寫了,望諒解。這次實驗感覺接線很多,我覺得真正需要對課本上 80C51 與 A/D 轉換器的接線理解了,將實驗教材上的電路基本看懂了,將10 各個控制信號的工作方式以及啟動順序弄明白了,才更有利于編寫程序。另外就是當自己長時間實在是調試不對時,應當主動去問老師,看是否有接線的問題或是實驗電路板的問題;如果沒有問題并且長時間沒做出來時,可以請教同學,看自己問題出在什么地方畢竟課本上有些理論知識在自己理解時都難免會發(fā)生偏差的,如果不能正確地理解,僅僅靠自己的理解、長時間地調試、摸索去編寫程序,是很費時間的。當自己實在做不出來時,要及時請教同學,看自己問題出在什么地方,是哪點理解得不好還是別的原因。 閱 10.1.11