📄 app.s
字号:
clr R3
ldi R30,7
ldi R31,0
sub R30,R2
sbc R31,R3
ldi R24,<_redata
ldi R25,>_redata
add R30,R24
adc R31,R25
in R2,0xc
std z+0,R2
.dbline 133
L20:
.dbline 129
inc R16
L22:
.dbline 129
cpi R16,8
brlo L24
.dbline 134
sbi 0xb,0
.dbline 135
ldi R24,1
sts _fg_rin,R24
.dbline 136
L15:
.dbline -2
.dbline 137
; while(!(UCSRA&0x80))WDR(); ;
; redata[7-i]=UDR;//读UDR时RXC将自动清除
; }
; UCSRA|=BIT(MPCM);//允许地址接收
; fg_rin=0x01;//设置接收数据标志
; }
; }
L14:
ld R2,y+
out 0x3f,R2
ld R31,y+
ld R30,y+
ld R25,y+
ld R24,y+
ld R18,y+
ld R16,y+
ld R3,y+
ld R2,y+
.dbline 0 ; func end
reti
.dbsym r addr 18 c
.dbsym r temp 16 c
.dbsym r i 16 c
.dbend
.dbfunc e port_init _port_init fV
.even
_port_init::
.dbline -1
.dbline 139
; void port_init(void)
; {
.dbline 140
; PORTB = 0xff;
ldi R24,255
out 0x18,R24
.dbline 141
; DDRB = 0x00;
clr R2
out 0x17,R2
.dbline 142
; PORTD = 0x00;
out 0x12,R2
.dbline 143
; DDRD = 0xff;
out 0x11,R24
.dbline -2
.dbline 144
; }
L26:
.dbline 0 ; func end
ret
.dbend
.dbfunc e watchdog_init _watchdog_init fV
.even
_watchdog_init::
.dbline -1
.dbline 147
;
; void watchdog_init(void)
; {
.dbline 148
; WDR(); //this prevents a timout on enabling
wdr
.dbline 149
; WDTCR|=(1<<WDCE)|(1<<WDE);
in R24,0x21
ori R24,24
out 0x21,R24
.dbline 150
; WDTCR = (1<<WDE)|(1<<WDP2)|(1<<WDP0); //WATCHDOG ENABLED - dont forget WDR
ldi R24,13
out 0x21,R24
.dbline -2
.dbline 151
; }
L27:
.dbline 0 ; func end
ret
.dbend
.dbfunc e uart0_init _uart0_init fV
.even
_uart0_init::
.dbline -1
.dbline 153
; void uart0_init(void)
; {
.dbline 154
; UBRRH = 0x00; //set baud rate
clr R2
out 0x2,R2
.dbline 155
; UBRRL = 0x01; //set baud rate
ldi R24,1
out 0x9,R24
.dbline 156
; UCSRA|=BIT(MPCM);
sbi 0xb,0
.dbline 157
; UCSRB = 0X94;
ldi R24,148
out 0xa,R24
.dbline 158
; UCSRC = 0x06; //enable
ldi R24,6
out 0x3,R24
.dbline -2
.dbline 159
; }
L28:
.dbline 0 ; func end
ret
.dbend
.dbfunc e init_devices _init_devices fV
.even
_init_devices::
.dbline -1
.dbline 161
; void init_devices(void)
; {
.dbline 162
; CLI(); //disable all interrupts
cli
.dbline 163
; port_init();
rcall _port_init
.dbline 164
; watchdog_init();
rcall _watchdog_init
.dbline 165
; MCUCR = 0x00;//禁止休眠(disable sleep)//
clr R2
out 0x35,R2
.dbline 166
; GIMSK = 0x00;//屏蔽两个外部中断disable exit interrupts//
out 0x3b,R2
.dbline 167
; TIMSK = 0x00;//屏蔽定时器中断 disable timer interrupts//
out 0x39,R2
.dbline -2
.dbline 168
; }
L29:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay _delay fV
; dd1 -> R20
; dd2 -> R22
; dd3 -> R10
; count -> R16
.even
_delay::
rcall push_gset3
.dbline -1
.dbline 173
; /*******************************
; **delay
; ********************************/
; void delay(uchar count )
; {
.dbline 175
; uchar dd1,dd2,dd3;
; for(dd1=0;dd1<count;dd1++)
clr R20
rjmp L34
L31:
.dbline 176
; for(dd2=0;dd2<30;dd2++)
clr R22
rjmp L38
L35:
.dbline 177
; for(dd3=0;dd3<250;dd3++)
clr R10
rjmp L42
L39:
.dbline 178
wdr
L40:
.dbline 177
inc R10
L42:
.dbline 177
mov R24,R10
cpi R24,250
brlo L39
L36:
.dbline 176
inc R22
L38:
.dbline 176
cpi R22,30
brlo L35
L32:
.dbline 175
inc R20
L34:
.dbline 175
cp R20,R16
brlo L31
.dbline -2
.dbline 179
; WDR();
; }
L30:
rcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r dd1 20 c
.dbsym r dd2 22 c
.dbsym r dd3 10 c
.dbsym r count 16 c
.dbend
.dbfunc e send _send fV
; i -> R16
.even
_send::
.dbline -1
.dbline 184
; /*******************************
; **发送数据
; ********************************/
; void send(void)
; {
.dbline 187
; signed char i;
;
; PORTD&=~BIT(RCK);
cbi 0x12,5
.dbline 188
; PORTD&=~BIT(CLK);
cbi 0x12,3
.dbline 190
;
; for(i=48;i>=0;i--)
ldi R16,48
rjmp L47
L44:
.dbline 191
; {
.dbline 193
; //****************
; if(redata[i]&0x40)//
ldi R24,<_redata
ldi R25,>_redata
mov R30,R16
clr R31
sbrc R30,7
com R31
add R30,R24
adc R31,R25
ldd R2,z+0
sbrs R2,6
rjmp L48
.dbline 194
; PORTD|=BIT(DA);
sbi 0x12,4
rjmp L49
L48:
.dbline 196
; else
; PORTD&=~BIT(DA);
cbi 0x12,4
L49:
.dbline 197
; PORTD|=BIT(CLK);
sbi 0x12,3
.dbline 198
; NOP();
nop
.dbline 199
; PORTD&=~BIT(CLK);
cbi 0x12,3
.dbline 201
; //==============
; if(redata[i]&0x20)//
ldi R24,<_redata
ldi R25,>_redata
mov R30,R16
clr R31
sbrc R30,7
com R31
add R30,R24
adc R31,R25
ldd R2,z+0
sbrs R2,5
rjmp L50
.dbline 202
; PORTD|=BIT(DA);
sbi 0x12,4
rjmp L51
L50:
.dbline 204
; else
; PORTD&=~BIT(DA);
cbi 0x12,4
L51:
.dbline 205
; PORTD|=BIT(CLK);
sbi 0x12,3
.dbline 206
; NOP();
nop
.dbline 207
; PORTD&=~BIT(CLK);
cbi 0x12,3
.dbline 209
; //===============
; if(redata[i]&0x10)//
ldi R24,<_redata
ldi R25,>_redata
mov R30,R16
clr R31
sbrc R30,7
com R31
add R30,R24
adc R31,R25
ldd R2,z+0
sbrs R2,4
rjmp L52
.dbline 210
; PORTD|=BIT(DA);
sbi 0x12,4
rjmp L53
L52:
.dbline 212
; else
; PORTD&=~BIT(DA);
cbi 0x12,4
L53:
.dbline 213
; PORTD|=BIT(CLK);
sbi 0x12,3
.dbline 214
; NOP();
nop
.dbline 215
; PORTD&=~BIT(CLK);
cbi 0x12,3
.dbline 217
; //===============
; if(redata[i]&0x04)//
ldi R24,<_redata
ldi R25,>_redata
mov R30,R16
clr R31
sbrc R30,7
com R31
add R30,R24
adc R31,R25
ldd R2,z+0
sbrs R2,2
rjmp L54
.dbline 218
; PORTD|=BIT(DA);
sbi 0x12,4
rjmp L55
L54:
.dbline 220
; else
; PORTD&=~BIT(DA);
cbi 0x12,4
L55:
.dbline 221
; PORTD|=BIT(CLK);
sbi 0x12,3
.dbline 222
; NOP();
nop
.dbline 223
; PORTD&=~BIT(CLK);
cbi 0x12,3
.dbline 225
; //===============
; if(redata[i]&0x02)//
ldi R24,<_redata
ldi R25,>_redata
mov R30,R16
clr R31
sbrc R30,7
com R31
add R30,R24
adc R31,R25
ldd R2,z+0
sbrs R2,1
rjmp L56
.dbline 226
; PORTD|=BIT(DA);
sbi 0x12,4
rjmp L57
L56:
.dbline 228
; else
; PORTD&=~BIT(DA);
cbi 0x12,4
L57:
.dbline 229
; PORTD|=BIT(CLK);
sbi 0x12,3
.dbline 230
; NOP();
nop
.dbline 231
; PORTD&=~BIT(CLK);
cbi 0x12,3
.dbline 233
; //===============
; if(redata[i]&0x01)//
ldi R24,<_redata
ldi R25,>_redata
mov R30,R16
clr R31
sbrc R30,7
com R31
add R30,R24
adc R31,R25
ldd R2,z+0
sbrs R2,0
rjmp L58
.dbline 234
; PORTD|=BIT(DA);
sbi 0x12,4
rjmp L59
L58:
.dbline 236
; else
; PORTD&=~BIT(DA);
cbi 0x12,4
L59:
.dbline 237
sbi 0x12,3
.dbline 238
nop
.dbline 239
cbi 0x12,3
.dbline 241
L45:
.dbline 190
dec R16
L47:
.dbline 190
cpi R16,0
brlt X3
rjmp L44
X3:
.dbline 242
; PORTD|=BIT(CLK);
; NOP();
; PORTD&=~BIT(CLK);
; //===============
; }
; PORTD|=BIT(EN);//OFF DISPLAY
sbi 0x12,6
.dbline 243
; NOP();
nop
.dbline 244
; PORTD|=BIT(RCK);
sbi 0x12,5
.dbline 245
; NOP();
nop
.dbline 246
; PORTD&=~BIT(RCK);//LATCH DATA
cbi 0x12,5
.dbline 247
; NOP();
nop
.dbline 248
; PORTD&=~BIT(EN);//ON DISPLAY
cbi 0x12,6
.dbline -2
.dbline 250
;
; }
L43:
.dbline 0 ; func end
ret
.dbsym r i 16 C
.dbend
.area bss(ram, con, rel)
.dbfile D:\单片机程序\AVR\LSAVR~1\LBT-FC8B暴光管TEST\APP.c
_fg_rin:
.blkb 1
.dbsym s fg_rin _fg_rin c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -