📄 zong.lis
字号:
.module zong.c
.area data(ram, con, rel)
0000 _N::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile zong.c
0001 .dbsym e N _N c
0001 _T1OVF_NUM::
0001 .blkb 2
.area idata
0001 0000 .word 0
.area data(ram, con, rel)
0003 .dbfile zong.c
0003 .dbsym e T1OVF_NUM _T1OVF_NUM i
.area text(rom, con, rel)
0000 .dbfile zong.c
0000 .dbfunc e delay_1ms _delay_1ms fV
0000 ; i -> R16,R17
.even
0000 _delay_1ms::
0000 .dbline -1
0000 .dbline 37
0000 ; //ICC-AVR application builder : 2009-3-19 15:44:36
0000 ; // Target : M16
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ;
0000 ;
0000 ; //*****************************************************
0000 ; //全局变量定义
0000 ; //*****************************************************
0000 ;
0000 ; unsigned char N=0;//用来区别是第一次外部中断还是第二次中断
0000 ; unsigned int T1OVF_NUM=0;//用来计定时器T1的溢出次数
0000 ; unsigned long int T1_NUM;//T1计的总时钟的个数
0000 ; unsigned int VIN;//测到的电压,单位为mv
0000 ;
0000 ;
0000 ; //*****************************************************
0000 ; //函数声明
0000 ; //*****************************************************
0000 ; //void port_init(void);
0000 ; void timer0_125Kinit(void);
0000 ; //void timer1_init(void)
0000 ; //void timer2_250init(void);
0000 ; void init_devices(void);
0000 ; void usart_tx(unsigned char data);
0000 ; void delay_1ms(void);
0000 ; void delay_nms(unsigned int n);
0000 ; void timer1_ovf_isr(void);
0000 ; void int0_isr(void);
0000 ; void data_display(unsigned int data);
0000 ;
0000 ;
0000 ;
0000 ; void delay_1ms(void)
0000 ; {
0000 .dbline 39
0000 ; unsigned int i;
0000 ; for(i=1142;i>0;i--)
0000 06E7 ldi R16,1142
0002 14E0 ldi R17,4
0004 02C0 xjmp L5
0006 L2:
0006 .dbline 40
0006 L3:
0006 .dbline 39
0006 0150 subi R16,1
0008 1040 sbci R17,0
000A L5:
000A .dbline 39
000A 0030 cpi R16,0
000C 0107 cpc R16,R17
000E D9F7 brne L2
0010 X0:
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbsym r i 16 i
0012 .dbend
0012 .dbfunc e delay_nms _delay_nms fV
0012 ; n -> R20,R21
.even
0012 _delay_nms::
0012 0E940000 xcall push_gset1
0016 A801 movw R20,R16
0018 .dbline -1
0018 .dbline 48
0018 ; ;
0018 ; }
0018 ; //*****************************************************
0018 ; //函数名称:void DELAY_NMS(void)
0018 ; //函数功能:延时Nms
0018 ; //注意事项:
0018 ; //*****************************************************
0018 ; void delay_nms(unsigned int n)
0018 ; {
0018 .dbline 49
0018 ; for(;n>0;n--)
0018 03C0 xjmp L10
001A L7:
001A .dbline 50
001A F2DF xcall _delay_1ms
001C L8:
001C .dbline 49
001C 4150 subi R20,1
001E 5040 sbci R21,0
0020 L10:
0020 .dbline 49
0020 4030 cpi R20,0
0022 4507 cpc R20,R21
0024 D1F7 brne L7
0026 X1:
0026 .dbline -2
0026 L6:
0026 0E940000 xcall pop_gset1
002A .dbline 0 ; func end
002A 0895 ret
002C .dbsym r n 20 i
002C .dbend
002C .dbfunc e port_init _port_init fV
.even
002C _port_init::
002C .dbline -1
002C .dbline 55
002C ; delay_1ms();
002C ; }
002C ;
002C ;
002C ; void port_init(void)
002C ; {
002C .dbline 56
002C ; PORTA = 0x01;
002C 81E0 ldi R24,1
002E 8BBB out 0x1b,R24
0030 .dbline 57
0030 ; DDRA = 0x00;
0030 2224 clr R2
0032 2ABA out 0x1a,R2
0034 .dbline 58
0034 ; PORTB = 0x00;
0034 28BA out 0x18,R2
0036 .dbline 59
0036 ; DDRB = 0xFF;
0036 8FEF ldi R24,255
0038 87BB out 0x17,R24
003A .dbline 60
003A ; PORTC = 0x00; //m103 output only
003A 25BA out 0x15,R2
003C .dbline 61
003C ; DDRC = 0x00;
003C 24BA out 0x14,R2
003E .dbline 62
003E ; PORTD = 0x00;
003E 22BA out 0x12,R2
0040 .dbline 63
0040 ; DDRD = 0xFF;
0040 81BB out 0x11,R24
0042 .dbline -2
0042 L11:
0042 .dbline 0 ; func end
0042 0895 ret
0044 .dbend
0044 .dbfunc e timer0_125Kinit _timer0_125Kinit fV
.even
0044 _timer0_125Kinit::
0044 .dbline -1
0044 .dbline 71
0044 ; }
0044 ;
0044 ; //TIMER0 initialize - prescale:Stop
0044 ; // WGM: CTC
0044 ; // desired value: 125KHz
0044 ; // actual value: Out of range
0044 ; void timer0_125Kinit(void)
0044 ; {
0044 .dbline 72
0044 ; TCCR0 = 0x00; //stop
0044 2224 clr R2
0046 23BE out 0x33,R2
0048 .dbline 73
0048 ; TCNT0 = 0x00 /*INVALID SETTING*/; //set count
0048 22BE out 0x32,R2
004A .dbline 74
004A ; OCR0 = 0x1F /*INVALID SETTING*/; //set compare
004A 8FE1 ldi R24,31
004C 8CBF out 0x3c,R24
004E .dbline 75
004E ; TIMSK&=~(1<<OCIE0);
004E 89B7 in R24,0x39
0050 8D7F andi R24,253
0052 89BF out 0x39,R24
0054 .dbline 76
0054 ; TCCR0 = 0x19;
0054 89E1 ldi R24,25
0056 83BF out 0x33,R24
0058 .dbline -2
0058 L12:
0058 .dbline 0 ; func end
0058 0895 ret
005A .dbend
005A .dbfunc e timer2_250init _timer2_250init fV
.even
005A _timer2_250init::
005A .dbline -1
005A .dbline 85
005A ; //TCCR0 = 0x08; //start timer
005A ; }
005A ;
005A ; //TIMER2 initialize - prescale:Stop
005A ; // WGM: CTC
005A ; // desired value: 250Hz
005A ; // actual value: Out of range
005A ; void timer2_250init(void)
005A ; {
005A .dbline 86
005A ; TCCR2 = 0x00; //stop
005A 2224 clr R2
005C 25BC out 0x25,R2
005E .dbline 88
005E ; //ASSR = 0x00; //set async mode
005E ; TCNT2 = 0x00 /*INVALID SETTING*/; //setup
005E 24BC out 0x24,R2
0060 .dbline 89
0060 ; OCR2 = 0xF9 /*INVALID SETTING*/;
0060 89EF ldi R24,249
0062 83BD out 0x23,R24
0064 .dbline 90
0064 ; TIMSK&=~(1<<OCIE2);
0064 89B7 in R24,0x39
0066 8F77 andi R24,127
0068 89BF out 0x39,R24
006A .dbline 91
006A ; TCCR2 = 0x1C;
006A 8CE1 ldi R24,28
006C 85BD out 0x25,R24
006E .dbline -2
006E L13:
006E .dbline 0 ; func end
006E 0895 ret
0070 .dbend
0070 .dbfunc e timer1_init _timer1_init fV
.even
0070 _timer1_init::
0070 .dbline -1
0070 .dbline 98
0070 ; //TCCR2 = 0x08; //start
0070 ; }
0070 ;
0070 ;
0070 ;
0070 ; void timer1_init(void)
0070 ; {
0070 .dbline 99
0070 ; TCCR1A=0x00;
0070 2224 clr R2
0072 2FBC out 0x2f,R2
0074 .dbline 100
0074 ; TCCR1B=0x00;
0074 2EBC out 0x2e,R2
0076 .dbline 101
0076 ; TCNT1=0X0000;
0076 3324 clr R3
0078 3DBC out 0x2d,R3
007A 2CBC out 0x2c,R2
007C .dbline 102
007C ; TIMSK|=(1<<TOIE1);
007C 89B7 in R24,0x39
007E 8460 ori R24,4
0080 89BF out 0x39,R24
0082 .dbline -2
0082 L14:
0082 .dbline 0 ; func end
0082 0895 ret
0084 .dbend
0084 .dbfunc e int0_init _int0_init fV
.even
0084 _int0_init::
0084 .dbline -1
0084 .dbline 107
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -