📄 hal.lis
字号:
0274 8A2D mov R24,R10
0276 8730 cpi R24,7
0278 29F4 brne L68
027A .dbline 183
027A 80910100 lds R24,_u9_data
027E 8068 ori R24,128
0280 80930100 sts _u9_data,R24
0284 L68:
0284 .dbline 184
0284 ; if (8==number) u19_data|=0x04;
0284 8A2D mov R24,R10
0286 8830 cpi R24,8
0288 29F4 brne L70
028A .dbline 184
028A 80910300 lds R24,_u19_data
028E 8460 ori R24,4
0290 80930300 sts _u19_data,R24
0294 L70:
0294 .dbline 185
0294 ; if (9==number) u19_data|=0x08;
0294 8A2D mov R24,R10
0296 8930 cpi R24,9
0298 29F4 brne L72
029A .dbline 185
029A 80910300 lds R24,_u19_data
029E 8860 ori R24,8
02A0 80930300 sts _u19_data,R24
02A4 L72:
02A4 .dbline 187
02A4 00910100 lds R16,_u9_data
02A8 C1DE xcall _U9
02AA .dbline 188
02AA 00910300 lds R16,_u19_data
02AE C9DE xcall _U19
02B0 .dbline 190
02B0 L33:
02B0 .dbline -2
02B0 L31:
02B0 0E940000 xcall pop_gset4x
02B4 .dbline 0 ; func end
02B4 0895 ret
02B6 .dbsym r number 10 c
02B6 .dbsym r onoff 12 c
02B6 .dbend
02B6 .dbfunc e delay_1ms _delay_1ms fV
02B6 ; i -> R16,R17
.even
02B6 _delay_1ms::
02B6 .dbline -1
02B6 .dbline 204
02B6 ;
02B6 ; U9(u9_data);
02B6 ; U19(u19_data);
02B6 ;
02B6 ; }
02B6 ;
02B6 ;
02B6 ; }
02B6 ;
02B6 ;
02B6 ; /*************************************************************************************************************
02B6 ; * 函数名称 :delay_1ms
02B6 ; * 功能描述 :不是1ms的延时
02B6 ; * 实际参数 :
02B6 ; * 返回值 :
02B6 ; * 说明 :
02B6 ; *************************************************************************************************************/
02B6 ; void delay_1ms (void)
02B6 ; {
02B6 .dbline 206
02B6 ; unsigned int i;
02B6 ; for (i=1;i<1140;i++)
02B6 01E0 ldi R16,1
02B8 10E0 ldi R17,0
02BA 02C0 xjmp L78
02BC L75:
02BC .dbline 207
02BC L76:
02BC .dbline 206
02BC 0F5F subi R16,255 ; offset = 1
02BE 1F4F sbci R17,255
02C0 L78:
02C0 .dbline 206
02C0 0437 cpi R16,116
02C2 E4E0 ldi R30,4
02C4 1E07 cpc R17,R30
02C6 D0F3 brlo L75
02C8 .dbline -2
02C8 L74:
02C8 .dbline 0 ; func end
02C8 0895 ret
02CA .dbsym r i 16 i
02CA .dbend
02CA .dbfunc e delay _delay fV
02CA ; i -> R10,R11
02CA ; n -> R12,R13
.even
02CA _delay::
02CA 0E940000 xcall push_gset4x
02CE 6801 movw R12,R16
02D0 .dbline -1
02D0 .dbline 217
02D0 ; ;
02D0 ; }
02D0 ; /*************************************************************************************************************
02D0 ; * 函数名称 :delay
02D0 ; * 功能描述 :
02D0 ; * 实际参数 :
02D0 ; * 返回值 :
02D0 ; * 说明 :
02D0 ; *************************************************************************************************************/
02D0 ; void delay (unsigned int n)
02D0 ; {
02D0 .dbline 218
02D0 ; unsigned int i=0;
02D0 AA24 clr R10
02D2 BB24 clr R11
02D4 04C0 xjmp L81
02D6 L80:
02D6 .dbline 220
02D6 .dbline 221
02D6 EFDF xcall _delay_1ms
02D8 .dbline 222
02D8 C501 movw R24,R10
02DA 0196 adiw R24,1
02DC 5C01 movw R10,R24
02DE .dbline 223
02DE L81:
02DE .dbline 219
02DE ; while (i<n)
02DE AC14 cp R10,R12
02E0 BD04 cpc R11,R13
02E2 C8F3 brlo L80
02E4 .dbline -2
02E4 L79:
02E4 0E940000 xcall pop_gset4x
02E8 .dbline 0 ; func end
02E8 0895 ret
02EA .dbsym r i 10 i
02EA .dbsym r n 12 i
02EA .dbend
02EA .dbfunc e TempDelay _TempDelay fV
.even
02EA _TempDelay::
02EA .dbline -1
02EA .dbline 234
02EA ; {
02EA ; delay_1ms();
02EA ; i++;
02EA ; }
02EA ; }
02EA ;
02EA ;
02EA ; /*************************************************************************************************************
02EA ; * 函数名称 :TempDelay
02EA ; * 功能描述 :有关温度的延时
02EA ; * 实际参数 :
02EA ; * 返回值 :
02EA ; * 说明 :
02EA ; *************************************************************************************************************/
02EA ; void TempDelay (void){
02EA .dbline 235
02EA ; asm("nop");
02EA 0000 nop
02EC .dbline 236
02EC ; asm("nop");
02EC 0000 nop
02EE .dbline 237
02EE ; asm("nop");
02EE 0000 nop
02F0 .dbline 238
02F0 ; asm("nop");
02F0 0000 nop
02F2 .dbline 239
02F2 ; asm("nop");
02F2 0000 nop
02F4 .dbline 240
02F4 ; asm("nop");
02F4 0000 nop
02F6 .dbline 241
02F6 ; asm("nop");
02F6 0000 nop
02F8 .dbline 242
02F8 ; asm("nop");
02F8 0000 nop
02FA .dbline 243
02FA ; asm("nop");
02FA 0000 nop
02FC .dbline 244
02FC ; asm("nop");
02FC 0000 nop
02FE .dbline 245
02FE ; asm("nop");
02FE 0000 nop
0300 .dbline 246
0300 ; asm("nop");
0300 0000 nop
0302 .dbline 247
0302 ; asm("nop");
0302 0000 nop
0304 .dbline 248
0304 ; asm("nop");
0304 0000 nop
0306 .dbline 249
0306 ; asm("nop");
0306 0000 nop
0308 .dbline 250
0308 ; asm("nop");
0308 0000 nop
030A .dbline -2
030A L83:
030A .dbline 0 ; func end
030A 0895 ret
030C .dbend
030C .dbfunc e TempRead6675Dat _TempRead6675Dat fi
030C ; tmp -> R10,R11
030C ; i -> R12
.even
030C _TempRead6675Dat::
030C 0E940000 xcall push_gset4x
0310 .dbline -1
0310 .dbline 263
0310 ; }
0310 ;
0310 ;
0310 ;
0310 ; /*************************************************************************************************************
0310 ; * 函数名称 :TempRead6675Dat
0310 ; * 功能描述 :读取温度
0310 ; * 实际参数 :
0310 ; * 返回值 :
0310 ; * 说明 :
0310 ; *************************************************************************************************************/
0310 ; unsigned int TempRead6675Dat(void)
0310 ; {
0310 .dbline 265
0310 ; unsigned char i;
0310 ; unsigned int tmp=0;
0310 AA24 clr R10
0312 BB24 clr R11
0314 .dbline 267
0314 ;
0314 ; CLRSCK;
0314 DA98 cbi 0x1b,2
0316 .dbline 269
0316 ;
0316 ; for(i=0;i<15;i++)
0316 CC24 clr R12
0318 0CC0 xjmp L88
031A L85:
031A .dbline 270
031A ; {
031A .dbline 271
031A ; TempDelay ();
031A E7DF xcall _TempDelay
031C .dbline 272
031C ; if(RSO)
031C C99B sbis 0x19,1
031E 03C0 rjmp L89
0320 .dbline 273
0320 ; tmp|=1;
0320 C501 movw R24,R10
0322 8160 ori R24,1
0324 5C01 movw R10,R24
0326 L89:
0326 .dbline 274
0326 DA9A sbi 0x1b,2
0328 .dbline 275
0328 AA0C lsl R10
032A BB1C rol R11
032C .dbline 276
032C DEDF xcall _TempDelay
032E .dbline 277
032E DA98 cbi 0x1b,2
0330 .dbline 278
0330 L86:
0330 .dbline 269
0330 C394 inc R12
0332 L88:
0332 .dbline 269
0332 8C2D mov R24,R12
0334 8F30 cpi R24,15
0336 88F3 brlo L85
0338 .dbline 279
0338 ; SETSCK;
0338 ; tmp<<=1;
0338 ; TempDelay ();
0338 ; CLRSCK;
0338 ; }
0338 ; return(tmp>>2);
0338 8501 movw R16,R10
033A 1695 lsr R17
033C 0795 ror R16
033E 1695 lsr R17
0340 0795 ror R16
0342 .dbline -2
0342 L84:
0342 0E940000 xcall pop_gset4x
0346 .dbline 0 ; func end
0346 0895 ret
0348 .dbsym r tmp 10 i
0348 .dbsym r i 12 c
0348 .dbend
0348 .dbfunc e TempInit _TempInit fV
.even
0348 _TempInit::
0348 .dbline -1
0348 .dbline 291
0348 ; }
0348 ;
0348 ;
0348 ;
0348 ; /*************************************************************************************************************
0348 ; * 函数名称 :TempInit
0348 ; * 功能描述 :初始化6675
0348 ; * 实际参数 :
0348 ; * 返回值 :
0348 ; * 说明 :
0348 ; *************************************************************************************************************/
0348 ; void TempInit (void){
0348 .dbline 292
0348 ; DDRA|= 0x04; //TSCK
0348 D29A sbi 0x1a,2
034A .dbline 293
034A ; DDRA&=~0x02; //TMISO
034A D198 cbi 0x1a,1
034C .dbline 295
034C ;
034C ; TempCs(0); //CS = 0,Enable 6675
034C 0027 clr R16
034E 84DE xcall _TempCs
0350 .dbline 297
0350 ;
0350 ; TempRead6675Dat();//进行第一次哑转换
0350 DDDF xcall _TempRead6675Dat
0352 .dbline 299
0352 ;
0352 ; TempCs(1); //CS = 0,Disable 6675
0352 01E0 ldi R16,1
0354 81DE xcall _TempCs
0356 .dbline -2
0356 L91:
0356 .dbline 0 ; func end
0356 0895 ret
0358 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -