📄 adc7512.s
字号:
.module adc7512.c
.area text(rom, con, rel)
.dbfile E:\产品\开发板\mega128-board\实验程序\数模转换\adc7512.c
.dbfunc e s_ms _s_ms fV
; t -> R16,R17
.even
_s_ms::
.dbline -1
.dbline 7
; #include<iom128v.h>
; #define uchar unsigned char
; #define uint unsigned int
;
; //延时函数
; void s_ms(unsigned int t)
; {
.dbline 8
; for(;t>1;t--)
xjmp L5
L2:
.dbline 9
; {
.dbline 10
; }
L3:
.dbline 8
subi R16,1
sbci R17,0
L5:
.dbline 8
ldi R24,1
ldi R25,0
cp R24,R16
cpc R25,R17
brlo L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r t 16 i
.dbend
.dbfunc e spi_init _spi_init fV
.even
_spi_init::
.dbline -1
.dbline 14
; }
;
; void spi_init()
; {
.dbline 15
; DDRB=0xf7; //端口设置
ldi R24,247
out 0x17,R24
.dbline 16
; PORTB=0xff;
ldi R24,255
out 0x18,R24
.dbline 17
; SPSR=0x00;
clr R2
out 0xe,R2
.dbline 18
; SPCR=0x5d; //主机模式 方式0 ocs/16
ldi R24,93
out 0xd,R24
.dbline -2
L6:
.dbline 0 ; func end
ret
.dbend
.dbfunc e spi_send _spi_send fV
; spi_hi -> R12
; spi_lo -> R10
; spi_data -> R16,R17
.even
_spi_send::
xcall push_xgset003C
.dbline -1
.dbline 22
; }
;
; void spi_send(uint spi_data)
; {
.dbline 24
; uchar spi_lo,spi_hi;
; spi_lo=spi_data;
mov R10,R16
.dbline 25
; spi_hi=spi_data>>8;
movw R12,R16
mov R12,R13
clr R13
.dbline 27
;
; PORTB&=~(1<<0); //ss=0
cbi 0x18,0
.dbline 28
; SPDR=spi_hi;
out 0xf,R12
L8:
.dbline 29
; while(!(SPSR&(1<<SPIF)));
L9:
.dbline 29
sbis 0xe,7
rjmp L8
X1:
.dbline 30
; SPDR=spi_lo;
out 0xf,R10
L11:
.dbline 31
; while(!(SPSR&(1<<SPIF)));
L12:
.dbline 31
sbis 0xe,7
rjmp L11
X2:
.dbline 32
; PORTB|=(1<<0);
sbi 0x18,0
.dbline -2
L7:
.dbline 0 ; func end
xjmp pop_xgset003C
.dbsym r spi_hi 12 c
.dbsym r spi_lo 10 c
.dbsym r spi_data 16 i
.dbend
.dbfunc e main _main fI
.even
_main::
.dbline -1
.dbline 37
; }
;
; //主函数
; main()
; {
.dbline 38
; s_ms(50000); //等待7512复位
ldi R16,50000
ldi R17,195
xcall _s_ms
.dbline 39
; spi_init();
xcall _spi_init
.dbline 40
; spi_send(0x07ff);
ldi R16,2047
ldi R17,7
xcall _spi_send
L15:
.dbline 41
; while(1);
L16:
.dbline 41
xjmp L15
X3:
.dbline -2
L14:
.dbline 0 ; func end
ret
.dbend
; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -