📄 mainloop.lis
字号:
.module Mainloop.c
.area vector(rom, abs)
.org 2
0002 00C0 rjmp _D12_int
.area data(ram, con, rel)
0000 _o::
0000 .blkb 2
.area idata
0000 0100 .word 1
.area data(ram, con, rel)
0002 .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\Mainloop.c
0002 .dbsym e o _o I
.area text(rom, con, rel)
0000 .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\Mainloop.c
0000 .dbfunc e main _main fV
0000 ; xue -> <dead>
0000 ; j -> <dead>
0000 ; i -> R16
0000 ; m -> R16,R17
.even
0000 _main::
0000 .dbline -1
0000 .dbline 18
0000 ; #include "io8515v.h"
0000 ; #include <macros.h>
0000 ;
0000 ; #include "d12head.h"
0000 ;
0000 ; #pragma interrupt_handler D12_int:2
0000 ;
0000 ; int shu[3];
0000 ; int o=1;
0000 ; int u;
0000 ;
0000 ; /*薛注释,how to use interrupt in iccavr:
0000 ; #pragma interrupt_handler timer:4 timer:5
0000 ; 中断向量4 和5 都指向中断处理函数timer( )
0000 ; */
0000 ;
0000 ; void main(void)
0000 ; {
0000 .dbline 19
0000 ; unsigned char i=0,j,xue;
0000 0027 clr R16
0002 .dbline 20
0002 ; int m=0;
0002 1127 clr R17
0004 .dbline 22
0004 ;
0004 ; SPL = 0x5f;
0004 8FE5 ldi R24,95
0006 8DBF out 0x3d,R24
0008 .dbline 23
0008 ; SPH = 0x02;
0008 82E0 ldi R24,2
000A 8EBF out 0x3e,R24
000C .dbline 25
000C ;
000C ; PORTC = 0xff;
000C 8FEF ldi R24,255
000E 85BB out 0x15,R24
0010 .dbline 26
0010 ; DDRC = 0xff;//保持状态
0010 84BB out 0x14,R24
0012 .dbline 33
0012 ;
0012 ; //先CPLD复位(PD.4),然后FIFO复位(PB.6),接着使能时钟(PB.7),
0012 ; //最后开始积分命令(PB.2)!
0012 ; ////DDRB = 0xfc; //11111100
0012 ; ////PORTB = 0xbc; //10111100//FIFO复位//不使能时钟
0012 ;
0012 ; DDRA = 0xff; //关闭上拉电阻,使正确读写外部SRAM
0012 8ABB out 0x1a,R24
0014 .dbline 34
0014 ; GIMSK = 0x00;
0014 2224 clr R2
0016 2BBE out 0x3b,R2
0018 .dbline 35
0018 ; MCUCR = 0xc4;//asm("OUT 0x35,R20"); 1100 0100 中断0设置为低电平触发
0018 84EC ldi R24,196
001A 85BF out 0x35,R24
001C .dbline 37
001C ;
001C ; UCR = 0x00; //设置fifoPD1
001C 2AB8 out 0xa,R2
001E .dbline 38
001E ; DDRD=0xfb;
001E 8BEF ldi R24,251
0020 81BB out 0x11,R24
0022 .dbline 39
0022 ; PORTD=0xdd;
0022 8DED ldi R24,221
0024 82BB out 0x12,R24
0026 .dbline 40
0026 ; for(m=0;m<6;m++)
0026 L8:
0026 .dbline 41
0026 0000 nop
0028 L9:
0028 .dbline 40
0028 0F5F subi R16,255 ; offset = 1
002A 1F4F sbci R17,255
002C .dbline 40
002C 0630 cpi R16,6
002E E0E0 ldi R30,0
0030 1E07 cpc R17,R30
0032 CCF3 brlt L8
0034 .dbline 41
0034 ; cwait1;
0034 0000 nop
0036 .dbline 42
0036 ; PORTD=0xdf;
0036 8FED ldi R24,223
0038 82BB out 0x12,R24
003A .dbline 44
003A ;
003A ; DDRB=0x00;
003A 2224 clr R2
003C 27BA out 0x17,R2
003E .dbline 45
003E ; DDRC = 0x00;
003E 24BA out 0x14,R2
0040 .dbline 46
0040 ; D12_COMMAND = 0xf3;
0040 83EF ldi R24,243
0042 8093017F sts 32513,R24
0046 .dbline 47
0046 ; cwait;
0046 0000 nop
0048 .dbline 48
0048 ; D12_DATA = 0x06;//设置模式0
0048 86E0 ldi R24,6
004A 8093007F sts 32512,R24
004E .dbline 49
004E ; cwait;
004E 0000 nop
0050 .dbline 54
0050 ; ///D12_COMMAND = 0xd0;
0050 ; ///cwait;
0050 ; ///D12_DATA = 0x80;//设置地址 0 使能
0050 ; ///cwait;
0050 ; D12_COMMAND = 0xf3;//连接主机
0050 83EF ldi R24,243
0052 8093017F sts 32513,R24
0056 .dbline 55
0056 ; cwait;
0056 0000 nop
0058 .dbline 56
0058 ; D12_DATA = 0x16;//16
0058 86E1 ldi R24,22
005A 8093007F sts 32512,R24
005E .dbline 57
005E ; cwait;
005E 0000 nop
0060 .dbline 58
0060 ; D12_DATA = 0x05;//初始化频率 8MHz
0060 85E0 ldi R24,5
0062 8093007F sts 32512,R24
0066 .dbline 59
0066 ; csram;
0066 609301FC sts 0xfc01,R22
006A .dbline 59
006A .dbline 61
006A ;
006A ; SREG = 0x80;//全局中断使能
006A 80E8 ldi R24,128
006C 8FBF out 0x3f,R24
006E .dbline 62
006E ; GIMSK = 0x40;
006E 80E4 ldi R24,64
0070 8BBF out 0x3b,R24
0072 .dbline 66
0072 ; //TCNT0 = 0x85;
0072 ; //TIMSK = 0x02; //启动计时器0中断
0072 ;
0072 ; TCCR1B = 0xc0;//启动ICP上升沿出入捕获
0072 80EC ldi R24,192
0074 8EBD out 0x2e,R24
0076 L12:
0076 .dbline 77
0076 .dbline 101
0076 L13:
0076 .dbline 76
0076 FFCF rjmp L12
0078 X0:
0078 .dbline -2
0078 .dbline 106
0078 ;
0078 ; //UCR = 0x00; //disable while setting baud rate
0078 ; //UBRR = 25; //set baud rate 19.2K 波特率
0078 ; //UCR = 0x1d; //enable 0001 1101
0078 ;
0078 ;
0078 ;
0078 ;
0078 ;
0078 ; while(1)
0078 ; {
0078 ; /* if(bconfig==1)
0078 ; {
0078 ;
0078 ; if(o==1)
0078 ; {
0078 ; o=0;
0078 ; D12_COMMAND=0x05;
0078 ; D12_COMMAND=0xf0;
0078 ; D12_DATA=0;
0078 ; D12_DATA=64;
0078 ; D12_DATA=0xaa;
0078 ; D12_DATA=0xcc;
0078 ; D12_DATA=0xee;
0078 ; D12_DATA=0xff;
0078 ; for( u=0;u<60;u++)
0078 ; D12_DATA=u;
0078 ; D12_COMMAND=0xfa;
0078 ; }
0078 ; }
0078 ;
0078 ; */
0078 ;
0078 ;
0078 ; }
0078 ;
0078 ;
0078 ;
0078 ;
0078 ; }
0078 L7:
0078 .dbline 0 ; func end
0078 0895 ret
007A .dbsym l xue 1 c
007A .dbsym l j 1 c
007A .dbsym r i 16 c
007A .dbsym r m 16 I
007A .dbend
.area bss(ram, con, rel)
0000 .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\Mainloop.c
0000 _u::
0000 .blkb 2
0002 .dbsym e u _u I
0002 _shu::
0002 .blkb 6
0008 .dbsym e shu _shu A[6:3]I
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -