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

📄 发射.lis

📁 使用MEGA8控制RF01芯片,用射频915MHz发送四路AD采样的信号
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -