📄 main_adc0832.s
字号:
.module main_adc0832.c
.area text(rom, con, rel)
.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\main_adc0832.c
.dbfunc e main _main fI
.even
_main::
.dbline -1
.dbline 10
; #include <iom8515v.h>
; #include <macros.h>
;
; #define uchar unsigned char
; #define uint unsigned int
;
; uint num0,num1,num2,num;
;
; main()
; {
.dbline 11
; DDRB=0xFF;
ldi R24,255
out 0x17,R24
.dbline 12
; PORTB=0xFF;
out 0x18,R24
.dbline 13
; DDRC=0xFF;
out 0x14,R24
.dbline 14
; PORTC=0xFF;
out 0x15,R24
rjmp L3
L2:
.dbline 16
; while(1)
; {
.dbline 17
; read_adc();
rcall _read_adc
.dbline 18
; num0=returnvol()/100;
rcall _returnvol
ldi R18,100
ldi R19,0
rcall div16s
sts _num0+1,R17
sts _num0,R16
.dbline 20
;
; num1=(returnvol()%100)/10;
rcall _returnvol
ldi R18,100
ldi R19,0
rcall mod16s
ldi R18,10
ldi R19,0
rcall div16s
sts _num1+1,R17
sts _num1,R16
.dbline 22
;
; num2=returnvol()%10;
rcall _returnvol
movw R10,R16
ldi R18,10
ldi R19,0
rcall mod16s
sts _num2+1,R17
sts _num2,R16
.dbline 24
;
; num=num0*100+num1*10+num2;
lds R18,_num1
lds R19,_num1+1
ldi R16,10
ldi R17,0
rcall empy16s
movw R2,R16
lds R18,_num0
lds R19,_num0+1
ldi R16,100
ldi R17,0
rcall empy16s
movw R4,R16
add R4,R2
adc R5,R3
lds R2,_num2
lds R3,_num2+1
add R4,R2
adc R5,R3
sts _num+1,R5
sts _num,R4
.dbline 25
; update_display_dp(num);
movw R16,R4
rcall _update_display_dp
.dbline 26
; }
L3:
.dbline 15
rjmp L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\main_adc0832.c
_num::
.blkb 2
.dbsym e num _num i
_num2::
.blkb 2
.dbsym e num2 _num2 i
_num1::
.blkb 2
.dbsym e num1 _num1 i
_num0::
.blkb 2
.dbsym e num0 _num0 i
; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -