单片机/MCU论坛
登录
直播中
唐庆
11年用户
16经验值
擅长:控制/MCU
私信
关注
[文章]
我的彩灯设计P3口四个按键
彩灯
主题:模拟彩灯,
开发板
从左至右4个按键分别为S1-S4,从上至下8个灯为L1-L8,按下S1键8只LED小灯以1HZ频率闪烁,按下S2键8只灯奇偶交替点亮,间隔0.3S,按下S3键,L1-L4与L5-L8灯交替点亮,间隔0.2s,按下S4键熄灭所有灯。
include
//包含库函数文件
#define S1 0x0e
#define S2 0x0d
#define S3 0x0b
#define S4 0x07
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i
for(j=0;j<112;j++); //延时约1ms
}
//4个简单按键扫描子程序
unsigned char ScanKey(void)
{
unsigned char key;
if((P3&0x0f)==0x0f) return(0xff);
delay(30);
if((P3&0x0f)==0x0f) return(0xff);
key=P3&0x0f;
while((P3&0x0f)!=0x0f);//等待弹出
//beep();
return(key);
}
void main()
{
unsigned char KeyValue,mode=4;
while(1)
{
P3=0xff;
KeyValue=ScanKey();//读入键值
switch(KeyValue)
{
case S1: mode=1; break;
case S2: mode=2; break;
case S3: mode=3; break;
case S4: mode=4; break;
default: break;
}
switch(mode)
{
case 1: P1=0x00;delay(500);P1=0xff;delay(500); break;
case 2: P1=0x55;delay(300);P1=0xaa;delay(300); break;
case 3: P1=0xf0;delay(200);P1=0x0f;delay(200); break;
case 4: P1=0xff; break;
default: break;
}
}
}
回帖
(2)
wdzfsywp
2013-4-11 13:03:37
本帖最后由 wd***sywp 于 2013-4-11 13:05 编辑
跑了一遍,不错是设计效果。程序是否还可优化不懂了(第一感觉:按键电路程序应加几重防抖动),学习学习.....
本帖最后由 wd***sywp 于 2013-4-11 13:05 编辑
跑了一遍,不错是设计效果。程序是否还可优化不懂了(第一感觉:按键电路程序应加几重防抖动),学习学习.....
举报
刘清
2013-4-11 15:17:52
{:15:}{:15:}
{:15:}{:15:}
举报
更多回帖
rotate(-90deg);
回复
相关帖子
彩灯
如何把只在
P3
口
带LED的程序改成
P
1
P
2
P3
三
个
口
同时带LED的?
975
请问1602的数据
口
能与
P3
口
连接吗?
1041
求助,关于
P3
^2.3.4端口接
3
个
按键
的疑问求解
123
单片机
P3
口
输入,
P
1
口
输出代码详解
2142
汇编基于单片机的方波发生器
四个
按键
四个
频率
2739
51单片机
P3
口
的wr非
口
有什么作用?
156
可否用指针代替
P
1,
P
2,
P3
口
2323
求助,51单片机的
P3
口
可以当普通的IO
口
用吗?
194
51
四个
按键
实现倒计时开关
按键
1加时
按键
2减时
按键
3
开
按键
...
3412
四个
按键
的独立键盘扫描程序
3462
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分