PIC單片機(jī)adc轉(zhuǎn)換并顯示
CL04 BTFSS 57H,2;判斷標(biāo)志是否有進(jìn)位
GOTO CL4;否
MOVLW 6H;
ADDWF 53H,1;自身加6H
CL4 BTFSS 57H,5;判斷標(biāo)志是否有進(jìn)位
GOTO CL05;
INCF 51H,1;是進(jìn)位
MOVLW 60H;
ADDWF 52H,1;自身加60H
CL05 BTFSS 57H,1;判斷標(biāo)志是否有進(jìn)位
GOTO CL5;否
MOVLW 6H;
ADDWF 52H,1;自身加6H
CL5
CLRF 57H;清標(biāo)志
DECFSZ 56H,1;
GOTO CL2;
RETURN;
;;;**************************************************************
;;; 十進(jìn)制數(shù)調(diào)整
;;;**************************************************************
DA1 MOVWF 60H;將W里的數(shù)保存到60H里
MOVLW B00001111;
ANDWF 60H,0;將60H的數(shù)與00001111去除高4位
MOVWF 62H;將去除高位后的數(shù)保存到62H
MOVLW 0AH;
SUBWF 62H,0;去除高位的數(shù)減0AH
BTFSS STATUS,DC;判斷是否比0AH大
GOTO DA2 ;否則跳轉(zhuǎn)
ADDLW B10000;比0AH大則進(jìn)位
MOVWF 62H;高4位加1
DA2 MOVLW B11110000;
ANDWF 60H,1;將60H的數(shù)與11110000去除低4位
MOVLW 0A0H;
SUBWF 60H,0;高4位的數(shù)減0A0H
BTFSS STATUS,C;判斷是否比0A0H大
GOTO DA3;否
ADDWF 62H,1;是則將差加上低位
BSF STATUS,C;是則置位
GOTO DA4;
DA3 MOVFW 60H;
ADDWF 62H,1;否則將高4位加上低4位
MOVFW 62H;
ANDLW B11110000;
SUBLW 0A0H ;加后判斷是否大于或等于0A0H
BCF STATUS,C;
BTFSS STATUS,Z;
GOTO DA4;否則退出
MOVLW B00001111;是
ANDWF 62H,1;則去掉高4位并進(jìn)位
BSF STATUS,C;置進(jìn)位標(biāo)志
DA4 MOVFW 62H;
RETURN;
;**************************************************************
; 定時中斷數(shù)碼管顯示程序
;**************************************************************
ZD01 BTFSS INTCON,T0IF;判斷是否產(chǎn)生定時中斷
GOTO ZD03;否跳出是繼續(xù)執(zhí)行
MOVWF W_TEMP;W備份到W_TEMP中
SWAPF STATUS,0;STATUS半字交換后送W
CLRF STATUS;選擇體0為當(dāng)前體備份
MOVWF STATUS_TEMP;將原來的STATUS送體0上的
MOVF PCLATH,0;PCLATH送W
MOVWF PCLATH_TEMP;W送備份寄存器中
CLRF PCLATH ;設(shè)置為0頁
BCF INTCON,T0IF
BSF STATUS,RP0;體1
BCF STATUS,RP1;
MOVLW 0;
MOVWF TRISB;RB口設(shè)為輸出口
MOVWF TRISD;RD口設(shè)為輸出口
BCF STATUS,RP0;體0
BCF STATUS,RP1;
MOVLW 0FFH;
MOVWF PORTB;RB口輸出高電平
MOVLW 0
MOVWF PORTD;RD口輸出低電平起清屏作用
MOVFW INDF;間接尋址顯示數(shù)據(jù)
CALL Q1;查數(shù)據(jù)表
MOVWF PORTB;顯示斷碼輸出到RB口
INCF FSR,1;間接尋址地址加1
MOVFW 41H ;位碼
MOVWF PORTD;位碼輸出到RD口
RLF 41H,0;處理C
RLF 41H,1;左移位碼
DECFSZ 40H,1;判斷是否顯示完4位
GOTO ZD02;否則繼續(xù)顯示
MOVLW 5;顯示位數(shù)
MOVWF 40H;
MOVLW B00000001;位碼
MOVWF 41H;
MOVLW 5AH;
MOVWF FSR ;間接尋址
ZD02
MOVLW 0FFH;
MOVFW TMR0;重裝初值
; 恢復(fù)現(xiàn)場
CLRF STATUS;恢復(fù)到體0
MOVF PCLATH_TEMP,0;開始恢復(fù)數(shù)據(jù)
MOVWF PCLATH;恢復(fù)PCLATH
SWAPF STATUS_TEMP,0
MOVWF STATUS;恢復(fù)STATUS
SWAPF W_TEMP,1;半字交換后放回
SWAPF W_TEMP,0;再半字交換后送W
ZD03
RETFIE ;中斷返回
ADC1 BSF STATUS,RP0;體1
BCF STATUS,RP1
MOVLW 0FFH
MOVWF TRISA;設(shè)置A口為輸入口
MOVLW B10001110;設(shè)置ADC轉(zhuǎn)換格式為右對齊并選RA0位AD口
MOVWF ADCON1
BCF STATUS,RP0;選擇體0
BCF STATUS,RP1
MOVLW B11000001 ;選擇ADC時鐘頻率選擇RA0位AD通道使能ADC
MOVWF ADCON0
BSF ADCON0,GO;開始AD轉(zhuǎn)換
BTFSC ADCON0,GO;判斷是否轉(zhuǎn)換完成
GOTO $-1
BSF ADCON0,GO;清完成標(biāo)志
MOVFW ADRESH;將轉(zhuǎn)換完成高位數(shù)存到50H
MOVWF 50H
BSF STATUS,RP0;體1
BCF STATUS,RP1
MOVFW ADRESL;將轉(zhuǎn)換完成數(shù)存到51H
BCF STATUS,RP0;體0
BCF STATUS,RP1
MOVWF 51H
RETURN
M001 MOVLW 1
MOVWF 30H
M002 MOVLW D24
MOVWF 31H
M003 MOVLW D250
MOVWF 32H
DECFSZ 32H,1
GOTO $-1
DECFSZ 31H,1
GOTO M003
DECFSZ 30H,1
GOTO M002
RETURN
關(guān)鍵詞:
PIC單片機(jī)adc轉(zhuǎn)
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論