📄 zuhe.lis
字号:
.module zuhe.c
.area data(ram, con, rel)
0000 _d::
0000 .blkb 2
.area idata
0000 573D .byte 'W,61
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 112E .byte 17,46
.area data(ram, con, rel)
0004 .blkb 2
.area idata
0004 1111 .byte 17,17
.area data(ram, con, rel)
0006 .blkb 2
.area idata
0006 1177 .byte 17,'w
.area data(ram, con, rel)
0008 .blkb 1
.area idata
0008 23 .byte 35
.area data(ram, con, rel)
0009 .dbfile zuhe.c
0009 .dbsym e d _d A[9:9]c
.area text(rom, con, rel)
0000 .dbfile zuhe.c
0000 .dbfunc e delay _delay fV
0000 ; j -> R20
0000 ; x -> R16,R17
.even
0000 _delay::
0000 00D0 rcall push_gset1
0002 .dbline -1
0002 .dbline 17
0002 ; #include<iom8v.h> //??¨1o?ATMEGA8|ì?¨a?¤???t
0002 ; #include<macros.h> //??¨1o?¨°?D?3?ê¨??o¨o|ì???§¨°?
0002 ; #define uchar unsigned char
0002 ; #define uint unsigned int
0002 ; #define osccal_addr 0x1ff
0002 ; #define fosc 8000000 //??ì??8MHZ
0002 ; #define baud 9600 //2?§¨???¨o
0002 ; #define LcdCmdPort PORTB
0002 ; #define LcdDataPort PORTB
0002 ; uint datax;
0002 ; char d[9]={0x57,0x3d,0x11,0x2e,0x11,0x11,0x11,0x77,0x23};
0002 ; uchar x,datah,K,datal,a[3],i,K,w1,w2,w3,w4;
0002 ; float v,W;
0002 ;
0002 ; //?á?D??¨?¨o?à|죤???ê???16??é??
0002 ; void delay(uint x)
0002 ; { uchar j;
0002 05C0 rjmp L3
0004 L2:
0004 .dbline 19
0004 ; while(x-->0)
0004 ; {
0004 .dbline 20
0004 ; for(j=0;j<5;j++)
0004 4427 clr R20
0006 01C0 rjmp L8
0008 L5:
0008 .dbline 21
0008 .dbline 21
0008 .dbline 21
0008 L6:
0008 .dbline 20
0008 4395 inc R20
000A L8:
000A .dbline 20
000A 4530 cpi R20,5
000C E8F3 brlo L5
000E .dbline 22
000E L3:
000E .dbline 18
000E 1801 movw R2,R16
0010 0150 subi R16,1
0012 1040 sbci R17,0
0014 2220 tst R2
0016 B1F7 brne L2
0018 3320 tst R3
001A A1F7 brne L2
001C X0:
001C .dbline -2
001C .dbline 23
001C ; {;}
001C ; }
001C ; }
001C L1:
001C 00D0 rcall pop_gset1
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbsym r j 20 c
0020 .dbsym r x 16 i
0020 .dbend
0020 .dbfunc e EEPROM_read _EEPROM_read fc
0020 ; uiAddress -> R16,R17
.even
0020 _EEPROM_read::
0020 .dbline -1
0020 .dbline 28
0020 L10:
0020 .dbline 28
0020 L11:
0020 .dbline 28
0020 ;
0020 ;
0020 ;
0020 ; unsigned char EEPROM_read(unsigned int uiAddress)
0020 ; {while(EECR&(1<<EEWE));
0020 E199 sbic 0x1c,1
0022 FECF rjmp L10
0024 .dbline 29
0024 ; EEAR=uiAddress;
0024 1FBB out 0x1f,R17
0026 0EBB out 0x1e,R16
0028 .dbline 30
0028 ; EECR|=(1<<EERE);
0028 E09A sbi 0x1c,0
002A .dbline 31
002A ; return EEDR;
002A 0DB3 in R16,0x1d
002C .dbline -2
002C L9:
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym r uiAddress 16 i
002E .dbend
002E .dbfunc e init_adc _init_adc fV
.even
002E _init_adc::
002E .dbline -1
002E .dbline 35
002E ; }
002E ;
002E ; void init_adc(void)
002E ; {ADMUX=(3<<REFS0); //ADC2???|ì??1?a?¨22?2.56V,??ê?a¨a?§|쨤????ADC0
002E .dbline 35
002E 80EC ldi R24,192
0030 87B9 out 0x7,R24
0032 .dbline 36
0032 ; ADCSRA=(1<<ADEN)|(1<<ADSC); //ADC¨o1?¨1?ê?2?é????¥¨°?????áa???ê?2?à??¤??|ì,
0032 86B9 out 0x6,R24
0034 .dbline -2
0034 .dbline 38
0034 ;
0034 ; }
0034 L13:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbend
0036 .dbfunc e readadc _readadc fV
.even
0036 _readadc::
0036 .dbline -1
0036 .dbline 41
0036 ;
0036 ; void readadc(void)
0036 ; {datal=ADCL;
0036 .dbline 41
0036 24B0 in R2,0x4
0038 20921000 sts _datal,R2
003C .dbline 42
003C ; datah=ADCH;
003C 25B0 in R2,0x5
003E 20921200 sts _datah,R2
0042 .dbline -2
0042 .dbline 45
0042 ; //ADCSRA=(1<<ADSC); //|죤????áa??¥
0042 ; //datax=(datah<<8)+datal;
0042 ; }
0042 L14:
0042 .dbline 0 ; func end
0042 0895 ret
0044 .dbend
0044 .dbfunc e LcdBusy _LcdBusy fV
.even
0044 _LcdBusy::
0044 .dbline -1
0044 .dbline 50
0044 ;
0044 ; void LcdBusy(void); /* LCD???ì?????? */
0044 ;
0044 ; void LcdBusy()
0044 ; {
0044 .dbline 52
0044 ;
0044 ; PORTC &= ~(1<<PORTC4);
0044 AC98 cbi 0x15,4
0046 .dbline 53
0046 ; PORTC |= (1<<PORTC5);
0046 AD9A sbi 0x15,5
0048 .dbline 54
0048 ; LcdCmdPort = 0xff;
0048 8FEF ldi R24,255
004A 88BB out 0x18,R24
004C .dbline 55
004C ; DDRB=0x00;
004C 2224 clr R2
004E 27BA out 0x17,R2
0050 .dbline 56
0050 ; PORTC |= (1<<PORTC3);
0050 AB9A sbi 0x15,3
0052 .dbline 57
0052 ; PORTC &= ~(1<<PORTC3);
0052 AB98 cbi 0x15,3
0054 02C0 rjmp L17
0056 L16:
0056 .dbline 59
0056 .dbline 61
0056 AB98 cbi 0x15,3
0058 .dbline 62
0058 AB9A sbi 0x15,3
005A .dbline 63
005A L17:
005A .dbline 58
005A ; while ((PINB&0x80)!=0)
005A B799 sbic 0x16,7
005C FCCF rjmp L16
005E .dbline 64
005E ; {
005E ;
005E ; PORTC &= ~(1<<PORTC3);
005E ; PORTC |= (1<<PORTC3);
005E ; }
005E ; PORTC |= (1<<PORTC3);
005E AB9A sbi 0x15,3
0060 .dbline 65
0060 ; DDRB=0xff;
0060 8FEF ldi R24,255
0062 87BB out 0x17,R24
0064 .dbline -2
0064 .dbline 67
0064 ; //LcdDelay(500);
0064 ; }
0064 L15:
0064 .dbline 0 ; func end
0064 0895 ret
0066 .dbend
0066 .dbfunc e LcdXY _LcdXY fV
0066 ; y -> R22
0066 ; x -> R20
.even
0066 _LcdXY::
0066 00D0 rcall push_gset2
0068 622F mov R22,R18
006A 402F mov R20,R16
006C .dbline -1
006C .dbline 74
006C ;
006C ;
006C ;
006C ;
006C ; void LcdXY(char,char); /* LCD?????¨?????? */
006C ; void LcdXY(char x,char y)
006C ; {
006C .dbline 76
006C ;
006C ; if ((y&0x01)!=0)LcdCmd(0x80|(x-1));
006C 60FF sbrs R22,0
006E 07C0 rjmp L20
0070 .dbline 76
0070 042F mov R16,R20
0072 1127 clr R17
0074 0150 subi R16,1
0076 1040 sbci R17,0
0078 0068 ori R16,128
007A 09D0 rcall _LcdCmd
007C 06C0 rjmp L21
007E L20:
007E .dbline 77
007E 042F mov R16,R20
0080 1127 clr R17
0082 0150 subi R16,1
0084 1040 sbci R17,0
0086 006C ori R16,192
0088 02D0 rcall _LcdCmd
008A L21:
008A .dbline -2
008A .dbline 80
008A ; else LcdCmd(0xC0|(x-1));
008A ;
008A ;
008A ; }
008A L19:
008A 00D0 rcall pop_gset2
008C .dbline 0 ; func end
008C 0895 ret
008E .dbsym r y 22 c
008E .dbsym r x 20 c
008E .dbend
008E .dbfunc e LcdCmd _LcdCmd fV
008E ; c -> R20
.even
008E _LcdCmd::
008E 00D0 rcall push_gset1
0090 402F mov R20,R16
0092 .dbline -1
0092 .dbline 84
0092 ;
0092 ; void LcdCmd(char); /* LCD?????ü?????? */
0092 ; void LcdCmd(char c)
0092 ; {
0092 .dbline 86
0092 ;
0092 ; LcdBusy();
0092 D8DF rcall _LcdBusy
0094 .dbline 87
0094 ; PORTC |= (1<<PORTC3);
0094 AB9A sbi 0x15,3
0096 .dbline 88
0096 ; PORTC &= ~(1<<PORTC4);
0096 AC98 cbi 0x15,4
0098 .dbline 89
0098 ; PORTC &= ~(1<<PORTC5);
0098 AD98 cbi 0x15,5
009A .dbline 92
009A ; //PORTC &= ~(1<<PORTC3);
009A ;
009A ; LcdCmdPort = c;
009A 48BB out 0x18,R20
009C .dbline 93
009C ; delay(500);
009C 04EF ldi R16,500
009E 11E0 ldi R17,1
00A0 AFDF rcall _delay
00A2 .dbline 94
00A2 ; PORTC &= ~(1<<PORTC3);
00A2 AB98 cbi 0x15,3
00A4 .dbline -2
00A4 .dbline 96
00A4 ;
00A4 ; }
00A4 L22:
00A4 00D0 rcall pop_gset1
00A6 .dbline 0 ; func end
00A6 0895 ret
00A8 .dbsym r c 20 c
00A8 .dbend
00A8 .dbfunc e LcdData _LcdData fV
00A8 ; c -> R20
.even
00A8 _LcdData::
00A8 00D0 rcall push_gset1
00AA 402F mov R20,R16
00AC .dbline -1
00AC .dbline 101
00AC ;
00AC ;
00AC ; void LcdData(char); /* LCD???????????? */
00AC ; void LcdData(char c)
00AC ; {
00AC .dbline 103
00AC ;
00AC ; LcdBusy();
00AC CBDF rcall _LcdBusy
00AE .dbline 104
00AE ; PORTC |= (1<<PORTC3);
00AE AB9A sbi 0x15,3
00B0 .dbline 105
00B0 ; PORTC |= (1<<PORTC4);
00B0 AC9A sbi 0x15,4
00B2 .dbline 106
00B2 ; PORTC &= ~(1<<PORTC5);
00B2 AD98 cbi 0x15,5
00B4 .dbline 109
00B4 ; //PORTC &= ~(1<<PORTC3);
00B4 ;
00B4 ; LcdDataPort = c;
00B4 48BB out 0x18,R20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -