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

📄 datalog.lst

📁 该应用软件可以实现大多数单片机的仿真实验
💻 LST
📖 第 1 页 / 共 5 页
字号:
MPASM 03.00 Released          DATALOG.ASM   3-29-2004  12:59:54         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

Warning[205]: Found directive in column 1. (LIST)
                      00001 LIST p=18F458 ;PIC18F458 is the target processor
                      00002 
                      00003 #include "P18f458.INC" ;Include header file
                      00001         LIST
                      00002 ; P18F458.INC  Standard Header File, Version 1.10   Microchip Technology, Inc.
                      01571         LIST
                      00004 
                      00005 ;====================================================================
                      00006 ; Macros
                      00007 ;--------------------------------------------------------------------
                      00008 
                      00009 #define CLK_FREQ        D'20000000'
                      00010 #define BAUD(x) ((CLK_FREQ/x)/D'64')-1
                      00011 
                      00012 #define BRG_VAL BAUD(D'9600')   ;Baud rate configuration value
                      00013 
                      00014 ;====================================================================
                      00015 ; Uninitialised data
                      00016 ;--------------------------------------------------------------------
                      00017 
                      00018 ; General temps
  00000000            00019 TMP1            equ     0x000000
  00000001            00020 TMP2            equ     0x000001
                      00021 
                      00022 ; Current LBA sector address for reading/wring
  00000002            00023 ATA_A0          equ     0x000002
  00000003            00024 ATA_A1          equ     0x000003
  00000004            00025 ATA_A2          equ     0x000004
  00000005            00026 ATA_A3          equ     0x000005
                      00027 
                      00028 ; Counter used to track data words read/written to/from ATA
  00000006            00029 ATA_CNT         equ     0x000006
                      00030 
                      00031 ; High priority interrupt temps
  00000007            00032 STATUS_TEMP_H   equ     0x000007
  00000008            00033 WREG_TEMP_H     equ     0x000008
  00000009            00034 BSR_TEMP_H      equ     0x000009
                      00035 
                      00036 ; Low priority interrupt temps
  0000000A            00037 STATUS_TEMP_L   equ     0x00000A
  0000000B            00038 WREG_TEMP_L     equ     0x00000B
  0000000C            00039 BSR_TEMP_L      equ     0x00000C
                      00040 
                      00041 ; Countdown number of timer 0 overflows
  0000000D            00042 T0COUNT         equ     0x00000D
                      00043 
                      00044 ; End of logged data
  0000000E            00045 END_POSL        equ     0x00000E
  0000000F            00046 END_POSH        equ     0x00000F
  00000010            00047 END_ATA_A0      equ     0x000010
  00000011            00048 END_ATA_A1      equ     0x000011
  00000012            00049 END_ATA_A2      equ     0x000012
MPASM 03.00 Released          DATALOG.ASM   3-29-2004  12:59:54         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

  00000013            00050 END_ATA_A3      equ     0x000013
                      00051 
                      00052 ; Temp for log data to be displayed
  00000014            00053 INPDATA_L       equ     0x000014
  00000015            00054 INPDATA_H       equ     0x000015
                      00055 
                      00056 ; Countdoen the number of log entries on a display line
  00000016            00057 OUT_COUNT       equ     0x000016
                      00058 
                      00059 ; ATA data transfer buffer
  00000400            00060 ATA_BUF         equ     0x000400
  00000600            00061 ATA_BUF_END     equ     0x000600
                      00062 
                      00063 ;====================================================================
                      00064 ; Interrupt vectors
                      00065 ;--------------------------------------------------------------------
000000                00066         org     0x000000        ;Reset vector
000000 D00C           00067         bra     START
                      00068 
000008                00069         org     0x000008        ;High priority interrupt vector
000008 D052           00070         bra     INT_HIGH
                      00071 
000018                00072         org     0x000018        ;Low priority interrupt vector
000018 D05B           00073         bra     INT_LOW
                      00074 
                      00075 ;====================================================================
                      00076 ; Main program
                      00077 ;--------------------------------------------------------------------
00001A                00078 START
00001A D82F           00079         rcall   INIT            ; Program initialisation
00001C D909           00080         rcall   OUT_VERSION     ; Version message
00001E                00081 REHELP
00001E D910           00082         rcall   OUT_HELP        ; Help message
000020                00083 MLOOP
000020 D917           00084         rcall   OUT_COMMAND     ; Command prompt
                      00085 
000022 D870           00086         rcall   UART_Getch      ; Get user input
000024 6E00           00087         movwf   TMP1            ; and store
                      00088 
000026 D91C           00089         rcall   OUT_CRLF        ; Newline
000028 0E68           00090         movlw   'h'             ; Check for help
00002A 1800           00091         xorwf   TMP1, W
00002C E0F8           00092         bz      REHELP
00002E 0E48           00093         movlw   'H'
000030 1800           00094         xorwf   TMP1, W
000032 E0F5           00095         bz      REHELP
000034 0E76           00096         movlw   'v'             ; Check for version
000036 1800           00097         xorwf   TMP1, W
000038 E012           00098         bz      VERSION
00003A 0E56           00099         movlw   'V'
00003C 1800           00100         xorwf   TMP1, W
00003E E00F           00101         bz      VERSION
000040 0E6C           00102         movlw   'l'             ; Check for log start
MPASM 03.00 Released          DATALOG.ASM   3-29-2004  12:59:54         PAGE  3


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

000042 1800           00103         xorwf   TMP1, W
000044 E00F           00104         bz      LOG
000046 0E4C           00105         movlw   'L'
000048 1800           00106         xorwf   TMP1, W
00004A E00C           00107         bz      LOG
00004C 0E64           00108         movlw   'd'             ; Check for log dump
00004E 1800           00109         xorwf   TMP1, W
000050 E010           00110         bz      DUMP
000052 0E44           00111         movlw   'D'
000054 1800           00112         xorwf   TMP1, W
000056 E00D           00113         bz      DUMP
000058 D90B           00114         rcall   OUT_UNKNOWN     ; Command is unknown
00005A EF10 F000      00115         goto    MLOOP
                      00116 
00005E D8E8           00117 VERSION rcall   OUT_VERSION     ; Version message
000060 EF10 F000      00118         goto    MLOOP
                      00119 
000064 D90D           00120 LOG     rcall   OUT_LOG         ; Log start message
000066 D926           00121         rcall   LOG_START       ; Enable logging under interrupt
000068 D84D           00122         rcall   UART_Getch      ; Wait for any user input
00006A D92C           00123         rcall   LOG_STOP        ; Terminate logging
00006C D8F9           00124         rcall   OUT_CRLF
00006E EF10 F000      00125         goto    MLOOP
                      00126 
000072 D90E           00127 DUMP    rcall   OUT_DUMP        ; Dump start message
000074 D955           00128         rcall   DUMP_ALL        ; Dump data
000076 EF10 F000      00129         goto    MLOOP
                      00130 
                      00131 ;====================================================================
                      00132 ; Program initialisation
                      00133 ;--------------------------------------------------------------------
00007A                00134 INIT
                      00135         ;Setup serial comms
00007A 0E90           00136         movlw   b'10010000'     ;Enable USART in continous receive mode
00007C 6EAB           00137         movwf   RCSTA
00007E 0E22           00138         movlw   b'00100010'     ;Async, TX enabled, low baud rate
000080 6EAC           00139         movwf   TXSTA
000082 0E1F           00140         movlw   BRG_VAL         ;Set baud rate
000084 6EAF           00141         movwf   SPBRG
000086 50AE           00142         movf    RCREG, W        ;Flush out RX buffer
000088 50AE           00143         movf    RCREG, W
                      00144 
                      00145         ;Setup I/O ports
00008A 6A80           00146         clrf    PORTA
00008C 6892           00147         setf    TRISA           ; Port A all input
00008E 6A81           00148         clrf    PORTB
000090 6893           00149         setf    TRISB           ; Port B all input, ATA D0-7
000092 6A82           00150         clrf    PORTC
000094 0EE0           00151         movlw   B'11100000'     ; Port C lower bits for ATA adressing
000096 6E94           00152         movwf   TRISC
000098 0E07           00153         movlw   B'00000111'     ; Turn off comparitor
00009A 6EB4           00154         movwf   CMCON           ; On PORTD bits 0-3
00009C 6A83           00155         clrf    PORTD
MPASM 03.00 Released          DATALOG.ASM   3-29-2004  12:59:54         PAGE  4


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00009E 6895           00156         setf    TRISD           ; Port D all input, ATA D8-15
0000A0 0E03           00157         movlw   B'00000011'
0000A2 6E84           00158         movwf   PORTE
0000A4 0E04           00159         movlw   B'00000100'     ; Port E lower two bits output for ATA
0000A6 6E96           00160         movwf   TRISE           ; read and write
0000A8 D91E           00161         rcall   LOG_RESET       ; Reset log pointers
0000AA D910           00162         rcall   LOG_UPDATE
0000AC 0012           00163         return
                      00164 
                      00165 ;====================================================================
                      00166 ; High priority intrrupt handler
                      00167 ;--------------------------------------------------------------------
0000AE                00168 INT_HIGH
0000AE CFD8 F007      00169         movff   STATUS, STATUS_TEMP_H
0000B2 CFE0 F009      00170         movff   BSR, BSR_TEMP_H
0000B6 6E08           00171         movwf   WREG_TEMP_H
                      00172 
0000B8 94F2           00173         bcf     INTCON, TMR0IF  ;Clear timer 0 overflow interrupt flag
0000BA 2E0D           00174         decfsz  T0COUNT
0000BC D003           00175         bra     INT_HIGH_EXIT1
0000BE 0E14           00176         movlw   D'20'           ;Only start conversion every 20 timer 0 timeouts
0000C0 6E0D           00177         movwf   T0COUNT
0000C2 84C2           00178         bsf     ADCON0, GO      ;Start ADC conversion
                      00179 
0000C4                00180 INT_HIGH_EXIT1
0000C4 5008           00181         movf    WREG_TEMP_H, W
0000C6 C009 FFE0      00182         movff   BSR_TEMP_H, BSR
0000CA C007 FFD8      00183         movff   STATUS_TEMP_H, STATUS
0000CE 0010           00184         retfie
                      00185 
                      00186 ;====================================================================
                      00187 ; Low prority interrupt handler
                      00188 ;--------------------------------------------------------------------
0000D0                00189 INT_LOW
0000D0 CFD8 F00A      00190         movff   STATUS, STATUS_TEMP_L
0000D4 CFE0 F00C      00191         movff   BSR, BSR_TEMP_L
0000D8 6E0B           00192         movwf   WREG_TEMP_L
                      00193 
0000DA 50C3           00194         movf    ADRESL, W       ;Copy ADC result to buffer
0000DC 6EDE           00195         movwf   POSTINC2
0000DE 50C4           00196         movf    ADRESH, W       ;Copy ADC result to buffer
0000E0 6EDE           00197         movwf   POSTINC2
                      00198 
0000E2 9C9E           00199         bcf     PIR1, ADIF      ;Clear ADC interrupt flag
                      00200 
0000E4 0E06           00201         movlw   HIGH(ATA_BUF_END)       ; Check if at end of buffer
0000E6 62DA           00202         cpfseq  FSR2H
0000E8 D007           00203         bra     INT_LOW_EXIT1
0000EA 0E00           00204         movlw   LOW(ATA_BUF_END)
0000EC 62D9           00205         cpfseq  FSR2L
0000EE D004           00206         bra     INT_LOW_EXIT1
                      00207 
0000F0 D82A           00208         rcall   ATA_Block_Write
MPASM 03.00 Released          DATALOG.ASM   3-29-2004  12:59:54         PAGE  5


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0000F2 D84B           00209         rcall   ATA_A_INC
Message[314]: LFSR instruction is not supported on some versions of the 18Cxx2 devices.
Message[315]: Please refer to Microchip document DS80058A for more details.
0000F4 EE24 F000      00210         lfsr    FSR2, ATA_BUF   ; Point to start of data capture buffer
                      00211 
0000F8                00212 INT_LOW_EXIT1
0000F8 500B           00213         movf    WREG_TEMP_L, W
0000FA C00C FFE0      00214         movff   BSR_TEMP_L, BSR

⌨️ 快捷键说明

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