- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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次循环运行,缩短了运行
您可能关注的文档
最近下载
- AutoFormR6实例讲解-拉伸.ppt
- 食品安全主体责任日管控记录表、周排查记录表、月调度记录表(1).docx VIP
- 金元浦-中国文化概论(第四版)第十三章.ppt VIP
- 二杨梅素基二硒醚在肿瘤方面的药物应用.pdf VIP
- 2025年新能源汽车建设项目可行性研究报告(编制大纲).docx
- 一种固定式高倍数泡沫产生器.pdf VIP
- 初中-历史-人教部编版-第19课法国大革命和拿破仑帝国_2020430155529.ppt VIP
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案.docx VIP
- 1.2互联网应用的基本特征(教学课件)-第1册信息科技同步教学(河北大学版2024新教材).pptx VIP
- 某文旅项目施工合同模板.pdf VIP
文档评论(0)