- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串口协议及相关杂谈
通信协议: 第1字节,MSB为1,为第1字节标志,第2字节,MSB为0,为非第一字节标志,其余类推……,最后一个字节为前几个字节后7位的异或校验和。 测试方法:可以将串口调试助手的发送框写上 95 10 20 25,并选上16进制发送,接收框选上16进制显示,如果每发送一次就接收到95 10 20 25,说明测试成功。//这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的#include reg51.h#include string.h
#define INBUF_LEN 4 //数据长度
unsigned char inbuf1[INBUF_LEN];unsigned char checksum,count3;bit read_flag= 0 ;
void init_serialcomm( void ){SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvrTMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reloadPCON |= 0x80 ; //SMOD=1;TH1 = 0xF4 ; //Baud:4800 fosc=11.0592MHzIE |= 0x90 ; //Enable Serial InterruptTR1 = 1 ; // timer 1 run// TI=1;}
//向串口发送一个字符void send_char_com( unsigned char ch){SBUF=ch;while (TI== 0 );TI= 0 ;}
//向串口发送一个字符串,strlen为该字符串长度void send_string_com( unsigned char *str, unsigned int strlen){unsigned int k= 0 ;do{ send_char_com(*(str + k)); k++;}while (k strlen);}
//串口接收中断函数void serial () interrupt 4 using 3{if (RI){ unsigned char ch; RI = 0 ; ch=SBUF; if (ch 127 ) { count3= 0 ; inbuf1[count3]=ch; checksum= ch- 128 ; } else { count3++; inbuf1[count3]=ch; checksum ^= ch; if ( (count3==(INBUF_LEN- 1 )) (!checksum) ) { read_flag= 1 ; //如果串口接收的数据达到INBUF_LEN个,且校验没错, //就置位取数标志 } }}}
main(){init_serialcomm(); //初始化串口while ( 1 ){ if (read_flag) //如果取数标志已置位,就将读到的数从串口发出 { read_flag= 0 ; //取数标志清0 send_string_com(inbuf1,INBUF_LEN); }}
}
串行通信虽然有其自身优点:如适合长距离通信,有一定的纠错能力等,但并行通信在短距离(数米范围内)传输过程中的优点是显而易见的。首先串行通信时要设置串口数据,如:串口号(Com1、Com2或者其他串口)、波特率、数据位数、停止位、校验位等等。而且单片机与PC机的串口数据必须一一对等,否则不能传输。而并行传输时,无需上述过程。其次,PC机的串口电平值为+12V~-12V,单片机是TTL电平(0~+5V),两者必须要经过电平转换芯片进行电平间的转换。而进行并行传输时,由于双方都是TTL电平,所以PC的并口可以与单片机或其他芯片直接相连;另外,串行传输速度慢,每次只能传送一位,而并行每次可以传送8位,速度上的差异显而易见。
而对于单片机,串口(UART)是最常用的端口,尤其对于存在两个或多个串口的单片机来说,充分利用串口进行通信是非常重要的。
输出输入接口的扩展
单片机串口实现并行通信,其原理就是将PC机传过来的并行数据转换成串行数据,送入单片机的串口再由其进行相应处理。实质上就是一个数据串-并、并-串转换的过程。
PC的并口为一个标准的25针插座,包含一个八位二进制数据端口(地址为378H),即第2脚到第9脚;一个输入控制端口(地址为379H),即第15脚、13脚
您可能关注的文档
- PVA水凝胶的制备及研究综述.doc
- PLC的通信功能及应用试题.doc
- ps波波滤镜的安装.doc
- QW47隐框玻璃幕墙结构胶注胶工艺.doc
- RAID常见的种类规范.doc
- RAID的讲解及应用操作.doc
- Q10讲稿.doc
- RDPAC考试模拟题4.doc
- RNA提取常见问题文档.docx
- RNA(E6和E7)筛查和DNA(E6和E7)筛查对妇女感染人乳头瘤病毒灵敏度的比较.doc
- 2025年湖南司法警官职业学院单招职业技能测试题库及答案1套.docx
- 2025年湖南司法警官职业学院单招职业倾向性考试题库附答案.docx
- 2025年湖南司法警官职业学院单招职业倾向性测试题库附答案.docx
- 2025年湖南吉利汽车职业技术学院单招综合素质考试题库及答案1套.docx
- 2025年湖南司法警官职业学院单招职业倾向性测试题库推荐.docx
- 2025年黑龙江省哈尔滨市双城市高三二模数学试卷及答案.docx
- 2025年湖南司法警官职业学院单招职业倾向性测试题库必考题.docx
- 2025年湖南司法警官职业学院单招职业适应性考试题库附答案.docx
- 2025年湖南吉利汽车职业技术学院单招职业技能考试题库必考题.docx
- 2025年湖南司法警官职业学院单招职业倾向性测试题库最新.docx
文档评论(0)