标题: 单片机八位LED控制程序 [打印本页]
作者: hanhongyi 时间: 2018-11-2 11:21
标题: 单片机八位LED控制程序
① 开启电源:
5S后,所有灯【8个】亮2S检测是否正常
② 播放亮灯模式:
按下*键,延迟5S后,自动播放上次的亮灯模式【如果第一次使用,默认选择亮灯模式1】
③ 选择亮灯模式:
按下相应数字键【0-9,3秒内按下2个数字键,默认为相应的2位数字,如21】,延迟3S,所有灯闪烁2次,延迟1S后,开始播放相应的亮灯模式
④ 停止播放:
按下#键,延迟1S后,所有灯闪烁3次,延迟1S后,停止程序运行:所有灯灭
⑤ 超时关机:
未按下任何按键,选择的亮灯模式循环播放,最多运行100个循环,自动停止,所有灯灭
⑥ 曲首提示:
循环播放过程中,每次亮灯模式开始,所有灯一起闪烁2
次,延迟1S后,开始播放相应的亮灯模式;
单片机源程序如下:
- #include <reg52.h>
- #include <intrins.h> //
- 包含循环移动函数的头文件
- //
- 定义一下
- ,
- 方便使用
- #define uchar unsigned char
- #define uint unsigned int
- /***********
- 延时函数(大约一毫秒)
- ****************/
- void delayms(uint z)
- {
- uint x,y;
- for(x=0;x<=76;x++)
- for(y=0;y<=z;y++);
- }
- void main( )//
- 主函数
- {
- uchar i=0;
- P0=0xfe;//
- 点亮第一个
- LED
- delayms(500); //
- 延时(大约)
- 0.5
- 秒
- while(1)//
- 程序循环
- {
- for(i=0;i<7;i++) //
- 右移
- 7
- 次
- {
- P0=_crol_(P0,1);//
- 循环右移一位,此处调用函数
- _cror_
- 的功能为循环
- 右移
- delayms(500); //
- 延时(大约)
- 0.5
- 秒
- }
- for(i=0;i<7;i++) //
- 左移
- 7
- 次
- {
- P0=_cror_(P0,1);//
- 循环左移一位,此处调用函数
- _croL_
- 的功能为循环
- 左移
- delayms(500); //
- 延时(大约)
- 0.5
- 秒
- }
- }
- }
复制代码
所有资料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 |