;-------------------------------------------------- ; ; dBmW 表示 QRPパワーメータ ; ; program name: DB-POWER.ASM ; ; Version: 0.01 ; ; date: 2009/1/4 ; ; copyright(c) 2009 by JJ1SUN ; ;------------------------------------------------- ; version up note ; ; ;------------------------------------------------- ; LIST P=16F688 LIST ; P16F688.INC Standard Header File, Version 1.00 Microchip Technology, Inc. NOLIST ; This header file defines configurations, registers, and other useful bits of ; information for the PIC16F688 microcontroller. These names are taken to match ; the data sheets as closely as possible. ; Note that the processor must be selected before this file is ; included. The processor may be selected the following ways: ; 1. Command line switch: ; C:\ MPASM MYFILE.ASM /PIC16F688 ; 2. LIST directive in the source file ; LIST P=PIC16F688 ; 3. Processor Type entry in the MPASM full-screen interface ;========================================================================== ; ; Revision History ; ;========================================================================== ;1.00 07/28/03 Original ;1.01 09/02/03 Modified to match datasheet ;1.02 09/19/03 Changed CMCON1 from 0x20 to 0x1A (pas) ;========================================================================== ; ; Verify Processor ; ;========================================================================== IFNDEF __16F688 MESSG "Processor-header file mismatch. Verify selected processor." ENDIF ;========================================================================== ; ; Register Definitions ; ;========================================================================== W EQU H'0000' F EQU H'0001' ;----- Register Files------------------------------------------------------ INDF EQU H'0000' TMR0 EQU H'0001' PCL EQU H'0002' STATUS EQU H'0003' FSR EQU H'0004' PORTA EQU H'0005' PORTC EQU H'0007' PCLATH EQU H'000A' INTCON EQU H'000B' PIR1 EQU H'000C' TMR1L EQU H'000E' TMR1H EQU H'000F' T1CON EQU H'0010' BAUDCTL EQU H'0011' SPBRGH EQU H'0012' SPBRG EQU H'0013' RCREG EQU H'0014' TXREG EQU H'0015' TXSTA EQU H'0016' RCSTA EQU H'0017' WDTCON EQU H'0018' CMCON0 EQU H'0019' CMCON1 EQU H'001A' ADRESH EQU H'001E' ADCON0 EQU H'001F' OPTION_REG EQU H'0081' TRISA EQU H'0085' TRISC EQU H'0087' PIE1 EQU H'008C' PCON EQU H'008E' OSCCON EQU H'008F' OSCTUNE EQU H'0090' ANSEL EQU H'0091' WPU EQU H'0095' WPUA EQU H'0095' IOC EQU H'0096' IOCA EQU H'0096' EEDATH EQU H'0097' EEADRH EQU H'0098' VRCON EQU H'0099' EEDAT EQU H'009A' EEDATA EQU H'009A' EEADR EQU H'009B' EECON1 EQU H'009C' EECON2 EQU H'009D' ADRESL EQU H'009E' ADCON1 EQU H'009F' ;----- STATUS Bits -------------------------------------------------------- IRP EQU H'0007' RP1 EQU H'0006' RP0 EQU H'0005' NOT_TO EQU H'0004' NOT_PD EQU H'0003' Z EQU H'0002' DC EQU H'0001' C EQU H'0000' ;----- INTCON Bits -------------------------------------------------------- GIE EQU H'0007' PEIE EQU H'0006' T0IE EQU H'0005' INTE EQU H'0004' RAIE EQU H'0003' T0IF EQU H'0002' INTF EQU H'0001' RAIF EQU H'0000' ;----- PIR1 Bits ---------------------------------------------------------- EEIF EQU H'0007' ADIF EQU H'0006' RCIF EQU H'0005' C2IF EQU H'0004' C1IF EQU H'0003' OSFIF EQU H'0002' TXIF EQU H'0001' T1IF EQU H'0000' TMR1IF EQU H'0000' ;----- T1CON Bits --------------------------------------------------------- T1GINV EQU H'0007' TMR1GE EQU H'0006' T1CKPS1 EQU H'0005' T1CKPS0 EQU H'0004' T1OSCEN EQU H'0003' NOT_T1SYNC EQU H'0002' TMR1CS EQU H'0001' TMR1ON EQU H'0000' ;----- BAUDCTL Bits -------------------------------------------------------- ABDOVF EQU H'0007' RCIDL EQU H'0006' SCKP EQU H'0004' BRG16 EQU H'0003' WUE EQU H'0001' ABDEN EQU H'0000' ;----- TXSTA Bits -------------------------------------------------------- CSRC EQU H'0007' TX9 EQU H'0006' TXEN EQU H'0005' SYNC EQU H'0004' SENDB EQU H'0003' BRGH EQU H'0002' TRMT EQU H'0001' TX9D EQU H'0000' ;----- RCSTA Bits -------------------------------------------------------- SPEN EQU H'0007' RX9 EQU H'0006' SREN EQU H'0005' CREN EQU H'0004' ADDEN EQU H'0003' FERR EQU H'0002' OERR EQU H'0001' RX9D EQU H'0000' ;----- WDTCON Bits -------------------------------------------------------- WDTPS3 EQU H'0004' WDTPS2 EQU H'0003' WDTPS1 EQU H'0002' WDTPS0 EQU H'0001' SWDTEN EQU H'0000' ;----- COMCON0 Bits ------------------------------------------------------- C2OUT EQU H'0007' C1OUT EQU H'0006' C2INV EQU H'0005' C1INV EQU H'0004' CIS EQU H'0003' CM2 EQU H'0002' CM1 EQU H'0001' CM0 EQU H'0000' ;----- COMCON1 Bits ------------------------------------------------------- T1GSS EQU H'0001' C2SYNC EQU H'0000' ;----- ADCON0 Bits -------------------------------------------------------- ADFM EQU H'0007' VCFG EQU H'0006' CHS2 EQU H'0004' CHS1 EQU H'0003' CHS0 EQU H'0002' GO EQU H'0001' NOT_DONE EQU H'0001' GO_DONE EQU H'0001' ADON EQU H'0000' ;----- OPTION Bits -------------------------------------------------------- NOT_RAPU EQU H'0007' INTEDG EQU H'0006' T0CS EQU H'0005' T0SE EQU H'0004' PSA EQU H'0003' PS2 EQU H'0002' PS1 EQU H'0001' PS0 EQU H'0000' ;----- PIE1 Bits ---------------------------------------------------------- EEIE EQU H'0007' ADIE EQU H'0006' RCIE EQU H'0005' C2IE EQU H'0004' C1IE EQU H'0003' OSFIE EQU H'0002' TXIE EQU H'0001' T1IE EQU H'0000' TMR1IE EQU H'0000' ;----- PCON Bits ---------------------------------------------------------- ULPWUE EQU H'0005' SBODEN EQU H'0004' NOT_POR EQU H'0001' NOT_BOD EQU H'0000' ;----- OSCCON Bits -------------------------------------------------------- IRCF2 EQU H'0006' IRCF1 EQU H'0005' IRCF0 EQU H'0004' OSTS EQU H'0003' HTS EQU H'0002' LTS EQU H'0001' SCS EQU H'0000' ;----- OSCTUNE Bits ------------------------------------------------------- TUN4 EQU H'0004' TUN3 EQU H'0003' TUN2 EQU H'0002' TUN1 EQU H'0001' TUN0 EQU H'0000' ;----- ANSEL -------------------------------------------------------------- ANS7 EQU H'0007' ANS6 EQU H'0006' ANS5 EQU H'0005' ANS4 EQU H'0004' ANS3 EQU H'0003' ANS2 EQU H'0002' ANS1 EQU H'0001' ANS0 EQU H'0000' ;----- IOC -------------------------------------------------------------- IOC5 EQU H'0005' IOC4 EQU H'0004' IOC3 EQU H'0003' IOC2 EQU H'0002' IOC1 EQU H'0001' IOC0 EQU H'0000' ;----- IOCA -------------------------------------------------------------- IOCA5 EQU H'0005' IOCA4 EQU H'0004' IOCA3 EQU H'0003' IOCA2 EQU H'0002' IOCA1 EQU H'0001' IOCA0 EQU H'0000' ;----- VRCON Bits --------------------------------------------------------- VREN EQU H'0007' VRR EQU H'0005' VR3 EQU H'0003' VR2 EQU H'0002' VR1 EQU H'0001' VR0 EQU H'0000' ;----- EECON1 ------------------------------------------------------------- EEPGD EQU H'0007' WRERR EQU H'0003' WREN EQU H'0002' WR EQU H'0001' RD EQU H'0000' ;----- ADCON1 ------------------------------------------------------------- ADCS2 EQU H'0006' ADCS1 EQU H'0005' ADCS0 EQU H'0004' ;========================================================================== ; ; RAM Definition ; ;========================================================================== __MAXRAM H'1FF' __BADRAM H'06', H'08'-H'09', H'0D', H'1B'-H'1D' __BADRAM H'86', H'88'-H'89', H'8D', H'92'-H'94' __BADRAM H'106', H'108'-H'109', H'10C'-H'11F' __BADRAM H'186', H'188'-H'189', H'18C'-H'18D', H'190'-H'1EF' ;========================================================================== ; ; Configuration Bits ; ;========================================================================== _FCMEN_ON EQU H'3FFF' _FCMEN_OFF EQU H'37FF' _IESO_ON EQU H'3FFF' _IESO_OFF EQU H'3BFF' _BOD_ON EQU H'3FFF' _BOD_NSLEEP EQU H'3EFF' _BOD_SBODEN EQU H'3DFF' _BOD_OFF EQU H'3CFF' _CPD_ON EQU H'3F7F' _CPD_OFF EQU H'3FFF' _CP_ON EQU H'3FBF' _CP_OFF EQU H'3FFF' _MCLRE_ON EQU H'3FFF' _MCLRE_OFF EQU H'3FDF' _PWRTE_OFF EQU H'3FFF' _PWRTE_ON EQU H'3FEF' _WDT_ON EQU H'3FFF' _WDT_OFF EQU H'3FF7' _LP_OSC EQU H'3FF8' _XT_OSC EQU H'3FF9' _HS_OSC EQU H'3FFA' _EC_OSC EQU H'3FFB' _INTRC_OSC_NOCLKOUT EQU H'3FFC' _INTRC_OSC_CLKOUT EQU H'3FFD' _EXTRC_OSC_NOCLKOUT EQU H'3FFE' _EXTRC_OSC_CLKOUT EQU H'3FFF' _INTOSCIO EQU H'3FFC' _INTOSC EQU H'3FFD' _EXTRCIO EQU H'3FFE' _EXTRC EQU H'3FFF' LIST __CONFIG _FCMEN_OFF & _IESO_OFF & _CP_OFF & _CPD_OFF & _BOD_ON & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTOSCIO ;------------------------------ ; 変数宣言 ; ; work register ; COUNT1 EQU H'20' COUNT2 EQU H'21' COUNT3 EQU H'22' TEMP1 EQU H'23' ; ワーク1 TEMP2 EQU H'24' ; ワーク2 SIGN EQU H'30' ;+ or -(ASCII) DIGIT0 EQU H'31' ;0.01桁(ASCII) DIGIT1 EQU H'32' ;0.1桁(ASCII) DIGIT2 EQU H'33' ;1桁(ASCII) DIGIT3 EQU H'34' ;10桁(ASCII) DISPDATA EQU H'35' ; LCD display data ADSAVE EQU H'36' ; A/D data save area OVER_UNDER EQU H'37' ; over flow or under flow ; ; ポートの指定 ; #DEFINE LCD_RS PORTC, 4 ;RS信号 #DEFINE LCD_E PORTC, 5 ;E信号 #DEFINE LCD_DB PORTC ;DB(下位4ビット) ; ;---------------------------------------- ORG 0 ; Reset Start ;---------------------------------------- ; メインルーチン ; MAIN goto START ; START call PIC_IOINI call LCD_INI ; LCD display initialize call DISPID ; display program ID call TIME_WAIT_150 ; 300ms wait call TIME_WAIT_150 ; call LCD_CLR ; LCD画面消去   LOOP1 call CH0ADC ; A/D conversion movwf ADSAVE ; data save call DATACONV call DISPPOWER call TIME_WAIT_150 ; 300ms wait call TIME_WAIT_150 ; goto LOOP1 ; ;---------------------------------------------- ; Program ID display ; DISPID movlw B'10000000' ;1 line 0 column call LCD_CMD ; movlw "Q" ; display "QRP Power v.0.XX" call LCD_DATA movlw "R" call LCD_DATA movlw "P" call LCD_DATA movlw " " call LCD_DATA movlw "P" call LCD_DATA movlw "o" call LCD_DATA movlw "w" call LCD_DATA movlw "e" call LCD_DATA movlw "r" call LCD_DATA movlw " " call LCD_DATA movlw "v" call LCD_DATA movlw "." call LCD_DATA movlw "0" ; Must be change version no. call LCD_DATA movlw "." call LCD_DATA movlw "0" call LCD_DATA movlw "1" call LCD_DATA return ; ;------------------------------------------------ ; PIC I/Oポート初期化 ; PIC_IOINI movlw B'01100001' ; 4MHz internal clock movwf OSCCON clrf STATUS clrf PORTA ; init PortA movlw B'00000111' ; コンパレータを使用しない movwf CMCON0 bsf STATUS,RP0 ; File register Bank 1 選択 movlw B'00001001' ; RA1,RA2,RA4,RA5 出力 RA3 入力 movwf TRISA movlw B'00000001' ; AN0 analog input movwf ANSEL ; RA1,RA2,RA3 digital I/O movlw B'00000000' ; RC0,RC1,RC2,RC3,RC4,RC5 output movwf TRISC movlw B'00010000' ; Fosc/8 movwf ADCON1 bcf STATUS,RP0 ; bank 0 に戻す movlw B'00000001' ; Left justified movwf ADCON0 bcf INTCON,PEIE ; 周辺割り込みOFF movlw B'11111111' ; Clear I/O Port movwf PORTC movlw B'11110110' movwf PORTA movlw "0" ; 表示データ初期化(- 00.0 dBmW) movwf DIGIT1 movwf DIGIT2 movwf DIGIT3 movlw "-" movwf SIGN return ; ;------------------------------------------------ ; Ch.0 A/D conversion routine ; ; exit: w-reg A/D data ; CH0ADC movlw B'00000001' ; ch.0, left justified movwf ADCON0 call TIME_WAIT_100U ; 100us wait bsf ADCON0,GO ; start conversion CH0ADC1 btfsc ADCON0,GO ; conversion end ? goto CH0ADC1 movf ADRESH,W return ; ;---------------------------------------------- ; A/D変換値をdBmW値にテーブル参照により変換 ; DATACONV movlw H'02' ; 2XXh movwf PCLATH movf ADSAVE,W call CONV_LOW ; data conversion movwf TEMP2 movlw H'00' movwf PCLATH movf TEMP2,W call BCD2DISP movlw H'03' ; 3XXh movwf PCLATH movf ADSAVE,W call CONV_UP movwf TEMP2 movlw H'00' movwf PCLATH movf TEMP2,W call BCD2DISP_UP return ; ;--------------------------------------------- ; +,-値とBCD値を文字コードに変換してバッファに格納 ; BCD2DISP movwf TEMP2 movwf OVER_UNDER movlw "-" btfsc TEMP2,0 ; bit 0=0 -> "-",bit 0=1 -> "+" movlw "+" movf SIGN ; rrf TEMP2,F rrf TEMP2,F rrf TEMP2,F rrf TEMP2,W call BCD2ASCII movwf DIGIT1 return ; ;---------------------------------------------- ; 上位BCD値を文字コードに変換してバッファに格納 ; BCD2DISP_UP movwf TEMP2 call BCD2ASCII movwf DIGIT2 rrf TEMP2,F rrf TEMP2,F rrf TEMP2,F rrf TEMP2,W call BCD2ASCII movwf DIGIT3 return ; ;----------------------------------------------- ; BCDデータからASCIIコードへの変換 ; BCD2ASCII andlw B'00001111' ;Mask upper 4bits addlw "0" ; convert to ASCII code return ; ;---------------------------------------------- ; dBmW値および単位文字をLCD表示器の2行目に表示 ; DISPPOWER movlw B'11000000' ;2 line 0 column call LCD_CMD movlw " " call LCD_DATA movlw " " call LCD_DATA movfw SIGN call LCD_DATA movf DIGIT3,W call LCD_DATA movf DIGIT2,W call LCD_DATA movlw "." call LCD_DATA movf DIGIT1,W call LCD_DATA movlw " " call LCD_DATA movlw "d" ;display "dBmW" call LCD_DATA movlw "B" call LCD_DATA movlw "m" call LCD_DATA movlw "W" call LCD_DATA return ; ;-------------------------------------------- ; LCD初期化 ; LCD_INI call TIME_WAIT_005 ;15ms wait call TIME_WAIT_005 call TIME_WAIT_005 movlw H'03' ;8 bit mode call PUTCMD call TIME_WAIT_005 ;5msec wait movlw H'03' ;8 bit mode call PUTCMD call TIME_WAIT_005 movlw H'03' ;8 bit mode call PUTCMD call TIME_WAIT_005 movlw H'02' ;4 bit mode call PUTCMD call TIME_WAIT_005 ;4ビットモードで機能詳細設定 movlw H'2E' ;Function DL=0 N=F=1 call LCD_CMD movlw H'08' ;表示オフ D=C=B=0 call LCD_CMD movlw H'0C' ;表示オン D=1 C=0 B=1 call LCD_CMD movlw H'06' ;Entry I/D=1 S=0 call LCD_CMD call LCD_CLR return ; ;----------------------------------------- ; 液晶表示器へ表示データ出力 ; LCD_DATA movwf DISPDATA ;データ一時保存 swapf DISPDATA,W ;データ上位側出力 call PUTDATA ;E制御 movf DISPDATA,W ;データ下位側出力 call PUTDATA ;E制御 call TIME_WAIT_100U ;実行完了待ち return ; ;------------------------------------------- ; 液晶表示器へ制御コマンド出力 ; LCD_CMD movwf DISPDATA ;データ一時保存 swapf DISPDATA,W ;データ上位側出力 call PUTCMD ;E制御 movf DISPDATA,W ;データ下位側出力 call PUTCMD ;E制御 call TIME_WAIT_100U ;実行完了待ち return ; ;------------------------------------------- ; 液晶表示器の全消去 ; LCD_CLR movlw H'01' ;Clear Display command call LCD_CMD call TIME_WAIT_005 ;追加の5msディレイ return ; ;------------------------------------------- ; 表示カーソルをホームポジションに移動 ; LCD_HOME movlw H'02' ;Cursor at Home call LCD_CMD call TIME_WAIT_005 return ; ;-------------------------------------------- ; 制御信号の出力 ; PUTDATA andlw H'0F' ;Wreg下位4ビットはデータ iorlw H'10' ;RS信号=1 goto PUTSIG PUTCMD andlw H'0F' ;RS信号=0 PUTSIG movwf LCD_DB iorlw H'20' ;E信号=1 movwf LCD_DB andlw H'1F' ;E信号=0 movwf LCD_DB return ; ;-------------------------------------------- ; 150ms ウエイトルーチン ; TIME_WAIT_150 movlw H'1E' ; 30 回ループ movwf TEMP1 TIMLP150 call TIME_WAIT_005 ; 5ms wait decfsz TEMP1,f ; 5ms x 30=150ms wait goto TIMLP150 return ; ;-------------------------------------------- ; 5msec ウエイトルーチン ; TIME_WAIT_005 movlw H'32' ; COUNT2 = 50 movwf COUNT2 TIMLP0051 call TIME_WAIT_100U ; 100μs×50=5ms decfsz COUNT2,F goto TIMLP0051 return ; ;-------------------------------------------- ; 1msec ウエイトルーチン ; TIME_WAIT_001 movlw H'0A' ; COUNT2 = 10 movwf COUNT2 TIMLP0011 ; 100μs×10=1msec call TIME_WAIT_100U decfsz COUNT2,F goto TIMLP0011 return ; ;---------------------------------------------- ; 100μs ウエイトルーチン ; TIME_WAIT_100U movlw H'18' ; COUNT1 = 24 movwf COUNT1 TIMLP100U1 ; 4μs×24+4=100μs nop decfsz COUNT1,F goto TIMLP100U1 nop nop return ; ;--------------------------------------------- ; 50μs ウエイトルーチン ; TIME_WAIT_50U WAIT50us movlw H'0C' ; COUNT1 = 12 movwf COUNT1 TIMLP50U nop ; 4μs×12+2=50μs decfsz COUNT1,F goto TIMLP50U return ; ;---------------------------------------------- ORG H'200' ;---------------------------------------------- ; 電圧値からdBmW表示値(符号および小数点以下1桁)に変換 ; ; entry: W = 電圧値 ; CONV_LOW btfss ADSAVE,7 ; bit7 = 1? goto CONV_LOW1 btfsc ADSAVE,6 ; bit6 = 0? movlw B'10111111' ; 最大値に置き換え(オーバ表示) CONV_LOW1 addwf PCL,F ;Add to PC reg retlw H'02' ; 0 (0.0V) retlw H'02' ; 1 retlw H'02' ; 2 retlw H'02' ; 3 retlw H'02' ; 4 retlw H'02' ; 5 (0.1V) retlw H'02' ; 6 retlw H'02' ; 7 retlw H'02' ; 8 retlw H'00' ; 9 retlw H'00' ; 10 (0.2V) retlw H'00' ; 11 retlw H'00' ; 12 retlw H'00' ; 13 retlw H'00' ; 14 retlw H'00' ; 15 (0.3V) retlw H'00' ; 16 retlw H'00' ; 17 retlw H'00' ; 18 retlw H'00' ; 19 retlw H'00' ; 20 (0.4V) retlw H'00' ; 21 retlw H'00' ; 22 retlw H'00' ; 23 retlw H'00' ; 24 retlw H'00' ; 25 retlw H'00' ; 26 (0.5V) retlw H'00' ; 27 retlw H'00' ; 28 retlw H'00' ; 29 retlw H'00' ; 30 retlw H'00' ; 31 (0.6V) retlw H'00' ; 32 retlw H'00' ; 33 retlw H'00' ; 34 retlw H'00' ; 35 retlw H'00' ; 36 (0.7V) retlw H'00' ; 37 retlw H'00' ; 38 retlw H'00' ; 39 retlw H'00' ; 40 retlw H'00' ; 41 (0.8V) retlw H'00' ; 42 retlw H'00' ; 43 retlw H'00' ; 44 retlw H'00' ; 45 retlw H'00' ; 46 (0.9V) retlw H'00' ; 47 retlw H'00' ; 48 retlw H'00' ; 49 retlw H'00' ; 50 retlw H'00' ; 51 (1.0V) retlw H'00' ; 52 retlw H'00' ; 53 retlw H'00' ; 54 retlw H'00' ; 55 retlw H'00' ; 56 (1.1V) retlw H'00' ; 57 retlw H'00' ; 58 retlw H'00' ; 59 retlw H'00' ; 60 retlw H'00' ; 61 (1.2V) retlw H'00' ; 62 retlw H'00' ; 63 retlw H'00' ; 64 retlw H'00' ; 65 retlw H'00' ; 66 retlw H'00' ; 67 (1.3V) retlw H'00' ; 68 retlw H'00' ; 69 retlw H'00' ; 70 retlw H'00' ; 71 retlw H'00' ; 72 (1.4V) retlw H'01' ; 73 retlw H'01' ; 74 retlw H'01' ; 75 retlw H'01' ; 76 retlw H'01' ; 77 (1.5V) retlw H'01' ; 78 retlw H'01' ; 79 retlw H'01' ; 80 retlw H'01' ; 81 retlw H'01' ; 82 (1.6V) retlw H'01' ; 83 retlw H'01' ; 84 retlw H'01' ; 85 retlw H'01' ; 86 retlw H'03' ; 87 (1.7V) retlw H'03' ; 88 retlw H'03' ; 89 retlw H'03' ; 90 retlw H'03' ; 91 retlw H'03' ; 92 (1.8V) retlw H'03' ; 93 retlw H'03' ; 94 retlw H'03' ; 95 retlw H'03' ; 96 retlw H'03' ; 97 (1.9V) retlw H'03' ; 98 retlw H'03' ; 99 retlw H'03' ; 100 retlw H'03' ; 101 retlw H'03' ; 102 (2.0V) retlw H'03' ; 103 retlw H'03' ; 104 retlw H'03' ; 105 retlw H'03' ; 106 retlw H'03' ; 107 (2.1V) retlw H'03' ; 108 retlw H'03' ; 109 retlw H'03' ; 110 retlw H'03' ; 111 retlw H'03' ; 112 retlw H'03' ; 113 (2.2V) retlw H'03' ; 114 retlw H'03' ; 115 retlw H'03' ; 116 retlw H'03' ; 117 retlw H'03' ; 118 (2.3V) retlw H'03' ; 119 retlw H'03' ; 120 retlw H'03' ; 121 retlw H'03' ; 122 retlw H'03' ; 123 (2.4V) retlw H'03' ; 124 retlw H'03' ; 125 retlw H'03' ; 126 retlw H'03' ; 127 retlw H'03' ; 128 (2.5V) retlw H'03' ; 129 retlw H'03' ; 130 retlw H'03' ; 131 retlw H'03' ; 132 retlw H'03' ; 133 retlw H'03' ; 134 (2.6V) retlw H'03' ; 135 retlw H'03' ; 136 retlw H'03' ; 137 retlw H'03' ; 138 retlw H'03' ; 139 (2.7V) retlw H'03' ; 140 retlw H'03' ; 141 retlw H'03' ; 142 retlw H'03' ; 143 retlw H'03' ; 144 (2.8V) retlw H'03' ; 145 retlw H'03' ; 146 retlw H'03' ; 147 retlw H'03' ; 148 retlw H'03' ; 149 (2.9V) retlw H'03' ; 150 retlw H'03' ; 151 retlw H'03' ; 152 retlw H'03' ; 153 retlw H'03' ; 154 (3.0V) retlw H'03' ; 155 retlw H'03' ; 156 retlw H'03' ; 157 retlw H'03' ; 158 retlw H'03' ; 159 (3.1V) retlw H'03' ; 160 retlw H'03' ; 161 retlw H'03' ; 162 retlw H'03' ; 163 retlw H'03' ; 164 (3.2V) retlw H'03' ; 165 retlw H'03' ; 166 retlw H'03' ; 167 retlw H'03' ; 168 retlw H'03' ; 169 (3.3V) retlw H'03' ; 170 retlw H'03' ; 171 retlw H'03' ; 172 retlw H'03' ; 173 retlw H'03' ; 174 (3.4V) retlw H'03' ; 175 retlw H'03' ; 176 retlw H'03' ; 177 retlw H'03' ; 178 retlw H'03' ; 179 retlw H'03' ; 180 (3.5V) retlw H'03' ; 181 retlw H'03' ; 182 retlw H'03' ; 183 retlw H'03' ; 184 retlw H'03' ; 175 (3.6V) retlw H'03' ; 176 retlw H'03' ; 177 retlw H'03' ; 178 retlw H'03' ; 179 retlw H'03' ; 180 (3.7V) retlw H'03' ; 181 retlw H'03' ; 182 ; ;---------------------------------------------- ORG H'300' ;---------------------------------------------- ; 電圧値からdbmW表示値に変換(上位2桁) ; ; entry: W = 電圧値(0V -> +2.5V, 00h -> 7Fh) ; CONV_UP btfss ADSAVE,7 ; bit7 = 1? goto CONV_UP1 btfsc ADSAVE,6 ; bit6 = 0? movlw B'10111111' ; 最大値に置き換え(オーバ表示) CONV_UP1 addwf PCL,F ;Add to PC reg retlw H'55' ; 0 (0.0V) retlw H'55' ; 1 retlw H'55' ; 2 retlw H'55' ; 3 retlw H'55' ; 4 retlw H'55' ; 5 (0.1V) retlw H'55' ; 6 retlw H'55' ; 7 retlw H'55' ; 8 retlw H'55' ; 9 retlw H'54' ; 10 (0.2V) retlw H'53' ; 11 retlw H'53' ; 12 retlw H'52' ; 13 retlw H'52' ; 14 retlw H'50' ; 15 (0.3V) retlw H'47' ; 16 retlw H'45' ; 17 retlw H'43' ; 18 retlw H'42' ; 19 retlw H'41' ; 20 (0.4V) retlw H'40' ; 21 retlw H'40' ; 22 retlw H'39' ; 23 retlw H'38' ; 24 retlw H'37' ; 25 retlw H'36' ; 26 (0.5V) retlw H'35' ; 27 retlw H'35' ; 28 retlw H'34' ; 29 retlw H'33' ; 30 retlw H'32' ; 31 (0.6V) retlw H'31' ; 32 retlw H'30' ; 33 retlw H'30' ; 34 retlw H'29' ; 35 retlw H'28' ; 36 (0.7V) retlw H'27' ; 37 retlw H'26' ; 38 retlw H'26' ; 39 retlw H'25' ; 40 retlw H'25' ; 41 (0.8V) retlw H'25' ; 42 retlw H'24' ; 43 retlw H'23' ; 44 retlw H'22' ; 45 retlw H'21' ; 46 (0.9V) retlw H'20' ; 47 retlw H'20' ; 48 retlw H'19' ; 49 retlw H'18' ; 50 retlw H'18' ; 51 (1.0V) retlw H'17' ; 52 retlw H'16' ; 53 retlw H'15' ; 54 retlw H'15' ; 55 retlw H'14' ; 56 (1.1V) retlw H'13' ; 57 retlw H'12' ; 58 retlw H'11' ; 59 retlw H'10' ; 60 retlw H'10' ; 61 (1.2V) retlw H'09' ; 62 retlw H'09' ; 63 retlw H'08' ; 64 retlw H'07' ; 65 retlw H'06' ; 66 retlw H'05' ; 67 (1.3V) retlw H'04' ; 68 retlw H'03' ; 69 retlw H'02' ; 70 retlw H'02' ; 71 retlw H'01' ; 72 (1.4V) retlw H'00' ; 73 retlw H'00' ; 74 retlw H'04' ; 75 retlw H'06' ; 76 retlw H'08' ; 77 (1.5V) retlw H'10' ; 78 retlw H'10' ; 79 retlw H'00' ; 80 retlw H'00' ; 81 retlw H'00' ; 82 (1.6V) retlw H'00' ; 83 retlw H'00' ; 84 retlw H'00' ; 85 retlw H'00' ; 86 retlw H'00' ; 87 (1.7V) retlw H'00' ; 88 retlw H'00' ; 89 retlw H'00' ; 90 retlw H'00' ; 91 retlw H'00' ; 92 (1.8V) retlw H'00' ; 93 retlw H'00' ; 94 retlw H'00' ; 95 retlw H'00' ; 96 retlw H'00' ; 97 (1.9V) retlw H'00' ; 98 retlw H'00' ; 99 retlw H'00' ; 100 retlw H'00' ; 101 retlw H'00' ; 102 (2.0V) retlw H'00' ; 103 retlw H'00' ; 104 retlw H'00' ; 105 retlw H'00' ; 106 retlw H'00' ; 107 (2.1V) retlw H'00' ; 108 retlw H'00' ; 109 retlw H'00' ; 110 retlw H'00' ; 111 retlw H'00' ; 112 retlw H'00' ; 113 (2.2V) retlw H'00' ; 114 retlw H'00' ; 115 retlw H'00' ; 116 retlw H'00' ; 117 retlw H'00' ; 118 (2.3V) retlw H'00' ; 119 retlw H'00' ; 120 retlw H'00' ; 121 retlw H'00' ; 122 retlw H'00' ; 123 (2.4V) retlw H'00' ; 124 retlw H'00' ; 125 retlw H'00' ; 126 retlw H'00' ; 127 retlw H'00' ; 128 (2.5V) retlw H'00' ; 129 retlw H'00' ; 130 retlw H'00' ; 131 retlw H'00' ; 132 retlw H'00' ; 133 retlw H'00' ; 134 (2.6V) retlw H'00' ; 135 retlw H'00' ; 136 retlw H'00' ; 137 retlw H'00' ; 138 retlw H'00' ; 139 (2.7V) retlw H'00' ; 140 retlw H'00' ; 141 retlw H'00' ; 142 retlw H'00' ; 143 retlw H'00' ; 144 (2.8V) retlw H'00' ; 145 retlw H'00' ; 146 retlw H'00' ; 147 retlw H'00' ; 148 retlw H'00' ; 149 (2.9V) retlw H'00' ; 150 retlw H'00' ; 151 retlw H'00' ; 152 retlw H'00' ; 153 retlw H'00' ; 154 (3.0V) retlw H'00' ; 155 retlw H'00' ; 156 retlw H'00' ; 157 retlw H'00' ; 158 retlw H'00' ; 159 (3.1V) retlw H'00' ; 160 retlw H'00' ; 161 retlw H'00' ; 162 retlw H'00' ; 163 retlw H'00' ; 164 (3.2V) retlw H'00' ; 165 retlw H'00' ; 166 retlw H'00' ; 167 retlw H'00' ; 168 retlw H'00' ; 169 (3.3V) retlw H'00' ; 170 retlw H'00' ; 171 retlw H'00' ; 172 retlw H'00' ; 173 retlw H'00' ; 174 (3.4V) retlw H'00' ; 175 retlw H'00' ; 176 retlw H'00' ; 177 retlw H'00' ; 178 retlw H'00' ; 179 retlw H'00' ; 180 (3.5V) retlw H'00' ; 181 retlw H'00' ; 182 retlw H'00' ; 183 retlw H'00' ; 184 retlw H'00' ; 175 (3.6V) retlw H'00' ; 176 retlw H'00' ; 177 retlw H'00' ; 178 retlw H'00' ; 179 retlw H'00' ; 180 (3.7V) retlw H'00' ; 181 retlw H'00' ; 182 ; ;---------------------------------------------- ; END