📄 btm48.lis
字号:
.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 + -