你这串口接收子程序,只要接收到一个字节的数据就一直在中断子程序中,然后等待接收其它数据了,while(!RI);这就是在等待接收其它数据了,接收完了以后又在中断子程序连续发送了。假设收到的数据存在单片机temp里面。建议你用串口中断的方式来接收多个字节的数据,;串行口的中断入口地址AJMPSERVE;转向中断服务程序ORG,
这里一次只接收,以你的程序为例。查询方法更适合于半双工机制,编写的思路简单,程序结构简单,在全双工通信中易出问题。串口的收发可以用查询和中断两个办法来实现。//串口方式为,下面是我之前写过的程序/串口中断函数ReData[]:里是一个字节类型的数组,这么写程序是有很大弊病的。;主程序MAIN:MOVSP,
你的程序把两种方法混搭使用,容易出错。块就行啦,单片机端程序includedefineucharunsignedcharsbitsendkey=P,AJMPMAIN;上电,转向主程序ORG,我的程序的一部分,供参考//主流程voidmain(void){//系统初始化SCON=,
unsignedchartempy;voidinit(void)//串口初始化{TMOD=,口输入数据这块,是不是应该写成st[i]=P,字节数据./voidUsart_isr()interrupt,using。SM,TB,PCON=,//SMOD=,//设定定时器,工作模式为方式。
chartemp[={
感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
暂无评论内容