C语言在测量和控制中的应用资源第2章 端口、内存IO与位运算_第1页
C语言在测量和控制中的应用资源第2章 端口、内存IO与位运算_第2页
C语言在测量和控制中的应用资源第2章 端口、内存IO与位运算_第3页
C语言在测量和控制中的应用资源第2章 端口、内存IO与位运算_第4页
C语言在测量和控制中的应用资源第2章 端口、内存IO与位运算_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 端口、内存I/O与位运算,哈尔滨工业大学,C语言在测量与控制中的应用系列课件,2.1 端口输入/输出函数,计算机的CPU要与外设间传递信息,必须通过硬件的接口电路来进行。接口电路通常包含一些寄存器,如数据寄存器、状态寄存器、控制寄存器等。一般称这些寄存器为I/O(输入/输出)端口。 PC系列微机用10条地址线对端口寻址 寻址范围为 0 x00 0 x3ff C语言为了控制端口的输入/输出扩展了一些非标准的系统函数,8位端口输入函数 inportb( ),函数原型: unsigned char inportb(int portid);,功能: 从地址为 portid 的8位端口输入一个字

2、节(8位), 所读的值是该函数的返回值,由头文件 dos.h 说明。,用法: #include unsigned char b; b = inportb(端口地址);,8位端口输出函数 outportb( ),函数原型: void outportb(int portid ,unsigned char value);,功能:向地址为 portid 的8位端口输出一个字节 (8位),其值为 value,由头文件 dos.h 说明。,用法: #include outportb(端口地址,无符号字符型数据或变量);,16位端口输入函数 inport( ),函数原型:int inport(int por

3、tid);,功能:从地址为 portid 的16位端口输入一个字(16位), 所读的值是该函数的返回值,由头文件 dos.h 说明。,用法: #include int w ; w = inport(端口地址);,16位端口输出函数 outport( ),函数原型: void outport(int portid , int value);,功能:向地址为 portid 的16位端口输出一个字(16位),其值为 value,由头文件 dos.h 说明。,用法: #include outport(端口地址,整型数据或变量);,2.2 位运算,位运算是直接对操作数的二进制位(bit)进行操作。 按二

4、进制位的逻辑运算对控制计算机硬件非常有用。,C语言的位运算符有: 按位与 ,该函数返回由segment(段地址)和offset (偏移地址) 指定地址的一个内存单元中的值(8位),由dos.h说明。,程序举例:#include main( ) charb; b=peekb(0 xf000,0 xfffe); printf(“%xn”,(unsigned char)b);,(2)peek( )函数,函数的格式为: int peek(int segment,unsigned offset);,该函数返回由segment(段地址)和offset (偏移地址) 指定首地址的两个相邻内存单元中的值(16位), 由dos.h说明。,(3)pokeb( )函数,函数的格式为: void pokeb(int segment,unsigned offset,char value);,该函将一个字节的值value,存到由segment(段地址)和offset (偏移地址)所指定的内存单元中 , 由dos.h说明。,程序举例:#include main( ) pokeb(0 x0040,0 x0017,1); ,(4)poke( )函数,该函将一个字的值value,存到由segment(段地址)和offset (偏移地址)所指定首地址的两个连

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论