网站大量收购独家精品文档,联系QQ:2885784924

实验一串口通信.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一串口通信

实验一 基本串口通信程序设计 实验学时数:2 实验类型:验证型 实验类别:专业实验 每组人数:2人 实验要求:掌握串口通信基本知识,特别是串口通信控制器各寄存器作用;学习串口通信程序调试以及串口通信程序设计方法和技术; 实验内容: 在COMDEBUG中针对串口通信各寄存器进行设置,掌握各寄存器在串口通信中的作用及各参数的含义; 组内通过COMDEBUG实现通信; 学习利用COMDEBUG进行串口通信程序调试的一般方法。 选择采用DOS或者BIOS功能调用实现组内两台计算机的串口通信(组内一人编写发送方程序,另一人编写接收方程序)。 主要仪器设备及其配套数:PC机、串口通信连接线 实验步骤: (1). COMDEBUG的使用,如下图: 该软件可支持1-64个串行端口;可设置非标准或更高的波特率,不限于列表中的特定波特率;可设置串口的2个输出线路信号DTR/RTS的状态,以及TxD信号的BREAK状态;可实时显示串口的4个输入线路信号CTS/DSR/RING/DCD的状态;可分别清空发送区或接收区的数据;可对发送的数据和接收的数据单独计数。 A.发送数据: 1.发送数据时,可采用手动发送和自动发送,自动发送还可以指定发送的周期。 2.发送区的数据可以按字符方式或16进制方式解释、发送。 3.按字符方式发送时,发送区可输入中英文混合字符。 4.按16进制方式发送时,发送区的每个数据间只需用空格或回车隔开,每个数据只有最低2个16进制字符有效。 5.发送区的数据可以从文件中调入,读入到发送区时,可按字符方式或16进制方式显示。 B.接收数据: 1.接收区的数据可以按字符方式或16进制方式显示。 2.按字符方式接收时,在低速波特率下,可正确接收和显示中英文混合字符。 3.可手动或自动保存接收区内容到指定文件中。自动保存的接收内容长度没有限制。 4.可采用仿超级终端方式操作和显示。 (2)采用C语言实现组内两台计算机的串口通信 A.发送数据: #include conio.h #includestdio.h #include bios.h #includedos.h void main() { char a; int i,s; outportb(0x3fb,0x80); outportb(0x3f8,0x0c); outportb(0x3f9,0x30); outportb(0x3fb,0x03); outportb(0x3fc,0x03); do{ if(a=bioskey(1)){ a=bioskey(0)0x0ff; if(a==27) exit(0); else{ s=0; do{ outportb(0x3f8,a); putchar(a); printf(\n); for(i=0;i6;i++){ delay(10); s=inportb(0x3fd); if((s0x01)){ break; } } if(s0x01){ s=inportb(0x3f8); if(s==1){ printf(next!\n); } else{ if(s!=1) printf(error!\n); } } else{ if(!(s0x01)){ s=0; printf(out time!\n); } } } while(s!=1); } } } while(s); } B.接收数据: #include conio.h #includestdio.h #include bios.h #includedos.h void main() { char a; int s=1; outportb(0x3fb,0x80); outportb(0x3f8,0x0c); outportb(0x3f9,0x30); outportb(0x3fb,0x03); outportb(0x3fc,0x03); while(1){ if(bioskey(1)){ a=bioskey(0)0x0ff; if(a==27) exit(0); } else { delay(12); a=inportb(0x3fd); if(a0x01){ outportb(0x3f8,s); a=inportb(0x3f8); putchar(a); } } } } (3)利用Win32串口编程在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活。其二是调用Windows的API函数,这种方法可以清楚地掌握串口通信的机制,

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档