📄 spi_master.lst
字号:
0008 F0 MOVX @DPTR,A
; SOURCE LINE # 45
0009 A3 INC DPTR
000A F0 MOVX @DPTR,A
; SOURCE LINE # 46
000B 7470 MOV A,#070H
000D A3 INC DPTR
000E F0 MOVX @DPTR,A
; SOURCE LINE # 47
000F A3 INC DPTR
0010 F0 MOVX @DPTR,A
; SOURCE LINE # 48
0011 C200 R CLR rxbuf_full
; SOURCE LINE # 49
0013 C200 R CLR txbuf_full
; SOURCE LINE # 50
0015 D200 R SETB rxbuf_empty
; SOURCE LINE # 51
0017 D200 R SETB txbuf_empty
0019 020000 R LJMP EH_NINR?C
; FUNCTION reset_pointers (END)
; FUNCTION int2_isr (BEGIN)
; SOURCE LINE # 59
0000 120000 R LCALL SH_INR?C
0003 120000 R LCALL stop_spi
0006 020000 R LJMP EH_INR?C
; FUNCTION int2_isr (END)
; FUNCTION int3_isr (BEGIN)
; SOURCE LINE # 64
0000 120000 R LCALL SH_INR?C
; SOURCE LINE # 63
0003 120000 R LCALL init_spi_slave
; SOURCE LINE # 64
0006 D2E8 SETB EX2
0008 020000 R LJMP EH_INR?C
; FUNCTION int3_isr (END)
; FUNCTION _rxbuf_write (BEGIN)
; SOURCE LINE # 79
0000 120000 R LCALL SH_NINR?C
0003 900000 R MOV DPTR,#in_data
0006 EF MOV A,R7
0007 F0 MOVX @DPTR,A
; SOURCE LINE # 71
0008 30000B R JNB rxbuf_full,?ELSE3
; SOURCE LINE # 72
000B 7B05 MOV R3,#005H
000D 7A00 R MOV R2,#HIGH(?STR?SPI_MASTER?BASE)
000F 7900 R MOV R1,#LOW(?STR?SPI_MASTER?BASE)
0011 120000 R LCALL ?printf
0014 8023 SJMP ?NXT7
0016 ?ELSE3:
; SOURCE LINE # 75
0016 900000 R MOV DPTR,#in_data
0019 E0 MOVX A,@DPTR
001A FA MOV R2,A
001B 900000 R MOV DPTR,#rxhead
001E E0 MOVX A,@DPTR
001F F8 MOV R0,A
0020 A602 MOV @R0,AR2
; SOURCE LINE # 76
0022 E0 MOVX A,@DPTR
0023 04 INC A
0024 F0 MOVX @DPTR,A
; SOURCE LINE # 77
0025 C200 R CLR rxbuf_empty
; SOURCE LINE # 78
0027 B47003 CJNE A,#070H,?NXT8
002A 7460 MOV A,#060H
002C F0 MOVX @DPTR,A
002D ?NXT8:
; SOURCE LINE # 79
002D 900000 R MOV DPTR,#rxhead
0030 E0 MOVX A,@DPTR
0031 FA MOV R2,A
0032 A3 INC DPTR
0033 E0 MOVX A,@DPTR
0034 B50202 CJNE A,AR2,?NXT7
0037 D200 R SETB rxbuf_full
0039 ?NXT7:
0039 020000 R LJMP EH_NINR?C
; FUNCTION _rxbuf_write (END)
; FUNCTION rxbuf_read (BEGIN)
; SOURCE LINE # 95
0000 120000 R LCALL SH_NINR?C
0003 ?WHILE1:
; SOURCE LINE # 87
0003 300002 R JNB rxbuf_empty,?NXT13
0006 80FB SJMP ?WHILE1
0008 ?NXT13:
; SOURCE LINE # 88
0008 C2DD CLR EAI
; R3 is assigned to tmp_data
; SOURCE LINE # 89
000A 900000 R MOV DPTR,#rxtail
000D E0 MOVX A,@DPTR
000E F8 MOV R0,A
000F 8603 MOV AR3,@R0
; SOURCE LINE # 90
0011 E0 MOVX A,@DPTR
0012 04 INC A
0013 F0 MOVX @DPTR,A
; SOURCE LINE # 91
0014 C200 R CLR rxbuf_full
; SOURCE LINE # 92
0016 B47003 CJNE A,#070H,?NXT14
0019 7460 MOV A,#060H
001B F0 MOVX @DPTR,A
001C ?NXT14:
; SOURCE LINE # 93
001C 900000 R MOV DPTR,#rxtail
001F E0 MOVX A,@DPTR
0020 FA MOV R2,A
0021 900000 R MOV DPTR,#rxhead
0024 E0 MOVX A,@DPTR
0025 B50202 CJNE A,AR2,?NXT15
0028 D200 R SETB rxbuf_empty
002A ?NXT15:
; SOURCE LINE # 94
002A D2DD SETB EAI
; SOURCE LINE # 95
002C 8B07 MOV AR7,R3
002E 020000 R LJMP EH_NINR?C
; FUNCTION rxbuf_read (END)
; FUNCTION _txbuf_write (BEGIN)
; SOURCE LINE # 108
0000 120000 R LCALL SH_NINR?C
; Register R7 is assigned to parameter in_data
0003 ?WHILE3:
; SOURCE LINE # 101
0003 300002 R JNB txbuf_full,?NXT19
0006 80FB SJMP ?WHILE3
0008 ?NXT19:
; SOURCE LINE # 102
0008 C2DD CLR EAI
; SOURCE LINE # 103
000A 900000 R MOV DPTR,#txhead
000D E0 MOVX A,@DPTR
000E F8 MOV R0,A
000F A607 MOV @R0,AR7
; SOURCE LINE # 104
0011 E0 MOVX A,@DPTR
0012 04 INC A
0013 F0 MOVX @DPTR,A
; SOURCE LINE # 105
0014 C200 R CLR txbuf_empty
; SOURCE LINE # 106
0016 B48003 CJNE A,#080H,?NXT20
0019 7470 MOV A,#070H
001B F0 MOVX @DPTR,A
001C ?NXT20:
; SOURCE LINE # 107
001C 900000 R MOV DPTR,#txhead
001F E0 MOVX A,@DPTR
0020 FA MOV R2,A
0021 A3 INC DPTR
0022 E0 MOVX A,@DPTR
0023 B50202 CJNE A,AR2,?NXT21
0026 D200 R SETB txbuf_full
0028 ?NXT21:
; SOURCE LINE # 108
0028 D2DD SETB EAI
002A 020000 R LJMP EH_NINR?C
; FUNCTION _txbuf_write (END)
; FUNCTION txbuf_read (BEGIN)
; SOURCE LINE # 125
0000 120000 R LCALL SH_NINR?C
; SOURCE LINE # 114
0003 74FF MOV A,#0FFH
0005 900000 R MOV DPTR,#tmp_data
0008 F0 MOVX @DPTR,A
; SOURCE LINE # 115
0009 30000B R JNB txbuf_empty,?ELSE17
; SOURCE LINE # 116
000C 7B05 MOV R3,#005H
000E 7A00 R MOV R2,#HIGH(?STR?SPI_MASTER?BASE + 01FH)
0010 7900 R MOV R1,#LOW(?STR?SPI_MASTER?BASE + 01FH)
0012 120000 R LCALL ?printf
0015 8026 SJMP ?NXT25
0017 ?ELSE17:
; SOURCE LINE # 119
0017 900000 R MOV DPTR,#txtail
001A E0 MOVX A,@DPTR
001B F8 MOV R0,A
001C E6 MOV A,@R0
001D 900000 R MOV DPTR,#tmp_data
0020 F0 MOVX @DPTR,A
; SOURCE LINE # 120
0021 900000 R MOV DPTR,#txtail
0024 E0 MOVX A,@DPTR
0025 04 INC A
0026 F0 MOVX @DPTR,A
; SOURCE LINE # 121
0027 C200 R CLR txbuf_full
; SOURCE LINE # 122
0029 B48003 CJNE A,#080H,?NXT26
002C 7470 MOV A,#070H
002E F0 MOVX @DPTR,A
002F ?NXT26:
; SOURCE LINE # 123
002F 900000 R MOV DPTR,#txtail
0032 E0 MOVX A,@DPTR
0033 FA MOV R2,A
0034 900000 R MOV DPTR,#txhead
0037 E0 MOVX A,@DPTR
0038 B50202 CJNE A,AR2,?NXT25
003B D200 R SETB txbuf_empty
003D ?NXT25:
; SOURCE LINE # 125
003D 900000 R MOV DPTR,#tmp_data
0040 E0 MOVX A,@DPTR
0041 FF MOV R7,A
0042 020000 R LJMP EH_NINR?C
; FUNCTION txbuf_read (END)
; FUNCTION init_spi_slave (BEGIN)
; SOURCE LINE # 137
0000 120000 R LCALL SH_NINR?C
; SOURCE LINE # 129
0003 75AED0 MOV P1DDRL,#0D0H
; SOURCE LINE # 130
0006 75B430 MOV P3DDRH,#030H
; SOURCE LINE # 131
0009 53F1FE ANL PDCON,#0FEH
; SOURCE LINE # 132
000C 759A00 MOV SPICON,#000H
; SOURCE LINE # 133
000F 120000 R LCALL reset_pointers
; SOURCE LINE # 134
0012 759B00 MOV SPIDATA,#000H
; SOURCE LINE # 135
0015 75A604 MOV AIE,#004H
; SOURCE LINE # 136
0018 C2DC CLR AI
; SOURCE LINE # 137
001A D2DD SETB EAI
001C 020000 R LJMP EH_NINR?C
; FUNCTION init_spi_slave (END)
; FUNCTION stop_spi (BEGIN)
; SOURCE LINE # 145
0000 120000 R LCALL SH_NINR?C
; SOURCE LINE # 141
0003 75AE00 MOV P1DDRL,#000H
; SOURCE LINE # 142
0006 75B400 MOV P3DDRH,#000H
; SOURCE LINE # 143
0009 43F101 ORL PDCON,#001H
; SOURCE LINE # 144
000C 7590FF MOV P1,#0FFH
; SOURCE LINE # 145
000F 75B0FF MOV P3,#0FFH
0012 020000 R LJMP EH_NINR?C
; FUNCTION stop_spi (END)
; FUNCTION init_spi_master (BEGIN)
; SOURCE LINE # 155
0000 120000 R LCALL SH_NINR?C
; SOURCE LINE # 149
0003 D291 SETB SSN
; SOURCE LINE # 150
0005 75AED4 MOV P1DDRL,#0D4H
; SOURCE LINE # 151
0008 75B410 MOV P3DDRH,#010H
; SOURCE LINE # 152
000B 53F1FE ANL PDCON,#0FEH
; SOURCE LINE # 153
000E 759A00 MOV SPICON,#000H
; SOURCE LINE # 154
0011 C2B6 CLR SCLK
; SOURCE LINE # 155
0013 120000 R LCALL reset_pointers
0016 020000 R LJMP EH_NINR?C
; FUNCTION init_spi_master (END)
; FUNCTION _spim_send_recv_data (BEGIN)
; SOURCE LINE # 162
0000 120000 R LCALL SH_NINR?C
; Register R7 is assigned to parameter tx_data
; R6 is assigned to k
0003 120000 R LCALL _spim_send_recv_byte
0006 120000 R LCALL _rxbuf_write
0009 020000 R LJMP EH_NINR?C
; FUNCTION _spim_send_recv_data (END)
; FUNCTION adc_spi_dacout (BEGIN)
; SOURCE LINE # 191
0000 120000 R LCALL SH_NINR?C
; SOURCE LINE # 175
0003 120000 R LCALL unipolar
0006 EE MOV A,R6
0007 900000 R MOV DPTR,#data_value
000A F0 MOVX @DPTR,A
000B A3 INC DPTR
000C EF MOV A,R7
000D F0 MOVX @DPTR,A
; SOURCE LINE # 176
000E C290 CLR ADC_CS
; SOURCE LINE # 177
0010 D291 SETB SSN
; SOURCE LINE # 178
0012 C291 CLR SSN
; SOURCE LINE # 181
0014 E4 CLR A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -