用NI的数据采集卡实现简单电子测试之6——数字I/O及测试平台
本文从本人的163博客搬迁至此。
前面几个例子介绍了NI数据采集卡的模拟输入和输出功能,本例则集中介绍USB-6009的数字输入输出功能。本例包括基本数字IO电路及在LabVIEW中控制USB-6009的数字IO的方法。作为"用NI的数据采集卡实现简单电子测试"系列的结束,本文最后还介绍了本系列博文的实验板/平台。
一、数字I/O电路
1、数字输入电路
为了形象的展示I/O口的输入功能,使用了图1a所示的电路,其中的DIP_SW是四位拨码开关(又称DIP开关或平拨开关),P1.0~P1.3被直接连接到USB-6009的数字输入端口。

图1a 数字输入电路图 图1b四位拨码开关
四位拨码开关外形如图1b所示,向上拨动则开关导通,向下拨动则开关断开。为使开关向上拨时输出高电平,采用了图1a所示的电阻下拉电路。值得注意的是,如本系列第一篇所述,USB-6009的I/O口在即使在输入状态下也具有4.7K欧姆的上拉电阻,为使拨动开关断开时获得低电平输出,电路采用了1K欧姆的下拉电阻——与普通单片机电路不同。
2、数字输出电路
数字I/O的输出功能,可由数字输出I/O连接的LED的亮或灭得到展示。但当USB-6009的I/O口被配置为输出功能时,也只能提供4.7K欧姆的上拉——如果只用于点亮一只普通的LED灯则不够明亮。如果反过来用USB-6009的灌电流来电量LED,则与学生"高电平亮,低电平灭"的思维习惯相左。因此我采用了图2所示的LED驱动电路。

图2 数字输出电路
二、测试程序
1、数字输入程序
数字输入程序框图如下图所示。

图3 数字输入程序框图
输入的二进制值时以数组的形式从读取函数中输出的,采用"数组索引"函数将其分解为单个二进制值,最后再分别送到前面板显示控件,如下图所示。

图4 数字输入程序运行图
2、数字输出程序
数字输出控制程序框图如下图所示。

图5 数字输出控制程序
其中"P0.0控制"、"P0.1控制"……"P0.7控制"为八个二进制开关输入控件。它们全部被一个事件结构所控制,只在波动二进制开关输入控件数组变化时,才被统一置位和清零。运行时前面板如下图所示。

图6 数字输出控制程序运行效果
三、本系列的实验平台
为完成上述基于数据采集卡的测试实验,我设计了一块面积为78×68mm的双层实验电路板,PCB图和实物图如下所示。

图7 实验平台PCB图

用NI的数据采集卡实现简单电子测试之6——数字I/O及测试平台的更多相关文章
- 用NI的数据采集卡实现简单电子测试之1——USB-6009简介
本文从本人的163博客搬迁至此. 几年以来,一直担任学校“虚拟仪器”课程教师.以前上课都以介绍LabVIEW编程为主,硬件实验一直没有开展.这次借“西部高校实力提升工程”的机会,学院采购了一批NI的数 ...
- 用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性曲线(面)图
本文从本人的163博客搬迁至此. 想设计几个实验,既能展示NI的LabVIEW和数据采集卡的功能特点,又能够让普通电类专业本科学生可以理解,自然首先想到了<电子技术基础>课程的内容.第一个 ...
- 用NI的数据采集卡实现简单电子测试之5——压控振荡器的测试
本文从本人的163博客搬迁至此. 为了展示连续信号采集的方法,以其外部触发采集功能.我用运算放大器实现了一个最简单的低频压控振荡器(VCO),作为USB-6009采集的信号源.在LabVIEW下编写的 ...
- 用NI的数据采集卡实现简单电子测试之4——半导体温度传感器
本文从本人的163博客搬迁至此. 为了展示NImax(Measurement & Automation explorer)的强大配置功能,做了一个半导体温度传感器测试的示例. 一.半导体温度传 ...
- 用NI的数据采集卡实现简单电子测试之3——绘制二极管V-I特性曲线图
本文从本人的163博客搬迁至此. 接下来用USB-6009和LabVIEW实现对二极管最重要的特性曲线“V-I特性曲线”的测试和绘制. 一.什么是二极管V-I特性曲线 康华光版的<电子技术 ...
- 网易郑栋:数据采集与分析的那些事——从数据埋点到AB测试
本文由 网易云发布. 4月8日晚,DTalk邀请到了网易互联网分析产品.可视化 BI 产品的负责人—郑栋老师,进行了一次关于<网易郑栋:数据采集与分析的那些事第一弹: 数据篇>的主题分享 ...
- 使用JMeter进行一次简单的带json数据的post请求测试
使用JMeter进行一次简单的带json数据的post请求测试 原文:https://www.cnblogs.com/summer-mm/p/7717812.html 1.启动jmeter:在bin下 ...
- 【转】linux设备驱动之MMC SD卡——核心层简单分析
原文网址:http://blog.chinaunix.net/uid-28685940-id-3889878.html /*************************************** ...
- python3 练手实例5 做一个简单电子时钟
import time,sys,os while(1): t = time.strftime('%Y-%m-%d\n%H:%M:%S',time.localtime(time.time())) pri ...
随机推荐
- 【个人经历】记自己的第一次GitHub开源代码共享经历
题记: 自己做程序员快三年有余了,感觉自己和刚入职相比确实有了不少进步,当然三年要是不进步那不就傻了吗,有时候我也在想,我在这三年里留下了什么,当然也不是说有多么高尚的想法,就是以后对别人介绍自己的时 ...
- 记录下使用iis7代理node.js写的网站程序
昨天晚上一个学弟的紧急求救,说了自己接的单子做了一个网站,使用了自己熟悉的技术——node.js+mongdb,但当看到部署环境惊呆了,是 windows+sqlserver.这些都不是关键,关键是服 ...
- 转载:http://www.cnblogs.com/double-K/p/6926367.html
sql专家感悟:不可说的感悟-——十年老技术转型(一) http://www.cnblogs.com/double-K/p/6926367.html
- ExpressRoute 线路预配工作流和线路状态
本页从较高层面引导你完成服务预配和路由配置工作流. 下图和相应的步骤说明了预配端到端 ExpressRoute 线路所要执行的任务. 使用 PowerShell 配置 ExpressRoute 线路. ...
- [域|Domain] The trust relationship between this workstation and the primary domain failed 此工作站和主域间的信任关系失败
PS> $cred = Get-Credential domain.sample.com;Reset-ComputerMachinePassword -Credential $cred -Ser ...
- MySQL学习分享--Thread pool实现
基于<MySQL学习分享--Thread pool>对Thread pool架构设计的详细了解,本文主要对Thread pool的实现进行分析,并根据Mariadb和Percona提供的开 ...
- Linux 系统的/etc目录
/etc目录下的重要文件 /etc/sysconfig/network 指定服务器上的网络配置信息 /etc/rc.d/init.d/network 网络配置脚本信息 网络配置脚本,开机通过脚本文件来 ...
- 铁乐学python_Day42_线程-信号量事件条件
铁乐学python_Day42_线程-信号量事件条件 线程中的信号量 同进程的一样,Semaphore管理一个内置的计数器, 每当调用acquire()时内置计数器-1:调用release() 时内置 ...
- 安全紧急预警-防范新型 Sigrun 勒索病毒
近日,互联网上出现一种 Sigrun 勒索病毒,其通过垃 圾邮件.网站捆绑软件等方式进行传播.该病毒一旦植入到 用户的服务器,将把系统文件加密为.sigrun 的文件,进而 向受害者勒索虚拟货币.该新 ...
- 【Alpha】Daily Scrum Meeting——blog2
团队成员 吴吉键 201421122007(组长) 魏修祺 201421122008 孙劲林 201421122022 1. 会议当天照片 忘记拍了!(没有拍照片的习惯,没有第四人拍照) 2. 每个人 ...