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

📄 btm48.lis

📁 AVR ICC基于AVR单片机的LED显示程序!
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .module btm48.c
                        .area data(ram, con, rel)
 0000           _shu::
 0000                   .blkb 2
                        .area idata
 0000 C0F9              .byte 192,249
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 A4B0              .byte 164,176
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 9992              .byte 153,146
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 82F8              .byte 130,248
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 8090              .byte 128,144
                        .area data(ram, con, rel)
 000A                   .blkb 2
                        .area idata
 000A BFFF              .byte 191,255
                        .area data(ram, con, rel)
 000C                   .dbfile D:\ele\AVR\ICC\biaotao\biaotouM48/bt.h
 000C                   .dbsym e shu _shu A[12:12]c
 000C           _tm::
 000C                   .blkb 2
                        .area idata
 000C 0B0B              .byte 11,11
                        .area data(ram, con, rel)
 000E                   .dbfile D:\ele\AVR\ICC\biaotao\biaotouM48/bt.h
 000E                   .blkb 2
                        .area idata
 000E 0B0B              .byte 11,11
                        .area data(ram, con, rel)
 0010                   .dbfile D:\ele\AVR\ICC\biaotao\biaotouM48/bt.h
 0010                   .dbsym e tm _tm A[4:4]c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\ele\AVR\ICC\biaotao\biaotouM48/bt.h
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 56
 0000           ; #include <iom48v.h>
 0000           ; #include "bt.h"
 0000           ; #include "PT100.h"
 0000           ; #include <macros.h>
 0000           ; #include <eeprom.h>
 0000           ; 
 0000           ; #define uchar unsigned char
 0000           ; #define unit unsigned int
 0000           ; #define ulong unsigned long
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; #define xtal 8 
 0000           ; #define fosc 8000000 //晶振8MHZ
 0000           ; #define baud 9600      //波特率
 0000           ; 
 0000           ; 
 0000           ; #define VTest PORTC|=0X80     //测量端口电压 
 0000           ; #define TestIO ((PINB&0X01)==0X01) //测量频率
 0000           ; 
 0000           ; 
 0000           ; //Watchdog initialize
 0000           ; // prescale: 16K
 0000           ; void watchdog_init(void)
 0000           ; {
 0000           ;  WDR(); //this prevents a timout on enabling
 0000           ;  WDTCSR = 0x0B; //WATCHDOG ENABLED - dont forget to issue WDRs
 0000           ; }
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; /*            字符输出函数             */
 0000           ; void putchar(unsigned char c)
 0000           ;       {        
 0000           ;     while (!(UCSR0A&(1<<UDRE0)))WDR();
 0000           ;        UDR0=c; 
 0000           ;       // del(200);   
 0000           ;     }
 0000           ;       
 0000           ; //UART0 initialize
 0000           ; // desired baud rate: 9600
 0000           ; // actual: baud rate:9615 (0.2%)
 0000           ; void uart0_init(void)
 0000           ; {
 0000           ;  UCSR0B = 0x00; //disable while setting baud rate
 0000           ;  UCSR0A = 0x02;
 0000           ;  UCSR0C = 0x06;
 0000           ;  UBRR0L = 0x67; //set baud rate lo
 0000           ;  UBRR0H = 0x00; //set baud rate hi
 0000           ;  UCSR0B = 0x18;
 0000           ; }
 0000           ; 
 0000           ; 
 0000           ; unsigned long adc_rel[8];//AD转换结果
 0000           ; unsigned char adc_mux;//AD通道
 0000                   .dbline 57
 0000           ; 
 0000 80E3              ldi R24,48
 0002 85B9              out 0x5,R24
 0004                   .dbline 58
 0004           ; //ADC initialize
 0004 8CE3              ldi R24,60
 0006 84B9              out 0x4,R24
 0008                   .dbline 59
 0008           ; // Cpbversipb time: 3uS
 0008 86E0              ldi R24,6
 000A 88B9              out 0x8,R24
 000C                   .dbline 60
 000C           ; void adc_init(void)
 000C 8FE0              ldi R24,15
 000E 87B9              out 0x7,R24
 0010                   .dbline 61
 0010           ; {
 0010 8FED              ldi R24,223
 0012 8BB9              out 0xb,R24
 0014                   .dbline 62
 0014           ;  ADCSRA = 0x00; //disable adc
 0014 88ED              ldi R24,216
 0016 8AB9              out 0xa,R24
 0018                   .dbline -2
 0018           L1:
 0018                   .dbline 0 ; func end
 0018 0895              ret
 001A                   .dbend
 001A                   .dbfunc e DAT _DAT fV
 001A           ;              x -> R16
                        .even
 001A           _DAT::
 001A                   .dbline -1
 001A                   .dbline 66
 001A           ;  ADMUX = 0x40; //select adc input 0  00-ref  01-avcc 11-2.56
 001A           ;  ACSR  = 0x80;
 001A           ;  ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0) ;//64分频
 001A           ; }
 001A                   .dbline 67
 001A 802F              mov R24,R16
 001C 8170              andi R24,1
 001E 8130              cpi R24,1
 0020 11F4              brne L3
 0022                   .dbline 67
 0022 5E9A              sbi 0xb,6
 0024 01C0              rjmp L4
 0026           L3:
 0026                   .dbline 67
 0026           ; 
 0026 5E98              cbi 0xb,6
 0028           L4:
 0028                   .dbline 68
 0028 802F              mov R24,R16
 002A 8270              andi R24,2
 002C 8230              cpi R24,2
 002E 11F4              brne L5
 0030                   .dbline 68
 0030 5F9A              sbi 0xb,7
 0032 01C0              rjmp L6
 0034           L5:
 0034                   .dbline 68
 0034           ; 
 0034 5F98              cbi 0xb,7
 0036           L6:
 0036                   .dbline 69
 0036 802F              mov R24,R16
 0038 8470              andi R24,4
 003A 8430              cpi R24,4
 003C 11F4              brne L7
 003E                   .dbline 69
 003E 2D9A              sbi 0x5,5
 0040 01C0              rjmp L8
 0042           L7:
 0042                   .dbline 69
 0042           ; unit cw(uchar mux)          ///*****检测信号*****///
 0042 2D98              cbi 0x5,5
 0044           L8:
 0044                   .dbline 70
 0044 802F              mov R24,R16
 0046 8870              andi R24,8
 0048 8830              cpi R24,8
 004A 11F4              brne L9
 004C                   .dbline 70
 004C 419A              sbi 0x8,1
 004E 01C0              rjmp L10
 0050           L9:
 0050                   .dbline 70
 0050           ; {
 0050 4198              cbi 0x8,1
 0052           L10:
 0052                   .dbline 71
 0052 802F              mov R24,R16
 0054 8071              andi R24,16
 0056 8031              cpi R24,16
 0058 11F4              brne L11
 005A                   .dbline 71
 005A 429A              sbi 0x8,2
 005C 01C0              rjmp L12
 005E           L11:
 005E                   .dbline 71
 005E           ;  ADMUX=(1<<REFS0)|(mux&0x0f);
 005E 4298              cbi 0x8,2
 0060           L12:
 0060                   .dbline 72
 0060 802F              mov R24,R16
 0062 8072              andi R24,32
 0064 8032              cpi R24,32
 0066 11F4              brne L13
 0068                   .dbline 72
 0068 5C9A              sbi 0xb,4
 006A 01C0              rjmp L14
 006C           L13:
 006C                   .dbline 72
 006C           ;  ADCSRA|=0x40;
 006C 5C98              cbi 0xb,4
 006E           L14:
 006E                   .dbline 73
 006E 802F              mov R24,R16
 0070 8074              andi R24,64
 0072 8034              cpi R24,64
 0074 11F4              brne L15
 0076                   .dbline 73
 0076 5B9A              sbi 0xb,3
 0078 01C0              rjmp L16
 007A           L15:
 007A                   .dbline 73
 007A           ;  del(200);
 007A 5B98              cbi 0xb,3
 007C           L16:
 007C                   .dbline 74
 007C 802F              mov R24,R16
 007E 8078              andi R24,128
 0080 8038              cpi R24,128
 0082 11F4              brne L17
 0084                   .dbline 74
 0084 2C9A              sbi 0x5,4
 0086 01C0              rjmp L18
 0088           L17:
 0088                   .dbline 74
 0088 2C98              cbi 0x5,4
 008A           L18:
 008A                   .dbline -2
 008A           L2:
 008A                   .dbline 0 ; func end
 008A 0895              ret
 008C                   .dbsym r x 16 c
 008C                   .dbend
 008C                   .dbfunc e del _del fV
 008C           ;           time -> R16,R17
                        .even
 008C           _del::
 008C                   .dbline -1
 008C                   .dbline 80
 008C           ;  return(ADC);
 008C           ; }
 008C           ; 
 008C           ; unit cw1(uchar mux)          ///*****检测信号*****///
 008C           ; {
 008C           ; unit adc_rel=0,a;
 008C           ; uchar i;
 008C           L20:
 008C                   .dbline 82
 008C           ;  for(i=0;i<5;i++)
 008C           ;   {
 008C                   .dbline 83
 008C           ;   adc_rel+=cw(mux);
 008C 0150              subi R16,1
 008E 1040              sbci R17,0
 0090                   .dbline 84
 0090           ;   WDR();
 0090           L21:
 0090                   .dbline 85
 0090           ;   }
 0090 81E0              ldi R24,1
 0092 90E0              ldi R25,0
 0094 8017              cp R24,R16
 0096 9107              cpc R25,R17
 0098 CCF3              brlt L20
 009A                   .dbline -2
 009A           L19:
 009A                   .dbline 0 ; func end
 009A 0895              ret
 009C                   .dbsym r time 16 I
 009C                   .dbend
 009C                   .dbfunc e dot _dot fV
 009C           ;            dou -> R20
                        .even
 009C           _dot::
 009C 00D0              rcall push_gset1
 009E 402F              mov R20,R16
 00A0                   .dbline -1
 00A0                   .dbline 89
 00A0           ;  return (unit)(adc_rel/5); 
 00A0           ; }
 00A0           ; 
 00A0           ; 
 00A0                   .dbline 90
 00A0           ; //call this routine to initialize all peripherals
 00A0 5527              clr R21
 00A2 4130              cpi R20,1
 00A4 E0E0              ldi R30,0
 00A6 5E07              cpc R21,R30
 00A8 69F0              breq L27
 00AA 4230              cpi R20,2
 00AC E0E0              ldi R30,0
 00AE 5E07              cpc R21,R30
 00B0 B1F0              breq L28
 00B2 4330              cpi R20,3
 00B4 E0E0              ldi R30,0
 00B6 5E07              cpc R21,R30
 00B8 F9F0              breq L29
 00BA 4430              cpi R20,4
 00BC E0E0              ldi R30,0
 00BE 5E07              cpc R21,R30
 00C0 41F1              breq L30
 00C2 33C0              rjmp L24
 00C4           X0:
 00C4                   .dbline 91
 00C4           ; void init_devices(void)
 00C4           L27:
 00C4                   .dbline 92
 00C4           ; {
 00C4 2A9A              sbi 0x5,2
 00C6                   .dbline 92
 00C6 0FE7              ldi R16,127
 00C8 A8DF              rcall _DAT
 00CA                   .dbline 92
 00CA 02EE              ldi R16,226
 00CC 10E0              ldi R17,0
 00CE DEDF              rcall _del
 00D0                   .dbline 92
 00D0 2A98              cbi 0x5,2
 00D2                   .dbline 92
 00D2 0FEF              ldi R16,255
 00D4 A2DF              rcall _DAT
 00D6                   .dbline 92
 00D6 05E0              ldi R16,5
 00D8 10E0              ldi R17,0
 00DA D8DF              rcall _del
 00DC                   .dbline 92
 00DC 26C0              rjmp L25
 00DE           L28:
 00DE                   .dbline 93
 00DE           ;  //stop errant interrupts until set up
 00DE 2B9A              sbi 0x5,3
 00E0                   .dbline 93
 00E0 0FE7              ldi R16,127
 00E2 9BDF              rcall _DAT
 00E4                   .dbline 93
 00E4 02EE              ldi R16,226
 00E6 10E0              ldi R17,0
 00E8 D1DF              rcall _del
 00EA                   .dbline 93
 00EA 2B98              cbi 0x5,3
 00EC                   .dbline 93
 00EC 0FEF              ldi R16,255
 00EE 95DF              rcall _DAT
 00F0                   .dbline 93
 00F0 05E0              ldi R16,5
 00F2 10E0              ldi R17,0
 00F4 CBDF              rcall _del
 00F6                   .dbline 93
 00F6 19C0              rjmp L25
 00F8           L29:
 00F8                   .dbline 94
 00F8           ;  CLI(); //disable all interrupts
 00F8 409A              sbi 0x8,0

⌨️ 快捷键说明

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