手机虚拟示波器.doc

上传人:博****1 文档编号:543560342 上传时间:2023-07-09 格式:DOC 页数:9 大小:197.51KB
返回 下载 相关 举报
手机虚拟示波器.doc_第1页
第1页 / 共9页
手机虚拟示波器.doc_第2页
第2页 / 共9页
手机虚拟示波器.doc_第3页
第3页 / 共9页
手机虚拟示波器.doc_第4页
第4页 / 共9页
手机虚拟示波器.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《手机虚拟示波器.doc》由会员分享,可在线阅读,更多相关《手机虚拟示波器.doc(9页珍藏版)》请在金锄头文库上搜索。

1、手机虚拟示波器0 引言在电气检修工作中,有时要用到示波器查看各种电压波形,普通的示波器体积大、笨重,最重要的是没有电气隔离,操作时要注意不能触电。随着单片机等电子技术的发展,以及智能手机的普及,设计一个能和手机配套使用的虚拟示波器,成本低,携带使用都方便。1 硬件设计电路包括信号预处理、单片机、蓝牙串口模块和电源4部分,电路原理图见图1。图1:蓝牙虚拟示波器电路原理图1.1 信号预处理单片机AD转换电压范围是03.3V,为了能测量交流信号,把输入信号地端接RP3调节出的1.65V,这样就能测到-1.65+1.65V的电压。实际工作中电工测量电压范围从几伏到几百伏,为此加入了电阻降压网络R1、R

2、2、R4、R5、RP1和RP2,这样就能测到60V的电压,再加上个有x10挡(放大10倍)的示波器探头,最大可测到600V电压。LM358是双运放,接成电压跟随器方式,主要作用是提高输入阻抗,使示波器标入阻抗是1M,否则示波器探头放到x10挡时,测量数值会有偏差。运放还能起到当输入信号过大时,限制输入到单片机的信号幅度,保护单片机的作用。共有2个信号输入端,组成双踪示波器,可以比较2路信号的相位关系。1.2 单片机选用了飞利浦的单片机P89LPC938,是基于80C51内核的低功耗FLASH单片机,其内部有7.373MHz振荡器、复位电路、8通道10位AD转换器,8K字节Flash程序存储器、

3、768字节RAM数据存储器,这使得外围电路很简洁。为了提高AD转换速度和提高通信波特率的准确程度,使用了外部12MHz晶振。单片机的P2.0(AD07)、P2.1(AD06)接双运放LM358的电压输出,单片机的P1.0(TXD)、P1.1(RXD)接蓝牙模块的串口。1.3 蓝牙串口模块蓝牙串口模块主要参数:兼容蓝牙V2.0 规范、CLASS 2 标准,传输距离最大10M,支持SPP 服务(串口)。功能多的蓝牙模块可更改主从设置,默认为从设备,可以和电脑或手机蓝牙连接,还可以更改通信波特率,默认是9600bps,可更改为较大的波特率,如115200bps,加快通信速度。默认配对密码是1234,

4、每次搜索蓝牙模块前先给蓝牙模块上电再搜索,再次搜索时要先把蓝牙模块重新上电,否则可能搜索不到。1.4 电源电源选用电池,携带方便,避免外接电源对测量数据的干扰。经三端稳压变为3.3V给单片机和蓝牙模块供电。2 单片机软件编程2.1 程序流程单片机软件用Keil C51编写,主要流程是等待手机发来测试命令,收到命令后根据命令采集数据并存储到内部RAM,采集完一组数据后一起发送给手机,这样一个测试周期完成,等待下一个测试命令,流程图见图2。手机发出测试命令是4个字节,首字节是头标志“0xDB”,第2个字节代表量程选择,如果量程命令是非零字节,表示量程为15V,如果量程命令是零,表示量程为60V。第

5、3、4字节是采样周期数据,控制采样频率,采样周期范围为50us10ms,最高采样频率20kHz。每通道240个数据,共采集480个数据。2.2 数字变量程单片机P89LPC938模数转换精度是10位,手机显示用8位就可以了,利用2位的差别可以实现4倍的数字变量程功能。硬件量程为60V,对应转换后的数字是01023,除以4后的范围是0255,输入信号在15V范围内时,转换后的数字是384639,减去384后的范围还是0255。这样就实现了数字变量程的功能。有了2种量程选择,再配合示波器表笔上带的硬件变量程,使用的时候有4种量程选择15V、60V、150V和600V,能够满足常用的电气设备测量需要

6、。3 手机软件编程3.1 开发环境配置首先安装J2SE即JDK(jdk-6u22-windows-i586-p.exe),安装完成后,在“我的电脑属性高级”中,配置java环境变量,设置3项属性,JAVA_HOME,PATH,CLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”, JAVA_HOME指明JDK安装路径,PATH使得系统可以在任何路径下识别java命令,设为%JAVA_HOME%bin;%JAVA_HOME%jrebin,CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为.;%JAVA_HOME

7、%lib;%JAVA_HOME%libtools.jar。接着安装WTK(sun_java_wireless_toolkit-2_5_2-ml-windows) ,默认路径是C:WTK25。WTK 的全称是Sun J2ME Wireless Toolkit ,是Sun的无线开发工具包。以上软件均可以在sun的官方网站免费下载。最后安装Eclipse作为开发环境,J2ME开发包工具可以被绑定在这些集成开发环境中,进一步提高开发效率。本设计用的是Eclipse3.6.2和EclipseMe1.7.9版本的软件。3.2 蓝牙连接 手机蓝牙和蓝牙串口模块之间的连接,是程序设计的重点,也是难点。这个连接

8、过程就是创建一个蓝牙客户端,分查找设备、查找服务、获得连接URL和建立连接4个主要步骤。具体代码如下:/查找蓝牙设备public void MyInquiry() try /获得本地设备 LocalDevice localDevice = LocalDevice.getLocalDevice(); /获得发现代理 discoveryAgent = localDevice.getDiscoveryAgent(); /开始查找设备 discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this); catch(Exception e) e.printSt

9、ackTrace(); / DiscoveryListener接口,记录已找到蓝牙设备并显示public void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass cod) try sel.append(remoteDevice.getFriendlyName(true),null); catch(Exception e) sel.append(remoteDevice.getBluetoothAddress(),null); finally remoteDevices.addElement(remoteDevice); / Di

10、scoveryListener接口,查找设备完成public void inquiryCompleted(int discType) if (remoteDevices.size() 0) /加入其它代码,如查找服务 else /查找服务public void MyServices() try RemoteDevice remoteDevice = (RemoteDevice)remoteDevices.elementAt(sel.getSelectedIndex(); discoveryAgent.searchServices(attrSet, uuidSet, remoteDevice ,

11、 this); catch(Exception e) e.printStackTrace(); / DiscoveryListener接口,服务查找成功,得到连接ULRpublic void servicesDiscovered(int transID, ServiceRecord servRecord) DataElement serviceNameElement = servRecordsel.getSelectedIndex().getAttributeValue(0x0100); String _serviceName = (String)serviceNameElement.getV

12、alue(); String serviceName = _serviceName.trim(); btConnectionURL = servRecordsel.getSelectedIndex().getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);/DiscoveryListener接口,查找服务完成public void serviceSearchCompleted(int transID, int respCode) if (respCode = DiscoveryListener.SERVICE_SEARC

13、H_COMPLETED) else /打开连接,建立输入、输出通道StreamConnection connection = (StreamConnection)Connector.open(btConnectionURL); 经过以上步骤,手机和蓝牙串口模块建立起了连接,用read、write方法可以互相通信,传输数据了。3.3 波形显示 测试程序用的是三星S3370手机,屏幕分辨率为320x240,屏幕上、下侧用于显示手机状态和按键信息,实际可编程使用的分辨率为200x240,上部170x240部分显示波形,下部30x240显示量程、周期选择菜单。按示波器的习惯把显示波形的界面画出格子,通

14、过查格子可以大致判断波形的幅值和周期。4 结束语制作了测试用电路板见图3,预留了外接电源插座,使用的是外接4节1.5V电池。图3:测试用电路板正反面图上电后不接信号输入,打开手机蓝牙,运行手机上的软件,测试的结果应该显示直线,且直线在中间位置,否则调节RP3使测试直线显示到中间位置,然后2路输入同样的10V直流电压信号,调节RP1、RP2,使直线显示到正确位置,调整完毕。对一个可控硅调节控制电路测试,手机显示见图4。量程20V表示纵向每格为20V,周期6ms表示横向每格6ms。2个按键,每按下“测量”1次,测量1次并显示波形,按“退出”则结束程序的运行。按左右按钮选择量程或周期,按上下则调整量程或周期。经测试,达到了预期设计目的。图4:测试时手机显示的波形

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号