📄 main.lis
字号:
.module main.c
.area vector(rom, abs)
.org 12
000C 00C0 rjmp _timer1_ovf_isr
.org 18
0012 00C0 rjmp _uart0_rx_isr
.org 22
0016 00C0 rjmp _uart0_tx_isr
.org 24
0018 00C0 rjmp _ana_comp_isr
.area data(ram, con, rel)
0000 _rass2dp::
0000 .blkb 1
.area idata
0000 01 .byte 1
.area data(ram, con, rel)
0001 .dbfile E:\任务\RASS\rass_soft\main.c
0001 .dbsym e rass2dp _rass2dp c
0001 _rxed_flag::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile E:\任务\RASS\rass_soft\main.c
0002 .dbsym e rxed_flag _rxed_flag c
.area text(rom, con, rel)
0000 .dbfile E:\任务\RASS\rass_soft\main.c
0000 .dbfunc e main _main fV
0000 ; j -> R20,R21
.even
0000 _main::
0000 .dbline -1
0000 .dbline 22
0000 ; #include "config.h"
0000 ;
0000 ; unsigned char dp2rass[5];
0000 ; unsigned int test_freq;
0000 ; unsigned char rass2dp=1;
0000 ; unsigned int seed;
0000 ; unsigned char rxed_flag=0;//接收完数据为1
0000 ; unsigned char dp2rass[5];
0000 ; unsigned char work_state;
0000 ; unsigned char work_mode;
0000 ; unsigned char work_grade;
0000 ; unsigned char Ns;//频率点的个数
0000 ; unsigned int Fh,Fl;
0000 ; unsigned char TCNT1_L;
0000 ; unsigned char TCNT1_H;
0000 ; unsigned int D15_0;//为2315控制字
0000 ; unsigned char timer1;
0000 ;
0000 ;
0000 ;
0000 ; void main(void)
0000 ; {
0000 .dbline 27
0000 ; //unsigned int rand;
0000 ; //unsigned int first,second;
0000 ; //unsigned char x,y;
0000 ; //unsigned int num,mod1=0;
0000 ; unsigned int j=1;
0000 41E0 ldi R20,1
0002 50E0 ldi R21,0
0004 .dbline 29
0004 ;
0004 ; CLI(); //stop errant interrupts until set up
0004 F894 cli
0006 .dbline 30
0006 ; port_init();
0006 00D0 rcall _port_init
0008 .dbline 31
0008 ; timer1_init();
0008 00D0 rcall _timer1_init
000A .dbline 32
000A ; uart0_init();
000A 00D0 rcall _uart0_init
000C .dbline 34
000C ;
000C ; MCUCR = 0x00;
000C 2224 clr R2
000E 25BE out 0x35,R2
0010 .dbline 35
0010 ; EMCUCR = 0x00;
0010 26BE out 0x36,R2
0012 .dbline 36
0012 ; GICR = 0x00;
0012 2BBE out 0x3b,R2
0014 .dbline 37
0014 ; TIMSK = 0x80;
0014 80E8 ldi R24,128
0016 89BF out 0x39,R24
0018 .dbline 38
0018 ; SEI(); //re-enable interrupts
0018 7894 sei
001A L2:
001A .dbline 42
001A ; //all peripherals are now initialized
001A ;
001A ; do
001A ; {
001A .dbline 43
001A ; if(rxed_flag==1) //如果刚刚接收完dp的数据,则
001A 80910100 lds R24,_rxed_flag
001E 8130 cpi R24,1
0020 09F0 breq X3
0022 5CC0 rjmp L5
0024 X3:
0024 .dbline 44
0024 ; {
0024 .dbline 45
0024 ; if(!(dp2rass[0]&0x01))//判断是命令还是数据请求
0024 20901100 lds R2,_dp2rass
0028 20FC sbrc R2,0
002A 04C0 rjmp L7
002C .dbline 46
002C ; UDR=rass2dp; //为0时是dp请求rass的状态信息,
002C 20900000 lds R2,_rass2dp
0030 2CB8 out 0xc,R2
0032 51C0 rjmp L8
0034 L7:
0034 .dbline 48
0034 ; else //为1时是dp发送给rass的命令
0034 ; {
0034 .dbline 49
0034 ; work_state=(dp2rass[0]&0x02)>>1;
0034 80911100 lds R24,_dp2rass
0038 8270 andi R24,2
003A 8695 lsr R24
003C 80930C00 sts _work_state,R24
0040 .dbline 50
0040 ; if(work_state==0) //如果是关闭工作命令,则
0040 8823 tst R24
0042 81F4 brne L9
0044 .dbline 51
0044 ; {
0044 .dbline 52
0044 ; ACSR = ACSR & 0xF7; //关闭时间、比较中断
0044 88B1 in R24,0x8
0046 877F andi R24,247
0048 88B9 out 0x8,R24
004A .dbline 53
004A ; TCCR1B = 0x00;
004A 2224 clr R2
004C 2EBC out 0x2e,R2
004E .dbline 54
004E ; ml2035(0,1); //关闭2305,1666
004E 21E0 ldi R18,1
0050 30E0 ldi R19,0
0052 0027 clr R16
0054 1127 clr R17
0056 00D0 rcall _ml2035
0058 .dbline 55
0058 ; ds1666(128,0);
0058 2227 clr R18
005A 3327 clr R19
005C 00E8 ldi R16,128
005E 10E0 ldi R17,0
0060 00D0 rcall _ds1666
0062 .dbline 56
0062 ; }
0062 39C0 rjmp L10
0064 L9:
0064 .dbline 58
0064 ; else //如果是开始工作指令的话
0064 ; {
0064 .dbline 59
0064 ; TCCR1B = 0x05; //start Timer1,comparator
0064 85E0 ldi R24,5
0066 8EBD out 0x2e,R24
0068 .dbline 60
0068 ; comparator_init();
0068 00D0 rcall _comparator_init
006A .dbline 61
006A ; data_process();
006A 00D0 rcall _data_process
006C .dbline 62
006C ; seed=TCNT1L;
006C 2CB4 in R2,0x2c
006E 3324 clr R3
0070 30920E00 sts _seed+1,R3
0074 20920D00 sts _seed,R2
0078 .dbline 63
0078 ; ds1666(128,0);
0078 2227 clr R18
007A 3327 clr R19
007C 00E8 ldi R16,128
007E 10E0 ldi R17,0
0080 00D0 rcall _ds1666
0082 .dbline 64
0082 ; switch(work_grade)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -