找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机八位LED控制程序

[复制链接]
跳转到指定楼层
楼主
ID:419580 发表于 2018-11-2 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
① 开启电源:
5S后,所有灯【8个】亮2S检测是否正常
② 播放亮灯模式:
按下*键,延迟5S后,自动播放上次的亮灯模式【如果第一次使用,默认选择亮灯模式1】
③ 选择亮灯模式:
按下相应数字键【0-9,3秒内按下2个数字键,默认为相应的2位数字,如21】,延迟3S,所有灯闪烁2次,延迟1S后,开始播放相应的亮灯模式
④ 停止播放:
按下#键,延迟1S后,所有灯闪烁3次,延迟1S后,停止程序运行:所有灯灭
⑤ 超时关机:
未按下任何按键,选择的亮灯模式循环播放,最多运行100个循环,自动停止,所有灯灭
⑥ 曲首提示:
循环播放过程中,每次亮灯模式开始,所有灯一起闪烁2次,延迟1S后,开始播放相应的亮灯模式;

单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>   //
  3. 包含循环移动函数的头文件
  4. //
  5. 定义一下
  6. ,
  7. 方便使用
  8. #define uchar unsigned char
  9. #define uint  unsigned int            
  10. /***********
  11. 延时函数(大约一毫秒)
  12. ****************/
  13. void delayms(uint z)
  14. {
  15. uint x,y;
  16. for(x=0;x<=76;x++)
  17.   for(y=0;y<=z;y++);
  18. }
  19. void main( )//
  20. 主函数
  21. {
  22. uchar i=0;
  23. P0=0xfe;//
  24. 点亮第一个
  25. LED
  26. delayms(500); //
  27. 延时(大约)
  28. 0.5
  29. 秒
  30. while(1)//
  31. 程序循环
  32. {
  33.   for(i=0;i<7;i++) //
  34. 右移
  35. 7
  36. 次
  37.   {
  38.    P0=_crol_(P0,1);//
  39. 循环右移一位,此处调用函数
  40. _cror_
  41. 的功能为循环
  42. 右移
  43.    delayms(500); //
  44. 延时(大约)
  45. 0.5
  46. 秒
  47.   }
  48.   for(i=0;i<7;i++)  //
  49. 左移
  50. 7
  51. 次
  52.   {
  53.    P0=_cror_(P0,1);//
  54. 循环左移一位,此处调用函数
  55. _croL_
  56. 的功能为循环
  57. 左移
  58.    delayms(500); //
  59. 延时(大约)
  60. 0.5
  61. 秒
  62.   }
  63. }     
  64. }
复制代码

所有资料51hei提供下载:
ST033-八位LED模块.pdf (373.79 KB, 下载次数: 8)



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

使用道具 举报

沙发
ID:399179 发表于 2018-11-2 19:00 来自触屏版 | 只看该作者
感谢分享!
回复

使用道具 举报

板凳
ID:69115 发表于 2018-11-3 00:07 | 只看该作者
简单程序,入门实验很好.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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