MSP430单片机CPU卡模板程序实现(三)
189 浏览量
更新于2024-09-01
收藏 39KB PDF 举报
"本文是关于基于MSP430单片机的CPU卡模板程序的第三部分,继续探讨与单片机编程相关的技术。主要内容包括发送命令头的5字节过程以及发送一个字节的详细步骤,涉及错误处理机制。"
在基于MSP430单片机的CPU卡模板程序中,发送命令头5字节是通信过程的关键步骤。在`SEND_COMMAND`子程序中,首先通过`MOV.b@BX+,TRDATA`从内存地址BX指向的位置读取一个字节并将其放入传输数据寄存器TRDATA,然后调用`SENDCHAR`子程序来发送这个字节。这个过程会持续进行,直到所有的命令头字节都被发送出去。如果发送过程中出现错误,程序会通过检查累加器C的标志位SR来进行错误处理,如果错误发生,则通过`DEC.B RESETCNT`递减重试计数器,如果计数器未达到零则继续发送。当所有字节都成功发送或达到最大重试次数后,程序会清除标志位并返回。
`SENDCHAR`子程序是负责实际数据传输的部分。首先,它设置数据口为输出模式以便发送数据,并初始化错误计数器`ERRCNT`为3次,以允许3次错误重试。在发送每个字节之前,会发送起始位,然后调用`SENDONEbYTE`来发送数据。发送完成后,数据口会转为接收模式,等待接收应答。如果在规定时间内数据线保持低电平,表示接收错误,进入`SCHAR_ERR`分支进行处理。在该分支中,程序会延时并再次尝试发送,直到达到最大错误次数。如果发送成功,程序会跳转到`SCHAR_OK`,完成一字节的发送并进行必要的延迟,然后清零标志位返回。
整个程序通过精细的时间控制和错误检测机制确保了通信的可靠性和稳定性。`DELAY1ETU`和`DELAY05ETU`是实现特定时序延迟的子程序,它们在发送和接收之间起到了关键作用,确保了数据传输的时序正确。这种基于汇编语言的编程方式虽然复杂,但能充分利用MSP430单片机的低功耗和高性能特性,实现高效且精确的CPU卡操作。
1257 浏览量
644 浏览量
895 浏览量
2020-08-13 上传
2020-08-13 上传
2020-08-13 上传
2020-08-13 上传
339 浏览量
131 浏览量