找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机八个LED双向流水灯显示程序

[复制链接]
跳转到指定楼层
楼主
  实验目的:掌握51单片机的开发环境keil以及仿真软件proteus的使用方法
  实验内容:利用并口P2控制8只LED,首先8只LED双向流水灯显示一次,接着将8只LED分成4组(每组2只LED)再依次双向流水灯显示一次,最后两组4只LED交替闪烁5次,再回到第一步不断循环显示。利用软件proteus搭建硬件电路,再与软件keil进行联合调试。

电路原理图如下:

  实验代码:
  1. #include<reg51.h>

  2. sbit D1=P2^0;
  3. sbit D2=P2^1;
  4. sbit D3=P2^2;
  5. sbit D4=P2^3;
  6. sbit D5=P2^4;
  7. sbit D6=P2^5;
  8. sbit D7=P2^6;
  9. sbit D8=P2^7;

  10. void main(){
  11.         unsigned int i;
  12.         while(1){
  13.         D1=0;
  14.         for(i=0;i<30000;i++);
  15.         D1=1;
  16.         D2=0;
  17.         for(i=0;i<30000;i++);

  18.         D2=1;
  19.         D3=0;
  20.         for(i=0;i<30000;i++);

  21.         D3=1;
  22.         D4=0;
  23.         for(i=0;i<30000;i++);

  24.         D4=1;
  25.         D5=0;
  26.         for(i=0;i<30000;i++);

  27.         D5=1;
  28.         D6=0;
  29.         for(i=0;i<30000;i++);

  30.         D6=1;
  31.         D7=0;
  32.         for(i=0;i<30000;i++);

  33.         D7=1;
  34.         D8=0;
  35.         for(i=0;i<30000;i++);
  36.      
  37.         D8=1;
  38.         D7=0;
  39.         for(i=0;i<30000;i++);

  40.         D7=1;
  41.         D6=0;
  42.         for(i=0;i<30000;i++);

  43.         D6=1;
  44.         D5=0;
  45.         for(i=0;i<30000;i++);

  46.         D5=1;
  47.         D4=0;
  48.         for(i=0;i<30000;i++);

  49.         D4=1;
  50.         D3=0;
  51.         for(i=0;i<30000;i++);

  52.         D3=1;
  53.         D2=0;
  54.         for(i=0;i<30000;i++);

  55.         D2=1;
  56.         D1=0;
  57.         for(i=0;i<30000;i++);

  58. //两组

  59.         P2=0xfc;  //1111 1100
  60.         for(i=0;i<30000;i++);
  61.         P2=~P2;                //0000 0011
  62.         P2=P2<<2;         //0000 1100
  63.         P2=~P2;                   //1111 0011
  64.         for(i=0;i<30000;i++);

  65.         P2=~P2;                   //0000 1100
  66.         P2=P2<<2;           //0011 0000
  67.         P2=~P2;                        //1100 1111
  68.         for(i=0;i<30000;i++);

  69.         P2=~P2;
  70.         P2=P2<<2;
  71.         P2=~P2;
  72.         for(i=0;i<30000;i++);

  73.         P2=~P2;
  74.         P2=P2>>2;
  75.         P2=~P2;
  76.         for(i=0;i<30000;i++);

  77.         P2=~P2;
  78.         P2=P2>>2;
  79.         P2=~P2;
  80.         for(i=0;i<30000;i++);

  81.         P2=~P2;
  82.         P2=P2>>2;
  83.         P2=~P2;
  84.         for(i=0;i<30000;i++);


  85.         //四组
  86.    
  87.         P2=0xf0;        //1111 0000
  88.         for(i=0;i<30000;i++);
  89.         P2=~P2;          //0000 1111
  90.         for(i=0;i<30000;i++);
  91.         P2=~P2;
  92.         for(i=0;i<30000;i++);
  93.         P2=~P2;
  94.         for(i=0;i<30000;i++);
  95.         P2=~P2;
  96.         for(i=0;i<30000;i++);

  97.          D2=D3=D4=1;

  98.       
  99.          }

  100.         }
复制代码


8个LED双向流水灯显示实验图.docx

307.33 KB, 下载次数: 28, 下载积分: 黑币 -5

仅供参考

评分

参与人数 2黑币 +80 收起 理由
310794469 + 30 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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