基于KEIL-AGSI接口的单片机虚拟实验室构建

来源 :城市建设理论研究 | 被引量 : 0次 | 上传用户:shuiqianzeqing
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   摘要:文章提出了一种基于uVision KEIL的AGSI接口,利用VC++编写动态链接库,模拟单片机外围设备,以实现单片机虚拟实验室的建设方案,从而实验、实训课题在虚拟平台中实现,有效解决了资金和设备维护问题,并增强了学生自主学习单片机的便利性和时效性。
   关键词:AGSI;仿真实验室;单片机;动态链接库
  
   1. 引言
   目前,单片机因其功能强且可自定义,价格低,可靠性高,抗干扰能力强,使用方便灵活,通用性强,在工控、智能仪表、通信系统、信号处理、智能家电等领域都得到了广泛的应用,学习者逐年增加。作者利用计算机软件的仿真技术,在KEIL的AGSI接口基础上,开发DLL库,构建单片机虚拟实验室,针对高职院校单片机教学,成功的解决了资金的限制,单片机设备更新快,学生自主学习时硬件缺乏等许多实际的问题和困难。
   2. 解决方案
   为了解决传统单片机实验室存在的问题,并为学生自主学习提供更大的便利。基于AGSI接口利用VC++自行开发动态链接库,采用纯软件的方法仿真按钮、LED、数码管、LCD、信号发生器以及其他自定义外设,无缝链接至uVision,实现方便的外设软件仿真和直观的界面问题。
   2.1 仿真库的开发。下面将以学生学习时常用的跑马灯实训题目为例,开发直观的虚拟外设,介绍如何利用AGSI接口开发动态链接库。
   (1)启动MS Visual C++,利用MFC AppWizard(dll)新建Experiment工程。注意使用MFC的静态链接,否则无法正常工作。
   (2)在Experiment工程中添加头文件AGSI.h,增加AGSI的接口函数原型,在Experiment.h中添加SFR(特殊功能寄存器)、VTR(虚拟寄存器)的定义和接口函数原型。
   (3)在Experiment.cpp文件中添加外设初始化代码,包括AGSI的建立(GetFunctionPointers),外设菜单入口及其对应对话框的声明(DefineAllMenuEntries),和SFR(DefineAllSFR),VTR(DefineAllVTREG),監视器(DefineAllWatches)和中断(DefineAllInterrupts)的声明。编写外设复位代码(ResetPripheral),上述的所有函数都通过AgsiEntry()函数调用,该函数需要在DLL中导出,定义如下:extern "C" DWORD AGSIEXPORT AgsiEntry (DWORD , void *)。
   (4)在工程中添加一个非模态对话框,在对话框定义时产生的源文件中添加PeriDisp、PeriUpdate、PeriKill三个函数,分别用来显示对话框,更新显示内容和关闭对话框。同时添加两个宏用于菜单定义AGSIMENU和对话框属性定义AGSIDLGD。
   (5)在对话框类中添加Update()函数,用于更新显示,该函数在外设状态改变时被自动调用便于及时反映外设状态。
   (6)在Update()函数,编写人机界面,利用Agsi.ReadSFR()函数读取P1口的状态,绘制8个LED灯,用于仿真P1口状态。
   (7)添加4个按钮,用于仿真P3.4~P3.7四个管脚的按键动作。编写按钮的处理函数如下:利用Agsi.WriteSFR(P3,0x00,0x10)对P3.4口进行清“0”操作,然后调用AGSI的CreateTimer函数将回调函数BtnP34与时间进行关联 Timer4=Agsi.CreateTimer(BtnP34),最后利用SetTimer函数定时100ms,Agsi.SetTimer(Timer4,1000),这样回调函数BtnP34将在1S以后被调用,在BtnP34函数中调用WriterSFR对P3.4口进行置“1”操作,模拟按键P3.4的动作。其他P3.5等三个管脚的动作仿照P3.4管脚实现,P3.4按键动作时序与VC++程序间关系如图1所示。
   (8)编译链接生成动态链接库Experiment.dll。
  
  图1 P3.4仿真按键时序的实现方法
   2.2 仿真库的使用
   (1)将编译生成的Experiment.dll文件拷贝到KEIL程序所在的目录C51BIN文件夹中。
   (2)在uVision3的Options for Target的Debug选项页中,选择Use Simulator,在Dialog DLL一栏的Parameter项中写入-dExperimen,为后续进行仿真单片机程序做准备。
   (3)编写一个跑马灯的单片机测试程序,P1.0~P1.7所接8个LED灯,循环点亮,间隔周期为1S,按键P3.4控制跑马灯的启停。编译通过后,启动Debug Session后,IDE将自动装载8051的仿真动态链接库S8051.DLL和我们所设计的仿真动态链接库Experiment.DLL。在Peripherals的下拉菜单中可以看到“单片机虚拟实验平台1.0”,点击后可进入实验平台的选择界面,点击“实验1”按钮可进入图2所示跑马灯仿真界面。
  图2 跑马灯仿真运行界面
   (4)开始仿真时,点击P3.4按键后,8个LED灯以1S为周期循环左移点亮,再次点击P3.4按键后,LED灯停止循环,停留在当前状态。图3为LED的仿真界面。
   上述通过动态链接库的编写,实现了简单跑马灯电路的仿真工作,为高职学生学习单片机提供了直观形象的仿真界面,并为自主学习单片机,调试程序工作时提供了很大的便利。
  图3LED显示实验仿真界面
   3. 结论
   本文介绍的利用AGSI接口编写动态链接库,仿真单片机外围设备的方法,其设计思想具有一定的普遍性,不光可以仿真51系列单片机的内部资源,也可以仿真其外设设备,而且也可以仿真其他KEIL软件支持的单片机。
  
  参考文献
  [1]鲍小南.单片微型计算机原理及应用.浙江大学出版社,2007
  注:文章内所有公式及图表请用PDF形式查看。
其他文献
对项目建设而言,工程成本的控制需要从建设期的决策阶段、设计阶段、施工阶段全过程来进行控制。在做任何项目时,都期望该项目利益的最大化,而主体结构工程地下室及车库外墙竖
在我国建筑工程行业的现代化管理工作中,工程预结算是工程造价管理工作的重点内容之一,本文根据本人多年工作实践对当前工程预算存在的问题展开探讨。
[摘要]本文基于道路桥梁工程施工管理重要性探讨了其工程建设现状及科学管理实践策略,对提升道路桥梁施工建设水平,完善施工管理效果、创设显著经济效益有重要的实践意义。  [关键字]道路桥梁;工程;施工管理  前言  道路桥梁工程担负着畅通交通运输秩序,强化经济交流、便利人们出行的重要职能,一旦其工程施工建设质量出现问题势必会中断交通运输事业,造成严重的经济损失。由此可见道路桥梁工程施工管理单位承担着重
摘要:建筑工程的质量管理对于建筑工程尤为重要,因为质量管理得好,会直接影响到建筑的整体质量,最终也就会影响到整个工程的经济效益。文章首先分析了工程质量问题存在的问题,之后详尽分析了加强建筑工程质量的措施。  关键词:建筑工程 质量监控 工程管理  在科学技术日新月异和经济建设高度发展的今天,建筑工程的质量关系到国家经济发展和人民生命财产安全。在建筑施工过程中,任何一个环节、任何一个部位出现问题,都
摘要:介绍了海门电厂一期4×1036工程1号、2号机组和3号、4号机组烟囱的防腐方案、施工特点及造价对比,为其它脱硫机组烟囱防腐选型提供参考。  关键词:烟气海水脱硫;烟囱防腐;钢内筒  海门电厂一期4×1036MW工程超超临界燃煤发电机组采用海水脱硫工艺,同步安装脱硝装置。1号、2号机组设置GGH,3号、4号机组暂未上GGH系统(已预留空间并考虑设备荷载)。不设GGH的情况下,进入烟囱的烟气温度
本文通过对工程量清单计价模式下业主在造价管理方面所存在的各种风险因素的分析,提出针对各种风险应采取的防范措施。从而保证业主有效地控制造价,节约建设资金。
摘要:党的十六届五中全会提出要按照“生产发展、生活宽裕、乡风文明、村容整洁、管理民主”的要求建设社会主义新农村的历史任务,这是新世纪党中央关于“三农”问题的重大决策。为促进新农村建设健康发展,周密而又科学合理的规划布局是前提。本文分析当前新农村建设中存在的问题,并提出探讨性意见,为新农村建设规划提供参考。  关键词:新农村;建设;规划;问题;对策    一、引言  党的十六届五中全会提出“生产发展