C语言如何实现串行通信
串口通信
维普资讯
的网络板!一
设备驱动器能了解这!剐曩是网
当所有这屠的程序一起。作就形成丁局域 I‘网操作系统,它能支持局网服务和蛊用程序——遗’
否采用了直接存贮器访问和期望的Io口了中断/ _乏典型的网络硬件是由微机局部网络卡和联结计算机的电缆组成。当夸最常用的二种硬件联结是 I !』太网和标志环嘲 ( k n Ri g,虽然证有很多 To e n )
蔗局域圈成为理代计算机里程碑的一个必要的组成部分。
[孙月和译 ̄,YTE,J n,1 8,北方校] B u e 99
系统使用ARC n t e和Ap l的L c l l pe o at k a
C言如何实现串行通信语大连海运学院电子系赵伟
引曹我们在编制计算机通行软件中发现,目前流亍 亍的太多数C语言版本 ( c8 Ms · MS 如 6 c 30 C
不再说明了。 裹1 1 H号软件中断 4输八参数功能输出参数
4 0 )都没有提供串行通信的功能个别版本 .等 (如MS . )虽然有涉及串行通信的函数,能 C 50功也远不如汇编语言和BA I S C语言强。为此 .我们编写了几个子程序,它们分别实现对串行口的初始化、毂据传递、数据接收及状态检襁6等功能,子程序的调用方式和 C语言中—般函数的调用相同 . 因此使用起来非常方便。子程序的编写有二种方式:c语言方式和汇编语言方式,可以根据具体情况选择一种自己认为台适的方式。本文源程序全部用 c 6匿Mir s f宏汇编编写,于其他版本的C B c o o ̄对语言 .个别语句要稍加修改之后才能使用。子程序编写好后,曾经在I BM~ c机上使用过较长时间, P 效果良好。一
AH=0 DX=串行 端口号初始化串AL=初始化参数行口
A信状 H曩线AL:M ODEM
I
状态
A端号行费A f H通绞态 H; 发 L A信状 口 送 IA=送J的符 L发中字 l字符 I
一羯靳
姐默
A嚣粤行态试 L H。 【测 端串棱口 A H我们编写的子程序基本上是用 lH号软件中断 4宴现的,它们妁功能如下: i i
c m ( o ̄ o fg l设置并初始化由 p r指 n to p r,c n i ) ot
、
软件中断介绍由于子程序的编写大量使用了软件中断,在此
首先对轼件中断做简单的介绍。I M— c机写在ROM中的程序,一部分是 B P BA C解释程序 .另部分就是基本输人输出系统 SIBI OS。
定的串行口,参数 c n i说明了波特率、数据 of g位、停止位和奇偶位。 tn h r ( o t h r c a p r,c ):将字待 c送往由p n指定的 h o
B 0s主要功能是驱动系统中所配置的常 1的
用外设 .使程序员不必过多地关心设备的物理特性 .从而能方便地控制各种输几输出操作。B OS I 允许程序员脚软件中断的方式调用其中的各个子程
串厅口发送。来的字符
、
rv h r ( o t:接嵌一个 I o t cc a p r) ̄p r指定的串行口送
序,这就太大简化了程序员的工作在 B O中, IS 与串行通信有关的是lH号软件中断,它的输八/ 4 输出参数阻及实现的功能如表 I示。表中的韧始所化参数、通信线状态、MODEM状态等各个参数的
s ̄o (o t:返回由p I指定时串行口状态。 t . m p r) ac。t
其 *p r=0 ̄CQM I 1)t代表 COM=2 ot代, xr=1 .
=、缩写子程序1 )C语言实现方式
基本含X .在很多参考资料上都可以查到,这里就
C8允许用户调用B O 6 I S中所有的软件中断和系·7· 5
串口通信
维普资讯
统功能调用 c8与B1 6 0s的接口主要是通过系统库函数s n v c r f rs y t( e。se .r c )来实现的 .该函数的功能是调用BI的V C软件中断,八口参数为 OS e号sr c{n x.b c tu tit a x x.d s .d, d e: x.i l s s}re s 1
缸e,口参热为r e,数的返回值是8 s或8 8 g出 f5函 o 6 o8标志寄存器的内容 .为了实现串行通信 .我们只要利用这一函数反复调用 1 P号软件中断,就可以完 4I成对串行口的各种操作表 2是子程序的源程序就
r g . x= ( t ) 0t es& 3Blrg d c s, x= po t r ̄
Sysnt
( x1 t 0 4.& rgs& r g ) e . es I r t r (e s a eu n r g . x)
清单 .文件名是SO- I C.它可以放在主程序中和主程序一起编译,也可以单独编译,形成s o.BJ I O后再与主程序进行连接。 2{语言实现方式 )亡编
C8调用{ 8[编子程序与调用其它外部函数的方法相同 .但对汇编语言的书写格式有严格的要求, 小模式为例,要求的格式如下:i ld o 1h ncu e m de .
襄 2¥0.程序清单 1 c潭{ to nic m ( o t c n f ) p r, o fg
{
sr c{n x x.C tu t{ ta,b X,d, s .d, s c; x t i d, 0'r s, eg
i l e ol f c h nc ud pr o a .
rg a e s. x= (《 ) o l 0 8 I nff; cr g . x= p r j c sd o t
p bi u lc文件名文件名p o e r rcnapus bp h E O b q V p, s p po b p p
S, i ̄ m
( x1 o 4.
&, g e s,& t ) e,
}t nc r ( o t c r ha p r, h)
文饽名e d npi l d pio u h nc u e e l g e. e nd
f
sr c{n x x,C,d , i s e I ) tu t{t a,b X x, d,d, r egst
关于所要求的汇编子程序的接式 .有几个问题需要说明
r g . x= (《 ) c csa 1 8 l hIt g - x= p r c sd o% Sy l snt ( X 4,& r¥s 0 l e。
( )mo . 1如1h.p oo u . e i g e b三个不 r lg e h, p l u .是 o可缺少的定义文件,它们包含在所配置盼磁& r F )I c, s
盘上。
}r v ha ( r ) c c r po t
()c 6 2 8在调用子程序时把要传递的参数压八栈中 并且最左面的参数放在栈顶,右面的参数最放在栈底,因此在小模式下子程序取参数的地址分别是 b p+4 p,b+4+参数的长度,’”
f
sr c ̄n x,b tu t tta x.C X.d s,d,d,O; x, i s S}r egs j
o
r g . x= ( t ){ es a 281 0r g . x= p r c
d o%
( )子程序回送的c a型、t t 3 hr n型值存于 A x寄存器中 .
Sysn ( Xl t t 0 4,& r g .& r g ) cs es,r t e um (esa r g . x& 0 0f l x0 f )
有了上面的介绍,就不难编写串行通信子程序了。源程序清单列于亵 3,文件名为s o. S .为 I AM了生成目标文件,首先用M A M软埠进行汇编, s
} aⅫ t I( cH ) p
然后就可以和主程序进行连接了,
衰5¥0 4 U曩墨序蒲簟 1. 5i l d d 1h nc u e mo e . L l d p o o u h uc u ̄ r l s e.J
pu h p s b mO p v b
t
s p
ticm m d nto pI pu lc tnc r b i r hapor ̄= 4 c bar ̄ 6 t c a pr near m h r oc
 ̄ O d ( p+ pr'2 W V x i b o t
p lc i# o ub i ntc mpot= 4 t
 ̄ O a .[ p+ c nf ' W V 1 b i o ̄3 1 o a 0 nv h il 1 H rt 4 p p p o D
c n i= 6 o fs i lor p o i i nt c/l rcI" ̄
·7· 6
串口通信
维普资讯
p s p uh bi ov p, s n- b p
p s p uh bm ov bp . s p
E pt o t b p r3 ̄ pt ha 3 b c r
mo x.[ p p r3 vd b+ otm o h, 2 v ai t l H n 4 p p b o p
mOV x.[ p+ p r ̄ d b o tm o h. 3 v ai 1 nt 4H poP bpr et
pop bpr et
r vc r ̄dp c hc el,
sa ̄ t t om c ndpI
t nc r口 d r ha p,
p b i 8 a cO n u lc t t i pu l c r vc r b i c hapor t= 4 ’ por t= 4
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




