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

📄 m16.s

📁 M16-ISP串口通讯,新手可以参考本例子进行通讯实验
💻 S
📖 第 1 页 / 共 2 页
字号:
	.dbline 362
	sbi 0x18,3
	.dbline 362
	sbi 0x18,0
	.dbline 362
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 362
	.dbline 362
	cbi 0x18,1
	.dbline 362
	cbi 0x18,2
	.dbline 362
	sbi 0x18,3
	.dbline 362
	sbi 0x18,0
	.dbline 362
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 362
	.dbline 362
L58:
	.dbline 362
	subi R20,1
	sbci R21,0
L60:
	.dbline 362
; 
	cpi R20,0
	cpc R20,R21
	breq X7
	xjmp L57
X7:
X3:
	.dbline 363
	ldi R20,3
	ldi R21,0
	xjmp L64
L61:
	.dbline 363
	.dbline 363
	cbi 0x18,3
	.dbline 363
	sbi 0x18,2
	.dbline 363
	sbi 0x18,1
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,3
	.dbline 363
	cbi 0x18,2
	.dbline 363
	sbi 0x18,1
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,2
	.dbline 363
	sbi 0x18,3
	.dbline 363
	sbi 0x18,1
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,2
	.dbline 363
	cbi 0x18,3
	.dbline 363
	sbi 0x18,1
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,2
	.dbline 363
	sbi 0x18,3
	.dbline 363
	sbi 0x18,1
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,2
	.dbline 363
	sbi 0x18,3
	.dbline 363
	sbi 0x18,1
	.dbline 363
	cbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,0
	.dbline 363
	sbi 0x18,2
	.dbline 363
	sbi 0x18,1
	.dbline 363
	sbi 0x18,3
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,0
	.dbline 363
	cbi 0x18,2
	.dbline 363
	sbi 0x18,1
	.dbline 363
	sbi 0x18,3
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,0
	.dbline 363
	sbi 0x18,2
	.dbline 363
	sbi 0x18,1
	.dbline 363
	sbi 0x18,3
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,0
	.dbline 363
	sbi 0x18,2
	.dbline 363
	cbi 0x18,1
	.dbline 363
	sbi 0x18,3
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,1
	.dbline 363
	sbi 0x18,2
	.dbline 363
	sbi 0x18,3
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,1
	.dbline 363
	sbi 0x18,2
	.dbline 363
	sbi 0x18,3
	.dbline 363
	cbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,1
	.dbline 363
	sbi 0x18,2
	.dbline 363
	sbi 0x18,3
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,1
	.dbline 363
	sbi 0x18,2
	.dbline 363
	cbi 0x18,3
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,3
	.dbline 363
	sbi 0x18,2
	.dbline 363
	sbi 0x18,1
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
	.dbline 363
	cbi 0x18,3
	.dbline 363
	sbi 0x18,2
	.dbline 363
	cbi 0x18,1
	.dbline 363
	sbi 0x18,0
	.dbline 363
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 363
L62:
	.dbline 363
	subi R20,1
	sbci R21,0
L64:
	.dbline 363
; 
	cpi R20,0
	cpc R20,R21
	breq X8
	xjmp L61
X8:
X4:
	.dbline 364
	ldi R20,3
	ldi R21,0
	xjmp L68
L65:
	.dbline 364
	.dbline 364
	cbi 0x18,3
	.dbline 364
	sbi 0x18,2
	.dbline 364
	sbi 0x18,1
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,3
	.dbline 364
	sbi 0x18,2
	.dbline 364
	cbi 0x18,1
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,1
	.dbline 364
	sbi 0x18,2
	.dbline 364
	sbi 0x18,3
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,1
	.dbline 364
	sbi 0x18,2
	.dbline 364
	cbi 0x18,3
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,1
	.dbline 364
	sbi 0x18,2
	.dbline 364
	sbi 0x18,3
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,1
	.dbline 364
	sbi 0x18,2
	.dbline 364
	sbi 0x18,3
	.dbline 364
	cbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,0
	.dbline 364
	sbi 0x18,2
	.dbline 364
	sbi 0x18,1
	.dbline 364
	sbi 0x18,3
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,0
	.dbline 364
	sbi 0x18,2
	.dbline 364
	cbi 0x18,1
	.dbline 364
	sbi 0x18,3
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,0
	.dbline 364
	sbi 0x18,2
	.dbline 364
	sbi 0x18,1
	.dbline 364
	sbi 0x18,3
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,0
	.dbline 364
	cbi 0x18,2
	.dbline 364
	sbi 0x18,1
	.dbline 364
	sbi 0x18,3
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,2
	.dbline 364
	sbi 0x18,3
	.dbline 364
	sbi 0x18,1
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,2
	.dbline 364
	sbi 0x18,3
	.dbline 364
	sbi 0x18,1
	.dbline 364
	cbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,2
	.dbline 364
	sbi 0x18,3
	.dbline 364
	sbi 0x18,1
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,2
	.dbline 364
	cbi 0x18,3
	.dbline 364
	sbi 0x18,1
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,3
	.dbline 364
	sbi 0x18,2
	.dbline 364
	sbi 0x18,1
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
	.dbline 364
	cbi 0x18,3
	.dbline 364
	cbi 0x18,2
	.dbline 364
	sbi 0x18,1
	.dbline 364
	sbi 0x18,0
	.dbline 364
	ldi R16,100
	ldi R17,0
	xcall _delay_nms
	.dbline 364
L66:
	.dbline 364
	subi R20,1
	sbci R21,0
L68:
	.dbline 364
; 
	cpi R20,0
	cpc R20,R21
	breq X9
	xjmp L65
X9:
X5:
	.dbline -2
L44:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbend
	.dbfunc e USART_InitM1681 _USART_InitM1681 fV
;            tmp -> R10,R11
;           baud -> R10,R11
	.even
_USART_InitM1681::
	xcall push_gset3
	movw R10,R16
	.dbline -1
	.dbline 385
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
	.dbline 388
; 
; 
; 
	movw R2,R10
	clr R4
	clr R5
	ldi R20,0
	ldi R21,64
	ldi R22,56
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall div32s
	ldi R20,16
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	xcall div32s
	movw R2,R16
	movw R4,R18
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sub R2,R20
	sbc R3,R21
	sbc R4,R22
	sbc R5,R23
	movw R10,R2
	.dbline 390
; 
; 
	mov R2,R3
	clr R3
	out 0x20,R2
	.dbline 391
; 
	out 0x9,R10
	.dbline 395
; 
; 
; 
; 
	ldi R24,152
	out 0xa,R24
	.dbline 399
; 
; 
; 
; 
	ldi R24,134
	out 0x20,R24
	.dbline -2
L69:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r tmp 10 i
	.dbsym r baud 10 i
	.dbend
	.dbfunc e USART_InitM1682 _USART_InitM1682 fV
;            tmp -> R10,R11
;           baud -> R10,R11
	.even
_USART_InitM1682::
	xcall push_gset3
	movw R10,R16
	.dbline -1
	.dbline 403
; 
; 
; 
; 
	.dbline 406
; 
; 
; 
	movw R2,R10
	clr R4
	clr R5
	ldi R20,0
	ldi R21,64
	ldi R22,56
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall div32s
	ldi R20,16
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	xcall div32s
	movw R2,R16
	movw R4,R18
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sub R2,R20
	sbc R3,R21
	sbc R4,R22
	sbc R5,R23
	movw R10,R2
	.dbline 407
; 
	mov R2,R3
	clr R3
	out 0x20,R2
	.dbline 408
; 
	out 0x9,R10
	.dbline 412
; 
; 
; 
; 
	ldi R24,152
	out 0xa,R24
	.dbline 416
; 
; 
; 
; 
	ldi R24,142
	out 0x20,R24
	.dbline -2
L70:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r tmp 10 i
	.dbsym r baud 10 i
	.dbend
	.dbfunc e INT0_init _INT0_init fV
	.even
_INT0_init::
	.dbline -1
	.dbline 474
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
	.dbline 475
; 
	cli
	.dbline 476
; 
	clr R2
	out 0x35,R2
	.dbline 477
; 
	ldi R24,192
	out 0x3a,R24
	.dbline 478
; 
	ldi R24,64
	out 0x3b,R24
	.dbline 479
; 
	sei
	.dbline -2
L71:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e INT1_init _INT1_init fV
	.even
_INT1_init::
	.dbline -1
	.dbline 482
; 
; 
; 
	.dbline 483
; 
	cli
	.dbline 484
; 
	clr R2
	out 0x35,R2
	.dbline 485
; 
	ldi R24,192
	out 0x3a,R24
	.dbline 486
; 
	ldi R24,128
	out 0x3b,R24
	.dbline 487
; 
	sei
	.dbline -2
L72:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e INT01_init _INT01_init fV
	.even
_INT01_init::
	.dbline -1
	.dbline 490
; 
; 
; 
	.dbline 491
; 
	cli
	.dbline 492
; 
	clr R2
	out 0x35,R2
	.dbline 493
; 
	ldi R24,192
	out 0x3a,R24
	.dbline 494
; 
	out 0x3b,R24
	.dbline 495
; 
	sei
	.dbline -2
L73:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e USART_Transmit8 _USART_Transmit8 fV
;           data -> R16
	.even
_USART_Transmit8::
	.dbline -1
	.dbline 524
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
L75:
	.dbline 526
L76:
	.dbline 526
; 
; 
	sbis 0xb,5
	rjmp L75
	.dbline 528
; 
; 
	out 0xc,R16
	.dbline -2
L74:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e USART_Transmit9 _USART_Transmit9 fV
;           data -> R16,R17
	.even
_USART_Transmit9::
	.dbline -1
	.dbline 532
; 
; 
; 
; 
L79:
	.dbline 534
L80:
	.dbline 534
; 
; 
	sbis 0xb,5
	rjmp L79
	.dbline 536
; 
; 
	cbi 0xa,0
	.dbline 537
; 
	sbrc R17,0
	.dbline 538
; 
	sbi 0xa,0
L82:
	.dbline 540
; 
; 
	out 0xc,R16
	.dbline -2
L78:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 i
	.dbend
	.dbfunc e USART_Transmit_2 _USART_Transmit_2 fV
	.even
_USART_Transmit_2::
	.dbline -1
	.dbline 543
; 
; 
; 
L85:
	.dbline 544
L86:
	.dbline 544
; 
	sbis 0xb,5
	rjmp L85
	.dbline 545
; 
	ldi R24,72
	out 0xc,R24
L88:
	.dbline 546
L89:
	.dbline 546
; 
	sbis 0xb,5
	rjmp L88
	.dbline 547
; 
	ldi R24,101
	out 0xc,R24
L91:
	.dbline 548
L92:
	.dbline 548
; 
	sbis 0xb,5
	rjmp L91
	.dbline 549
; 
	ldi R24,108
	out 0xc,R24
L94:
	.dbline 550
L95:
	.dbline 550
; 
	sbis 0xb,5
	rjmp L94
	.dbline 551
; 
	ldi R24,108
	out 0xc,R24
L97:
	.dbline 552
L98:
	.dbline 552
; 
	sbis 0xb,5
	rjmp L97
	.dbline 553
; 
	ldi R24,111
	out 0xc,R24
	.dbline -2
L84:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e USART_Receive8 _USART_Receive8 fi
	.even
_USART_Receive8::
	.dbline -1
	.dbline 567
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
L101:
	.dbline 569
L102:
	.dbline 569
; 
; 
	sbis 0xb,7
	rjmp L101
	.dbline 570
; 
	in R16,0xc
	clr R17
	.dbline -2
L100:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e USART_Receive9 _USART_Receive9 fi
;           resl -> R16
;         status -> R20
;           resh -> R18
	.even
_USART_Receive9::
	xcall push_gset1
	.dbline -1
	.dbline 574
; 
; 
; 
; 
L105:
	.dbline 577
L106:
	.dbline 577
; 
; 
; 
	sbis 0xb,7
	rjmp L105
	.dbline 580
; 
; 
; 
	in R20,0xb
	.dbline 581
; 
	in R18,0xa
	.dbline 582
; 
	in R16,0xc
	.dbline 584
; 
; 
	mov R24,R20
	andi R24,16
	ori R24,12
	breq L108
	.dbline 584
	.dbline 584
	ldi R16,-1
	ldi R17,-1
	xjmp L104
L108:
	.dbline 586
; 
; 
	lsr R18
	andi R18,1
	.dbline 587
; 
	mov R17,R18
	.dbline -2
L104:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r resl 16 c
	.dbsym r status 20 c
	.dbsym r resh 18 c
	.dbend
	.dbfunc e USART_Flush _USART_Flush fV
;          dummy -> R16
	.even
_USART_Flush::
	.dbline -1
	.dbline 601
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
; 
	xjmp L112
L111:
	.dbline 603
	in R16,0xc
L112:
	.dbline 603
; 
; 
	sbic 0xb,7
	rjmp L111
	.dbline -2
L110:
	.dbline 0 ; func end
	ret
	.dbsym r dummy 16 c
	.dbend
	.area lit(rom, con, rel)
_buffer::
	.byte 0,1
	.byte 0,1
	.byte 0,1
	.byte 0,1
	.byte 0,1
	.byte 0,1
	.byte 0,1
	.byte 0,1
	.byte 0,1
	.byte 0,1
	.dbfile C:\DOCUME~1\Administrator\桌面\调试成功\M16-ISP串口通讯\m16.c
	.dbsym e buffer _buffer A[20:20]kc
	.area text(rom, con, rel)
	.dbfile C:\DOCUME~1\Administrator\桌面\调试成功\M16-ISP串口通讯\m16.c
	.dbfunc e main _main fV
;            tmp -> R20
;              n -> R22
	.even
_main::
	.dbline -1
	.dbline 9
	.dbline 10
	clr R22
	.dbline 10
	clr R20
	.dbline 11
	ldi R16,9600
	ldi R17,37
	xcall _USART_InitM1681
	.dbline 13
	xjmp L118
L115:
	.dbline 13
	.dbline 13
	ldi R24,<_buffer
	ldi R25,>_buffer
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	lpm R16,Z
	xcall _USART_Transmit8
	.dbline 13
L116:
	.dbline 13
	inc R22
L118:
	.dbline 13
	cpi R22,20
	brlo L115
	.dbline 13
	xjmp L120
L119:
	.dbline 17
	.dbline 18
	sbis 0xb,7
	rjmp L122
	.dbline 19
	.dbline 20
	xcall _USART_Receive8
	mov R20,R16
	.dbline 21
	xcall _USART_Transmit8
	.dbline 22
	ldi R16,13
	xcall _USART_Transmit8
	.dbline 23
	ldi R16,10
	xcall _USART_Transmit8
	.dbline 24
	cpi R20,97
	brne L124
	.dbline 25
	.dbline 26
	ldi R16,79
	xcall _USART_Transmit8
	.dbline 27
	ldi R16,75
	xcall _USART_Transmit8
	.dbline 28
	ldi R16,13
	xcall _USART_Transmit8
	.dbline 29
	ldi R16,10
	xcall _USART_Transmit8
	.dbline 30
L124:
	.dbline 31
	cpi R20,65
	brne L126
	.dbline 32
	.dbline 33
	xcall _USART_Transmit_2
	.dbline 34
	ldi R16,13
	xcall _USART_Transmit8
	.dbline 35
	ldi R16,10
	xcall _USART_Transmit8
	.dbline 36
L126:
	.dbline 39
L122:
	.dbline 40
L120:
	.dbline 16
	xjmp L119
X10:
	.dbline -2
L114:
	.dbline 0 ; func end
	ret
	.dbsym r tmp 20 c
	.dbsym r n 22 c
	.dbend

⌨️ 快捷键说明

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