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

📄 sio.asm

📁 日立单片机H8S2144例程.包括AD,DA等程序(用于光源)但对于H8S2144使用者来说有很大的帮助.
💻 ASM
📖 第 1 页 / 共 4 页
字号:

	MOV.L	ER6,ER7
	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_job
_rs_job:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_job) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(999)
??CLINE 1000
??VAR ??ARRAY(3) ??SINT ??SYMBOL(???rs_f) ??STATIC(???sta00000)
??CLINE 1002
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_sta00000,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	CMP.W	#H'0001,R0
	BNE	?00065:8
??BEGINBLOCK(1003)
??CLINE 1004
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_recv_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	CMP.W	#H'001E,R0
	BCC	?00066:8
??BEGINBLOCK(1005)
??CLINE 1006
	XOR.W	R0,R0
	PUSH.W	R0
	MOV.W	@(+8,ER6),R1
	PUSH.W	R1
	JSR	@_rs_rs_cmd
	ADDS.L	#H'00000004,ER7
??CLINE 1007
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_sta00000,ER1
	ADD.L	ER0,ER1
	XOR.W	R0,R0
	MOV.W	R0,@ER1
??ENDBLOCK(1008)
?00066:
??ENDBLOCK(1009)
	BRA	?00067:8
?00065:
??BEGINBLOCK(1011)
??CLINE 1012
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_recv_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	CMP.W	#H'0064,R0
	BLS	?00068:8
??BEGINBLOCK(1013)
??CLINE 1014
	MOV.W	#H'0001,R0
	PUSH.W	R0
	MOV.W	@(+8,ER6),R1
	PUSH.W	R1
	JSR	@_rs_rs_cmd
	ADDS.L	#H'00000004,ER7
??CLINE 1015
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_sta00000,ER1
	ADD.L	ER0,ER1
	MOV.W	#H'0001,R0
	MOV.W	R0,@ER1
??ENDBLOCK(1016)
?00068:
??ENDBLOCK(1017)
?00067:
??ENDBLOCK(1018)
??CLINE 1018
_rs_job_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_rs_cmd
_rs_rs_cmd:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_rs_cmd) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??SINT ??SYMBOL(???on) ??OFFSET(10)
??FUNCEND
??BEGINBLOCK(1031)
??CLINE 1032
	MOV.W	@(+8,ER6),R0
	OR.W	R0,R0
	BNE	?00069:8
??BEGINBLOCK(1033)
??CLINE 1034
	MOV.W	@(+10,ER6),R0
	OR.W	R0,R0
	BNE	?00070:8
??CLINE 1035
	MOV.B	@H'00FFFFBF:8,R0L
	EXTU.W	R0
	OR.W	#H'0040,R0
	MOV.L	#H'00FFFFB7,ER1
	MOV.B	R0L,@ER1
	BRA	?00071:8
?00070:
??CLINE 1037
	MOV.B	@H'00FFFFBF:8,R0L
	EXTU.W	R0
	AND.W	#H'FFBF,R0
	MOV.L	#H'00FFFFB7,ER1
	MOV.B	R0L,@ER1
?00071:
??ENDBLOCK(1038)
	BRA	?00072:8
?00069:
??CLINE 1039
	MOV.W	@(+8,ER6),R0
	CMP.W	#H'0001,R0
	BNE	?00073:8
??BEGINBLOCK(1040)
??CLINE 1041
	MOV.W	@(+10,ER6),R0
	OR.W	R0,R0
	BNE	?00074:8
??CLINE 1042
	MOV.B	@H'00FFFFBA:8,R0L
	EXTU.W	R0
	OR.W	#H'0004,R0
	MOV.L	#H'00FFFFBA,ER1
	MOV.B	R0L,@ER1
	BRA	?00075:8
?00074:
??CLINE 1044
	MOV.B	@H'00FFFFBA:8,R0L
	EXTU.W	R0
	AND.W	#H'FFFB,R0
	MOV.L	#H'00FFFFBA,ER1
	MOV.B	R0L,@ER1
?00075:
??ENDBLOCK(1045)
?00073:
?00072:
??ENDBLOCK(1046)
??CLINE 1046
_rs_rs_cmd_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_er_cmd
_rs_er_cmd:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_er_cmd) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??SINT ??SYMBOL(???on) ??OFFSET(10)
??FUNCEND
??BEGINBLOCK(1059)
??CLINE 1060
	BRA	_rs_er_cmd_end:8
??CLINE 1062
	MOV.W	@(+8,ER6),R0
	OR.W	R0,R0
	BNE	?00076:8
??BEGINBLOCK(1063)
??CLINE 1064
	MOV.W	@(+10,ER6),R0
	OR.W	R0,R0
	BNE	?00077:8
??BEGINBLOCK(1065)
??CLINE 1066
	MOV.B	@H'00FFFFBF:8,R0L
	OR.B	#H'04,R0L
	MOV.L	#H'00FFFFBF,ER1
	MOV.B	R0L,@ER1
??ENDBLOCK(1067)
	BRA	?00078:8
?00077:
??BEGINBLOCK(1069)
??CLINE 1070
	MOV.B	@H'00FFFFBF:8,R0L
	AND.B	#H'FB,R0L
	MOV.L	#H'00FFFFBF,ER1
	MOV.B	R0L,@ER1
??ENDBLOCK(1071)
?00078:
??ENDBLOCK(1072)
?00076:
??ENDBLOCK(1073)
??CLINE 1073
_rs_er_cmd_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_cs_sts
_rs_cs_sts:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_cs_sts) ??SINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(1085)
??CLINE 1086
	MOV.W	@(+8,ER6),R0
	OR.W	R0,R0
	BNE	?00079:8
??BEGINBLOCK(1087)
??CLINE 1088
	MOV.B	@H'00FFFFBF:8,R0L
	EXTU.W	R0
	AND.W	#H'0002,R0
	OR.W	R0,R0
	BEQ	?00080:8
??CLINE 1089
	XOR.W	R0,R0
	BRA	_rs_cs_sts_end:8
	BRA	?00081:8
?00080:
??CLINE 1091
	MOV.W	#H'0001,R0
	BRA	_rs_cs_sts_end:8
?00081:
??ENDBLOCK(1092)
	BRA	?00082:8
?00079:
??CLINE 1093
	MOV.W	@(+8,ER6),R0
	CMP.W	#H'0001,R0
	BNE	?00083:8
??BEGINBLOCK(1094)
??CLINE 1095
	MOV.B	@H'00FFFFB7:8,R0L
	EXTU.W	R0
	AND.W	#H'0010,R0
	OR.W	R0,R0
	BEQ	?00084:8
??CLINE 1096
	XOR.W	R0,R0
	BRA	_rs_cs_sts_end:8
	BRA	?00085:8
?00084:
??CLINE 1098
	MOV.W	#H'0001,R0
	BRA	_rs_cs_sts_end:8
?00085:
??ENDBLOCK(1099)
?00083:
?00082:
??CLINE 1100
	MOV.W	#H'0001,R0
??ENDBLOCK(1101)
??CLINE 1101
_rs_cs_sts_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_dr_sts
_rs_dr_sts:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_dr_sts) ??SINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(1113)
??CLINE 1114
	MOV.W	@(+8,ER6),R0
	OR.W	R0,R0
	BNE	?00086:8
??BEGINBLOCK(1115)
??CLINE 1116
	MOV.B	@H'00FFFFB7:8,R0L
	EXTU.W	R0
	AND.W	#H'0040,R0
	OR.W	R0,R0
	BEQ	?00087:8
??CLINE 1117
	XOR.W	R0,R0
	BRA	_rs_dr_sts_end:8
	BRA	?00088:8
?00087:
??CLINE 1119
	MOV.W	#H'0001,R0
	BRA	_rs_dr_sts_end:8
?00088:
??ENDBLOCK(1120)
?00086:
??CLINE 1121
	MOV.W	#H'0001,R0
??ENDBLOCK(1122)
??CLINE 1122
_rs_dr_sts_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_cd_sts
_rs_cd_sts:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_cd_sts) ??SINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(1133)
??CLINE 1134
	MOV.W	@(+8,ER6),R0
	OR.W	R0,R0
	BNE	?00089:8
??BEGINBLOCK(1135)
??CLINE 1136
	MOV.B	@H'00FFFFBF:8,R0L
	EXTU.W	R0
	AND.W	#H'0001,R0
	OR.W	R0,R0
	BEQ	?00090:8
??CLINE 1137
	XOR.W	R0,R0
	BRA	_rs_cd_sts_end:8
	BRA	?00091:8
?00090:
??CLINE 1139
	MOV.W	#H'0001,R0
	BRA	_rs_cd_sts_end:8
?00091:
??ENDBLOCK(1140)
?00089:
??CLINE 1141
	MOV.W	#H'0001,R0
??ENDBLOCK(1142)
??CLINE 1142
_rs_cd_sts_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_ci_sts
_rs_ci_sts:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_ci_sts) ??SINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(1154)
??CLINE 1155
	MOV.W	@(+8,ER6),R0
	OR.W	R0,R0
	BNE	?00092:8
??BEGINBLOCK(1156)
??CLINE 1157
	MOV.B	@H'00FFFFB7:8,R0L
	EXTU.W	R0
	AND.W	#H'0020,R0
	OR.W	R0,R0
	BEQ	?00093:8
??CLINE 1158
	XOR.W	R0,R0
	BRA	_rs_ci_sts_end:8
	BRA	?00094:8
?00093:
??CLINE 1160
	MOV.W	#H'0001,R0
	BRA	_rs_ci_sts_end:8
?00094:
??ENDBLOCK(1161)
?00092:
??CLINE 1162
	MOV.W	#H'0001,R0
??ENDBLOCK(1163)
??CLINE 1163
_rs_ci_sts_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_232ttl
_rs_232ttl:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_232ttl) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(1175)
??CLINE 1176
	MOV.W	@(+8,ER6),R0
	OR.W	R0,R0
	BNE	?00095:8
??CLINE 1177
	XOR.B	R0L,R0L
	MOV.L	#H'00FFFFB7,ER1
	MOV.B	R0L,@ER1
?00095:
??ENDBLOCK(1180)
??CLINE 1180
_rs_232ttl_end:

	POP.L	ER6
	RTS

??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
extern __l_mul
extern _strcpy
extern _strncpy
extern _strcat
extern _strncat
extern _strcmp
extern _strncmp
extern _strcoll
extern _strxfrm
extern _strchr
extern _strrchr
extern _strspn
extern _strcspn
extern _strpbrk
extern _strstr
extern _strlen
extern _strerror
extern _strtok
extern _memcpy
extern _memmove
extern _memcmp
extern _memchr
extern _memset
extern __iob
extern _remove
extern _rename
extern _tmpfile
extern _tmpnam
extern _fclose
extern _fflush
extern _fopen
extern _freopen
extern _setbuf
extern _setvbuf
extern _fprintf
extern _fscanf
extern _printf
extern _scanf
extern _sprintf
extern _sscanf
extern _vfprintf
extern _vprintf
extern _vsprintf
extern _fgetc
extern _fgets
extern _fputc
extern _fputs
extern _puts
extern _gets
extern _putchar
extern _ungetc
extern _fread
extern _fwrite
extern _fgetpos
extern _fseek
extern _fsetpos
extern _ftell
extern _clearerr
extern _feof
extern _ferror
extern _perror
extern _atof
extern _atoi
extern _atol
extern _strtod
extern _strtol
extern _strtoul
extern _rand
extern _srand
extern _calloc
extern _free
extern _malloc
extern _realloc
extern _abort
extern _atexit
extern _exit
extern _getenv
extern _system
extern _bsearch
extern _qsort
extern _abs
extern _div
extern _labs
extern _ldiv
extern _mblen
extern _mbtowc
extern _wctomb
extern _mbstowcs
extern _wcstombs
extern _acos
extern _asin
extern _atan
extern _atan2
extern _cos
extern _sin
extern _tan
extern _cosh
extern _sinh
extern _tanh
extern _exp
extern _frexp
extern _ldexp
extern _log
extern _log10
extern _modf
extern _pow
extern _sqrt
extern _ceil
extern _fabs
extern _floor
extern _fmod
extern _set_daif
extern _select_ch
extern _range_out
extern _onoff_out
extern _duty_out
extern _mon_select
extern _sisyagonyuu
extern _dot
extern _atoin
extern _atoln
extern _system_init
extern _port_init
extern _busc_init
extern _intc_init
extern _itimer_init
extern _start_timer
extern _check_timer
extern _stop_timer
extern _wdt_init
extern _wdt_clr
extern _IntTimer
extern _srom_puts
extern _srom_fill
extern _srom_gets
extern _rs_send_interrupt
extern _rs_send_enable
extern _Set_WatchDog
extern _B8
extern _B16
extern _intmask
extern _e2prom_wt_pro
extern _e2prom_rd_pro
extern _rs_init
extern _rs_send
extern _rs_recv_err
extern _rs_recv
extern _rs_recv_job
extern _rs_send_job
extern _rs_cmdcheck_job
extern _com_rcv_proc
extern _key_incheck
extern _rscomctl
extern _wait
extern _subAD
extern _const_start
extern _g_DrivePole
extern _g_Range
extern _g_SetIf
extern _g_Duty
extern _g_CwPulse
extern _g_CalIfaR1
extern _g_CalIfbR1
extern _g_CalIfbR2
extern _g_CalIfaR2
extern _g_CalIfbR3
extern _g_CalIfaR3
extern _const_end
extern _g_OnOff
extern _g_RsSend_CT
extern _rs_sending
extern _g_RsSend_Bf
extern _g_RsRecv_Bf
extern _g_RsRecv_CT
extern _rs_rceving
extern _rs_sd_flg
extern _rs_rx_buf
extern _rs_tx_buf
extern _t1tmf
extern _t1tmt
;
;
	segment	DATA_CONST ATR_CDATA
_str00000:	DC.B	030H,030H,030H,030H,031H,030H,030H,030H,0H
_str00001:	DC.B	031H,030H,030H,030H,030H,031H,030H,030H,0H
_str00002:	DC.B	030H,031H,031H,031H,030H,030H,030H,030H,0H
_str00003:	DC.B	030H,030H,030H,030H,030H,030H,030H,030H,0H
_str00004:	DC.B	031H,030H,030H,030H,030H,030H,030H,030H,0H
_str00005:	DC.B	030H,030H,031H,030H,030H,030H,030H,030H,0H

	segment	DATA ATR_DATA
??VAR ??ARRAY(3) ??POINTER ??UCHAR ??SYMBOL(???ssr) ??OFFSET(0)
_ssr:
	DC.L	$00FFFFDC
	DC.L	$00FFFF8C
	DC.L	$00FFFFA4
??VAR ??ARRAY(3) ??POINTER ??UCHAR ??SYMBOL(???scr) ??OFFSET(12)
_scr:
	DC.L	$00FFFFDA
	DC.L	$00FFFF8A
	DC.L	$00FFFFA2
??VAR ??ARRAY(3) ??POINTER ??UCHAR ??SYMBOL(???tdr) ??OFFSET(24)
_tdr:
	DC.L	$00FFFFDB
	DC.L	$00FFFF8B
	DC.L	$00FFFFA3
??VAR ??ARRAY(3) ??POINTER ??UCHAR ??SYMBOL(???rdr) ??OFFSET(36)
_rdr:
	DC.L	$00FFFFDD
	DC.L	$00FFFF8D
	DC.L	$00FFFFA5
??VAR ??ARRAY(3) ??SINT ??SYMBOL(???sta00000) ??OFFSET(48)
_sta00000:
	DC.W	$0001
	DC.W	$0001
	DC.W	$0001

	segment	BSS ATR_DATA
??VAR ??ARRAY(3) ??ARRAY(1024) ??UCHAR ??SYMBOL(???rs_send_buf) ??OFFSET(0)
_rs_send_buf:
	DCB.B	3072,0
??VAR ??ARRAY(3) ??ARRAY(512) ??UCHAR ??SYMBOL(???rs_recv_buf) ??OFFSET(3072)
_rs_recv_buf:
	DCB.B	1536,0
??VAR ??ARRAY(3) ??UINT ??SYMBOL(???rs_send_rp) ??OFFSET(4608)
_rs_send_rp:
	DCB.B	6,0
??VAR ??ARRAY(3) ??UINT ??SYMBOL(???rs_send_wp) ??OFFSET(4614)
_rs_send_wp:
	DCB.B	6,0
??VAR ??ARRAY(3) ??UINT ??SYMBOL(???rs_send_c) ??OFFSET(4620)
_rs_send_c:
	DCB.B	6,0
??VAR ??ARRAY(3) ??UINT ??SYMBOL(???rs_recv_rp) ??OFFSET(4626)
_rs_recv_rp:
	DCB.B	6,0
??VAR ??ARRAY(3) ??UINT ??SYMBOL(???rs_recv_wp) ??OFFSET(4632)
_rs_recv_wp:
	DCB.B	6,0
??VAR ??ARRAY(3) ??UINT ??SYMBOL(???rs_recv_c) ??OFFSET(4638)
_rs_recv_c:
	DCB.B	6,0
??VAR ??ARRAY(3) ??UINT ??SYMBOL(???orerr_c) ??OFFSET(4644)
_orerr_c:
	DCB.B	6,0
??VAR ??ARRAY(3) ??UINT ??SYMBOL(???frerr_c) ??OFFSET(4650)
_frerr_c:
	DCB.B	6,0
??VAR ??ARRAY(3) ??UINT ??SYMBOL(???peerr_c) ??OFFSET(4656)
_peerr_c:
	DCB.B	6,0

	end

⌨️ 快捷键说明

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