本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
图1中的电路是以前一个设计实例的扩展(在无内置ADC的微控制器中如何使用模拟输入),并参考了另一篇设计实例(不用外接开关晶体管如何驱动一个七段LED显示屏)介绍的技巧(参考文献1和参考文献2)。
本电路增加了一个串行连接,只需要一个双绞线对就可以向一台兼容PC发送每个测量值。串行连接采用微软的HyperTerminal作测试,其配置是:115200波特;8、N、1;无数据流控制。
简单地说,软件每次通过RA0和RB7两根线,驱动一只七段 LED 显示器。将RA0输出设为高,RB7作为输入,可激活共阳极显示器DS3。设RA0输出为低,RB7作为输入,激活共阴极显示器 DS2。用RA0作输入时,设RB7输出为高,可激活共阳极显示器DS1,而设RB7输出为低,则激活共阴极显示器DS0。当依次地激活一个显示器时,只有RB0~RB6 的一条线被置为输出,驱动一个LED段。这种设计不再限于3V或更低的 VDD,因为LED是并行反向连接,因此一个二极管的正向电压限制了另一个二极管的反向电压。使用的红色二极管显示需要1.6V。
图2是这个设计实例的一个新发展。Q1、R5和R6用作一个等
效可变电阻RX,为电容C3充电。此时不是将RX接地,而是连接到微控制器的一个I/O(例如RB0)。如果RB0 是低态输出,则第一个模拟通道激活,而测量例程计算出充电高至 66% VDD的脉冲,然后,用一个查寻表将这个时间延迟转换为一个三位数字的毫伏值。如果要扩展模拟输入的数量,可以用并行方式,连接最多七个可变电阻器电路,即每个都连接到C3和一个I/O线上(RB1 ~ RB7)。值得注意的是,I/O线连接到显示器,也激活或不激活模拟通道。当一个模拟输入通道被输出为低的一个I/O线激活时,其它线为高阻抗输入,所有其它通道不激活。同时,显示被关闭。
图1电路亦在不增添元件情况下增加了一个简单的串行连接。如果你将两条I/O线RA1和RA2作输出,连接到一个RS-232连接器的RXD(2 脚)和GND(5脚)上,则可以通过软件,复制出相对PC的RS-232端口地的正、负电压。当RA1为高,RA2为低时,RXD有相对于PC的RS-232端口地的+5V电压。当RA1为低,RA2为高时,RXD则有相对于PC RS-232 端口地的-5V 电压。
参考文献
1. Benabadji, Noureddine, “Microcontroller, JFET form low-cost, two-digit millivoltmeter,” EDN, June 22, 2006, pg 71.
2. Benabadji, Noureddine, “Ultralow-cost, two-digit counter features few components,” EDN, Aug 17, 2006, pg 69.
本文来源:EDN 作者:Noureddine Benabadji University of Sciences and Te |