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

📄 main.s

📁 mega8515通过的DS1302芯片使用程序
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile D:\AVR实验\DS1302时间芯片\main.c
	.dbfunc e jisuan _jisuan fV
;              d -> R20
;              e -> R22
;         b_data -> R16
	.even
_jisuan::
	rcall push_gset2
	.dbline -1
	.dbline 12
; #include <iom8515v.h>
; 
; #include "ds1302.h"
; #include "d4094.h"
; 
; 
; uint gewei,shiwei;
; uint sec,min,hour,n1,n2,n3,n4;
; 
; 
; void jisuan(uchar b_data)
; {
	.dbline 14
;    uchar e,d;
;    e=b_data;
	mov R22,R16
	.dbline 15
;    d=e;
	mov R20,R22
	.dbline 16
;    e=e&0x0f;
	andi R22,15
	.dbline 17
;    d=d>>4;
	mov R24,R20
	swap R24
	andi R24,#0x0F
	mov R20,R24
	.dbline 18
;    gewei=(e&0x01)+((e>>1)&0x01)*2+((e>>2)&0x01)*4+((e>>3)&0x01)*8;
	mov R24,R22
	lsr R24
	andi R24,1
	ldi R25,2
	mul R25,R24
	mov R24,R22
	clr R25
	andi R24,1
	andi R25,0
	add R24,R0
	adc R25,R1
	mov R30,R22
	lsr R30
	lsr R30
	andi R30,1
	ldi R31,4
	mul R31,R30
	add R24,R0
	adc R25,R1
	mov R30,R22
	lsr R30
	lsr R30
	lsr R30
	andi R30,1
	ldi R31,8
	mul R31,R30
	add R24,R0
	adc R25,R1
	sts _gewei+1,R25
	sts _gewei,R24
	.dbline 19
;    shiwei=(d&0x01)+((d>>1)&0x01)*2+((d>>2)&0x01)*4+((d>>3)&0x01)*8; 
	mov R24,R20
	lsr R24
	andi R24,1
	ldi R25,2
	mul R25,R24
	mov R24,R20
	clr R25
	andi R24,1
	andi R25,0
	add R24,R0
	adc R25,R1
	mov R30,R20
	lsr R30
	lsr R30
	andi R30,1
	ldi R31,4
	mul R31,R30
	add R24,R0
	adc R25,R1
	mov R30,R20
	lsr R30
	lsr R30
	lsr R30
	andi R30,1
	ldi R31,8
	mul R31,R30
	add R24,R0
	adc R25,R1
	sts _shiwei+1,R25
	sts _shiwei,R24
	.dbline -2
L1:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r d 20 c
	.dbsym r e 22 c
	.dbsym r b_data 16 c
	.dbend
	.dbfunc e main _main fV
;            num -> R20,R21
	.even
_main::
	.dbline -1
	.dbline 26
; 
;    }
; 
; 
; 
; void main()
; {
	.dbline 29
; 
;   uint num; 
;   DDRC=0xFF;
	ldi R24,255
	out 0x14,R24
	.dbline 30
;   PORTC=0xFF;
	out 0x15,R24
	.dbline 31
;   WriteSec(0x14);
	ldi R16,20
	ldi R17,0
	rcall _WriteSec
	.dbline 32
;   WriteMin(0x00);
	clr R16
	clr R17
	rcall _WriteMin
	.dbline 33
;   WriteHour(0x00);
	clr R16
	clr R17
	rcall _WriteHour
	rjmp L4
L3:
	.dbline 35
	.dbline 37
	rcall _ReadSec
	sts _sec+1,R17
	sts _sec,R16
	.dbline 38
	rcall _ReadMin
	sts _min+1,R17
	sts _min,R16
	.dbline 39
	rcall _ReadHour
	sts _hour+1,R17
	sts _hour,R16
	.dbline 40
	lds R16,_sec
	rcall _jisuan
	.dbline 41
	lds R2,_gewei
	lds R3,_gewei+1
	sts _n1+1,R3
	sts _n1,R2
	.dbline 42
	lds R2,_shiwei
	lds R3,_shiwei+1
	sts _n2+1,R3
	sts _n2,R2
	.dbline 43
	lds R16,_min
	rcall _jisuan
	.dbline 44
	lds R2,_gewei
	lds R3,_gewei+1
	sts _n3+1,R3
	sts _n3,R2
	.dbline 45
	lds R2,_shiwei
	lds R3,_shiwei+1
	sts _n4+1,R3
	sts _n4,R2
	.dbline 46
	lds R18,_n3
	lds R19,_n3+1
	ldi R16,100
	ldi R17,0
	rcall empy16s
	movw R2,R16
	lds R18,_n4
	lds R19,_n4+1
	ldi R16,1000
	ldi R17,3
	rcall empy16s
	movw R20,R16
	add R20,R2
	adc R21,R3
	lds R18,_n2
	lds R19,_n2+1
	ldi R16,10
	ldi R17,0
	rcall empy16s
	add R20,R16
	adc R21,R17
	lds R2,_n1
	lds R3,_n1+1
	add R20,R2
	adc R21,R3
	.dbline 49
	movw R16,R20
	rcall _update_display_dp
	.dbline 51
L4:
	.dbline 34
	rjmp L3
X0:
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r num 20 i
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\AVR实验\DS1302时间芯片\main.c
_n4::
	.blkb 2
	.dbsym e n4 _n4 i
_n3::
	.blkb 2
	.dbsym e n3 _n3 i
_n2::
	.blkb 2
	.dbsym e n2 _n2 i
_n1::
	.blkb 2
	.dbsym e n1 _n1 i
_hour::
	.blkb 2
	.dbsym e hour _hour i
_min::
	.blkb 2
	.dbsym e min _min i
_sec::
	.blkb 2
	.dbsym e sec _sec i
_shiwei::
	.blkb 2
	.dbsym e shiwei _shiwei i
_gewei::
	.blkb 2
	.dbsym e gewei _gewei i

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -