📄 hal.s
字号:
.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 + -