📄 hal.s
字号:
cpi R24,1
brne L36
.dbline 162
lds R24,_u9_data
andi R24,253
sts _u9_data,R24
L36:
.dbline 163
; if (2==number) u9_data&=~0x04;
mov R24,R10
cpi R24,2
brne L38
.dbline 163
lds R24,_u9_data
andi R24,251
sts _u9_data,R24
L38:
.dbline 164
; if (3==number) u9_data&=~0x08;
mov R24,R10
cpi R24,3
brne L40
.dbline 164
lds R24,_u9_data
andi R24,247
sts _u9_data,R24
L40:
.dbline 165
; if (4==number) u9_data&=~0x10;
mov R24,R10
cpi R24,4
brne L42
.dbline 165
lds R24,_u9_data
andi R24,239
sts _u9_data,R24
L42:
.dbline 166
; if (5==number) u9_data&=~0x20;
mov R24,R10
cpi R24,5
brne L44
.dbline 166
lds R24,_u9_data
andi R24,223
sts _u9_data,R24
L44:
.dbline 167
; if (6==number) u9_data&=~0x40;
mov R24,R10
cpi R24,6
brne L46
.dbline 167
lds R24,_u9_data
andi R24,191
sts _u9_data,R24
L46:
.dbline 168
; if (7==number) u9_data&=~0x80;
mov R24,R10
cpi R24,7
brne L48
.dbline 168
lds R24,_u9_data
andi R24,127
sts _u9_data,R24
L48:
.dbline 169
; if (8==number) u19_data&=~0x04;
mov R24,R10
cpi R24,8
brne L50
.dbline 169
lds R24,_u19_data
andi R24,251
sts _u19_data,R24
L50:
.dbline 170
; if (9==number) u19_data&=~0x08;
mov R24,R10
cpi R24,9
brne L52
.dbline 170
lds R24,_u19_data
andi R24,247
sts _u19_data,R24
L52:
.dbline 172
;
; U9(u9_data);
lds R16,_u9_data
xcall _U9
.dbline 173
; U19(u19_data);
lds R16,_u19_data
xcall _U19
.dbline 174
; }
xjmp L33
L32:
.dbline 175
; else{
.dbline 176
; if (0==number) u9_data|=0x01;
tst R10
brne L54
.dbline 176
lds R24,_u9_data
ori R24,1
sts _u9_data,R24
L54:
.dbline 177
; if (1==number) u9_data|=0x02;
mov R24,R10
cpi R24,1
brne L56
.dbline 177
lds R24,_u9_data
ori R24,2
sts _u9_data,R24
L56:
.dbline 178
; if (2==number) u9_data|=0x04;
mov R24,R10
cpi R24,2
brne L58
.dbline 178
lds R24,_u9_data
ori R24,4
sts _u9_data,R24
L58:
.dbline 179
; if (3==number) u9_data|=0x08;
mov R24,R10
cpi R24,3
brne L60
.dbline 179
lds R24,_u9_data
ori R24,8
sts _u9_data,R24
L60:
.dbline 180
; if (4==number) u9_data|=0x10;
mov R24,R10
cpi R24,4
brne L62
.dbline 180
lds R24,_u9_data
ori R24,16
sts _u9_data,R24
L62:
.dbline 181
; if (5==number) u9_data|=0x20;
mov R24,R10
cpi R24,5
brne L64
.dbline 181
lds R24,_u9_data
ori R24,32
sts _u9_data,R24
L64:
.dbline 182
; if (6==number) u9_data|=0x40;
mov R24,R10
cpi R24,6
brne L66
.dbline 182
lds R24,_u9_data
ori R24,64
sts _u9_data,R24
L66:
.dbline 183
; if (7==number) u9_data|=0x80;
mov R24,R10
cpi R24,7
brne L68
.dbline 183
lds R24,_u9_data
ori R24,128
sts _u9_data,R24
L68:
.dbline 184
; if (8==number) u19_data|=0x04;
mov R24,R10
cpi R24,8
brne L70
.dbline 184
lds R24,_u19_data
ori R24,4
sts _u19_data,R24
L70:
.dbline 185
; if (9==number) u19_data|=0x08;
mov R24,R10
cpi R24,9
brne L72
.dbline 185
lds R24,_u19_data
ori R24,8
sts _u19_data,R24
L72:
.dbline 187
lds R16,_u9_data
xcall _U9
.dbline 188
lds R16,_u19_data
xcall _U19
.dbline 190
L33:
.dbline -2
L31:
xcall pop_gset4x
.dbline 0 ; func end
ret
.dbsym r number 10 c
.dbsym r onoff 12 c
.dbend
.dbfunc e delay_1ms _delay_1ms fV
; i -> R16,R17
.even
_delay_1ms::
.dbline -1
.dbline 204
;
; U9(u9_data);
; U19(u19_data);
;
; }
;
;
; }
;
;
; /*************************************************************************************************************
; * 函数名称 :delay_1ms
; * 功能描述 :不是1ms的延时
; * 实际参数 :
; * 返回值 :
; * 说明 :
; *************************************************************************************************************/
; void delay_1ms (void)
; {
.dbline 206
; unsigned int i;
; for (i=1;i<1140;i++)
ldi R16,1
ldi R17,0
xjmp L78
L75:
.dbline 207
L76:
.dbline 206
subi R16,255 ; offset = 1
sbci R17,255
L78:
.dbline 206
cpi R16,116
ldi R30,4
cpc R17,R30
brlo L75
.dbline -2
L74:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay _delay fV
; i -> R10,R11
; n -> R12,R13
.even
_delay::
xcall push_gset4x
movw R12,R16
.dbline -1
.dbline 217
; ;
; }
; /*************************************************************************************************************
; * 函数名称 :delay
; * 功能描述 :
; * 实际参数 :
; * 返回值 :
; * 说明 :
; *************************************************************************************************************/
; void delay (unsigned int n)
; {
.dbline 218
; unsigned int i=0;
clr R10
clr R11
xjmp L81
L80:
.dbline 220
.dbline 221
xcall _delay_1ms
.dbline 222
movw R24,R10
adiw R24,1
movw R10,R24
.dbline 223
L81:
.dbline 219
; while (i<n)
cp R10,R12
cpc R11,R13
brlo L80
.dbline -2
L79:
xcall pop_gset4x
.dbline 0 ; func end
ret
.dbsym r i 10 i
.dbsym r n 12 i
.dbend
.dbfunc e TempDelay _TempDelay fV
.even
_TempDelay::
.dbline -1
.dbline 234
; {
; delay_1ms();
; i++;
; }
; }
;
;
; /*************************************************************************************************************
; * 函数名称 :TempDelay
; * 功能描述 :有关温度的延时
; * 实际参数 :
; * 返回值 :
; * 说明 :
; *************************************************************************************************************/
; void TempDelay (void){
.dbline 235
; asm("nop");
nop
.dbline 236
; asm("nop");
nop
.dbline 237
; asm("nop");
nop
.dbline 238
; asm("nop");
nop
.dbline 239
; asm("nop");
nop
.dbline 240
; asm("nop");
nop
.dbline 241
; asm("nop");
nop
.dbline 242
; asm("nop");
nop
.dbline 243
; asm("nop");
nop
.dbline 244
; asm("nop");
nop
.dbline 245
; asm("nop");
nop
.dbline 246
; asm("nop");
nop
.dbline 247
; asm("nop");
nop
.dbline 248
; asm("nop");
nop
.dbline 249
; asm("nop");
nop
.dbline 250
; asm("nop");
nop
.dbline -2
L83:
.dbline 0 ; func end
ret
.dbend
.dbfunc e TempRead6675Dat _TempRead6675Dat fi
; tmp -> R10,R11
; i -> R12
.even
_TempRead6675Dat::
xcall push_gset4x
.dbline -1
.dbline 263
; }
;
;
;
; /*************************************************************************************************************
; * 函数名称 :TempRead6675Dat
; * 功能描述 :读取温度
; * 实际参数 :
; * 返回值 :
; * 说明 :
; *************************************************************************************************************/
; unsigned int TempRead6675Dat(void)
; {
.dbline 265
; unsigned char i;
; unsigned int tmp=0;
clr R10
clr R11
.dbline 267
;
; CLRSCK;
cbi 0x1b,2
.dbline 269
;
; for(i=0;i<15;i++)
clr R12
xjmp L88
L85:
.dbline 270
; {
.dbline 271
; TempDelay ();
xcall _TempDelay
.dbline 272
; if(RSO)
sbis 0x19,1
rjmp L89
.dbline 273
; tmp|=1;
movw R24,R10
ori R24,1
movw R10,R24
L89:
.dbline 274
sbi 0x1b,2
.dbline 275
lsl R10
rol R11
.dbline 276
xcall _TempDelay
.dbline 277
cbi 0x1b,2
.dbline 278
L86:
.dbline 269
inc R12
L88:
.dbline 269
mov R24,R12
cpi R24,15
brlo L85
.dbline 279
; SETSCK;
; tmp<<=1;
; TempDelay ();
; CLRSCK;
; }
; return(tmp>>2);
movw R16,R10
lsr R17
ror R16
lsr R17
ror R16
.dbline -2
L84:
xcall pop_gset4x
.dbline 0 ; func end
ret
.dbsym r tmp 10 i
.dbsym r i 12 c
.dbend
.dbfunc e TempInit _TempInit fV
.even
_TempInit::
.dbline -1
.dbline 291
; }
;
;
;
; /*************************************************************************************************************
; * 函数名称 :TempInit
; * 功能描述 :初始化6675
; * 实际参数 :
; * 返回值 :
; * 说明 :
; *************************************************************************************************************/
; void TempInit (void){
.dbline 292
; DDRA|= 0x04; //TSCK
sbi 0x1a,2
.dbline 293
; DDRA&=~0x02; //TMISO
cbi 0x1a,1
.dbline 295
;
; TempCs(0); //CS = 0,Enable 6675
clr R16
xcall _TempCs
.dbline 297
;
; TempRead6675Dat();//进行第一次哑转换
xcall _TempRead6675Dat
.dbline 299
;
; TempCs(1); //CS = 0,Disable 6675
ldi R16,1
xcall _TempCs
.dbline -2
L91:
.dbline 0 ; func end
ret
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -