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

📄 oput.s

📁 avr单片机
💻 S
📖 第 1 页 / 共 3 页
字号:
	std z+0,R24
	.dbline -2
L27:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r head 22 c
	.dbsym r j 10 c
	.dbsym r i 20 c
	.dbend
	.dbfunc e io_test _io_test fV
;          Delay -> R20,R21
;              i -> R22
	.even
_io_test::
	xcall push_gset2
	.dbline -1
	.dbline 187
; }
; 
; 
; 					   														   										
; void io_test(void){
	.dbline 188
;    UC i=0;
	clr R22
	.dbline 190
;    UI Delay;
;    if(T0Count4>500){//||(RxFlag==ON)){
	ldi R24,500
	ldi R25,1
	lds R2,_T0Count4
	lds R3,_T0Count4+1
	cp R24,R2
	cpc R25,R3
	brlo X0
	xjmp L34
X0:
	.dbline 190
	.dbline 191
;       T0Count4=0;
	clr R2
	clr R3
	sts _T0Count4+1,R3
	sts _T0Count4,R2
	.dbline 193
; //	  RxFlag=OFF;  
;       OutputByte0Reg=OutputTable[TestIOSp][0];
	lds R2,_TestIOSp
	ldi R24,3
	mul R24,R2
	movw R30,R0
	ldi R24,<_OutputTable
	ldi R25,>_OutputTable
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	sts _OutputByte0Reg,R2
	.dbline 194
;       OutputByte1Reg=OutputTable[TestIOSp][1];
	lds R2,_TestIOSp
	ldi R24,3
	mul R24,R2
	movw R30,R0
	ldi R24,<_OutputTable+1
	ldi R25,>_OutputTable+1
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	sts _OutputByte1Reg,R2
	.dbline 195
;       OutputByte2Reg=OutputTable[TestIOSp][2];
	lds R2,_TestIOSp
	ldi R24,3
	mul R24,R2
	movw R30,R0
	ldi R24,<_OutputTable+2
	ldi R25,>_OutputTable+2
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	sts _OutputByte2Reg,R2
	.dbline 197
;    
;       IOAddr[OutputByte0]=OutputByte0Reg;
	lds R2,_OutputByte0Reg
	sts _IOAddr+4,R2
	.dbline 198
;       IOAddr[OutputByte1]=OutputByte1Reg;
	lds R2,_OutputByte1Reg
	sts _IOAddr+5,R2
	.dbline 199
;       IOAddr[OutputByte2]=OutputByte2Reg;
	lds R2,_OutputByte2Reg
	sts _IOAddr+6,R2
	.dbline 201
	clr R20
	clr R21
	xjmp L44
L41:
	.dbline 201
L42:
	.dbline 201
	subi R20,255  ; offset = 1
	sbci R21,255
L44:
	.dbline 201
;    
;       for(Delay=0;Delay<5000;Delay++);
	cpi R20,136
	ldi R30,19
	cpc R21,R30
	brlo L41
	xjmp L46
L45:
	.dbline 203
;    
;       while(i<5){
	.dbline 204
;          if(InputByte0Reg==IOAddr[InputByte0])i++;
	lds R2,_IOAddr
	lds R3,_InputByte0Reg
	cp R3,R2
	brne L48
	.dbline 204
	inc R22
	xjmp L49
L48:
	.dbline 205
;          else {InputByte0Reg=IOAddr[InputByte0];i=0;}
	.dbline 205
	lds R2,_IOAddr
	sts _InputByte0Reg,R2
	.dbline 205
	clr R22
	.dbline 205
L49:
	.dbline 206
L46:
	.dbline 203
	cpi R22,5
	brlo L45
	.dbline 207
;       }
;       i=0;
	clr R22
	xjmp L51
L50:
	.dbline 208
;       while(i<5){
	.dbline 209
;          if(InputByte1Reg==IOAddr[InputByte1])i++;
	lds R2,_IOAddr+1
	lds R3,_InputByte1Reg
	cp R3,R2
	brne L53
	.dbline 209
	inc R22
	xjmp L54
L53:
	.dbline 210
;          else {InputByte1Reg=IOAddr[InputByte1];i=0;}
	.dbline 210
	lds R2,_IOAddr+1
	sts _InputByte1Reg,R2
	.dbline 210
	clr R22
	.dbline 210
L54:
	.dbline 211
L51:
	.dbline 208
	cpi R22,5
	brlo L50
	.dbline 212
;       }
;       i=0;
	clr R22
	xjmp L58
L57:
	.dbline 213
;       while(i<5){
	.dbline 214
;       if(InputByte2Reg==IOAddr[InputByte2])i++;
	lds R2,_IOAddr+2
	lds R3,_InputByte2Reg
	cp R3,R2
	brne L60
	.dbline 214
	inc R22
	xjmp L61
L60:
	.dbline 215
;          else {InputByte2Reg=IOAddr[InputByte2];i=0;}
	.dbline 215
	lds R2,_IOAddr+2
	sts _InputByte2Reg,R2
	.dbline 215
	clr R22
	.dbline 215
L61:
	.dbline 216
L58:
	.dbline 213
	cpi R22,5
	brlo L57
	.dbline 217
;       }
;       i=0;
	clr R22
	xjmp L65
L64:
	.dbline 218
;       while(i<5){
	.dbline 219
;       if(InputByte3Reg==IOAddr[InputByte3])i++;
	lds R2,_IOAddr+3
	lds R3,_InputByte3Reg
	cp R3,R2
	brne L67
	.dbline 219
	inc R22
	xjmp L68
L67:
	.dbline 220
;          else {InputByte3Reg=IOAddr[InputByte3];i=0;}
	.dbline 220
	lds R2,_IOAddr+3
	sts _InputByte3Reg,R2
	.dbline 220
	clr R22
	.dbline 220
L68:
	.dbline 221
L65:
	.dbline 218
	cpi R22,5
	brlo L64
	.dbline 222
;       }
;       i=0;
	clr R22
	.dbline 223
;       TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 224
;   tx0_uc_to_bcd(OutputByte0Reg);
	lds R16,_OutputByte0Reg
	xcall _tx0_uc_to_bcd
	.dbline 225
;   TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 226
;   tx0_uc_to_bcd(OutputByte1Reg);
	lds R16,_OutputByte1Reg
	xcall _tx0_uc_to_bcd
	.dbline 227
;   TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 228
;   tx0_uc_to_bcd(OutputByte2Reg);
	lds R16,_OutputByte2Reg
	xcall _tx0_uc_to_bcd
	.dbline 229
;   TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 230
;   tx0_uc_to_bcd(InputByte0Reg);
	lds R16,_InputByte0Reg
	xcall _tx0_uc_to_bcd
	.dbline 231
;   TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 232
;   tx0_uc_to_bcd(InputByte1Reg);
	lds R16,_InputByte1Reg
	xcall _tx0_uc_to_bcd
	.dbline 233
;   TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 234
;   tx0_uc_to_bcd(InputByte2Reg);
	lds R16,_InputByte2Reg
	xcall _tx0_uc_to_bcd
	.dbline 235
;   TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 236
;   tx0_uc_to_bcd(InputByte3Reg);
	lds R16,_InputByte3Reg
	xcall _tx0_uc_to_bcd
	.dbline 243
;      // if(InputByte0Reg!=InputTable[TestIOSp][0])IOErrorFlag=ON;
;      // else if(InputByte1Reg!=InputTable[TestIOSp][1])IOErrorFlag=ON;
;       //else if(InputByte2Reg!=InputTable[TestIOSp][2])IOErrorFlag=ON;
;       //else if(InputByte3Reg!=InputTable[TestIOSp][3])IOErrorFlag=ON;
; 	  //else IOErrorFlag=OFF;
; 	 // tx0_operate();
; 	 if(InputByte0Reg==InputTable[TestIOSp][0]&& InputByte1Reg==InputTable[TestIOSp][1]
	lds R2,_TestIOSp
	ldi R24,4
	mul R24,R2
	ldi R24,<_InputTable
	ldi R25,>_InputTable
	movw R30,R0
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	lds R3,_InputByte0Reg
	cp R3,R2
	breq X1
	xjmp L71
X1:
	ldi R24,<_InputTable+1
	ldi R25,>_InputTable+1
	movw R30,R0
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	lds R3,_InputByte1Reg
	cp R3,R2
	breq X2
	xjmp L71
X2:
	ldi R24,<_InputTable+2
	ldi R25,>_InputTable+2
	movw R30,R0
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	lds R3,_InputByte2Reg
	cp R3,R2
	breq X3
	xjmp L71
X3:
	ldi R24,<_InputTable+3
	ldi R25,>_InputTable+3
	movw R30,R0
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	lds R3,_InputByte3Reg
	cp R3,R2
	breq X4
	xjmp L71
X4:
	.dbline 245
;    && InputByte2Reg==InputTable[TestIOSp][2] && InputByte3Reg==InputTable[TestIOSp][3])
;    {
	.dbline 247
;     // IOErrorFlag=0;
; 	 PORTB=0xFF;
	ldi R24,255
	out 0x18,R24
	.dbline 248
; 	 TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 249
; 	 tx0_uc_to_bcd(TestIOSp);
	lds R16,_TestIOSp
	xcall _tx0_uc_to_bcd
	.dbline 250
; 	 TxBuffer0[TxOperateSp0++]= 'O';
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,79
	std z+0,R24
	.dbline 251
; 	 TxBuffer0[TxOperateSp0++]= 'k';
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,107
	std z+0,R24
	.dbline 252
; 	 TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 253
; 	 UCSR0B|=0X20;
	sbi 0xa,5
	.dbline 255
; 	 
; 	}
	xjmp L72
L71:
	.dbline 257
;    else 
;    {
	.dbline 259
;     //IOErrorFlag=1;
; 	PORTB=0x00;
	clr R2
	out 0x18,R2
	.dbline 260
; 	TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 261
; 	tx0_uc_to_bcd(TestIOSp);
	lds R16,_TestIOSp
	xcall _tx0_uc_to_bcd
	.dbline 262
; 	TxBuffer0[TxOperateSp0++]= 'E';
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,69
	std z+0,R24
	.dbline 263
; 	TxBuffer0[TxOperateSp0++]= 'r';
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,114
	std z+0,R24
	.dbline 264
; 	TxBuffer0[TxOperateSp0++]= 'r';
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,114
	std z+0,R24
	.dbline 265
; 	TxBuffer0[TxOperateSp0++]= 'O';
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,79
	std z+0,R24
	.dbline 266
; 	TxBuffer0[TxOperateSp0++]= 'r';
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,114
	std z+0,R24
	.dbline 267
; 	TxBuffer0[TxOperateSp0++]=0x20;
	lds R2,_TxOperateSp0
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _TxOperateSp0,R24
	ldi R24,<_TxBuffer0
	ldi R25,>_TxBuffer0
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 268
; 	UCSR0B|=0X20;
	sbi 0xa,5
	.dbline 269
;     }
L72:
	.dbline 270
	lds R24,_TestIOSp
	subi R24,255    ; addi 1
	sts _TestIOSp,R24
	.dbline 270
	andi R24,15
	sts _TestIOSp,R24
	.dbline 271
L34:
	.dbline -2
L33:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r Delay 20 i
	.dbsym r i 22 c
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 275
; 	TestIOSp++;TestIOSp&=0x0F;
;   }
; 
; } 
; //===============================================主程序
; void main(void){
	.dbline 276
;    WatchDog();
	xcall _WatchDog
	.dbline 277
;    watchdog_init();
	xcall _watchdog_init
	.dbline 278
;    init_devices();
	xcall _init_devices
	.dbline 280
;    //can_init(); 
;    set_value();
	xcall _set_value
	xjmp L78
L77:
	.dbline 281
	.dbline 282
	xcall _io_test
	.dbline 283
	xcall _WatchDog
	.dbline 293
L78:
	.dbline 281
	xjmp L77
X5:
	.dbline -2
L76:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\excersize\oput.c
_CanTxBuffer1::
	.blkb 104
	.dbfile D:\kcb\kcbtest1.h
	.dbsym e CanTxBuffer1 _CanTxBuffer1 A[104:8:13]c
_CanTxBuffer0::
	.blkb 104
	.dbsym e CanTxBuffer0 _CanTxBuffer0 A[104:8:13]c
_CanRxBuffer1::
	.blkb 104
	.dbsym e CanRxBuffer1 _CanRxBuffer1 A[104:8:13]c
_CanRxBuffer0Command2::
	.blkb 13
	.dbsym e CanRxBuffer0Command2 _CanRxBuffer0Command2 A[13:13]c
_CanRxBuffer0Command1::
	.blkb 13
	.dbsym e CanRxBuffer0Command1 _CanRxBuffer0Command1 A[13:13]c
_CanRxBuffer0Command0::
	.blkb 13
	.dbsym e CanRxBuffer0Command0 _CanRxBuffer0Command0 A[13:13]c
_CanRxBuffer0::
	.blkb 104
	.dbsym e CanRxBuffer0 _CanRxBuffer0 A[104:8:13]c
_OutputByte2Reg::
	.blkb 1
	.dbsym e OutputByte2Reg _OutputByte2Reg c
_OutputByte1Reg::
	.blkb 1
	.dbsym e OutputByte1Reg _OutputByte1Reg c
_OutputByte0Reg::
	.blkb 1
	.dbsym e OutputByte0Reg _OutputByte0Reg c
_RxBuffer0::
	.blkb 256
	.dbsym e RxBuffer0 _RxBuffer0 A[256:256]c
_TxBuffer0::
	.blkb 256
	.dbsym e TxBuffer0 _TxBuffer0 A[256:256]c

⌨️ 快捷键说明

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