一种单片机虚拟实验室的建立方法

发布者:古古斋最新更新时间:2009-09-04 来源: 现代电子技术关键字:单片机  虚拟实验室  Proteus  虚拟串口 手机看文章 扫描二维码
随时随地手机看文章

  0 引 言

  单片机的学习是一个实践性很强的过程,目前的单片机实验室基本采用硬件仿真设备搭建,受资金和场地的限制,单片机实验室配置的灵活性和完整性受到一定的限制。针对这些问题,在此提出一种建立基于个人PC和各种软件的单片机个人虚拟实验室方案。所谓“虚拟实验室”,就是将计算机上的各种虚拟仪器,按实验要求和设计原理,虚拟出与现实相同的实验系统,进而在这个系统上完成整个实验。与传统实验模式相比,虚拟实验具有比较明显的优势,例如,涉及的实验内容全面,硬件投入少,学生可自行实验,实验过程中损耗小,与工程实践最为接近等。一般的虚拟实验室仅包含单片机系统的调试,本文在此基础上又加入了与上位机的联合调试。

  在此,以使用VB通过RS 232串口控制51单片机LED的亮灭为例,介绍基于PC和软件建立单片机虚拟实验室的过程。

  1 单片机虚拟实验室的构成

  原理框图如图1所示。上位机用于编写监控界面及程序,实现对单片机系统的监控,它可以使用VB,VC,Delphi等软件实现;虚拟串口用来实现上下位机通信的软件模拟,在这里也可以使用自带通信类的LabVIEW来实现上位机软件和虚拟串口两项功能;虚拟调试一般以Proteus为平台,建立单片机系统的硬件系统;联合调试软件可为单片机系统提供软件,Proteus支持Hex,COF,D90类型文件,同时支持第三方的软件编译和调试环境,联合调试软件一般有Keil,ADS,Wave等。

单片机虚拟实验室的构成

  为了更具有代表性和一般性,该方法的上位机软件使用VB 6.O开发,虚拟串口采用Virtual Serial Ports Drivei XP 5.1;虚拟调试平台采用Proteus 6.7 SP3;联合调试软件使用Keil C51 μVision 2。

  2 系统硬件的建立

  单片机系统的硬件在Proteus中实现,主要完成硬件平台的搭建和仿真效果的观察。

  2.1 Proteus简介

  Proteus是英国Labcenter公司开发的电路分析与实物仿真软件,它能够提供丰富的测试信号用于电路测试,同时还提供Schematic Drawing,Spice仿真与PCB设计功能,可以仿真51系列、AVR,PIC,ARM等常用的MCU,并提供周边设备的仿真。Proteus的强大功能为虚拟实验室的构建提供了基础。

  2.2 硬件平台的搭建

  在这里,单片机采用AT89C52,在P1口接8个LED,单片机的P3.O,P3.1分别与串口元件COMPIM的RXD,TXD相连,COMPIM已经自带电平转换功能,就不需要MAX232元件,复位、晶振电路也不需要。硬件平台原理图如图2所示。

硬件平台原理图

  调出AT89C52属性设置窗口,为了串行通信设置方便,设置晶振Clock Frequeney为11.059 2 MHz,如图3所示,其他参数保留默认即可。打开串口元件COMPIM属性对话框,在Physical port选项选择COM4,即使用串口4,该串口是在后面使用软件虚拟出来的,其他参数设置如图4所示,其代表波特率9 600 b/s,8个数据位,无奇偶校验,1个停止位,其余选项保持默认即可。上位机中的通信设置以及单片机的软件编写都要求与该设置一致。

参数设置

  3 系统软件的建立

  系统软件的建立包括单片机系统软件和PC上位机软件的建立。

  3.1 单片机系统软件的建立

  Keil软件是目前最流行开发MCS-51系列单片机的软件。在该例中,单片机主要完成串口接收,将接收的数据送到P0口,从而实现上位机控制下位机的简单功能。该程序在。Keil软件中编写。

  串口初始化函数如下:

程序

  3.2 位机控制程序的建立

  上位机使用VB建立界面和通信程序,完成数据的发送。利用VB开发串口通信程序主要有两种方法:一是使用MSComm串口控件;二是调用Windows API函数。在实践中,使用VB串口控件实现通信的方法比调用API动态链接库的方法更加方便快捷,也减少了因编程不当导致的系统不稳定。

  建立8个checkbox数组,分别对应控制P0口的8个小灯;8个1abe1数组,分别对应8个编号;2个按钮分别为发送、退出;1个MSComm控件。在这里,使用虚拟串口COM3,串口设置与Proteus中的一致,运行如图5所示,程序如下:

程序

  声明全局变量:Dim DataOutValue As Integer DataOutValue为发送值。

  初始化程序:主要完成对串口的设置,包括选择串口,设置波特率,设置数据格式,打开串口等。

VB控制界面

  4 虚拟环境的集成

  分别建立系统的软硬件之后,还要在虚拟环境中实现软硬件的联系和上下位机的通信。

  4.1 Proteus和Keil的联合调试

  使用Proteus和Keil的联合调试,在原理图的设计阶段就可以对设计进行评估,验证所设计电路的软硬件是否达到设计要求的技术指标;还可以通过改变元器件参数使整个电路性能达到最优化,以节省设计时间与经费,提高设计效率与质量。

  Proteus可以和Keil联调设置步骤如下:

  (1)复制安装目录Proteus\MODELS下的VDM51.dll文件到Keil安装目录的\C51\BIN目录中。

  (2)修改Keil安装目录下Tools.ini文件,在C51字段加入TDRV5=BIN\VDM51.DLL("PROTEUS 6EMULATOR")并保存。在这里,不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以了。引号内的名字随意。

  (3)打开Proteus,画出相应电路,在Proteus的“Debug”菜单中选中“Use Remote Debug Monitor”。

  (4)进入Keil的Project菜单Option for Target“工程名”,在Debug选项中右栏上部的下拉菜单选中Proteus Driver,再进入Settings,PC的IP设为127.0.0.1,端口号为8000。

  (5)在Keil中进行debug,同时在Proteus中查看直观的结果。

  通过这样的设置,就可以像使用仿真器一样调试程序。

  4.2 使用虚拟串口建立上位机和下位机的通信

  PC上位机与下位机的联系,传统上是通过物理接口如串并口等完成。虚拟实验室中,由于下位机在PC中用软件模拟实现,上位机与下位机的联系与传统有所区别。这里使用虚拟串口软件Virtual Serial Ports Driver XP 5.1,其目的是用软件虚拟出VB上位机和Proteus中建立的单片机系统完成通信的串口。值得注意的是,这种通信只能在两个虚拟串口之间进行,该例子中,上位机和单片机系统各使用一个虚拟串口,从而实现通信。

  Virtual Serial Ports Driver XP 5.1界面如图6所示,左侧Physical ports代表PC机物理串口。该例子所用计算机为COM1和COM2,点击Add/Removeports中Add pair左边First,Second下拉框,分别选中COM3,COM4;然后点击Add pair按钮,就加入了虚拟串口COM3,COM4,如图左侧Virtual ports所示。这样,上位机VB程序以及Proteus中的单片机系统就可以像使用物理串口一样使用虚拟串口COM3,COM4。如前文所述, Proteus中的COMPIM元件使用虚拟串口COM4,VB中使用虚拟串口COM3。完成这些步骤,就能使用虚拟出的串口COM3,COM4。

虚拟串口软件的设置

  5 上下位机联合调试及结果

  以上步骤完成之后,启动仿真就可以实现上、下位机的联合调试。运行虚拟串口软件 (vspdXP 5.1)点击Proteus中的运行按钮,选中或取消选中VB界面中代表LED的checkbox,然后点击发送按钮,Proteus界面中对应的LED 小灯便实现亮灭。运行效果如图7所示。通过观察,该方法建立的虚拟实验室其功能得以实现。

运行效果

  6 结 语

  在此通过一个简单实例详细介绍一种虚拟实验室的建立方法,可以看出使用纯软件的方法代替传统单片机开发硬件或软硬结合的调试方法,使得单片机实验室的建立仅依赖一台电脑和若干的软件,实现了包括上位机在内的单片机系统的调试仿真。具有直观、节省成本,与实际最为接近等特点。为个人单片机的学习提供了经济、高效的实现方案,同时,使得软、硬件配置更加灵活,缩短了开发周期,节省了开发成本,避免了制版焊接等过程中的不确定因素,为单片机项目的开发提供了新的方法。

关键字:单片机  虚拟实验室  Proteus  虚拟串口 引用地址:一种单片机虚拟实验室的建立方法

上一篇:基于STC单片机的经济型步进电机控制系统
下一篇: 一种移动机器人遥操作接口系统的设计与实现

推荐阅读最新更新时间:2024-03-16 12:26

#单片机#ds18b20 单位转换 30度报警
#include reg52.h #define uchar unsigned char #define uint unsigned int sbit DSPORT=P3^7; sbit key3 = P3^2; sbit beep = P1^0; uchar flag; int tmp; float t; uint warn_d = 300; //温度上限值,温度为乘10之后的值 uchar code table ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; void
[单片机]
基于MCS-51单片机的三个存储空间及划分解析
1.前言 MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。 MCS-51单片机在物理结构上有四个存储空间 1、片内程序存储器(片内ROM) 2、片外程序存储器(片外ROM) 3、片内数据存储器(片内RAM) 4、片外数据存储器(片外RAM) 在逻辑上(即从用户的角度上)MCS-51单片机有三个存储空间 1、片内外统一编址的64K的程序存储器(ROM)地址空间(MOVC) 2、256B的片内数据存储器(片内RAM)的地址空间(MOV) 3、以及64K片外数据存储器(片外RAM)的地址空间(MOVX) 注:在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。 2.存储空间划分
[单片机]
恒流充电与放电电池测试仪(msp430单片机主控)
电路原理图如下: (1)充电电流精度测试 测试方法:输入接直流稳压电源,使 U2 = 30V,对电池进行恒流充电,按键 0.05A步进值调节电流 I10,用万用表测量实际充电电流 I1,显示电流值 I11,结果 如表1所示,可以计算出电流控制精度 1 ,显示精度 2 。满足题目基础部分要 求。 表1 充电电流控制精度测试表 I10/A 1.0 1.25 1.5 1.65 2.0 I1/A 0.993 1.247 1.505 1.655 2.008 I11/A 1.0 1.25 1.5 1.65 2.005 1 /% 0.7 0.24 0.33 0.3 0.4 2 /% 0 0 0 0 0.25 (2)充电电流变化率测试 测试
[单片机]
恒流充电与放电电池测试仪(msp430<font color='red'>单片机</font>主控)
利用小型MCU实现LED照明的色彩控制
LED用于通用照明已指日可待。LED在通用照明系统中优势很多,如寿命更长以及效率更高。然而, LED技术还面临着一些挑战。其中一个挑战就是如何产生高品质的白光。白光LED的构成包含了蓝光LED 和能将光输出移至光谱的其他波段的一种荧光粉。许多白光LED都无法产生高显色指数(Color Rendering Index,CRI),该参数用于衡量光源真实重现色彩的能力。 通过混合两种或两种以上颜色的LED光,可以获得品质更高的白光系统。在这些多色系统中,每种色源的光输出会随时间和温度而漂移。光传感器和小型单片机(MCU)可用于维持特定颜色和相关色温(Correlated Color Temperature,CCT)。在本文中,我们将进一
[电源管理]
利用小型<font color='red'>MCU</font>实现LED照明的色彩控制
89C51单片机+X25045构成的看门狗电路
采用89C51单片机和X25045组成的 看门狗电路 ,X25045硬件连接图如图1所示。X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。在看门狗定时器预置的时间内若没有总线活动,则X25045将从RESET输出一个高电平信号,经过微分电路C2、R3输出一个正脉冲,使CPU复位。图1电路中,CPU的复位信号共有3个:上电复位(C1、R2),人工复位(S、R1、R2)和Watchdog复位(C2、R3),通过或门综合后加到RESET端。C2、R3的时间常数不必太大,有数百微秒即可,因为这时CPU的振荡器已经在工作。   
[电源管理]
89C51<font color='red'>单片机</font>+X25045构成的看门狗电路
ATmega88 简介
ATmega88是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega88 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。 ATmega88 AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。 ATmega88 有如下特点:8K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K字节SRA
[单片机]
ST推出首款基于ARM Cortex-M7的STM32 F7系列微控制器
新系列微控制器缩短上市时间,以新内核为中心集成全套先进功能,打造智能化最高的 STM32 微控制器。 中国,2014年9月25日 —— 横跨多重电子应用领域、全球领先的半导体供应商、世界最大的ARM® Cortex®-M微控制器供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)宣布,旗下500余款引脚、软件兼容的STM32产品家族新增加一系列新产品。STM32 F7新系列微控制器(MCU) 内核采用ARM公司最近发布的最新、最强的ARM Cortex-M处理器ARM Cortex-M7。意法半导体的STM32 F7系列性能远超以前的高性能32位Cortex-M微控制器领军产品—
[嵌入式]
八位微控制器有哪些可以节约代码空间的代码优化技巧?
本文将介绍一些优化技术,帮助设计人员节约多达 10% 的代码空间,从而让容量有限的程序存储器支持更多新特性和补丁。 良好的操作方法 许多程序员在 32 位处理器上学习编写软件,如 Intel 的 Pentium 处理器或某种 ARM 平台。不过,嵌入式领域的软件编写需要不同的思路。在 32 位 CPU 上,存储比特位的最佳方法通常是使用 32 位变量。对 8 位处理器而言,最好的办法就是采用单字节。像增强型 8051s 等某些处理器可能提供特殊的 1 位变量。 嵌入式处理器通常会超出标准的哈佛架构将存储器分散到不同的存储器空间中,有的相互重叠,有的又是相互分离。例如,8051 中常见的存储器空间包括 CODE、XDATA、DA
[单片机]
八位<font color='red'>微控制器</font>有哪些可以节约代码空间的代码优化技巧?
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved