|
|||||||||||||||||
| | 首页 | 文章中心 | 下载中心 | 本站商品 | 学习资料 | | |||||||||||||||||
| 广告载入中... | |||||||||||||||||
| 您现在的位置: 电子爱好者 >> 文章中心 >> 单片机应用 >> 正文 |
|
|||||||||||||||||
| I/O控制实验 | |||||||||||||||||
| 作者:无 文章来源:非本站原创 点击数: 更新时间:2005-4-18 | |||||||||||||||||
| 对计算机初学者来讲,计算机感知和控制外部设备是件奇妙的事情。一般情况下,他们不经常使用A/D、D/A或数字I/O板,二是各方面的介绍资料不够详细。其实,只要你有一台普通的计算机,就完全可以进行数据采集及控制实验。
将D1至D8分别接往并口D型头的2脚至9脚。通过DEBUG可以得到并行口的地址,以LPT1为例。在DOS下运行DEBUG程序可得到并口的基地址(16进制378)。 DEBUG<Enter> -d 0040:0008 0009<Enter> 0040:0000 78 03 -q<Enter> 下面是LED与十进制数的对应关系及BASIC语言编制的语句。
如果让D1发光,则:OUT &h378, 1 如果让D2发光,则:OUT &h378, 2 如果让D3发光,则:OUT &h378, 4 如果让D4发光,则:OUT &h378, 8 如果让D5发光,则:OUT &h378, 16 如果让D6发光,则:OUT &h378, 32 如果让D7发光,则:OUT &h378, 64 如果让D8发光,则:OUT &h378, 128 如果让D8与D1同时发光的话,则:OUT &h378,128+1 如果让D7与D3同时发光的话,则:OUT &h378,64+4如果让D8,D4,D1同时发光的话,则:OUT &h378,128+8+1 通过上述方法,你可以任意安排LED的显示方式。如果将LED换成5V直流继电器的话,你可以控制更大的动力设备如电灯、开关、水泵等。你还可以按时间长短编制成方波信号发生器用于调试及修理电器设备。 下面再看一看计算机并口如何检测外部设备的状态。 与并行口基地址相邻的还有并口的状态口,通过读取状态口的数据,我们就可以了解外部设备的运行状态。与&h378相对应的状态端口是&h379,它是一个读入端口,其逻辑是这样的:
IF (INP(&h379) and 8)/8=1, K2是闭合的 IF (INP(&h379) and 8)/8=0, K2是打开的 IF (INP(&h379) and 16)/16=1, K1是闭合的 IF (INP(&h379) and 16)/16=0,K1是打开的 上图中P为电池或引出的机内5V电源,R为限流电阻(470欧姆至1K,要求的不是很严格)。通过适当的程序编制还可以读入外部输入的脉冲数据,进行总数计量,速率计量等,稍加改动(开关量传感器件)还可用于计件等工作。 下面谈一下对模拟信号的采集问题。 通过上面的介绍你可能基本上了解了计算机的数据输入与控制概念,但必须通过适当的方法才能采集外部的模拟信号,这首先需要进行A/D转换,通俗的讲就是对模拟量进行量化处理变成数字量。A/D专用器件可以很好的完成这一工作,但不适合初级电子爱好者使用。利用普通的电路实现A/D转换还是可能的,下面的电路可以完成此功能。
上面的电路实质上是一个V/F变换器,将输入的电压信号转换为频率输出,如果将Vout接到并口D型头的13脚,就可以读入单位时间内的脉冲数,从而得知外部的电压幅值。 上面分别介绍了并口的简易输入和输出功能,其实输入和输出功能还可以混合使用,下面是用CD4051实现的多选一电路,将其接入V/F之前,通过计算机并口就可以采集到外部的多路模拟信号,它适合频率不高的模拟量采集,如温度信号等。
上图中S0至S7是8路模拟信号,A,B,C接至并口D型头的2,3,4脚(对应数据线为D0,D1,D2),当D0,D1,D2全为零时,选中S0作输入。当D0,D1,D2全部为1时选中S7作为输入。不难理解,上面的电路通过向&h378口送数驱动CD4051的切换,可以通过&h379状态口采集八路模拟信号。 |
|||||||||||||||||
| 文章录入:admin 责任编辑:admin | |||||||||||||||||
| 【发表评论】【告诉好友】【打印此文】【关闭窗口】 | |||||||||||||||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| |
| | 设为首页 | 站点地图|<产品开发服务|光盘刻录服务| 广告合作 | 访问记录 |汇款方法 | 关于VIP会员 | | |
![]() |
|