📄 hcs635.lst
字号:
MPASM 5.16 HCS635.ASM 4-16-2008 14:39:21 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
00002 ;
00003 ; MICROCHIP HCS635 CODE HOPPING ENCODER
00004 ; Can be assembled for 12F635, 16F636, or 16F639
00005 ; with or without encryption
00006 ; with pull-ups of pull-downs on switch inputs
00007 ;
00008 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
00009 ;
00010 ; VERSION 1.2:
00011 ;
00012 ; Prepared by Chuck Simmers for standard PIC12F635, PIC16F636, or
00013 ; PIC16F639 (AFE A.1) on APR 29 2005
00014 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
00015 ;
00016 ; Eariler Versions:
00017 ;
00018 ; Prepared by Myron Loewen, based on an old HCS365 code revision
00019 ;
00020 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
00021
00022 ;---------------------------------------------------------------------------
00023 ; Conditional assembly options
00024
00025 ; Select Processor - Enable only one below
00026 ;#DEFINE P12F635 1 ; SET FOR CONDITIONAL COMPILE for desired processor
00027 ;#DEFINE P16F636 1 ; SET FOR CONDITIONAL COMPILE
00028 #DEFINE P16F639 1 ; SET FOR CONDITIONAL COMPILE
00029
00030 ; Select PORTA pushbuttons to be connected to ground with internal pull-ups
00031 ; OR, connected to VCC with internal pull-downs
00032 #DEFINE pullup 1 ; Set to select pull-ups on PORT A. For pull-downs, comment out
00033
00034 ; Since the In-Circuit-Emulator can not properly handle SLEEP
00035 ;#DEFINE ICEmul 1 ; Is set, device will not SLEEP, but will loop forever
00036
00037 ; Select option not to Encrypt
00038 #define NoEncryption 1
00039 ;---------------------------------------------------------------------------
Warning[205]: Found directive in column 1. (page)
MPASM 5.16 HCS635.ASM 4-16-2008 14:39:21 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00040 page
00041 LIST R=DEC
00042
00043 IFDEF P12F635
00044 processor P12F635
00045 #include P12F635.INC
00046 #define ROMend 0x3FF
00047 ENDIF
00048
00049 IFDEF P16F636
00050 processor P16F636
00051 #include P16F636.INC
00052 #define ROMend 0x7FF
00053 ENDIF
00054
00055 IFDEF P16F639
00056 processor P16F639
00057 #include P16F636.INC
00001 LIST
00002 ; P16F636.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
Message[301]: MESSAGE: (Processor-header file mismatch. Verify selected processor.)
00317 LIST
00058 #define ROMend 0x7FF
00059 ENDIF
00060
00061 IFDEF P16F639
2007 3FD4 00062 __CONFIG _MCLRE_OFF & _INTRC_OSC_NOCLKOUT & _WDT_OFF
00063 ELSE
00064 __CONFIG _MCLRE_OFF & _INTRC_OSC_NOCLKOUT & _WDT_OFF & _WUREN_ON
00065 ENDIF
00066
00067 ERRORLEVEL 0, -205,-224,-302,-305,-306
00068 ; Message, Warning and Error Printed
00069 ; Ignore [224] => Use Of This Instruction is not recommended
00070 ; Ignore [302] => Register in operand not in bank 0.
00071 ; Ignore [306] => Crossing page boundary - ensure ...
00072
00000001 00073 ON EQU 1
00000000 00074 OFF EQU 0
00075
MPASM 5.16 HCS635.ASM 4-16-2008 14:39:21 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00076 page
00077 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
00078 ; REGISTER Bank 0:
00079 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
00080
00081 ; GENERAL PURPOSE REGISTERS
00082 ; GLOBAL WORK REGISTERS
00083 IFDEF P16F639
00084 cblock 0x20
00000020 00085 AFEflags ; AFE system flags
00000021 00086 INNER ; register used in DELAY routine
00000022 00087 OUTER ; register used in DELAY routine
00000023 00088 Delay_Delta ; register used in Delay routine
00000024 00089 SPIBufL
00000025 00090 SPIBufH
00000026 00091 TEMP1
00000027 00092 TEMP2
00000028 00093 COUNTER
00000029 00094 RXTX_REG
0000002A 00095 Count00
00096 endc
00097 #define AFEOK AFEflags,0 ; AFE is present and functional
00098 #define ValidLFIFF AFEflags,1
00099 ENDIF
00100
00101 cblock 0x58
00000058 00102 FLAGS ; USER FLAG REGISTER
00000059 00103 TX_CFG0 ; TRANSMITTER CONFIGURATION BYTE #0
0000005A 00104 BUTTON:2 ; CURRENT BUTTON VALUE, MSB SET ON REPEATED BUTTON PRESS
0000005C 00105 NSR8 ; EXTRA SPACE FOR SHIFT REGISTER
0000005D 00106 CNT0 ; LOOP COUNTER #0
0000005E 00107 CNT1 ; LOOP COUNTER #1
0000005F 00108 CNT2 ; LOOP COUNTER #2
00000060 00109 TX_CFG1 ; TRANSMITTER CONFIGURATION BYTE #0
00000061 00110 SYSCFG0 ; SYSTEM CONFIGURATION BYTE #0
00000062 00111 SYSCFG1 ; SYSTEM CONFIGURATION BYTE #1
00112
00000063 00113 B_MASK ; BUTTON MASK REGISTER
00000064 00114 TE_COMP ; TE DELAY OVERHEAD COMPENSATION REGISTER
00000065 00115 CRC ; MSB AND LSB OF CRC REGISTER
00000066 00116 QUEUE ; QUEUE BIT COUNTER
00117
00000067 00118 CLK_50 ; 50ms EVENT CLOCK COUNTER
00000068 00119 CLK_HI ; OVERFLOW FOR CLK_50 COUNTER
00000069 00120 CLK_LED ; LED TIMEOUT COUNTER
0000006A 00121 TEMP ; TEMPORARY STORAGE SPACE
00122
0000006B 00123 CSR5 ; FALLING EDGE BUTTON DEBOUNCE REUSED FOR LFTE
0000006C 00124 CSR6 ; TRANSMISSION BITS REUSED TO MEASURE LF BIT WIDTHS
0000006D 00125 COMP ; TE COMPENSATION VALUE
0000006E 00126 CNT3 ; LOOP COUNTER #3
00127
0000006F 00128 ButtonImage; Real button positions
MPASM 5.16 HCS635.ASM 4-16-2008 14:39:21 PAGE 4
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00129 endc
00130
00131 cblock 0x70 ;Shared Bank0-1-2-3 addresses
00000070 00132 VLOWLEVEL ; TEMP LOCATION TO STORE EEPROM VLOW LATCH SETTING
00000071 00133 UserDefined:2
00134 endc
00135
00136 cblock 0x78
00000078 00137 NSR0 ; KEELOQ ALGORTIHM CODE SHIFT REGISTERS
00000079 00138 NSR1 ; KEELOQ ALGORTIHM CODE SHIFT REGISTERS
0000007A 00139 NSR2 ; KEELOQ ALGORTIHM CODE SHIFT REGISTERS
0000007B 00140 NSR3 ; KEELOQ ALGORTIHM CODE SHIFT REGISTERS
0000007C 00141 NSR4 ; KEELOQ ALGORTIHM KEY REGISTER
0000007D 00142 NSR5 ; TRANSMISSION SHIFT REGISTER
0000007E 00143 NSR6 ; TRANSMISSION SHIFT REGISTER
0000007F 00144 NSR7 ; TRANSMISSION SHIFT REGISTER
00145 endc
00146
00147 #define COUNTA NSR5 ; COUNTER BITS 21-16 MSB
00148 #define COUNTB NSR4 ; COUNTER BITS 15-8
00149 #define COUNTC NSR3 ; COUNTER BITS 7-0 LSB
00150 #define CHECKBC NSR2 ; B XOR C CHECKSUM
00151 #define CHECKAB NSR1 ; A XOR B CHECKSUM
00152 #define CHECKAC NSR0 ; A XOR C CHECKSUM
00153
MPASM 5.16 HCS635.ASM 4-16-2008 14:39:21 PAGE 5
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00154 page
00155 ; ********* PORT BIT DEFINITIONS **************************
00156 IFDEF P12F635
00157 ; _________
00158 ; Vdd | 1 8 | Vss
00159 ; S0 | 2 7 | LEDn 12F635
00160 ; S1 | 3 6 | DATA
00161 ; S2 | 4 5 | S3/SHIFT/RFEN
00162 ; ---------
00163 #define LED PORTA,0 ; LED LINE
00164 #define RFOUT PORTA,1 ; RF DATA OUTPUT
00165 #define S0 PORTA,5 ; S0 BUTTON INPUT
00166 #define S1 PORTA,4 ; S1 BUTTON INPUT
00167 #define S2 PORTA,3 ; S2 BUTTON INPUT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -