第一范文网 - 专业文章范例文档资料分享平台

流水灯实验报告

来源:用户分享 时间:2025/10/14 8:31:37 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

单片机流水灯实验

一、任务

让8个LED灯轮流亮起来,实现流水灯的功能。 二、思路

让接在P0.0口的LED灯亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED灯熄灭,就要把P0.0口的电平变为高电平就可以了。要实现流水灯功能,只要将8个LED灯依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。

我们应该注意一点,由于单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。 三、步骤

1、用proteus画电路图。如下图:

2、用keil建工程。

1) 运行keil C51软件,点击Project菜单新建项目,选择为AT89C52的单片

机型号。然后单击File选择New新建程序文件,保存成 .c 文件,右击Source Group1添加入程序文件。 2) 用C语言编写程序代码如下:

#include

void delay (unsigned char tmp);

code unsigned char tmpled[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void main(void) {

unsigned char i; while (1) {

for(i=0;i<8;i++) { P0=tmpled[i]; delay(50); } } }

void delay(unsigned char tmp) {

unsigned char i,j; i=tmp; while(i) { i--; j=255; { j--; } } }

3) 右击Target 1打开设置,Output菜单下勾选上create hex file。

4) 调试运行程序后,在proteus中双击单片机,添加hex文件,运行看到流水的的效

果。

四、 实验中遇到的问题。

1、 用proteus仿真时候,发现错误:

error variable not found parsing property resistance of RN1-Rnvalue expected for RN1-R(n=1~8)而且led灯亮度十分微弱。可能是接入的电阻太大了。

检查电路图发现排阻的值为RX8,修改为220(自己选择)后。错误便没有了,同时,led灯的亮度也增强了。 2、 关于延时函数。

延时的时间计算不太明白。

3、P0=0xfe;是对单片机P0口的8个I/O口同时进行操作,0x后的数使用十六进制表示,fe转换为二进制是1111 1110,则P0.0为低电平,对应的led灯亮,其他7个led灯灭。

搜索更多关于: 流水灯实验报告 的文档
流水灯实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3tls46yfzn9gaia4884g_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top