下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、;程序?qū)崿F(xiàn) A/D 轉(zhuǎn)換功能,A/D 采用中斷方式。該程序通過(guò)單片機(jī)的 RA2 模擬通道送入;一直流電壓,當(dāng)送入的直流電壓大于 2.5V 時(shí),8 個(gè) LED 閃動(dòng),當(dāng)直流電壓恢復(fù)到 2.5V 以下;時(shí),LED 停止閃動(dòng)。為了防止干擾,本程序?qū)χ绷麟妷翰蓸?10 次后再作判斷,中間的采樣結(jié);果用間接尋址的方式存取。LISTP=18F458INCLUDE P18F458.INCTIMES DEY ACCALO ACCAHI ACCBLO ACCBHI FLAG DEYH DEYLBEGFSREQU EQU EQU EQU EQU EQU EQU EQU EQUEQU0X20 TIMES+1 TIM
2、ES+2 TIMES+3 TIMES+4 TIMES+5 TIMES+6 TIMES+7 TIMES+90X30;ACCA 為雙精度加數(shù)寄存器;ACCB 為雙精度加法的結(jié)果寄存器;間接尋址 FSR 的起始值(宏定義方式給出)0X0000 MAIN 0X0008SERVE0X30GOTOGOTO;轉(zhuǎn)向中斷服務(wù)子程序;*雙字節(jié)減法子程序, D_SUBCALL地址 ACCB-ACCA,出口地址 ACCB*NEG_A;求ACCA 的補(bǔ)碼;*雙字節(jié)加法子程序, D_ADDMOVF ADDWF BTFSC INCF MOVFADDWF地址 ACCB+ACCA,出口地址 ACCB*ACCALO,0ACCBL
3、O;ACCB 和ACCA 低半字節(jié)相加SUS,C;有進(jìn)位否?;有,ACCB 高字節(jié)加 1,再加 ACCAHI;ACCA、ACCB 高半字節(jié)相加ACCBHI ACCAHI,0ACCBHIRETURN;子程序返回;* ACCA 取補(bǔ)子程序*NEG_ACOMF INCF BTFSC DECF COMFRETURNACCALOACCALO;ACCALO 取反加 1SUS,Z;低 8 位有進(jìn)位嗎?;有,ACCAHI 減 1,再取反;否則 ACCAHI 直接取反;子程序返回ACCAHIACCAHI;*初始化子程序*INITIALCLRF MOVLWMOVWFCON 0X51ADCON0;總中斷和中斷;選擇
4、 AD 通道為 RA2,且打開(kāi) A/D 轉(zhuǎn)換器;在工作狀態(tài),且使 AD 轉(zhuǎn)換時(shí)鐘為 8ToscMOVLWMOVWF0X80ADCON1;轉(zhuǎn)換結(jié)果右移,即 ADRESH 寄存器的高 6;位為0,且把 RA2 口設(shè)置為模擬量輸入式;(注意后面要把 RA5 改成數(shù)據(jù) I/O 方式,以;輸出顯示信號(hào))BCF BSF BSF BSF BSF BSF BCF BCF BCFMOVLW MOVWF MOVLWMOVWFPIR1,ADIF PIE1,ADIECON,PEIE IPR1,ADIP RCON,7 TRISA,2 TRISA,5 TRISC,5 TRISC,3 0XC0SSPS 0X30SSPCON
5、1;清除 A/D 轉(zhuǎn)換標(biāo)志;A/D 轉(zhuǎn)換中斷允許;中斷允許;B 口變位中斷高優(yōu)先級(jí);使能中斷優(yōu)先級(jí);設(shè)置 RA2 為輸入方式;置RA5 為輸出方式,以輸出鎖存信號(hào);設(shè)置 SCK 與SDO 為輸出方式;設(shè)置 SSPS寄存器;設(shè)置 SPI 的控制方式,允許 SSP 方式,并;且時(shí)鐘下降沿發(fā)送,與74HC595 當(dāng)其;SCLK 從低到跳變時(shí),串行輸入數(shù)據(jù);(DI)移入寄存器的特點(diǎn)相應(yīng)CLRFRETURNFLAG;*DELAY延時(shí)子程序*MOVLW MOVWF MOVLW MOVWF NOP DECFSZ GOTO DECFSZ GOTORETURN0XFF DEYH 0XFFDEYLAGAIN1AG
6、AIN2DEYL AGAIN2 DEYHAGAIN1;* A/D 中斷服務(wù)子程序*SERVEBCF MOVF MOVWF INCF MOVF MOVWF INCF DECF MOVLW MOVWF DECFSZGOTOPIR1,ADIF ADRESH,W INDF0 FSR0L ADRESL,W INDF0 FSR0L TIMES,1 0X02DEY DEY,1LOOP13;清除 A/D 轉(zhuǎn)換標(biāo)志;并A/D 轉(zhuǎn)換結(jié)果的高兩位;A/D 轉(zhuǎn)換結(jié)果的低 8 位并;A/D 轉(zhuǎn)換次數(shù)減 1LOOP13;給予一定的延時(shí),保證兩次 A/D 轉(zhuǎn)換期間;2Tad 的間隔時(shí)間和電容的采樣時(shí)間;啟動(dòng)下一次 A/D
7、轉(zhuǎn)換;中斷返回BSFRETFIEADCON0,2;* LED 閃爍ALARM子程序*MOVLW XORWF BTFSS CALL NOP BTFSC CALLRETURN0X01 FLAG,1 FLAG,0DISPLAY0;調(diào)用顯“0”子程序FLAG,0DISPDARK;調(diào)用顯“DARK”子程序;*顯全 0 子程序* DISPLAY0TRANSMIT;SPI 發(fā)送顯示子模塊;LACK 送低電平,為鎖存做準(zhǔn)備CLRF MOVLW MOVWF MOVLWMOVWFPORTA 0X08 TIMES 0XC0SSPBUFLOOP80;顯示值為 0,C0H 為 0 的段碼;啟動(dòng)發(fā)送WAITBTFSS G
8、OTO BCF DECFSZ GOTO BSFRETURNPIR1,SSPIF WAIT PIR1,SSPIF TIMES LOOP80PORTA,5;等待發(fā)送結(jié)束;清除中斷標(biāo)志;一次要發(fā)送完 8 個(gè)數(shù)據(jù);最后給一個(gè)鎖存信號(hào),代表一次顯示任務(wù)完成;*顯示全 DARK 子程序* DISPDARKTRANSMIT1;SPI 發(fā)送顯示子模塊;LACK 送低電平,為鎖存做準(zhǔn)備CLRF MOVLW MOVWFLOOP8D MOVLWMOVWFWAIT1BTFSS GOTOPORTA 0X08 TIMES 0XFFSSPBUF;顯示值為 0,F(xiàn)FH 為DARK 的段碼;啟動(dòng)發(fā)送PIR1,SSPIFWAIT
9、1;等待發(fā)送結(jié)束B(niǎo)CF DECFSZ GOTO BSFRETURNPIR1,SSPIF TIMES LOOP8DPORTA,5;清除中斷標(biāo)志;一次要發(fā)送完 8 個(gè)數(shù)據(jù);最后給一個(gè)鎖存信號(hào),代表一次顯示任務(wù)完成;*主程序*MAINNOPCALLINITIAL;初始化LOOPMOVLW0X80;轉(zhuǎn)換結(jié)果右移,及 ADRESH 寄存器的高 6 位為0;且把 RA2 口設(shè)置為模擬量輸入式(注意后面要把; RA5 改成數(shù)據(jù) I/O 方式,以輸出顯示信號(hào))MOVWF MOVLW MOVWF MOVLW MOVWF BSFBSF MOVF BTFSS GOTO BCF NOP CLRF CLRF MOVLW
10、 MOVWF MOVLW MOVWF MOVF MOVWF INCF MOVF MOVWFINCFADCON1 BEGFSR FSR0L 0X0A TIMESCON,GIEADCON0,2 TIMES,W;給出間接尋址時(shí) FSR 的初值;每一輪 A/D 連續(xù)采樣 10 次;總中斷打開(kāi),及可以進(jìn)行 A/D 轉(zhuǎn)換中斷;啟動(dòng) A/D 轉(zhuǎn)換LOOP1SUS,ZLOOP1CON,GIE;等待 A/D 轉(zhuǎn)換中斷;A/D 轉(zhuǎn)換次數(shù)到 10 次,關(guān)閉中斷ACCBHI ACCBLO 0X0A TIMES BEGFSR FSR0L INDF0,W ACCAHI FSR0L INDF0,W ACCALOFSR0L;雙精度加法的結(jié)果寄存器清 0,為后面準(zhǔn)備LOOP15CALL DECFSZ GOTO NOP MOVLW MOVWF MOVLW MOVWF CLRFCALLD_ADD TIMESLOOP15;計(jì)算得到 10 次A/D 轉(zhuǎn)換的和0X84 ADCON1 0X14 ACCAHI ACCALOD_SUB;把RA5 設(shè)成數(shù)字 I/O,以輸出顯示鎖存信號(hào);通過(guò)雙精度減判斷模擬量是否達(dá)到限;度(1400H=200H*0AH,200H 與 2.5V 對(duì)應(yīng))B
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年金融租賃服務(wù)項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 護(hù)理三級(jí)管理體系
- 部編版道德與法治二年級(jí)上冊(cè)第14課《家鄉(xiāng)物產(chǎn)養(yǎng)育我》精美課件
- 《推拿罐療法在 1 例便秘患者腸道準(zhǔn)備前的應(yīng)用體會(huì)》
- 部編版道德與法治二年級(jí)上冊(cè)第5課《我愛(ài)我們班》精美課件
- 江西省吉安市2022年高三壓軸卷物理試卷含解析
- 2024年義務(wù)教育藝術(shù)新課程標(biāo)準(zhǔn)(2022版)必考題庫(kù)附答案
- 江西省撫州市臨川區(qū)二中2021-2022學(xué)年高考物理必刷試卷含解析
- 江西上饒重點(diǎn)中學(xué)2021-2022學(xué)年高考沖刺物理模擬試題含解析
- 并購(gòu)律師招募協(xié)議書(shū)模板
- 美國(guó)UNF和unc螺紋標(biāo)準(zhǔn)
- 催化裂化反應(yīng)機(jī)理
- 投影儀操作作業(yè)指導(dǎo)書(shū)
- (完整版)二年級(jí)進(jìn)位加法和退位減法口算練習(xí)題
- 發(fā)電機(jī)靜音箱技術(shù)說(shuō)明
- 螺旋槳設(shè)計(jì)計(jì)算
- 全國(guó)-區(qū)縣總代理合同(模板)
- NDS 重裝機(jī)兵2重制版 MM2R 金手指大全
- 樁基質(zhì)量檢測(cè)技術(shù)(完整版)
- 工程結(jié)算單(樣本)
- 綜采工作面供電設(shè)計(jì)說(shuō)明書(shū)
評(píng)論
0/150
提交評(píng)論