📄 发射.lis
字号:
01AC 00910400 lds R16,_ch0
01B0 9FDF rcall _Transmit
01B2 .dbline 182
01B2 ; Transmit(ch1);
01B2 00910300 lds R16,_ch1
01B6 9CDF rcall _Transmit
01B8 .dbline 183
01B8 ; Transmit(ch2);
01B8 00910200 lds R16,_ch2
01BC 99DF rcall _Transmit
01BE .dbline 184
01BE ; Transmit(ch3);
01BE 00910100 lds R16,_ch3
01C2 96DF rcall _Transmit
01C4 .dbline 186
01C4 ;
01C4 ; start_AD();
01C4 31DF rcall _start_AD
01C6 .dbline 187
01C6 ; }
01C6 L43:
01C6 .dbline 188
01C6 ; TCCR0|=0x01;//开定时器
01C6 83B7 in R24,0x33
01C8 8160 ori R24,1
01CA 83BF out 0x33,R24
01CC .dbline -2
01CC L42:
01CC .dbline 0 ; func end
01CC 0990 ld R0,y+
01CE 0FBE out 0x3f,R0
01D0 F991 ld R31,y+
01D2 E991 ld R30,y+
01D4 B991 ld R27,y+
01D6 A991 ld R26,y+
01D8 9991 ld R25,y+
01DA 8991 ld R24,y+
01DC 3991 ld R19,y+
01DE 2991 ld R18,y+
01E0 1991 ld R17,y+
01E2 0991 ld R16,y+
01E4 9990 ld R9,y+
01E6 8990 ld R8,y+
01E8 7990 ld R7,y+
01EA 6990 ld R6,y+
01EC 5990 ld R5,y+
01EE 4990 ld R4,y+
01F0 3990 ld R3,y+
01F2 2990 ld R2,y+
01F4 1990 ld R1,y+
01F6 0990 ld R0,y+
01F8 1895 reti
01FA .dbend
01FA .dbfunc e uart_init _uart_init fV
.even
01FA _uart_init::
01FA .dbline -1
01FA .dbline 193
01FA ; }
01FA ;
01FA ; /*USART初始化*/
01FA ; void uart_init(void)
01FA ; {
01FA .dbline 194
01FA ; UCSRA=0x00;
01FA 2224 clr R2
01FC 2BB8 out 0xb,R2
01FE .dbline 195
01FE ; UCSRB=(1<<RXEN)|(1<<TXEN); // 允许发送和接收
01FE 88E1 ldi R24,24
0200 8AB9 out 0xa,R24
0202 .dbline 196
0202 ; UCSRC=(1<<URSEL)|0x06; // 8bit,1stop
0202 86E8 ldi R24,134
0204 80BD out 0x20,R24
0206 .dbline 197
0206 ; UBRRL=(fosc/baud/16-1)%256; // 设置波特率寄存器低位字节
0206 89E1 ldi R24,25
0208 89B9 out 0x9,R24
020A .dbline 198
020A ; UBRRH=(fosc/baud/16-1)/256; // 设置波特率寄存器高位字节
020A 20BC out 0x20,R2
020C .dbline -2
020C L45:
020C .dbline 0 ; func end
020C 0895 ret
020E .dbend
020E .dbfunc e adc_init _adc_init fV
.even
020E _adc_init::
020E .dbline -1
020E .dbline 203
020E ; }
020E ;
020E ; /*AD变换初始化*/
020E ; void adc_init(void)
020E ; {
020E .dbline 204
020E ; DDRC=0x00;//PORTC INPUT
020E 2224 clr R2
0210 24BA out 0x14,R2
0212 .dbline 205
0212 ; adc_mux=0;
0212 20920000 sts _adc_mux,R2
0216 .dbline 206
0216 ; ADCSRA=0x00; //关ad
0216 26B8 out 0x6,R2
0218 .dbline 207
0218 ; ACSR = (1<<ACD); //关模拟比较器
0218 80E8 ldi R24,128
021A 88B9 out 0x8,R24
021C .dbline 208
021C ; ADCSRA|=0x06; //预分频1
021C 86B1 in R24,0x6
021E 8660 ori R24,6
0220 86B9 out 0x6,R24
0222 .dbline 210
0222 ;
0222 ; ADMUX = (1<<REFS0)|(1<<ADLAR)|(adc_mux&0x0f); //取VCC为参考值,AD0模拟变量输入
0222 822D mov R24,R2
0224 8F70 andi R24,15
0226 8066 ori R24,96
0228 87B9 out 0x7,R24
022A .dbline 211
022A ; ADCSRA|=0xC0; //AD转换启动
022A 86B1 in R24,0x6
022C 806C ori R24,192
022E 86B9 out 0x6,R24
0230 .dbline 212
0230 ; ch0=get_ad();
0230 F6DE rcall _get_ad
0232 00930400 sts _ch0,R16
0236 .dbline -2
0236 L46:
0236 .dbline 0 ; func end
0236 0895 ret
0238 .dbend
0238 .dbfunc e init_main _init_main fV
.even
0238 _init_main::
0238 .dbline -1
0238 .dbline 217
0238 ; }
0238 ;
0238 ; /*系统初始化*/
0238 ; void init_main(void)
0238 ; {
0238 .dbline 218
0238 ; uart_init();
0238 E0DF rcall _uart_init
023A .dbline 219
023A ; adc_init();
023A E9DF rcall _adc_init
023C .dbline 220
023C ; start_AD();
023C F5DE rcall _start_AD
023E .dbline 222
023E ;
023E ; MCUCR=0x00;
023E 2224 clr R2
0240 25BE out 0x35,R2
0242 .dbline 223
0242 ; GICR=0x00;
0242 2BBE out 0x3b,R2
0244 .dbline -2
0244 L47:
0244 .dbline 0 ; func end
0244 0895 ret
0246 .dbend
0246 .dbfunc e RFXX_PORT_INIT _RFXX_PORT_INIT fV
.even
0246 _RFXX_PORT_INIT::
0246 .dbline -1
0246 .dbline 228
0246 ; }
0246 ;
0246 ; /*发射芯片端口初始化*/
0246 ; void RFXX_PORT_INIT(void)
0246 ; {
0246 .dbline 229
0246 ; HI_SEL();
0246 C29A sbi 0x18,2
0248 .dbline 230
0248 ; HI_SDI();
0248 C39A sbi 0x18,3
024A .dbline 231
024A ; LOW_SCK();
024A C598 cbi 0x18,5
024C .dbline 232
024C ; SEL_OUTPUT();
024C BA9A sbi 0x17,2
024E .dbline 233
024E ; SDI_OUTPUT();
024E BB9A sbi 0x17,3
0250 .dbline 234
0250 ; SDO_INPUT();
0250 BC98 cbi 0x17,4
0252 .dbline 235
0252 ; SCK_OUTPUT();
0252 BD9A sbi 0x17,5
0254 .dbline -2
0254 L48:
0254 .dbline 0 ; func end
0254 0895 ret
0256 .dbend
0256 .dbfunc e main _main fV
.even
0256 _main::
0256 .dbline -1
0256 .dbline 240
0256 ; }
0256 ;
0256 ; /*主程序*/
0256 ; void main(void)
0256 ; {
0256 .dbline 241
0256 ; init_main();
0256 F0DF rcall _init_main
0258 .dbline 242
0258 ; RFXX_PORT_INIT();
0258 F6DF rcall _RFXX_PORT_INIT
025A .dbline 244
025A ;
025A ; RFXX_WRT_CMD(0xCC00); //执行状态寄存器命令
025A 00E0 ldi R16,52224
025C 1CEC ldi R17,204
025E 1ADF rcall _RFXX_WRT_CMD
0260 .dbline 245
0260 ; RFXX_WRT_CMD(0x9B61); //915频段
0260 01E6 ldi R16,39777
0262 1BE9 ldi R17,155
0264 17DF rcall _RFXX_WRT_CMD
0266 .dbline 246
0266 ; RFXX_WRT_CMD(0xA7D0); //A640=434MHz
0266 00ED ldi R16,42960
0268 17EA ldi R17,167
026A 14DF rcall _RFXX_WRT_CMD
026C .dbline 247
026C ; RFXX_WRT_CMD(0xD040); //RATE/2
026C 00E4 ldi R16,53312
026E 10ED ldi R17,208
0270 11DF rcall _RFXX_WRT_CMD
0272 .dbline 248
0272 ; RFXX_WRT_CMD(0xC823); //9.6kbps 23
0272 03E2 ldi R16,51235
0274 18EC ldi R17,200
0276 0EDF rcall _RFXX_WRT_CMD
0278 .dbline 249
0278 ; RFXX_WRT_CMD(0xC220); //使用位同步时钟
0278 00E2 ldi R16,49696
027A 12EC ldi R17,194
027C 0BDF rcall _RFXX_WRT_CMD
027E .dbline 250
027E ; RFXX_WRT_CMD(0xC001); //初始化完毕,关闭所有功能模块
027E 01E0 ldi R16,49153
0280 10EC ldi R17,192
0282 08DF rcall _RFXX_WRT_CMD
0284 .dbline 251
0284 ; PORTB|=(1<<RFXX_DATA);
0284 C19A sbi 0x18,1
0286 .dbline 252
0286 ; DDRB|=(1<<RFXX_DATA);//将PB1置为输出
0286 B99A sbi 0x17,1
0288 .dbline 254
0288 ;
0288 ; TIM0_init();
0288 37DF rcall _TIM0_init
028A L50:
028A .dbline 256
028A ;
028A ; while(1);
028A L51:
028A .dbline 256
028A FFCF rjmp L50
028C X13:
028C .dbline -2
028C L49:
028C .dbline 0 ; func end
028C 0895 ret
028E .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\915M\发射\发射.c
0000 _adc_mux::
0000 .blkb 1
0001 .dbsym e adc_mux _adc_mux c
0001 _ch3::
0001 .blkb 1
0002 .dbsym e ch3 _ch3 c
0002 _ch2::
0002 .blkb 1
0003 .dbsym e ch2 _ch2 c
0003 _ch1::
0003 .blkb 1
0004 .dbsym e ch1 _ch1 c
0004 _ch0::
0004 .blkb 1
0005 .dbsym e ch0 _ch0 c
0005 ; }
0005 ;
0005 ;
0005 ;
0005 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -