?? q1.lis
字號:
.module q1.c
.area data(ram, con, rel)
0000 _i::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile q1.c
0001 .dbsym e i _i c
.area text(rom, con, rel)
0000 .dbfile q1.c
0000 .dbfunc e delay_2us _delay_2us fV
0000 ; time -> R16,R17
.even
0000 _delay_2us::
0000 .dbline -1
0000 .dbline 14
0000 ; #include "iom16v.h"
0000 ; #define LOBYTE(a) ((BYTE)(a&0x0f))
0000 ; #define HIBYTE(a) ((BYTE)((a)>>4))
0000 ; #define _asm asm
0000 ; #define WDR() asm("wdr")
0000 ; #define SEI() asm("sei")
0000 ; #define CLI() asm("cli")
0000 ; #define NOP() asm("nop")
0000 ; #define SLEEP() asm("sleep")
0000 ; #define led_on() (PORTA =0x00)
0000 ; #define led_off() (PORTA =0xff)
0000 ; char i=0;
0000 ; void delay_2us(int time)//微秒級延時程序
0000 ; {
0000 L2:
0000 .dbline 16
0000 ; do
0000 ; {
0000 .dbline 17
0000 ; time--;
0000 0150 subi R16,1
0002 1040 sbci R17,0
0004 .dbline 19
0004 ; //WDR();
0004 ; }
0004 L3:
0004 .dbline 20
0004 ; while (time>1);
0004 81E0 ldi R24,1
0006 90E0 ldi R25,0
0008 8017 cp R24,R16
000A 9107 cpc R25,R17
000C CCF3 brlt L2
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbsym r time 16 I
0010 .dbend
0010 .dbfunc e delay_ms _delay_ms fV
0010 ; time -> R20,R21
.even
0010 _delay_ms::
0010 0E940000 xcall push_gset1
0014 A801 movw R20,R16
0016 .dbline -1
0016 .dbline 23
0016 ; }
0016 ; void delay_ms(unsigned int time)//毫秒級延時程序
0016 ; {
0016 05C0 xjmp L7
0018 L6:
0018 .dbline 25
0018 .dbline 26
0018 04EF ldi R16,500
001A 11E0 ldi R17,1
001C F1DF xcall _delay_2us
001E .dbline 27
001E 4150 subi R20,1
0020 5040 sbci R21,0
0022 .dbline 28
0022 L7:
0022 .dbline 24
0022 ; while(time!=0)
0022 4030 cpi R20,0
0024 4507 cpc R20,R21
0026 C1F7 brne L6
0028 X0:
0028 .dbline -2
0028 L5:
0028 0E940000 xcall pop_gset1
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym r time 20 i
002E .dbend
002E .dbfunc e port_init _port_init fV
.even
002E _port_init::
002E .dbline -1
002E .dbline 32
002E ; {
002E ; delay_2us(500);
002E ; time--;
002E ; }
002E ; //WDR();
002E ; }
002E ; void port_init(void)
002E ; {
002E .dbline 33
002E ; DDRA = 0xff;
002E 8FEF ldi R24,255
0030 8ABB out 0x1a,R24
0032 .dbline 34
0032 ; PORTA = 0x00;
0032 2224 clr R2
0034 2BBA out 0x1b,R2
0036 .dbline -2
0036 L9:
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbend
0038 .dbfunc e T_init _T_init fV
.even
0038 _T_init::
0038 .dbline -1
0038 .dbline 37
0038 ; }
0038 ; void T_init(void)
0038 ; {
0038 .dbline 38
0038 ; TCCR1A=0x00;
0038 2224 clr R2
003A 2FBC out 0x2f,R2
003C .dbline 39
003C ; TCCR1B=0x00; //停止定時器1
003C 2EBC out 0x2e,R2
003E .dbline 41
003E ;
003E ; TCNT1H=0xc2;
003E 82EC ldi R24,194
0040 8DBD out 0x2d,R24
0042 .dbline 42
0042 ; TCNT1L=0xf7; //定時0.5s
0042 87EF ldi R24,247
0044 8CBD out 0x2c,R24
0046 .dbline 44
0046 ;
0046 ; TCCR1B=0x04; //256分頻
0046 84E0 ldi R24,4
0048 8EBD out 0x2e,R24
004A .dbline -2
004A L10:
004A .dbline 0 ; func end
004A 0895 ret
004C .dbend
.area vector(rom, abs)
.org 32
0020 0C942600 jmp _timer1_ovf
.area text(rom, con, rel)
004C .dbfile q1.c
004C .dbfunc e timer1_ovf _timer1_ovf fV
.even
004C _timer1_ovf::
004C 2A92 st -y,R2
004E 8A93 st -y,R24
0050 2FB6 in R2,0x3f
0052 2A92 st -y,R2
0054 .dbline -1
0054 .dbline 49
0054 ;
0054 ; }
0054 ; #pragma interrupt_handler timer1_ovf:9
0054 ; void timer1_ovf(void) //位閃動即修改
0054 ; {
0054 .dbline 50
0054 ; TCNT1H=0xc2;
0054 82EC ldi R24,194
0056 8DBD out 0x2d,R24
0058 .dbline 51
0058 ; TCNT1L=0xf7;
0058 87EF ldi R24,247
005A 8CBD out 0x2c,R24
005C .dbline 52
005C ; TCCR1B=0x04;
005C 84E0 ldi R24,4
005E 8EBD out 0x2e,R24
0060 .dbline 53
0060 ; if(i==1){i=0;led_on();}
0060 80910000 lds R24,_i
0064 8130 cpi R24,1
0066 29F4 brne L12
0068 .dbline 53
0068 .dbline 53
0068 2224 clr R2
006A 20920000 sts _i,R2
006E .dbline 53
006E 2BBA out 0x1b,R2
0070 .dbline 53
0070 05C0 xjmp L13
0072 L12:
0072 .dbline 54
0072 .dbline 54
0072 81E0 ldi R24,1
0074 80930000 sts _i,R24
0078 .dbline 54
0078 8FEF ldi R24,255
007A 8BBB out 0x1b,R24
007C .dbline 54
007C L13:
007C .dbline -2
007C L11:
007C 2990 ld R2,y+
007E 2FBE out 0x3f,R2
0080 8991 ld R24,y+
0082 2990 ld R2,y+
0084 .dbline 0 ; func end
0084 1895 reti
0086 .dbend
0086 .dbfunc e main _main fV
.even
0086 _main::
0086 .dbline -1
0086 .dbline 57
0086 ; else {i=1;led_off();}
0086 ; }
0086 ; void main(void)
0086 ; {
0086 .dbline 58
0086 ; port_init();
0086 D3DF xcall _port_init
0088 .dbline 59
0088 ; T_init();
0088 D7DF xcall _T_init
008A .dbline 60
008A ; TIMSK=0X45;
008A 85E4 ldi R24,69
008C 89BF out 0x39,R24
008E .dbline 61
008E ; SEI();
008E 7894 sei
0090 03C0 xjmp L16
0092 L15:
0092 .dbline 63
0092 .dbline 64
0092 08EE ldi R16,1000
0094 13E0 ldi R17,3
0096 BCDF xcall _delay_ms
0098 .dbline 68
0098 L16:
0098 .dbline 62
0098 FCCF xjmp L15
009A X1:
009A .dbline -2
009A L14:
009A .dbline 0 ; func end
009A 0895 ret
009C .dbend
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -