找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机花样灯 IO口高低电平控制程序

[复制链接]
跳转到指定楼层
楼主
ID:516278 发表于 2019-9-27 08:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. 名称:IO口高低电平控制
  2.   修改:无
  3.   内容:花样灯一般有两种方法实现:
  4.         1、程序循环执行
  5.         2、查表法
  6.         这里我们两种都使用一下
  7. ------------------------------------------------*/
  8. #include<reg52.h>     //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

  9. /*------------------------------------------------
  10.                   花样表格
  11. ------------------------------------------------*/
  12. unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,
  13.                                                   0xf7,0xfb,0xfd,0xfe,
  14.                                                   0xff,0xff,0x00,0x00,
  15.                                                   0x55,0x55,0xaa,0xaa
  16.                                                   };//rom允许情况可以无限添加

  17. void Delay(unsigned int t); //函数声明
  18. /*------------------------------------------------
  19.                     主函数
  20. ------------------------------------------------*/
  21. main()
  22. {
  23. unsigned char i;                //定义一个无符号字符型
  24.                                                                  //局部变量 i 取值范围 0~255
  25. while(1)
  26.       {
  27.           P1=0xFE;                   //第1个LED亮
  28.       for(i=0;i<8;i++)
  29.              {
  30.                  Delay(20000);
  31.              P1 <<=1;
  32.                  }

  33.       P1=0x7F;                   //第8个LED亮
  34.       for(i=0;i<8;i++)
  35.              {
  36.                  Delay(20000);
  37.              P1 >>=1;
  38.                  }

  39.       P1=0xFE;                  //第1个LED亮
  40.       for(i=0;i<8;i++)
  41.              {
  42.                  Delay(20000);
  43.              P1 <<=1;
  44.                  P1 |=0x01;
  45.                  }

  46.           P1=0x7F;                  //第8个LED亮
  47.       for(i=0;i<8;i++)
  48.              {
  49.                  Delay(20000);
  50.              P1 >>=1;
  51.                  P1 |=0x80;
  52.                  }
  53.       //下面通过查表方法获得花样参数
  54.       for(i=0;i<16;i++)//查表可以简单的显示各种花样 实用性更强
  55.              {
  56.                  Delay(20000);
  57.          P1=seg[i];
  58.                  }
  59.       }

  60. }

  61. /*------------------------------------------------
  62. 延时函数,含有输入参数 unsigned int t,无返回值
  63. unsigned int 是定义无符号整形变量,其值的范围是
  64. 0~65535
  65. ------------------------------------------------*/
  66. void Delay(unsigned int t)
  67. {
  68. while(--t);
  69. }
复制代码


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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