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

📄 twimain.lis

📁 PTR8000无线通信模块的单片机控制程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 009C                   .dbline 0 ; func end
 009C 0895              ret
 009E                   .dbend
 009E                   .dbfunc e PTR8_TX _PTR8_TX fV
                        .even
 009E           _PTR8_TX::
 009E                   .dbline -1
 009E                   .dbline 290
 009E           ; //***************************************************************************
 009E           ; 
 009E           ; /*    函数名:        PTR8_TX
 009E           ;       功能说明:将PTR8置为发送状态。
 009E           ;       参数说明:无
 009E           ;       返回值:        无
 009E           ;       函数作者:Haibo YU
 009E           ;       版本号:        1.0
 009E           ;       创建时间:2005-12-23
 009E           ;       修改时间:
 009E           ;       修改内容:                              */
 009E           ; 
 009E           ; void PTR8_TX(void)
 009E           ; {
 009E                   .dbline 291
 009E           ;       PORTD |= BIT(PD0);      //TX_EN = 1
 009E 909A              sbi 0x12,0
 00A0                   .dbline -2
 00A0                   .dbline 292
 00A0           ; }
 00A0           L32:
 00A0                   .dbline 0 ; func end
 00A0 0895              ret
 00A2                   .dbend
 00A2                   .dbfunc e PTR8_RX _PTR8_RX fV
                        .even
 00A2           _PTR8_RX::
 00A2                   .dbline -1
 00A2                   .dbline 306
 00A2           ; //***************************************************************************
 00A2           ; 
 00A2           ; /*    函数名:        PTR8_RX
 00A2           ;       功能说明:将PTR8置为接收状态。
 00A2           ;       参数说明:无
 00A2           ;       返回值:        无
 00A2           ;       函数作者:Haibo YU
 00A2           ;       版本号:        1.0
 00A2           ;       创建时间:2005-12-23
 00A2           ;       修改时间:
 00A2           ;       修改内容:                              */
 00A2           ; 
 00A2           ; void PTR8_RX(void)
 00A2           ; {
 00A2                   .dbline 307
 00A2           ;       PORTD &= ~BIT(PD0);     //TX_EN = 0
 00A2 9098              cbi 0x12,0
 00A4                   .dbline -2
 00A4                   .dbline 308
 00A4           ; }
 00A4           L33:
 00A4                   .dbline 0 ; func end
 00A4 0895              ret
 00A6                   .dbend
 00A6                   .dbfunc e Init_PTR8_CR _Init_PTR8_CR fV
                        .even
 00A6           _Init_PTR8_CR::
 00A6                   .dbline -1
 00A6                   .dbline 312
 00A6           ; //*****************************************************************************
 00A6           ; 
 00A6           ; void Init_PTR8_CR(void)
 00A6           ; {
 00A6                   .dbline 313
 00A6           ;       PORTB &= ~BIT(PB2);     //SS SET LOW, Write Configuration register Start
 00A6 C298              cbi 0x18,2
 00A8                   .dbline 314
 00A8           ;       SPI_M_Send(WC); //Wirte Configuration Register,Start From 0000
 00A8 0027              clr R16
 00AA ECDF              rcall _SPI_M_Send
 00AC                   .dbline 315
 00AC           ;       SPI_M_Send(RC0);        //Write CH_NO [7 : 0]
 00AC 00910900          lds R16,_RC0
 00B0 E9DF              rcall _SPI_M_Send
 00B2                   .dbline 316
 00B2           ;       SPI_M_Send(RC1);                //Write Byte 2
 00B2 00910A00          lds R16,_RC1
 00B6 E6DF              rcall _SPI_M_Send
 00B8                   .dbline 317
 00B8           ;       SPI_M_Send(0x44);
 00B8 04E4              ldi R16,68
 00BA E4DF              rcall _SPI_M_Send
 00BC                   .dbline 318
 00BC           ;       SPI_M_Send(0x01);       //RX payload = 1 byte 
 00BC 01E0              ldi R16,1
 00BE E2DF              rcall _SPI_M_Send
 00C0                   .dbline 319
 00C0           ;       SPI_M_Send(0x01);       //TX payload = 1 byte
 00C0 01E0              ldi R16,1
 00C2 E0DF              rcall _SPI_M_Send
 00C4                   .dbline 320
 00C4           ;       SPI_M_Send(Add);
 00C4 00910B00          lds R16,_Add
 00C8 DDDF              rcall _SPI_M_Send
 00CA                   .dbline 321
 00CA           ;       SPI_M_Send(Add);
 00CA 00910B00          lds R16,_Add
 00CE DADF              rcall _SPI_M_Send
 00D0                   .dbline 322
 00D0           ;       SPI_M_Send(Add);
 00D0 00910B00          lds R16,_Add
 00D4 D7DF              rcall _SPI_M_Send
 00D6                   .dbline 323
 00D6           ;       SPI_M_Send(Add);
 00D6 00910B00          lds R16,_Add
 00DA D4DF              rcall _SPI_M_Send
 00DC                   .dbline 324
 00DC           ;       SPI_M_Send(0x58);
 00DC 08E5              ldi R16,88
 00DE D2DF              rcall _SPI_M_Send
 00E0                   .dbline 325
 00E0           ;       PORTB |= BIT(PB2);      //SS set HIGH,Write Configuration Register Finish
 00E0 C29A              sbi 0x18,2
 00E2                   .dbline -2
 00E2                   .dbline 327
 00E2           ;       
 00E2           ; }
 00E2           L34:
 00E2                   .dbline 0 ; func end
 00E2 0895              ret
 00E4                   .dbend
 00E4                   .dbfunc e Init_Device _Init_Device fV
                        .even
 00E4           _Init_Device::
 00E4                   .dbline -1
 00E4                   .dbline 340
 00E4           ; //************************************************************************************
 00E4           ; /*    函数名:        Init_Device
 00E4           ;       功能说明:初始化设备。LED亮一下,蜂鸣器叫一声,初始化串口
 00E4           ;       参数说明:无
 00E4           ;       返回值:        无
 00E4           ;       函数作者:Haibo YU
 00E4           ;       版本号:        1.0
 00E4           ;       创建时间:2005-12-23
 00E4           ;       修改时间:
 00E4           ;       修改内容:                              */
 00E4           ; 
 00E4           ; void Init_Device(void)
 00E4           ; {
 00E4                   .dbline 342
 00E4           ;       //stop errant interrupts until set up
 00E4           ;       CLI(); //disable all interrupts
 00E4 F894              cli
 00E6                   .dbline 344
 00E6           ;       
 00E6           ;       port_init();            //初始化各控制端口
 00E6 8CDF              rcall _port_init
 00E8                   .dbline 345
 00E8           ;       Uart_Init();            //串口初始化
 00E8 B3DF              rcall _Uart_Init
 00EA                   .dbline 346
 00EA           ;       SPI_MasterInit();//SPI Master Init
 00EA C9DF              rcall _SPI_MasterInit
 00EC                   .dbline 347
 00EC           ;       MCUCR = 0x00;
 00EC 2224              clr R2
 00EE 25BE              out 0x35,R2
 00F0                   .dbline 348
 00F0           ;       GICR  = 0x00;
 00F0 2BBE              out 0x3b,R2
 00F2                   .dbline 349
 00F2           ;       TIMSK = 0x00; //timer interrupt sources
 00F2 29BE              out 0x39,R2
 00F4                   .dbline 351
 00F4           ;       
 00F4           ;       SEI(); //re-enable interrupts
 00F4 7894              sei
 00F6                   .dbline -2
 00F6                   .dbline 353
 00F6           ;       //all peripherals are now initialised
 00F6           ; }
 00F6           L35:
 00F6                   .dbline 0 ; func end
 00F6 0895              ret
 00F8                   .dbend
 00F8                   .dbfunc e main _main fV
 00F8           ;             dr -> R20
                        .even
 00F8           _main::
 00F8                   .dbline -1
 00F8                   .dbline 361
 00F8           ; 
 00F8           ; 
 00F8           ; 
 00F8           ; 
 00F8           ; //****************************** 主函数  ***************************************
 00F8           ; //******************************************************************************
 00F8           ; void main(void)
 00F8           ; {
 00F8                   .dbline 364
 00F8           ;       
 00F8           ;       unsigned char dr;
 00F8           ;       Init_Device();  //Init All Device
 00F8 F5DF              rcall _Init_Device
 00FA                   .dbline 366
 00FA           ; 
 00FA           ;       Init_PTR8_CR(); //Set Configuration register
 00FA D5DF              rcall _Init_PTR8_CR
 00FC                   .dbline 367
 00FC           ;       Delay_1ms();
 00FC 8CDF              rcall _Delay_1ms
 00FE                   .dbline 369
 00FE           ; 
 00FE           ;       PTR8_RX();      //Set RX mode
 00FE D1DF              rcall _PTR8_RX
 0100                   .dbline 370
 0100           ;       PTR8_TREN();    // TRX_CE = 1  Enable RX
 0100 CCDF              rcall _PTR8_TREN
 0102                   .dbline 371
 0102           ;       Delay_1ms();
 0102 89DF              rcall _Delay_1ms
 0104 14C0              rjmp L38
 0106           L37:
 0106                   .dbline 373
 0106           ;       while(1)
 0106           ;       {
 0106                   .dbline 375
 0106           ;                       
 0106           ;                       dr = (PINC & 0x04);
 0106 43B3              in R20,0x13
 0108 4470              andi R20,4
 010A                   .dbline 376
 010A           ;                       if(dr != 0)                     //DR置位,无线数据接收成功
 010A 89F0              breq L40
 010C                   .dbline 377
 010C           ;                       {
 010C                   .dbline 378
 010C           ;                                 PTR8_Standby();       //TRX_CE = 0,disable RX
 010C C4DF              rcall _PTR8_Standby
 010E                   .dbline 379
 010E           ;                                 Delay_1ms();
 010E 83DF              rcall _Delay_1ms
 0110                   .dbline 380
 0110           ;                                 PORTB &= ~BIT(PB2);   //SS = 0
 0110 C298              cbi 0x18,2
 0112                   .dbline 381
 0112           ;                                 SPI_M_Send(RRP);      //Read RX payload
 0112 04E2              ldi R16,36
 0114 B7DF              rcall _SPI_M_Send
 0116                   .dbline 384
 0116           ;                                 
 0116           ;                                
 0116           ;                                 Recv = SPI_M_Recv(0xff);
 0116 0FEF              ldi R16,255
 0118 B9DF              rcall _SPI_M_Recv
 011A 00930000          sts _Recv,R16
 011E                   .dbline 386
 011E           ;                                 
 011E           ;                                 PORTB |= BIT(PB2);    //SS = 1
 011E C29A              sbi 0x18,2
 0120                   .dbline 399
 0120           ; 
 0120           ;                               /*  if(Recv == 0)
 0120           ;                                 {
 0120           ;                                       LED(0); //接收到0 LED亮
 0120           ;                                       Delay_Nms(1000);
 0120           ;                                 }
 0120           ;                                 else
 0120           ;                                 {
 0120           ;                                       LED(1);//接收到1 LED灭
 0120           ;                                       Delay_Nms(1000);  
 0120           ;                                 }*/
 0120           ;                                 
 0120           ;                                 PTR8_RX();    //Set RX mode
 0120 C0DF              rcall _PTR8_RX
 0122                   .dbline 400
 0122           ;                                 PTR8_TREN();  // TRX_CE = 1  Enable RX
 0122 BBDF              rcall _PTR8_TREN
 0124                   .dbline 401
 0124           ;                                 Delay_1ms();
 0124 78DF              rcall _Delay_1ms
 0126                   .dbline 403
 0126           ;                                 
 0126           ;                                 twiWriteByte(0xc0,Recv);
 0126 20910000          lds R18,_Recv
 012A 00EC              ldi R16,192
 012C 00D0              rcall _twiWriteByte
 012E                   .dbline 404
 012E           ;                       }       
 012E           L40:
 012E                   .dbline 405
 012E           L38:
 012E                   .dbline 372
 012E EBCF              rjmp L37
 0130           X0:
 0130                   .dbline -2
 0130                   .dbline 406
 0130           ;       }   
 0130           ; }
 0130           L36:
 0130                   .dbline 0 ; func end
 0130 0895              ret
 0132                   .dbsym r dr 20 c
 0132                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\iccavr\无线+I2C\test1--mt\twimain.c
 0000           _Recv::
 0000                   .blkb 1
 0001                   .dbsym e Recv _Recv c

⌨️ 快捷键说明

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