Proteus中实现单片机双机通信实验

来源 :电子世界 | 被引量 : 0次 | 上传用户:marrymattion
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】本文针对单片机项目设计中出现的问题和基本方法,提出了将Proteus仿真软件和Keil软件引入到单片机项目式开发中。以“单片机双机通信实验”项目为例,详细阐述Proteus软件在单片机课程教学中的使用方法和仿真调试过程。实践证明,该方法能激发开发热情,锻炼创新能力和单片机软硬件综合开发能力,是提高单片机开发效率和设计产品质量的一种有效方法。
  【关键词】单片机开发;Proteus软件;仿真调试
  引言
  单片机开发是一项综合性、实践性、应用性很强的技术。传统的单片机开发采用“先理论设计,再动手实验”的开发模式,该模式造成编程与之实验结果分离,不便于调试,效果并不理想。鉴于此,本文将Proteus和引入到单片机的项目式开发中,通过仿真的直观性和真实感,不仅节约了硬件资源的投入,而且提高了单片机开发效率和产品质量。
  一、Proteus简介
  Proteus软件是英国Labcenter electronics公司开发的电路分析与实物仿真软件,它除了具有其他EDA工具的原理布图、PCB自动或人工布线、电路仿真等功能外,Proteus最大的特点是基于微控制器的设计连同所有的外围电路一起仿真,可直接在单片机虚拟系统上对MCU编程,并可对软件源代码进行实时调试。同时,它具有电路互动仿真功能,通过动态外设模型,如键盘、LED/LCD等,可实时显示系统输入、输出结果,以实现交互仿真,或配合Proteus配置的虚拟仪器如示波器、逻辑分析仪等,使单片机虚拟系统实现预期的实验效果。
  此处还需要用Keil软件来协助。Keil软件是美国Keil Software公司出品的兼容单片机C语言软件的开发系统,是目前世界上最好的51单片机开发工具之一。它提供了丰富的库函数和功能强大的集成开发调试工具,生成的目标代码效率高,多数语句生成的汇编代码很紧凑,容易理解。
  Proteus和Keil各自都可以进行仿真调试,但效果不是很理想,如把两者结合起来相互配合,则可发挥Proteus和Keil的优势使其在仿真过程中的软件调试和硬件设计更加便捷、高效。
  二、仿真项目教学案例
  (一)项目要求
  本项目要求用两片AT89C51单片机实现A机检测输入键盘信息,并通过串行通信方式,传送给B机,在B机用数码管显示A机所按下的对应按键代号,“0-9”显示对应数字,其余按键显示“-”。
  (二)任务分析
  项目开发过程是紧紧围绕一个或多个完整的项目展开的,因此项目的设计,是单片机课程教学成败的关键。按照本项目要求,通过分析,该项目实际上是一个双机单向通信项目,只要掌握了该项目,双向通信问题不难理解。具体思路是:
  1.A、B单片机均采用AT89C51,A机须完成矩阵键盘扫描识别、键盘代码串行传送两项任务。B机须完成串行接收代码、数码显示两项任务。本项目程序的关键就是串行通信程序部分。
  2.A机通过检测P2口外接的矩阵键盘信息,并进行识别处理,产生相应的键盘代码,然后通过串行发送端TXD/P3.1发送给B机;
  3.B机收到A机发送的键盘代码后,通过处理,从P0口输出七段数码管段码信号,驱动共阳极七段数码管显示键盘代码。
  图1
  图2
  图3
  (三)硬件仿真图绘制
  通过以上的任务分析,我们先设计出硬件电路,并将电路在Proteus中绘制出来。电源电路用5V,具体电路省略。时钟电路用来产生时钟信号供单片机工作,晶振采用12MHz,平衡电容采用33pF。复位电路在系统上电或运行过程中对单片机进行初始化操作。
  图4
  图5
  1.单片机最小系统
  本案例所用单片机型号为AT89C51,其结构简单,控制灵活。其最小系统主要包括主芯片、电源电路、时钟电路、复位电路。
  2.本例单片机最小系统
  在这里要特别说明的是,在Proteus中单片机可以默认以最小系统工作。即可以不加上电源电路、复位电路、时钟电路也可以工作。不过为了便于直观观察,我们还是画出这些路。在绘制时,双机只画出单机的这些电路,另一个不画。并且为了不产生标号冲突,B机的引脚标号用数字表示。
  本例中A机的主电路、电源电路、时钟电路、复位电路见附图。B机的系统图和A机系统大同小异。
  3.本例输入、输出系统及通信连接
  本例中的输入系统是矩阵键盘电路,从A机输入。利用P2口作为键盘检测口,P2.0-P2.3为行线扫描,P2.4-P2.7为列线检测。
  本例中的通信连接是将双机的RXD和TXD两脚,即P3.0和P3.1交叉相边即可。B机的这两脚标号和A机对应。
  本例中的输出系统是单个LED共阳数码管显示电路,从B机P0输出段码控制信号。
  4.本例硬件仿真总图见附1。
  (四)软件系统流程图
  A机主程序流程图如图1所示,键盘扫描检测程序流程图如图2所示,B机主程序流程图如图3所示。具体的程序见附3。编程输入Kei uVsion4软件并生成A机和B机的”.hex”格式可执行文件。
  图6
  图7
  图8
  附1 双机通信实验仿真电路原理图
  附2 电源原理图
  (五)Proteus ISIS载入仿真
  1.加加载源程序和目标程序文件、目标代码文件、设置时钟频率
  在ISIS菜单中单击Source(源程序),弹出下拉菜单,点击“Add/Remove Source File…”,弹出如图1.9所示的对话框,选取A机芯片,点击 ,加入源程序“双机通信实验A机发送程序.C”,如图4所示;选取B机芯片,点击 ,加入源程序“双机通信实验B机接收程序.C”,如图5所示。点击确定。   在ISIS编辑窗口中双击A机AT89C51芯片,在弹出的对话框中点击如图6所示的按钮,选择前面所生成的“双机通信实验A机发送程序.hex”代码文件,再在Clock Frequency:栏中设置时钟为12MHz,点击“OK”即可。B机同样设置。如图7所示。
  2.PROTEUS交互仿真
  代码装载完毕后即可进行仿真,只需点击运行仿真按钮即可运行仿真。仿真运行效果如图8所示。
  (六)本例仿真电路原理图及程序部分源代码
  1.本例仿真电路原理图(附1、附2)
  2.本例程序部分源代码(附3)
  A机检测发送程序:
  #include <at89x51.h>
  #define uchar unsigned char
  #define uint unsigned int
  #define key_4x4_port P2  //定义P3口为键盘输入
  uchar key;    //按键值
  void delayms(uint xms);//1ms延时程序
  void key_4x4_scan();    //键盘扫描指示程序
  uchar d[11]={0,1,2,3,4,5,6,7,8,9,10}; //发送的数据
  void delay();
  /*--------------Xms延时程序----------------*/
  void delayms(uint xms)
  {        uint i,j;
   for(i=xms;i>0;i--) //i=xms时延时xms
   for(j=110;j>0;j--);
  }
  /*---------------键盘扫描指示程序--------------*/
  {省略}
  /*---------------A机检测发送程序--------------*/
  main(){
   uchar i;
  PCON=0x80;//波特率加倍
  SCON=0x40;//方式1,波特率与T1溢出率相关
   TMOD=0x20;//T1方式2
  TH1=0xfd;//串口速度为19.2Kb/s
  TL1=0xfd;
  TR1=1;//启动T1
  while(1){
  key_4x4_scan();
  SBUF=d[key];//启动串口并发送数据
  while(1)
  {
  if(TI==1)
  {//检测,发送完发送下一数据
  TI=0;//清中断
  break;
  }
  }
  delay();//发送速度控制
  }
  }
  void delay(){
   unsigned int i;
  for(i=0;i<40;i++){
  }
  }
  B机接收显示程序:
  #include <at89x51.h>
  unsigned char code d[11]=  //LED字符码
  {  0xc0,0xF9,0xA4,0xB0,0x99,
   0x92,0x82,0xF8,0x80,0x90,0xbf
  };
  main(){
  PCON=0x80;//波特率加倍
  SCON=0x50;//方式1,允许接收
  IE=0x90;//开串口中断
  TMOD=0x20;//T1方式2
  TH1=0xfd;//串口速度为19.2Kb/s
  TL1=0xfd;
  TR1=1;//启动T1
  while(1){
  if(RI==1){//检测
  P0=d[SBUF];//显示
  RI=0;//清中断
  }
  }
  }
  三、结论
  通过本次实验,可以熟悉单片机串行通信的编程方法,提高键盘扫描检测程序、定时器的使用技巧,熟悉ProteusISIS的使用方法,将其与Keil uVsion4有机结合,使用该软件有利于直观观察仿真结果,培养单片机综合应用能力,明显地提高单片机开发效率和教学质量。
  参考文献
  [1]谷秀荣,单片机原理与应用(C51版),北京交大出版社,2009.7.
  [2]李全利.单片机原理及应用技术.北京:高等教育出版社,2001.7.
其他文献
随着全球经济的迅猛发展,市场竞争的日益激烈,企业的可持续性发展和风险逐渐成为投资者和企业管理者所关心的核心问题,因此能够涵盖可持续发展和风险要素的企业价值评估便成为投
近年来,从文化角度研究"农民市民化"问题成为一种趋势。有学者认为"农民市民化"问题的关键是解决文化冲突问题,否则文化意义上的"城市农民"群体将长期存在。事实上,我国缺乏"城市农
企业集团会计报表分析可分为一个较大的体系,企业根据自身的情况,选用不同的方法,从不同的角度进行分析。企业会计报表主要是对资产负债表、利润表、现金流量表及其他报表进行分
今年是全国性第二次土地利用总体规划修编工作的开展年,全国土地利用总体规划纲要即将完成,上海市的土地利用总体规划纲要也正在积极准备评审,目前各区县正在按照国务院办公厅转
本文以当前常用的沥青路面养护技术为基础,找沥青路面养护技术中存在的问题,并分析沥青路面养护技术的发展方向。
为了模拟网络在智能家居中的应用,采用编写通用的以太网控制IP核,在NiosⅡ开发环境下对LwIP协议栈进行移植,通过TCP/IP通信,完成了对外设工作状态的查询和控制,以及对系统进行重新
【摘要】在高速数字系统研发工程中,信号完整性测量至关重要。在总结产生高速数字信号歧变原因的基础上,从示波器类型选择、技术指标选择等方面,系统分析了采用示波器测试信号完整性应该把握的若干关键要素,对测量高速数字信号完整性有一定帮助。  【关键词】高速信号;完整性;示波器;选择  1.引言  “完整性”是指“完整和无损害的”。同样,一个具有良好的完整性的数字信号指的是有干净、快速的上升沿,稳定和有效的
三项制度改革是国有企业人力资源管理改革中的重点和难点问题,某国有企业的信息公司积极探索建立市场导向型人力资源管理,本文分别从其招聘、考核与薪酬、退出和晋升等环节论
随着现代生活水平的提高,人们对于建筑装饰装修除了看重所使用材料的质量和美观性外,节能环保系数也越来越受到人们的重视。本文主要阐述了环保节能技术的概念和意义以及在建
DB2数据库是IBM公司研制的一种大型的关系型数据库,它在大数据量存储中具有很高的效率和很好的安全性。只有了解了DB2的安全机制,才会更好的制定出更高的安全策略。本文首先介