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

📄 hal.s

📁 原创
💻 S
📖 第 1 页 / 共 2 页
字号:
	.module hal.c
	.area data(ram, con, rel)
_u7_data::
	.blkb 1
	.area idata
	.byte 255
	.area data(ram, con, rel)
	.dbfile E:\avrwork3_pt100\hal.c
	.dbsym e u7_data _u7_data c
_u9_data::
	.blkb 1
	.area idata
	.byte 255
	.area data(ram, con, rel)
	.dbfile E:\avrwork3_pt100\hal.c
	.dbsym e u9_data _u9_data c
_u18_data::
	.blkb 1
	.area idata
	.byte 255
	.area data(ram, con, rel)
	.dbfile E:\avrwork3_pt100\hal.c
	.dbsym e u18_data _u18_data c
_u19_data::
	.blkb 1
	.area idata
	.byte 255
	.area data(ram, con, rel)
	.dbfile E:\avrwork3_pt100\hal.c
	.dbsym e u19_data _u19_data c
	.area text(rom, con, rel)
	.dbfile E:\avrwork3_pt100\hal.c
	.dbfunc e U7 _U7 fV
;           data -> R16
	.even
_U7::
	.dbline -1
	.dbline 18
; #include <iom16v.h>
; #include <macros.h>
; #include "hal.h"
; #include "main.h"
; #include "uart.h"
; #include "Temp.h"
;    
; 
; uint8 u7_data=0xff,u9_data=0xff,u18_data=0xff,u19_data=0xff;
; 
; /*************************************************************************************************************
; *	函数名称 :
; *	功能描述 :
; *	实际参数 :
; *	返回值   :
; *	说明     :
; *************************************************************************************************************/
; void U7 (uint8 data){
	.dbline 19
; 	 CLR_CS0;
	cbi 0x12,3
	.dbline 21
;  
; 	 PORTB = data;
	out 0x18,R16
	.dbline 22
; 	 asm ("nop");
	nop
	.dbline 23
; 	 asm ("nop");
	nop
	.dbline 24
; 	 asm ("nop"); 
	nop
	.dbline 26
; 	  
; 	 SET_CS0;
	sbi 0x12,3
	.dbline 28
; 	 
; 	 asm ("nop");
	nop
	.dbline 29
; 	 asm ("nop");
	nop
	.dbline 30
; 	 asm ("nop"); 	
	nop
	.dbline 32
; 	  
; 	 CLR_CS0;	 
	cbi 0x12,3
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e U18 _U18 fV
;           data -> R16
	.even
_U18::
	.dbline -1
	.dbline 41
; }
; /*************************************************************************************************************
; *	函数名称 :
; *	功能描述 :
; *	实际参数 :
; *	返回值   :
; *	说明     :
; *************************************************************************************************************/
; void U18 (uint8 data){
	.dbline 42
; 	 CLR_CS1;
	cbi 0x12,5
	.dbline 44
;  
; 	 PORTB = data;
	out 0x18,R16
	.dbline 45
; 	 asm ("nop");
	nop
	.dbline 46
; 	 asm ("nop");
	nop
	.dbline 47
; 	 asm ("nop"); 
	nop
	.dbline 49
; 	  
; 	 SET_CS1;
	sbi 0x12,5
	.dbline 51
; 	 
; 	 asm ("nop");
	nop
	.dbline 52
; 	 asm ("nop");
	nop
	.dbline 53
; 	 asm ("nop"); 	
	nop
	.dbline 55
; 	  
; 	 CLR_CS1;	
	cbi 0x12,5
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e U9 _U9 fV
;           data -> R16
	.even
_U9::
	.dbline -1
	.dbline 64
; }
; /*************************************************************************************************************
; *	函数名称 :
; *	功能描述 :
; *	实际参数 :
; *	返回值   :
; *	说明     :
; *************************************************************************************************************/
; void U9 (uint8 data){
	.dbline 65
; 	 CLR_CS2;
	cbi 0x12,4
	.dbline 67
;  
; 	 PORTB = data;
	out 0x18,R16
	.dbline 68
; 	 asm ("nop");
	nop
	.dbline 69
; 	 asm ("nop");
	nop
	.dbline 70
; 	 asm ("nop"); 
	nop
	.dbline 72
; 	  
; 	 SET_CS2;
	sbi 0x12,4
	.dbline 74
; 	 
; 	 asm ("nop");
	nop
	.dbline 75
; 	 asm ("nop");
	nop
	.dbline 76
; 	 asm ("nop"); 	
	nop
	.dbline 78
; 	  
; 	 CLR_CS2;	 
	cbi 0x12,4
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e U19 _U19 fV
;           data -> R16
	.even
_U19::
	.dbline -1
	.dbline 87
; }
; /*************************************************************************************************************
; *	函数名称 :
; *	功能描述 :
; *	实际参数 :
; *	返回值   :
; *	说明     :
; *************************************************************************************************************/
; void U19 (uint8 data){
	.dbline 88
; 	 CLR_CS3;
	cbi 0x12,6
	.dbline 90
;  
; 	 PORTB = data;
	out 0x18,R16
	.dbline 91
; 	 asm ("nop");
	nop
	.dbline 92
; 	 asm ("nop");
	nop
	.dbline 93
; 	 asm ("nop"); 
	nop
	.dbline 95
; 	  
; 	 SET_CS3;
	sbi 0x12,6
	.dbline 97
; 	 
; 	 asm ("nop");
	nop
	.dbline 98
; 	 asm ("nop");
	nop
	.dbline 99
; 	 asm ("nop"); 	
	nop
	.dbline 101
; 	  
; 	 CLR_CS3;		 
	cbi 0x12,6
	.dbline -2
L4:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e TempCs _TempCs fV
;          onoff -> R16
	.even
_TempCs::
	.dbline -1
	.dbline 110
; }
; /*************************************************************************************************************
; *	函数名称 :TempCs
; *	功能描述 :6675片选
; *	实际参数 :选择为0
; *	返回值   :
; *	说明     :
; *************************************************************************************************************/
; void TempCs(unsigned char onoff){
	.dbline 111
; 	if(onoff){
	tst R16
	breq L6
	.dbline 111
	.dbline 112
; 		 PORTA|= 0x08;
	sbi 0x1b,3
	.dbline 113
; 	}
	xjmp L7
L6:
	.dbline 114
	.dbline 115
	cbi 0x1b,3
	.dbline 116
L7:
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbsym r onoff 16 c
	.dbend
	.dbfunc e TempRelayOnoff _TempRelayOnoff fV
;         number -> R10
;          onoff -> R12
	.even
_TempRelayOnoff::
	xcall push_gset4x
	mov R10,R18
	mov R12,R16
	.dbline -1
	.dbline 126
; 	else{
; 		 PORTA&=~0x08;
; 	}
; }
; 
; /*************************************************************************************************************
; *	函数名称 :TempRelayOnoff
; *	功能描述 :
; *	实际参数 :        
; *	返回值   :
; *	说明     :
; **************************************************************************************************************/
; void TempRelayOnoff(unsigned char onoff,unsigned char number){
	.dbline 127
; 	 if (onoff){		  //ON
	tst R12
	brne X0
	xjmp L9
X0:
	.dbline 127
	.dbline 128
; 	    u7_data = 0x00;
	clr R2
	sts _u7_data,R2
	.dbline 129
; 		u19_data&=~0x03;
	lds R24,_u19_data
	andi R24,252
	sts _u19_data,R24
	.dbline 131
; 		
; 	 	if(0==number) u7_data|= 0x80;
	tst R10
	brne L11
	.dbline 131
	mov R24,R2
	ori R24,128
	sts _u7_data,R24
L11:
	.dbline 132
; 	 	if(1==number) u7_data|= 0x40; 
	mov R24,R10
	cpi R24,1
	brne L13
	.dbline 132
	lds R24,_u7_data
	ori R24,64
	sts _u7_data,R24
L13:
	.dbline 133
; 	 	if(2==number) u7_data|= 0x20; 
	mov R24,R10
	cpi R24,2
	brne L15
	.dbline 133
	lds R24,_u7_data
	ori R24,32
	sts _u7_data,R24
L15:
	.dbline 134
; 	 	if(3==number) u7_data|= 0x10; 
	mov R24,R10
	cpi R24,3
	brne L17
	.dbline 134
	lds R24,_u7_data
	ori R24,16
	sts _u7_data,R24
L17:
	.dbline 135
; 	 	if(4==number) u7_data|= 0x08; 
	mov R24,R10
	cpi R24,4
	brne L19
	.dbline 135
	lds R24,_u7_data
	ori R24,8
	sts _u7_data,R24
L19:
	.dbline 136
; 	 	if(5==number) u7_data|= 0x04; 
	mov R24,R10
	cpi R24,5
	brne L21
	.dbline 136
	lds R24,_u7_data
	ori R24,4
	sts _u7_data,R24
L21:
	.dbline 137
; 	 	if(6==number) u7_data|= 0x02; 
	mov R24,R10
	cpi R24,6
	brne L23
	.dbline 137
	lds R24,_u7_data
	ori R24,2
	sts _u7_data,R24
L23:
	.dbline 138
; 	 	if(7==number) u7_data|= 0x01; 
	mov R24,R10
	cpi R24,7
	brne L25
	.dbline 138
	lds R24,_u7_data
	ori R24,1
	sts _u7_data,R24
L25:
	.dbline 139
; 	 	if(8==number) u19_data|= 0x01;
	mov R24,R10
	cpi R24,8
	brne L27
	.dbline 139
	lds R24,_u19_data
	ori R24,1
	sts _u19_data,R24
L27:
	.dbline 140
; 	 	if(9==number) u19_data|= 0x02;
	mov R24,R10
	cpi R24,9
	brne L29
	.dbline 140
	lds R24,_u19_data
	ori R24,2
	sts _u19_data,R24
L29:
	.dbline 142
; 		
; 		U7(u7_data);
	lds R16,_u7_data
	xcall _U7
	.dbline 143
; 		U19(u19_data);								
	lds R16,_u19_data
	xcall _U19
	.dbline 144
; 	 }
	xjmp L10
L9:
	.dbline 145
	.dbline 146
	clr R2
	sts _u7_data,R2
	.dbline 147
	lds R24,_u19_data
	andi R24,252
	sts _u19_data,R24
	.dbline 148
	mov R16,R2
	xcall _U7
	.dbline 149
	lds R16,_u19_data
	xcall _U19
	.dbline 150
L10:
	.dbline -2
L8:
	xcall pop_gset4x
	.dbline 0 ; func end
	ret
	.dbsym r number 10 c
	.dbsym r onoff 12 c
	.dbend
	.dbfunc e TempHeatOnOff _TempHeatOnOff fV
;         number -> R10
;          onoff -> R12
	.even
_TempHeatOnOff::
	xcall push_gset4x
	mov R10,R18
	mov R12,R16
	.dbline -1
	.dbline 159
; 	 else{			 	  //OFF
; 	 	u7_data = 0;	
; 		u19_data&=~0x03;				  
; 		U7(u7_data);
; 		U19(u19_data);			  
; 	 }
; }
; /*************************************************************************************************************
; *	函数名称 :TempRelayOnoff
; *	功能描述 :
; *	实际参数 :        
; *	返回值   :
; *	说明     ://0--on   1-off
; **************************************************************************************************************/
; void TempHeatOnOff(unsigned char onoff,unsigned char number){
	.dbline 160
; 	 if (onoff){
	tst R12
	brne X1
	xjmp L32
X1:
	.dbline 160
	.dbline 161
; 		if (0==number) u9_data&=~0x01;
	tst R10
	brne L34
	.dbline 161
	lds R24,_u9_data
	andi R24,254
	sts _u9_data,R24
L34:
	.dbline 162
; 		if (1==number) u9_data&=~0x02;
	mov R24,R10

⌨️ 快捷键说明

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