必须的必就是计算机我在东北玩泥巴歌词

当前位置:
>>>作为一名中学生,在享有使用计算机网络权利的同时,必须遵守《全国..
作为一名中学生,在享有使用计算机网络权利的同时,必须遵守《全国青少年网络文明公约》和其他有关网络的规定,这告诉我们A.国家禁止中学生上网B.在上网时,要有很强的依法行事的意识C.有中学生上网有限制,其他人上网则没有限制 D.网络交往只要遵守法律就行了,不需要遵守道德
题型:单选题难度:中档来源:不详
B试题分析:法律是我们行为的依据。在享有使用计算机网络权利的同时,必须遵守《全国青少年网络文明公约》和其他有关网络的规定说明依法治国是我国治国的基本方略,是有法可依的表现,告诉我们在上网时,要有很强的依法行事的意识,选B。A错误,国家不禁止上网;C错误, 任何人都要遵守法律;D错误, 上网时要遵守道德准则。
马上分享给同学
据魔方格专家权威分析,试题“作为一名中学生,在享有使用计算机网络权利的同时,必须遵守《全国..”主要考查你对&&依法治国&&等考点的理解。关于这些考点的“档案”如下:
现在没空?点击收藏,以后再看。
因为篇幅有限,只列出部分考点,详细请访问。
依法治国:就是广大人民群众在党的领导下,依照宪法和法律规定,通过各种途径和形式管理国家事务,管理经济文化事业,管理社会事务,保证国家各项工作依法进行,逐步实现社会主义民主的制度化、法律化。本质:崇尚宪法和法律在国家政治、经济和社会生活中的权威。根本目的:保证人民行使当家作主的权利,维护人民当家作主的地位。地位:依法治国是党领导人民治理国家的基本方略。(依法治国、建设社会主义法制国家,是党领导人民治理国家的基本方略)重要性: ①是社会主义民主政治的要求。②依法治国是发展社会主义市场经济的客观需要。市场经济本质上是法制经济。只有用健全的法律法规规范、引导和制约人们的经济行为,才能维护良好的市场秩序,才能维护好、实现好人民群众的根本利益,促进经济和社会全面、协调、可持续发展。③依法治理社会秩序才能促进社会和谐,保证国家长治久安,才能维护人民的经济、政治、文化权益,从根本上实现人民当家作主。④依法治国是建设中国特色社会主义文化,促进精神文明建设的重要条件。社会文明进步的一个重要标志,⑤依法治国是党领导人民治理国家的一项基本方略。 依法治国的基本要求:有法可依(前提)、有法必依(中心环节)、执法必严、违法必究(有力保障)。有法可依、有法必依、执法必严、违法必究是相互联系的。只有实现这四个方面的统一,社会主义法制的作用才能充分发挥,国家的长治久安才有保证。 依法治国目的:真正实现人民当家作主依法治国主体:广大人民依法治国重要环节:依法行政依法治国前提:有法可依依法治国中心环节:有法必依依法治国关键:执法必严依法治国的意义:依法治国是党领导人们治理国家的基本方略,是建设社会主义现代化国家、实现长治久安的要求。一切国家机关都必须依法行使职权: ①政府能否自觉地依法行政,严格依法办事,直接影响到宪法和法律的尊严、权威; ②直接关系到依法治国基本方略能否顺利实施,建设社会主义法治国家的宏伟目标能否顺利实现; ③依法行政是依法治国的重要环节。&以德治国的内容:我国基本治国方略是依法治国和以德治国。 宪法是法治的标志,依法治国的核心是依宪治国。 以德治国属于精神文明,依法治国属于政治文明。 指导思想:马克思列宁主义、毛泽东思想、邓小平理论和“三个代表”重要思想。大利弘扬:爱国主义精神。核心:为人民服务。原则:集体主义。重点:诚实守信。加强:社会主义公德、职业道德和家庭美德教育。建设:与社会主义市场经济相适应,与社会主义法律体系相协调,与中华民族传统美德相承接的社会主义思想道德体系。使之成为:全体人民普遍认同和自觉遵守的行为规范。目的:提高公民思想道德素质。 把依法治国和以德治国相结合:①法律的遵守需要道德的有力支持。道德水平的提高,会增强人们的法律意识,使人们更加遵守法律。公民道德的状况,直接影响和制约依法治国方略的实施。 ②道德的实施需要法律的保障。人们法律意识的增强,必然会使人们道德观念和道德行为更加规范。 ③总之,依法治国和以德治国是相辅相成、相互促进的。必须把依法治国和以德治国结合起来。 我国公民道德基本规范:爱国守法、明礼诚信、团结友善、勤俭自强、敬业奉献。公民如何将依法治国落到实处:&1、我国的政府是人民意志的执行者,政府是为人民办事的机构。对人民负责,努力为人民服务是政府及其公职人员的工作宗旨和行为准则。政府依法行政,按照宪法和法律的规定管理社会事务,行使职权,才能成为行为规范、运转协调、公正透明、廉洁高效的政府,才能切实维护公民的合法权益。 2、每一个公民都要学会依法办事,依法律己,依法维护自身的合法权益,依法维护国家利益,把依法治国落到实处。懂得公民树立法治观念的重要性和基本要求:重要性: ①树立法治观念是文明社会对公民最起码的素质要求。 ②增强公民的法治观念是实行依法治国的重要条件。 ③只有人人树立法治观念,养成守法习惯,善于用法维权,才能有效地保护社会稳定,才能维护国家、集体利益和公民的合法权益。守法用法,是健全社会主义法制的一个重要环节。基本要求: ①学法,懂法,树立法治观念。 ②自觉守法,法律规定的一定做,法律禁止的坚决不做。 ③学会用法,运用法律武器维护自身的合法权益。 ④自觉护法,敢于和善于运用法律武器同违法犯罪行为作斗争,维护国家利益、集体利益和公民的合法权益。法律意识和法律素质:作为一名现代法治社会的合格公民,应具备: ①尊重法律,追求公正;②正确行使权力,自觉履行义务;③行使自己享有的监督权利。 尊重法律与追求公正的关系: ①法律体现着国家和人民的意志,代表和国家和人民的利益,是公平和正义的象征;②尊重法律,是富有正义感、追求公平的具体体现。依法治国,建设社会主义法治国家,我们青少年应怎样做:(依法治国,建设社会主义法治国家,要求青少年具备哪些法律素养?) ①尊重法律,追求公正;正确行使权力,自觉履行义务;行使自己享有的监督权利;②与法同行,树立法治观念;③掌握法律武器,自觉地遵守和维护法律,养成依法办事的观念和习惯;④同违反法律和破坏社会主义法制的行为作斗争。 ⑤我们每个公民都要学法、懂法、守法、用法,都要自觉维护法律的权威,培养守法意识,依法规范自己行为。 ⑥我们应该从规范自己的行为习惯做起,懂得做人做事的基本道理,具备文明生活的基本素养,养成高尚的思想品质和良好的道德情操,使自己成为有理想、有道德、有文化、有纪律的社会主义接班人。 了解青少年学法、懂法的重要意义: ①认真学法,能够促进青少年依法律己,养成遵纪守法的良好习惯; ②能够促进青少年依法行使公民的权利和履行公民的义务,依法维护自己的合法权益; ③学法、守法对建设社会主义法治国家,具有重要的意义。&&
发现相似题
与“作为一名中学生,在享有使用计算机网络权利的同时,必须遵守《全国..”考查相似的试题有:
78088498918713618619919407367969当前位置:
用VC实现PC并行端口数字信息的输入/输出
用VC实现PC并行端口数字信息的输入/输出
发布日期: 20:11
浏览次数:8044次
标  签:网络与通信
文章评分:5.0
操  作:
称号:未设置简介:...
文章概要:
目前,在实验室和工业应用的各种控制系统中,串口是常用的计算机与外部控制系统之间的数据传输通道。由于串行通信方便易行,所以应用广泛。但是使用串行通信,在实时性、速度、数据量等方面受到限制。而计算机的并行端口传输数据时是一次性传送8个位(一个字节)或更多,由于传输量较大,因此数据的传输速度要比串口快,在许多必须讲究传输速度的控制系统里,用PC并行端口与之连接就是一个很好的解决方案。
目前,在实验室和工业应用的各种控制系统中,串口是常用的计算机与外部控制系统之间的数据传输通道。由于串行通信方便易行,所以应用广泛。但是使用串行通信,在实时性、速度、数据量等方面受到限制。而计算机的并行端口传输数据时是一次性传送8个位(一个字节)或更多,由于传输量较大,因此数据的传输速度要比串口快,在许多必须讲究传输速度的控制系统里,用PC并行端口与之连接就是一个很好的解决方案。
本文介绍PC并行端口在单片机等控制系统中作为数字I/O口的应用。在控制系统中,有许多的数字开关量、数字控制信号、数字信号等,都可以通过计算机并行端口进行采集;并将采集的数字信号经计算机处理后形成数字控制信号,再从计算机的并行端口输出进行各种自动控制。
一、PC并行端口介绍
目前,计算机中的并行接口主要作为打印机端口,接口使用的不再是36针接头而是25针D形接头。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高。
现在常见的并口有五种:SPP型、PS/2型、EPP型、ECP型和多模式接口,大多数PC机配有SPP并口:
SPP标准并行口有4位、8位、半8位:4位口一次只能输入4位数据,但可以输出8位数据;8位口可以一次输入和输出8位数据;半8位也可以。
PS/2简单双向并行口:它引入双向数据端口,这种双向数据端口容许外设每次向PC机发送8位信息。PS/2型并口是指所有具有双向数据端口,但不支持后面介绍的EPP或ECP模式的并行接口。
EPP增强并行口:允许8位双向数据传送,它可以在大约1ms的时间内完成包括握手联络在内的一个字节的数据传送;而SPP或SP/2接口则需要大约4ms才能完成同样的工作。因此可以连接各种非打印机设备,如扫描仪、LAN适配器、磁盘驱动器和CDROM 驱动器等。
ECP口扩展并行口:是双向数据端口,并能以ISA总线速度传送数据。ECP有缓冲区,支持命令周期、数据周期和多个逻辑设备寻址,在多任务环境下可以使用DMA(直接存储器访问)。
多模式接口:许多新型接口支持多种模式,可以工作在以上提到的部分或全部模式下,用户可以使用配置选择,使用上述各种接口形式,或只使用其中一些而禁止其它。
二、PC标准配备并行口介绍
本文主要介绍计算机的标准配备并行端口即25针的母接头端口的应用,在此基础上可以运用相同的原理使用其它模式的并行端口。并行端口共有25支脚,但不是每支脚均被使用到。这些脚被区分为3种主要的功能,分别是用于数据的传送、检查打印机的状态及控制打印机,其接口如下所示:
在PC机中,标准并行口使用3个8位的端口寄存器,PC就是通过对这些寄存器,也就是所说的数据、状态、控制寄存器的读写访问并口的信号的。本文中使用一些通用的叫法,8个数据位分别为D0~D7,5个状态位为S3~S7,4个控制为C0~C3。其中字母表示了端口寄存器,数字则表示该信号在寄存器中的位。
数据寄存器
数据端口或称数据寄存器(D0~D7)保存了写入数据输出端口的一字节信息。数据端口可以写入数据,也可以读出数据(即可擦写);写进去的当然是我们希望从数据端口引脚输出的数据,不过读进来的也只是我们上次写进去的数据,或是原来保留在里面的数据,并不是从端口引脚输入PC的数据。数据端口引脚是PIN2~PIN9,其定义如下:
数据寄存器(即数据输出端口) 可擦写、基地址
引脚:D-sub
是否在连接器处倒相
如果我们把这8支脚当成一般的数字输出的脚位看待,上述8支脚就相当于是8个数字输出的位置一般,我们就可以把它们当成是8个可以自由控制的输出点。当我们通过数据端口传送数据时,就是改变这8支脚的电平状态;而接受方也按照相同的编码原则解释,就可以获得传送的数据。
状态寄存器
状态端口或称状态寄存器保存的是5个输入(S3~S7)的逻辑状态。S0~S2位不出现在并口连接器中。除了S0以外,状态寄存器是只读的,读出数据信息是状态端口引脚上的逻辑状态。S0是支持EPP传输并口的超时标志信息,可以用软件方法清零。在许多并口中,状态输入接有上拉电阻。状态端口引脚是Pin10~Pin13、Pin15,其定义如下:
状态寄存器(即状态输入端口) 基地址+1
引脚:D-sub
是否在连接器处倒相
nError(nFault)
上表中所谓的(基地址+1)指的是:如果我们的LPT地址是378H,在加上1就是379H;这个地址是专门用来传递打印机的状态的。和数据地址比较起来不一样的是,这里地址并非在连接器的脚位上均有对应点。在这个状态的显示上只有5个脚位有对应,位S0~S2是没有的--最起码是无法让计算机有对应的值可读取。
如果打印机接到并口上,那么打印机的状态将会通过这几支脚传送到PC,程序只要去基地址+1的位置读取数值即可知道现在打印机所处的状态。由于这几支脚可以让打印机传送状态给PC,那么我们可以把这几支脚位拿来当作数字输入的通道;我们可以让这几支脚位的状态发生电位的改变,而利用程序去读取这些脚位的数值,即可实现数据的输入。
控制寄存器
控制端口或称控制寄存器保存了C0~C3的4位的控制信息。C4~C7不出现在并口连接器中。一般来说,这些位被用来输出,然而大多数SPP中,控制位为集电极开路/漏极开路模式,也就是说,它们同样可以用作输入。要从控制位上读取外部逻辑信号,首先将向相应的输出写入“1”,然后读取控制寄存器的值即可。但是,为了提高交换速度,大多数支持EPP和ECP接口中,控制位工作在不能用作输入的推拉模式下。在一些多模式接口中,控制位采用的是改进型的推拉模式,可以用作输入。控制端口引脚是Pin1、Pin14、Pin16和Pin17,其定义如下:
控制寄存器(即控制输出端口) 基地址+2
引脚:D-sub
是否在连接器处倒相
上表中所谓的(基地址+2)指的是:如果我们的LPT地址是378H,在加上1就是37AH;这个地址是专门用来控制打印机动作的。
如同数据的送出,我们的程序只要将我们的信息送往(基地址+2)的地址去,就可以实现数据输出,接受端在相应引脚就可以接受到相应的逻辑电位状态。当控制端口的信号源为高电平时,这些引脚可以作为输入引脚,如同状态端口引脚一样。
在上述定义表格中,所谓“是否在连接器处倒相”是指并口硬件将连接器与相应寄存器位之间的4个信号进行了倒相处理。具体说来,S7、C0、C1、C3信号的逻辑状态在连接器处是与相应寄存器位反相的。当你对这些位进行写操作时,必须牢记写入的值应该与你想在连接器处设置的值相反;当要对这些位进行读操作时,也必须记住所读取的值与连接器处的值相反。
计算机的标准配备并行端口除以上介绍的数据端口引脚Pin2~Pin9、状态端口引脚Pin15、Pin10~Pin13、控制端口引脚Pin1、Pin14、pin16、Pin17外,连接器上的 其它引脚Pin18~Pin25是归地引脚GND。
三、PC并行口数字输入/输出
所谓的数字输出就是在程序要求某一个设备的某一开关点开或关,产生高电位或低电位。从计算机的观点来说,低电位就是0.7V以下(逻辑0),而高电位是2.1V以上(逻辑1),若电位处在0.7~2.1V时,电位的逻辑状态是不确定的。想要通过计算机去控制外部设备,最简单的方法就是控制数字输出。
所谓的数字输入,也就是外界的状况被计算机用0或1的数值予以记录下来而储存,此0与1就代表了外界某一个设备的某一开关点开或关的两种情形。
PC并行口即可以作数字输出口,也可以作数字输入口。其中的数据端口、控制端口都可以作为数字输出端口,数据端口共8位,控制端口共4位,两个端口可以组成1~12位的任意数字输出端口;其中的状态端口、控制端口都可以作为数字输入端口,状态端口共5位,控制端口共4位,两个端口可以组成1~9位的任意数字输入端口。本文给出了并行端口3种寄存器的读写方法,如下图所示:
四、PC并行口数字输入/输出的VC实现
由于Windows对系统底层操作采取了屏蔽的策略,因而对用户而言,系统变得更为安全,但这却给众多的硬件或者系统软件开发人员带来了不小的困难,因为只要应用中涉及到底层的操作,开发人员就不得不深入到Windows的内核去编写属于系统级的设备驱动程序。对并行口的读写操作就是如此,由于Windows对系统的保护,绝对不允许任何的直接I/O动作发生,所以必须带上*.dll、*.sys或*.vxd文件,这些文件用来让操作系统知道有一个特定的I/O可能会被调用。系统开机后,这些文件中的内容就会加载到内存中,一旦有对应的动作发生,就会引发I/O的实际动作。
本文只是介绍并行口作为数字I/O口的使用,不在于介绍并行I/O口驱动的编写。故本文中直接使用由 Yariv Kaplan 编写的 WinIo 库,它有如下特点:WinIo 库通过使用内核模式下设备驱动程序和 其它一些底层编程技巧绕过 Windows 安全保护机制,允许32位 Windows 程序直接对 I/O 口进行操作;
支持Windows 9x、Windows NT、Windows2000、WindowsXP环境;在Windows NT/2000/XP下,允许非 Administrator 用户应用 WinIo 应用程序;不支持中断。
注意事项:使用这个类代码时请确保不要与其它使用常规 Win32 调用操作并行端口的程序发生冲突。
WinIo库在VC应用程序中的使用(WinIo库下载)
为了在VC中能正常使用WinIo库,必须按以下步骤进行配置:
(1):将WinIo.dll、WinIo.sys、WINIO.VXD三个文件放在程序可执行文件所在目录下;
(2):将WinIo.lib添加到工程中,WinIo.lib及winio.h文件必须放在工程目录下;
(3):在StdAfx.h头文件中加入#include "winio.h"语句;
(4):调用InitializeWinIo函数初始化WinIo驱动库;
(5):调用读写IO口的GetPortVal或SetPortVal函数;
(6):调用ShutdownWinIo函数;
在非管理员权限下运行,必须首先完成以下步骤:
(1):将WinIo.dll、WinIo.sys、WINIO.VXD三个文件放在任一WinIo应用程序可执行文件所在目录下;
(2):以管理员或其它具有管理员权限的用户身份登陆;
(3):调用InstallWinIoDriver函数,第一个参数设置为WinIo.sys文件所在目录路径,第二个参数设置为false;
(4):重新启动系统;
(5):以普通用户身份登录,现在可以调用WinIo库函数;
(6):当不再需要WinIo库时,可以再次以管理员身份或其它具有管理员权限的用户身份登陆系统,调用RemoveWinIoDriver卸载该库;
WinIo库中几个函数说明:
(1):初始化与终止
bool _stdcall InitializeWinIo();
void _stdcall ShutdownWinIo();
(2):安装与卸载
bool _stdcall InstallWinIoDriver(PSTR pszWinIoDriverPath, bool IsDemandLoaded = false);
bool _stdcall RemoveWinIoDriver();
(3):读写I/O口
bool _stdcall GetPortVal(WORD wPortAddr, PDWORD pdwPortVal, BYTE bSize);
bool _stdcall SetPortVal(WORD wPortAddr, DWORD dwPortVal, BYTE bSize);
GetPortVal函数从指定端口读取一个BYTE/WORD/DWORD类型的值;
wPortAddr是指定一个端口地址值;
pdwPortVal为指向一双字节型变量的指针,该变量存储从wPortAddr端口读取的值;
bSize指定读取字节数,值可以为1,2或4。
SetPortVal函数向指定端口写入一个BYTE/WORD/DWORD类型的值;
除dwPortVal为输入参数,表示待写入外,其余个变量含义与GetPortVal相似。
PC并行口数字输出的VC实现(示例工程下载)
为了测试并行口的数字输出,可以准备12支LED发光二极管,将LED的阳极分别与数据端口引脚Pin2~Pin9和控制端口引脚Pin1、Pin14、Pin16、Pin17相连接;将LED的阴极连接在一起与并行口的归地引脚GND相连即可。在实际控制应用中不能这样连接,因为数据端口引脚、控制端口引脚输出的电流非常小,只有10mA左右,必须添加 其它硬件电路。
(1):数据端口数字输出的VC实现
//获得数据端口地址
WORD m_nport=(WORD)0x378;
//获得要写入数据端口的值WriteValue(数据范围为0~255)
DWORD m_nValue=(DWORD)WriteV
//调用WinIo库函数SetPortVal写端口值
SetPortVal(m_nport, m_nValue, 1);//write a BYTE value to an I/O port
(2):控制端口数字输出的VC实现
//获得控制端口地址
WORD m_nport=(WORD)0x37A;
//获得控制端口的值,保持高位值不变,将要输出的值从低4位输出,且使连接器上的电位状态与想输出的值一致
DWORD temp_dwPortV
unsigned int temp_
GetPortVal(m_nport, &temp_dwPortVal, 1); //reads a BYTE value from an I/O port
temp_aa=(unsigned int)temp_dwPortV
temp_aa=temp_aa&0x0F0; //取低8位值,将低4位置为0;高4位不变;
temp_aa=temp_aa^0x0B; //将低4位中C0、C1、C3置为1,C2置为0;高4位不变;
//获得要写入控制端口的值WriteValue(数据范围为0~15)
unsigned int WriV
WriValue=WriteValue&0x0F; //取低4位;
temp_aa=temp_aa^WriV //将写入值的低4位中的C0、C1、C3取反,C2位不变,高4位保持端口值不变
SetPortVal(m_nport, (DWORD)temp_aa, 1); //写出的值中,高4位保持端口原来的值不变,
//低4位是写入什么电平,连接器上既是什么电平
(3):数据端口及控制端口组合成12位数字输出的VC实现
//获得端口地址
WORD m_nportData=(WORD)0x378;
WORD m_nportControl=(WORD)0x37A;
//获得要写入端口的值WriteValue(数据范围为0~4095)
DWORD m_nValue=(DWORD)(WriteValue&0x0FF);//取低8位值
SetPortVal(m_nportData, m_nValue, 1);//write a BYTE value to Data port
DWORD temp_dwPortV
unsigned int temp_
GetPortVal(m_nportControl, &temp_dwPortVal, 1); //reads a BYTE value from an I/O port
temp_aa=(unsigned int)temp_dwPortV
temp_aa=temp_aa&0x0F0; //取低8位值,将低4位置为0;高4位不变;
temp_aa=temp_aa^0x0B; //将低4位中C0、C1、C3置为1,C2置为0;高4位不变;
unsigned int WriV
WriValue=WriValue&&8;//取高4位值
temp_aa=temp_aa^WriV //将写入值的低4位中的C0、C1、C3取反,C2位不变,高4位保持端口值不变
SetPortVal(m_nportControl, (DWORD)temp_aa, 1); //写出的值中,高4位保持端口原来的值不变,
//低4位是写入什么电平,连接器上既是什么电平
PC并行口数字输入的VC实现
(1):状态端口数字输入的VC实现
为了测试并行口状态端口的数字输入,可以将数据端口引脚Pin2~Pin6连接到状态端口引脚Pin15、Pin13、Pin12、Pin10、Pin11上。引脚接好后,先从数据端口输出数据,在从状态端口和控制端口读出数据,读出的数据应与写入的数据一致,数据范围为0~31。
DWORD dwPortV
unsigned int ValueGet=0;
//获得端口地址
WORD m_nport=(WORD)0x379;
//获得端口数据
GetPortVal(m_nport, &dwPortVal, 1);
ValueGet=(unsigned int)dwPortV
ValueGet=ValueGet^0x80; //保持得到的State值与连接器处的值一直;
ValueGet=ValueGet&0xF8; //去掉S0 ~S2位;
ValueGet=ValueGet&&3; //右移3位,将S7~S3变为低5位
(2):控制端口数字输入的VC实现
为了测试并行口控制端口的数字输入,可以将数据端口引脚Pin2~Pin5连接到控制端口引脚Pin1、Pin14、Pin16、Pin17上 。引脚接好后,先从数据端口输出数据,在从状态端口和控制端口读出数据,读出的数据应与写入的数据一致,数据范围为0~15。
//获得端口地址
WORD m_nport=(WORD)0x37A;
//===== 将C0~C3位置1,即使连接器上为高电平 ,使控制端口为输入端口=====
DWORD temp_dwPortV
unsigned int temp_
GetPortVal(m_nport, &temp_dwPortVal, 1); //获取端口的当前值
temp_aa=(unsigned int)temp_dwPortV
temp_aa=temp_aa&0x0F0; //取低8位值,将低4位置为0;高4位不变;
temp_aa=temp_aa^0x4; //将低4位中C0、C1、C3置为0,C2置为1;高4位不变;
SetPortVal(m_nport, (DWORD)temp_aa, 1); //写出的值中,高4位保持端口原来的值不变,
//低4位是写高电平,即使连接器上是高电平
//=============================================================
unsigned int ValueGet=0;
DWORD dwPortV
//获得端口数据
GetPortVal(m_nport, &dwPortVal, 1);
ValueGet=(unsigned int)dwPortV
ValueGet=ValueGet^0x0B; //保持C0,C1,C3位的值与连接器处的值一至;
ValueGet=ValueGet&0x0F; //去掉高4位值
(3):控制端口及状态端口组合成9位数字输入的VC实现
为了测试并行口的数字输入,可以将数据端口引脚Pin2~Pin9连接到控制端口引脚Pin1、Pin14、Pin16、Pin17和状态端口引脚Pin15、Pin13、Pin12、Pin10上 ,Pin11引脚连接到归地引脚GND或悬空。引脚接好后,先从数据端口输出数据,在从状态端口和控制端口读出数据,读出的数据应与写入的数据一致,当Pin11引脚连接到归地引脚GND时,数据范围为0~255;当Pin11引脚悬空时,数据范围为256~511。
unsigned int ValueGet=0;
//获得端口地址
WORD m_nportState=(WORD)0x379;
WORD m_nportControl=(WORD)0x37A;
//Read State Port
DWORD dwPortV
unsigned int ValueState=0;
GetPortVal(m_nportState, &dwPortVal, 1);
ValueState=dwPortV
ValueState=ValueState^0x80; //保持得到的State值与连接器处的值一直;
ValueState=ValueState&0xF8; //去掉S0 ~S2位;
ValueState=ValueState&&1; //左移1位,将S7~S3变为高5位
//Read control Port
//========== 将C0~C3位置1,即使连接器上是高电平 ,使控制端口为输入端口=====
GetPortVal(m_nportControl, &dwPortVal, 1); //获取端口的当前值
ValueGet=(unsigned int)dwPortV
ValueGet=ValueGet&0x0F0; //取低8位值,将低4位置为0;高4位不变;
ValueGet=ValueGet^0x4; //将低4位中C0、C1、C3置为0,C2置为1;高4位不变;
SetPortVal(m_nportControl, (DWORD)ValueGet, 1); //写出的值中,高4位保持端口原来的值不变,
//低4位是写高电平,即使连接器上是高电平
//=============================================================
unsigned int ValueControl=0;
GetPortVal(m_nportControl, &dwPortVal, 1);
ValueControl=(unsigned int)dwPortV
ValueControl=ValueControl^0x0B; //保持C0,C1,C3位的值与连接器处的值一至;
ValueControl=ValueControl&0x0F; //去掉高4位值
//get 9bit value
ValueGet=ValueState^ValueC
本文只是介绍PC并行端口作为数字I/O口的应用方法,在实际运用到控制系统中进行数字信号通信时,必须注意对并行端口信号进行其它的处理,以提高端口信号的抗干扰能力、稳定性及可靠性等。
最多还可以输入100字
【VIP年会员制套餐】
【C/C++软件工程师实战能力集训大纲】
VC知识库发布了C/C++业界的“本草纲目”
【牛人都在千人一号群! 加群三步走!!!】
第一步:请必须加VC知识库QQ: 为好友;
第二步:请必须关注本站微博:
第三步:申请加入群:.(必须将关注微博截屏发到QQ方可通过!)
【最新2013:】
全部100% VC++源码提供: E-Form++全新大型SCADA & HMI解决方案源码、CAD解决方案源码、Gis解决方案源码 、电力石油化工仿真与图形建模解决方案源码、大量其他高级制图VC++源码下载!
【 新视频发布】
o o o o o o o o o o
用CListCtrl来显示数据比较方便,有时候我们需要标注某一列或某一个单元格的背景和字体颜色,或者需要改变一下行高和字体大小,CListCtrl要改变这些并不是很方便。本文将介绍如何派生一个类来改变CListCtrl及其表头的高度、字体大小、列背景颜色、单元格背景颜色、列字体颜色、单元格字体颜色。...
用CListCtrl来显示数据比较方便,有时候我们需要标注某一列或某一个单元格的背景和字体颜色,或者需要改变一下行高和字体大小,CListCtrl要改变这些并不是很方便。本文将介绍如何派生一个类来改变CListCtrl及其表头的高度、字体大小、列背景颜色、单元格背景颜色、列字体颜色、单元格字体颜色。...
本文介绍了套接字编程的基本知识。...

我要回帖

更多关于 我在东北玩泥巴 的文章

 

随机推荐