📄 main.lis
字号:
.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 + -