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

📄 ps2simplehard.s

📁 ATmega16应用例子
💻 S
📖 第 1 页 / 共 2 页
字号:
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
	.dbline 323
; 
	xcall _I2C_Start
	tst R16
	brne L72
	.dbline 324
; 
	clr R16
	xjmp L71
L72:
	.dbline 326
; 
; 
	movw R16,R22
	xcall _I2C_SendWrDAdr_
	tst R16
	brne L74
	.dbline 327
; 
	clr R16
	xjmp L71
L74:
	.dbline 329
; 
; 
	mov R16,R20
	xcall _I2C_SendDat
	tst R16
	brne L76
	.dbline 330
; 
	clr R16
	xjmp L71
L76:
	.dbline 332
; 
; 
	xcall _I2C_Restart
	tst R16
	brne L78
	.dbline 333
; 
	clr R16
	xjmp L71
L78:
	.dbline 335
; 
; 
	ldd R16,y+4
	xcall _I2C_SendRdDAdr
	tst R16
	brne L80
	.dbline 336
; 
	clr R16
	xjmp L71
L80:
	.dbline 338
; 
; 
	ldd R16,y+6
	ldd R17,y+7
	xcall _I2C_RcvNAckDat
	tst R16
	brne L82
	.dbline 339
; 
	clr R16
	xjmp L71
L82:
	.dbline 341
; 
; 
	ldi R24,148
	out 0x36,R24
	.dbline 343
; 
; 
	ldi R16,1
	.dbline -2
L71:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l pRdDat 6 pc
	.dbsym l rdDAdr 4 c
	.dbsym r wordAdr 20 c
	.dbsym r wrDAdr 22 i
	.dbend
	.dbfunc e I2C_Read_ _I2C_Read_ fc
;              i -> R20
;            num -> R22
;         pRdDat -> R10,R11
;         rdDAdr -> y+8
;        wordAdr -> R20
;         wrDAdr -> R12,R13
	.even
_I2C_Read_::
	xcall push_gset4
	mov R20,R18
	movw R12,R16
	ldd R10,y+10
	ldd R11,y+11
	ldd R22,y+12
	.dbline -1
	.dbline 359
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
	.dbline 362
; 
; 
; 
	xcall _I2C_Start
	tst R16
	brne L85
	.dbline 363
; 
	clr R16
	xjmp L84
L85:
	.dbline 365
; 
; 
	movw R16,R12
	xcall _I2C_SendWrDAdr_
	tst R16
	brne L87
	.dbline 366
; 
	clr R16
	xjmp L84
L87:
	.dbline 368
; 
; 
	mov R16,R20
	xcall _I2C_SendDat
	tst R16
	brne L89
	.dbline 369
; 
	clr R16
	xjmp L84
L89:
	.dbline 371
; 
; 
	xcall _I2C_Restart
	tst R16
	brne L91
	.dbline 372
; 
	clr R16
	xjmp L84
L91:
	.dbline 374
; 
; 
	ldd R16,y+8
	xcall _I2C_SendRdDAdr
	tst R16
	brne L93
	.dbline 375
; 
	clr R16
	xjmp L84
L93:
	.dbline 377
; 
; 
	clr R20
	xjmp L98
L95:
	.dbline 378
; 
	mov R16,R20
	clr R17
	add R16,R10
	adc R17,R11
	xcall _I2C_RcvAckDat
	tst R16
	brne L99
	.dbline 379
; 
	clr R16
	xjmp L84
L99:
L96:
	.dbline 377
	inc R20
L98:
	.dbline 377
	mov R24,R22
	subi R24,1
	cp R20,R24
	brlo L95
	.dbline 381
; 
; 
	mov R16,R20
	clr R17
	add R16,R10
	adc R17,R11
	xcall _I2C_RcvNAckDat
	tst R16
	brne L101
	.dbline 382
; 
	clr R16
	xjmp L84
L101:
	.dbline 384
; 
; 
	ldi R24,148
	out 0x36,R24
	.dbline 386
; 
; 
	ldi R16,1
	.dbline -2
L84:
	xcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r num 22 c
	.dbsym r pRdDat 10 pc
	.dbsym l rdDAdr 8 c
	.dbsym r wordAdr 20 c
	.dbsym r wrDAdr 12 i
	.dbend
	.dbfile D:\ICC_H\Hardware.H
	.dbfunc e delay50us _delay50us fV
;              j -> R20
;              t -> R16,R17
	.even
_delay50us::
	xcall push_gset1
	.dbline -1
	.dbline 98
	.dbline 100
	xjmp L107
L104:
	.dbline 101
	clr R20
	xjmp L111
L108:
	.dbline 102
L109:
	.dbline 101
	inc R20
L111:
	.dbline 101
	cpi R20,70
	brlo L108
L105:
	.dbline 100
	subi R16,1
	sbci R17,0
L107:
	.dbline 100
	clr R2
	clr R3
	cp R2,R16
	cpc R3,R17
	brlt L104
	.dbline -2
L103:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r j 20 c
	.dbsym r t 16 I
	.dbend
	.dbfunc e delay50ms _delay50ms fV
;              i -> R20,R21
;              t -> R16,R17
	.even
_delay50ms::
	xcall push_gset1
	.dbline -1
	.dbline 113
	.dbline 115
	xjmp L116
L113:
	.dbline 116
	clr R20
	clr R21
	xjmp L120
L117:
	.dbline 117
L118:
	.dbline 116
	subi R20,255  ; offset = 1
	sbci R21,255
L120:
	.dbline 116
	cpi R20,162
	ldi R30,205
	cpc R21,R30
	brlo L117
L114:
	.dbline 115
	subi R16,1
	sbci R17,0
L116:
	.dbline 115
	clr R2
	clr R3
	cp R2,R16
	cpc R3,R17
	brlt L113
	.dbline -2
L112:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r t 16 I
	.dbend
	.area lit(rom, con, rel)
_unshifted::
	.byte 28,'a
	.byte 50,'b
	.byte 33,'c
	.byte 35,'d
	.byte 36,'e
	.byte 43,'f
	.byte 52,'g
	.byte 51,'h
	.byte 'C,'i
	.byte 59,'j
	.byte 'B,'k
	.byte 'K,'l
	.byte 58,'m
	.byte 49,'n
	.byte 'D,'o
	.byte 'M,'p
	.byte 21,'q
	.byte 45,'r
	.byte 27,'s
	.byte 44,'t
	.byte 60,'u
	.byte 42,'v
	.byte 29,'w
	.byte 34,'x
	.byte 53,'y
	.byte 26,'z
	.byte 'E,48
	.byte 22,49
	.byte 30,50
	.byte 38,51
	.byte 37,52
	.byte 46,53
	.byte 54,54
	.byte 61,55
	.byte 62,56
	.byte 'F,57
	.byte 14,96
	.byte 'N,45
	.byte 'U,61
	.byte 93,92
	.byte 41,32
	.byte 'T,91
	.byte 91,93
	.byte 'L,59
	.byte 'R,39
	.byte 'A,44
	.byte 'I,46
	.byte 'J,47
	.byte 'q,46
	.byte 'p,48
	.byte 'i,49
	.byte 'r,50
	.byte 'z,51
	.byte 'k,52
	.byte 's,53
	.byte 't,54
	.byte 'l,55
	.byte 'u,56
	.byte 125,57
	.dbfile D:\ICC_H\PS2.H
	.dbsym e unshifted _unshifted A[118:59:2]kc
_shifted::
	.byte 28,'A
	.byte 50,'B
	.byte 33,'C
	.byte 35,'D
	.byte 36,'E
	.byte 43,'F
	.byte 52,'G
	.byte 51,'H
	.byte 'C,'I
	.byte 59,'J
	.byte 'B,'K
	.byte 'K,'L
	.byte 58,'M
	.byte 49,'N
	.byte 'D,'O
	.byte 'M,'P
	.byte 21,'Q
	.byte 45,'R
	.byte 27,'S
	.byte 44,'T
	.byte 60,'U
	.byte 42,'V
	.byte 29,'W
	.byte 34,'X
	.byte 53,'Y
	.byte 26,'Z
	.byte 'E,48
	.byte 22,49
	.byte 30,50
	.byte 38,51
	.byte 37,52
	.byte 46,53
	.byte 54,54
	.byte 61,55
	.byte 62,56
	.byte 'F,57
	.byte 14,126
	.byte 'N,95
	.byte 'U,43
	.byte 93,124
	.byte 41,32
	.byte 'T,123
	.byte 91,125
	.byte 'L,58
	.byte 'R,34
	.byte 'A,60
	.byte 'I,62
	.byte 'J,63
	.byte 'q,46
	.byte 'p,48
	.byte 'i,49
	.byte 'r,50
	.byte 'z,51
	.byte 'k,52
	.byte 's,53
	.byte 't,54
	.byte 'l,55
	.byte 'u,56
	.byte 125,57
	.dbsym e shifted _shifted A[118:59:2]kc
	.area data(ram, con, rel)
	.dbfile D:\ICC_H\PS2.H
_rcvF::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\ICC_H\PS2.H
	.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\PS2PC~1\PS2SimpleHard\PS2SimpleHard.C
	.dbsym e rcvF _rcvF c
	.area vector(rom, abs)
	.org 8
	jmp _int1_isr
	.area data(ram, con, rel)
	.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\PS2PC~1\PS2SimpleHard\PS2SimpleHard.C
L122:
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\PS2PC~1\PS2SimpleHard\PS2SimpleHard.C
	.area text(rom, con, rel)
	.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\PS2PC~1\PS2SimpleHard\PS2SimpleHard.C
	.dbfunc e int1_isr _int1_isr fV
	.dbsym s rcvBits L122 c
	.even
_int1_isr::
	st -y,R2
	st -y,R3
	st -y,R24
	st -y,R25
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 72
	.dbline 74
	clr R2
	lds R3,L122
	cp R2,R3
	brsh L123
	mov R24,R3
	cpi R24,9
	brsh L123
	.dbline 75
	.dbline 76
	lds R2,_keyVal
	lsr R2
	sts _keyVal,R2
	.dbline 79
	sbis 0x10,4
	rjmp L125
	.dbline 80
	mov R24,R2
	ori R24,128
	sts _keyVal,R24
L125:
	.dbline 81
L123:
	.dbline 82
	lds R24,L122
	subi R24,255    ; addi 1
	sts L122,R24
L127:
	.dbline 83
L128:
	.dbline 83
	sbis 0x10,3
	rjmp L127
	.dbline 85
	ldi R24,10
	lds R2,L122
	cp R24,R2
	brsh L130
	.dbline 86
	.dbline 87
	clr R2
	sts L122,R2
	.dbline 88
	ldi R24,1
	sts _rcvF,R24
	.dbline 89
L130:
	.dbline -2
L121:
	ld R2,y+
	out 0x3f,R2
	ld R25,y+
	ld R24,y+
	ld R3,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbend
	.area data(ram, con, rel)
	.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\PS2PC~1\PS2SimpleHard\PS2SimpleHard.C
L133:
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\PS2PC~1\PS2SimpleHard\PS2SimpleHard.C
L134:
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\PS2PC~1\PS2SimpleHard\PS2SimpleHard.C
	.area text(rom, con, rel)
	.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\PS2PC~1\PS2SimpleHard\PS2SimpleHard.C
	.dbfunc e keyHandle _keyHandle fV
	.dbsym s shift L134 c
	.dbsym s isUp L133 c
;              i -> R20
;            val -> R16
	.even
_keyHandle::
	xcall push_gset1
	.dbline -1
	.dbline 100
	.dbline 104
	clr R2
	sts _rcvF,R2
	.dbline 105
	out 0x1b,R16
	.dbline 106
	lds R2,L133
	tst R2
	breq X3
	xjmp L135
X3:
	.dbline 107
	.dbline 108
	mov R20,R16
	clr R21
	cpi R20,89
	ldi R30,0
	cpc R21,R30
	breq L142
	ldi R24,89
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brlt L160
L159:
	cpi R20,18
	ldi R30,0
	cpc R21,R30
	breq L141
	xjmp L137
L160:
	cpi R20,240
	ldi R30,0
	cpc R21,R30
	breq L140
	xjmp L137
X1:
	.dbline 109
L140:
	.dbline 111
	ldi R24,1
	sts L133,R24
	.dbline 112
	xjmp L136
L141:
	.dbline 114
	ldi R24,1
	sts L134,R24
	.dbline 115
	xjmp L136
L142:
	.dbline 117
	ldi R24,1
	sts L134,R24
	.dbline 118
	xjmp L136
L137:
	.dbline 120
	lds R2,L134
	tst R2
	brne L143
	.dbline 121
	.dbline 127
	clr R20
	xjmp L148
L145:
	.dbline 128
L146:
	.dbline 127
	inc R20
L148:
	.dbline 127
	ldi R24,2
	mul R24,R20
	movw R30,R0
	ldi R24,<_unshifted
	ldi R25,>_unshifted
	add R30,R24
	adc R31,R25
	lpm R30,Z
	cp R30,R16
	breq L149
	cpi R20,59
	brlo L145
L149:
	.dbline 129
	ldi R24,2
	mul R24,R20
	movw R30,R0
	ldi R24,<_unshifted
	ldi R25,>_unshifted
	add R30,R24
	adc R31,R25
	lpm R30,Z
	cp R30,R16
	breq X4
	xjmp L136
X4:
	.dbline 130
	.dbline 132
	xjmp L136
L143:
	.dbline 134
	.dbline 140
	clr R20
	xjmp L155
L152:
	.dbline 141
L153:
	.dbline 140
	inc R20
L155:
	.dbline 140
	ldi R24,2
	mul R24,R20
	movw R30,R0
	ldi R24,<_shifted
	ldi R25,>_shifted
	add R30,R24
	adc R31,R25
	lpm R30,Z
	cp R30,R16
	breq L156
	cpi R20,59
	brlo L152
L156:
	.dbline 142
	ldi R24,2
	mul R24,R20
	movw R30,R0
	ldi R24,<_shifted
	ldi R25,>_shifted
	add R30,R24
	adc R31,R25
	lpm R30,Z
	cp R30,R16
	brne L136
	.dbline 143
	out 0x18,R16
	.dbline 144
	.dbline 145
	.dbline 146
	xjmp L136
L135:
	.dbline 148
	.dbline 149
	clr R2
	sts L133,R2
	.dbline 150
	mov R20,R16
	clr R21
	cpi R20,18
	ldi R30,0
	cpc R21,R30
	breq L164
	cpi R20,18
	ldi R30,0
	cpc R21,R30
	brlt L161
L166:
	cpi R20,89
	ldi R30,0
	cpc R21,R30
	breq L165
	xjmp L161
X2:
	.dbline 151
L164:
	.dbline 153
	clr R2
	sts L134,R2
	.dbline 154
	xjmp L162
L165:
	.dbline 156
	clr R2
	sts L134,R2
	.dbline 157
L161:
L162:
	.dbline 159
L136:
	.dbline -2
L132:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r val 16 c
	.dbend
	.dbfunc e int1_init _int1_init fV
	.even
_int1_init::
	.dbline -1
	.dbline 170
	.dbline 171
	cbi 0x11,3
	.dbline 172
	sbi 0x12,3
	.dbline 173
	in R24,0x35
	ori R24,243
	out 0x35,R24
	.dbline 174
	in R24,0x3b
	ori R24,128
	out 0x3b,R24
	.dbline 175
	sei
	.dbline -2
L167:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 186
	.dbline 187
	ldi R24,255
	out 0x1a,R24
	.dbline 188
	out 0x17,R24
	.dbline 189
	cbi 0x11,4
	.dbline 190
	xcall _int1_init
	xjmp L170
L169:
	.dbline 192
	.dbline 193
	lds R2,_rcvF
	tst R2
	breq L172
	.dbline 194
	lds R16,_keyVal
	xcall _keyHandle
L172:
	.dbline 195
L170:
	.dbline 191
	xjmp L169
X5:
	.dbline -2
L168:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\PS2PC~1\PS2SimpleHard\PS2SimpleHard.C
_keyVal::
	.blkb 1
	.dbsym e keyVal _keyVal c
_dataElem::
	.blkb 6
	.dbfile D:\ICC_H\Software.H
	.dbsym e dataElem _dataElem A[6:6]c

⌨️ 快捷键说明

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