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

📄 ds1302.s

📁 1602液晶显示模块
💻 S
📖 第 1 页 / 共 2 页
字号:
	.dbsym r time 20 pc
	.dbsym r ddr 22 pc
	.dbend
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序/DELAY.C
	.dbfunc e delay_1us _delay_1us fV
	.even
_delay_1us::
	.dbline -1
	.dbline 5
	.dbline 6
	nop
	.dbline -2
L32:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay_nus _delay_nus fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_nus::
	rcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 10
	.dbline 11
	clr R20
	clr R21
	.dbline 12
	rjmp L37
L34:
	.dbline 13
	rcall _delay_1us
L35:
	.dbline 12
	subi R20,255  ; offset = 1
	sbci R21,255
L37:
	.dbline 12
	cp R20,R22
	cpc R21,R23
	brlo L34
	.dbline -2
L33:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.dbfunc e delay_1ms _delay_1ms fV
;              i -> R16,R17
	.even
_delay_1ms::
	.dbline -1
	.dbline 17
	.dbline 19
	clr R16
	clr R17
	rjmp L42
L39:
	.dbline 19
L40:
	.dbline 19
	subi R16,255  ; offset = 1
	sbci R17,255
L42:
	.dbline 19
	cpi R16,141
	ldi R30,0
	cpc R17,R30
	brlo L39
	.dbline -2
L38:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e delay_nms _delay_nms fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_nms::
	rcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 23
	.dbline 24
	clr R20
	clr R21
	.dbline 25
	rjmp L47
L44:
	.dbline 26
	.dbline 27
	rcall _delay_1ms
	.dbline 28
L45:
	.dbline 25
	subi R20,255  ; offset = 1
	sbci R21,255
L47:
	.dbline 25
	cp R20,R22
	cpc R21,R23
	brlo L44
	.dbline -2
L43:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.area lit(rom, con, rel)
_SEG_table::
	.byte 192,249
	.byte 164,176
	.byte 153,146
	.byte 130,248
	.byte 128,144
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
	.dbsym e SEG_table _SEG_table A[10:10]kc
	.area data(ram, con, rel)
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
_Sec_buffer::
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
	.dbsym e Sec_buffer _Sec_buffer A[4:4]c
_Min_buffer::
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
	.dbsym e Min_buffer _Min_buffer A[4:4]c
	.area text(rom, con, rel)
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 35
	.dbline 36
	clr R2
	out 0x18,R2
	.dbline 37
	out 0x17,R2
	.dbline 38
	out 0x15,R2
	.dbline 39
	ldi R24,255
	out 0x14,R24
	.dbline 40
	out 0x12,R2
	.dbline 41
	out 0x11,R24
	.dbline -2
L48:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e timer1_init _timer1_init fV
	.even
_timer1_init::
	.dbline -1
	.dbline 49
	.dbline 50
	clr R2
	out 0x2e,R2
	.dbline 51
	ldi R24,252
	out 0x2d,R24
	.dbline 52
	ldi R24,24
	out 0x2c,R24
	.dbline 53
	ldi R24,3
	out 0x2b,R24
	.dbline 54
	ldi R24,232
	out 0x2a,R24
	.dbline 55
	ldi R24,3
	out 0x29,R24
	.dbline 56
	ldi R24,232
	out 0x28,R24
	.dbline 57
	ldi R24,3
	out 0x27,R24
	.dbline 58
	ldi R24,232
	out 0x26,R24
	.dbline 59
	out 0x2f,R2
	.dbline 60
	ldi R24,1
	out 0x2e,R24
	.dbline -2
L49:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 65
	.dbline 66
	cli
	.dbline 67
	rcall _port_init
	.dbline 68
	rcall _timer1_init
	.dbline 69
	clr R2
	out 0x35,R2
	.dbline 70
	out 0x3b,R2
	.dbline 71
	ldi R24,4
	out 0x39,R24
	.dbline 72
	sei
	.dbline -2
L50:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e sendbeyt _sendbeyt fV
;              i -> R20,R21
;              x -> R22
	.even
_sendbeyt::
	rcall push_gset2
	mov R22,R16
	.dbline -1
	.dbline 81
	.dbline 83
	clr R20
	clr R21
L52:
	.dbline 84
	.dbline 85
	sbi 0x12,1
	.dbline 86
	ldi R16,1
	ldi R17,0
	movw R18,R20
	rcall lsl16
	mov R2,R22
	clr R3
	and R2,R16
	and R3,R17
	tst R2
	brne X1
	tst R3
	breq L56
X1:
	.dbline 87
	sbi 0x12,0
	rjmp L57
L56:
	.dbline 89
	cbi 0x12,0
L57:
	.dbline 90
	cbi 0x12,1
	.dbline 91
L53:
	.dbline 83
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 83
	cpi R20,8
	ldi R30,0
	cpc R21,R30
	brlt L52
	.dbline 92
	sbi 0x12,1
	.dbline -2
L51:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 I
	.dbsym r x 22 c
	.dbend
	.dbfunc e sendFOURbeyt _sendFOURbeyt fV
	.even
_sendFOURbeyt::
	.dbline -1
	.dbline 97
	.dbline 97
	ldi R24,19
	out 0x12,R24
	.dbline 98
	ldi R24,<_SEG_table
	ldi R25,>_SEG_table
	lds R30,_Sec_buffer
	clr R31
	add R30,R24
	adc R31,R25
	lpm R16,Z
	rcall _sendbeyt
	.dbline 99
	ldi R16,200
	ldi R17,0
	rcall _delay_nus
	.dbline 100
	ldi R24,35
	out 0x12,R24
	.dbline 101
	ldi R24,<_SEG_table
	ldi R25,>_SEG_table
	lds R30,_Sec_buffer+1
	clr R31
	add R30,R24
	adc R31,R25
	lpm R16,Z
	rcall _sendbeyt
	.dbline 102
	ldi R16,200
	ldi R17,0
	rcall _delay_nus
	.dbline 103
	ldi R24,7
	out 0x12,R24
	.dbline 104
	ldi R24,<_SEG_table
	ldi R25,>_SEG_table
	lds R30,_Min_buffer
	clr R31
	add R30,R24
	adc R31,R25
	lpm R16,Z
	rcall _sendbeyt
	.dbline 105
	ldi R16,200
	ldi R17,0
	rcall _delay_nus
	.dbline 106
	ldi R24,11
	out 0x12,R24
	.dbline 107
	ldi R24,<_SEG_table
	ldi R25,>_SEG_table
	lds R30,_Min_buffer+1
	clr R31
	add R30,R24
	adc R31,R25
	lpm R16,Z
	rcall _sendbeyt
	.dbline 108
	ldi R16,200
	ldi R17,0
	rcall _delay_nus
	.dbline 109
	ldi R24,3
	out 0x12,R24
	.dbline 110
	ldi R16,200
	ldi R17,0
	rcall _delay_nus
	.dbline -2
L58:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 16
	rjmp _timer1_ovf_isr
	.area text(rom, con, rel)
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
	.dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
	.even
_timer1_ovf_isr::
	rcall push_lset
	.dbline -1
	.dbline 118
	.dbline 119
	rcall _sendFOURbeyt
	.dbline 121
	ldi R24,252
	out 0x2d,R24
	.dbline 122
	ldi R24,24
	out 0x2c,R24
	.dbline -2
L61:
	rcall pop_lset
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e BINtoArray _BINtoArray fV
;           temp -> R20
;              i -> R22
;          count -> R10,R11
;              p -> R12,R13
	.even
_BINtoArray::
	rcall push_gset4
	movw R10,R18
	movw R12,R16
	.dbline -1
	.dbline 128
	.dbline 129
	cli
	.dbline 130
	clr R22
	rjmp L66
L63:
	.dbline 131
	.dbline 132
	ldi R18,10
	ldi R19,0
	movw R16,R10
	rcall mod16u
	mov R20,R16
	.dbline 133
	movw R30,R12
	std z+0,R20
	.dbline 134
	ldi R18,10
	ldi R19,0
	movw R16,R10
	rcall div16u
	movw R10,R16
	.dbline 135
	movw R24,R12
	adiw R24,1
	movw R12,R24
	.dbline 136
L64:
	.dbline 130
	inc R22
L66:
	.dbline 130
	cpi R22,4
	brlo L63
	.dbline 137
	sei
	.dbline -2
L62:
	rcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym r temp 20 c
	.dbsym r i 22 c
	.dbsym r count 10 i
	.dbsym r p 12 pc
	.dbend
	.dbfunc e main _main fV
;             CO -> R20
	.even
_main::
	.dbline -1
	.dbline 141
; void main()
; {char CO=0;
	.dbline 141
	clr R20
	.dbline 142
; init_devices();
	rcall _init_devices
	.dbline 143
; DS1302_WriteTime();   //时间校准
	rcall _DS1302_WriteTime
	rjmp L69
L68:
	.dbline 145
	.dbline 146
	rcall _DS1302_ReadTime
	.dbline 147
	lds R18,_second
	lds R19,_second+1
	ldi R16,<_Sec_buffer
	ldi R17,>_Sec_buffer
	rcall _BINtoArray
	.dbline 148
	lds R18,_date
	lds R19,_date+1
	ldi R16,<_Min_buffer
	ldi R17,>_Min_buffer
	rcall _BINtoArray
	.dbline 149
	ldi R16,1
	ldi R17,0
	rcall _delay_nus
	.dbline 150
L69:
	.dbline 144
	rjmp L68
X2:
	.dbline -2
L67:
	.dbline 0 ; func end
	ret
	.dbsym r CO 20 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
_year::
	.blkb 2
	.dbfile E:\biyesheji\TESTBE~1\DS1302\程序/ds1302.h
	.dbsym e year _year I
_month::
	.blkb 2
	.dbsym e month _month I
_week::
	.blkb 2
	.dbsym e week _week I
_date::
	.blkb 2
	.dbsym e date _date I
_hour::
	.blkb 2
	.dbsym e hour _hour I
_minute::
	.blkb 2
	.dbsym e minute _minute I
_second::
	.blkb 2
	.dbsym e second _second I

⌨️ 快捷键说明

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