⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datalog.sdi

📁 该应用软件可以实现大多数单片机的仿真实验
💻 SDI
📖 第 1 页 / 共 3 页
字号:
0000023A,6EF6,,        movwf   TBLPTRL
0000023C,EF8C F000,,        goto    UART_Puts
00000240,,OUT_HELP,OUT_HELP
00000240,0E00,,        movlw   UPPER(MSG_HELP)
00000242,6EF8,,        movwf   TBLPTRU
00000244,0E03,,        movlw   HIGH(MSG_HELP)
00000246,6EF7,,        movwf   TBLPTRH
00000248,0EC8,,        movlw   LOW(MSG_HELP)
0000024A,6EF6,,        movwf   TBLPTRL
0000024C,EF8C F000,,        goto    UART_Puts
00000250,,OUT_COMMAND,OUT_COMMAND
00000250,0E00,,        movlw   UPPER(MSG_COMMAND)
00000252,6EF8,,        movwf   TBLPTRU
00000254,0E03,,        movlw   HIGH(MSG_COMMAND)
00000256,6EF7,,        movwf   TBLPTRH
00000258,0EB6,,        movlw   LOW(MSG_COMMAND)
0000025A,6EF6,,        movwf   TBLPTRL
0000025C,EF8C F000,,        goto    UART_Puts
00000260,,OUT_CRLF,OUT_CRLF
00000260,0E00,,        movlw   UPPER(MSG_CRLF)
00000262,6EF8,,        movwf   TBLPTRU
00000264,0E03,,        movlw   HIGH(MSG_CRLF)
00000266,6EF7,,        movwf   TBLPTRH
00000268,0EC4,,        movlw   LOW(MSG_CRLF)
0000026A,6EF6,,        movwf   TBLPTRL
0000026C,EF8C F000,,        goto    UART_Puts
00000270,,OUT_UNKNOWN,OUT_UNKNOWN
00000270,0E00,,        movlw   UPPER(MSG_UNKNOWN)
00000272,6EF8,,        movwf   TBLPTRU
00000274,0E04,,        movlw   HIGH(MSG_UNKNOWN)
00000276,6EF7,,        movwf   TBLPTRH
00000278,0E0E,,        movlw   LOW(MSG_UNKNOWN)
0000027A,6EF6,,        movwf   TBLPTRL
0000027C,EF8C F000,,        goto    UART_Puts
00000280,,OUT_LOG,OUT_LOG
00000280,0E00,,        movlw   UPPER(MSG_LOG)
00000282,6EF8,,        movwf   TBLPTRU
00000284,0E04,,        movlw   HIGH(MSG_LOG)
00000286,6EF7,,        movwf   TBLPTRH
00000288,0E22,,        movlw   LOW(MSG_LOG)
0000028A,6EF6,,        movwf   TBLPTRL
0000028C,EF8C F000,,        goto    UART_Puts
00000290,,OUT_DUMP,OUT_DUMP
00000290,0E00,,        movlw   UPPER(MSG_DUMP)
00000292,6EF8,,        movwf   TBLPTRU
00000294,0E04,,        movlw   HIGH(MSG_DUMP)
00000296,6EF7,,        movwf   TBLPTRH
00000298,0E46,,        movlw   LOW(MSG_DUMP)
0000029A,6EF6,,        movwf   TBLPTRL
0000029C,EF8C F000,,        goto    UART_Puts
,,,
,,,;====================================================================
,,,; Output value to USART as two hexadecimal digits
,,,;--------------------------------------------------------------------
,,,; W contains value to be output
,,,;--------------------------------------------------------------------
000002A0,,OUT_HEX,OUT_HEX
000002A0,6E00,,        movwf   TMP1
000002A2,3800,,        swapf   TMP1, W
000002A4,D801,,        rcall   OUT_HEX_SUB1
000002A6,5000,,        movf    TMP1, W
000002A8,,OUT_HEX_SUB1,OUT_HEX_SUB1
000002A8,0B0F,,        andlw   0x0F
000002AA,0FF6,,        addlw   0xF6
000002AC,B0D8,,        btfsc   STATUS, C
000002AE,0F07,,        addlw   0x07
000002B0,0F3A,,        addlw   0x3A
000002B2,D72D,,        bra     UART_Putch
,,,
,,,;====================================================================
,,,; Start logging
,,,;--------------------------------------------------------------------
000002B4,,LOG_START,LOG_START
000002B4,D818,,        rcall   LOG_RESET
000002B6,D81B,,        rcall   INIT_ADC
000002B8,D822,,        rcall   INIT_TIMER
000002BA,D828,,        rcall   START_TIMER
000002BC,8ED0,,        bsf     RCON, IPEN      ; Enable interrupt priority
000002BE,8EF2,,        bsf     INTCON, GIEH    ; Enable high prority interrupts
000002C0,8CF2,,        bsf     INTCON, GIEL    ; Enable low prority interrupts
000002C2,0012,,        return
,,,
,,,;====================================================================
,,,; Stop logging
,,,;--------------------------------------------------------------------
000002C4,,LOG_STOP,LOG_STOP
000002C4,9EF2,,        bcf     INTCON, 7       ; Disable interrupts
000002C6,D824,,        rcall   STOP_TIMER
000002C8,D827,,        rcall   STOP_ADC
000002CA,DF3D,,        rcall   ATA_Block_Write ; Flush buffer to disk
000002CC,,LOG_UPDATE,LOG_UPDATE
000002CC,CFD9 F00E,,        movff   FSR2L, END_POSL ; Copy over to end log pointers
000002D0,CFDA F00F,,        movff   FSR2H, END_POSH
000002D4,C002 F010,,        movff   ATA_A0, END_ATA_A0
000002D8,C003 F011,,        movff   ATA_A1, END_ATA_A1
000002DC,C004 F012,,        movff   ATA_A2, END_ATA_A2
000002E0,C005 F013,,        movff   ATA_A3, END_ATA_A3
000002E4,0012,,        return
,,,
,,,;====================================================================
,,,; Reset log ready for start of logging
,,,;--------------------------------------------------------------------
000002E6,,LOG_RESET,LOG_RESET
000002E6,EE24 F000,,        lfsr    FSR2, ATA_BUF   ; Point to start of data capture buffer
000002EA,DF4A,,        rcall   ATA_A_RESET
000002EC,0012,,        return
,,,
,,,;====================================================================
,,,; Initialise ADC converter
,,,;--------------------------------------------------------------------
000002EE,,INIT_ADC,INIT_ADC
000002EE,0E0E,,        movlw   B'00001110'
000002F0,6EC1,,        movwf   ADCON1
000002F2,0EC1,,        movlw   B'11000001'
000002F4,6EC2,,        movwf   ADCON0
000002F6,9C9F,,        bcf     IPR1, ADIP      ; Low priority
000002F8,9C9E,,        bcf     PIR1, ADIF      ; Clear any pending interrupt
000002FA,8C9D,,        bsf     PIE1, ADIE      ; Enable ADC conversion interrupt
,,,
000002FC,0012,,        return
,,,
,,,;====================================================================
,,,; Initialise timer 0
,,,;--------------------------------------------------------------------
000002FE,,INIT_TIMER,INIT_TIMER
000002FE,0E46,,        movlw   B'01000110'
00000300,6ED5,,        movwf   T0CON
00000302,0E01,,        movlw   D'1'            ; Setup countdown on TMR0 for ADC trigger
00000304,6E0D,,        movwf   T0COUNT
00000306,94F2,,        bcf     INTCON, TMR0IF  ; Clear any pending TMR0 overflow interrupt
00000308,8AF2,,        bsf     INTCON, TMR0IE  ; Enable timer 0 overflow interrupt
0000030A,0012,,        return
,,,
,,,;====================================================================
,,,; Start timer 0
,,,;--------------------------------------------------------------------
0000030C,,START_TIMER,START_TIMER
0000030C,8ED5,,        bsf     T0CON, 7        ; Start timer 0
0000030E,0012,,        return
,,,
,,,;====================================================================
,,,; Stop timer 0
,,,;--------------------------------------------------------------------
00000310,,STOP_TIMER,STOP_TIMER
00000310,9AF2,,        bcf     INTCON, TMR0IE  ; Disable timer 0 overflow interrupt
00000312,94F2,,        bcf     INTCON, TMR0IF  ; Clear any pending TMR0 overflow interrupt
00000314,9ED5,,        bcf     T0CON, 7        ; Stop timer 0
00000316,0012,,        return
,,,
,,,;====================================================================
,,,; Stop ADC conversion
,,,;--------------------------------------------------------------------
00000318,,STOP_ADC,STOP_ADC
00000318,9C9D,,        bcf     PIE1, ADIE      ; Diasable ADC conversion interrupt
0000031A,9C9E,,        bcf     PIR1, ADIF      ; Clear any pending interrupt
0000031C,90C2,,        bcf     ADCON0, ADON    ; Turn off ADC module
0000031E,0012,,        return
,,,
,,,;====================================================================
,,,; Dump data from ATA to USART in hex
,,,;--------------------------------------------------------------------
00000320,,DUMP_ALL,DUMP_ALL
00000320,DF2F,,        rcall   ATA_A_RESET
00000322,EE26 F000,,        lfsr    FSR2, ATA_BUF_END
00000326,0E10,,        movlw   0x10
00000328,6E16,,        movwf   OUT_COUNT
,,,
0000032A,5005,,        movf    ATA_A3, W       ; Exit if no data to display
0000032C,1004,,        iorwf   ATA_A2, W
0000032E,1003,,        iorwf   ATA_A1, W
00000330,1002,,        iorwf   ATA_A0, W
00000332,A4D8,,        btfss   STATUS, Z
00000334,D00E,,        bra     DUMP_ALL_JP1
00000336,0E04,,        movlw   HIGH(ATA_BUF)
00000338,620F,,        cpfseq  END_POSH
0000033A,D00B,,        bra     DUMP_ALL_JP1
0000033C,0E00,,        movlw   LOW(ATA_BUF)
0000033E,620E,,        cpfseq  END_POSL
00000340,D008,,        bra     DUMP_ALL_JP1
00000342,D029,,        bra     DUMP_ALL_EXIT
,,,
00000344,,DUMP_ALL_LP1,DUMP_ALL_LP1
00000344,0E06,,        movlw   HIGH(ATA_BUF_END)       ; Check if next sector required
00000346,62DA,,        cpfseq  FSR2H
00000348,D007,,        bra     DUMP_ALL_JP2
0000034A,0E00,,        movlw   LOW(ATA_BUF_END)
0000034C,62D9,,        cpfseq  FSR2L
0000034E,D004,,        bra     DUMP_ALL_JP2
00000350,DF1C,,        rcall   ATA_A_INC
00000352,,DUMP_ALL_JP1,DUMP_ALL_JP1
00000352,DEE6,,        rcall   ATA_Block_Read          ; Get a new sector
00000354,EE24 F000,,        lfsr    FSR2, ATA_BUF           ; Point buffer to start of sector
00000358,,DUMP_ALL_JP2,DUMP_ALL_JP2
,,,
00000358,0E20,,        movlw   0x20
0000035A,DED9,,        rcall   UART_Putch
,,,
0000035C,CFDE F001,,        movff   POSTINC2, TMP2
00000360,50DE,,        movf    POSTINC2, W
00000362,DF9E,,        rcall   OUT_HEX
00000364,5001,,        movf    TMP2, W
00000366,DF9C,,        rcall   OUT_HEX
,,,
00000368,2E16,,        decfsz  OUT_COUNT
0000036A,D003,,        bra     DUMP_ALL_JP3
0000036C,0E10,,        movlw   0x10
0000036E,6E16,,        movwf   OUT_COUNT
00000370,DF77,,        rcall   OUT_CRLF
00000372,,DUMP_ALL_JP3,DUMP_ALL_JP3
00000372,500F,,        movf    END_POSH, W             ; Check not at the end of data
00000374,62DA,,        cpfseq  FSR2H
00000376,D7E6,,        bra     DUMP_ALL_LP1
00000378,500E,,        movf    END_POSL, W
0000037A,62D9,,        cpfseq  FSR2L
0000037C,D7E3,,        bra     DUMP_ALL_LP1
0000037E,5013,,        movf    END_ATA_A3, W
00000380,6205,,        cpfseq  ATA_A3
00000382,D7E0,,        bra     DUMP_ALL_LP1
00000384,5012,,        movf    END_ATA_A2, W
00000386,6204,,        cpfseq  ATA_A2
00000388,D7DD,,        bra     DUMP_ALL_LP1
0000038A,5011,,        movf    END_ATA_A1, W
0000038C,6203,,        cpfseq  ATA_A1
0000038E,D7DA,,        bra     DUMP_ALL_LP1
00000390,5010,,        movf    END_ATA_A0, W
00000392,6202,,        cpfseq  ATA_A0
00000394,D7D7,,        bra     DUMP_ALL_LP1
00000396,,DUMP_ALL_EXIT,DUMP_ALL_EXIT
00000396,0012,,        return
,,,
,,,;====================================================================
,,,; Program messages
,,,;--------------------------------------------------------------------
00000398,,MSG_VERSION,MSG_VERSION
00000398,614C 6362 6E65,,        DATA    "Labcenter Data Logger v1.0\r\n", 0
000003B6,,MSG_COMMAND,MSG_COMMAND
000003B6,0A0D 6F43 6D6D,,        DATA    "\r\nCommand? ", 0
000003C4,,MSG_CRLF,MSG_CRLF
000003C4,0A0D 0000,,        DATA    "\r\n", 0
000003C8,,MSG_HELP,MSG_HELP
000003C8,6548 706C 0D3A,,        DATA    "Help:\r\nH - This help\r\nV - Version\r\nL - Start logging\r\nD - Dump log\r\n", 0
0000040E,,MSG_UNKNOWN,MSG_UNKNOWN
0000040E,6E55 6E6B 776F,,        DATA    "Unknown command.\r\n", 0
00000422,,MSG_LOG,MSG_LOG
00000422,6F4C 6767 6E69,,        DATA    "Logging...\r\nPress any key to stop.", 0
00000446,,MSG_DUMP,MSG_DUMP
00000446,7453 7261 2074,,        DATA    "Start of dump.\r\n", 0
,,,;====================================================================
,,,END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -