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

📄 led-8-2.lst

📁 16个单片机c语言实验程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
__start:
__text_start:
      72 EFCF      LDI	R28,0xFF
      73 E2D1      LDI	R29,0x21
      74 BFCD      OUT	0x3D,R28
      75 BFDE      OUT	0x3E,R29
      76 51CE      SUBI	R28,0x1E
      77 40D0      SBCI	R29,0
      78 EA0A      LDI	R16,0xAA
      79 8308      STD	Y+0,R16
      7A 2400      CLR	R0
      7B E0E0      LDI	R30,0
      7C E0F2      LDI	R31,2
      7D E012      LDI	R17,2
      7E 32E0      CPI	R30,0x20
      7F 07F1      CPC	R31,R17
      80 F011      BEQ	0x0083
      81 9201      ST	R0,Z+
      82 CFFB      RJMP	0x007E
      83 8300      STD	Z+0,R16
      84 EEE4      LDI	R30,0xE4
      85 E0F0      LDI	R31,0
      86 E0A0      LDI	R26,0
      87 E0B2      LDI	R27,2
      88 E010      LDI	R17,0
      89 E000      LDI	R16,0
      8A BF0B      OUT	0x3B,R16
      8B 3EE4      CPI	R30,0xE4
      8C 07F1      CPC	R31,R17
      8D F021      BEQ	0x0092
      8E 95C8      LPM
      8F 9631      ADIW	R30,1
      90 920D      ST	R0,X+
      91 CFF9      RJMP	0x008B
      92 940E 044F CALL	_main
_exit:
      94 CFFF      RJMP	_exit
_encoder:
  code                 --> R20
  num                  --> R16
      95 940E 055E CALL	push_xgsetF000
