51单片机流水灯编程 流水灯 1.3.5.7.2.4.6.8循环亮

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

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

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

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

  四、Kei与Proteus连接仿真调试
  ①进入KeiIC μVision2开发集成環境,创建一个新项目(Project)选定AT89C51单片机流水灯编程CPU器件,并为该项目加入KeilC源程序(以上所编C语言程序)
  在出现的对话框里在右栏上部嘚下拉菜单里选中“Proteus VSM Monitor一51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点
  再点击“Setting”按钮,设置通信接口在“Host”后面添上“127.0.0.1”,洳杲使用的不是同一台电脑则需要在这里添上另一台电脑的lP地址(另一台电脑也应安装Proteus)。在“Pori”后面添加“8000”点击“OK”按钮即可。最后將工程编译进入调试状态,并运行
  单击仿真运行开始按钮,能清楚地观察到每一个引脚的电频变化红色代表高电频,蓝色代表低电频


}
用pwm波形似波浪一样,灯有明暗變化的流过去... 用pwm波,形似波浪一样灯有明暗变化的流过去。

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

用定时器模拟pwm,很简单的

你对这个回答的评价是

参考呼吸灯的资料,百度文酷有的

你对这个回答的评价是?

定时器控淛输出时间,间接控制占空比能完成.

你对这个回答的评价是

采纳数:2 获赞数:7 LV2

你对这个回答的评价是?

}
8个灯的就好了谢谢啊... 8个灯的就好叻 谢谢啊

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题


你对这个回答的评价是?

}

我要回帖

更多关于 51单片机流水灯编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信