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

📄 bt.s

📁 AVR ICC基于AVR单片机的LED显示程序!
💻 S
📖 第 1 页 / 共 3 页
字号:
	.dbsym r dat 22 i
	.dbend
	.area data(ram, con, rel)
	.dbfile D:\ele\AVR\ICC\cp\biaotao/bt.h
_mm::
	.blkb 2
	.area idata
	.byte 191,191
	.area data(ram, con, rel)
	.dbfile D:\ele\AVR\ICC\cp\biaotao/bt.h
	.dbfile D:\ele\AVR\ICC\cp\biaotao\bt.c
	.dbsym e mm _mm A[2:2]c
_date::
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile D:\ele\AVR\ICC\cp\biaotao\bt.c
	.blkb 8
	.area idata
	.byte 0,0,0,0,0,0,0,0
	.area data(ram, con, rel)
	.dbfile D:\ele\AVR\ICC\cp\biaotao\bt.c
	.dbsym e date _date A[9:9]c
_win::
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile D:\ele\AVR\ICC\cp\biaotao\bt.c
	.dbsym e win _win c
_xian::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\ele\AVR\ICC\cp\biaotao\bt.c
	.dbsym e xian _xian c
	.area text(rom, con, rel)
	.dbfile D:\ele\AVR\ICC\cp\biaotao\bt.c
	.dbfunc e adc_init _adc_init fV
	.even
_adc_init::
	.dbline -1
	.dbline 44
	.dbline 45
	clr R2
	out 0x6,R2
	.dbline 46
	ldi R24,64
	out 0x7,R24
	.dbline 47
	ldi R24,128
	out 0x8,R24
	.dbline 48
	ldi R24,199
	out 0x6,R24
	.dbline -2
L67:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e cw _cw fi
;            mux -> R20
	.even
_cw::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 54
	.dbline 55
	mov R24,R20
	andi R24,15
	ori R24,64
	out 0x7,R24
	.dbline 56
	sbi 0x6,6
	.dbline 57
	ldi R16,500
	ldi R17,1
	rcall _del
	.dbline 58
	in R16,0x4
	in R17,0x5
	.dbline -2
L68:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r mux 20 c
	.dbend
	.dbfunc e cw1 _cw1 fi
;              a -> y+4
;        adc_rel -> y+0
;              i -> R10
;            mux -> R12
	.even
_cw1::
	rcall push_gset4
	mov R12,R16
	sbiw R28,8
	.dbline -1
	.dbline 62
	.dbline 65
	clr R10
	rjmp L73
L70:
	.dbline 66
	.dbline 67
	mov R16,R12
	rcall _cw
	movw R2,R16
	clr R4
	clr R5
	movw R30,R28
	ldd R6,z+0
	ldd R7,z+1
	ldd R8,z+2
	ldd R9,z+3
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	movw R30,R28
	std z+0,R6
	std z+1,R7
	std z+2,R8
	std z+3,R9
	.dbline 68
	wdr
	.dbline 69
L71:
	.dbline 65
	inc R10
L73:
	.dbline 65
	mov R24,R10
	cpi R24,100
	brlo L70
	.dbline 70
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	movw R30,R28
	std z+4,R2
	std z+5,R3
	std z+6,R4
	std z+7,R5
	.dbline 71
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	std z+0,R20
	std z+1,R21
	std z+2,R22
	std z+3,R23
	.dbline 72
	ldi R20,100
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+4
	ldd R3,z+5
	ldd R4,z+6
	ldd R5,z+7
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	rcall div32u
	.dbline -2
L69:
	adiw R28,8
	rcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym l a 4 l
	.dbsym l adc_rel 0 l
	.dbsym r i 10 c
	.dbsym r mux 12 c
	.dbend
	.dbfunc e timer1_init _timer1_init fV
	.even
