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

📄 ac18-1.lst

📁 AVR单片机ATmega16(L)应用实例1——风机测试仪
💻 LST
📖 第 1 页 / 共 5 页
字号:
    04D2 E604      LDI	R16,0x64
    04D3 E010      LDI	R17,0
    04D4 D4BA      RCALL	_Delay_nms
    04D5 9892      CBI	0x12,2
    04D6 9A90      SBI	0x12,0
(0306) 		   		  Delay_nms(100);POW_ON;status=12;
    04D7 E604      LDI	R16,0x64
    04D8 E010      LDI	R17,0
    04D9 D4B5      RCALL	_Delay_nms
    04DA 9891      CBI	0x12,1
    04DB E08C      LDI	R24,0xC
    04DC 93800060  STS	status,R24
(0307) 		   		  break;
    04DE C498      RJMP	0x0977
(0308) 				  
(0309) 		   case 12:Wait6S_Start_Flag=1;cnt=0;status=13;//启动6S
    04DF E081      LDI	R24,1
    04E0 9380006A  STS	Wait6S_Start_Flag,R24
    04E2 2422      CLR	R2
    04E3 2433      CLR	R3
    04E4 92300063  STS	cnt+1,R3
    04E6 92200062  STS	cnt,R2
    04E8 E08D      LDI	R24,0xD
    04E9 93800060  STS	status,R24
(0310) 		   		break;
    04EB C48B      RJMP	0x0977
(0311) 				
(0312) 		   case 13:while(Wait6S_End_Flag==0)Delay_nms(10);Wait6S_End_Flag=0;status=14;cnt=0;//等待6S定时结束
    04EC E00A      LDI	R16,0xA
    04ED E010      LDI	R17,0
    04EE D4A0      RCALL	_Delay_nms
    04EF 9020006B  LDS	R2,Wait6S_End_Flag
    04F1 2022      TST	R2
    04F2 F3C9      BEQ	0x04EC
    04F3 2422      CLR	R2
    04F4 9220006B  STS	Wait6S_End_Flag,R2
    04F6 E08E      LDI	R24,0xE
    04F7 93800060  STS	status,R24
    04F9 2433      CLR	R3
    04FA 92300063  STS	cnt+1,R3
    04FC 92200062  STS	cnt,R2
(0313) 		   		break;
    04FE C478      RJMP	0x0977
(0314) 				
(0315) 		   case 14:Wait10S_Start_Flag=1;cnt=0;clr_T1();
    04FF E081      LDI	R24,1
    0500 93800068  STS	Wait10S_Start_Flag,R24
    0502 2422      CLR	R2
    0503 2433      CLR	R3
    0504 92300063  STS	cnt+1,R3
    0506 92200062  STS	cnt,R2
    0508 DBDA      RCALL	_clr_T1
(0316) 		   		TCCR1B = 0x06;display_val=0;status=15;//启动10S并开始T1计数
    0509 E086      LDI	R24,6
    050A BD8E      OUT	0x2E,R24
    050B 2422      CLR	R2
    050C 2433      CLR	R3
    050D 92300065  STS	display_val+1,R3
    050F 92200064  STS	display_val,R2
    0511 E08F      LDI	R24,0xF
    0512 93800060  STS	status,R24
(0317) 		   		break;
    0514 C462      RJMP	0x0977
(0318) 				
(0319) 		   case 15:while(Wait10S_End_Flag==0)Delay_nms(10);Wait10S_End_Flag=0;status=16;cnt=0;//等待10S定时结束
    0515 E00A      LDI	R16,0xA
    0516 E010      LDI	R17,0
    0517 D477      RCALL	_Delay_nms
    0518 90200069  LDS	R2,Wait10S_End_Flag
    051A 2022      TST	R2
    051B F3C9      BEQ	0x0515
    051C 2422      CLR	R2
    051D 92200069  STS	Wait10S_End_Flag,R2
    051F E180      LDI	R24,0x10
    0520 93800060  STS	status,R24
    0522 2433      CLR	R3
    0523 92300063  STS	cnt+1,R3
    0525 92200062  STS	cnt,R2
(0320) 		   		break;
    0527 C44F      RJMP	0x0977
(0321) 				
(0322) 		   case 16:TCCR1B = 0x00;display_val=read_T1();status=17;//读取T1的计数(TPV)
    0528 2422      CLR	R2
    0529 BC2E      OUT	0x2E,R2
    052A DBAD      RCALL	_read_T1
    052B 93100065  STS	display_val+1,R17
    052D 93000064  STS	display_val,R16
    052F E181      LDI	R24,0x11
    0530 93800060  STS	status,R24
(0323) 		   		f=(float)display_val;f=f*3.425;display_val=(uint)f;//修正
    0532 E501      LDI	R16,0x51
    0533 E011      LDI	R17,1
    0534 940E0AD9  CALL	lpm32
    0536 933A      ST	R19,-Y
    0537 932A      ST	R18,-Y
    0538 931A      ST	R17,-Y
    0539 930A      ST	R16,-Y
    053A 91000064  LDS	R16,display_val
    053C 91100065  LDS	R17,display_val+1
    053E 9516      LSR	R17
    053F 9507      ROR	R16
    0540 940E0B35  CALL	int2fp
    0542 933A      ST	R19,-Y
    0543 932A      ST	R18,-Y
    0544 931A      ST	R17,-Y
    0545 930A      ST	R16,-Y
    0546 940E0C7E  CALL	empy32fs
    0548 91000064  LDS	R16,display_val
    054A 91100065  LDS	R17,display_val+1
    054C 7001      ANDI	R16,1
    054D 7010      ANDI	R17,0
    054E 940E0B35  CALL	int2fp
    0550 933A      ST	R19,-Y
    0551 932A      ST	R18,-Y
    0552 931A      ST	R17,-Y
    0553 930A      ST	R16,-Y
    0554 940E0B92  CALL	add32f
    0556 01FE      MOVW	R30,R28
    0557 8302      STD	Z+2,R16
    0558 8313      STD	Z+3,R17
    0559 8324      STD	Z+4,R18
    055A 8335      STD	Z+5,R19
    055B E305      LDI	R16,0x35
    055C E011      LDI	R17,1
    055D 940E0AD9  CALL	lpm32
    055F 933A      ST	R19,-Y
    0560 932A      ST	R18,-Y
    0561 931A      ST	R17,-Y
    0562 930A      ST	R16,-Y
    0563 01FE      MOVW	R30,R28
    0564 8026      LDD	R2,Z+6
    0565 8037      LDD	R3,Z+7
    0566 8440      LDD	R4,Z+8
    0567 8451      LDD	R5,Z+9
    0568 925A      ST	R5,-Y
    0569 924A      ST	R4,-Y
    056A 923A      ST	R3,-Y
    056B 922A      ST	R2,-Y
    056C 940E0C81  CALL	empy32f
    056E 01FE      MOVW	R30,R28
    056F 8302      STD	Z+2,R16
    0570 8313      STD	Z+3,R17
    0571 8324      STD	Z+4,R18
    0572 8335      STD	Z+5,R19
    0573 01FE      MOVW	R30,R28
    0574 8022      LDD	R2,Z+2
    0575 8033      LDD	R3,Z+3
    0576 8044      LDD	R4,Z+4
    0577 8055      LDD	R5,Z+5
    0578 925A      ST	R5,-Y
    0579 924A      ST	R4,-Y
    057A 923A      ST	R3,-Y
    057B 922A      ST	R2,-Y
    057C E30D      LDI	R16,0x3D
    057D E011      LDI	R17,1
    057E 940E0AD9  CALL	lpm32
    0580 933A      ST	R19,-Y
    0581 932A      ST	R18,-Y
    0582 931A      ST	R17,-Y
    0583 930A      ST	R16,-Y
    0584 940E0C4D  CALL	cmp32f
    0586 F0CC      BLT	0x05A0
    0587 01FE      MOVW	R30,R28
    0588 8022      LDD	R2,Z+2
    0589 8033      LDD	R3,Z+3
    058A 8044      LDD	R4,Z+4
    058B 8055      LDD	R5,Z+5
    058C 925A      ST	R5,-Y
    058D 924A      ST	R4,-Y
    058E 923A      ST	R3,-Y
    058F 922A      ST	R2,-Y
    0590 E30D      LDI	R16,0x3D
    0591 E011      LDI	R17,1
    0592 940E0AD9  CALL	lpm32
    0594 933A      ST	R19,-Y
    0595 932A      ST	R18,-Y
    0596 931A      ST	R17,-Y
    0597 930A      ST	R16,-Y
    0598 940E0B9A  CALL	sub32f
    059A 940E0AED  CALL	fp2int
    059C 01A8      MOVW	R20,R16
    059D 5040      SUBI	R20,0
    059E 4850      SBCI	R21,0x80
    059F C008      RJMP	0x05A8
    05A0 01FE      MOVW	R30,R28
    05A1 8102      LDD	R16,Z+2
    05A2 8113      LDD	R17,Z+3
    05A3 8124      LDD	R18,Z+4
    05A4 8135      LDD	R19,Z+5
    05A5 940E0AED  CALL	fp2int
    05A7 01A8      MOVW	R20,R16
    05A8 93500065  STS	display_val+1,R21
    05AA 93400064  STS	display_val,R20
(0324) 				TTPV=display_val;//暂存TVP
    05AC 011A      MOVW	R2,R20
    05AD 92300079  STS	TTPV+1,R3
    05AF 92200078  STS	TTPV,R2
(0325) 				if((TTPV>1850)&&(TTPV<2200))OutFlag++;//判断TPV
    05B1 E38A      LDI	R24,0x3A
    05B2 E097      LDI	R25,7
    05B3 90200078  LDS	R2,TTPV
    05B5 90300079  LDS	R3,TTPV+1
    05B7 1582      CP	R24,R2
    05B8 0593      CPC	R25,R3
    05B9 F450      BCC	0x05C4
    05BA 01C1      MOVW	R24,R2
    05BB 3988      CPI	R24,0x98
    05BC E0E8      LDI	R30,0x8
    05BD 079E      CPC	R25,R30
    05BE F428      BCC	0x05C4
    05BF 91800061  LDS	R24,OutFlag
    05C1 5F8F      SUBI	R24,0xFF
    05C2 93800061  STS	OutFlag,R24
(0326) 		   		temp=display_val;temp=temp/1000;TPV[3]=(uchar)temp;
    05C4 90A00064  LDS	R10,display_val
    05C6 90B00065  LDS	R11,display_val+1
    05C8 EE28      LDI	R18,0xE8
    05C9 E033      LDI	R19,3
    05CA 0185      MOVW	R16,R10
    05CB 940E0A7E  CALL	div16u
    05CD 0158      MOVW	R10,R16
    05CE 92A0008B  STS	TPV+3,R10
(0327) 				temp=display_val;temp=(temp/100)%10;TPV[2]=(uchar)temp;
    05D0 90A00064  LDS	R10,display_val
    05D2 90B00065  LDS	R11,display_val+1
    05D4 E624      LDI	R18,0x64
    05D5 E030      LDI	R19,0
    05D6 0185      MOVW	R16,R10
    05D7 940E0A7E  CALL	div16u
    05D9 E02A      LDI	R18,0xA
    05DA E030      LDI	R19,0
    05DB 940E0A7C  CALL	mod16u
    05DD 0158      MOVW	R10,R16
    05DE 92A0008A  STS	TPV+2,R10
(0328) 				temp=display_val;temp=(temp/10)%10;TPV[1]=(uchar)temp;
    05E0 90A00064  LDS	R10,display_val
    05E2 90B00065  LDS	R11,display_val+1
    05E4 E02A      LDI	R18,0xA
    05E5 E030      LDI	R19,0
    05E6 0185      MOVW	R16,R10
    05E7 940E0A7E  CALL	div16u
    05E9 E02A      LDI	R18,0xA
    05EA E030      LDI	R19,0
    05EB 940E0A7C  CALL	mod16u
    05ED 0158      MOVW	R10,R16
    05EE 92A00089  STS	TPV+1,R10
(0329) 				temp=display_val;temp=temp%10;TPV[0]=(uchar)temp;
    05F0 90A00064  LDS	R10,display_val
    05F2 90B00065  LDS	R11,display_val+1
    05F4 E02A      LDI	R18,0xA
    05F5 E030      LDI	R19,0
    05F6 0185      MOVW	R16,R10
    05F7 940E0A7C  CALL	mod16u
    05F9 0158      MOVW	R10,R16
    05FA 92A00088  STS	TPV,R10
(0330) 				DisplayOneChar(12,1,TPV[3]+0x30);
    05FC 9180008B  LDS	R24,TPV+3
    05FE 5D80      SUBI	R24,0xD0
    05FF 8388      STD	Y+0,R24
    0600 E021      LDI	R18,1
    0601 E00C      LDI	R16,0xC
    0602 940E09F6  CALL	_DisplayOneChar
(0331) 				DisplayOneChar(13,1,TPV[2]+0x30);
    0604 9180008A  LDS	R24,TPV+2
    0606 5D80      SUBI	R24,0xD0
    0607 8388      STD	Y+0,R24
    0608 E021      LDI	R18,1
    0609 E00D      LDI	R16,0xD
    060A 940E09F6  CALL	_DisplayOneChar
(0332) 				DisplayOneChar(14,1,TPV[1]+0x30);
    060C 91800089  LDS	R24,TPV+1
    060E 5D80      SUBI	R24,0xD0
    060F 8388      STD	Y+0,R24
    0610 E021      LDI	R18,1
    0611 E00E      LDI	R16,0xE
    0612 940E09F6  CALL	_DisplayOneChar
(0333) 				DisplayOneChar(15,1,TPV[0]+0x30);
    0614 91800088  LDS	R24,TPV
    0616 5D80      SUBI	R24,0xD0
    0617 8388      STD	Y+0,R24
    0618 E021      LDI	R18,1
    0619 E00F      LDI	R16,0xF
    061A 940E09F6  CALL	_DisplayOneChar
(0334) 				break;
    061C C35A      RJMP	0x0977
(0335) 				
(0336) 		   case 17:SPEED_5V;status=18;//转换成27V,RPM
    061D 9890      CBI	0x12,0
    061E E182      LDI	R24,0x12
    061F 93800060  STS	status,R24
(0337) 		   		break;
    0621 C355      RJMP	0x0977
(0338) 				
(0339) 		   case 18:Wait6S_Start_Flag=1;cnt=0;status=19;//启动6S
    0622 E081      LDI	R24,1
    0623 9380006A  STS	Wait6S_Start_Flag,R24
    0625 2422      CLR	R2
    0626 2433      CLR	R3
    0627 92300063  STS	cnt+1,R3
    0629 92200062  STS	cnt,R2
    062B E183      LDI	R24,0x13
    062C 93800060  STS	status,R24
(0340) 		   		break;
    062E C348      RJMP	0x0977
(0341) 				
(0342) 		   case 19:while(Wait6S_End_Flag==0)Delay_nms(10);Wait6S_End_Flag=0;status=20;cnt=0;//等待6S定时结束
    062F E00A      LDI	R16,0xA
    0630 E010      LDI	R17,0
    0631 D35D      RCALL	_Delay_nms
    0632 9020006B  LDS	R2,Wait6S_End_Flag
    0634 2022      TST	R2
    0635 F3C9      BEQ	0x062F
    0636 2422      CLR	R2
    0637 9220006B  STS	Wait6S_End_Flag,R2
    0639 E184      LDI	R24,0x14
    063A 93800060  STS	status,R24
    063C 2433      CLR	R3
    063D 92300063  STS	cnt+1,R3
    063F 92200062  STS	cnt,R2
(0343) 		   		break;
    0641 C335      RJMP	0x0977
(0344) 				
(0345) 		   case 20:Wait10S_Start_Flag=1;cnt=0;clr_T1();
    0642 E081      LDI	R24,1
    0643 93800068  STS	Wait10S_Start_Flag,R24
    0645 2422      CLR	R2
    0646 2433      CLR	R3
    0647 92300063  STS	cnt+1,R3
    0649 92200062  STS	cnt,R2
    064B DA97      RCALL	_clr_T1
(0346) 		   		TCCR1B = 0x06;status=21;//启动10S并开始计数
    064C E086      LDI	R24,6
    064D BD8E      OUT	0x2E,R24
    064E E185      LDI	R24,0x15
    064F 93800060  STS	status,R24
(0347) 		   		break;
    0651 C325      RJMP	0x0977
(0348) 				
(0349) 		   case 21:while(Wait10S_End_Flag==0)Delay_nms(10);Wait10S_End_Flag=0;status=22;cnt=0;//等待10S定时结束
    0652 E00A      LDI	R16,0xA
    0653 E010      LDI	R17,0
    0654 D33A      RCALL	_Delay_nms
    0655 90200069  LDS	R2,Wait10S_End_Flag
    0657 2022      TST	R2
    0658 F3C9      BEQ	0x0652
    0659 2422      CLR	R2
    065A 92200069  STS	Wait10S_End_Flag,R2
    065C E186      LDI	R24,0x16
    065D 93800060  STS	status,R24
    065F 2433      CLR	R3
    0660 92300063  STS	cnt+1,R3
    0662 92200062  STS	cnt,R2
(0350) 		   		break;
    0664 C312      RJMP	0x0977
(0351) 				
(0352) 		   case 22:TCCR1B = 0x00;display_val=read_T1();status=23;//读取T1的计数(RPM)
    0665 2422      CLR	R2
    0666 BC2E      OUT	0x2E,R2
    0667 DA70      RCALL	_read_T1
    0668 93100065  STS	display_val+1,R17
    066A 93000064  STS	display_val,R16
    066C E187      LDI	R24,0x17
    066D 93800060  STS	status,R24
(0353) 		   		f=(float)display_val;f=f*3;display_val=(uint)f;//修正
    066F E501      LDI	R16,0x51
    0670 E011      LDI	R17,1
    0671 940E0AD9  CALL	lpm32
    0673 933A      ST	R19,-Y
    0674 932A      ST	R18,-Y
    0675 931A      ST	R17,-Y
    0676 930A      ST	R16,-Y
    0677 91000064  LDS	R16,display_val
    0679 91100065  LDS	R17,display_val+1
    067B 9516      LSR	R17
    067C 9507      ROR	R16
    067D 940E0B35  CALL	int2fp
    067F 933A      ST	R19,-Y
    0680 932A      ST	R18,-Y
    0681 931A      ST	R17,-Y
    0682 930A      ST	R16,-Y
    0683 940E0C7E  CALL	empy32fs
    0685 91000064  LDS	R16,display_val
    0687 91100065  LDS	R17,display_val+1
    0689 7001      ANDI	R16,1
    068A 7010      ANDI	R17,0
    068B 940E0B35  CALL	int2fp
    068D 933A      ST	R19,-Y
    068E 932A      ST	R18,-Y
    068F 931A      ST	R17,-Y
    0690 930A      ST	R16,-Y
    0691 940E0B92  CALL	add32f
    0693 01FE      MOVW	R30,R28
    0694 8302      STD	Z+2,R16
    0695 8313      STD	Z+3,R17
    0696 8324      STD	Z+4,R18
    0697 8335      STD	Z+5,R19
    0698 E301      LDI	R16,0x31
    0699 E011      LDI	R17,1

⌨️ 快捷键说明

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