基于AT89C51单片机实现的流水灯控制.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《单片机应用》 课 程 设 计 系 别: 自动化 专 业: 仪器测量与控制 班 级:(2)班 姓 名:王炯阳 学 号:201020303223 指导老师:赵悦老师 课程设计 目 录 引言················································3 1. 硬件电路的设计····································3 (1)AT89C51的简介··································3 (2)硬件电路的说明··································4 2.软件的设计·········································4 3.试验程序···········································5 4.仿真效果············································6 5.实验器材············································7 6.参考文献············································8 交通灯设计 1.设计任务···········································9 2设计方案··········································10 3.系统硬件设计·······································11 4 系统软件设计······································12 5 仿真及性能分析····································13 6实验器材···········································14 7程序编译···········································17 8参考文献···········································18 9课程设计体会·······································19 引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,在控制二极管亮灭的时候应该延时一段时间,否则就看不到流水效果了。还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,以最简单的流水灯控制功能即实现8个LED灯的循环点亮下面利用循环移位指令,采用循环程序结构进行编程。在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现流水效果。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令因此实际编程中应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样同样可以实现效果。具体编程如所示ORG 0000H 单片机上电后从0000H地址执行 LJMP MAIN ORG 0030H 设置主程序开始地址MAIN: CLR P2.2 SETB P2.2 ;8255复位 CLR P2.2 SETB P2.0 ;A0=1,A1=1 8255控制寄存器地址 SETB P2.1 MOV A,#80H ;PA,PB和PC都作为输出口 MOVX @R0,A START: MOV R1,#0FEH ;赋循环初值 MOV R2,#7FH MOV R3

文档评论(0)

2749166188 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档