📄 can_ref.lst
字号:
MPASM 02.20.15 Intermediate CAN_REF.ASM 2-8-2000 13:27:59 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ;*******************************************************************
00002 ; Microchip CAN Reference Design
00003 ;
00004 ; Mike Richitelli
00005 ; Diversified Engineering
00006 ; 283 Indian River Road
00007 ; Orange, CT 06477
00008 ; (203)799-7875 fax(203)799-7892
00009 ; WWW.DIVERSIFIEDENGINEERING.NET
00010 ;
00011 ;*******************************************************************
00012 ;*******************************************************************
00013
00014 TITLE " CAN_Ref Design "
00015
00016 ;*******************************************************************
00017
00000001 00018 dVersion equ 1
00000005 00019 dRelease equ 5
00020
00021 ;======================================================================
00022 ; Transmits CAN message every 131 mSec. Message contains two data bytes
00023 ; that represent a 12 bit value with least significant byte
00024 ; sent first.
00025 ; Cycles between three outputs:
00026 ; Pot: Value goes from 0 to 0xFF0 as Pot is turned clockwise.
00027 ; ID is selected from DIP switches #3 and #4 as follows:
00028 ; #3 #4 ID
00029 ; 0 0 transmission disabled
00030 ; 0 1 0x100
00031 ; 1 0 0x200
00032 ; 1 1 0x300
00033 ;
00034 ; Push button switch: Switch open => 0, Switch closed => 0xFFF
00035 ; ID is Pot ID + 0x010
00036 ;
00037 ; CdS: Value goes from 0 to 0xFF0 as Pot is turned clockwise.
00038 ; ID is Pot ID + 0x020
00039 ;
00040 ; CAN messages received are assumed to be 12 bit data sent as two bytes,
00041 ; least significant byte first.
00042 ;
00043 ; The base ID for receiving CAN messages is specified by DIP
00044 ; switches #1 and #2:
00045 ; #1 #2 ID
00046 ; 0 0 0x000
00047 ; 0 1 0x100
00048 ; 1 0 0x200
00049 ; 1 1 0x300
00050 ;
00051 ; Lamp: If the message ID matches the ID selected by the DIP
00052 ; switches the 12 bit data is used to generate a PWM output
00053 ; where a 0 value gives a zero duty cycle and 0xFFF generates
MPASM 02.20.15 Intermediate CAN_REF.ASM 2-8-2000 13:27:59 PAGE 2
CAN_Ref Design
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00054 ; a 100% duty cycle. The lamp output is proportional to
00055 ; the duty cycle.
00056 ; ID is Base ID
00057 ;
00058 ; LED: On if value received is >= 0x800 and off if < 0x800.
00059 ; ID is Base ID + 0x010
00060 ;
00061 ;======================================================================
00062
00063 ;----- PIC16F876 Micro -----;
00064
00065 LIST P=16F876
00066 LIST r=dec,x=on,t=off
00067
00068 #include "P16F876.INC"
00001 LIST
00002 ; P16F876.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
00358 LIST
00069
2007 3F72 00070 __CONFIG _BODEN_ON&_CP_OFF&_WRT_ENABLE_ON&_PWRTE_ON&_WDT_OFF&_HS_OSC&_DEBUG_OFF&_CPD_OFF&_LVP_OFF
2000 0000 0001 0000 00071 __IDLOCS (dVersion<<8)|dRelease ; version: vvrr , vv- version, rr - release
0005
00072
00073 ;---------------------------;
00074
00075 #include "MACROS16.INC"
00001 ;Basic macros for PIC16C series
00002 ;6/20/98
00003
00004 #ifdef __16C77
00005 #define _COMMONBANK ; use common upper 16 bytes in 4 banks
00006 #endif
00007 #ifdef __16C76
00008 #define _COMMONBANK ; use common upper 16 bytes in 4 banks
00009 #endif
00010
00000001 00011 TRUE equ 1
00000000 00012 FALSE equ 0
00013
00014 ; Page 1 register definitions to avoid page warning
00015
00000001 00016 OPTION_REG_P EQU H'0081'-0x80
00000005 00017 TRISA_P EQU H'0085'-0x80
00000006 00018 TRISB_P EQU H'0086'-0x80
00000007 00019 TRISC_P EQU H'0087'-0x80
00000008 00020 TRISD_P EQU H'0088'-0x80
00000009 00021 TRISE_P EQU H'0089'-0x80
0000000C 00022 PIE1_P EQU H'008C'-0x80
0000000D 00023 PIE2_P EQU H'008D'-0x80
0000000E 00024 PCON_P EQU H'008E'-0x80
00000012 00025 PR2_P EQU H'0092'-0x80
00000013 00026 SSPADD_P EQU H'0093'-0x80
00000014 00027 SSPSTAT_P EQU H'0094'-0x80
MPASM 02.20.15 Intermediate CAN_REF.ASM 2-8-2000 13:27:59 PAGE 3
CAN_Ref Design
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00000018 00028 TXSTA_P EQU H'0098'-0x80
00000019 00029 SPBRG_P EQU H'0099'-0x80
0000001F 00030 ADCON1_P EQU H'009F'-0x80
00031
00032
00033
00034 ; Special register bit definition pairs
00035
00036 ; STATUS bit definitions
00037
00038 #define _C STATUS,0
00039 #define _DC STATUS,1
00040 #define _Z STATUS,2
00041 #define _PD STATUS,3
00042 #define _TO STATUS,4
00043 #define _RP0 STATUS,5
00044 #define _RP1 STATUS,6
00045 #define _IRP STATUS,7
00046
00047
00048 #define _INTE INTCON,INTE ; External interrupt enable
00049 #define _INTF INTCON,INTF ; External interrupt flag
00050 #define _RBIE INTCON,RBIE ; Port B pins 4-7 edge interrupt enable
00051 #define _RBIF INTCON,RBIF ; Port B pins 4-7 edge interrupt flag
00052 #define _T0IE INTCON,T0IE ; Timer 0 interrupt enable
00053 #define _T0IF INTCON,T0IF ; Timer 0 interrupt flag
00054
00055 #define _CCP1IE_P PIE1_P,CCP1IE ; Timer 1 compare int enable (page 1)
00056 #define _CCP1IF PIR1,CCP1IF ; Timer 1 compare int flag
00057
00058 #define _RCIE_P PIE1_P,RCIE ; async rec interrupt enable (page 1)
00059 #define _RCIF PIR1,RCIF ; async rec interrupt flag
00060
00061 #define _TXIE_P PIE1_P,TXIE ; async xmit interrupt enable (page 1)
00062 #define _TXIF PIR1,TXIF ; async xmit interrupt flag
00063
00064 #define _SSPIE_P PIE1_P,SSPIE ; SSP int enable (page 1)
00065 #define _SSPIF PIR1,SSPIE ; SSP interrupt flag
00066
00067 #define _TMR1IE_P PIE1_P,TMR1IE ; Timer 1 enable (page 1)
00068 #define _TMR1IF PIR1,TMR1IF ; Timer1 interrupt flag
00069
00070 #define _TMR2IE_P PIE1_P,TMR2IE ; Timer 2 enable (page 1)
00071 #define _TMR2IF PIR1,TMR2IF ; Timer2 interrupt flag
00072
00073 #ifdef _COMMONBANK ; use common upper 16 bytes in 4 banks
00074
00075 PAGE3 macro
00076 bsf PCLATH,4
00077 bsf PCLATH,3
00078 endm
00079
00080 PAGE2 macro
MPASM 02.20.15 Intermediate CAN_REF.ASM 2-8-2000 13:27:59 PAGE 4
CAN_Ref Design
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00081 bsf PCLATH,4
00082 bcf PCLATH,3
00083 endm
00084
00085 PAGE1 macro
00086 bcf PCLATH,4
00087 bsf PCLATH,3
00088 endm
00089
00090 PAGE0 macro
00091 bcf PCLATH,4
00092 bcf PCLATH,3
00093 endm
00094
00095
00096 BANK3 macro
00097 bsf STATUS,6
00098 bsf STATUS,5
00099 endm
00100
00101 BANK2 macro
00102 bsf STATUS,6
00103 bcf STATUS,5
00104 endm
00105
00106 BANK1 macro
00107 bcf STATUS,6
00108 bsf STATUS,5
00109 endm
00110
00111 BANK0 macro
00112 bcf STATUS,6
00113 bcf STATUS,5
00114 endm
00115
00116
00117 FSRBank23 macro
00118 bsf STATUS,7
00119 endm
00120
00121 FSRBank01 macro
00122 bcf STATUS,7
00123 endm
00124 #else
00125
00126
00127 PAGE1 macro
00128 bsf PCLATH,3
00129 endm
00130
00131 PAGE0 macro
00132 bcf PCLATH,3
00133 endm
MPASM 02.20.15 Intermediate CAN_REF.ASM 2-8-2000 13:27:59 PAGE 5
CAN_Ref Design
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00134
00135 BANK0 macro
00136 bcf STATUS,5 ; Select page 0
00137 endm
00138
00139 BANK1 macro
00140 bsf STATUS,5 ; Select page 1
00141 endm
00142 #endif
00143
00144 enableInt macro
00145 bsf INTCON,GIE
00146 endm
00147
00148 disableInt macro
00149 local Loop
00150 Loop bcf INTCON,GIE
00151 btfsc INTCON,GIE
00152 goto Loop
00153 endm
00154
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -