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

📄 main.lst

📁 单片机中的ADC模块
💻 LST
📖 第 1 页 / 共 5 页
字号:
    064C 8837      LDD	R3,Z+23
    064D 8C40      LDD	R4,Z+24
    064E 8C51      LDD	R5,Z+25
    064F 925A      ST	R5,-Y
    0650 924A      ST	R4,-Y
    0651 923A      ST	R3,-Y
    0652 922A      ST	R2,-Y
    0653 EB00      LDI	R16,0xB0
    0654 E010      LDI	R17,0
    0655 940E0948  CALL	lpm32
    0657 933A      ST	R19,-Y
    0658 932A      ST	R18,-Y
    0659 931A      ST	R17,-Y
    065A 930A      ST	R16,-Y
    065B 940E0A92  CALL	cmp32f
    065D F0D4      BLT	0x0678
    065E 01FE      MOVW	R30,R28
    065F 8826      LDD	R2,Z+22
    0660 8837      LDD	R3,Z+23
    0661 8C40      LDD	R4,Z+24
    0662 8C51      LDD	R5,Z+25
    0663 925A      ST	R5,-Y
    0664 924A      ST	R4,-Y
    0665 923A      ST	R3,-Y
    0666 922A      ST	R2,-Y
    0667 EB00      LDI	R16,0xB0
    0668 E010      LDI	R17,0
    0669 940E0948  CALL	lpm32
    066B 933A      ST	R19,-Y
    066C 932A      ST	R18,-Y
    066D 931A      ST	R17,-Y
    066E 930A      ST	R16,-Y
    066F 940E09DF  CALL	sub32f
    0671 940E0962  CALL	fp2int
    0673 01C8      MOVW	R24,R16
    0674 5080      SUBI	R24,0
    0675 4890      SBCI	R25,0x80
    0676 015C      MOVW	R10,R24
    0677 C008      RJMP	0x0680
    0678 01FE      MOVW	R30,R28
    0679 8906      LDD	R16,Z+22
    067A 8917      LDD	R17,Z+23
    067B 8D20      LDD	R18,Z+24
    067C 8D31      LDD	R19,Z+25
    067D 940E0962  CALL	fp2int
    067F 0158      MOVW	R10,R16
    0680 01B5      MOVW	R22,R10
(0247)   temp=(temp2%10);// 123.4%10=3
    0681 E02A      LDI	R18,0xA
    0682 E030      LDI	R19,0
    0683 018B      MOVW	R16,R22
    0684 940E08FE  CALL	mod16u
    0686 2F40      MOV	R20,R16
(0248)   display_one(5,temp);
    0687 2F24      MOV	R18,R20
    0688 E005      LDI	R16,5
    0689 DA49      RCALL	_display_one
(0249)   led_port &= 0x7F; //点亮对应小数点
    068A B38B      IN	R24,0x1B
    068B 778F      ANDI	R24,0x7F
    068C BB8B      OUT	0x1B,R24
(0250)   delay_ms(6);
    068D E006      LDI	R16,6
    068E E010      LDI	R17,0
    068F DA2A      RCALL	_delay_ms
(0251)   led_contrl_port |= (1<<5);
    0690 9A95      SBI	0x12,5
(0252)   
(0253)   temp2=(data*10);
    0691 EB04      LDI	R16,0xB4
    0692 E010      LDI	R17,0
    0693 940E0948  CALL	lpm32
    0695 933A      ST	R19,-Y
    0696 932A      ST	R18,-Y
    0697 931A      ST	R17,-Y
    0698 930A      ST	R16,-Y
    0699 01FE      MOVW	R30,R28
    069A 8C22      LDD	R2,Z+26
    069B 8C33      LDD	R3,Z+27
    069C 8C44      LDD	R4,Z+28
    069D 8C55      LDD	R5,Z+29
    069E 925A      ST	R5,-Y
    069F 924A      ST	R4,-Y
    06A0 923A      ST	R3,-Y
    06A1 922A      ST	R2,-Y
    06A2 940E0AC6  CALL	empy32f
    06A4 01FE      MOVW	R30,R28
    06A5 8304      STD	Z+4,R16
    06A6 8315      STD	Z+5,R17
    06A7 8326      STD	Z+6,R18
    06A8 8337      STD	Z+7,R19
    06A9 01FE      MOVW	R30,R28
    06AA 8024      LDD	R2,Z+4
    06AB 8035      LDD	R3,Z+5
    06AC 8046      LDD	R4,Z+6
    06AD 8057      LDD	R5,Z+7
    06AE 925A      ST	R5,-Y
    06AF 924A      ST	R4,-Y
    06B0 923A      ST	R3,-Y
    06B1 922A      ST	R2,-Y
    06B2 EB00      LDI	R16,0xB0
    06B3 E010      LDI	R17,0
    06B4 940E0948  CALL	lpm32
    06B6 933A      ST	R19,-Y
    06B7 932A      ST	R18,-Y
    06B8 931A      ST	R17,-Y
    06B9 930A      ST	R16,-Y
    06BA 940E0A92  CALL	cmp32f
    06BC F0D4      BLT	0x06D7
    06BD 01FE      MOVW	R30,R28
    06BE 8024      LDD	R2,Z+4
    06BF 8035      LDD	R3,Z+5
    06C0 8046      LDD	R4,Z+6
    06C1 8057      LDD	R5,Z+7
    06C2 925A      ST	R5,-Y
    06C3 924A      ST	R4,-Y
    06C4 923A      ST	R3,-Y
    06C5 922A      ST	R2,-Y
    06C6 EB00      LDI	R16,0xB0
    06C7 E010      LDI	R17,0
    06C8 940E0948  CALL	lpm32
    06CA 933A      ST	R19,-Y
    06CB 932A      ST	R18,-Y
    06CC 931A      ST	R17,-Y
    06CD 930A      ST	R16,-Y
    06CE 940E09DF  CALL	sub32f
    06D0 940E0962  CALL	fp2int
    06D2 01C8      MOVW	R24,R16
    06D3 5080      SUBI	R24,0
    06D4 4890      SBCI	R25,0x80
    06D5 015C      MOVW	R10,R24
    06D6 C008      RJMP	0x06DF
    06D7 01FE      MOVW	R30,R28
    06D8 8104      LDD	R16,Z+4
    06D9 8115      LDD	R17,Z+5
    06DA 8126      LDD	R18,Z+6
    06DB 8137      LDD	R19,Z+7
    06DC 940E0962  CALL	fp2int
    06DE 0158      MOVW	R10,R16
    06DF 01B5      MOVW	R22,R10
(0254)   temp=temp2%10;// 123.4*10%10=4
    06E0 E02A      LDI	R18,0xA
    06E1 E030      LDI	R19,0
    06E2 018B      MOVW	R16,R22
    06E3 940E08FE  CALL	mod16u
    06E5 2F40      MOV	R20,R16
(0255)   display_one(4,temp);
    06E6 2F24      MOV	R18,R20
    06E7 E004      LDI	R16,4
    06E8 D9EA      RCALL	_display_one
(0256)   delay_ms(6);
    06E9 E006      LDI	R16,6
    06EA E010      LDI	R17,0
    06EB D9CE      RCALL	_delay_ms
(0257)   led_contrl_port |= (1<<4);
    06EC 9A94      SBI	0x12,4
(0258)  }
    06ED C001      RJMP	0x06EF
(0259)  else led_error();
    06EE D1A7      RCALL	_led_error
    06EF 9660      ADIW	R28,0x10
    06F0 940E091D  CALL	pop_gset3
    06F2 9624      ADIW	R28,4
    06F3 9508      RET
_display_float2:
  temp                 --> R20
  data                 --> Y+8
    06F4 940E08F9  CALL	push_arg4
    06F6 940E0926  CALL	push_gset2
    06F8 9724      SBIW	R28,4
(0260) }
(0261) 
(0262) /***********************************************
(0263) ** 显示浮点数 本函数占用 mega16 的空间 9%,有一点闪烁感,可将display中的延时调小
(0264) ** 思路二:直接显示整数,再显示点
(0265) ** 注意:输入的data必须为小于1000的四位小数(0.234,1.23,12.45,224.8) 等
(0266) ***********************************************/
(0267) 
(0268) void display_float2(float data)
(0269) {
(0270)  UNS16 temp;
(0271)  if(data>1000)
    06F9 EC00      LDI	R16,0xC0
    06FA E010      LDI	R17,0
    06FB 940E0948  CALL	lpm32
    06FD 933A      ST	R19,-Y
    06FE 932A      ST	R18,-Y
    06FF 931A      ST	R17,-Y
    0700 930A      ST	R16,-Y
    0701 01FE      MOVW	R30,R28
    0702 8424      LDD	R2,Z+12
    0703 8435      LDD	R3,Z+13
    0704 8446      LDD	R4,Z+14
    0705 8457      LDD	R5,Z+15
    0706 925A      ST	R5,-Y
    0707 924A      ST	R4,-Y
    0708 923A      ST	R3,-Y
    0709 922A      ST	R2,-Y
    070A 940E0A92  CALL	cmp32f
    070C F00C      BLT	0x070E
    070D C03A      RJMP	0x0748
(0272)  {
(0273)  temp=data;
    070E 01FE      MOVW	R30,R28
    070F 8420      LDD	R2,Z+8
    0710 8431      LDD	R3,Z+9
    0711 8442      LDD	R4,Z+10
    0712 8453      LDD	R5,Z+11
    0713 925A      ST	R5,-Y
    0714 924A      ST	R4,-Y
    0715 923A      ST	R3,-Y
    0716 922A      ST	R2,-Y
    0717 EB00      LDI	R16,0xB0
    0718 E010      LDI	R17,0
    0719 940E0948  CALL	lpm32
    071B 933A      ST	R19,-Y
    071C 932A      ST	R18,-Y
    071D 931A      ST	R17,-Y
    071E 930A      ST	R16,-Y
    071F 940E0A92  CALL	cmp32f
    0721 F0CC      BLT	0x073B
    0722 01FE      MOVW	R30,R28
    0723 8420      LDD	R2,Z+8
    0724 8431      LDD	R3,Z+9
    0725 8442      LDD	R4,Z+10
    0726 8453      LDD	R5,Z+11
    0727 925A      ST	R5,-Y
    0728 924A      ST	R4,-Y
    0729 923A      ST	R3,-Y
    072A 922A      ST	R2,-Y
    072B EB00      LDI	R16,0xB0
    072C E010      LDI	R17,0
    072D 940E0948  CALL	lpm32
    072F 933A      ST	R19,-Y
    0730 932A      ST	R18,-Y
    0731 931A      ST	R17,-Y
    0732 930A      ST	R16,-Y
    0733 940E09DF  CALL	sub32f
    0735 940E0962  CALL	fp2int
    0737 01B8      MOVW	R22,R16
    0738 5060      SUBI	R22,0
    0739 4870      SBCI	R23,0x80
    073A C008      RJMP	0x0743
    073B 01FE      MOVW	R30,R28
    073C 8500      LDD	R16,Z+8
    073D 8511      LDD	R17,Z+9
    073E 8522      LDD	R18,Z+10
    073F 8533      LDD	R19,Z+11
    0740 940E0962  CALL	fp2int
    0742 01B8      MOVW	R22,R16
    0743 01AB      MOVW	R20,R22
(0274)  display(temp,1);
    0744 E021      LDI	R18,1
    0745 018A      MOVW	R16,R20
    0746 D9A7      RCALL	_display
(0275)   return;
    0747 C149      RJMP	0x0891
(0276)  }
(0277)  if(data>100)   //比如123.4
    0748 EA0C      LDI	R16,0xAC
    0749 E010      LDI	R17,0
    074A 940E0948  CALL	lpm32
    074C 933A      ST	R19,-Y
    074D 932A      ST	R18,-Y
    074E 931A      ST	R17,-Y
    074F 930A      ST	R16,-Y
    0750 01FE      MOVW	R30,R28
    0751 8424      LDD	R2,Z+12
    0752 8435      LDD	R3,Z+13
    0753 8446      LDD	R4,Z+14
    0754 8457      LDD	R5,Z+15
    0755 925A      ST	R5,-Y
    0756 924A      ST	R4,-Y
    0757 923A      ST	R3,-Y
    0758 922A      ST	R2,-Y
    0759 940E0A92  CALL	cmp32f
    075B F00C      BLT	0x075D
    075C C059      RJMP	0x07B6
(0278)  {
(0279)   temp=data*10;
    075D EB04      LDI	R16,0xB4
    075E E010      LDI	R17,0
    075F 940E0948  CALL	lpm32
    0761 933A      ST	R19,-Y
    0762 932A      ST	R18,-Y
    0763 931A      ST	R17,-Y
    0764 930A      ST	R16,-Y
    0765 01FE      MOVW	R30,R28
    0766 8424      LDD	R2,Z+12
    0767 8435      LDD	R3,Z+13
    0768 8446      LDD	R4,Z+14
    0769 8457      LDD	R5,Z+15
    076A 925A      ST	R5,-Y
    076B 924A      ST	R4,-Y
    076C 923A      ST	R3,-Y
    076D 922A      ST	R2,-Y
    076E 940E0AC6  CALL	empy32f
    0770 01FE      MOVW	R30,R28
    0771 8300      STD	Z+0,R16
    0772 8311      STD	Z+1,R17
    0773 8322      STD	Z+2,R18
    0774 8333      STD	Z+3,R19
    0775 01FE      MOVW	R30,R28
    0776 8020      LDD	R2,Z+0
    0777 8031      LDD	R3,Z+1
    0778 8042      LDD	R4,Z+2
    0779 8053      LDD	R5,Z+3
    077A 925A      ST	R5,-Y
    077B 924A      ST	R4,-Y
    077C 923A      ST	R3,-Y
    077D 922A      ST	R2,-Y
    077E EB00      LDI	R16,0xB0
    077F E010      LDI	R17,0
    0780 940E0948  CALL	lpm32
    0782 933A      ST	R19,-Y
    0783 932A      ST	R18,-Y
    0784 931A      ST	R17,-Y
    0785 930A      ST	R16,-Y
    0786 940E0A92  CALL	cmp32f
    0788 F0CC      BLT	0x07A2
    0789 01FE      MOVW	R30,R28
    078A 8020      LDD	R2,Z+0
    078B 8031      LDD	R3,Z+1
    078C 8042      LDD	R4,Z+2
    078D 8053      LDD	R5,Z+3
    078E 925A      ST	R5,-Y
    078F 924A      ST	R4,-Y
    0790 923A      ST	R3,-Y
    0791 922A      ST	R2,-Y
    0792 EB00      LDI	R16,0xB0
    0793 E010      LDI	R17,0
    0794 940E0948  CALL	lpm32
    0796 933A      ST	R19,-Y
    0797 932A      ST	R18,-Y
    0798 931A      ST	R17,-Y
    0799 930A      ST	R16,-Y
    079A 940E09DF  CALL	sub32f
    079C 940E0962  CALL	fp2int
    079E 01B8      MOVW	R22,R16
    079F 5060      SUBI	R22,0
    07A0 4870      SBCI	R23,0x80
    07A1 C008      RJMP	0x07AA
    07A2 01FE      MOVW	R30,R28
    07A3 8100      LDD	R16,Z+0
    07A4 8111      LDD	R17,Z+1
    07A5 8122      LDD	R18,Z+2
    07A6 8133      LDD	R19,Z+3
    07A7 940E0962  CALL	fp2int
    07A9 01B8      MOVW	R22,R16
    07AA 01AB      MOVW	R20,R22
(0280)   display(temp,0); //普通模式显示 1234
    07AB 2722      CLR	R18
    07AC 018A      MOVW	R16,R20
    07AD D940      RCALL	_display
(0281)   led_contrl_port |= (1<<5); //选中第三位
    07AE 9A95      SBI	0x12,5
(0282)   led_port = 0x80; //点亮对应小数点
    07AF E880      LDI	R24,0x80
    07B0 BB8B      OUT	0x1B,R24
(0283)   delay_ms(6);
    07B1 E006      LDI	R16,6
    07B2 E010      LDI	R17,0
    07B3 D906      RCALL	_delay_ms
(0284)   led_contrl_port &=~ (1<<5);
    07B4 9895      CBI	0x12,5
(0285)   return;
    07B5 C0DB      RJMP	0x0891
(0286)  }
(0287)  if(data>10)   //比如12.34
    07B6 EB04      LDI	R16,0xB4
    07B7 E010      LDI	R17,0
    07B8 940E0948  CALL	lpm32
    07BA 933A      ST	R19,-Y
    07BB 932A      ST	R18,-Y
    07BC 931A      ST	R17,-Y
    07BD 930A      ST	R16,-Y
    07BE 01FE      MOVW	R30,R28
    07BF 8424      LDD	R2,Z+12
    07C0 8435      LDD	R3,Z+13
    07C1 8446      LDD	R4,Z+14
    07C2 8457      LDD	R5,Z+15
    07C3 925A      ST	R5,-Y
    07C4 924A      ST	R4,-Y
    07C5 923A      ST	R3,-Y
    07C6 922A      ST	R2,-Y
    07C7 940E0A92  CALL	cmp32f
    07C9 F00C      BLT	0x07CB
    07CA C059      RJMP	0x0824
(0288)  {
(0289)   temp=data*100;
    07CB EA0C      LDI	R16,0xAC
    07CC E010      LDI	R17,0
    07CD 940E0948  CALL	lpm32
    07CF 933A      ST	R19,-Y
    07D0 932A      ST	R18,-Y
    07D1 931A      ST	R17,-Y
    07D2 930A      ST	R16,-Y
    07D3 01FE      MOVW	R30,R28
    07D4 8424      LDD	R2,Z+12
    07D5 8435      LDD	R3,Z+13
    07D6 8446      LDD	R4,Z+14
    07D7 8457      LDD	R5,Z+15
    07D8 925A      ST	R5,-Y
    07D9 924A      ST	R4,-Y
    07DA 923A      ST	R3,-Y
    07DB 922A      ST	R2,-Y
    07DC 940E0AC6  CALL	empy32f
    07DE 01FE      MOVW	R30,R28
    07DF 8300      STD	Z+0,R16
    07E0 8311      STD	Z+1,R17
    07E1 8322      STD	Z+2,R18
    07E2 8333      STD	Z+3,R19
    07E3 01FE      MOVW	R30,R28
    07E4 8020      LDD	R2,Z+0
    07E5 8031      LDD	R3,Z+1
    07E6 8042      LDD	R4,Z+2
    07E7 8053      LDD	R5,Z+3
    07E8 925A      ST	R5,-Y
    07E9 924A      ST	R4,-Y
    07EA 923A      ST	R3,-Y
    07EB 922A      ST	R2,-Y
    07EC EB00 

⌨️ 快捷键说明

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