;********************************************************************
1.;接收一个字符,C=0接收正确,C=1接收出错,容错次数为3
;********************************************************************
recchar://接收字符
MOV.B#3,ERRCNT
RECCHAR1:
clr.bicflag1
MOV.B#8,CNTREG
CLR.BTRDATA
MOV.W#40000,DELAYCNT
RECC_WAIT:
BIT.B#ICSAM//判断对卡还是对ESAM操作
JNZRECC_IC
bit.b#samio,&pinb//对SAM操作
jzRECC_WAITSAM05
JMPRECC_DEL
RECC_WAITSAM05:
call#delay05etu
bit.b#samio,&pinb
JZRECC_BEGIN
JMPRECC_DEL
RECC_IC:
BIT.B#ICIO,&PINA//判起始位,不超过40000个CLK
JZRECC_WAITIC05
JMPRECC_DEL
RECC_WAITIC05:
CALL#DELAY05ETU
BIT.B#ICIO,&PINA
JZRECC_BEGIN
RECC_DEL:
DEC.WDELAYCNT
JNZRECC_WAIT
BIS.B#C,SR//超时,置C=1
RET
RECC_BEGIN:
call#reconebyte//
BIT.B#ICXOR
JNZRECC_CMP1
BIT.B#MXOR
JZRECC_OK
JMPRECC_CMPERR
RECC_CMP1:
BIT.B#MXOR//MXOR=1?
JZRECC_CMPERR//=0,ERR
RECC_OK:
call#delay1etu
clrc
ret
RECC_CMPERR:
BIT.B#ICSAM
JNZRECC_IC2
BIS.B#SAMIO,&PDIRB
BIC.B#SAMIO,&POUTB
CALL#DELAY1ETU
BIS.B#SAMIO,&POUTB
JMPRECC_AGAIN
RECC_IC2:
BIS.B#ICIO,&PDIRA
BIC.B#ICIO,&POUTA
CALL#DELAY1ETU
BIS.B#ICIO,&POUTA
RECC_AGAIN:
CALL#DELAY1ETU
DEC.BERRCNT
CMP.B#0,ERRCNT
JNZRECCHAR1
SETC
RET
;********************************************************************
2.;开始接收数据位,并计算校验位
;********************************************************************
reconebyte:
BIT.B#ICSAM
JNZROB_IC
rob_next:
call#delay1etu
bit.b#samio,&pinb
jzrob_1
xor.b#80h,icflag1
setc
jmprob_2
rob_1:
clrc
rob_2:
rrc.btrdata
sub.b#1,cntreg
jnzrob_next
call#delay1etu
bit.b#samio,&pinb
jzrob_out
bis.b#icxor
JMPROB_OUT
ROB_IC:
call#delay1etu
bit.b#ICio,&pinA
jzrob_IC1
xor.b#80h,icflag1
setc
jmprob_IC2
rob_IC1:
clrc
rob_IC2:
rrc.btrdata
sub.b#1,cntreg
jnzROB_IC
call#delay1etu
bit.b#ICio,&pinA
jzrob_out
bis.b#icxor
rob_out:
call#delay05etu
ret
设计资源 培训 开发板 精华推荐
- L7824C 高电容负载输入短路保护的典型应用
- ADA4891-1AR-EBZ,ADA4891-1 双通道高速运算放大器评估板,采用 8 引脚 SOIC 封装
- 典型 5V 至 3.3V、10A LTC1430 应用
- LT1086IT 1.2V 至 15V 可调稳压器的典型应用
- LT8630IFE -15V、300mA 降压转换器的典型应用电路
- 具有 SPI 接口的 BMA456 数字三轴加速度传感器的典型应用
- 具有 PowerPath 的 LTC4162EUFD-FFSM 1 节 USB 电力传输充电器的典型应用
- 用于 NCP3063 1.5A 升压开关稳压器的带有外部 NMOS 晶体管的典型升压应用原理图
- ADR364B 4.096 Vout 低功耗、低噪声电压基准的典型应用,具有灌/拉能力
- LT2940IDD 负载监视器警报的典型应用电路 60W 以上
- 智能家电解决方案 互联品质生活
- 有奖问答|ADI应用之旅——电池管理及智慧储能篇
- 你是课代表——TI培训最受欢迎课程由你做主 发帖荐课即可参与幸运抽奖!
- 下载Intel《赢得大资料爆炸——大资料、智慧系统与物联网的时代》白皮书
- 劳动节归来,EEWORLD社区4月明星人物出台喽!
- 我爱 TI Webench 之学课程传设计,赢礼100% !
- 有奖直播:8月21上午10:00 泰克助您应对现在及未来的测试挑战!
- 艾睿电子线上研讨会:英特尔FPGA深度学习加速技术 7月30日上午10:00-11:30 期待您的莅临!
- 安全在任何时候都是第一要素,你的嵌入式设计也是!诚邀参加英飞凌 OPTIGA™ Trust M 安全防御大揭秘!