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

📄 cc1100_pa_rx.asm

📁 RF Wireless is st_tr1100_pa. It uses CC1100 control everything its.
💻 ASM
📖 第 1 页 / 共 2 页
字号:

; PICBASIC PRO(TM) Compiler 2.50a, (c) 1998, 2007 microEngineering Labs, Inc. All Rights Reserved.  
_USED			EQU	1

	INCLUDE	"C:\PBP250A\18F458.INC"


; Define statements.
#define		OSC		 10

RAM_START       		EQU	00000h
RAM_END         		EQU	005FFh
RAM_BANKS       		EQU	00006h
BANK0_START     		EQU	00060h
BANK0_END       		EQU	000FFh
BANK1_START     		EQU	00100h
BANK1_END       		EQU	001FFh
BANK2_START     		EQU	00200h
BANK2_END       		EQU	002FFh
BANK3_START     		EQU	00300h
BANK3_END       		EQU	003FFh
BANK4_START     		EQU	00400h
BANK4_END       		EQU	004FFh
BANK5_START     		EQU	00500h
BANK5_END       		EQU	005FFh
BANKA_START     		EQU	00000h
BANKA_END       		EQU	0005Fh

FLAGS           		EQU	RAM_START + 000h
R0              		EQU	RAM_START + 001h
R1              		EQU	RAM_START + 003h
R2              		EQU	RAM_START + 005h
R3              		EQU	RAM_START + 007h
R4              		EQU	RAM_START + 009h
R5              		EQU	RAM_START + 00Bh
R6              		EQU	RAM_START + 00Dh
R7              		EQU	RAM_START + 00Fh
R8              		EQU	RAM_START + 011h
T1              		EQU	RAM_START + 013h
GOP             		EQU	RAM_START + 015h
RM1             		EQU	RAM_START + 016h
RM2             		EQU	RAM_START + 017h
RR1             		EQU	RAM_START + 018h
RR2             		EQU	RAM_START + 019h
RS1             		EQU	RAM_START + 01Ah
RS2             		EQU	RAM_START + 01Bh
PB01            		EQU	RAM_START + 01Ch
_Dtest           		EQU	RAM_START + 01Dh
_ADD_ID          		EQU	RAM_START + 01Fh
_B0              		EQU	RAM_START + 020h
_Cmd             		EQU	RAM_START + 021h
_cnt             		EQU	RAM_START + 022h
_D0              		EQU	RAM_START + 023h
_Dat             		EQU	RAM_START + 024h
_FIFO_BYTE       		EQU	RAM_START + 025h
_i               		EQU	RAM_START + 026h
_j               		EQU	RAM_START + 027h
_k               		EQU	RAM_START + 028h
_n               		EQU	RAM_START + 029h
_pkt             		EQU	RAM_START + 02Ah
_pkt_Len         		EQU	RAM_START + 02Bh
_STA_TUS         		EQU	RAM_START + 02Ch
_temp            		EQU	RAM_START + 02Dh
_tx_error        		EQU	RAM_START + 02Eh
_RX_buf          		EQU	RAM_START + 02Fh
_TX_buf          		EQU	RAM_START + 04Eh
_buffer          		EQU	RAM_START + 06Eh
_PORTL           		EQU	 PORTB
_PORTH           		EQU	 PORTC
_TRISL           		EQU	 TRISB
_TRISH           		EQU	 TRISC
#define _PA_En           	_PORTB??2
#define _MISO            	_PORTB??3
#define _Sck             	_PORTB??4
#define _MOSI            	_PORTB??5
#define _GDO0            	_PORTB??6
#define _CSn             	_PORTB??7
#define _TX              	_PORTC??6
#define _RX              	_PORTC??7
#define _Msb_Data        	 PB01, 001h
#define _MISO_Wait       	 PB01, 000h
#define _Tx_complete     	 PB01, 003h
#define _Rx_rcv          	 PB01, 002h
#define _PORTB??2        	 PORTB, 002h
#define _PORTB??3        	 PORTB, 003h
#define _PORTB??4        	 PORTB, 004h
#define _PORTB??5        	 PORTB, 005h
#define _PORTB??6        	 PORTB, 006h
#define _PORTB??7        	 PORTB, 007h
#define _PORTC??6        	 PORTC, 006h
#define _PORTC??7        	 PORTC, 007h
#define _Cmd??7          	_Cmd, 007h
#define _STA_TUS??0      	_STA_TUS, 000h
#define _Cmd??6          	_Cmd, 006h
#define _Dat??7          	_Dat, 007h
#define _Dat??0          	_Dat, 000h
#define _B0??0           	_B0, 000h

; Constants.
_T2400           		EQU	00000h
_T1200           		EQU	00001h
_T9600           		EQU	00002h
_T300            		EQU	00003h
_N2400           		EQU	00004h
_N1200           		EQU	00005h
_N9600           		EQU	00006h
_N300            		EQU	00007h
_OT2400          		EQU	00008h
_OT1200          		EQU	00009h
_OT9600          		EQU	0000Ah
_OT300           		EQU	0000Bh
_ON2400          		EQU	0000Ch
_ON1200          		EQU	0000Dh
_ON9600          		EQU	0000Eh
_ON300           		EQU	0000Fh
_MSBPRE          		EQU	00000h
_LSBPRE          		EQU	00001h
_MSBPOST         		EQU	00002h
_LSBPOST         		EQU	00003h
_LSBFIRST        		EQU	00000h
_MSBFIRST        		EQU	00001h
_CLS             		EQU	00000h
_HOME            		EQU	00001h
_BELL            		EQU	00007h
_BKSP            		EQU	00008h
_TAB             		EQU	00009h
_CR              		EQU	0000Dh
_UnitOn          		EQU	00012h
_UnitOff         		EQU	0001Ah
_UnitsOff        		EQU	0001Ch
_LightsOn        		EQU	00014h
_LightsOff       		EQU	00010h
_Dim             		EQU	0001Eh
_Bright          		EQU	00016h
_Burst           		EQU	00006h
_RW              		EQU	00007h
_R               		EQU	00001h
_W               		EQU	00000h
_single          		EQU	00000h
_Continu         		EQU	00001h
_CC1100_SRES     		EQU	00030h
_CC1100_SFSTXON  		EQU	00031h
_CC1100_SXOFF    		EQU	00032h
_CC1100_SCAL     		EQU	00033h
_CC1100_SRX      		EQU	00034h
_CC1100_STX      		EQU	00035h
_CC1100_SIDLE    		EQU	00036h
_CC1100_SAFC     		EQU	00037h
_CC1100_SWOR     		EQU	00038h
_CC1100_SPWD     		EQU	00039h
_CC1100_SFRX     		EQU	0003Ah
_CC1100_SFTX     		EQU	0003Bh
_CC1100_SWORRST  		EQU	0003Ch
_CC1100_SNOP     		EQU	0003Dh
_CC1100_PKTSTATUS		EQU	00038h
_CC1100_TXBYTES  		EQU	0003Ah
_CC1100_RXBYTES  		EQU	0003Bh
_CC1100_PATABLE  		EQU	0003Eh

; EEPROM data.


	INCLUDE	"CC1100~1.MAC"
	INCLUDE	"C:\PBP250A\PBPPIC18.LIB"

	MOVE?CB	000h, TRISA
	MOVE?CB	007h, ADCON1
	MOVE?CB	007h, CMCON
	MOVE?CB	04Bh, TRISB
	MOVE?CB	080h, TRISC
	PAUSE?C	003E8h
	SERPIN?T	_PORTC??6
	SERMODE?C	_T9600
	SEROUT?C	00Ah
	SEROUT?C	00Dh
	SEROUT?C	054h
	SEROUT?C	065h
	SEROUT?C	073h
	SEROUT?C	074h
	SEROUT?C	020h
	SEROUT?C	053h
	SEROUT?C	054h
	SEROUT?C	02Dh
	SEROUT?C	054h
	SEROUT?C	052h
	SEROUT?C	031h
	SEROUT?C	031h
	SEROUT?C	030h
	SEROUT?C	030h
	SEROUT?C	02Dh
	SEROUT?C	050h
	SEROUT?C	041h
	SEROUT?C	00Ah
	SEROUT?C	00Dh
	MOVE?CT	001h, _CSn
	MOVE?CT	000h, _Sck
	MOVE?CT	000h, _PA_En
	PAUSE?C	0C8h
	MOVE?CB	_CC1100_SRES, _Cmd
	GOSUB?L	_CMD_Write
	MOVE?CB	_CC1100_SNOP, _Cmd
	GOSUB?L	_CMD_Write
	MOVE?CB	000h, _i
	LABEL?L	L00002	
	CMPGT?BCL	_i, 02Eh, L00003
	LOOKUP?BCLB	_i, 02Fh, L00001, _Dat
	LURET?C	00Bh
	LURET?C	041h
	LURET?C	041h
	LURET?C	007h
	LURET?C	0D3h
	LURET?C	091h
	LURET?C	0FFh
	LURET?C	004h
	LURET?C	005h
	LURET?C	000h
	LURET?C	000h
	LURET?C	00Bh
	LURET?C	000h
	LURET?C	010h
	LURET?C	0B0h
	LURET?C	071h
	LURET?C	0C8h
	LURET?C	093h
	LURET?C	073h
	LURET?C	022h
	LURET?C	0F8h
	LURET?C	000h
	LURET?C	007h
	LURET?C	030h
	LURET?C	018h
	LURET?C	01Dh
	LURET?C	01Ch
	LURET?C	0C7h
	LURET?C	000h
	LURET?C	0B2h
	LURET?C	087h
	LURET?C	06Bh
	LURET?C	0F8h
	LURET?C	0B6h
	LURET?C	010h
	LURET?C	0EAh
	LURET?C	02Ah
	LURET?C	000h
	LURET?C	011h
	LURET?C	041h
	LURET?C	000h
	LURET?C	059h
	LURET?C	07Fh
	LURET?C	03Fh
	LURET?C	088h
	LURET?C	031h
	LURET?C	00Bh

	LABEL?L	L00001	
	MOVE?BB	_i, _Cmd
	GOSUB?L	_REG_Write
	NEXT?BCL	_i, 001h, L00002
	LABEL?L	L00003	
	MOVE?CB	03Fh, _Dat
	MOVE?CB	_CC1100_PATABLE, _Cmd
	GOSUB?L	_REG_Write

	LABEL?L	_main	
	MOVE?CB	_CC1100_SIDLE, _Cmd
	GOSUB?L	_CMD_Write
	MOVE?CB	_CC1100_SRX, _Cmd
	GOSUB?L	_CMD_Write

	LABEL?L	_Rx_test	
	MOVE?CT	001h, _Rx_rcv
	LABEL?L	L00004	
	CMPNE?TCL	_Rx_rcv, 001h, L00005
	GOSUB?L	_Rx_Byte
	GOTO?L	L00004
	LABEL?L	L00005	
	GOSUB?L	_Read_RxFIFO
	MOVE?CB	000h, _k
	LABEL?L	L00006	
	SUB?BCW	_pkt_Len, 003h, T1
	CMPGT?BWL	_k, T1, L00007
	SEROUT2DPIN?T	_TX
	SEROUT2MODE?C	054h
	SEROUT2PACE?C	000h
	AOUT?BBB	_RX_buf, _k, T1
	SEROUT2?B	T1
	NEXT?BCL	_k, 001h, L00006
	LABEL?L	L00007	
	MOVE?CB	_CC1100_SFRX, _Cmd
	GOSUB?L	_CMD_Write
	MOVE?CB	_CC1100_SIDLE, _Cmd
	GOSUB?L	_CMD_Write
	MOVE?CB	_CC1100_SRX, _Cmd
	GOSUB?L	_CMD_Write
	GOTO?L	_Rx_test

	LABEL?L	_CMD_Write	
	MOVE?CT	000h, _Sck
	MOVE?CT	000h, _CSn
	MOVE?CT	001h, _MISO_Wait
	LABEL?L	L00008	
	CMPNE?TCL	_MISO_Wait, 001h, L00009
	MOVE?TT	_MISO, _MISO_Wait
	GOTO?L	L00008
	LABEL?L	L00009	
	MOVE?CB	000h, _k
	LABEL?L	L00010	
	CMPGT?BCL	_k, 007h, L00011
	MOVE?TT	_Cmd??7, _MOSI
	MOVE?CT	001h, _Sck
	MOVE?TT	_MISO, _STA_TUS??0
	MOVE?CT	000h, _Sck
	CMPEQ?BCL	_k, 007h, L00012
	SHIFTL?BCB	_STA_TUS, 001h, _STA_TUS
	LABEL?L	L00012	
	SHIFTL?BCB	_Cmd, 001h, _Cmd
	NEXT?BCL	_k, 001h, L00010
	LABEL?L	L00011	
	MOVE?CT	001h, _CSn
	RETURN?	

	LABEL?L	_REG_Write	
	MOVE?CT	000h, _Sck
	MOVE?CT	000h, _CSn
	MOVE?CT	001h, _MISO_Wait
	LABEL?L	L00014	
	CMPNE?TCL	_MISO_Wait, 001h, L00015
	MOVE?TT	_MISO, _MISO_Wait
	GOTO?L	L00014
	LABEL?L	L00015	
	MOVE?CT	000h, _Cmd??7
	MOVE?CT	000h, _Cmd??6
	MOVE?CB	000h, _k
	LABEL?L	L00016	
	CMPGT?BCL	_k, 007h, L00017
	MOVE?TT	_Cmd??7, _MOSI
	MOVE?CT	001h, _Sck
	MOVE?TT	_MISO, _STA_TUS??0
	MOVE?CT	000h, _Sck
	CMPEQ?BCL	_k, 007h, L00018
	SHIFTL?BCB	_STA_TUS, 001h, _STA_TUS

⌨️ 快捷键说明

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