找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16146|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机流水灯实验报告

[复制链接]
跳转到指定楼层
楼主
ID:432007 发表于 2018-11-23 19:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

实验一:用C51实现流水灯实验

实验要求:完成亮流水,即LED从低位流向高位流动,每次流动一位,且每次只亮一个LED灯,其它LED灭。


实验原理:单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,  对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,  中间使用时间间隔隔开各灯的亮灭。使用r1或rr a实现位的转换。

实验内容:通过仿真来实现实验电路图


代码如下;

              for(x=0;x<8;x++)

                  {

                  P0=num[x];

                  delay();

                }

                for(x=6;x>0;x--)

                  {

                  P0=num[x];

                  delay();

                }

                P0=0xfe;

实验结果:

实验程序:

#include <REG51.H>
void delay(); //延时函数声明
void  main() //主函数
{ unsigned char x, num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

while(1)
  {
    for(x=0;x<8;x++)
     {
    P0=num[x];
    delay();
  }
    for(x=6;x>0;x--)
     {
    P0=num[x];
    delay();
  }
  P0=0xfe;
  }
}
void  delay() //延时函数,无符号字符型变量i为形式参数
{
    unsigned int j,k; //定义无符号字符型变量j和k
    for(k=0;k<500;k++) //双重for循环语句实现软件延时
    for(j=0;j<100;j++);
}

实验总结:

这次试验通过仿真实验软件实现流水灯实验,充分学会了keil软件和Proteus电路仿真的联合调试,为后期的实验做足了功课。也认识到仿真实用性。



完整的Word格式文档51黑下载地址:

51单片机流水灯.docx (66.22 KB, 下载次数: 43)



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:773127 发表于 2020-6-8 17:41 | 只看该作者
师傅讲了单片机 下下来看一看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表