流水灯报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
流水灯报告

流水灯变换电路设计与调试实验报告 一、任务要求: 设计一个流水灯显示电路,开关打开时,一个灯自上而下,然后自下而上流动,开关闭合时,两个灯从两边向中间,再从中间向两边流动(所有延时都是500ms) 二、设计思路: 整个电路有最小系统、流水灯及一个开关组成,流水灯接在AT89C51芯片的P1端口,它们之间有一个74HC573芯片,开关接在P2.0端口,实现流水灯的流动。程序中,除了用了reg51.h头文件外,因为有左右移动,所以还必须用intrins.h头文件,接着就是宏定义,由于有开关,因此把开关定义在P2.0端口,延时程序用for语句实现,在许多地方都用到,所以将其作为一个子程序,方便后面调用。进入主程序,首先定义要使用的变量a,i,j,再用if语句控制开关,if语句条件成立,即开关打开,流水灯自上而下再自下而上,闪烁;当if语句不成立,即开关闭合,就给P1端口赋值,让流水灯从外向里再从里向外流动,闪烁。 三、硬件设计: 1、系统框图如下 2、各模块设计及分析 最小系统图如下 其中,还有20脚接地,40脚接电源,18、19脚接的晶振,工作频率是12MHz,与单片机相连构成一个时钟信号源;9脚接的电解电容C3,为复位端,按钮开关用作手动复位;31脚为外部程序储存器访问控制端,由于最小系统没有外接储存器,所以接高电平。 流水灯及74HC573芯片如图 74HC573是8位数据锁存器,当输入的数据消失时,在芯片的输出端,数据仍然保持; 这个概念在并行数据扩展中经常使用到。此芯片主要用于数码管、按键等的控制。流水灯用的是共阳的,且接P1端口,此端口内置上拉电阻。 SWITCH开关 如图接在P2.0口。 3、整体电路图 四、软件设计: 1、设计思路 设计流水灯的流动显示,首先一个程序必须有头文件,由于有左右移动,因此,除了reg51.h外还应有intrins.h,接着,宏定义,进入程序,为了看清楚,所以必须有一个延时程序,此程序用for语句实现,设计中用开关控制流水灯花样,所以用if语句判断,if语句条件成立,即开关打开,用_crol_(a,1)、_cror_(a,1)实现流水灯地上下移动,闪烁;当if语句不成立,即开关闭合,就给P1端口赋值,控制流水灯的亮灭。其中,每次都用到延时程序。 2、软件流程 程序 #includereg51.h #include intrins.h #define uint unsigned int #define uchar unsigned char uchar code table[]={0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e}; sbit k=P2^0; void delay(uint z) { uint x,y; for(x=z;x0;x--) for(y=110;y0;y--); } void main() { uchar a,i,j; while(1) { if(k==1) { a=0xfe; for(i=0;i8;i++) { P1=a; delay(500); a=_crol_(a,1); } a=0x7f; for(i=0;i8;i++) { P1=a; delay(500); a=_cror_(a,1); } } else { P1=0xff; for(j=0;j7;j++) { P1=table[j]; delay(500); } } } } 五、软件仿真: 这次实训电路图基本和以前的一样,单片机AT89C51加时钟中断电路,只不过要加一个开关进行控制,在P1端口接流水灯,P2.0端口接开关。运用Proteus软件把电路画好之后,再进行电气检测。之后,再用Keil软件写程序,首先在Keil软件里面新建一个文件夹新建一个项目,然后再新建一个文档,另存文档加后缀.c。再进行程序的编写,首先头文件,宏定义都要有,为了能够完成开关的控制,要有if判断语句,还有流水灯的流动程序,包括延时程序。然后进行文件的关联。生成hex文件之后再编译,程序编译后,无误,最后打开Proteus软件双击单片机进行调试。但是发现图中的开关对流水灯的流动花样并不管用,无论怎么修改程序都不能让开关起到作用,最后还是向老师请教,原来没有出现错误,只是延时太久,运行次数过多,不易于观察,所以以为开关没起到转换作用,经过修改,去掉了3次循环运行,缩短了运行

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档