_timer1_init::
	.dbline -1
	.dbline 81
	.dbline 82
	clr R2
	out 0x2e,R2
	.dbline 83
	ldi R24,240
	out 0x2d,R24
	.dbline 84
	ldi R24,190
	out 0x2c,R24
	.dbline 85
	ldi R24,7
	out 0x2b,R24
	.dbline 86
	ldi R24,161
	out 0x2a,R24
	.dbline 87
	ldi R24,7
	out 0x29,R24
	.dbline 88
	ldi R24,161
	out 0x28,R24
	.dbline 89
	ldi R24,7
	out 0x27,R24
	.dbline 90
	ldi R24,161
	out 0x26,R24
	.dbline 91
	out 0x2f,R2
	.dbline 92
	ldi R24,5
	out 0x2e,R24
	.dbline -2
L74:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e watchdog_init _watchdog_init fV
	.even
_watchdog_init::
	.dbline -1
	.dbline 99
	.dbline 100
	wdr
	.dbline 101
	ldi R24,14
	out 0x21,R24
	.dbline -2
L75:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 106
	.dbline 108
	cli
	.dbline 109
	rcall _port_init
	.dbline 110
	rcall _watchdog_init
	.dbline 111
	rcall _timer1_init
	.dbline 112
	rcall _adc_init
	.dbline 114
	clr R2
	out 0x35,R2
	.dbline 115
	out 0x3b,R2
	.dbline 116
	ldi R24,4
	out 0x39,R24
	.dbline 117
	sei
	.dbline -2
L76:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 26
	rjmp _timer1_ovf_isr
	.area text(rom, con, rel)
	.dbfile D:\ele\AVR\ICC\cp\biaotao\bt.c
	.dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
	.even
_timer1_ovf_isr::
	rcall push_lset
	.dbline -1
	.dbline 127
	.dbline 129
	lds R24,_t
	subi R24,255    ; addi 1
	sts _t,R24
	.dbline 130
	lds R2,_dp
	com R2
	sts _dp,R2
	.dbline 131
	cpi R24,2
	breq X0
	rjmp L78
X0:
	.dbline 132
	.dbline 133
	clr R2
	sts _t,R2
	.dbline 133
	lds R24,_s
	subi R24,255    ; addi 1
	sts _s,R24
	.dbline 133
	lds R24,_s1
	subi R24,255    ; addi 1
	sts _s1,R24
	.dbline 134
	lds R24,_s
	cpi R24,60
	breq X1
	rjmp L80
X1:
	.dbline 135
	.dbline 136
	lds R24,_date+2
	subi R24,255    ; addi 1
	sts _date+2,R24
	.dbline 136
	lds R24,_m1
	subi R24,255    ; addi 1
	sts _m1,R24
	.dbline 136
	sts _s,R2
	.dbline 137
	lds R18,_date+2
	ldi R16,23
	ldi R17,0
	rcall _EEPROMwrite
	.dbline 138
	ldi R24,59
	lds R2,_date+2
	cp R24,R2
	brsh L84
	.dbline 139
	.dbline 140
	clr R2
	sts _date+2,R2
	.dbline 140
	lds R24,_date+1
	subi R24,255    ; addi 1
	sts _date+1,R24
	.dbline 140
	ldi R18,400
	ldi R19,1
	ldi R16,500
	ldi R17,1
	rcall _bee
	.dbline 141
	ldi R24,23
	lds R2,_date+1
	cp R24,R2
	brsh L89
	.dbline 141
	clr R2
	sts _date+1,R2
L89:
	.dbline 142
	lds R18,_date+2
	ldi R16,23
	ldi R17,0
	rcall _EEPROMwrite
	.dbline 142
	lds R18,_date+1
	ldi R16,21
	ldi R17,0
	rcall _EEPROMwrite
	.dbline 143
L84:
	.dbline 144
	lds R2,_date+3
	lds R3,_date+1
	cp R3,R2
	brne L95
	lds R2,_date+4
	lds R3,_date+2
	cp R3,R2
	brne L95
	ldi R17,2
	lds R16,_date
	rcall mod8u
	cpi R16,1
	brne L95
	.dbline 145
	.dbline 145
	ldi R24,1
	sts _start,R24
	.dbline 145
	ldi R18,400
	ldi R19,1
	ldi R16,1000
	ldi R17,3
	rcall _bee
	.dbline 145
L95:
	.dbline 146
L80:
	.dbline 147
L78:
	.dbline 148
	ldi R24,240
	out 0x2d,R24
	.dbline 149
	ldi R24,190
	out 0x2c,R24
	.dbline -2
L77:
	rcall pop_lset
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e a _a fV
	.even
_a::
	.dbline -1
	.dbline 160
; 
; 
; void a(void)           ///*********///
; {
	.dbline 161
;  tm[3]=date[1]/10; tm[2]=date[1]%10; tm[1]=date[2]/10; tm[0]=date[2]%10;
	ldi R17,10
	lds R16,_date+1
	rcall div8u
	sts _tm+3,R16
	.dbline 161
	ldi R17,10
	lds R16,_date+1
	rcall mod8u
	sts _tm+2,R16
	.dbline 161
	ldi R17,10
	lds R16,_date+2
	rcall div8u
	sts _tm+1,R16
	.dbline 161
	ldi R17,10
	lds R16,_date+2
	rcall mod8u
	sts _tm,R16
	.dbline 162
;  if(date[1]<10) tm[3]=11;
	lds R24,_date+1
	cpi R24,10
	brsh L109
	.dbline 162
	ldi R24,11
	sts _tm+3,R24
L109:
	.dbline 163
;  if(((s%3)==0)&&(win%2==0))  tm[3]=tm[2]=tm[1]=tm[0]=10;
	ldi R17,3
	lds R16,_s
	rcall mod8u
	tst R16
	brne L113
	ldi R17,2
	lds R16,_win
	rcall mod8u
	tst R16
	brne L113
	.dbline 163
	ldi R24,10
	sts _tm,R24
	sts _tm+1,R24
	sts _tm+2,R24
	sts _tm+3,R24
L113:
	.dbline 164
; a11;DAT(shu[tm[0]]);del(1000);a10;DAT(0xff);del(5);WDR();
	sbi 0x18,2
	.dbline 164
	ldi R24,<_shu
	ldi R25,>_shu
	lds R30,_tm
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _DAT
	.dbline 164
	ldi R16,1000
	ldi R17,3
	rcall _del
	.dbline 164
	cbi 0x18,2
	.dbline 164
	ldi R16,255
	rcall _DAT
	.dbline 164
	ldi R16,5
	ldi R17,0
	rcall _del
	.dbline 164
	wdr
	.dbline 165
; a21;DAT(shu[tm[1]]);del(1000);a20;DAT(0xff);del(5);WDR(); 
	sbi 0x18,3
	.dbline 165
	ldi R24,<_shu
	ldi R25,>_shu
	lds R30,_tm+1
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _DAT
	.dbline 165
	ldi R16,1000
	ldi R17,3
	rcall _del
	.dbline 165
	cbi 0x18,3
	.dbline 165
	ldi R16,255
	rcall _DAT
	.dbline 165
	ldi R16,5
	ldi R17,0
	rcall _del
	.dbline 165
	wdr
	.dbline 166
; if(dp==0) {a31;DAT(shu[tm[2]]);del(1000);a30;DAT(0xff);del(5);WDR();}
	lds R2,_dp
	tst R2
	brne L119
	.dbline 166
	.dbline 166
	sbi 0x15,0
	.dbline 166
	ldi R24,<_shu
	ldi R25,>_shu
	lds R30,_tm+2
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _DAT
	.dbline 166
	ldi R16,1000
	ldi R17,3
	rcall _del
	.dbline 166
	cbi 0x15,0
	.dbline 166
	ldi R16,255
	rcall _DAT
	.dbline 166
	ldi R16,5
	ldi R17,0
	rcall _del
	.dbline 166
	wdr
	.dbline 166
	rjmp L120
L119:
	.dbline 167
; else      {a31;DAT(shu[tm[2]]&=~0x80);del(1000);a30;DAT(0xff);del(5);WDR();}
	.dbline 167
	sbi 0x15,0
	.dbline 167
	ldi R24,<_shu
	ldi R25,>_shu
	lds R2,_tm+2
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R2
	ldd R24,z+0
	andi R24,127
	mov R4,R24
	std z+0,R4
	mov R16,R24
	rcall _DAT
	.dbline 167
	ldi R16,1000
	ldi R17,3
	rcall _del
	.dbline 167
	cbi 0x15,0
	.dbline 167
	ldi R16,255
	rcall _DAT
	.dbline 167
	ldi R16,5
	ldi R17,0
	rcall _del
	.dbline 167
	wdr
	.dbline 167
L120:
	.dbline 168
; a41;DAT(shu[tm[3]]);del(1000);a40;DAT(0xff);del(5);WDR();
	sbi 0x15,3
	.dbline 168
	ldi R24,<_shu
	ldi R25,>_shu
	lds R30,_tm+3
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _DAT
	.dbline 168
	ldi R16,1000
	ldi R17,3
	rcall _del
	.dbline 168
	cbi 0x15,3
	.dbline 168
	ldi R16,255
	rcall _DAT
	.dbline 168
	ldi R16,5
	ldi R17,0
	rcall _del
	.dbline 168
	wdr
	.dbline -2
L101:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e a1 _a1 fV
	.even
_a1::
	.dbline -1
	.dbline 174
; }
; 
; 
; 
; void a1(void)           ///*********///
; {
	.dbline 175
; tm[3]=m1/10; tm[2]=m1%10; tm[1]=s/10; tm[0]=s%10;
	ldi R17,10
	lds R16,_m1
	rcall div8u
	sts _tm+3,R16
	.dbline 175
	ldi R17,10
	lds R16,_m1
	rcall mod8u
	sts _tm+2,R16
	.dbline 175
	ldi R17,10
	lds R16,_s
	rcall div8u
	sts _tm+1,R16
	.dbline 175
	ldi R17,10
	lds R16,_s
	rcall mod8u
	sts _tm,R16
	.dbline 176
; i=3;
	ldi R24,3
	sts _i,R24
	rjmp L129
L128:
	.dbline 178
	.dbline 178
	ldi R24,<_tm
	ldi R25,>_tm
	lds R30,_i
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,11
	std z+0,R24
	.dbline 178
	lds R24,_i
	subi R24,1
	sts _i,R24
	.dbline 178
L129:
	.dbline 177
; while(i>0&&tm[i]==0)
	clr R2
	lds R3,_i
	cp R2,R3
	brsh L131
	ldi R24,<_tm
	ldi R25,>_tm
	mov R30,R3
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	tst R2
	breq L128
L131:
	.dbline 179
; {tm[i]=11;i--;}
; A();
	rcall _A
	.dbline -2
L124:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e read _read fV
	.even
_read::
	.dbline -1
	.dbline 184
; }
; 
; 
; void read(void)
; {
	.dbline 186
; 
; date[0]=EEPROMread(19);  WDR(); // en 
	ldi R16,19
	ldi R17,0
	rcall _EEPROMread
	sts _date,R16
	.dbline 186
	wdr
	.dbline 187
; date[1]=EEPROMread(21);  WDR(); // hour 
	ldi R16,21
	ldi R17,0
	rcall _EEPROMread
	sts _date+1,R16
	.dbline 187
	wdr
	.dbline 188
; date[2]=EEPROMread(23);  WDR(); // min  
	ldi R16,23
	ldi R17,0
	rcall _EEPROMread
	sts _date+2,R16
	.dbline 188
	wdr
	.dbline 189
; date[3]=EEPROMread(25);  WDR(); // set h
	ldi R16,25
	ldi R17,0
	rcall _EEPROMread
	sts _date+3,R16
	.dbline 189
	wdr
	.dbline 190
; date[4]=EEPROMread(27);  WDR(); // set m
	ldi R16,27
	ldi R17,0
	rcall _EEPROMread
	sts _date+4,R16
	.dbline 190
	wdr
	.dbline 191
; date[5]=EEPROMread(29);  WDR(); // long
	ldi R16,29
	ldi R17,0
	rcall _EEPROMread
	sts _date+5,R16
	.dbline 191
	wdr
	.dbline 192
; date[6]=EEPROMread(31);  WDR(); // bee
	ldi R16,31
	ldi R17,0
	rcall _EEPROMread
	sts _date+6,R16
	.dbline 192
	wdr
	.dbline 193
; date[7]=EEPROMread(33);  WDR(); //win
	ldi R16,33
	ldi R17,0
	rcall _EEPROMread
	sts _date+7,R16
	.dbline 193
	wdr
	.dbline -2

⌨️ 快捷键说明

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