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

📄 m16_t1_pwm.lis

📁 我最近使用的一些程序代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00B0 FA01              movw R30,R20
 00B2 0183              std z+1,R16
 00B4                   .dbline 47
 00B4 1AE0              ldi R17,10
 00B6 062F              mov R16,R22
 00B8 0E940000          xcall mod8u
 00BC FA01              movw R30,R20
 00BE 0283              std z+2,R16
 00C0                   .dbline 48
 00C0           L21:
 00C0                   .dbline -2
 00C0                   .dbline 49
 00C0           ; void Sub_Process(uchar *p)
 00C0           ; {
 00C0           ;  uchar temp;
 00C0           ;  temp=p[1]*10+p[2];
 00C0           ;  if(temp!=0)
 00C0           ;  {
 00C0           ;   temp=temp-1;
 00C0           ;   p[1]=temp/10;
 00C0           ;   p[2]=temp%10;
 00C0           ;  }
 00C0           ; }
 00C0           L20:
 00C0 0E940000          xcall pop_gset2
 00C4                   .dbline 0 ; func end
 00C4 0895              ret
 00C6                   .dbsym r temp 22 c
 00C6                   .dbsym r p 20 pc
 00C6                   .dbend
 00C6                   .dbfunc e Key_Process _Key_Process fV
                        .even
 00C6           _Key_Process::
 00C6                   .dbline -1
 00C6                   .dbline 51
 00C6           ; void Key_Process()
 00C6           ; {
 00C6 06C0              xjmp L25
 00C8           L24:
 00C8                   .dbline 52
 00C8                   .dbline 52
 00C8 00E0              ldi R16,<_Data1
 00CA 10E0              ldi R17,>_Data1
 00CC A7DF              xcall _Display
 00CE                   .dbline 52
 00CE 81E0              ldi R24,1
 00D0 80930100          sts _Key1,R24
 00D4                   .dbline 52
 00D4           L25:
 00D4                   .dbline 52
 00D4           ;  while((PINB&0x01)==0){Display(Data1);Key1=1;}
 00D4 B09B              sbis 0x16,0
 00D6 F8CF              rjmp L24
 00D8 06C0              xjmp L28
 00DA           L27:
 00DA                   .dbline 53
 00DA                   .dbline 53
 00DA 00E0              ldi R16,<_Data1
 00DC 10E0              ldi R17,>_Data1
 00DE 9EDF              xcall _Display
 00E0                   .dbline 53
 00E0 81E0              ldi R24,1
 00E2 80930000          sts _Key2,R24
 00E6                   .dbline 53
 00E6           L28:
 00E6                   .dbline 53
 00E6           ;  while((PINB&0x02)==0){Display(Data1);Key2=1;}
 00E6 B19B              sbis 0x16,1
 00E8 F8CF              rjmp L27
 00EA                   .dbline 54
 00EA           ;  if(Key1==1)
 00EA 80910100          lds R24,_Key1
 00EE 8130              cpi R24,1
 00F0 31F4              brne L30
 00F2                   .dbline 55
 00F2           ;  {
 00F2                   .dbline 56
 00F2           ;   Add_Process(Data1);
 00F2 00E0              ldi R16,<_Data1
 00F4 10E0              ldi R17,>_Data1
 00F6 B3DF              xcall _Add_Process
 00F8                   .dbline 57
 00F8           ;   Key1=0;
 00F8 2224              clr R2
 00FA 20920100          sts _Key1,R2
 00FE                   .dbline 58
 00FE           ;  }
 00FE           L30:
 00FE                   .dbline 59
 00FE 80910000          lds R24,_Key2
 0102 8130              cpi R24,1
 0104 31F4              brne L32
 0106                   .dbline 60
 0106                   .dbline 61
 0106 00E0              ldi R16,<_Data1
 0108 10E0              ldi R17,>_Data1
 010A C1DF              xcall _Sub_Process
 010C                   .dbline 62
 010C 2224              clr R2
 010E 20920000          sts _Key2,R2
 0112                   .dbline 63
 0112           L32:
 0112                   .dbline -2
 0112                   .dbline 64
 0112           ;  if(Key2==1)
 0112           ;  {
 0112           ;   Sub_Process(Data1);
 0112           ;   Key2=0;
 0112           ;  }
 0112           ; }
 0112           L23:
 0112                   .dbline 0 ; func end
 0112 0895              ret
 0114                   .dbend
 0114                   .dbfunc e Set_Process _Set_Process fV
 0114           ;              i -> R20,R21
 0114           ;              p -> R20,R21
                        .even
 0114           _Set_Process::
 0114 0E940000          xcall push_gset1
 0118 A801              movw R20,R16
 011A                   .dbline -1
 011A                   .dbline 66
 011A           ; void Set_Process(uchar *p)
 011A           ; {
 011A                   .dbline 68
 011A           ;  uint i;
 011A           ;  i=p[1]*10+p[2];
 011A                   .dbline 69
 011A           ;  i=1023*i/10;
 011A                   .dbline 70
 011A           ;  OCR1AH=i>>8;
 011A FA01              movw R30,R20
 011C 2180              ldd R2,z+1
 011E 8AE0              ldi R24,10
 0120 829D              mul R24,R2
 0122 1001              movw R2,R0
 0124 FA01              movw R30,R20
 0126 4280              ldd R4,z+2
 0128 5524              clr R5
 012A 240C              add R2,R4
 012C 351C              adc R3,R5
 012E 0FEF              ldi R16,1023
 0130 13E0              ldi R17,3
 0132 9101              movw R18,R2
 0134 0E940000          xcall empy16s
 0138 2AE0              ldi R18,10
 013A 30E0              ldi R19,0
 013C 0E940000          xcall div16u
 0140 A801              movw R20,R16
 0142 1A01              movw R2,R20
 0144 232C              mov R2,R3
 0146 3324              clr R3
 0148 2BBC              out 0x2b,R2
 014A                   .dbline 71
 014A           ;  OCR1AL=i&0x00ff;
 014A CA01              movw R24,R20
 014C 9070              andi R25,0
 014E 8ABD              out 0x2a,R24
 0150                   .dbline -2
 0150                   .dbline 72
 0150           ; }
 0150           L34:
 0150 0E940000          xcall pop_gset1
 0154                   .dbline 0 ; func end
 0154 0895              ret
 0156                   .dbsym r i 20 i
 0156                   .dbsym r p 20 pc
 0156                   .dbend
 0156                   .dbfunc e Init_IO _Init_IO fV
                        .even
 0156           _Init_IO::
 0156                   .dbline -1
 0156                   .dbline 74
 0156           ; void Init_IO(void)
 0156           ; {
 0156                   .dbline 75
 0156           ;  DDRA=0xff;
 0156 8FEF              ldi R24,255
 0158 8ABB              out 0x1a,R24
 015A                   .dbline 76
 015A           ;  PORTA=0xff;
 015A 8BBB              out 0x1b,R24
 015C                   .dbline 77
 015C           ;  DDRC=0xff;
 015C 84BB              out 0x14,R24
 015E                   .dbline 78
 015E           ;  PORTC=0xff;
 015E 85BB              out 0x15,R24
 0160                   .dbline 79
 0160           ;  DDRB=0x00;
 0160 2224              clr R2
 0162 27BA              out 0x17,R2
 0164                   .dbline 80
 0164           ;  PORTB=0x00;
 0164 28BA              out 0x18,R2
 0166                   .dbline 81
 0166           ;  DDRD=0xff;
 0166 81BB              out 0x11,R24
 0168                   .dbline 82
 0168           ;  PORTD=0xff;
 0168 82BB              out 0x12,R24
 016A                   .dbline -2
 016A                   .dbline 83
 016A           ; }
 016A           L35:
 016A                   .dbline 0 ; func end
 016A 0895              ret
 016C                   .dbend
 016C                   .dbfunc e main _main fV
                        .even
 016C           _main::
 016C                   .dbline -1
 016C                   .dbline 85
 016C           ; void main(void)
 016C           ; {
 016C                   .dbline 86
 016C           ;  Init_IO();
 016C F4DF              xcall _Init_IO
 016E                   .dbline 87
 016E           ;  TCCR1A=0xc3;
 016E 83EC              ldi R24,195
 0170 8FBD              out 0x2f,R24
 0172                   .dbline 88
 0172           ;  TCCR1B=0x02;
 0172 82E0              ldi R24,2
 0174 8EBD              out 0x2e,R24
 0176                   .dbline 89
 0176           ;  DelayMs(50);
 0176 02E3              ldi R16,50
 0178 43DF              xcall _DelayMs
 017A 07C0              xjmp L38
 017C           L37:
 017C                   .dbline 91
 017C                   .dbline 92
 017C A4DF              xcall _Key_Process
 017E                   .dbline 93
 017E 00E0              ldi R16,<_Data1
 0180 10E0              ldi R17,>_Data1
 0182 C8DF              xcall _Set_Process
 0184                   .dbline 94
 0184 00E0              ldi R16,<_Data1
 0186 10E0              ldi R17,>_Data1
 0188 49DF              xcall _Display
 018A                   .dbline 95
 018A           L38:
 018A                   .dbline 90
 018A F8CF              xjmp L37
 018C           X0:
 018C                   .dbline -2
 018C                   .dbline 96
 018C           ;  while(1)
 018C           ;  {
 018C           ;   Key_Process();
 018C           ;   Set_Process(Data1);
 018C           ;   Display(Data1);
 018C           ;  }
 018C           ; }
 018C           L36:
 018C                   .dbline 0 ; func end
 018C 0895              ret
 018E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile F:\myavr\temp\M16_T1_PWM\M16_T1_PWM.c
 0000           _Key2::
 0000                   .blkb 1
 0001                   .dbsym e Key2 _Key2 c
 0001           _Key1::
 0001                   .blkb 1
 0002                   .dbsym e Key1 _Key1 c

⌨️ 快捷键说明

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