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

📄 ad.lis

📁 基于ATMEGA16的AD转换的C程序源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module ad.c
                        .area data(ram, con, rel)
 0000           _ADbz::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile H:\bbi项目源程序\AD转换\adc_16/lcd.h
 0001                   .dbsym e ADbz _ADbz c
                        .area text(rom, con, rel)
 0000                   .dbfile H:\bbi项目源程序\AD转换\adc_16/lcd.h
 0000                   .dbfunc e delay _delay fV
 0000           ;              i -> R20
 0000           ;              n -> R16
                        .even
 0000           _delay::
 0000 0E940000          xcall push_gset1
 0004                   .dbline -1
 0004                   .dbline 8
 0004           ; #include "iom16v.h"
 0004           ; #include "macros.h"
 0004           ; #include "lcd.h"
 0004           ; unsigned int Adc0_Conver[1];
 0004           ; unsigned char time;
 0004           ; void Adc_Init(void)
 0004           ; {
 0004           ;   DDRD&=~0x80;
 0004                   .dbline 10
 0004           ;   PORTD&=~0x80;
 0004           ;  ADMUX=0xe0;                //片内2.56基准源,通道为ADC0
 0004 4427              clr R20
 0006 02C0              xjmp L5
 0008           L2:
 0008                   .dbline 11
 0008                   .dbline 11
 0008 0000              nop
 000A                   .dbline 11
 000A           L3:
 000A                   .dbline 10
 000A 4395              inc R20
 000C           L5:
 000C                   .dbline 10
 000C 4017              cp R20,R16
 000E E0F3              brlo L2
 0010                   .dbline -2
 0010           L1:
 0010 0E940000          xcall pop_gset1
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbsym r i 20 c
 0016                   .dbsym r n 16 c
 0016                   .dbend
 0016                   .dbfunc e lcd_out _lcd_out fV
 0016           ;              s -> <dead>
 0016           ;              i -> R20
 0016           ;      send_byte -> R22
                        .even
 0016           _lcd_out::
 0016 0E940000          xcall push_gset2
 001A 602F              mov R22,R16
 001C                   .dbline -1
 001C                   .dbline 17
 001C           ;  ADCSRA=0X00;                //停止ADC
 001C           ; 
 001C           ;  ACSR=(1<<ACD);                                //关闭模拟比较器
 001C           ;  ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)
 001C           ;               |(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);      //使能ADC、启动AD转换、使能ADC中断、128分频
 001C           ;                                             
 001C           ; }
 001C                   .dbline 19
 001C           ; 
 001C           ; #pragma interrupt_handler Adc_isr:15
 001C 4427              clr R20
 001E 09C0              xjmp L10
 0020           L7:
 0020                   .dbline 20
 0020           ; void Adc_isr(void)
 0020                   .dbline 21
 0020           ; {
 0020 67FD              sbrc R22,7
 0022 02C0              rjmp L11
 0024                   .dbline 22
 0024           ;               time=ADCH;                              //取出转换结果到缓冲数组
 0024                   .dbline 23
 0024           ;               lcd_write2(2,1,time);           //显示转换结果
 0024 D998              cbi 0x1b,1
 0026                   .dbline 24
 0026           ;               ADCSRA|=(1<<ADSC);                              //启动转换
 0026 01C0              xjmp L12
 0028           L11:
 0028                   .dbline 26
 0028           ; }
 0028           ; void main()
 0028                   .dbline 27
 0028           ; { CLI();
 0028 D99A              sbi 0x1b,1
 002A                   .dbline 28
 002A           ;  Adc_Init();
 002A           L12:
 002A                   .dbline 29
 002A DB98              cbi 0x1b,3
 002C                   .dbline 30
 002C DB9A              sbi 0x1b,3
 002E                   .dbline 31
 002E 660F              lsl R22
 0030                   .dbline 32
 0030           L8:
 0030                   .dbline 19
 0030 4395              inc R20
 0032           L10:
 0032                   .dbline 19
 0032 4830              cpi R20,8
 0034 A8F3              brlo L7
 0036                   .dbline 33
 0036           ;  Lcd_INT();
 0036           ;  lcd_clear();
 0036           ;  SEI();
 0036           ; }
 0036           ; }
 0036 00E0              ldi R16,0
 0038 E3DF              xcall _delay
 003A                   .dbline -2
 003A           L6:
 003A 0E940000          xcall pop_gset2
 003E                   .dbline 0 ; func end
 003E 0895              ret
 0040                   .dbsym l s 1 c
 0040                   .dbsym r i 20 c
 0040                   .dbsym r send_byte 22 c
 0040                   .dbend
 0040                   .dbfunc e WR_dat _WR_dat fV
 0040           ;              s -> R20
 0040           ;            dat -> R22
                        .even
 0040           _WR_dat::
 0040 0E940000          xcall push_gset2
 0044 602F              mov R22,R16
 0046                   .dbline -1
 0046                   .dbline 38
 0046           ; }
 0046           ; }
 0046           ; }
 0046           ; }
 0046           ; }
 0046                   .dbline 40
 0046           ; }
 0046           ; }
 0046 462F              mov R20,R22
 0048 407F              andi R20,240
 004A                   .dbline 41
 004A           ; }
 004A 0AEF              ldi R16,250
 004C E4DF              xcall _lcd_out
 004E                   .dbline 42
 004E           ; }
 004E 042F              mov R16,R20
 0050 E2DF              xcall _lcd_out
 0052                   .dbline 43
 0052           ; }
 0052 462F              mov R20,R22
 0054 4F70              andi R20,15
 0056                   .dbline 44
 0056           ; }
 0056 842F              mov R24,R20
 0058 8F70              andi R24,#0x0F
 005A 8295              swap R24
 005C 482F              mov R20,R24
 005E                   .dbline 45
 005E           ; }
 005E 082F              mov R16,R24
 0060 DADF              xcall _lcd_out
 0062                   .dbline -2
 0062           L13:
 0062 0E940000          xcall pop_gset2
 0066                   .dbline 0 ; func end
 0066 0895              ret
 0068                   .dbsym r s 20 c
 0068                   .dbsym r dat 22 c
 0068                   .dbend
 0068                   .dbfunc e WR_control _WR_control fV
 0068           ;              s -> R20
 0068           ;            dat -> R22
                        .even
 0068           _WR_control::
 0068 0E940000          xcall push_gset2
 006C 602F              mov R22,R16
 006E                   .dbline -1
 006E                   .dbline 49
 006E           ; }
 006E           ; }
 006E           ; }
 006E           ; }
 006E                   .dbline 51
 006E           ; }
 006E           ; }
 006E 462F              mov R20,R22
 0070 407F              andi R20,240
 0072                   .dbline 52
 0072           ; }
 0072 08EF              ldi R16,248
 0074 D0DF              xcall _lcd_out
 0076                   .dbline 53
 0076           ; }
 0076 042F              mov R16,R20
 0078 CEDF              xcall _lcd_out
 007A                   .dbline 54
 007A           ; }
 007A 462F              mov R20,R22
 007C 4F70              andi R20,15
 007E                   .dbline 55
 007E           ; }
 007E 842F              mov R24,R20
 0080 8F70              andi R24,#0x0F
 0082 8295              swap R24
 0084 482F              mov R20,R24
 0086                   .dbline 56
 0086           ; }
 0086 082F              mov R16,R24
 0088 C6DF              xcall _lcd_out
 008A                   .dbline -2
 008A           L14:
 008A 0E940000          xcall pop_gset2
 008E                   .dbline 0 ; func end
 008E 0895              ret
 0090                   .dbsym r s 20 c
 0090                   .dbsym r dat 22 c
 0090                   .dbend
 0090                   .dbfunc e lcd_control _lcd_control fV
                        .even
 0090           _lcd_control::
 0090                   .dbline -1
 0090                   .dbline 60
 0090           ; }
 0090           ; }
 0090           ; }
 0090           ; }
 0090                   .dbline 61
 0090           ; }
 0090 00E3              ldi R16,48
 0092 EADF              xcall _WR_control
 0094                   .dbline 62
 0094           ; }
 0094 0CE0              ldi R16,12
 0096 E8DF              xcall _WR_control
 0098                   .dbline -2
 0098           L15:
 0098                   .dbline 0 ; func end
 0098 0895              ret
 009A                   .dbend
 009A                   .dbfunc e lcd_clear _lcd_clear fV
 009A           ;              i -> R20,R21
                        .even
 009A           _lcd_clear::
 009A 0E940000          xcall push_gset1
 009E                   .dbline -1
 009E                   .dbline 66
 009E           ; }
 009E           ; }
 009E           ; }
 009E           ; }
 009E                   .dbline 68
 009E           ; }
 009E           ; }
 009E 01E0              ldi R16,1
 00A0 E3DF              xcall _WR_control
 00A2                   .dbline 69
 00A2           ; }
 00A2 4427              clr R20
 00A4 5527              clr R21
 00A6           L17:
 00A6                   .dbline 70
 00A6                   .dbline 71
 00A6 0000              nop
 00A8                   .dbline 72
 00A8 0000              nop
 00AA                   .dbline 73
 00AA           L18:
 00AA                   .dbline 69
 00AA 4F5F              subi R20,255  ; offset = 1
 00AC 5F4F              sbci R21,255
 00AE                   .dbline 69
 00AE 4838              cpi R20,136
 00B0 E3E1              ldi R30,19
 00B2 5E07              cpc R21,R30
 00B4 C4F3              brlt L17
 00B6                   .dbline -2
 00B6           L16:
 00B6 0E940000          xcall pop_gset1
 00BA                   .dbline 0 ; func end
 00BA 0895              ret
 00BC                   .dbsym r i 20 I
 00BC                   .dbend
 00BC                   .dbfunc e LCD_address _LCD_address fV
 00BC           ;        address -> R20
 00BC           ;              y -> R22
 00BC           ;              x -> R20
                        .even
 00BC           _LCD_address::
 00BC 0E940000          xcall push_gset2
 00C0 622F              mov R22,R18
 00C2 402F              mov R20,R16
 00C4                   .dbline -1
 00C4                   .dbline 82
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4           ; }
 00C4                   .dbline 84
 00C4           ; }
 00C4           ; }
 00C4 5527              clr R21
 00C6 4030              cpi R20,0
 00C8 4507              cpc R20,R21
 00CA 69F0              breq L25
 00CC           X0:
 00CC 4130              cpi R20,1
 00CE E0E0              ldi R30,0
 00D0 5E07              cpc R21,R30
 00D2 61F0              breq L26
 00D4 4230              cpi R20,2
 00D6 E0E0              ldi R30,0
 00D8 5E07              cpc R21,R30
 00DA 59F0              breq L27
 00DC 4330              cpi R20,3
 00DE E0E0              ldi R30,0
 00E0 5E07              cpc R21,R30
 00E2 51F0              breq L28
 00E4 0CC0              xjmp L22
 00E6           X1:
 00E6                   .dbline 85
 00E6           ; }
 00E6           L25:
 00E6                   .dbline 87
 00E6           ; }
 00E6           ; }
 00E6 462F              mov R20,R22
 00E8 4058              subi R20,128    ; addi 128
 00EA                   .dbline 88
 00EA           ; }
 00EA 0BC0              xjmp L23
 00EC           L26:
 00EC                   .dbline 90
 00EC           ; }
 00EC           ; }
 00EC 462F              mov R20,R22
 00EE 4057              subi R20,112    ; addi 144
 00F0                   .dbline 91
 00F0           ; }
 00F0 08C0              xjmp L23
 00F2           L27:
 00F2                   .dbline 93
 00F2           ; }
 00F2           ; }
 00F2 462F              mov R20,R22
 00F4 4857              subi R20,120    ; addi 136
 00F6                   .dbline 94
 00F6           ; }
 00F6 05C0              xjmp L23
 00F8           L28:
 00F8                   .dbline 96
 00F8           ; }
 00F8           ; }
 00F8 462F              mov R20,R22
 00FA 4856              subi R20,104    ; addi 152
 00FC                   .dbline 97
 00FC           ; }
 00FC 02C0              xjmp L23
 00FE           L22:
 00FE                   .dbline 98

⌨️ 快捷键说明

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