📄 nrf24l01.lst
字号:
"File: NRF24L01.ASM Holtek Cross-Assembler Version 2.86 Page 16
884 004A 009F mov TBHP,a
885 004B 0F30 mov a,30h
886 004C 00B6 MOV SBDR,a
887 004D 2800 R jmp $6
888 004E ;----------------------------------
889 004E $3:
890 004E 3800 E snz TX_ADDRESS_Select.3
891 004F 2800 R jmp $4
892 0050
893 0050 0F00 R mov a,low TX_to_P3_ADDR_Table
894 0051 0087 mov TBLP,a
895 0052 0F00 R mov a,high TX_to_P3_ADDR_Table
896 0053 009F mov TBHP,a
897 0054 0F30 mov a,30h
898 0055 00B6 MOV SBDR,a
899 0056 2800 R jmp $6
900 0057 ;----------------------------------
901 0057 $4:
902 0057 3800 E snz TX_ADDRESS_Select.4
903 0058 2800 R jmp $6
904 0059
905 0059 0F00 R mov a,low TX_to_P4_ADDR_Table
906 005A 0087 mov TBLP,a
907 005B 0F00 R mov a,high TX_to_P4_ADDR_Table
908 005C 009F mov TBHP,a
909 005D 0F30 mov a,30h
910 005E 00B6 MOV SBDR,a
911 005F 2800 R jmp $6
912 0060 ;----------------------------------
913 0060 $5:
914 0060 3800 E snz TX_ADDRESS_Select.5
915 0061 0003 ret
916 0062
917 0062 0F00 R mov a,low TX_to_P5_ADDR_Table
918 0063 0087 mov TBLP,a
919 0064 0F00 R mov a,high TX_to_P5_ADDR_Table
920 0065 009F mov TBHP,a
921 0066 0F30 mov a,30h
922 0067 00B6 MOV SBDR,a
923 0068 2800 R jmp $6
924 0069 ;----------------------------------
925 0069 ;------ Write adress value --------
926 0069 $6:
927 0069 3835 snz TRF
928 006A 2800 R jmp $6
929 006B 3435 CLR TRF
930 006C
931 006C ADDR_loop_TX:
932 006C 1D00 E TABRDC table_data
933 006D KMOV SBDR,table_data
934 006F $7:
935 006F 3835 snz TRF
936 0070 2800 R jmp $7
937 0071 1487 inc TBLP
938 0072 3435 CLR TRF
939 0073 1780 E SDZ temp_num
940 0074 2800 R jmp ADDR_loop_TX
941 0075
942 0075 3535 clr CSEN ;End SPI operation
943 0076 3635 clr SBEN ;SPI Disable
"File: NRF24L01.ASM Holtek Cross-Assembler Version 2.86 Page 17
944 0077
945 0077 0003 ret
946 0078
947 0078 ;==========================================================
948 0078
949 0078 nRF_RX_ADDR_WRITE:
950 0078 KMOV temp_num,Address_Size ;For P0 P1 Address loop 5 times
951 007A
952 007A 2000 R call SPI_EN
953 007B
954 007B 3800 E snz RX_ADDRESS_Select.0
955 007C 2800 R jmp $1
956 007D
957 007D 3400 E clr RX_ADDRESS_Select.0
958 007E 0F00 R mov a,low RX_P0_ADDR_Table
959 007F 0087 mov TBLP,a
960 0080 0F00 R mov a,high RX_P0_ADDR_Table
961 0081 009F mov TBHP,a
962 0082 0F2A mov a,02Ah
963 0083 00B6 MOV SBDR,a
964 0084 2800 R jmp $6
965 0085 ;----------------------------------
966 0085 $1:
967 0085 3800 E snz RX_ADDRESS_Select.1
968 0086 2800 R jmp $2
969 0087
970 0087 3400 E clr RX_ADDRESS_Select.1
971 0088 0F00 R mov a,low RX_P1_ADDR_Table
972 0089 0087 mov TBLP,a
973 008A 0F00 R mov a,high RX_P1_ADDR_Table
974 008B 009F mov TBHP,a
975 008C 0F2B mov a,02Bh
976 008D 00B6 MOV SBDR,a
977 008E 2800 R jmp $6
978 008F ;----------------------------------
979 008F $2:
980 008F 3800 E snz RX_ADDRESS_Select.2
981 0090 2800 R jmp $3
982 0091
983 0091 3400 E clr RX_ADDRESS_Select.2
984 0092 KMOV temp_num,01h
985 0094 0F00 R mov a,low RX_P2_ADDR_Table
986 0095 0087 mov TBLP,a
987 0096 0F00 R mov a,high RX_P2_ADDR_Table
988 0097 009F mov TBHP,a
989 0098 0F2C mov a,02Ch
990 0099 00B6 MOV SBDR,a
991 009A 2800 R jmp $6
992 009B ;----------------------------------
993 009B $3:
994 009B 3800 E snz RX_ADDRESS_Select.3
995 009C 2800 R jmp $4
996 009D
997 009D 3400 E clr RX_ADDRESS_Select.3
998 009E KMOV temp_num,01h
999 00A0 0F00 R mov a,low RX_P3_ADDR_Table
1000 00A1 0087 mov TBLP,a
1001 00A2 0F00 R mov a,high RX_P3_ADDR_Table
1002 00A3 009F mov TBHP,a
1003 00A4 0F2D mov a,2Dh
"File: NRF24L01.ASM Holtek Cross-Assembler Version 2.86 Page 18
1004 00A5 00B6 MOV SBDR,a
1005 00A6 2800 R jmp $6
1006 00A7 ;----------------------------------
1007 00A7 $4:
1008 00A7 3800 E snz RX_ADDRESS_Select.4
1009 00A8 2800 R jmp $5
1010 00A9
1011 00A9 3400 E clr RX_ADDRESS_Select.4
1012 00AA KMOV temp_num,01h
1013 00AC 0F00 R mov a,low RX_P4_ADDR_Table
1014 00AD 0087 mov TBLP,a
1015 00AE 0F00 R mov a,high RX_P4_ADDR_Table
1016 00AF 009F mov TBHP,a
1017 00B0 0F2E mov a,2Eh
1018 00B1 00B6 MOV SBDR,a
1019 00B2 2800 R jmp $6
1020 00B3 ;----------------------------------
1021 00B3 $5:
1022 00B3 3800 E snz RX_ADDRESS_Select.5
1023 00B4 0003 ret
1024 00B5
1025 00B5 3400 E clr RX_ADDRESS_Select.5
1026 00B6 KMOV temp_num,01h
1027 00B8 0F00 R mov a,low RX_P5_ADDR_Table
1028 00B9 0087 mov TBLP,a
1029 00BA 0F00 R mov a,high RX_P5_ADDR_Table
1030 00BB 009F mov TBHP,a
1031 00BC 0F2F mov a,2Fh
1032 00BD 00B6 MOV SBDR,a
1033 00BE 2800 R jmp $6
1034 00BF
1035 00BF ;----------------------------------
1036 00BF ;------ Write adress value --------
1037 00BF $6:
1038 00BF 3835 snz TRF
1039 00C0 2800 R jmp $6
1040 00C1 3435 CLR TRF
1041 00C2
1042 00C2 ADDR_loop_RX:
1043 00C2 1D00 E TABRDC table_data
1044 00C3 KMOV SBDR,table_data
1045 00C5 $7:
1046 00C5 3835 snz TRF
1047 00C6 2800 R jmp $7
1048 00C7 1487 inc TBLP
1049 00C8 3435 CLR TRF
1050 00C9 1780 E SDZ temp_num
1051 00CA 2800 R jmp ADDR_loop_RX
1052 00CB
1053 00CB 3535 clr CSEN ;End SPI operation
1054 00CC 3635 clr SBEN ;SPI Disable
1055 00CD
1056 00CD 0003 ret
1057 00CE
1058 00CE
1059 00CE ;***************************************************************
1060 00CE ; nRF24L01 TX/RX address read.
1061 00CE ; 1.How to use:
1062 00CE ; a.set RX_ADDRESS_Select.BitNum
1063 00CE ; b.call nRF_RX_ADDR_READ
"File: NRF24L01.ASM Holtek Cross-Assembler Version 2.86 Page 19
1064 00CE ; c.clr RX_ADDRESS_Select.BitNum
1065 00CE ;
1066 00CE ;***************************************************************
1067 00CE
1068 00CE nRF_RX_ADDR_READ:
1069 00CE kmov temp_num,Address_Size
1070 00D0
1071 00D0 2000 R call SPI_EN
1072 00D1
1073 00D1 kmov mp1,(OFFSET nRF_ADDR_value)
1074 00D3 3800 E snz RX_ADDRESS_Select.0 ;RX_ADDR_P0(0AH)
1075 00D4 2800 R jmp $1
1076 00D5
1077 00D5 3400 E clr RX_ADDRESS_Select.0
1078 00D6 0F0A mov a,0Ah
1079 00D7 00B6 MOV SBDR,a
1080 00D8 2800 R jmp $7
1081 00D9 ;----------------------------------
1082 00D9 $1:
1083 00D9 3800 E snz RX_ADDRESS_Select.1 ;RX_ADDR_P1(0BH)
1084 00DA 2800 R jmp $2
1085 00DB
1086 00DB 3400 E clr RX_ADDRESS_Select.1
1087 00DC 0F0B mov a,0BH
1088 00DD 00B6 MOV SBDR,a
1089 00DE 2800 R jmp $7
1090 00DF ;----------------------------------
1091 00DF $2:
1092 00DF 3800 E snz RX_ADDRESS_Select.2 ;RX_ADDR_P2(0CH)
1093 00E0 2800 R jmp $3
1094 00E1
1095 00E1 3400 E clr RX_ADDRESS_Select.2
1096 00E2 0F0C mov a,0CH
1097 00E3 00B6 MOV SBDR,a
1098 00E4 kmov temp_num,01h
1099 00E6 2800 R jmp $7
1100 00E7 ;----------------------------------
1101 00E7 $3:
1102 00E7 3800 E snz RX_ADDRESS_Select.3 ;RX_ADDR_P3(0DH)
1103 00E8 2800 R jmp $4
1104 00E9
1105 00E9 3400 E clr RX_ADDRESS_Select.3
1106 00EA 0F0D mov a,0DH
1107 00EB 00B6 MOV SBDR,a
1108 00EC kmov temp_num,01h
1109 00EE 2800 R jmp $7
1110 00EF ;----------------------------------
1111 00EF $4:
1112 00EF 3800 E snz RX_ADDRESS_Select.4 ;RX_ADDR_P4(0EH)
1113 00F0 2800 R jmp $5
1114 00F1
1115 00F1 3400 E clr RX_ADDRESS_Select.4
1116 00F2 0F0E mov a,0EH
1117 00F3 00B6 MOV SBDR,a
1118 00F4 kmov temp_num,01h
1119 00F6 2800 R jmp $7
1120 00F7 ;----------------------------------
1121 00F7 $5:
1122 00F7 3800 E snz RX_ADDRESS_Select.5 ;RX_ADDR_P5(0FH)
1123 00F8 2800 R jmp $6
"File: NRF24L01.ASM Holtek Cross-Assembler Version 2.86 Page 20
1124 00F9
1125 00F9 3400 E clr RX_ADDRESS_Select.5
1126 00FA 0F0F mov a,0FH
1127 00FB 00B6 MOV SBDR,a
1128 00FC kmov temp_num,01h
1129 00FE 2800 R jmp $7
1130 00FF ;----------------------------------
1131 00FF $6:
1132 00FF 3800 E snz RX_ADDRESS_Select.6 ;TX_ADDR(10H)
1133 0100 0003 ret
1134 0101
1135 0101 3400 E clr RX_ADDRESS_Select.6
1136 0102 0F10 mov a,10H
1137 0103 00B6 MOV SBDR,a
1138 0104 2800 R jmp $7
1139 0105 ;----------------------------------
1140 0105 ;------ Read adress value --------
1141 0105 $7:
1142 0105 3835 snz TRF
1143 0106 2800 R jmp $7
1144 0107
1145 0107 kmov RX_FIFO_Status,SBDR
1146 0109 3435 CLR TRF
1147 010A
1148 010A read_addr_loop:
1149 010A
1150 010A KMOV SBDR,R1
1151 010C $8:
1152 010C 3835 snz TRF
1153 010D 2800 R jmp $8
1154 010E KMOV R1,SBDR
1155 0110 1483 inc MP1
1156 0111 3435 CLR TRF
1157 0112 1780 E SDZ temp_num
1158 0113 2800 R jmp read_addr_loop
1159 0114
1160 0114 3535 clr CSEN ;End SPI operation
1161 0115 3635 clr SBEN ;SPI Disable
1162 0116 0003 ret
1163 0117
1164 0117
1165 0117 ;*****************************************************************
1166 0117 ; switch MCU sys from 12MHz to 16MHz beside USB clock
1167 0117 ;*****************************************************************
1168 0117 MCU_16M:
1169 0117 0722 mov a,UCC
1170 0118 0D20 or a,020h
1171 0119 00A2 mov UCC,a
1172 011A 0003 ret
1173 011B
1174 011B Public TX_RX_Switch
1175 011B Public nRF_TX_Transmit
1176 011B Public nRF_RX_Receive
1177 011B Public nRF_initial
1178 011B Public nRF_int
1179 011B Public MCU_16M
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -