无线电电子与电气工程百科全书 LPT端口的另一个生命。 第3部分.无线电电子电气工程百科全书 你们每个人(因为您正在阅读本文)肯定在生活中遇到过软盘、CD 等。 磁盘驱动器、打印机、扫描仪,以及通常包含步进电机的设备。 现在让我们打开它。 下图是我在网上找到的一张图。 让作者原谅我,我没有给出它的链接(我只是不记得在哪里找到它),但如果他看到这篇文章,他会认出他的方案。 事实上,一切都是公平的,一切都有效。 你可以设计出一堆各种各样的方案,但现在对我们来说重要的不是电路的工作原理,而是向发动机提供控制信号的原理。 下图展示了这一点。 脉冲交替施加到每个电机绕组,有时两个绕组上同时出现高信号电平。 如果您查看图表左侧并注意到 D0-D3,您将立即明白我的意思。 这就是我们最终得到的,当然,还有一台带有 LPT 端口的计算机。 您必须自己为发动机以及每种类型的发动机提供动力。 根据该图,我们将 3、2、6、4、12、8、9、1 到 &H378 按顺序输入到输入 A、B、C、D。 从哪里开始并不重要,问题是保持顺序并按“圈”重复或根据需要重复。 如果改变顺序的方向(从后到前),电机的旋转方向将相反。 该序列指示电机采取半步(这取决于电机的设计),对于全步控制,序列为 3、6、12、9。 然后计算器上的七段 LED 指示灯引起了我的注意。 决定是立刻做出的。 以下是此类指标的工作原理。 为了简单起见,我在 LED 上画了一个 4 位数字(我的指示器中有 12 个)七段指示器。 我们向位 1-4 提供 0,并向各段提供 + 电源(每种类型的指示器都有自己的电源参数)。 所有段都是组合在一起的,因此您需要点亮这样一个具有动态指示的指示灯。 任何曾经组装过电子表的人都知道它是什么,但为了以防万一,我们将更详细地考虑它。 步骤1.对第一个数字施加低信号电平,并将我们想要看到的数字的代码设置在段上(高电平)。 步骤2.对第二个数字施加低信号电平,并将我们想要看到的数字的代码设置在段上(高电平)。 步骤3.对第三个数字施加低信号电平,并将我们想要看到的数字的代码设置在段上(高电平)。 步骤4.对第四个数字施加低信号电平,并将我们想要看到的数字的代码设置在段上(高电平)。 再次执行新的步骤 1、2 等。 这一切发生得非常快,所以我们的眼睛没有时间看到闪烁的数字。 我们使用指标并将位 1、2、3、4 置于 STROBE(1)、AUTO(14)、INIT(16)、SELECT IN(17) 上。 这将是数字的控制,我们将段 A、B、C、D、E、F、G 放在 D0、D1、D2、D3、D4、D5、D6 上。 要在第一个数字处点火,例如 1(B、C 段),您需要将数字 378 应用于地址 &H6,将 37 应用于地址 &H197A。 这是完成的程序 - 一个电子时钟。 表单上有 2 个按钮。 第一个启动时钟,第二个停止。 参数 Z = 0.004 是根据经验选择的。 如果您不设置延迟,那么数字会合并,一切都发生得太快,LED 没有时间熄灭。 选项显式 声明一个用于处理 LPT 端口地址的库 私有声明函数 DlPortReadPortUchar Lib“dlportio.dll”(ByVal 端口等长)作为字节 私有声明子 DlPortWritePortUchar Lib“dlportio.dll”(ByVal 端口为长,ByVal 值为字节) 将 I, J 调暗为整数 将 Z 调暗为单曲 将 A 调暗为字符串 Private Sub Command1_Click() J = 1 '循环分辨率 Z = 0.004' 延迟 当 J <> 0 时执行 事件 A = Mid$(Time$, 5, 1) '读取分钟单位 DlPortWritePortUchar &H37A, 197'让第一位点亮 writetime '显示分钟单位 A = Mid$(Time$, 4, 1) '读几十分钟 DlPortWritePortUchar &H37A, 198'让第二位点亮 writetime '显示几十分钟 A = Mid$(Time$, 2, 1) '读取小时单位 DlPortWritePortUchar &H37A, 192 '让第三位点亮 writetime '显示小时单位 A = Mid$(Time$, 1, 1) '读了几十个小时 DlPortWritePortUchar &H37A, 204 '允许第四位点亮 writetime '显示几十小时 如果 J = 0 则退出 Do 循环 DlPortWritePortUchar &H378, 0 END SUB 公共子写入时间() 选择案例值(A) 大小写 = 0 I = 63 '代码 0 为七段显示 大小写 = 1 I = 6 '代码 1 为七段指示器 大小写 = 2 I = 91 '代码 2 为七段显示 大小写 = 3 I = 79 '代码 3 为七段显示 大小写 = 4 I = 102 ' 代码 4 用于七段显示 大小写 = 5 I = 109 ' 代码 5 用于七段显示 大小写 = 6 I = 125 ' 代码 6 用于七段显示 大小写 = 7 I = 7 '代码 7 为七段指示器 大小写 = 8 I = 255 ' 代码 8 用于七段显示 大小写 = 9 I = 239 ' 代码 9 用于七段显示 最终选择 DlPortWritePortUchar &H378,我为七段指示器编写代码 暂停 (Z) '延迟 END SUB Private Sub Command2_Click() Ĵ = 0 DlPortWritePortUchar &H378, 0 END SUB '延迟程序。 调用格式:暂停(秒数) 公共子暂停(单值) 昏暗的开始,结束 开始 = 定时器 Do While Timer < 开始 + 值 事件 循环 完成=计时器 END SUB
这就是它在现实生活中的运作方式。 我不会描述荧光指示器的连接,但说实话我尝试过 - 它有效。 我向放电栅极施加正电位,将灯丝接地,并通过 D1-D0 对各段施加 6。 一切都在发光。 我还没有尝试过 LCD 指示器,我需要弄清楚从哪里获得 64 Hz。 如果有人连接,我将很高兴收到您的图表。 顺便说一下,一个有趣的想法 - 您可以在 LED 上制作一条运行线来显示字母数字信息。 总的来说,我再次相信这个端口是创造力的绝佳工具。 这里还有一个关于电动机的小话题。 并不是每个人都有步进电机,而且它并不总是方便和必要的。 例如,让我们尝试使用带有变速箱的简单电机来精确地在水平面上移动某个设备。 让它是一支铅笔或毡尖笔。 发动机连接到减速齿轮,减速齿轮又连接到螺纹轴。 带有金属扇区(光学元件的接触垫或槽)的圆盘被刚性地固定在螺纹轴上,例如,
или 这不再重要,重要的是,知道螺距,例如 1 毫米的螺距,我们有 4 个扇区,这意味着磁盘旋转一整圈,托架将向前移动 1 毫米,四分之一圈则向前移动 0,25 毫米。 扇区的数量可以是任意的——只要您想要多少。 但我们现在得到了什么?
前进。 发动机控制程序例如根据这样的算法工作。
控制通过 D0-D7 总线和/或通过 &H37A 端口,来自执行器(传感器)的命令发送至 &H379 和/或 &H378。 一般来说,那就是你的想象力和可能性。 同样的原理也适用于在垂直平面上移动托架。 这里有一台可以在两个方向上运动的机器。 那些。 在家建造一台数控机床(计算机数控)是非常真实的。 作者:阿列克谢·克柳什尼科夫,伊万诺沃; 出版:cxem.net 查看其他文章 部分 电脑. 读和写 有帮助 对这篇文章的评论. 科技、新电子最新动态: 用于触摸仿真的人造革
15.04.2024 Petgugu全球猫砂
15.04.2024 体贴男人的魅力
14.04.2024
其他有趣的新闻: ▪ 土屋
免费技术图书馆的有趣材料: ▪ 文章 第一次环球航行的参与者意大利皮加费塔在地理大发现史上扮演了什么角色? 详细解答 ▪ 文章 油品供应企业从事洗罐工作的员工。 劳动保护标准说明 ▪ 文章垂直四分之一波长天线的计算。 无线电电子电气工程百科全书 ▪ 文章 带计时器的电源适配器,220/9 伏 250 毫安。 无线电电子电气工程百科全书 本页所有语言 www.diagram.com.ua |