C语言如何实现串行通信
更新时间:2023-05-13 06:10:01 阅读量: 实用文档 文档下载
- 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
i l e pio u· nc ud e l g e h e nd
藿 l"
sa c m p o o r t to r c h a
r vc r p o a c ha r c ne t
三、实现串行通信为了说明在主程序中如何调用以上子程序瓣.
将两台I BM— c或其兼客机以串插方式连接 .
P双方同时运行TALK软件 .就可用对话方式实现
串厅通信 .们编写了一个简单的终端仿真程序 .我命名为T ALK. C.我可以实现下面的功能。每当键盘上敲八一个A I码键 .T K ̄将这一字符传送 SC I L A
双机通信襄 4 T K.薯程序清单 AL c# i l c 8 d o. nc ud t i h#耐缸 e o i O 5 c nf ̄ X B
给字符发送予程庠,后者通过串符口将字符发送出去 I串行口每收到一个字符 .TA K ̄将此字符送 L屏幕显示.程序选择COM作为通信端口,波特 1
# d fn 酊 ei e 0l0 X 0# d fn or 0 c Ie p t # d fne TR UE 1 ei mai n ( )x 2. c hJ
率为3 0 P .数据位 8 .止位 1, 0B S位停位偶校验方式 .主程序中还用到了其它两个子程序 c ( )和址 o ( ) y,它们分别完成监视键盘和读键盘的功能逸两个子程序是用 1 H号软件中断实现的 . 6图 1 AL C的流程图,表 4 AL C的源 ̄T K. ̄T K.’
i nt X1
.
i 'o nic m ( ̄
) J
whie ( l TRUE){ xl c c ( ) A O 0 = hk y X4 )x2 xl 0 4 =& x 0I
程序请单。
i (2{ f x)c h= r虹 y ( d ) I
p i t (牺 C .c ) rn f‘ h It nc t ( h) r ha o I
} i (t t o ( )& s d ){ f sa c m ry c h= r v ha ( ) cc r, pif ( rn牺C’ .dx l )} ) 'ck y ( h c )
{i tt t nt s a us
mm c{ x】, ti a,b【 ntos} s
.d .s。d,d, x i i s
图l TAL C件流程图 K·软.
咐 r郴
s 1 t缸= 0 x01, 00
将主程序输八计算机 .经编译之后产生目标文倬 T K· L A OBJ .再与子程序的目标文件 g o. l OBJ 进行连接就可以运行了。编译,连接过程如下C> cci TA LK C> CC2 TALK C> CC3 TALK C> CC4 TALK
啪协 B ̄ tnt ( Xl= i f 0 6.& r s& r ̄s l皤, e ) r诅m (
t e sa州 a l )} r k ( ) de’
sr c{n x x.c,d .s .d。d, tu ti t a .b x x i i s e 1) r 暗 r秘 . x= 0 0 0 e B X0 0 )蛳呻坤
0 0H r r ( ̄ s ax& X0 ) et n g u r,
C> LI K T ALK+ S o一葛 LI N ”( B
} ‘ 7 7
串口通信
维普资讯
四、结束语本文主要是通过嘏用软件中断的手段来强化c语言串行通信的功能,它具有编程简单 .容易实现
的波特蛊无法设置,无法实现环路自测试骘。如果各个子程序采用直接对 8 5硬件进行存取的办法, 20 将会得到更好的效果对子大多数应用场台来说 -本文的程序足以满足要求。
的特点=但由于软件中断车身的局限性,限制了串行通信一些功能的使用 .例如小于或等于 1 0 BP o s
I系列计算机用户文件结构改进初探 V I V华东工学院计算机系‘ ~
高宝华
摘要。在MV计算机的文件树中 .操作系统将全部用户的初船工柞目录都设置 AUDD目录之下 .
件类型可蹦粗略地分成二大类:即目录文件和数据文件。数据文件又可分为系统的、用户的及其它
但在系统的实际运行和管理过程中,这种 J户文件 f I蛄构表现出来些缺陷和不足。拳文针对这一问题 . 试图对原J户文件蛄构的改连柞一些探讨和说明。 f I
的魏据文件,它们按类别放置在有关的目录之下 .
全部目录文件和数据文件组成了一个所谓网状的倒置树形结构。在较低一级分支上的目录做子目录 q
实践证明。经过这些改进烈后 .不怔敖善了系统的运行情况,同时也寿系统管理带来了雁太方便 .基蕾解决了原木统拄这一方面的不足。
或下级目录,较高一级分支上的目录叫做某一主目录或上级目录 .最高级目录即树中顶的目录叫做根目录。典型的Al/ s文件系统结构如图 1璐 V所
微型显鬟
在MV系列计算机的AO/ S B V操作系统中.文
显
图 I A0/文件系统简图 s Vs
其中,与用户有关的目录有两个;即UP目录和 DUDD目录。uP D目录是用户说明文件目录 .该目
对于
这种用户文件结构,笔者在系统管理曲实践中感觉到有几点不足 .不便于动态她随机修改 1用户初始工作目录磁盘区域的大小。2 .由于全部用户文件和系统文件构成了物理磁盘的整体,园此对整个系统的优化和调整带来很多不便。3 .不利于散磁盘文哗的后备工作 4 .对于多磁盘控制器多磁盘驱动器的计算机硬件系统,不能充分有效地盘挥硬件结构上的优势。5·不便予兼顾对各类大 小不同甩户的管理工作。
录存放着在系统中注册的每个用户的说明文倬,操作系统根据每一说明文件的具体内容,实施对相匝用户的某些规定的控制 .UDD是垒部用户初始工
作目录的总目录 .当用户登录系统成功以后,用户 的韧始工作目录即在uD D目录下的某一用户子目 录巾。着用垒通路名表示这一初始工催目录应为:、
U DD: U ̄ERN A M E n。
在这种文伴结构中,用户的全部文肄 (论是无自己编制的 .或是由于运行某些程序而产生的 ),都在这一用户韧始工作目录或它的某一子目录中, 而用户相 _于系统文件的参考工作点也固定是这一对
象我院这样的用户环境,用户数量多、用户程序规模大小相差悬殊,上述不足之处就表现得尤为
五
突出 .于这掸的用户环境,安排好用户文件结对如何构 .充分发挥系统资源效益,是从事中小型计算机
韧始工作目录 .或是击用户自己设置的初始工作目录的某一子目录。·7‘ 8
系统管理和应用的技术人员的一项重要工作。 为此 .笔者根据自己多年工作的实际体会 .列
正在阅读:
C语言如何实现串行通信05-13
2022年植树节手抄报内容大全03-30
反吹风袋式除尘器的产品说明12-31
夏季作文600字06-30
7浅谈小学生常见的几个心理问题10-13
数据结构习题解析第10章12-22
《信客》墓志铭02-15
地球一小时作文【精选】06-14
叶俊:为什么人们常常会“吃着碗里的,看着锅里的”?04-10
创维电视42寸说明书02-12
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 串行
- 语言
- 实现
- 通信
- 如何
- 沙龙活动主持人话术
- 人人享有人格尊严权说课稿
- 骨髓增殖性肿瘤患者JAK2-V617F基因突变与脑梗死相关性研究
- 财务出纳工作总结大全
- 边拱支架浇筑计算书1-5
- 突破性领导力-基本课程介绍
- 宝洁公司营销战略分析
- 浅述活血化瘀法在治疗乙肝中的临床应用
- 黑龙江省教师资格证考试资料九:道德发展理论
- 金属非金属矿山安全规程地下部份期中考试题2011
- 2014年北京大学信息科学技术学院考研复试工作安排-新祥旭考研辅导
- 总监理工程师个人工作总结
- 2018年中国婚庆策划行业市场前瞻与投资战略规划分析报告目录
- 2005年《中国科技期刊引证报告》(核心版)中各医药学类期刊影响因子较高的前10种期刊排序表
- 亚粒径阳离子交换色谱
- 书香家庭 家长读书笔记
- Ansoft HFSS在天线设计中的应用
- 论我国医疗保险制度
- 火力发电厂生产过程
- 压裂防砂技术在南堡35_2油田大斜度井的应用