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

📄 main.lis

📁 在mega128上实现ad2543的驱动程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\ad2543/delay.h
 0000                   .dbfunc e delay_1us _delay_1us fV
                        .even
 0000           _delay_1us::
 0000                   .dbline -1
 0000                   .dbline 6
 0000           ; #include <iom128v.h>
 0000           ; #include "delay.h"
 0000           ; #include "ad2543.h"
 0000           ; #include "KeyScay.h"
 0000           ; #include "lcd.h"
 0000           ; 
 0000                   .dbline 7
 0000           ; /****************************************************************************/
 0000 0000              nop
 0002                   .dbline -2
 0002           L1:
 0002                   .dbline 0 ; func end
 0002 0895              ret
 0004                   .dbend
 0004                   .dbfunc e delay_nus _delay_nus fV
 0004           ;              i -> R20,R21
 0004           ;              n -> R22,R23
                        .even
 0004           _delay_nus::
 0004 0E940000          xcall push_gset2
 0008 B801              movw R22,R16
 000A                   .dbline -1
 000A                   .dbline 11
 000A           ; //功能: AD2543使用
 000A           ; //输入: 无
 000A           ; //输出: 无
 000A           ; //备注:
 000A                   .dbline 12
 000A           ; /****************************************************************************/
 000A 4427              clr R20
 000C 5527              clr R21
 000E                   .dbline 13
 000E           ; /***************************全局变量声明*************************************/
 000E 03C0              xjmp L6
 0010           L3:
 0010                   .dbline 14
 0010 F7DF              xcall _delay_1us
 0012           L4:
 0012                   .dbline 13
 0012 4F5F              subi R20,255  ; offset = 1
 0014 5F4F              sbci R21,255
 0016           L6:
 0016                   .dbline 13
 0016 4617              cp R20,R22
 0018 5707              cpc R21,R23
 001A D0F3              brlo L3
 001C                   .dbline -2
 001C           L2:
 001C 0E940000          xcall pop_gset2
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym r i 20 i
 0022                   .dbsym r n 22 i
 0022                   .dbend
 0022                   .dbfunc e delay_1ms _delay_1ms fV
 0022           ;              i -> R16,R17
                        .even
 0022           _delay_1ms::
 0022                   .dbline -1
 0022                   .dbline 18
 0022           ; unsigned int vol16bit=0;
 0022           ; unsigned char test1[]=" AD2543TEST ";
 0022           ; unsigned int vint=0;
 0022           ; float voltemp=0;
 0022           ; 
 0022                   .dbline 20
 0022 0027              clr R16
 0024 1127              clr R17
 0026 02C0              xjmp L11
 0028           L8:
 0028                   .dbline 20
 0028           L9:
 0028                   .dbline 20
 0028 0F5F              subi R16,255  ; offset = 1
 002A 1F4F              sbci R17,255
 002C           L11:
 002C                   .dbline 20
 002C           ; 
 002C           ; /****************************************************************************/
 002C 0637              cpi R16,118
 002E E4E0              ldi R30,4
 0030 1E07              cpc R17,R30
 0032 D0F3              brlo L8
 0034                   .dbline -2
 0034           L7:
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r i 16 i
 0036                   .dbend
 0036                   .dbfunc e delay_nms _delay_nms fV
 0036           ;              i -> R20,R21
 0036           ;              n -> R22,R23
                        .even
 0036           _delay_nms::
 0036 0E940000          xcall push_gset2
 003A B801              movw R22,R16
 003C                   .dbline -1
 003C                   .dbline 24
 003C           ; //函数名:    ad2543()
 003C           ; //功能:      实现模数转换
 003C           ; //输入:   
 003C           ; //输出:      adc16(经ADC转换后的12位2进制数)
 003C                   .dbline 25
 003C           ; //备注:
 003C 4427              clr R20
 003E 5527              clr R21
 0040                   .dbline 26
 0040           ; /****************************************************************************/
 0040 03C0              xjmp L16
 0042           L13:
 0042                   .dbline 27
 0042                   .dbline 28
 0042 EFDF              xcall _delay_1ms
 0044                   .dbline 29
 0044           L14:
 0044                   .dbline 26
 0044 4F5F              subi R20,255  ; offset = 1
 0046 5F4F              sbci R21,255
 0048           L16:
 0048                   .dbline 26
 0048 4617              cp R20,R22
 004A 5707              cpc R21,R23
 004C D0F3              brlo L13
 004E                   .dbline -2
 004E           L12:
 004E 0E940000          xcall pop_gset2
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbsym r i 20 i
 0054                   .dbsym r n 22 i
 0054                   .dbend
 0054                   .dbfile C:\DOCUME~1\Administrator\桌面\ad2543/ad2543.h
 0054                   .dbfunc e init_ad2543 _init_ad2543 fV
                        .even
 0054           _init_ad2543::
 0054                   .dbline -1
 0054                   .dbline 35
 0054           ; unsigned int ad2543(void)
 0054           ; {
 0054           ;   unsigned int adc16;
 0054           ;   init_ad2543();
 0054           ;   adc16=read_ad2543();
 0054           ;   return(adc16);
 0054           ; }
 0054           ; /****************************************************************************/
 0054           ; //函数名:    main(void)
 0054                   .dbline 36
 0054           ; //功能:      主函数
 0054 00E0              ldi R16,42752
 0056 17EA              ldi R17,167
 0058 01D0              xcall _write_ad2543
 005A                   .dbline -2
 005A           L17:
 005A                   .dbline 0 ; func end
 005A 0895              ret
 005C                   .dbend
 005C                   .dbfunc e write_ad2543 _write_ad2543 fV
 005C           ;            cmd -> R20,R21
 005C           ;              i -> R22
 005C           ;          token -> R10,R11
 005C           ;        command -> R22,R23
                        .even
 005C           _write_ad2543::
 005C 0E940000          xcall push_gset3
 0060 B801              movw R22,R16
 0062                   .dbline -1
 0062                   .dbline 43
 0062           ; //输入:      无
 0062           ; //输出:      无
 0062           ; //备注:
 0062           ; /****************************************************************************/
 0062           ; void main(void)
 0062           ; { 
 0062           ;   DDRD=0X3F;
 0062                   .dbline 44
 0062           ;   PORTD=0xFF;
 0062 80E0              ldi R24,32768
 0064 90E8              ldi R25,128
 0066 5C01              movw R10,R24
 0068                   .dbline 46
 0068           ;   LCD_init();
 0068           ;   LCD_DisplayString(1,1,test1);
 0068 AB01              movw R20,R22
 006A                   .dbline 47
 006A           ;   while(1)
 006A D89A              sbi 0x1b,0
 006C                   .dbline 48
 006C           ;   {
 006C D898              cbi 0x1b,0
 006E                   .dbline 49
 006E           ;     vol16bit=ad2543();
 006E DA98              cbi 0x1b,2
 0070                   .dbline 50
 0070           ;       voltemp=(vol16bit/4096.0)*5000;
 0070 02E0              ldi R16,2
 0072 10E0              ldi R17,0
 0074 C7DF              xcall _delay_nus
 0076                   .dbline 51
 0076           ;       vint=(int)voltemp;
 0076 6627              clr R22
 0078 10C0              xjmp L22
 007A           L19:
 007A                   .dbline 52
 007A           ;       LCD_DisplayInt(2,5,vint); 
 007A                   .dbline 54
 007A           ;       delay_nms(1); 
 007A           ; 
 007A 1A01              movw R2,R20
 007C 2A20              and R2,R10
 007E 3B20              and R3,R11
 0080 2220              tst R2
 0082 11F4              brne X0
 0084 3320              tst R3
 0086 11F0              breq L23
 0088           X0:
 0088                   .dbline 55
 0088           ;   }
 0088 D99A              sbi 0x1b,1
 008A 01C0              xjmp L24
 008C           L23:
 008C                   .dbline 57
 008C           ;   
 008C           ; }   
 008C D998              cbi 0x1b,1
 008E           L24:
 008E                   .dbline 58
 008E DA9A              sbi 0x1b,2
 0090                   .dbline 59
 0090 B7DF              xcall _delay_1us
 0092                   .dbline 60
 0092 DA98              cbi 0x1b,2
 0094                   .dbline 61
 0094 B694              lsr R11
 0096 A794              ror R10
 0098                   .dbline 62
 0098           L20:
 0098                   .dbline 51
 0098 6395              inc R22
 009A           L22:
 009A                   .dbline 51
 009A 6031              cpi R22,16
 009C 70F3              brlo L19
 009E                   .dbline 63
 009E           ; }   
 009E           ; }   
 009E           ; }   
 009E           ; }   
 009E           ; }   
 009E           ; }   
 009E 02E0              ldi R16,2
 00A0 10E0              ldi R17,0
 00A2 B0DF              xcall _delay_nus
 00A4                   .dbline -2
 00A4           L18:
 00A4 0E940000          xcall pop_gset3
 00A8                   .dbline 0 ; func end
 00A8 0895              ret
 00AA                   .dbsym r cmd 20 i
 00AA                   .dbsym r i 22 c
 00AA                   .dbsym r token 10 i
 00AA                   .dbsym r command 22 i
 00AA                   .dbend
 00AA                   .dbfunc e read_ad2543 _read_ad2543 fi
 00AA           ;              i -> R20
 00AA           ;        ad16bit -> R22,R23
                        .even
 00AA           _read_ad2543::
 00AA 0E940000          xcall push_gset2
 00AE                   .dbline -1
 00AE                   .dbline 68
 00AE           ; }   
 00AE           ; }   
 00AE           ; }   
 00AE           ; }   
 00AE           ; }   
 00AE                   .dbline 69
 00AE           ; }   
 00AE 6627              clr R22
 00B0 7727              clr R23
 00B2           L26:
 00B2                   .dbline 71
 00B2                   .dbline 71
 00B2                   .dbline 71
 00B2           L27:
 00B2                   .dbline 71
 00B2           ; }   
 00B2           ; }   
 00B2 CC99              sbic 0x19,4
 00B4 FECF              rjmp L26
 00B6                   .dbline 72
 00B6           ; }   
 00B6 4427              clr R20
 00B8 09C0              xjmp L32
 00BA           L29:
 00BA                   .dbline 73
 00BA           ; }   
 00BA                   .dbline 74
 00BA           ; }   
 00BA CB9B              sbis 0x19,3
 00BC 01C0              rjmp L33
 00BE                   .dbline 74
 00BE 6160              ori R22,1
 00C0           L33:
 00C0                   .dbline 75
 00C0 DA9A              sbi 0x1b,2
 00C2                   .dbline 76
 00C2 9EDF              xcall _delay_1us
 00C4                   .dbline 77
 00C4 DA98              cbi 0x1b,2
 00C6                   .dbline 78
 00C6 660F              lsl R22
 00C8 771F              rol R23
 00CA                   .dbline 79
 00CA           L30:
 00CA                   .dbline 72
 00CA 4395              inc R20
 00CC           L32:
 00CC                   .dbline 72
 00CC 4031              cpi R20,16
 00CE A8F3              brlo L29
 00D0                   .dbline 80
 00D0           ; }   
 00D0           ; }   
 00D0           ; }   
 00D0           ; }   
 00D0           ; }   
 00D0           ; }   
 00D0 8B01              movw R16,R22
 00D2                   .dbline -2
 00D2           L25:
 00D2 0E940000          xcall pop_gset2
 00D6                   .dbline 0 ; func end
 00D6 0895              ret
 00D8                   .dbsym r i 20 c
 00D8                   .dbsym r ad16bit 22 i
 00D8                   .dbend
 00D8                   .dbfile C:\DOCUME~1\Administrator\桌面\ad2543/KeyScay.h
 00D8                   .dbfunc e key_scay _key_scay fc
 00D8           ;            key -> R20
                        .even
 00D8           _key_scay::
 00D8 0E940000          xcall push_gset1
 00DC                   .dbline -1
 00DC                   .dbline 8
 00DC                   .dbline 10
 00DC 80EF              ldi R24,240
 00DE 87BB              out 0x17,R24
 00E0                   .dbline 11
 00E0 8FE0              ldi R24,15
 00E2 88BB              out 0x18,R24
 00E4                   .dbline 13
 00E4 CB9B              sbis 0x19,3
 00E6 02C0              rjmp L36
 00E8                   .dbline 14
 00E8 4427              clr R20
 00EA 0BC0              xjmp L37
 00EC           L36:
 00EC                   .dbline 15
 00EC CA9B              sbis 0x19,2
 00EE 02C0              rjmp L38
 00F0                   .dbline 16
 00F0 44E0              ldi R20,4
 00F2 07C0              xjmp L39
 00F4           L38:
 00F4                   .dbline 17
 00F4 C99B              sbis 0x19,1
 00F6 02C0              rjmp L40
 00F8                   .dbline 18
 00F8 48E0              ldi R20,8
 00FA 03C0              xjmp L41
 00FC           L40:
 00FC                   .dbline 19
 00FC C89B              sbis 0x19,0
 00FE 01C0              rjmp L42
 0100                   .dbline 20
 0100 4CE0              ldi R20,12
 0102           L42:
 0102           L41:
 0102           L39:
 0102           L37:
 0102                   .dbline 21
 0102 8FE0              ldi R24,15

⌨️ 快捷键说明

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