标题: 单片机八位LED控制程序 [打印本页]

作者: hanhongyi    时间: 2018-11-2 11:21
标题: 单片机八位LED控制程序
① 开启电源:
5S后,所有灯【8个】亮2S检测是否正常
② 播放亮灯模式:
按下*键,延迟5S后,自动播放上次的亮灯模式【如果第一次使用,默认选择亮灯模式1
③ 选择亮灯模式:
按下相应数字键【0-93内按下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. while(1)//
  30. 程序循环
  31. {
  32.   for(i=0;i<7;i++) //
  33. 右移
  34. 7

  35.   {
  36.    P0=_crol_(P0,1);//
  37. 循环右移一位,此处调用函数
  38. _cror_
  39. 的功能为循环
  40. 右移
  41.    delayms(500); //
  42. 延时(大约)
  43. 0.5

  44.   }
  45.   for(i=0;i<7;i++)  //
  46. 左移
  47. 7

  48.   {
  49.    P0=_cror_(P0,1);//
  50. 循环左移一位,此处调用函数
  51. _croL_
  52. 的功能为循环
  53. 左移
  54.    delayms(500); //
  55. 延时(大约)
  56. 0.5

  57.   }
  58. }     
  59. }
复制代码

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




作者: 快乐眼泪    时间: 2018-11-2 19:00
感谢分享!
作者: xiexugang    时间: 2018-11-3 00:07
简单程序,入门实验很好.




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1