找回密码
 注册
Simdroid-非首页
查看: 103|回复: 1

是不是有这样一个东西?

[复制链接]
发表于 2007-6-8 23:14:02 | 显示全部楼层 |阅读模式 来自 福建漳州
是不是有这样一个东西,我能直接用家用电脑控制一些简单的设备,
比如说家用电器?
发表于 2007-6-22 18:08:30 | 显示全部楼层 来自 湖南湘潭
Simdroid开发平台
有的,叫做智能家居.需要单片机等硬件和一些相关的编程软件知识.

利用编程电脑控制一个电器的开断
相关知识:
并行接口,简称并口,也就是LPT接口,是采用并行通信协议的扩展接口。并口的数据传输率比串口快8倍,标准并口的数据传输率为1Mbps,一般用来连接打印机、扫描仪等。所以并口又被称为打印口。
并口是25针的,与25针串口不同的是,并口是25个孔,所以常称为“母头”,而像串口就常称为“公头”。并口的针脚定义如下:
1 STROBE 选通
2-9 DATA0-DATA7 数据0-7
10 ACKNLG 确认
11 BUSY 忙
12 PE 缺纸
13 SLCT 选择
14 AUTO FEED 自动换行
15 ERROR 错误
16 INIT 初始化
17 SLCT IN 选择输入\
18-25 GND 地线
并行口信号:
(0V)表示逻辑0,用高电平(5V)表示逻辑1(电压都是相对于18-25脚上的接地电势而言)。
并行口硬件:并口行现在通常被集成在系统板上,25针插口上的信号可通过数据锁存器、打印状态和打印
机控制三个寄存器(也就是三个输入/输出端口)进行程序设计和控制。计算机系统中通常有多个并行端口,它们在输入/输出系统中的地址。需要注意的是这些地址是由系统 BIOS 给出的,并不是硬件的物理 地址,所以可以通过设置 BIOS 来改变当前端口的配置,如果地址改变在程序中也必须改变。

感性实验:
并口可以输出5V的直流电压,我们利用它来做个简单的电路来控制一个家用电器的电路。我们主要利用并口的2-9脚,
1、先找一条并口电缆,看电缆插头的形式,找一个与之配套的25针插座,电脑配件商店有卖(0.7元左右/只),
2、找个发光二极管(注意正负级)把正及接到2脚,负及接到25脚,
3、接好后插到电脑的并口上
4、打开电脑
在开机自检的过程中,你会看到二极管会发亮一下,然后熄灭,这个说明你可以用QB来对并口进行编程了!
在进入系统以后(注意:必须是win98或者更低的操作系统,不能使用WinXP、2000等NT内核的操作系统,否则无法进行端口读写)
5、启动QBASIC
6、输入OUT &h378,&HFF 然后运行。(并口的地址一般是378H,如果不一样请在BIOS里面改一下)这时,发光二极管就会长亮,输入OUT &h378,0,发光二极管就会熄灭,至此,软件实验的准备工作已经完成,你已经能控制LPT口了。

实用电路:
LTP的输出电流有几百毫安,可以直接驱动小功率继电器,大家可以到电子市场上买一个5v的小型继电器,替换掉发光二极管(无正负及)然后把继电器当一个小开关来使用,用程序来控制继电器的分合,
如果不能买到这种继电器,可以做一个电子开关,元件:光电耦合器一只,双向可控硅一只,电阻N只,把光偶的前及替换发光二极管,后级与可控硅、电阻连接,最后连接家用电器,和上面一样,可以用程序控制这个电器了。
光藕的电气隔离性能很好,可以达到2500v。


程序方面
&hff 是把所有数据口都置高电平,发送的数据每个位对应每个脚,如果是2进制大家就容易理解了 ,如果只想单独控制第3脚就发送二进制0000 0010....转成10进制就是2
如果要获得当前电路的状态(通或者是断),可以用inp来读端口,比如读如数据是3,转成2进制是0000 0011 那么说明2 和 3是通

如果要加入智能时间控制就用QB写入下面代码
TIME可以返回时间
比如
PRINT "当前时间";TIME$

这样就很简单了
当 TIME$=下午5点, 向端口发送5脚为1
随便一个,当然这个是用不成的,主要表达一个意思!
IF TEME¥=“17:00” THEN 。。。。。

如何控制任意的脚
每个脚的对应关系是这样
有8个脚,就是8个二进制的位
用1代表接通 用0代表断开

形象一点
如果你接了8个发光二极管
分别是D1 、D2。。。。。D8

注意:在这里1代表灯亮,0代表灯灭
如果D1亮 就是0000 0001 =十进制的1
    D2亮 就是0000 0010 =   2
  3       0000 0100 =   4
  4       0000 1000 =   8
  5       0001 0000 =        16

。。。。。

依次类推
用win自带的计数器可以算一下,或者自己写个程序

实际上这个就是10进制与2进制的转换,可以看看相关书籍

如果我想几个灯同时亮怎么办呢 比如,我想亮D1 D2
  
二进制就是00000011   转换成10进制就=3

想亮D1 D2 D3 D4

换成2进制就是 00001111
在程序里转成10进制就是15

在电脑里用16进制比10进制要方便得很多
比如00001111就是等于F
qbasic中的out &h378 xxxx 这个&h378就是16进制,在qb中凡是带&H的就是16进制数
由这8位就可以得到256种组合方式
就是16进制的0到FF这个范围
还有将上面的端口组合再配上外部继电器组合群就能形成非常智能的控制系统。
转自http://bbs.qq.com/cgi-bin/bbs/sh ... &messageid=9125
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2026-1-6 10:30 , Processed in 0.024105 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表