📄 t232.lst
字号:
MPASM 5.06.4 T232.ASM 7-27-2007 16:56:38 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ;主函数
00002
00003 #INCLUDE <P16F877A.INC> ;定义所用的单片机头文件
00001 LIST
00002 ; P16F877A.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
00400 LIST
00004
00000020 00005 COUNT EQU 0X20
00000021 00006 _WREG EQU 0X21
00000022 00007 _STATUS EQU 0X22
00008
00009
00010 #DEFINE STAR_RCADD 0X50 ;串口接收数据起始存放地址
00011 #DEFINE END_RCADD 0X70 ;串口接收数据结束存放地址
00012
00013
0000 00014 ORG 0X00
0000 0000 00015 RESET NOP
0001 2820 00016 GOTO START
00017
0004 00018 ORG 0X04
00019
0004 00020 INIT_V
0004 138B 00021 BCF INTCON,GIE
0005 00022 PUSH
0005 00A1 00023 MOVWF _WREG ; 存 WREG状态
0006 0E03 00024 SWAPF STATUS,W ; 存 STATUS
0007 00A2 00025 MOVWF _STATUS
00026
0008 1283 00027 BCF STATUS,RP0
0009 1A8C 00028 BTFSC PIR1,RCIF ;读走数据后硬件自动清中断标志,故无须清除
000A 204D 00029 CALL RCINTSEVER
00030
000B 00031 POP
000B 0E22 00032 SWAPF _STATUS,W ; Restore STATUS
000C 0083 00033 MOVWF STATUS
000D 0EA1 00034 SWAPF _WREG,F ; Restore WREG w/o
000E 0E21 00035 SWAPF _WREG,W ; affecting STATUS
000F 178B 00036 BSF INTCON,GIE
0010 0009 00037 RETFIE
00038
0020 00039 ORG 0X20;
0020 00040 START
0020 018B 00041 CLRF INTCON
0021 2037 00042 CALL INITDATA
0022 01A1 00043 CLRF _WREG
0023 01A2 00044 CLRF _STATUS;
0024 30C0 00045 MOVLW 0XC0
0025 008B 00046 MOVWF INTCON ; ENABLE GIE,PEIE
00047
0026 202B 00048 CALL INITUART
0027 2041 00049 CALL TXDATA;
0028 3050 00050 MOVLW 0X50;
MPASM 5.06.4 T232.ASM 7-27-2007 16:56:38 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0029 0084 00051 MOVWF FSR;
002A 282A 00052 GOTO $;;
00053 ;*******************************************
00054
00055
002B 00056 INITUART ;初始化串行口
002B 3090 00057 MOVLW 0X90
002C 0098 00058 MOVWF RCSTA ;ENABLE UART,8BIT DATA,连续接收允许。
002D 1683 00059 BSF STATUS,RP0
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
002E 1787 00060 BSF TRISC,7 ;RX INPUT
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
002F 1307 00061 BCF TRISC,6 ;TX OUTPUT
0030 3024 00062 MOVLW 0X24
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0031 0098 00063 MOVWF TXSTA ;异步方式,发送允许,8位数据,高速波特率(配合4M振荡),TSR满??
0032 3019 00064 MOVLW 0X19 ;9600=4000000/(16*(X+1))->X=25 0.16% 0x19
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0033 0099 00065 MOVWF SPBRG ;high speed mode
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0034 168C 00066 BSF PIE1,RCIE ;接收中断允许
0035 1283 00067 BCF STATUS,RP0
0036 0008 00068 RETURN
00069
0037 00070 INITDATA
0037 302F 00071 MOVLW 0X2F;
0038 0084 00072 MOVWF FSR; FSR=2FH
0039 3040 00073 MOVLW 0X40;
003A 00074 GOINITDATA
003A 0A84 00075 INCF FSR,F; FSR=30H
003B 0080 00076 MOVWF INDF;
003C 0A80 00077 INCF INDF,F; 0X41----30H;
003D 0800 00078 MOVF INDF,W;
003E 1D84 00079 BTFSS FSR,3; FSR=38H,FINISH 0X41-0X48-----30H-37H
003F 283A 00080 GOTO GOINITDATA;
0040 0008 00081 RETURN
00082
0041 00083 TXDATA ;发送数据子程序
0041 3030 00084 MOVLW 0X30;
0042 0084 00085 MOVWF FSR;
0043 00086 GOTXDATA
0043 0800 00087 MOVF INDF,W; 0X41----W
0044 0099 00088 MOVWF TXREG;
0045 1683 00089 BSF STATUS,RP0;
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0046 1C98 00090 BTFSS TXSTA,TRMT;
0047 2846 00091 GOTO $-1;
0048 1283 00092 BCF STATUS,RP0;
Message[305]: Using default destination of 1 (file).
0049 0A84 00093 INCF FSR;
004A 1D84 00094 BTFSS FSR,3
004B 2843 00095 GOTO GOTXDATA;
004C 0008 00096 RETURN
MPASM 5.06.4 T232.ASM 7-27-2007 16:56:38 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00097
004D 00098 RCINTSEVER ;接收数据中断服务程序
00099
004D 1898 00100 BTFSC RCSTA,OERR ;溢出
004E 2853 00101 GOTO RCERROR
004F 081A 00102 MOVF RCREG,W
0050 0080 00103 MOVWF INDF
0051 0A84 00104 INCF FSR,F
0052 0008 00105 RETURN
0053 00106 RCERROR
0053 1218 00107 BCF RCSTA,CREN
0054 1618 00108 BSF RCSTA,CREN
0055 0008 00109 RETURN
00110 END
MPASM 5.06.4 T232.ASM 7-27-2007 16:56:38 PAGE 4
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
BRGH 00000002
C 00000000
C1INV 00000004
C1OUT 00000006
C2INV 00000005
C2OUT 00000007
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
CCP2Y 00000004
CCPR1H 00000016
CCPR1L 00000015
CCPR2H 0000001C
CCPR2L 0000001B
CHS0 00000003
CHS1 00000004
CHS2 00000005
CIS 00000003
CKE 00000006
CKP 00000004
CM0 00000000
MPASM 5.06.4 T232.ASM 7-27-2007 16:56:38 PAGE 5
SYMBOL TABLE
LABEL VALUE
CM1 00000001
CM2 00000002
CMCON 0000009C
CMIE 00000006
CMIF 00000006
COUNT 00000020
CREN 00000004
CSRC 00000007
CVR0 00000000
CVR1 00000001
CVR2 00000002
CVR3 00000003
CVRCON 0000009D
CVREN 00000007
CVROE 00000006
CVRR 00000005
D 00000005
DATA_ADDRESS 00000005
DC 00000001
D_A 00000005
EEADR 0000010D
EEADRH 0000010F
EECON1 0000018C
EECON2 0000018D
EEDATA 0000010C
EEDATH 0000010E
EEIE 00000004
EEIF 00000004
EEPGD 00000007
END_RCADD 0X70
F 00000001
FERR 00000002
FSR 00000004
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -