您当前的位置:五五电子网电子知识电子知识资料实用软件基于51单片机的流水灯仿真实验 正文
基于51单片机的流水灯仿真实验

基于51单片机的流水灯仿真实验

点击数:7620 次   录入时间:03-04 12:01:37   整理:http://www.55dianzi.com   实用软件

  大街小巷随处可见变幻万千的流水灯,这种流水灯可用数字集成电路(十进制计数器,译码)实现灯光的流水效果,也能用单片机AT89C51来实现。单片机相对于数子电路实现流水灯有明显的优越性,控制硬件电路外围元件较少,控制程序也较简单,制作比较容易,功能作用不低于数子电路设计。下面就单片机控制流水灯并用Proteus仿真进行介绍。
  
  一、硬件电路及原理
  
  流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管D1~D8、晶振X1、电源vCC、单片机AT89C51和程序等组成的系统。其具体硬件组成见下图所示。
  
  从原理图中可以看出,如果让接在P2.0口的Dl亮起来,那么只要把P2.0口的电平变为低电平就可以了:相反,如果要接在P2.0口的D1熄灭,就要把P2.0口的电平变为高电平:同理,接在P2.1—P2.7口的其他7只发光二极管点亮和熄灭的方法同D1。因此,要实现流水灯功能,只要将发光二极管D1~D8依次点亮、熄灭,8只发光二极管便会一亮一暗的做流水灯了。在此还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,在控制二极管亮灭的时候应该延时一段时间,否则就看不到“流水”效果了。

硬件电路

  二、C语言编程
  
  单片机的应用系统由硬件和程序组成,上述硬件原理图搭建完成上电之后,还不能看到流水灯循环点亮的现象,要实现流水灯循环点亮,还要告诉单片机该怎么进行工作,即编写程序控制单片机管脚电平的高低变化,以实现发光二极管的一亮一灭。下面以8个发光二极管循环点亮来介绍两种C语言程序的编程方法。
  
  1.位控法
  
  位控方法采剧顺序程序结构,用位指令控制P2口的每一个位输出高低电平,从而来控制相应发光二极管的亮灭。程序如下:

程序

程序

  由上述程序得知:8个发光二极管循环点亮是通过逐个控制P2端口的每个位来实现的,因程序编制起来繁琐。所以程序结构显得较为复杂。
  
  2.循环移位法
  
  循环移位法利用循环移位指令,采用循环程序结构进行编程。在程序一开始就给P2口送一个数,这个数本身就让P2.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P2口,实现“流水”效果。具体编程如下所示,程序结构较为简单。

编程

  三、Protuce仿真调试
  
  采用Proteus仿真时,分以下几个步骤进行:
  
  1.启动Proteus仿真软件
  
  双击“1SIS”图标,出现ISIS操作页面。
  
  2.搭建单片机系统仿真电路分
  
  “器件选取”、“器件故置”和“电路连接”三步进行操作。
  
  Code Files”对话框。再点击“New”按键,弹出“NewSource Files”对话框,即可以创建(只在文件名栏目输入一个文件名,后缀为ASM)或导入ASM源文件。确定后,“Add/Remove Source Code Files”对话框中“Source Code Filename”栏目即有ASM源文件名及路径,然后在“Code Generation Tool”栏目中选择“ASEM51”,最后点击“OK”按键,即完成了创建和导入ASM源文件。此后“Source”下即可以看到相应的ASM源文件。
  
  3.编译ASM和导入HEX文件
  
  编译ASM文件的前提是已导人ASM文件,启动编译的方法有两种:①进入菜单栏,选择“Source”下“Build All”,即弹出“BUILD LOC”提示框,提示编译ASM文件的结果。②直接点击器件放置和运行区下方的“运行”按键,若ASM文件内容有变化,即自动对其编译,若问题即弹出“SOURCE CODE BUILD ER-RORS”提i讲匡,提示编译ASM文件的结果。编译ASM文件成功后即生成HEX文件,单片机导入HEX文件的方法是,打开单片机器件属住对话框,在“ProgramFiles”栏目里打开文件目录,选择装入HEX文件即可。单片机此后按照该HEX文件的代码运行程序。
  
  4、调试方法。
  
  进入菜单栏,选择“Debug”下“Start/Resart Debugging”,即进入调试状态,此后可以进行单步运行、全速运行、断点设置等功能操作。

  四、KeiIC与Proteus连接仿真调试
  
  1、安装KeiIC μVision2软件及vDMAgdi程序
  
  2.KeiIC的配置
  
  ①进入KeiIC μVision2开发集成环境,创建一个新项目(Project),选定AT89C51单片机CPU器件,并为该项目加入KeilC源程序(以上所编C语言程序)。
  
  ②单击“Project菜单/Options for Target”选项或者点击工具栏的“option for to rget”按钮,弹出窗口,点击“Debug”按钮。
  
  在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。
  
  再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如杲使用的不是同一台电脑,则需要在这里添上另一台电脑的lP地址(另一台电脑也应安装Proteus)。在“Pori”后面添加“8000”。点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。
  
  ③Ptoteus的设置进入Proteus的ISIS.鼠标左键点击菜单“Debug”,选中“use romote debuger monitor”。此后,便可实现KeiIC与Proteus连接调试。
  
  3、连接仿真调试
  
  单击仿真运行开始按钮,能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。




本文关键字:单片机  实用软件电子知识资料 - 实用软件