C语言如何实现串行通信

C语言如何实现串行通信串口通信维普资讯的网络板!一设备驱动器能了解这!剐曩是网当全部这屠的程序一起。作就形成丁局域I‘网操作系统,它能支持局网服务和蛊用程序——遗’否采纳了直接存贮器访问和期望的Io口了中断/_乏典型的网络硬件是由微机局部网络卡和联结计算机的电缆组成。当夸最常用的二种硬件联结是I!』太网和标志环嘲(knRig,虽然证有许多Toen)蔗局域圈成为理代计算机里程碑的一个必要的组成部分。[孙月和译 ̄,YTE,Jn,18,北方校]Bue99系统使用ARCnte和Apl的LcllpeoatkaC言如何实现串行通信语大连海运学院电子系赵伟引曹我们在编制计算机通行软件中发觉,目前流亍亍的太多数C语言版本(c8MsMS如6c30C不再说明白。裹11H号软件中断4输八参数功能输出参数40)都没有供应串行通信的功能个别版本.等(如MS.)虽然有涉及串行通信的函数,能C50功也远不如汇编语言和BAISC语言强。为此.我们编写了几个子程序,它们分别实现对串行口的初始化、毂据传递、数据接收及状态检襁6等功能,子程序的调用方式和C语言中—般函数的调用相同.因此使用起来特别便利。子程序的编写有二种方式:c语言方式和汇编语言方式,可以依据详细状况选择一种自己认为台适的方式。本文源程序全部用c6匿Mirsf宏汇编编写,于其他版本的CBcoo ̄对语言.个别语句要稍加修改之后才能使用。子程序编写好后,曾经在IBM~c机上使用过较长时间,P效果良好。一AH=0DX=串行端口号初始化串AL=初始化参数行口A信状H曩线AL:MODEMI状态A端号行费AfH通绞态H;发LA信状口送IA=送J的符L发中字l字符I一羯靳姐默A嚣粤行态试LH。【测端串棱口AH我们编写的子程序基本上是用lH号软件中断4宴现的,它们妁功能如下:iicm(o ̄ofgl设置并初始化由pr指ntopr,cni)ot、软件中断介绍由于子程序的编写大量使用了软件中断,在此首先对轼件中断做简洁的介绍。IM—c机写在ROM中的程序,一部分是BPBAC解释程序.另部分就是基本输人输出系统SIBIOS。定的串行口,参数cni说明白波特率、数据ofg位、停止位和奇偶位。tnhr(othrcapr,c):将字待c送往由pn指定的hoB0s主要功能是驱动系统中所配置的常1的用外设.使程序员不必过多地关怀设备的物理特性.从而能便利地掌握各种输几输出操作。BOSI允许程序员脚软件中断的方式调用其中的各个子程串厅口发送。来的字符、rvhr(ot:接嵌一个Iotccapr) ̄pr指定的串行口送序,这就太大简化了程序员的工作在BO中,IS与串行通信有关的是lH号软件中断,它的输八/4输出参数阻及实现的功能如表I示表中的韧始所化参数、通信线状态、MODEM状态等各个参数的s ̄o(ot:返回由pI指定时串行口状态。t.mpr)ac。t其*pr=0 ̄CQMI1)t代表COM=2ot代,xr=1.=、缩写子程序1)C语言实现方式基本含X.在许多参考资料上都可以查到,这里就C8允许用户调用BO6IS中全部的软件中断和系75串口通信维普资讯统功能调用c8与B160s的接口主要是通过系统库函数snvcrfrsyt(e。se.rc)来实现的.该函数的功能是调用BI的VC软件中断,八口参数为OSe号src{nx.bctutitaxx.ds.d,de:x.ilss}res1缸e,口参热为re,数的返回值是8s或88g出f5函o6o8标志寄存器的内容.为了实现串行通信.我们只要利用这一函数反复调用1P号软件中断,就可以完4I成对串行口的各种操作表2是子程序的源程序就rg.x=(t)0tes3Blrgdcs,x=potr ̄Sysnt(x1t04.rgsrg)e.esIrtr(esaeunrg.x)清单.文件名是SO-IC.它可以放在主程序中和主程序一起编译,也可以单独编译,形成so.BJIO后再与主程序进行连接。2{语言实现方式)亡编C8调用{8[编子程序与调用其它外部函数的方法相同.但对汇编语言的书写格式有严格的要求,小模式为例,要求的格式如下:ildo1hncuemde.襄2¥0.程序清单1c潭{tonicm(otcnf)pr,ofg{src{nxx.Ctut{ta,bX,d,s.d,sc;xtid,0'rs,egileolfchncudproa.rgaes.x=(《)ol08Inff;crg.x=prjcsdotpbiulc文件名文件名poerrcnapusbphEObqVp,sppobppS,i ̄m(x1o4.,ges,t)e,}tncr(otcrhapr,h)文饽名ednpildpiouhncueelge.endfsrc{nxx,C,d,iseI)tut{ta,bXx,d,d,regst关于所要求的汇编子程序的接式.有几个问题需要说明rg.x=(《)ccsa18lhItg-x=prcsdo%Sylsnt(X4,r¥s0le。()mo.1如1h.poou.eigeb三个不rlgeh,plu.是o可缺少的...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?