① 开启电源: 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)
|