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

📄 main.lis

📁 nrf905无线收发模块利用模拟spi通信的程序 经此程序可转成串口通信
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module main.c
                        .area data(ram, con, rel)
 0000           _table::
 0000                   .blkb 2
                        .area idata
 0000 7E12              .byte 126,18
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 4F5B              .byte 'O,91
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 3379              .byte 51,'y
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 7D52              .byte 125,'R
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 7F7B              .byte 127,123
                        .area data(ram, con, rel)
 000A                   .dbfile E:\PQ-1A\我的AVR\新建文件夹\无线模拟/spi.c
 000A                   .dbsym e table _table A[10:10]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\PQ-1A\我的AVR\新建文件夹\无线模拟/spi.c
 0000                   .dbfunc e delayus _delayus fV
 0000           ;              i -> R20,R21
 0000           ;             us -> R22,R23
                        .even
 0000           _delayus::
 0000 0E940000          xcall push_gset2
 0004 B801              movw R22,R16
 0006                   .dbline -1
 0006                   .dbline 40
 0006           ; #include <iom128v.h>
 0006           ; #include <iom128.h>
 0006           ; #include <macros.h>
 0006           ; #include "NRF905.C"
 0006           ; #include "zlg7290_avr.c"
 0006           ; #define KEY1  READ_PC3
 0006           ; #define KEY2  READ_PC1
 0006           ; #define KEY3  READ_PC2
 0006           ; #define KEY4  READ_PC0
 0006           ; 
 0006           ; #define  uchar unsigned char
 0006           ; #define  uint  unsigned int
 0006           ; 
 0006           ; uchar TxBuf[28]={0};
 0006           ; uchar RxBuf[28]={0};
 0006           ; uchar tf=0;
 0006           ; 
 0006           ; void main()
 0006           ; {
 0006           ;   uint i;
 0006           ;   uchar KeyValue;
 0006           ;   uint led1_count=0,led2_count=0,led3_count=0,led4_count=0;
 0006           ;   DDRA=0XFF;
 0006           ;   PORTA=0XFF;
 0006           ;   DDRC&=~(BIT(0)|BIT(2)|BIT(1)|BIT(3));
 0006           ;   PORTC=0XFF;
 0006           ;  // SystemInit();
 0006           ;  // ClearAll();
 0006           ;   nRF905Init();
 0006           ;   Config905();                                // Config nRF905 module
 0006           ;   TxBuf[0] = 1;
 0006           ;   TxBuf[1] = 1;
 0006           ;   SetTxMode();                // Set Tx Mode
 0006           ;   TxPacket(TxBuf);                            // Transmit Tx buffer data
 0006           ;   Delay(1000);                                // delay for led light  
 0006           ;   PORTA=0X0C;
 0006           ;   TxBuf[0] = 0xff;
 0006           ;   TxBuf[1] = 0xff;
 0006           ; 
 0006           ;   SetRxMode();        // Set nRF905 in Rx mode
 0006                   .dbline 42
 0006           ;   while(1)
 0006           ;   {
 0006 0DE0              ldi R16,13
 0008 10E0              ldi R17,0
 000A 9B01              movw R18,R22
 000C 0E940000          xcall empy16s
 0010 2AE0              ldi R18,10
 0012 30E0              ldi R19,0
 0014 0E940000          xcall div16u
 0018 B801              movw R22,R16
 001A                   .dbline 43
 001A 4427              clr R20
 001C 5527              clr R21
 001E 02C0              xjmp L5
 0020           L2:
 0020                   .dbline 43
 0020           L3:
 0020                   .dbline 43
 0020 4F5F              subi R20,255  ; offset = 1
 0022 5F4F              sbci R21,255
 0024           L5:
 0024                   .dbline 43
 0024           ;    /* if ( FlagINT )          //如果有键按下
 0024 4617              cp R20,R22
 0026 5707              cpc R21,R23
 0028 D8F3              brlo L2
 002A                   .dbline -2
 002A                   .dbline 44
 002A           ;               {
 002A           L1:
 002A 0E940000          xcall pop_gset2
 002E                   .dbline 0 ; func end
 002E 0895              ret
 0030                   .dbsym r i 20 i
 0030                   .dbsym r us 22 i
 0030                   .dbend
 0030                   .dbfunc e delayms _delayms fV
 0030           ;              x -> R20,R21
 0030           ;              y -> R22,R23
 0030           ;              z -> R16,R17
                        .even
 0030           _delayms::
 0030 0E940000          xcall push_gset2
 0034                   .dbline -1
 0034                   .dbline 53
 0034           ;               //清除中断标志
 0034           ;                       FlagINT = 0;
 0034           ;               //读取键值、连击计数器值、功能键值
 0034           ;                       ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);
 0034           ;                       DispValue(0,KeyValue);
 0034           ;               }*/
 0034           ;     if(KEY4 ==0 ) 
 0034           ;       { 
 0034           ;        TxBuf[0] = 0x11;
 0034                   .dbline 55
 0034           ;        for(i = 0; i<15; i++) 
 0034           ;        {
 0034 A801              movw R20,R16
 0036 0AC0              xjmp L10
 0038           L7:
 0038                   .dbline 56
 0038 61EA              ldi R22,1185
 003A 74E0              ldi R23,4
 003C 02C0              xjmp L14
 003E           L11:
 003E                   .dbline 56
 003E           L12:
 003E                   .dbline 56
 003E 6150              subi R22,1
 0040 7040              sbci R23,0
 0042           L14:
 0042                   .dbline 56
 0042 6030              cpi R22,0
 0044 6707              cpc R22,R23
 0046 D9F7              brne L11
 0048           X0:
 0048           L8:
 0048                   .dbline 55
 0048 4150              subi R20,1
 004A 5040              sbci R21,0
 004C           L10:
 004C                   .dbline 55
 004C 4030              cpi R20,0
 004E 4507              cpc R20,R21
 0050 99F7              brne L7
 0052           X1:
 0052                   .dbline -2
 0052                   .dbline 57
 0052           ;          SetTxMode();                 // Set Tx Mode
 0052           ;            TxPacket(TxBuf);           // Transmit Tx buffer data
 0052           L6:
 0052 0E940000          xcall pop_gset2
 0056                   .dbline 0 ; func end
 0056 0895              ret
 0058                   .dbsym r x 20 i
 0058                   .dbsym r y 22 i
 0058                   .dbsym r z 16 i
 0058                   .dbend
 0058                   .dbfunc e SpiInit _SpiInit fV
                        .even
 0058           _SpiInit::
 0058                   .dbline -1
 0058                   .dbline 60
 0058           ;        }
 0058           ;        SetRxMode();           
 0058           ;        }              // 
 0058                   .dbline 61
 0058           ;     if(KEY3 ==0 )
 0058 87B3              in R24,0x17
 005A 8760              ori R24,7
 005C 87BB              out 0x17,R24
 005E                   .dbline 62
 005E           ;        {
 005E BB98              cbi 0x17,3
 0060                   .dbline 63
 0060           ;        TxBuf[0] = 0xaa ;
 0060 C39A              sbi 0x18,3
 0062                   .dbline 64
 0062           ;        for(i = 0; i<15; i++) 
 0062 88B3              in R24,0x18
 0064 8160              ori R24,1
 0066 88BB              out 0x18,R24
 0068                   .dbline 65
 0068           ;        {
 0068 88B3              in R24,0x18
 006A 8D7F              andi R24,253
 006C 88BB              out 0x18,R24
 006E                   .dbline -2
 006E                   .dbline 66
 006E           ;          SetTxMode();                 // Set Tx Mode
 006E           L15:
 006E                   .dbline 0 ; func end
 006E 0895              ret
 0070                   .dbend
 0070                   .dbfunc e SpiRead _SpiRead fc
 0070           ;              i -> R16
                        .even
 0070           _SpiRead::
 0070                   .dbline -1
 0070                   .dbline 69
 0070           ;            TxPacket(TxBuf);           // Transmit Tx buffer data
 0070           ;        }
 0070           ;        SetRxMode();           
 0070                   .dbline 71
 0070           ;        }      //
 0070           ;       if(KEY2 ==0  ) 
 0070 0027              clr R16
 0072 1CC0              xjmp L20
 0074           L17:
 0074                   .dbline 72
 0074           ;     {  TxBuf[0] = 0x66 ;
 0074                   .dbline 73
 0074           ;     //   TxBuf[1] = 0x06 ;
 0074 20900000          lds R2,_DATA_BUF
 0078 220C              lsl R2
 007A 20920000          sts _DATA_BUF,R2
 007E                   .dbline 74
 007E           ;        for(i = 0; i<15; i++) 
 007E 88B3              in R24,0x18
 0080 8260              ori R24,2
 0082 88BB              out 0x18,R24
 0084                   .dbline 76
 0084           ;        {
 0084           ;          SetTxMode();                 // Set Tx Mode
 0084 86B3              in R24,0x16
 0086 8695              lsr R24
 0088 8695              lsr R24
 008A 8695              lsr R24
 008C 8170              andi R24,1
 008E 29F0              breq L21
 0090                   .dbline 77
 0090           ;            TxPacket(TxBuf);           // Transmit Tx buffer data
 0090                   .dbline 78
 0090           ;        }
 0090 822D              mov R24,R2
 0092 8160              ori R24,1
 0094 80930000          sts _DATA_BUF,R24
 0098                   .dbline 79
 0098           ;        SetRxMode();                   // Set nRF905 in Rx mode
 0098 05C0              xjmp L22
 009A           L21:
 009A                   .dbline 81
 009A           ;     } 
 009A           ;     if(KEY1 ==0  ) 
 009A                   .dbline 82
 009A           ;     {
 009A 80910000          lds R24,_DATA_BUF
 009E 8E7F              andi R24,254
 00A0 80930000          sts _DATA_BUF,R24
 00A4                   .dbline 83
 00A4           ;        TxBuf[0] = 0x33 ;
 00A4           L22:
 00A4                   .dbline 85
 00A4 88B3              in R24,0x18
 00A6 8D7F              andi R24,253
 00A8 88BB              out 0x18,R24
 00AA                   .dbline 86
 00AA           L18:
 00AA                   .dbline 71
 00AA 0395              inc R16
 00AC           L20:
 00AC                   .dbline 71
 00AC 0830              cpi R16,8
 00AE 10F3              brlo L17
 00B0                   .dbline 87
 00B0           ;      //  TxBuf[1] = 0x08 ;
 00B0           ;        for(i = 0; i<15; i++) 
 00B0           ;        {
 00B0           ;          SetTxMode();                 // Set Tx Mode
 00B0 00910000          lds R16,_DATA_BUF
 00B4                   .dbline -2
 00B4           L16:
 00B4                   .dbline 0 ; func end
 00B4 0895              ret
 00B6                   .dbsym r i 16 c
 00B6                   .dbend
 00B6                   .dbfunc e SpiWrite _SpiWrite fV
 00B6           ;              i -> R20
 00B6           ;           send -> R16
                        .even
 00B6           _SpiWrite::
 00B6 0E940000          xcall push_gset1
 00BA                   .dbline -1
 00BA                   .dbline 91
 00BA           ;            TxPacket(TxBuf);           // Transmit Tx buffer data
 00BA           ;        }
 00BA           ;        SetRxMode();                   // Set nRF905 in Rx mode
 00BA           ;     }
 00BA                   .dbline 93
 00BA           ;  /*   if(tf==1)
 00BA           ;       {       
 00BA 00930000          sts _DATA_BUF,R16
 00BE                   .dbline 94
 00BE           ;         SetTxMode();                  // Set Tx Mode
 00BE 4427              clr R20
 00C0 17C0              xjmp L27
 00C2           L24:
 00C2                   .dbline 95
 00C2           ;         TxPacket(TxBuf);              // Transmit Tx buffer data
 00C2                   .dbline 96
 00C2           ;         TxBuf[0] = 0xff;
 00C2 20900000          lds R2,_DATA_BUF
 00C6 27FE              sbrs R2,7
 00C8 04C0              rjmp L28
 00CA                   .dbline 97
 00CA           ;         TxBuf[1] = 0xff;
 00CA                   .dbline 98
 00CA           ;         SetRxMode();                  // Set nRF905 in Rx mode
 00CA 88B3              in R24,0x18
 00CC 8460              ori R24,4
 00CE 88BB              out 0x18,R24
 00D0                   .dbline 99
 00D0           ;         tf=0;
 00D0 03C0              xjmp L29
 00D2           L28:
 00D2                   .dbline 101
 00D2           ;     }     
 00D2           ;       if(led1_count>0)        
 00D2                   .dbline 102
 00D2           ;     { 
 00D2 88B3              in R24,0x18
 00D4 8B7F              andi R24,251
 00D6 88BB              out 0x18,R24
 00D8                   .dbline 103
 00D8           ;         led1_count--;
 00D8           L29:
 00D8                   .dbline 104
 00D8 88B3              in R24,0x18
 00DA 8260              ori R24,2
 00DC 88BB              out 0x18,R24
 00DE                   .dbline 105
 00DE 20900000          lds R2,_DATA_BUF
 00E2 220C              lsl R2
 00E4 20920000          sts _DATA_BUF,R2
 00E8                   .dbline 106
 00E8 88B3              in R24,0x18

⌨️ 快捷键说明

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