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

📄 theat.lst

📁 1
💻 LST
📖 第 1 页 / 共 2 页
字号:
MPASM  5.06.4                         THEAT.ASM   7-27-2007  17:03:12         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001 ;*************************************************
                      00002 ;* heat.asm                                     **
                      00003 ;*************************************************
                      00004 ;* 本程序为热敏电阻输入处理模块程序  
                      00005 ;* 将温度值在LCD特定位置显示               
                      00006 ;* 占用I/O     RA1                       
                      00007 ;* 使用RAM     3个字节                          
                      00008 ;* 程序包括:                                
                      00009 ;*   - TempM    热敏电阻输入处理子程序          
                      00010 ;*   - CalTable 温度值校准处理子程序  
                      00011 ;*   - Bin2BCDT -二进制数转两位ASCII码子程序    
                      00012 ;* 入口参数    无                          
                      00013 ;* 出口参数    TempH,TempL  (温度值)    
                      00014 ;*************************************************
                      00015   #INCLUDE P16F877A.INC        ;定义所用单片机的头文件
                      00001         LIST
                      00002 ; P16F877A.INC  Standard Header File, Version 1.00    Microchip Technology, Inc.
                      00400         LIST
                      00016 
  00000020            00017 TEMP     EQU   0X20   
  00000021            00018 TEMPH    EQU   0X21
  00000022            00019 TEMPL    EQU   0X22
                      00020 
  00000024            00021 LED_DATA   EQU   0X24   ;要显示的数值  
  00000025            00022 CLKCOUNT   EQU   0X25   ;脉冲记数器
  00000025            00023 COUNT      EQU   0X25   ;
  00000026            00024 COUNT1     EQU   0X26   ;
  00000027            00025 COUNT2     EQU   0X27   ;
                      00026 #DEFINE    SRCLK   PORTB,5;  SPI CLK
                      00027 #DEFINE    RCLK    PORTB,4;  完成脉冲线
                      00028 #DEFINE    SER     PORTB,3;  SPI SDO 
                      00029   
Warning[205]: Found directive in column 1. (ORG)
0000                  00030 ORG 0X0
Warning[203]: Found opcode in column 1. (CALL)
0000   20A4           00031 CALL   PRELED;
Warning[203]: Found opcode in column 1. (CALL)
0001   2080           00032 CALL   TEMPM;
Warning[203]: Found opcode in column 1. (MOVF)
0002   0822           00033 MOVF   TEMPL,W;
Warning[203]: Found opcode in column 1. (MOVWF)
0003   00A4           00034 MOVWF  LED_DATA;
Warning[203]: Found opcode in column 1. (CALL)
0004   20AB           00035 CALL   MONILED
Warning[203]: Found opcode in column 1. (MOVF)
0005   0821           00036 MOVF   TEMPH,W;
Warning[203]: Found opcode in column 1. (MOVWF)
0006   00A4           00037 MOVWF  LED_DATA;
Warning[203]: Found opcode in column 1. (CALL)
0007   20AB           00038 CALL   MONILED;
Warning[203]: Found opcode in column 1. (CALL)
0008   20D1           00039 CALL   DELAY;
Warning[203]: Found opcode in column 1. (GOTO)
MPASM  5.06.4                         THEAT.ASM   7-27-2007  17:03:12         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0009   2800           00040 GOTO   0X0;
                      00041 
                      00042 
000A                  00043 CALTABLE                      ;温度校正函数
000A   1283           00044         BCF     STATUS,RP0
000B   303A           00045                 MOVLW   0X3A              ;进行校准处理(调整该处值以得到正确的温度值)  
000C   0220           00046                 SUBWF   TEMP,W        ; 
000D   0782           00047                 ADDWF   PCL,F             ;将补偿结果与 PCL相加
                      00048 ;*注意:要通过反汇编查看CalTable函数是否跨页(这里的跨页指PCL溢出),若跨页则要调整该函数位置
000E   3400 3400 3400 00049  DT     0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5
       3400 3401 3401 
       3401 3401 3402 
       3402 3402 3402 
       3403 3403 3403 
       3403 3404 3404 
       3404 3404 3405 
       3405 3405 
0025   3406 3406 3406 00050  DT     6,6,6,7,7,7,8,8,8,9,9,0XA,0XA,0XB,0XB,0XC,0XC
       3407 3407 3407 
       3408 3408 3408 
       3409 3409 340A 
       340A 340B 340B 
       340C 340C 
0036   340D 340D 340E 00051  DT     0XD,0XD,0XE,0XE,0XF,0XF,0XF,0X10,0X10,0X10
       340E 340F 340F 
       340F 3410 3410 
       3410 
0040   3411 3411 3412 00052  DT     0X11,0X11,0X12,0X12,0X12,0X13,0X13,0X14,0X14,0X14
       3412 3412 3413 
       3413 3414 3414 
       3414 
004A   3415 3415 3415 00053  DT     0X15,0X15,0X15,0X16,0X16,0X16,0X17,0X17,0X18,0X18
       3416 3416 3416 
       3417 3417 3418 
       3418 
0054   3419 3419 341A 00054  DT     0X19,0X19,0X1A,0X1A,0X1B,0X1B,0X1C,0X1C,0X1C
       341A 341B 341B 
       341C 341C 341C 
005D   341D 341D 341D 00055  DT     0X1D,0X1D,0X1D,0X1E,0X1E,0X1F,0X1F,0X20,0X20
       341E 341E 341F 
       341F 3420 3420 
0066   3421 3421 3422 00056  DT     0X21,0X21,0X22,0X22,0X23,0X23,0X24,0X24,0X25,0X25
       3422 3423 3423 
       3424 3424 3425 
       3425 
0070   3426 3426 3427 00057  DT     0X26,0X26,0X27,0X28,0X29,0X29,0X2A,0X2A,0X2B,0X2B
       3428 3429 3429 
       342A 342A 342B 
       342B 
007A   342C 342D 342E 00058  DT     0X2C,0X2D,0X2E,0X2F,0X30,0X32 
       342F 3430 3432 
                      00059 ;********************************************************  
0080                  00060 TEMPM                                   ;热敏电阻输入处理
MPASM  5.06.4                         THEAT.ASM   7-27-2007  17:03:12         PAGE  3


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00061     
0080   1683           00062         BSF     STATUS,RP0      ;初始化RA2
0081   3002           00063         MOVLW   0X02
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0082   009F           00064         MOVWF   ADCON1          ;ADRESH all 8-bit
0083   1283           00065         BCF     STATUS,RP0
0084   3049           00066         MOVLW   B'01001001'         ;select     AD1,FOSC/8
0085   009F           00067         MOVWF   ADCON0          ;
0086   3010           00068         MOVLW   0X10            ;延时
0087   00A0           00069         MOVWF   TEMP
0088   0BA0           00070         DECFSZ  TEMP,F
0089   2888           00071         GOTO    $-1
008A   151F           00072         BSF     ADCON0,GO       ;启动转换
008B   191F           00073         BTFSC   ADCON0,GO
008C   288B           00074         GOTO    $-1
008D   081E           00075         MOVF    ADRESH,W        ;读取转换结果的高8位
008E   00A0           00076         MOVWF   TEMP            
008F   3000           00077         MOVLW   HIGH CALTABLE   ;进行校正
0090   008A           00078         MOVWF   PCLATH
0091   200A           00079         CALL    CALTABLE
0092   00A0           00080         MOVWF   TEMP
0093   2095           00081         CALL    BIN2BCDT            ;进行BCD码调整
0094   0008           00082         RETURN
                      00083 ;************************************************
                      00084 ;* Bin2BCDT - 将 Temp  寄存器内的二进制数转     *
                      00085 ;* 换为相应的 ASCII 码并存为 TempH:TempL 的形式 *
                      00086 ;************************************************
0095                  00087 BIN2BCDT
0095   1283           00088         BCF     STATUS,RP0
0096   01A1           00089         CLRF    TEMPH           ;Initialize variables
0097   0820           00090         MOVF    TEMP,W
0098   00A2           00091         MOVWF   TEMPL
0099                  00092 TTENTH                              ;Subtract 10 from low variable
0099   300A           00093         MOVLW   .10                 ;until result is < 0.  On each
009A   0222           00094         SUBWF   TEMPL,W         ;subtraction, increment the
009B   1C03           00095         BTFSS   STATUS,C        ;temperature high byte.
009C   28A0           00096         GOTO    OVER0
009D   00A2           00097         MOVWF   TEMPL
009E   0AA1           00098         INCF    TEMPH,F
009F   2899           00099         GOTO    TTENTH
00A0                  00100 OVER0
00A0   3030           00101         MOVLW   0X30            ;Make decimal ASCII by adding
00A1   04A1           00102         IORWF   TEMPH,F         ;'0' to high and low byte
00A2   04A2           00103         IORWF   TEMPL,F
00A3   0008           00104         RETURN
                      00105 ;**************************************************************
                      00106 
00A4                  00107 PRELED
00A4   0186           00108      CLRF    PORTB;
00A5   3008           00109      MOVLW   0X8
00A6   00A5           00110      MOVWF   CLKCOUNT;
00A7   1683           00111      BSF     STATUS,RP0;
                      00112      ;BCF     ANSEL,7; MAKE RC3 DIGITAL IO;use for 16f676
MPASM  5.06.4                         THEAT.ASM   7-27-2007  17:03:12         PAGE  4


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
00A8   0186           00113      CLRF    TRISB;   MAKE RC3,RC4,RC5 OUTPUT     
00A9   1283           00114      BCF     STATUS,RP0;
00AA   0008           00115      RETURN
00AB                  00116 MONILED;     入口参数LED_DATA,为0-9ASCALL码
                      00117 ;芯片全部在时钟上升沿完成动作,故需在低电平期间完成数据的变化。
00AB   300F           00118      MOVLW   0X0F;
00AC   05A4           00119      ANDWF   LED_DATA,F;得到0-9;
00AD   0824           00120      MOVF    LED_DATA,W;
00AE   20C6           00121      CALL    LED_TABLE;
00AF   00A4           00122      MOVWF   LED_DATA;  得到0-9对应的LED段码;该码表与SPI主模式下码表一致,故模拟时,高位                
                                 ;  先送出,芯片最高工作频率30M故不需要特别的延时
00B0   1206           00123      BCF     RCLK;     
00B1                  00124 GOGOGO     
00B1   1286           00125      BCF     SRCLK;
00B2   0DA4           00126      RLF     LED_DATA,F;
00B3   1803           00127      BTFSC   STATUS,C;
00B4   28B6           00128      GOTO    SETSER;
00B5   28B8           00129      GOTO    CLRSER;
00B6                  00130 SETSER 
00B6   1586           00131      BSF     SER;
00B7   28B9           00132      GOTO    SETSRCLK;
00B8                  00133 CLRSER 
00B8   1186           00134      BCF     SER;
00B9                  00135 SETSRCLK
00B9   0000           00136      NOP
00BA   0000           00137      NOP
00BB   1686           00138      BSF     SRCLK
00BC   0000           00139      NOP
00BD   0BA5           00140      DECFSZ  CLKCOUNT,F;
00BE   28B1           00141      GOTO    GOGOGO;
00BF   1206           00142      BCF     RCLK;干扰太厉害,必须在这清0,然后制造上升沿
00C0   0000           00143      NOP
00C1   0000           00144      NOP 
00C2   1606           00145      BSF     RCLK;
00C3   3008           00146      MOVLW   0X8;
00C4   00A5           00147      MOVWF   CLKCOUNT;         
00C5   0008           00148      RETURN
                      00149 
                      00150 
00C6                  00151 LED_TABLE        ;七段码调整 如果表出现PCL溢出,要调整表的位置
00C6   0782           00152      ADDWF   PCL,F 
00C7   343F 3406 345B 00153      DT 0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F 
       344F 3466 346D 
       347D 3407 347F 
       346F 
                      00154      
00D1                  00155 DELAY                      ;1S延时(4M下)                    
                      00156                            ; call指令占用2个指令周期    
00D1   01A5           00157         CLRF    COUNT      ; 清 Count占用1个指令周期
00D2   01A6           00158         CLRF    COUNT1     ; 清 Count1占用1个指令周期
00D3   3006           00159         MOVLW   0X06       ;占用1个指令周期
00D4   00A7           00160         MOVWF   COUNT2     ;占用1个指令周期
MPASM  5.06.4                         THEAT.ASM   7-27-2007  17:03:12         PAGE  5


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00D5                  00161 LDLOOP          
00D5   0BA5           00162         DECFSZ  COUNT,F    ; 这两行指令将延时
00D6   28D5           00163         GOTO    LDLOOP     ; (256 * 3) -1 个指令周期
00D7   0BA6           00164         DECFSZ  COUNT1,F
00D8   28D5           00165         GOTO    LDLOOP
00D9   0BA7           00166         DECFSZ  COUNT2,F
00DA   28D5           00167         GOTO    LDLOOP
00DB   0008           00168         RETURN
                      00169     END
MPASM  5.06.4                         THEAT.ASM   7-27-2007  17:03:12         PAGE  6


SYMBOL TABLE
  LABEL                             VALUE 

ACKDT                             00000005
ACKEN                             00000004
ACKSTAT                           00000006
ADCON0                            0000001F
ADCON1                            0000009F
ADCS0                             00000006
ADCS1                             00000007
ADCS2                             00000006
ADDEN                             00000003
ADFM                              00000007
ADIE                              00000006
ADIF                              00000006
ADON                              00000000
ADRESH                            0000001E
ADRESL                            0000009E
BCLIE                             00000003
BCLIF                             00000003
BF                                00000000
BIN2BCDT                          00000095
BRGH                              00000002
C                                 00000000
C1INV                             00000004
C1OUT                             00000006
C2INV                             00000005
C2OUT                             00000007
CALTABLE                          0000000A
CCP1CON                           00000017
CCP1IE                            00000002
CCP1IF                            00000002
CCP1M0                            00000000
CCP1M1                            00000001
CCP1M2                            00000002
CCP1M3                            00000003
CCP1X                             00000005
CCP1Y                             00000004
CCP2CON                           0000001D
CCP2IE                            00000000
CCP2IF                            00000000
CCP2M0                            00000000
CCP2M1                            00000001

⌨️ 快捷键说明

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