微機(jī)原理課程設(shè)計(jì)--數(shù)據(jù)采集系統(tǒng)(查詢法)_第1頁
已閱讀1頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  微機(jī)原理課程設(shè)計(jì)</b></p><p>  —數(shù)據(jù)采集系統(tǒng)(查詢法)</p><p><b>  一、課設(shè)目的</b></p><p>  進(jìn)一步掌握微機(jī)原理只是,了解危機(jī)在實(shí)時(shí)采集過程中的應(yīng)用,學(xué)習(xí)、掌握編程和程序調(diào)試方法。</p><p><b>  二

2、、課設(shè)內(nèi)容</b></p><p>  用查詢法,將ADC 0809通道0外接0~5V電壓,轉(zhuǎn)換成數(shù)字量后,在七段LED數(shù)碼管上,以小數(shù)點(diǎn)后兩位(幾十毫伏)的精度,顯示其模擬電壓的十進(jìn)值;0809~道0的數(shù)字量以線性控制方式送DAC0832輸出,當(dāng)通道O的電壓為5V時(shí),0832的OUT為0v,當(dāng)通道O的電壓為0時(shí),0832的OUT為2.5V;此模擬電壓再送到ADC0809通道1,轉(zhuǎn)換后的數(shù)字量在CRT

3、上以十六進(jìn)制顯示;通道0的數(shù)字量經(jīng)74LS574輸出到八位LED上,且以一定的要求,點(diǎn)亮LED指示燈。調(diào)整電位器,用示波器或三用表觀察0832的變化,觀察七段LED數(shù)碼管數(shù)值的變化,觀察LED燈的變化,</p><p>  ADC 0809的CLK脈沖,由定時(shí)器8254的OUT0提供;ADC 0809的EOC信號(hào),用8255的PC0檢測(cè);74LS574外接的LED燈變化如下:若電壓值小于0.5V,則最低位(DO)

4、’LED燈亮,若電壓值大于4.5V,則最高位LED燈亮,若電壓值在0.5V~4.5V,則八位LED燈由低向高變化亮,且高位LED燈亮?xí)r低位燈全亮。</p><p>  要有較好的人機(jī)對(duì)話界面;控制程序的運(yùn)行。</p><p><b>  三、硬件設(shè)計(jì)</b></p><p><b>  1、電原理框圖</b></p&

5、gt;<p><b>  見附件1</b></p><p>  2、電原理框圖工作過程的簡要說明</p><p>  (1)、ADC 0809的INO采集電位器0—5V電壓,INl采集0832輸出的模擬量。</p><p> ?。?)、DAC 0832將ADC 0809的INO數(shù)字量后重新轉(zhuǎn)換成模擬量輸出。</p>

6、<p> ?。?)、8255用于檢測(cè)ADC 0809轉(zhuǎn)換是否,為七段LED數(shù)碼管顯示提供顯示驅(qū)動(dòng)信息。</p><p>  (4)、七段LED數(shù)碼管顯示ADC 0809的INO的值。</p><p>  (5)、74LS574驅(qū)動(dòng)八位發(fā)光二極管,使它們按要求點(diǎn)亮:來指示當(dāng)前采樣值的范圍。</p><p> ?。?)、8254提供ADC 0809的采樣時(shí)鐘脈

7、沖。</p><p> ?。?)、74LSl38譯碼器為各芯片提供地址信息。</p><p><b>  四、軟件設(shè)計(jì)</b></p><p>  首先進(jìn)行程序初始化顯示提示信息,判斷是否有鍵按下,按下1則繼續(xù)往下執(zhí)行,按下2則退出。首先對(duì)8254進(jìn)行初始化選擇工作方式及賦初值,然后啟動(dòng)0809的IN0,接著初始化8255,并檢測(cè)PA7的狀態(tài)檢

8、測(cè)轉(zhuǎn)換是否,否繼續(xù)檢測(cè)直至EOC為1,然后讀采樣值并保存,將其經(jīng)線性轉(zhuǎn)換后送0832,啟動(dòng)0809的IN1,然后重新對(duì)8255初始化及檢測(cè)PA7的EOC狀態(tài)端口,直至為1,讀IN1的采樣值并保存,將讀出值經(jīng)線性轉(zhuǎn)換后送往CRT顯示,然后將保存的INO采樣值進(jìn)行量綱轉(zhuǎn)換,調(diào)用數(shù)碼顯示子程序。然后對(duì)保存的IN0采樣值進(jìn)行比較,若小于0.48V,74574只驅(qū)動(dòng)最低位,最低位亮,若大于4.49則只有最高位亮,在中間值依次點(diǎn)亮一位,如大于0.4

9、8V小于1.15V則最低兩位亮,在1.15V至1.82V間低三位亮,在 1.82至2.48間低三位亮等。在0.48和4.49間選擇六個(gè)值依次控制選擇點(diǎn)亮LED燈.最后判斷主鍵盤是否有鍵按下,有結(jié)束,無重新回到啟動(dòng)0809的IN0程序段。最后列寫數(shù)碼管顯示的子程序、CRT顯示子程序、延時(shí)子程序。</p><p><b>  1、主程序流圖</b></p><p><

10、;b>  見附錄2</b></p><p><b>  2、程序</b></p><p>  DATA SEGMENT</p><p>  MES1 DB 'PRESS 1 TO BEGIN!',0DH,0AH</p><p>  DB 'PRESS 2 TO QUIT!

11、',0DH,0AH,0DH,0AH,'$'</p><p>  MES2 DB 'IN1 DATA= ','$'</p><p>  MES3 DB 0DH,0AH,'$'</p><p>  K0 DB ? </p><p>  K1 DB

12、 ?</p><p>  S DB 3 DUP(?)</p><p>  DCTBL1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,3EH</p><p>  DCTBL2 DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0DFH</p><p>

13、  S1 DB 01H</p><p>  S2 DB 80H</p><p>  DATA ENDS</p><p>  STACK1 SEGMENT PARA STACK 'STACK'</p><p>  DB 256 DUP(?)</p><p>  STACK1 ENDS

14、</p><p>  CODE SEGMENT </p><p>  ASSUME CS:CODE,DS:DATA</p><p>  START:MOV AX,DATA</p><p><b>  MOV DS,AX</b></p><p>  LEA DX,MES1</p>

15、<p><b>  MOV AH,9</b></p><p><b>  INT 21H</b></p><p>  LOP1: MOV DL,0FFH</p><p><b>  MOV AH,6</b></p><p><b>  INT 21H<

16、/b></p><p><b>  JZ LOP1</b></p><p>  CMP AL,'1'</p><p><b>  JZ DA</b></p><p>  CMP AL,'2'</p><p><b>  JZ

17、 EXIT1</b></p><p><b>  JMP START</b></p><p>  DA: MOV AL,36H ;8254初始化</p><p>  MOV DX,306CH</p><p><b>  OUT DX,AL</b></p&g

18、t;<p>  MOV AL,00H ;8254賦初值</p><p>  MOV DX,3060H </p><p><b>  OUT DX,AL</b></p><p>  MOV AL,01H </p><p>  MOV DX,3060H

19、</p><p>  OUT DX,AL </p><p>  BE: MOV AL,00H ;啟動(dòng)0809的IN0</p><p>  MOV DX,3000H</p><p><b>  OUT DX,AL</b></p><p>  L1: MOV AL,

20、90H ;8255初始化</p><p>  MOV DX,302CH</p><p><b>  OUT DX,AL</b></p><p>  MOV DX,3020H ;8255的PA7檢測(cè)EOC狀態(tài)</p><p><b>  IN AL,DX</b>

21、;</p><p>  TEST AL,80H </p><p><b>  JZ L1</b></p><p>  MOV DX,3000H ;讀0809采樣值</p><p><b>  IN AL,DX</b></p><p>

22、  MOV K0,AL ;保存0809采樣值 </p><p>  MOV AL,K0 ;線性控制方式轉(zhuǎn)換電壓,計(jì)算公式-1/2(X-5) </p><p>  SUB AL,0FFH</p><p><b>  ROR AL,1</b></p>&l

23、t;p><b>  NEG AL</b></p><p>  MOV K1,AL </p><p>  MOV DX,30E0H ;把IN0計(jì)算值送給0832</p><p><b>  OUT DX,AL</b></p><p>  MO

24、V AL,10H ;啟動(dòng)0809的IN1</p><p>  MOV DX,3004H</p><p><b>  OUT DX,AL</b></p><p>  L2: MOV AL,90H ;8255PA7檢測(cè)EOC狀態(tài)</p><p>  MOV DX

25、,302CH</p><p><b>  OUT DX,AL</b></p><p>  MOV DX,3020H</p><p><b>  IN AL,DX</b></p><p>  TEST AL,80H</p><p><b>  JZ L2</

26、b></p><p>  NEXT: MOV DX,3004H ;讀IN1采樣值</p><p><b>  IN AL,DX</b></p><p>  MOV AL,7FH </p><p><b>  MOV BL,K0</b&g

27、t;</p><p><b>  SHR BL,1</b></p><p><b>  SUB AL,BL</b></p><p>  MOV K1,AL ;保存IN1 </p><p>  LEA DX,MES2</p>

28、<p><b>  MOV AH,9</b></p><p><b>  INT 21H</b></p><p><b>  JMP DE</b></p><p>  EXIT1:JMP EXIT </p><p>  DE: MOV AL,K1

29、 ;CRT顯示IN1的值</p><p><b>  MOV BL,AL</b></p><p>  AND AL,0F0H</p><p><b>  MOV CL,4</b></p><p><b>  ROR AL,CL</b></p>

30、<p><b>  CALL CRT1</b></p><p><b>  MOV AL,BL</b></p><p>  AND AL,0FH</p><p><b>  CALL CRT1</b></p><p>  MOV DL,0DH</p>

31、<p><b>  MOV AH,2</b></p><p><b>  INT 21H</b></p><p>  MOV AL,K0 ;量綱轉(zhuǎn)換</p><p>  MOV AH,00H</p><p><b>  MOV BL

32、,51</b></p><p><b>  DIV BL</b></p><p><b>  LEA SI,S</b></p><p>  MOV [SI],AL</p><p><b>  INC SI</b></p><p><b&

33、gt;  MOV AL,AH</b></p><p><b>  MOV BL,10</b></p><p><b>  MUL BL</b></p><p><b>  MOV BL,51</b></p><p><b>  DIV BL</b&g

34、t;</p><p>  MOV [SI],AL</p><p><b>  INC SI</b></p><p><b>  MOV AL,AH</b></p><p><b>  MOV BL,10</b></p><p><b>  MU

35、L BL</b></p><p><b>  MOV BL,51</b></p><p><b>  DIV BL</b></p><p><b>  CMP AH,25</b></p><p><b>  JA L3</b></p&g

36、t;<p><b>  JMP L4</b></p><p>  L3: ADD AL,1</p><p>  L4: MOV [SI],AL</p><p><b>  CALL DISP</b></p><p><b>  MOV AL,K0</b>&

37、lt;/p><p>  CMP AL,19H</p><p><b>  JB L5</b></p><p>  CMP AL,3BH</p><p><b>  JB L6</b></p><p>  CMP AL,5DH</p><p><b

38、>  JB L7</b></p><p>  CMP AL,7FH</p><p><b>  JB L8</b></p><p>  CMP AL,0A1H</p><p><b>  JB L9</b></p><p>  CMP AL,0C3H<

39、/p><p><b>  JB L10</b></p><p>  CMP AL,0E6H</p><p><b>  JB L11</b></p><p>  MOV DX,3080H</p><p>  MOV AL,80H</p><p><b

40、>  OUT DX,AL</b></p><p><b>  JMP L12</b></p><p>  L5: MOV DX,3080H</p><p>  MOV AL,01H</p><p><b>  OUT DX,AL</b></p><p>

41、<b>  JMP L12</b></p><p>  L6: MOV DX,3080H</p><p>  MOV AL,00000011B</p><p><b>  OUT DX,AL</b></p><p><b>  JMP L12</b></p>

42、<p>  L7: MOV DX,3080H</p><p>  MOV AL,00000111B</p><p><b>  OUT DX,AL</b></p><p>  CALL DELAY</p><p><b>  JMP EXIT0</b></p><p

43、>  L8: MOV DX,3080H</p><p>  MOV AL,00001111B</p><p><b>  OUT DX,AL</b></p><p><b>  JMP L12</b></p><p>  L9: MOV DX,3080H</p><

44、p>  MOV AL,00011111B</p><p><b>  OUT DX,AL</b></p><p><b>  JMP L12</b></p><p>  L10: MOV DX,3080H</p><p>  MOV AL,00111111B</p><p

45、><b>  OUT DX,AL</b></p><p><b>  JMP L12</b></p><p>  L11: MOV DX,3080H</p><p>  MOV AL,01111111B</p><p><b>  OUT DX,AL</b></p

46、><p>  L12: CALL DELAY</p><p>  EXIT0:MOV DL,0FFH</p><p><b>  MOV AH,6</b></p><p><b>  INT 21H</b></p><p><b>  JNZ EXIT</b&

47、gt;</p><p><b>  JMP BE</b></p><p>  EXIT: MOV AH,4CH</p><p><b>  INT 21H</b></p><p>  DISP PROC NEAR</p><p><b>  PUSH DS&l

48、t;/b></p><p><b>  PUSH CX</b></p><p><b>  PUSH DX</b></p><p><b>  PUSH AX</b></p><p><b>  PUSH BX</b></p>

49、<p>  MOV AL,10000000B ;8255初始化</p><p>  MOV DX,302CH</p><p><b>  OUT DX,AL</b></p><p>  DIS1: MOV SI,OFFSET S ;七段數(shù)碼管顯示IN0轉(zhuǎn)換為十進(jìn)制后的個(gè)位、十分位、百分

50、位的值</p><p>  MOV AL,[SI] ;顯示個(gè)位</p><p>  LEA BX,DCTBL2</p><p><b>  XLAT</b></p><p>  MOV DX,3024H</p><p><b>  OUT DX,AL<

51、;/b></p><p>  MOV AL,000001000B</p><p>  MOV DX,3020H</p><p><b>  OUT DX,AL</b></p><p>  CALL DELAY</p><p><b>  INC SI</b></p

52、><p>  MOV AL,[SI] ;顯示十分位</p><p>  LEA BX,DCTBL1</p><p><b>  XLAT</b></p><p>  MOV DX,3024H</p><p><b>  OUT DX,AL</b>

53、</p><p>  MOV AH,000010000B</p><p><b>  MOV AL,AH</b></p><p>  MOV DX,3020H</p><p><b>  OUT DX,AL</b></p><p>  CALL DELAY</p>

54、<p><b>  INC SI</b></p><p>  MOV AL, [SI] ;顯示百分位</p><p>  LEA BX,DCTBL1</p><p><b>  XLAT</b></p><p>  MOV DX,3024H</p><

55、;p><b>  OUT DX,AL</b></p><p>  MOV AL,100000B</p><p>  MOV DX,3020H</p><p><b>  OUT DX,AL</b></p><p>  CALL DELAY</p><p><b&g

56、t;  POP BX</b></p><p><b>  POP AX</b></p><p><b>  POP DX</b></p><p><b>  POP CX</b></p><p><b>  POP DS</b></p&g

57、t;<p><b>  RET</b></p><p>  DISP ENDP</p><p>  CRT1 PROC ;CRT顯示子程序</p><p><b>  PUSH AX</b></p><p>&

58、lt;b>  PUSH DX</b></p><p>  ADD AL,30H</p><p>  CMP AL,39H</p><p><b>  JBE D0</b></p><p><b>  ADD AL,7</b></p><p>  D0

59、: MOV DL,AL</p><p><b>  MOV AH,2</b></p><p><b>  INT 21H</b></p><p><b>  POP DX</b></p><p><b>  POP AX</b></p>&

60、lt;p><b>  RET</b></p><p><b>  CRT1 ENDP</b></p><p>  DELAY PROC NEAR ;DELAY子程序</p><p><b>  PUSH CX</b></p><p&g

61、t;<b>  PUSH BX</b></p><p>  MOV BX,18H</p><p>  DEL1: MOV CX,0FFFFH</p><p><b>  LOOP $</b></p><p><b>  DEC BX</b></p><p&g

62、t;<b>  JNZ DEL1</b></p><p><b>  POP BX</b></p><p><b>  POP CX</b></p><p><b>  RET</b></p><p>  DELAY ENDP</p><

63、;p><b>  CODE ENDS</b></p><p>  END START</p><p>  五、編程和調(diào)試中遇到的問題</p><p>  剛開始的時(shí)候LED數(shù)碼管不亮,經(jīng)檢查發(fā)現(xiàn)是插線一端接錯(cuò)位置,改正后數(shù)碼管亮,但發(fā)現(xiàn)調(diào)整電位器時(shí),八位發(fā)光二極管的點(diǎn)亮次序與預(yù)計(jì)值不同,且LED數(shù)碼管還會(huì)不停閃動(dòng)。經(jīng)檢查發(fā)現(xiàn)是排線接觸不

64、良,對(duì)可能接觸不良的排線進(jìn)行排查更換,最終LED和發(fā)光二極管正常顯示。</p><p>  編譯時(shí),程序報(bào)錯(cuò)Address Out of Range ,即跳轉(zhuǎn)時(shí)超程。在程序中間位置加入中繼跳轉(zhuǎn),同時(shí)在程序順序運(yùn)行時(shí)命令其跳過“中繼跳轉(zhuǎn)”指令運(yùn)行。</p><p><b>  六、運(yùn)行結(jié)果</b></p><p>  1.運(yùn)行程序后,屏幕輸出&l

65、t;/p><p>  2.按鍵盤‘1’后,屏幕顯示</p><p>  7段數(shù)碼管顯示 5.00 ;LED燈最高位點(diǎn)亮</p><p>  3.旋動(dòng)電位器直至極限位置,屏幕顯示</p><p>  7段數(shù)碼管顯示 0.00;LED燈最低位點(diǎn)亮</p><p><b>  附錄1:</b></p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論