📄 h08sci_1.lst
字号:
80A2 20 F5 bra 0x8099
80A4 81 rts
_SCISendN:
i --> X+0
ch --> X+5
n --> X+4
80A5 A7 FE aiS #-2
80A7 95 tSX
(0024) }
(0025) }
(0026) /*SCISendN:串行发送N个字节-------------------------------------------------*
(0027) *功 能:发送数组中的N个字节数据 *
(0028) *参 数:待发送的数据字节数及其要存放的数组首地址 *
(0029) *返 回:无 *
(0030) *-------------------------------------------------------------------------*/
(0031) void SCISendN(unsigned char n,unsigned char ch[])
(0032) {
80A8 6F 01 clr 1,X
80AA 7F clr 0,X
80AB 20 1F bra 0x80CC
(0033) int i;
(0034) for(i=0;i<n;i++)
(0035) SCISend1(ch[i]);
80AD E6 01 ldA 1,X
80AF EB 06 add 6,X
80B1 B7 41 stA *__r1
80B3 F6 ldA 0,X
80B4 E9 05 adc 5,X
80B6 B7 40 stA *__r0
80B8 55 40 ldHX *__r0
80BA F6 ldA 0,X
80BB 87 pshA
80BC CD 8096 jsr _SCISend1
80BF A7 01 aiS #1
80C1 95 tSX
80C2 E6 01 ldA 1,X
80C4 AB 01 add #1
80C6 E7 01 stA 1,X
80C8 F6 ldA 0,X
80C9 A9 00 adc #0
80CB F7 stA 0,X
80CC 3F 40 clr *__r0
80CE E6 04 ldA 4,X
80D0 B7 41 stA *__r1
80D2 E6 01 ldA 1,X
80D4 B7 43 stA *__r3
80D6 F6 ldA 0,X
80D7 B7 42 stA *__r2
80D9 55 42 ldHX *__r2
80DB 75 40 cpHX *__r0
80DD 95 tSX
80DE 91 CD blt 0x80AD
80E0 A7 02 aiS #2
80E2 81 rts
_SCIRe1:
i --> X+0
k --> X+1
p --> X+5
80E3 A7 FD aiS #-3
80E5 95 tSX
(0036) }
(0037) /*SCIRe1:串行收一个字节数据------------------------------------------------*
(0038) *功 能:从串行口接收1个字节的数据 *
(0039) *参 数:标志指针p *
(0040) *返 回:接收到的数据(若接收失败,返回0xff) *
(0041) *说 明:参数*p带回接收标志=0 收到数据,=1 未收到数据 *
(0042) *-------------------------------------------------------------------------*/
(0043) unsigned char SCIRe1(unsigned char *p)
(0044) {
80E6 6F 02 clr 2,X
80E8 6F 01 clr 1,X
80EA 20 21 bra 0x810D
(0045) unsigned int k;
(0046) unsigned char i;
(0047) //ReStatusR第ReTestBit位为1表示可接收数据
(0048) for(k=0;k<0xfbbb;k++)
(0049) if ((ReSendStatusR & (1<<ReTestBit)) != 0)
80EC 0B 1612 BRclr 5,0x16,0x8101
(0050) {
80EF B6 18 ldA 0x18
80F1 F7 stA 0,X
(0051) i=ReSendDataR;
(0052) *p=0x00;
80F2 E6 06 ldA 6,X
80F4 B7 41 stA *__r1
80F6 E6 05 ldA 5,X
80F8 B7 40 stA *__r0
80FA 4F clrA
80FB 55 40 ldHX *__r0
80FD F7 stA 0,X
80FE 95 tSX
(0053) break;
80FF 20 1C bra 0x811D
8101 E6 02 ldA 2,X
8103 AB 01 add #1
8105 E7 02 stA 2,X
8107 E6 01 ldA 1,X
8109 A9 00 adc #0
810B E7 01 stA 1,X
810D E6 02 ldA 2,X
810F B7 41 stA *__r1
8111 E6 01 ldA 1,X
8113 B7 40 stA *__r0
8115 55 40 ldHX *__r0
8117 65 FBBB cpHX #0xFBBB
811A 95 tSX
811B 25 CF bcs 0x80EC
(0054) }
(0055) //接受失败
(0056) if(k>=0xfbbb)
811D E6 02 ldA 2,X
811F B7 41 stA *__r1
8121 E6 01 ldA 1,X
8123 B7 40 stA *__r0
8125 55 40 ldHX *__r0
8127 65 FBBB cpHX #0xFBBB
812A 95 tSX
812B 25 11 bcs 0x813E
(0057) {
812D A6 FF ldA #-1
812F F7 stA 0,X
(0058) i=0xff;
(0059) *p=0x01;
8130 E6 06 ldA 6,X
8132 B7 41 stA *__r1
8134 E6 05 ldA 5,X
8136 B7 40 stA *__r0
8138 A6 01 ldA #1
813A 55 40 ldHX *__r0
813C F7 stA 0,X
813D 95 tSX
(0060) }
813E F6 ldA 0,X
813F A7 03 aiS #3
8141 81 rts
_SCIReN:
fp --> X+0
m --> X+1
ch --> X+6
n --> X+5
8142 A7 FD aiS #-3
8144 95 tSX
(0061) return i;
(0062) }
(0063) /*SCIReN:HC08串行接收N个字节-----------------------------------------------*
(0064) *功 能:接收N个字节数据,并存放在ch数组中 *
(0065) *参 数:待接收的数据字节数及其存放的数组首地址 *
(0066) *返 回:接收标志=0 收到数据,=1 未收到数据 *
(0067) *-------------------------------------------------------------------------*/
(0068) unsigned char SCIReN(unsigned char n,unsigned char ch[])
(0069) {
8145 6F 02 clr 2,X
8147 6F 01 clr 1,X
8149 20 31 bra 0x817C
(0070) int m;
(0071) unsigned char fp;
(0072) m=0;
(0073) while (m<n)
(0074) {
814B 89 pshX
814C 8B pshH
814D CD 80E3 jsr _SCIRe1
8150 A7 02 aiS #2
8152 95 tSX
8153 B7 41 stA *__r1
8155 E6 02 ldA 2,X
8157 EB 07 add 7,X
8159 B7 43 stA *__r3
815B E6 01 ldA 1,X
815D E9 06 adc 6,X
815F B7 42 stA *__r2
8161 B6 41 ldA *__r1
8163 55 42 ldHX *__r2
8165 F7 stA 0,X
8166 95 tSX
(0075) ch[m]=SCIRe1(&fp);
(0076) if (fp==1) return 1;
8167 F6 ldA 0,X
8168 A1 01 cmp #1
816A 26 04 bne 0x8170
816C A6 01 ldA #1
816E 20 22 bra 0x8192
(0077) m++;
8170 E6 02 ldA 2,X
8172 AB 01 add #1
8174 E7 02 stA 2,X
8176 E6 01 ldA 1,X
8178 A9 00 adc #0
817A E7 01 stA 1,X
(0078) }
817C 3F 40 clr *__r0
817E E6 05 ldA 5,X
8180 B7 41 stA *__r1
8182 E6 02 ldA 2,X
8184 B7 43 stA *__r3
8186 E6 01 ldA 1,X
8188 B7 42 stA *__r2
818A 55 42 ldHX *__r2
818C 75 40 cpHX *__r0
818E 95 tSX
818F 91 BA blt 0x814B
(0079) return 0;
FILE: <library>
8191 4F clrA
8192 A7 03 aiS #3
8194 81 rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -