📄 main.s
字号:
.dbline 52
; PORTC=0x00;
out 0x15,R2
.dbline 54
;
; DDRD=0xf8; //1111 1000b
ldi R24,248
out 0x11,R24
.dbline 55
; PORTD=0xfc; //1111 1100b
ldi R24,252
out 0x12,R24
.dbline 57
;
; timer0_init();
rcall _timer0_init
.dbline 59
;
; MCUCR = 0x02;
ldi R24,2
out 0x35,R24
.dbline 60
; GICR = 0x40;
ldi R24,64
out 0x3b,R24
.dbline 61
; TIMSK = 0x01; //timer interrupt sources
ldi R24,1
out 0x39,R24
.dbline 72
;
;
; // DDRD=0xff;
; // PORTD=0xf8;
;
; // MCUCR = 0x02;
; // GICR = 0x40;
; //TIMSK = 0x00; //timer interrupt sources
;
; // nrf905_Init();
; SEI(); //re-enable interrupts
sei
.dbline 73
; screen(hz0);
ldi R16,<_hz0
ldi R17,>_hz0
rcall _screen
rjmp L10
L9:
.dbline 76
;
; while(1)
; {
.dbline 83
;
; // nrf905_RxOn();
; // detect=RfRecvProc();
;
; // lcd_write_comm(0x9f);
; // lcd_write_data(detect);
; displayint(0x8a,value_T);
lds R18,_value_T
clr R19
ldi R16,138
ldi R17,0
rcall _displayint
.dbline 84
; displayint(0x8c,times);
lds R18,_times
clr R19
ldi R16,140
ldi R17,0
rcall _displayint
.dbline 85
; print_temp(0x90);
ldi R16,144
rcall _print_temp
.dbline 89
; //if(detect=='Y')
; //{detect=='N'; }
;
; if(KeyFlag==1)
lds R24,_KeyFlag
cpi R24,1
brne L12
.dbline 90
; {
.dbline 91
; KeyValue=KeyV;
lds R10,_KeyV
.dbline 92
; KeyFlag=0;
clr R2
sts _KeyFlag,R2
.dbline 93
; }
L12:
.dbline 94
; switch(KeyValue) //此时相当按一次键处理两次程序
mov R20,R10
clr R21
cpi R20,105
ldi R30,0
cpc R21,R30
brne X2
rjmp L18
X2:
cpi R20,107
ldi R30,0
cpc R21,R30
brne X3
rjmp L21
X3:
cpi R20,108
ldi R30,0
cpc R21,R30
brne X4
rjmp L24
X4:
cpi R20,112
ldi R30,0
cpc R21,R30
breq L17
cpi R20,114
ldi R30,0
cpc R21,R30
brne X5
rjmp L19
X5:
cpi R20,115
ldi R30,0
cpc R21,R30
brne X6
rjmp L22
X6:
cpi R20,116
ldi R30,0
cpc R21,R30
brne X7
rjmp L23
X7:
cpi R20,117
ldi R30,0
cpc R21,R30
brne X8
rjmp L25
X8:
cpi R20,122
ldi R30,0
cpc R21,R30
brne X9
rjmp L20
X9:
ldi R24,122
ldi R25,0
cp R24,R20
cpc R25,R21
brlt L31
L30:
cpi R20,90
ldi R30,0
cpc R21,R30
brne X10
rjmp L29
X10:
rjmp L15
L31:
cpi R20,125
ldi R30,0
cpc R21,R30
brne X11
rjmp L27
X11:
rjmp L15
X0:
.dbline 95
; {
L17:
.dbline 96
; case 112:kk=0;displayint(0x98,kk);
clr R22
.dbline 96
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 97
; nrf905_SpiTest();
rcall _nrf905_SpiTest
.dbline 98
; display_int(RxBuf,0x80,10);
ldi R24,10
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,128
ldi R19,0
ldi R16,<_RxBuf
ldi R17,>_RxBuf
rcall _display_int
.dbline 99
; KeyValue=0; break;
clr R10
.dbline 99
rjmp L15
L18:
.dbline 100
; case 105:kk=1;displayint(0x98,kk);KeyValue=0;break;
ldi R22,1
.dbline 100
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 100
clr R10
.dbline 100
rjmp L15
L19:
.dbline 101
; case 114:kk=2;displayint(0x98,kk);KeyValue=0;break;
ldi R22,2
.dbline 101
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 101
clr R10
.dbline 101
rjmp L15
L20:
.dbline 102
; case 122:kk=3;displayint(0x98,kk);print_temp(0x9a);KeyValue=0;break;
ldi R22,3
.dbline 102
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 102
ldi R16,154
rcall _print_temp
.dbline 102
clr R10
.dbline 102
rjmp L15
L21:
.dbline 103
; case 107:kk=4;displayint(0x98,kk);//RfSendProc();1122445645633312345
ldi R22,4
.dbline 103
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 104
; KeyValue=0;break;
clr R10
.dbline 104
rjmp L15
L22:
.dbline 105
; case 115:kk=5;displayint(0x98,kk);nrf905_SendData();KeyValue=0;break;
ldi R22,5
.dbline 105
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 105
rcall _nrf905_SendData
.dbline 105
clr R10
.dbline 105
rjmp L15
L23:
.dbline 106
; case 116:kk=6;displayint(0x98,kk);nrf905_ReadData();KeyValue=0;break;
ldi R22,6
.dbline 106
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 106
rcall _nrf905_ReadData
.dbline 106
clr R10
.dbline 106
rjmp L15
L24:
.dbline 107
; case 108:kk=7;displayint(0x98,kk);display_int(RxBuf,0x80,12);KeyValue=0;break;
ldi R22,7
.dbline 107
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 107
ldi R24,12
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,128
ldi R19,0
ldi R16,<_RxBuf
ldi R17,>_RxBuf
rcall _display_int
.dbline 107
clr R10
.dbline 107
rjmp L15
L25:
.dbline 108
; case 117:kk=8;displayint(0x98,kk);display_int(RxBuf+12,0x80,12);KeyValue=0;break;
ldi R22,8
.dbline 108
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 108
ldi R24,12
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,128
ldi R19,0
ldi R16,<_RxBuf+12
ldi R17,>_RxBuf+12
rcall _display_int
.dbline 108
clr R10
.dbline 108
rjmp L15
L27:
.dbline 109
; case 125:kk=9;displayint(0x98,kk);display_int(RxBuf+24,0x80,8);KeyValue=0;break;
ldi R22,9
.dbline 109
mov R18,R22
clr R19
ldi R16,152
ldi R17,0
rcall _displayint
.dbline 109
ldi R24,8
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,128
ldi R19,0
ldi R16,<_RxBuf+24
ldi R17,>_RxBuf+24
rcall _display_int
.dbline 109
clr R10
.dbline 109
rjmp L15
L29:
.dbline 110
; case 90: kk='k'; KeyValue=0;
ldi R22,107
.dbline 110
clr R10
.dbline 112
; //display_int(RxBuf,0x80,12);
; lcd_write_comm(0x98);
ldi R16,152
ldi R17,0
rcall _lcd_write_comm
.dbline 113
; lcd_write_data('k');
ldi R16,107
ldi R17,0
rcall _lcd_write_data
.dbline 114
; break;
.dbline 115
; default :break;
L15:
.dbline 119
L10:
.dbline 75
rjmp L9
X1:
.dbline -2
L8:
adiw R28,2
.dbline 0 ; func end
ret
.dbsym l detect 3 c
.dbsym r kk 22 c
.dbsym r KeyValue 10 c
.dbend
.area vector(rom, abs)
.org 2
rjmp _int0_isr
.area text(rom, con, rel)
.dbfile F:\programme\RF905\main.c
.area bss(ram, con, rel)
.dbfile F:\programme\RF905\main.c
L33:
.blkb 1
.area text(rom, con, rel)
.dbfile F:\programme\RF905\main.c
.dbfunc e int0_isr _int0_isr fV
.dbsym s IntNum L33 c
.even
_int0_isr::
st -y,R2
st -y,R3
st -y,R24
st -y,R25
in R2,0x3f
st -y,R2
.dbline -1
.dbline 125
; }
;
;
; }
; }
;
;
; #pragma interrupt_handler int0_isr:2
; void int0_isr(void)
; {
.dbline 127
; static unsigned char IntNum;
; times++;
lds R24,_times
subi R24,255 ; addi 1
sts _times,R24
.dbline 128
; if((IntNum>0)&&(IntNum<9))
clr R2
lds R3,L33
cp R2,R3
brsh L34
mov R24,R3
cpi R24,9
brsh L34
.dbline 129
; {
.dbline 130
; KeyV>>=1;
lds R2,_KeyV
lsr R2
sts _KeyV,R2
.dbline 131
; if(PINB&0x80)
sbis 0x16,7
rjmp L36
.dbline 132
; KeyV|=0x80;
mov R24,R2
ori R24,128
sts _KeyV,R24
L36:
.dbline 133
; }
L34:
.dbline 135
lds R24,L33
subi R24,255 ; addi 1
sts L33,R24
.dbline 137
ldi R24,10
lds R2,L33
cp R24,R2
brsh L38
.dbline 138
.dbline 139
clr R2
sts L33,R2
.dbline 140
ldi R24,1
sts _KeyFlag,R24
.dbline 141
L38:
.dbline -2
L32:
ld R2,y+
out 0x3f,R2
ld R25,y+
ld R24,y+
ld R3,y+
ld R2,y+
.dbline 0 ; func end
reti
.dbend
.area bss(ram, con, rel)
.dbfile F:\programme\RF905\main.c
_set_data::
.blkb 1
.dbsym e set_data _set_data c
_value_T::
.blkb 1
.dbsym e value_T _value_T c
_KeyFlag::
.blkb 1
.dbsym e KeyFlag _KeyFlag c
_KeyV::
.blkb 1
.dbsym e KeyV _KeyV c
.area lit(rom, con, rel)
L7:
.word 0x0,0x4f00
L6:
.word 0x4000,0x461c
L3:
.word 0x0,0x3d80
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -