單片機(jī)數(shù)據(jù)采集、處理及顯示程序設(shè)計(jì)_第1頁(yè)
單片機(jī)數(shù)據(jù)采集、處理及顯示程序設(shè)計(jì)_第2頁(yè)
單片機(jī)數(shù)據(jù)采集、處理及顯示程序設(shè)計(jì)_第3頁(yè)
單片機(jī)數(shù)據(jù)采集、處理及顯示程序設(shè)計(jì)_第4頁(yè)
單片機(jī)數(shù)據(jù)采集、處理及顯示程序設(shè)計(jì)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余3頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)數(shù)據(jù)采集、處理及顯示程序設(shè)計(jì).總體設(shè)計(jì)方案:LED 初始顯示為 0,采用查詢的方式進(jìn)行鍵盤掃描,以確定是否有輸入,不停地掃描直到有輸入為止:輸入為 1 時(shí),按鍵無效,繼續(xù)掃描直到再次有輸入,輸入為 0 時(shí),則開始進(jìn)行數(shù)據(jù)的采集;采集一個(gè)周期,將采集后的數(shù)據(jù)進(jìn)行濾波,再求出 0、1/2Vmax、Vmax,送到 LED 顯示,結(jié)束后進(jìn)行鍵盤掃描,確定是否有按鍵 1 輸入,有則停止,無則繼續(xù)進(jìn)行數(shù)據(jù)采集,如此循環(huán)。.硬件邏輯圖:1.下圖為硬件邏輯圖:2.單片機(jī)及各外設(shè)參數(shù)選擇:A,單片機(jī)為 8031/8051;B.采用外部時(shí)鐘,振蕩頻率為 12MHz,則機(jī)器周期為 1us;C.由于本實(shí)驗(yàn)只需

2、0、1 兩個(gè)按鍵就能實(shí)現(xiàn)控制(0 實(shí)現(xiàn)啟動(dòng),1 實(shí)現(xiàn)關(guān)閉),所以采用簡(jiǎn)單的 1X2非編碼鍵盤;D.由于已知輸入信號(hào)為幅值 5V 的正弦信號(hào),并要求 A/D 轉(zhuǎn)換的誤差小于 0.02V,因此,選用ADC0809,其能處理的信號(hào)為 05V,不需要進(jìn)行信號(hào)放大;其分辨率為 8 位,轉(zhuǎn)換的誤差為0.0196V,能滿足要求;其轉(zhuǎn)換時(shí)間大約為 100us;E.為了保證轉(zhuǎn)換精度,在信號(hào)源與 ADC 之間還需加一 S/H,采用 LF398,保持電容選擇為 1000PF;F.由于要顯示 3 個(gè)數(shù)據(jù),且小數(shù)點(diǎn)后保留兩位有效數(shù)據(jù),所以需要 3X4=12 個(gè) LED,本實(shí)驗(yàn)選用 7 段 LED;且從左到右,依次顯示

3、0、1/2Vmax、Vmax;G.由于要求利用串行口擴(kuò)展接口來顯示數(shù)據(jù),所以需連接一寄存器,本實(shí)驗(yàn)采用串行輸入、并行輸出的移位寄存器:74LS164.軟件編寫:I:流程圖如下:本實(shí)驗(yàn)采用查詢的方式來實(shí)現(xiàn)鍵盤的控制;在采集的過程中由于可能會(huì)有隨機(jī)干擾,信號(hào)本身會(huì)在某一數(shù)值范圍附近上下波動(dòng),所以采用算術(shù)平均濾波的方式進(jìn)行濾波;由于輸入信號(hào)最大頻率為 0.2Hz,選擇采樣周期為 2Hz,即采樣周期為 500ms。2.采用匯編進(jìn)行編程,具體的代碼及其說明如下:ORG0000HLJMPSTARTORG0300HSTART:ACALLDSP1;初始化顯示 0.00、0.00、0.00SCAN:ACALLK

4、EXAM;判斷是否有按鍵JNZSCAN;沒按鍵就繼續(xù) SCANACALLD10ms;去抖ACALLKEXAMJNZSCANKEY:SETBP1.1;檢查鍵值SETBP1.3CLRP1.2MOVA,P1ANLA,#02HCJNEA,#02H,SCAN;按鍵為 1 則返回繼續(xù)查詢是否有按鍵;按鍵為 0,進(jìn)入到數(shù)據(jù)采集、轉(zhuǎn)換及顯示ADC:MOVR1,#40HMOVDPTR,#07FF8HMOVR2,#10;一個(gè)周期采集 10 個(gè)點(diǎn)L9:MOVR0,#30HMOVR3,#4L10:MOVA,#0SETBP1.4;S/H 保持MOVXDPTR,A;啟動(dòng) ADCJNBP3.3$;轉(zhuǎn)換結(jié)束CLRP1.4;S

5、/H 采樣MOVXA,DPTRMOVR0,AINCR0ACALLD5msDJNZR3,L10ACALLFilter;濾波INCR1ACALLD500msDJNZR2,L9ACALLORDER;計(jì)算要顯示的值:最小值、最大值及中間值A(chǔ)CALLDSP2;顯示值;查詢按鍵ACALLKEXAMJNZADCACALLD10msACALLKEXAMJNZADCSETBP1.1SETBP1.3CLRP1.2MOVA,P1ANLA,#02HCJNEA,#02H,START;按鍵為 1 則返回開始,并顯示 0AJMPADC;下面為子程序:;判斷是否有按鍵KEXAM:SETBP1.1CLRP1.2CLRP1.3M

6、OVA,P1ANLA,#02H;00000010RET;初始化顯示 0.00、0.00、0.00DSP1:MOVR0,#30HMOVR1,#40HMOVR2,#3L0:MOVR1,#0ACALLCHANGE0 等 R1 中的值轉(zhuǎn)換為有物理意義的值,存入 4 個(gè) R0 中ACALLCHANGE1 將 4 個(gè) R0 中的值轉(zhuǎn)化為能顯示的數(shù)模ACALLDPLED示 4 個(gè) R0 中的值INCR1DJNZR2,L0RET;輸出顯示一個(gè) LEDDPLED:MOVR0,#30HMOVR4,#4II:MOVR3,#8MOVA,R0L2:RLCAMOVP3.0,CCLRP3.1SETBP3.1DJNZR3,L

7、2INCR0DJNZR4,L1RETCHANGE1:MOVR0,#30HMOVR4,#4L3:PUSHACCMOVDPTR,#TABLEMOVA,R0MOVA,A+DPTRMOVR0,AINCR0DJNZR4,L3RET;標(biāo)度變換:將 R1 中的值轉(zhuǎn)換為有物理意義的值,并存入 4 個(gè) R0 中(如將 125轉(zhuǎn)換為 2.45V)CHANGE0:PUSHACCPUSHB;除 17MOVA,R1MOVB,#11H;除以 17DIVABMOVR0,AINCR0MOVA,BMOVB,#0AHMULABMOVA,BMOVB,#11H;除以 17DIVABMOVR0,AINCR0MOVA,BMOVB,#0A

8、HMULABMOVA,BMOVB,#11H;除以 17DIVABMOVR0,A;除 3DECR0DECR0DECR0MOVA,R0MOVB,#03H;除以 3;將 R0 中要顯示的轉(zhuǎn)換為字模,然后覆蓋R0DIVABMOVR0,AINCR0MOVA,BMOVB,#0AHMULABMOVA,BADDA,R0MOVB,#03H;除以 3DIVABMOVR0,AINCR0MOVA,BMOVB,#0AHMULABMOVA,BADDA,R0MOVB,#03H;除以 3DIVAB;將小數(shù)點(diǎn) 10 加上INCR0MOVR0,ADECR0DECR0MOVA,R0INCR0MOVR0,ADECR0MOVR0,#1

9、0HPOPBPOPACCRET;延時(shí) 5msD5ms:MOVR2,#0AH;10L4:MOVR3,#F8H;248L5:DJNZR3,L5;248*2=496DJNZR2,L4;500*10=5000us=5msRET;延時(shí) 10msD10ms:MOVR2,#14H;20L4:MOVR3,#F8H;248L5:DJNZR3,L5;248*2=496DJNZR2,L4;500*20=10000us=10msRET;延時(shí) 500msD500ms:MOVR2,#100L6:MOVR3,#4L7:MOVR4,#249L8:NOPNOPNOPDJNZR4,L8;125*5=1245DJNZR3,L7;1

10、249*4=4996DJNZR2,L6;5000*100=500000us=500msRET;算術(shù)平均濾波,將得到的值存入 R1 中Filter:PUSHPSWPUSHAPUSHBMOVFLAG,#00HMOVR4,#4MOVR0,#30HCLRAIII:ADDA,R0JNCNEXTINCFLAGNEXT:INCR0DJNZR4,L11MOVR5,#4DIVIDE:MOVB,AMOVA,FLAGCLRCRRCAMOVFLAGAMOVA,BRRCADJNZR5,DIVIDEMOVR1,APOPBPOPAPOPPSWRET;將采集到的 R1 中的 10 個(gè)值進(jìn)行排序,采用冒泡法ORDER:MOVR

11、3,#9L12:MOVA,R3MOVR4,AMOVR1,#40HL13:MOVA,R1INCR1CLRCSUBBA,R1JCDONEMOVA,R1DECR1XCHA,R1INCR1MOVR1,ADONE:DJNZR4,L13DJNZR3,L12RET;顯示 R1 中的值DSP2:MOVR1,#40HACALLCHANGE0 等 R1 中的值轉(zhuǎn)換為有物理意義的值,存入 4 個(gè) R0 中ACALLCHANGE1 將 4 個(gè) R0 中的值轉(zhuǎn)化為能顯示的數(shù)模ACALLDPLED示 4 個(gè) R0 中的值INCR1MOVR3,#2L14:MOVR4,#4INCR1DJNZR4,L14ACALLCHANGE0 等 R1 中的值轉(zhuǎn)換為有物理意義的值,存入 4 個(gè) R0 中ACALLCHANGE1 將 4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論