C语言在测量和控制中的应用 教学课件 作者 王彤第2章 端口、内存IO与位运算.ppt

C语言在测量和控制中的应用 教学课件 作者 王彤第2章 端口、内存IO与位运算.ppt

ID:50319957

大小:201.00 KB

页数:18页

时间:2020-03-08

C语言在测量和控制中的应用 教学课件 作者 王彤第2章 端口、内存IO与位运算.ppt_第1页
C语言在测量和控制中的应用 教学课件 作者 王彤第2章 端口、内存IO与位运算.ppt_第2页
C语言在测量和控制中的应用 教学课件 作者 王彤第2章 端口、内存IO与位运算.ppt_第3页
C语言在测量和控制中的应用 教学课件 作者 王彤第2章 端口、内存IO与位运算.ppt_第4页
C语言在测量和控制中的应用 教学课件 作者 王彤第2章 端口、内存IO与位运算.ppt_第5页
资源描述:

《C语言在测量和控制中的应用 教学课件 作者 王彤第2章 端口、内存IO与位运算.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

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

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

4、操作。按二进制位的逻辑运算对控制计算机硬件非常有用。C语言的位运算符有:按位与&,按位或

5、,按位异或^,按位取反~,左移<<,右移>>。位运算符只能用于有符号或无符号的字符型、整型、长整型数据的运算,不能用于浮点数和双精度数据的运算。(1)按位与运算符&运算规则:0&0=0,0&1=0,1&0=0,1&1=1若a=0x55,b=0xf0a&b=?01010101(a=0x55)&)11110000(b=0xf0)01010000(c=0x50)规律:跟1相与不变,跟0相与清零用途:按位的与运算可使某些位清0,其它位不变.(2)按位或运算符

6、运算规则

7、:0

8、0=0,0

9、1=1,1

10、0=1,1

11、1=1若a=0x55,b=0xf0c=a

12、b=?01010101(a=0x55)

13、)11110000(b=0xf0)11110101(c=0xf5)规律:跟1相或置1,跟0相或不变用途:按位的或运算可使某些位置1,其它位不变.(3)按位异或运算符^运算规则:0^0=0,0^1=1,1^0=1,1^1=0相同为0,不同为1若a=0x55,b=0xf0,c=a^b=?01010101(a=0x55)^)11110000(b=0xf0)10100101(c=0xa5)规律:跟1相异或取反,跟0相异或不变用途:按位

14、异或运算可使某些位取反,其它位不变(4)按位非运算符~按位非运算也叫按位反运算,他将操作数的每个二进制位都取反,即0变成1,1变成0。若a=0x55对应的二进制数为01010101则~a=0xaa对应的二进制数为10101010(5)按位左移运算符按位左移运算符<<用于将变量的每一位向左移动左移运算的一般表达式为:被移位变量名<<左移的位数左移后右端的空位补001011001左移一位结果为:10110010左移一位相当乘2,左移运算常用于快速的乘法(6)位右移运算符>>按位左移运算符>>用于将变量的每一位向右移动右移运算的一般表达式为:被移位变

15、量名>>右移的位数无符号数右移后左端的空位补0。有符号数左端最高位(MSB)是符号位,右移后补充符号位,以保持符号不变。右移一位相当除2,右移运算常用于快速的除法2.4内存单元读/写函数C语言可直接访问内存单元的物理地址。86系列CPU微机的内存地址是分段表示的,包括一个16位的段地址和一个16位的段内偏移地址。地址通常用16进制数表示。(1)peekb()函数函数的格式为:charpeekb(intsegment,unsignedoffset);该函数返回由segment(段地址)和offset(偏移地址)指定地址的一个内存单元中的值(8位),由

16、dos.h说明。程序举例:#includemain(){charb;b=peekb(0xf000,0xfff

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。