📄 ad.lst
字号:
MPASM 5.14 AD.ASM 8-1-2008 16:16:21 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 #include <P16F73.INC>
00001 LIST
00002 ; P16F73.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
00320 LIST
Warning[205]: Found directive in column 1. (lIST)
00002 lIST P=16F73
00003
00004
00005 ;-------------变量定义-----------------------------;
00000020 00006 TIME1 EQU 20H ;采样延时计时器
00000021 00007 CABLE_AD EQU 21H ;电缆温度采样AD
00000022 00008 CABLE_BC_AD EQU 22H ;补偿电缆温度采样AD
00000023 00009 FLAG EQU 23H ;AD采样标志
00000024 00010 LED_FLAG EQU 24H ;
00000025 00011 ISR_COUNT1 EQU 25H
00012
00013 ;-----------------常数定义-----------------------;
00000005 00014 RP0 EQU 5
00000006 00015 ADIF EQU 6
00000006 00016 ADIE EQU 6
00000006 00017 PEIE EQU 6
00000007 00018 GIE EQU 7
00000000 00019 W EQU 0
00000002 00020 GO EQU 2
00021
0000 00022 org 0x00000 ;复位地址
0000 2820 00023 goto Start
00024
0008 00025 org 0x00008 ;中断地址
0008 2853 00026 goto ISR ;中断处理程序
00027
00028
0020 00029 org 0x00020
0020 00030 Start
0020 1683 00031 BSF STATUS,RP0 ;设置数据寄存器体1
0021 3000 00032 MOVLW B'00000000'
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0022 0085 00033 MOVWF TRISA ;设置RA端口全部为输出
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0023 0087 00034 MOVWF TRISC ;设置RC端口全部位输出
0024 1283 00035 BCF STATUS,RP0 ;恢复数据寄存器体0
00036
0025 0185 00037 clrf PORTA ;清端口PORTA
0026 0187 00038 clrf PORTC ;清端口PORTC
0027 203B 00039 call InitializeAD ;AD初始化
0028 204E 00040 call SetupDelay ;采样延时
0029 151F 00041 bsf ADCON0,GO ;开始AD转换
00042
002A 00043 Main
00044
002A 1BA3 00045 BTFSC FLAG,7 ;判断两组AD转换是否都完成
002B 282A 00046 GOTO Main ;未完
00047
MPASM 5.14 AD.ASM 8-1-2008 16:16:21 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
002C 0821 00048 MOVF CABLE_AD,W ;取电缆温度值
002D 1903 00049 BTFSC STATUS,2
002E 2838 00050 GOTO ERROR_ACT ;故障
Warning[202]: Argument out of range. Least significant bits used.
002F 3C00 00051 SUBLW 200 ;200-W 发生借位则为0 不发生借位则为1
0030 1C03 00052 BTFSS STATUS,0
0031 2835 00053 GOTO RUN_OK ;电缆温度大于E0,则系统正常运行
0032 01A4 00054 CLRF LED_FLAG
0033 14A4 00055 BSF LED_FLAG,1 ;火警
0034 282A 00056 GOTO Main
0035 00057 RUN_OK
0035 01A4 00058 CLRF LED_FLAG
0036 1424 00059 BSF LED_FLAG,0 ;正常运行标志
0037 282A 00060 goto Main ;主程序空循环
0038 00061 ERROR_ACT
0038 01A4 00062 CLRF LED_FLAG
0039 1524 00063 BSF LED_FLAG,2 ;故障
003A 282A 00064 GOTO Main
00065 ;--------------------子函数-------------------;
00066
00067 ;--------------------AD初始化配置子函数---------;
003B 00068 InitializeAD
003B 130C 00069 bcf PIR1,ADIF ;清中断标志
003C 110B 00070 BCF INTCON,2 ;清TMR0溢出标志
00071
003D 1683 00072 BSF STATUS,RP0 ;设置数据寄存器体1
003E 3004 00073 movlw B'00000100' ;定义模拟输入端口
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
003F 009F 00074 movwf ADCON1
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0040 170C 00075 bsf PIE1,ADIE ;中断使能
0041 3087 00076 MOVLW B'10000111' ;设定:RB口不用上拉,分频器配给TMR0,256分频
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0042 0081 00077 MOVWF OPTION_REG
0043 1283 00078 BCF STATUS,RP0 ;恢复数据寄存器体0
00079
0044 30C1 00080 movlw B'11000001' ;选择RC内部时钟,选择AN0通道
0045 009F 00081 movwf ADCON0 ;A/D转换模块使能
Warning[202]: Argument out of range. Least significant bits used.
0046 3030 00082 MOVLW 130 ;125*64=8ms中断一次
0047 0081 00083 MOVWF TMR0
0048 3060 00084 MOVLW 60
0049 00A5 00085 MOVWF ISR_COUNT1 ;480MS置标志
00086
004A 170B 00087 bsf INTCON,PEIE ;本地中断使能
004B 168B 00088 BSF INTCON,5 ;TMR0中断使能
004C 178B 00089 bsf INTCON,GIE ;全局中断使能
00090
004D 0008 00091 return
00092 ;--------------------采样延时子函数---------------;
004E 00093 SetupDelay ;延时子函数
004E 3003 00094 movlw 3
004F 00A0 00095 movwf TIME1
MPASM 5.14 AD.ASM 8-1-2008 16:16:21 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0050 00096 SD
Message[305]: Using default destination of 1 (file).
0050 0BA0 00097 decfsz TIME1
0051 2850 00098 goto SD
0052 0008 00099 return
00100
00101 ;-----------------AD中断服务程序------------------;
0053 00102 ISR
0053 1F0C 00103 btfss PIR1,ADIF ;判断AD转换结束了吗?
0054 285B 00104 goto TMR0_JUDGE ;判断时钟溢出
00105
0055 130C 00106 bcf PIR1,ADIF ;清中断产生标志
0056 081E 00107 movf ADRES,W ;获得AD转换值
00108
0057 00A1 00109 MOVWF CABLE_AD ;获得电缆温度
0058 204E 00110 call SetupDelay ;延时15个指令周期,采样时间
0059 151F 00111 bsf ADCON0,GO ;开始AD转换
005A 2877 00112 GOTO EndISR
005B 00113 TMR0_JUDGE
005B 1D0B 00114 BTFSS INTCON,2 ;判断有无时钟溢出中断产生
005C 2877 00115 GOTO EndISR ;没有则返回
005D 110B 00116 BCF INTCON,2 ;清溢出标志
00117
Message[305]: Using default destination of 1 (file).
005E 0BA5 00118 DECFSZ ISR_COUNT1
005F 2877 00119 GOTO EndISR
0060 3060 00120 MOVLW 60
0061 00A5 00121 MOVWF ISR_COUNT1
00122
0062 1824 00123 BTFSC LED_FLAG,0
0063 2869 00124 GOTO LED_GREEN
0064 18A4 00125 BTFSC LED_FLAG,1
0065 286E 00126 GOTO LED_RED
0066 1924 00127 BTFSC LED_FLAG,2
0067 2872 00128 GOTO LED_YELLOW
0068 0008 00129 RETURN
0069 00130 LED_GREEN
0069 1105 00131 BCF PORTA,2
006A 1307 00132 BCF PORTC,6 ;清其他灯
006B 3020 00133 MOVLW B'00100000'
Message[305]: Using default destination of 1 (file).
006C 0685 00134 XORWF PORTA ;绿灯闪亮
006D 2877 00135 GOTO EndISR
006E 00136 LED_RED
006E 3000 00137 MOVLW B'00000000'
006F 0085 00138 MOVWF PORTA
0070 1707 00139 BSF PORTC,6 ;火警报警,红灯亮
0071 2877 00140 GOTO EndISR
0072 00141 LED_YELLOW
0072 1285 00142 BCF PORTA,5
0073 1307 00143 BCF PORTC,6
0074 3004 00144 MOVLW B'00000100' ;故障,黄灯闪亮
Message[305]: Using default destination of 1 (file).
MPASM 5.14 AD.ASM 8-1-2008 16:16:21 PAGE 4
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0075 0685 00145 XORWF PORTA
0076 2877 00146 GOTO EndISR
00147
0077 00148 EndISR
0077 0009 00149 retfie ;中断返回
00150 END
MPASM 5.14 AD.ASM 8-1-2008 16:16:21 PAGE 5
SYMBOL TABLE
LABEL VALUE
ADCON0 0000001F
ADCON1 0000009F
ADCS0 00000006
ADCS1 00000007
ADIE 00000006
ADIF 00000006
ADON 00000000
ADRES 0000001E
BF 00000000
BRGH 00000002
C 00000000
CABLE_AD 00000021
CABLE_BC_AD 00000022
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
CCP2M2 00000002
CCP2M3 00000003
CCP2X 00000005
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -