📄 洗衣机.lis
字号:
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 + -