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

📄 sci.s

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 S
字号:
	.module SCI.c
	.area text
	.dbfile SCI.c
	.dbfunc e SCISend1 _SCISend1 fV
;              o -> 2,X
_SCISend1::
	.dbline -1
	tsx
	.dbline 11
; /*-----------------------------------------------------*
; *文件描述:本文件包含了串行通信的4子程序,分别为:        *  
; *(1)SCISend1:串行发送1字节                             *
; *(2)SCISendN:串行发送n字节                             *
; *(3)SCIRe1:串行接收1字节                               *
; *(4)SCIReN:串行接收n字节                               *
; *-------------《嵌入式应用技术基础教程》--------------*/
; #include "SCI.h"
; 
; void SCISend1(unsigned char o)
; {//判断ReStatusR的第SendTestBit位是否为1,是1可以发送
	bra L3
L2:
	.dbline 13
; 	while(1)
; 	{
	.dbline 14
; 		if ((ReSendStatusR & (1 << SendTestBit)) != 0)
	brclr #7,0x16,L5
	.dbline 15
; 		{ 
	.dbline 16
; 			ReSendDataR = o;
	lda 2,X
	sta 0x18
	.dbline 17
; 			break;
	bra L4
L5:
	.dbline 19
L3:
	.dbline 12
	bra L2
L4:
	.dbline -2
L1:
	.dbline 0 ; func end
	rts
	.dbsym l o 2 c
	.dbend
	.dbfunc e SCISendN _SCISendN fV
;              i -> 0,X
;             ch -> 5,X
;              n -> 4,X
_SCISendN::
	.dbline -1
	ais #-2
	tsx
	.dbline 23
; 		}
; 	}
; }
; 
; void SCISendN(unsigned char n,unsigned char ch[])
; {
	.dbline 25
; 	int i;
; 	for(i = 0; i < n; i++)          
	clr 1,X
	clr ,X
	bra L11
L8:
	.dbline 26
	lda 1,X
	add 6,X
	sta *__r1
	lda ,X
	adc 5,X
	sta *__r0
	ldhx *__r0
	lda ,x
	psha
	jsr _SCISend1
	ais #1
	tsx
L9:
	.dbline 25
	lda 1,X
	add #1
	sta 1,X
	lda ,X
	adc #0
	sta ,X
L11:
	.dbline 25
	clr *__r0
	lda 4,X
	sta *__r1
	lda 1,X
	sta *__r3
	lda ,X
	sta *__r2
	ldhx *__r2
	cphx *__r0
	tsx
	blt L8
	.dbline -2
L7:
	ais #2
	.dbline 0 ; func end
	rts
	.dbsym l i 0 I
	.dbsym l ch 5 pc
	.dbsym l n 4 c
	.dbend
	.dbfunc e SCIRe1 _SCIRe1 fc
;              i -> 0,X
;              k -> 1,X
;              p -> 5,X
_SCIRe1::
	.dbline -1
	ais #-3
	tsx
	.dbline 30
; 		SCISend1(ch[i]);
; }
; 
; unsigned char SCIRe1(unsigned char *p)
; { 
	.dbline 34
; 	unsigned int k;
; 	unsigned char i;
; 	//ReStatusR第ReTestBit位为1表示可接收数据
; 	for(k = 0; k< 0xfbbb; k++)
	clr 2,X
	clr 1,X
	bra L16
L13:
	.dbline 35
; 	{
	.dbline 36
; 		if ((ReSendStatusR & (1 << ReTestBit)) != 0)
	brclr #5,0x16,L17
	.dbline 37
; 		{
	.dbline 38
; 			i = ReSendDataR;
	lda 0x18
	sta ,X
	.dbline 39
; 			*p = 0x00; 
	lda 6,X
	sta *__r1
	lda 5,X
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	.dbline 40
; 			break;
	bra L15
L17:
	.dbline 42
L14:
	.dbline 34
	lda 2,X
	add #1
	sta 2,X
	lda 1,X
	adc #0
	sta 1,X
L16:
	.dbline 34
	lda 2,X
	sta *__r1
	lda 1,X
	sta *__r0
	ldhx *__r0
	cphx #-1093
	tsx
	blo L13
L15:
	.dbline 43
; 		} 
; 	}
; 	if(k >= 0xfbbb) 
	lda 2,X
	sta *__r1
	lda 1,X
	sta *__r0
	ldhx *__r0
	cphx #-1093
	tsx
	blo L19
	.dbline 44
; 	{
	.dbline 45
; 		i = 0xff;
	lda #-1
	sta ,X
	.dbline 46
; 		*p = 0x01;
	lda 6,X
	sta *__r1
	lda 5,X
	sta *__r0
	lda #1
	ldhx *__r0
	sta ,x
	tsx
	.dbline 47
; 	}  	
L19:
	.dbline 48
; 	return i;             //返回接收到的数据
	lda ,X
	.dbline -2
L12:
	ais #3
	.dbline 0 ; func end
	rts
	.dbsym l i 0 c
	.dbsym l k 1 i
	.dbsym l p 5 pc
	.dbend
	.dbfunc e SCIReN _SCIReN fc
;             fp -> 0,X
;              m -> 1,X
;             ch -> 6,X
;              n -> 5,X
_SCIReN::
	.dbline -1
	ais #-3
	tsx
	.dbline 52
; }
; 
; unsigned char SCIReN(unsigned char n, unsigned char ch[])
; {
	.dbline 55
; 	int m;                  
; 	unsigned char fp;
; 	m = 0;
	clr 2,X
	clr 1,X
	bra L23
L22:
	.dbline 57
; 	while (m < n)
; 	{ 	          
	.dbline 58
; 		ch[m]=SCIRe1(&fp); 
	pshx
	pshh
	jsr _SCIRe1
	ais #2
	tsx
	sta *__r1
	lda 2,X
	add 7,X
	sta *__r3
	lda 1,X
	adc 6,X
	sta *__r2
	lda *__r1
	ldhx *__r2
	sta ,x
	tsx
	.dbline 59
; 		if (fp == 1) return 1;
	lda ,X
	cmp #1
	bne L25
	.dbline 59
	lda #1
	bra L21
L25:
	.dbline 60
	lda 2,X
	add #1
	sta 2,X
	lda 1,X
	adc #0
	sta 1,X
	.dbline 61
L23:
	.dbline 56
	clr *__r0
	lda 5,X
	sta *__r1
	lda 2,X
	sta *__r3
	lda 1,X
	sta *__r2
	ldhx *__r2
	cphx *__r0
	tsx
	blt L22
	.dbline 62
; 		m ++;
; 	}
; 	return 0;	 
	clra
	.dbline -2
L21:
	ais #3
	.dbline 0 ; func end
	rts
	.dbsym l fp 0 c
	.dbsym l m 1 I
	.dbsym l ch 6 pc
	.dbsym l n 5 c
	.dbend

⌨️ 快捷键说明

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