FILE: E:\16实验程序\数码管显示2\encoder.h
(0001) //数码管译码函数
(0002) uchar encoder(uchar num)
(0003) {
(0004) uchar code;
(0005) switch(num)
      97 2F60      MOV	R22,R16
      98 2777      CLR	R23
      99 3060      CPI	R22,0
      9A 0767      CPC	R22,R23
      9B F129      BEQ	0x00C1
      9C 3061      CPI	R22,1
      9D E0E0      LDI	R30,0
      9E 077E      CPC	R23,R30
      9F F119      BEQ	0x00C3
      A0 3062      CPI	R22,2
      A1 E0E0      LDI	R30,0
      A2 077E      CPC	R23,R30
      A3 F109      BEQ	0x00C5
      A4 3063      CPI	R22,3
      A5 E0E0      LDI	R30,0
      A6 077E      CPC	R23,R30
      A7 F0F9      BEQ	0x00C7
      A8 3064      CPI	R22,4
      A9 E0E0      LDI	R30,0
      AA 077E      CPC	R23,R30
      AB F0E9      BEQ	0x00C9
      AC 3065      CPI	R22,5
      AD E0E0      LDI	R30,0
      AE 077E      CPC	R23,R30
      AF F0D9      BEQ	0x00CB
      B0 3066      CPI	R22,6
      B1 E0E0      LDI	R30,0
      B2 077E      CPC	R23,R30
      B3 F0C9      BEQ	0x00CD
      B4 3067      CPI	R22,7
      B5 E0E0      LDI	R30,0
      B6 077E      CPC	R23,R30
      B7 F0B9      BEQ	0x00CF
      B8 3068      CPI	R22,0x8
      B9 E0E0      LDI	R30,0
      BA 077E      CPC	R23,R30
      BB F0A9      BEQ	0x00D1
      BC 3069      CPI	R22,0x9
      BD E0E0      LDI	R30,0
      BE 077E      CPC	R23,R30
      BF F099      BEQ	0x00D3
      C0 C013      RJMP	0x00D4
(0006) {
(0007)   case 0x00:
(0008)   code=0xc0;break;
      C1 EC40      LDI	R20,0xC0
      C2 C011      RJMP	0x00D4
(0009)   case 0x01:
(0010)   code=0xf9;break;
      C3 EF49      LDI	R20,0xF9
      C4 C00F      RJMP	0x00D4
(0011)   case 0x02:
(0012)   code=0xa4;break;
      C5 EA44      LDI	R20,0xA4
      C6 C00D      RJMP	0x00D4
(0013)   case 0x03:
(0014)   code=0xb0;break;
      C7 EB40      LDI	R20,0xB0
      C8 C00B      RJMP	0x00D4
(0015)   case 0x04:
(0016)   code=0x99;break;
      C9 E949      LDI	R20,0x99
      CA C009      RJMP	0x00D4
(0017)   case 0x05:
(0018)   code=0x92;break;
      CB E942      LDI	R20,0x92
      CC C007      RJMP	0x00D4
(0019)   case 0x06:
(0020)   code=0x82;break;
      CD E842      LDI	R20,0x82
      CE C005      RJMP	0x00D4
(0021)   case 0x07:
(0022)   code=0xf8;break;
      CF EF48      LDI	R20,0xF8
      D0 C003      RJMP	0x00D4
(0023)   case 0x08:
(0024)   code=0x80;break;
      D1 E840      LDI	R20,0x80
      D2 C001      RJMP	0x00D4
(0025)   case 0x09:
(0026)   code=0x90;break;
      D3 E940      LDI	R20,0x90
(0027)   }
(0028)   return(code);
      D4 2F04      MOV	R16,R20
      D5 940C 0563 JMP	pop_xgsetF000
FILE: E:\16实验程序\数码管显示2\ch595.h
(0001) //ch595的数据输入
(0002) #define clk  1
(0003) #define rclk 2
(0004) #define dat  3  
(0005) 
(0006) //延时函数
(0007) void s_ms(unsigned int t)
(0008) {
(0009)     for(;t>1;t--)
_s_ms:
  t                    --> R16
      D7 C002      RJMP	0x00DA
      D8 5001      SUBI	R16,1
      D9 4010      SBCI	R17,0
      DA E081      LDI	R24,1
      DB E090      LDI	R25,0
      DC 1780      CP	R24,R16
      DD 0791      CPC	R25,R17
      DE F3C8      BCS	0x00D8
      DF 9508      RET
_sendbyte:
  tem                  --> R10
  i                    --> R22
  byte                 --> R20
      E0 940E 0568 CALL	push_xgsetF00C
      E2 2F40      MOV	R20,R16
(0010)     {
(0011)     }
(0012) }
(0013) //写74hc595函数
(0014) void sendbyte(uchar byte)
(0015) {    
(0016)    uchar i,tem; 
(0017)    byte=encoder(byte);       //译码
      E3 2F04      MOV	R16,R20
      E4 DFB0      RCALL	_encoder
      E5 2F40      MOV	R20,R16
(0018)    for(i=0;i<8;i++)          
      E6 2766      CLR	R22
      E7 C00C      RJMP	0x00F4
(0019)         {
(0020)          PORTA&=~(1<<clk);
      E8 98D9      CBI	0x1B,1
(0021)          tem=(byte&0x80);
      E9 2F84      MOV	R24,R20
      EA 7880      ANDI	R24,0x80
      EB 2EA8      MOV	R10,R24
(0022) 		 if(tem==0)
      EC 2388      TST	R24
      ED F411      BNE	0x00F0
(0023) 		   {
(0024) 		   PORTA&=~(1<<dat);
      EE 98DB      CBI	0x1B,3
(0025) 		   }
      EF C001      RJMP	0x00F1
(0026) 		   else
(0027) 		   {
(0028) 		   PORTA|=(1<<dat);
      F0 9ADB      SBI	0x1B,3
(0029) 		   }
(0030)          byte=byte<<1;
      F1 0F44      LSL	R20
(0031)          PORTA|=(1<<clk);
      F2 9AD9      SBI	0x1B,1
      F3 9563      INC	R22
      F4 3068      CPI	R22,0x8
      F5 F390      BCS	0x00E8
(0032)          }
(0033)          PORTA&=~(1<<rclk);
      F6 98DA      CBI	0x1B,2
(0034) 		 s_ms(100);
      F7 E604      LDI	R16,0x64
      F8 E010      LDI	R17,0
      F9 DFDD      RCALL	_s_ms
(0035)          PORTA|=(1<<rclk);         
      FA 9ADA      SBI	0x1B,2
      FB 940C 056F JMP	pop_xgsetF00C
_disa:
  data                 --> Y,+6
      FD 940E 04BB CALL	push_arg4
      FF 940E 0568 CALL	push_xgsetF00C
FILE: E:\16实验程序\数码管显示2\led-8-2.c
(0001) //数码管显示程序
(0002) #define uchar unsigned char 
(0003) #define uint unsigned int 
(0004) #include<iom16v.h>
(0005) //7段译码
(0006) #include"encoder.h"    
(0007) //写74hc595
(0008) #include"ch595.h"
(0009) #define ls138a 7
(0010) #define ls138b 6
(0011) #define ls138c 5
(0012) #define ls138en 4
(0013) 
(0014) unsigned long a1,a2,a3,a4,a5,a6,a7,a8;
(0015) 
(0016) //按10进制分解各个位
(0017) void disa(unsigned long data)
(0018) {
(0019) a8=data/10000000;
     101 E840      LDI	R20,0x80
     102 E956      LDI	R21,0x96
     103 E968      LDI	R22,0x98
     104 E070      LDI	R23,0
     105 810E      LDD	R16,Y+6
     106 811F      LDD	R17,Y+7
     107 8528      LDD	R18,Y+8
     108 8539      LDD	R19,Y+9
     109 937A      ST	R23,-Y
     10A 936A      ST	R22,-Y
     10B 935A      ST	R21,-Y
     10C 934A      ST	R20,-Y
     10D 940E 04C0 CALL	div32u
     10F 9310 0201 STS	a8+1,R17
     111 9300 0200 STS	a8,R16
     113 9330 0203 STS	a8+3,R19
     115 9320 0202 STS	a8+2,R18
(0020) a7=(data-a8*10000000)/1000000;
     117 E840      LDI	R20,0x80
     118 E956      LDI	R21,0x96
     119 E968      LDI	R22,0x98
     11A E070      LDI	R23,0
     11B 933A      ST	R19,-Y
     11C 932A      ST	R18,-Y
     11D 931A      ST	R17,-Y
     11E 930A      ST	R16,-Y
     11F 018A      MOVW	R16,R20
     120 019B      MOVW	R18,R22
     121 940E 052A CALL	empy32s
     123 0118      MOVW	R2,R16
     124 0129      MOVW	R4,R18
     125 810E      LDD	R16,Y+6
     126 811F      LDD	R17,Y+7
     127 8528      LDD	R18,Y+8
     128 8539      LDD	R19,Y+9
     129 1902      SUB	R16,R2
     12A 0913      SBC	R17,R3
     12B 0924      SBC	R18,R4
     12C 0935      SBC	R19,R5
     12D E440      LDI	R20,0x40
     12E E452      LDI	R21,0x42
     12F E06F      LDI	R22,0xF
     130 E070      LDI	R23,0
     131 937A      ST	R23,-Y
     132 936A      ST	R22,-Y
     133 935A      ST	R21,-Y
     134 934A      ST	R20,-Y
     135 940E 04C0 CALL	div32u
     137 9310 0205 STS	a7+1,R17
     139 9300 0204 STS	a7,R16
     13B 9330 0207 STS	a7+3,R19
     13D 9320 0206 STS	a7+2,R18
(0021) a6=(data-a8*10000000-a7*1000000)/100000;
     13F 9040 0202 LDS	R4,a8+2
     141 9050 0203 LDS	R5,a8+3
     143 9020 0200 LDS	R2,a8
     145 9030 0201 LDS	R3,a8+1
     147 E840      LDI	R20,0x80
     148 E956      LDI	R21,0x96
     149 E968      LDI	R22,0x98
     14A E070      LDI	R23,0
     14B 925A      ST	R5,-Y
     14C 924A      ST	R4,-Y
     14D 923A      ST	R3,-Y
     14E 922A      ST	R2,-Y
     14F 018A      MOVW	R16,R20
     150 019B      MOVW	R18,R22
     151 940E 052A CALL	empy32s
     153 802E      LDD	R2,Y+6
     154 803F      LDD	R3,Y+7
     155 8448      LDD	R4,Y+8
     156 8459      LDD	R5,Y+9
     157 1A20      SUB	R2,R16
     158 0A31      SBC	R3,R17
     159 0A42      SBC	R4,R18
     15A 0A53      SBC	R5,R19
     15B 9080 0206 LDS	R8,a7+2
     15D 9090 0207 LDS	R9,a7+3
     15F 9060 0204 LDS	R6,a7
     161 9070 0205 LDS	R7,a7+1
     163 E440      LDI	R20,0x40
     164 E452      LDI	R21,0x42
     165 E06F      LDI	R22,0xF
     166 E070      LDI	R23,0
     167 929A      ST	R9,-Y
     168 928A      ST	R8,-Y
     169 927A      ST	R7,-Y
     16A 926A      ST	R6,-Y
     16B 018A      MOVW	R16,R20
     16C 019B      MOVW	R18,R22
     16D 940E 052A CALL	empy32s
     16F 1A20      SUB	R2,R16
     170 0A31      SBC	R3,R17
     171 0A42      SBC	R4,R18
     172 0A53      SBC	R5,R19
     173 EA40      LDI	R20,0xA0
     174 E856      LDI	R21,0x86
     175 E061      LDI	R22,1
     176 E070      LDI	R23,0
     177 937A      ST	R23,-Y
     178 936A      ST	R22,-Y
     179 935A      ST	R21,-Y
     17A 934A      ST	R20,-Y
     17B 0181      MOVW	R16,R2
     17C 0192      MOVW	R18,R4
     17D 940E 04C0 CALL	div32u
     17F 9310 0209 STS	a6+1,R17
     181 9300 0208 STS	a6,R16
     183 9330 020B STS	a6+3,R19
     185 9320 020A STS	a6+2,R18
(0022) a5=(data-a8*10000000-a7*1000000-a6*100000)/10000;
     187 9040 0202 LDS	R4,a8+2
     189 9050 0203 LDS	R5,a8+3
     18B 9020 0200 LDS	R2,a8
     18D 9030 0201 LDS	R3,a8+1
     18F E840      LDI	R20,0x80
     190 E956      LDI	R21,0x96
     191 E968      LDI	R22,0x98
     192 E070      LDI	R23,0
     193 925A      ST	R5,-Y
     194 924A      ST	R4,-Y
     195 923A      ST	R3,-Y
     196 922A      ST	R2,-Y
     197 018A      MOVW	R16,R20
     198 019B      MOVW	R18,R22
     199 940E 052A CALL	empy32s
     19B 802E      LDD	R2,Y+6
     19C 803F      LDD	R3,Y+7
     19D 8448      LDD	R4,Y+8
     19E 8459      LDD	R5,Y+9
     19F 1A20      SUB	R2,R16
     1A0 0A31      SBC	R3,R17
     1A1 0A42      SBC	R4,R18
     1A2 0A53      SBC	R5,R19
     1A3 9080 0206 LDS	R8,a7+2
     1A5 9090 0207 LDS	R9,a7+3
     1A7 9060 0204 LDS	R6,a7
     1A9 9070 0205 LDS	R7,a7+1
     1AB E440      LDI	R20,0x40
     1AC E452      LDI	R21,0x42
     1AD E06F      LDI	R22,0xF
     1AE E070      LDI	R23,0
     1AF 929A      ST	R9,-Y
     1B0 928A      ST	R8,-Y
     1B1 927A      ST	R7,-Y
     1B2 926A      ST	R6,-Y
     1B3 018A      MOVW	R16,R20
     1B4 019B      MOVW	R18,R22
     1B5 940E 052A CALL	empy32s
     1B7 1A20      SUB	R2,R16
     1B8 0A31      SBC	R3,R17
     1B9 0A42      SBC	R4,R18
     1BA 0A53      SBC	R5,R19
     1BB 9080 020A LDS	R8,a6+2
     1BD 9090 020B LDS	R9,a6+3
     1BF 9060 0208 LDS	R6,a6
     1C1 9070 0209 LDS	R7,a6+1
     1C3 EA40      LDI	R20,0xA0
     1C4 E856      LDI	R21,0x86
     1C5 E061      LDI	R22,1
     1C6 E070      LDI	R23,0
     1C7 929A      ST	R9,-Y
     1C8 928A      ST	R8,-Y
     1C9 927A      ST	R7,-Y
     1CA 926A      ST	R6,-Y
     1CB 018A      MOVW	R16,R20
     1CC 019B      MOVW	R18,R22
     1CD 940E 052A CALL	empy32s
     1CF 1A20      SUB	R2,R16
     1D0 0A31      SBC	R3,R17
     1D1 0A42      SBC	R4,R18
     1D2 0A53      SBC	R5,R19
     1D3 E140      LDI	R20,0x10
     1D4 E257      LDI	R21,0x27
     1D5 E060      LDI	R22,0
     1D6 E070      LDI	R23,0
     1D7 937A      ST	R23,-Y
     1D8 936A      ST	R22,-Y
     1D9 935A      ST	R21,-Y
     1DA 934A      ST	R20,-Y
     1DB 0181      MOVW	R16,R2
     1DC 0192      MOVW	R18,R4
     1DD 940E 04C0 CALL	div32u
     1DF 9310 020D STS	a5+1,R17
     1E1 9300 020C STS	a5,R16
     1E3 9330 020F STS	a5+3,R19
     1E5 9320 020E STS	a5+2,R18
(0023) a4=(data-a8*10000000-a7*1000000-a6*100000-a5*10000)/1000;
     1E7 9040 0202 LDS	R4,a8+2
     1E9 9050 0203 LDS	R5,a8+3
     1EB 9020 0200 LDS	R2,a8
     1ED 9030 0201 LDS	R3,a8+1
     1EF E840      LDI	R20,0x80
     1F0 E956      LDI	R21,0x96
     1F1 E968      LDI	R22,0x98
     1F2 E070      LDI	R23,0
     1F3 925A      ST	R5,-Y
     1F4 924A      ST	R4,-Y
     1F5 923A      ST	R3,-Y
     1F6 922A      ST	R2,-Y
     1F7 018A      MOVW	R16,R20
     1F8 019B      MOVW	R18,R22
     1F9 940E 052A CALL	empy32s
     1FB 802E      LDD	R2,Y+6
     1FC 803F      LDD	R3,Y+7

⌨️ 快捷键说明

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