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

📄 洗衣机.lis

📁 自己做的AVR洗衣机模型程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01DE                   .dbsym r W_data 12 c
 01DE                   .dbsym r RS 14 c
 01DE                   .dbsym r RW 20 c
 01DE                   .dbend
 01DE                   .dbfunc e Write_8bits _Write_8bits fV
 01DE           ;      Temp_data -> R12,R13
 01DE           ;              i -> R20,R21
 01DE           ;         W_bits -> R10,R11
                        .even
 01DE           _Write_8bits::
 01DE 0E940000          xcall push_xgset303C
 01E2 5801              movw R10,R16
 01E4                   .dbline -1
 01E4                   .dbline 212
 01E4           ; }
 01E4           ; /********************************************************************
 01E4           ; 函 数 名:Write_8bits
 01E4           ; 入口参数:W_bits
 01E4           ; 出口参数:无
 01E4           ; 建立日期:2007年3月3日
 01E4           ; 修改日期:
 01E4           ; 函数作用:负责串行输出8个bit位
 01E4           ; 说    明:
 01E4           ; ********************************************************************/
 01E4           ; void Write_8bits(uint W_bits)
 01E4           ; {
 01E4                   .dbline 214
 01E4           ;       uint i,Temp_data;
 01E4           ;       for(i=0; i<8; i++)
 01E4 4427              clr R20
 01E6 5527              clr R21
 01E8 19C0              xjmp L32
 01EA           L29:
 01EA                   .dbline 215
 01EA           ;       {
 01EA                   .dbline 216
 01EA           ;               Temp_data = W_bits;
 01EA 6501              movw R12,R10
 01EC                   .dbline 217
 01EC           ;               Temp_data <<= i;
 01EC 9A01              movw R18,R20
 01EE 8601              movw R16,R12
 01F0 0E940000          xcall lsl16
 01F4 6801              movw R12,R16
 01F6                   .dbline 218
 01F6           ;               if((Temp_data&0x80)==0)
 01F6 07FD              sbrc R16,7
 01F8 03C0              rjmp L33
 01FA           X11:
 01FA                   .dbline 219
 01FA           ;               {
 01FA                   .dbline 220
 01FA           ;                       Clr_SID();
 01FA D19A              sbi 0x1a,1
 01FC                   .dbline 220
 01FC D998              cbi 0x1b,1
 01FE                   .dbline 221
 01FE           ;               }
 01FE 02C0              xjmp L34
 0200           L33:
 0200                   .dbline 223
 0200           ;               else
 0200           ;               {
 0200                   .dbline 224
 0200           ;                       Set_SID();
 0200 D19A              sbi 0x1a,1
 0202                   .dbline 224
 0202 D99A              sbi 0x1b,1
 0204                   .dbline 225
 0204           ;               } 
 0204           L34:
 0204                   .dbline 226
 0204           ;               nop();
 0204 0000              nop
 0206                   .dbline 227
 0206           ;               Set_SCLK();
 0206 D29A              sbi 0x1a,2
 0208                   .dbline 227
 0208 DA9A              sbi 0x1b,2
 020A                   .dbline 228
 020A           ;               nop();
 020A 0000              nop
 020C                   .dbline 229
 020C           ;               nop();
 020C 0000              nop
 020E                   .dbline 230
 020E           ;               Clr_SCLK();
 020E D29A              sbi 0x1a,2
 0210                   .dbline 230
 0210 DA98              cbi 0x1b,2
 0212                   .dbline 231
 0212           ;               nop();
 0212 0000              nop
 0214                   .dbline 232
 0214           ;               Clr_SID();
 0214 D19A              sbi 0x1a,1
 0216                   .dbline 232
 0216 D998              cbi 0x1b,1
 0218                   .dbline 233
 0218           ;       }
 0218           L30:
 0218                   .dbline 214
 0218 4F5F              subi R20,255  ; offset = 1
 021A 5F4F              sbci R21,255
 021C           L32:
 021C                   .dbline 214
 021C 4830              cpi R20,8
 021E E0E0              ldi R30,0
 0220 5E07              cpc R21,R30
 0222 18F3              brlo L29
 0224           X12:
 0224                   .dbline -2
 0224           L28:
 0224                   .dbline 0 ; func end
 0224 0C940000          xjmp pop_xgset303C
 0228                   .dbsym r Temp_data 12 i
 0228                   .dbsym r i 20 i
 0228                   .dbsym r W_bits 10 i
 0228                   .dbend
 0228                   .dbfile F:\AVR洗衣机\洗衣机主机\Sounds_and_Display.h
 0228                   .dbfunc e bell _bell fV
 0228           ;            fff -> R16
                        .even
 0228           _bell::
 0228 4A93              st -y,R20
 022A 5A93              st -y,R21
 022C                   .dbline -1
 022C                   .dbline 2
 022C           ; void bell(uchar fff)
 022C           ; {
 022C                   .dbline 3
 022C           ; switch (fff)
 022C 402F              mov R20,R16
 022E 5527              clr R21
 0230 4030              cpi R20,0
 0232 4507              cpc R20,R21
 0234 29F0              breq L39
 0236           X13:
 0236 4130              cpi R20,1
 0238 E0E0              ldi R30,0
 023A 5E07              cpc R21,R30
 023C 41F0              breq L40
 023E           X14:
 023E 0DC0              xjmp L37
 0240           L39:
 0240                   .dbline 5
 0240           ;   {
 0240           ;   case 0:DDR_PA3=1;_PA3=0;break;
 0240 8AB3              in R24,0x1a
 0242 8860              ori R24,8
 0244 8ABB              out 0x1a,R24
 0246                   .dbline 5
 0246 8BB3              in R24,0x1b
 0248 877F              andi R24,247
 024A 8BBB              out 0x1b,R24
 024C                   .dbline 5
 024C 06C0              xjmp L37
 024E           L40:
 024E                   .dbline 6
 024E           ;   case 1:DDR_PA3=1;_PA3=1;break;
 024E 8AB3              in R24,0x1a
 0250 8860              ori R24,8
 0252 8ABB              out 0x1a,R24
 0254                   .dbline 6
 0254 8BB3              in R24,0x1b
 0256 8860              ori R24,8
 0258 8BBB              out 0x1b,R24
 025A                   .dbline 6
 025A                   .dbline 7
 025A           ;   default:break;
 025A           L37:
 025A                   .dbline -2
 025A           L35:
 025A                   .dbline 0 ; func end
 025A 5991              ld R21,y+
 025C 4991              ld R20,y+
 025E 0895              ret
 0260                   .dbsym r fff 16 c
 0260                   .dbend
 0260                   .dbfile F:\AVR洗衣机\洗衣机主机\key.h
 0260                   .dbfunc e Delay _Delay fV
 0260           ;              i -> R20,R21
 0260           ;             ms -> R16,R17
                        .even
 0260           _Delay::
 0260 4A93              st -y,R20
 0262 5A93              st -y,R21
 0264                   .dbline -1
 0264                   .dbline 12
 0264           ; /********************************************************************
 0264           ; 函 数 名:Delay
 0264           ; 入口参数:ms
 0264           ; 出口参数:无
 0264           ; 建立日期:2007年3月3日
 0264           ; 修改日期:
 0264           ; 函数作用:毫秒级的延时程序,当晶振为12Mhz时,xtal=12;
 0264           ; 说    明:
 0264           ; ********************************************************************/
 0264           ; #define xtal  8
 0264           ; void Delay(uint ms) 
 0264           ; { 
 0264 0AC0              xjmp L43
 0266           L42:
 0266                   .dbline 15
 0266           ;     uint i; 
 0266           ;     while(ms--)    
 0266           ;    { 
 0266                   .dbline 16
 0266           ;      for(i=1;i<(uint)(xtal*143-2);i++) 
 0266 41E0              ldi R20,1
 0268 50E0              ldi R21,0
 026A 02C0              xjmp L48
 026C           L45:
 026C                   .dbline 17
 026C           ;          ; 
 026C           L46:
 026C                   .dbline 16
 026C 4F5F              subi R20,255  ; offset = 1
 026E 5F4F              sbci R21,255
 0270           L48:
 0270                   .dbline 16
 0270 86E7              ldi R24,1142
 0272 94E0              ldi R25,4
 0274 4817              cp R20,R24
 0276 5907              cpc R21,R25
 0278 C8F3              brlo L45
 027A           X15:
 027A                   .dbline 18
 027A           ;    }   
 027A           L43:
 027A                   .dbline 14
 027A 1801              movw R2,R16
 027C 0150              subi R16,1
 027E 1040              sbci R17,0
 0280 2220              tst R2
 0282 89F7              brne L42
 0284 3320              tst R3
 0286 79F7              brne L42
 0288           X16:
 0288                   .dbline -2
 0288           L41:
 0288                   .dbline 0 ; func end
 0288 5991              ld R21,y+
 028A 4991              ld R20,y+
 028C 0895              ret
 028E                   .dbsym r i 20 i
 028E                   .dbsym r ms 16 i
 028E                   .dbend
 028E                   .dbfunc e DELAY _DELAY fV
 028E           ;              i -> R20,R21
 028E           ;             ms -> R16,R17
                        .even
 028E           _DELAY::
 028E 4A93              st -y,R20
 0290 5A93              st -y,R21
 0292                   .dbline -1
 0292                   .dbline 22
 0292           ; }
 0292           ; 
 0292           ; void DELAY(uint ms) 
 0292           ; { 
 0292 0AC0              xjmp L51
 0294           L50:
 0294                   .dbline 25
 0294           ;     uint i; 
 0294           ;     while(ms--)    
 0294           ;    { 
 0294                   .dbline 26
 0294           ;      for(i=1;i<(uint)(xtal*143-2);i++) 
 0294 41E0              ldi R20,1
 0296 50E0              ldi R21,0
 0298 02C0              xjmp L56
 029A           L53:
 029A                   .dbline 27
 029A           ;          ; 
 029A           L54:
 029A                   .dbline 26
 029A 4F5F              subi R20,255  ; offset = 1
 029C 5F4F              sbci R21,255
 029E           L56:
 029E                   .dbline 26
 029E 86E7              ldi R24,1142
 02A0 94E0              ldi R25,4
 02A2 4817              cp R20,R24
 02A4 5907              cpc R21,R25
 02A6 C8F3              brlo L53
 02A8           X17:
 02A8                   .dbline 28
 02A8           ;    }   
 02A8           L51:
 02A8                   .dbline 24
 02A8 1801              movw R2,R16
 02AA 0150              subi R16,1
 02AC 1040              sbci R17,0
 02AE 2220              tst R2
 02B0 89F7              brne L50
 02B2 3320              tst R3
 02B4 79F7              brne L50
 02B6           X18:
 02B6                   .dbline -2
 02B6           L49:
 02B6                   .dbline 0 ; func end
 02B6 5991              ld R21,y+
 02B8 4991              ld R20,y+
 02BA 0895              ret
 02BC                   .dbsym r i 20 i
 02BC                   .dbsym r ms 16 i
 02BC                   .dbend
 02BC                   .dbfunc e key_scan _key_scan fV
                        .even
 02BC           _key_scan::
 02BC                   .dbline -1
 02BC                   .dbline 33
 02BC           ; }
 02BC           ; 
 02BC           ; 
 02BC           ; void key_scan()
 02BC           ; {
 02BC                   .dbline 34
 02BC           ; DDR_PA4=1;
 02BC 8AB3              in R24,0x1a
 02BE 8061              ori R24,16
 02C0 8ABB              out 0x1a,R24
 02C2                   .dbline 35
 02C2           ; DDR_PA7=1;
 02C2 8AB3              in R24,0x1a
 02C4 8068              ori R24,128
 02C6 8ABB              out 0x1a,R24
 02C8                   .dbline 36
 02C8           ; _PA4=1;
 02C8 8BB3              in R24,0x1b
 02CA 8061              ori R24,16
 02CC 8BBB              out 0x1b,R24
 02CE                   .dbline 37
 02CE           ; _PA7=1;
 02CE 8BB3              in R24,0x1b
 02D0 8068              ori R24,128
 02D2 8BBB              out 0x1b,R24
 02D4                   .dbline 38
 02D4           ; DDR_PA4=0;
 02D4 8AB3              in R24,0x1a
 02D6 8F7E              andi R24,239
 02D8 8ABB              out 0x1a,R24
 02DA                   .dbline 39

⌨️ 快捷键说明

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