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

📄 main.s

📁 著名的RF射频芯片nRF2401应用程序
💻 S
字号:
	.module main.c
	.area data(ram, con, rel)
_hz0::
	.blkb 65
	.area idata
	.byte 214,199,196,220,188,210,181,231,191,216,214,198,207,181,205,179
	.byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
	.byte 202,228,200,235,32,32,32,32,32,32,32,32,32,32,32,32
	.byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
	.byte 0
	.area data(ram, con, rel)
	.dbfile F:\programme\nrf2401\main.c
	.dbsym e hz0 _hz0 A[65:65]c
_KeyFlag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile F:\programme\nrf2401\main.c
	.dbsym e KeyFlag _KeyFlag c
_zhishi::
	.blkb 1
	.area idata
	.byte 123
	.area data(ram, con, rel)
	.dbfile F:\programme\nrf2401\main.c
	.dbsym e zhishi _zhishi c
	.area text(rom, con, rel)
	.dbfile F:\programme\nrf2401\main.c
	.dbfunc e main _main fV
;              i -> <dead>
;         detect -> <dead>
;             kk -> R10
;       KeyValue -> R22
	.even
_main::
	sbiw R28,2
	.dbline -1
	.dbline 12
; #include <stdio.h>
; #include <iom8v.h>
; #include <macros.h>
; #include "config.h"
; unsigned char hz0[65]={"智能家电控制系统                输入                            "};
; unsigned char KeyFlag=0;
; uchar zhishi=123;
; unsigned char KeyI[3];
; extern uchar TxBuf[],RxBuf[];
; 
; void main(void)
; { uchar KeyValue,kk,detect;
	.dbline 14
;   uint i;
;   init_devices();
	rcall _init_devices
	.dbline 15
;   screen(hz0);
	ldi R16,<_hz0
	ldi R17,>_hz0
	rcall _screen
	rjmp L3
L2:
	.dbline 20
;   
;    // display_int(KeyI,0x88,3);
;      
;    while(1)
;   { 
	.dbline 21
;     RfRecvProc();  
	rcall _RfRecvProc
	.dbline 22
; 	if(KeyFlag==1)
	lds R24,_KeyFlag
	cpi R24,1
	brne L5
	.dbline 23
; 	{
	.dbline 24
; 	 KeyFlag=0;
	clr R2
	sts _KeyFlag,R2
	.dbline 25
; 	 KeyValue=KeyI[2];
	lds R22,_KeyI+2
	.dbline 26
; 	}	
L5:
	.dbline 29
; 	// displayint(0x9d,KeyValue);
; 	 
;    switch(KeyValue)        
	mov R20,R22
	clr R21
	cpi R20,105
	ldi R30,0
	cpc R21,R30
	brne X2
	rjmp L12
X2:
	cpi R20,107
	ldi R30,0
	cpc R21,R30
	brne X3
	rjmp L16
X3:
	cpi R20,108
	ldi R30,0
	cpc R21,R30
	brne X4
	rjmp L19
X4:
	cpi R20,112
	ldi R30,0
	cpc R21,R30
	breq L11
	cpi R20,114
	ldi R30,0
	cpc R21,R30
	brne X5
	rjmp L13
X5:
	cpi R20,115
	ldi R30,0
	cpc R21,R30
	brne X6
	rjmp L17
X6:
	cpi R20,116
	ldi R30,0
	cpc R21,R30
	brne X7
	rjmp L18
X7:
	cpi R20,117
	ldi R30,0
	cpc R21,R30
	brne X8
	rjmp L20
X8:
	cpi R20,122
	ldi R30,0
	cpc R21,R30
	brne X9
	rjmp L15
X9:
	ldi R24,122
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brlt L24
L23:
	cpi R20,90
	ldi R30,0
	cpc R21,R30
	brne X10
	rjmp L22
X10:
	rjmp L8
L24:
	cpi R20,125
	ldi R30,0
	cpc R21,R30
	brne X11
	rjmp L21
X11:
	rjmp L8
X0:
	.dbline 30
;    {
L11:
	.dbline 31
;     case 112:kk=0;  displayint(0x98,kk);
	clr R10
	.dbline 31
	mov R18,R10
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 32
; 	                nrf2401A_SendData();
	rcall _nrf2401A_SendData
	.dbline 33
; 					delay(2000);
	ldi R16,2000
	ldi R17,7
	rcall _delay
	.dbline 34
; 					nrf2401A_RxOn();
	rcall _nrf2401A_RxOn
	.dbline 35
; 	                KeyValue=0; break;
	clr R22
	.dbline 35
	rjmp L9
L12:
	.dbline 36
;     case 105:kk=1;displayint(0x98,kk);
	clr R10
	inc R10
	.dbline 36
	mov R18,R10
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 37
; 	              display_int(RxBuf,0x80,12);KeyValue=0;break;
	ldi R24,12
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,128
	ldi R19,0
	ldi R16,<_RxBuf
	ldi R17,>_RxBuf
	rcall _display_int
	.dbline 37
	clr R22
	.dbline 37
	rjmp L9
L13:
	.dbline 38
; 	case 114:kk=2;displayint(0x98,kk);
	ldi R24,2
	mov R10,R24
	.dbline 38
	mov R18,R24
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 39
; 	              display_int(RxBuf+12,0x80,12);KeyValue=0;break;
	ldi R24,12
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,128
	ldi R19,0
	ldi R16,<_RxBuf+12
	ldi R17,>_RxBuf+12
	rcall _display_int
	.dbline 39
	clr R22
	.dbline 39
	rjmp L9
L15:
	.dbline 40
; 	case 122:kk=3;displayint(0x98,kk);KeyValue=0;break;
	ldi R24,3
	mov R10,R24
	.dbline 40
	mov R18,R24
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 40
	clr R22
	.dbline 40
	rjmp L9
L16:
	.dbline 41
; 	case 107:kk=4;displayint(0x98,kk);zhishi++;
	ldi R24,4
	mov R10,R24
	.dbline 41
	mov R18,R24
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 41
	lds R24,_zhishi
	subi R24,255    ; addi 1
	sts _zhishi,R24
	.dbline 42
; 	               displayint(0x9a,zhishi);
	mov R18,R24
	clr R19
	ldi R16,154
	ldi R17,0
	rcall _displayint
	.dbline 43
; 				   nrf2401A_WR(0xa5);
	ldi R16,165
	ldi R17,0
	rcall _nrf2401A_WR
	.dbline 44
; 	               KeyValue=0;break; 
	clr R22
	.dbline 44
	rjmp L9
L17:
	.dbline 46
; 	                                                       
; 	case 115:kk=5;displayint(0x98,kk);
	ldi R24,5
	mov R10,R24
	.dbline 46
	mov R18,R24
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 47
; 	               zhishi=nrf2401A_RD();
	rcall _nrf2401A_RD
	sts _zhishi,R16
	.dbline 48
; 				   displayint(0x9a,zhishi);
	mov R18,R16
	clr R19
	ldi R16,154
	ldi R17,0
	rcall _displayint
	.dbline 49
; 				   KeyValue=0;break;
	clr R22
	.dbline 49
	rjmp L9
L18:
	.dbline 50
; 	case 116:kk=6;displayint(0x98,kk);KeyValue=0;break;
	ldi R24,6
	mov R10,R24
	.dbline 50
	mov R18,R24
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 50
	clr R22
	.dbline 50
	rjmp L9
L19:
	.dbline 51
; 	case 108:kk=7;displayint(0x98,kk);KeyValue=0;break;
	ldi R24,7
	mov R10,R24
	.dbline 51
	mov R18,R24
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 51
	clr R22
	.dbline 51
	rjmp L9
L20:
	.dbline 52
; 	case 117:kk=8;displayint(0x98,kk);KeyValue=0;break;
	ldi R24,8
	mov R10,R24
	.dbline 52
	mov R18,R24
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 52
	clr R22
	.dbline 52
	rjmp L9
L21:
	.dbline 53
; 	case 125:kk=9;displayint(0x98,kk);KeyValue=0;break;
	ldi R24,9
	mov R10,R24
	.dbline 53
	mov R18,R24
	clr R19
	ldi R16,152
	ldi R17,0
	rcall _displayint
	.dbline 53
	clr R22
	.dbline 53
	rjmp L9
L22:
	.dbline 54
; 	case 90: kk='k'; KeyValue=0;           
	ldi R24,107
	mov R10,R24
	.dbline 54
	clr R22
	.dbline 55
; 	                 lcd_write_comm(0x98);
	ldi R16,152
	ldi R17,0
	rcall _lcd_write_comm
	.dbline 56
; 	                 lcd_write_data('k');
	ldi R16,107
	ldi R17,0
	rcall _lcd_write_data
	.dbline 57
; 	               break;
	rjmp L9
L8:
	.dbline 58
; 	default :KeyValue=0;break;
	clr R22
	.dbline 58
L9:
	.dbline 62
L3:
	.dbline 19
	rjmp L2
X1:
	.dbline -2
L1:
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym l i 3 i
	.dbsym l detect 3 c
	.dbsym r kk 10 c
	.dbsym r KeyValue 22 c
	.dbend
	.area vector(rom, abs)
	.org 2
	rjmp _int0_isr
	.area text(rom, con, rel)
	.dbfile F:\programme\nrf2401\main.c
	.area data(ram, con, rel)
	.dbfile F:\programme\nrf2401\main.c
L26:
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile F:\programme\nrf2401\main.c
L27:
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile F:\programme\nrf2401\main.c
	.area text(rom, con, rel)
	.dbfile F:\programme\nrf2401\main.c
	.dbfunc e int0_isr _int0_isr fV
	.dbsym s index L27 c
	.dbsym s IntNum L26 c
	.even
_int0_isr::
	st -y,R2
	st -y,R3
	st -y,R4
	st -y,R24
	st -y,R25
	st -y,R30
	st -y,R31
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 68
;    }  
;   
;   
;   }
; }
;   
;   
; #pragma interrupt_handler int0_isr:2
; void int0_isr(void)
; {
	.dbline 71
;  static unsigned char IntNum=0,index=0;
;  
;    if((IntNum>0)&&(IntNum<9))
	clr R2
	lds R3,L26
	cp R2,R3
	brsh L28
	mov R24,R3
	cpi R24,9
	brsh L28
	.dbline 72
;       {
	.dbline 73
;        KeyI[index]>>=1;
	ldi R24,<_KeyI
	ldi R25,>_KeyI
	lds R2,L27
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R2
	ldd R4,z+0
	lsr R4
	std z+0,R4
	.dbline 74
;        if(PINB&0x80)
	sbis 0x16,7
	rjmp L30
	.dbline 75
;        KeyI[index]|=0x80;     
	lds R2,L27
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R2
	ldd R24,z+0
	ori R24,128
	std z+0,R24
L30:
	.dbline 76
;        }
L28:
	.dbline 78
; 	   
;   IntNum++;
	lds R24,L26
	subi R24,255    ; addi 1
	sts L26,R24
	.dbline 80
;   // while (!Key_CLK); //等待PS/2CLK拉高            use??????
;   if(IntNum>10)
	ldi R24,10
	lds R2,L26
	cp R24,R2
	brsh L32
	.dbline 81
;   {   
	.dbline 82
;        IntNum=0;  
	clr R2
	sts L26,R2
	.dbline 83
;        index++;
	lds R24,L27
	subi R24,255    ; addi 1
	sts L27,R24
	.dbline 84
;     if(index==3)
	cpi R24,3
	brne L34
	.dbline 85
;       {
	.dbline 86
; 	   IntNum=0;
	sts L26,R2
	.dbline 87
; 	   index=0; 
	sts L27,R2
	.dbline 88
; 	   KeyFlag=1;
	ldi R24,1
	sts _KeyFlag,R24
	.dbline 89
; 	  }
L34:
	.dbline 90
L32:
	.dbline -2
L25:
	ld R2,y+
	out 0x3f,R2
	ld R31,y+
	ld R30,y+
	ld R25,y+
	ld R24,y+
	ld R4,y+
	ld R3,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\programme\nrf2401\main.c
_KeyI::
	.blkb 3
	.dbsym e KeyI _KeyI A[3:3]c

⌨️ 快捷键说明

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