⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc7512.s

📁 这是atmega128单片机的数模转换程序
💻 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 + -