#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void DelayMS(uint x)
{
uchar t;
while(x--)
{
for(t=0;t<120;t--);
}
}
void main()
{
uchar k,t,Key_State;
P0 = 0xff;
P1 = 0xff;
while(1)
{
t = P1;
{
DelayMS(10);
if(t != P1)
continue;
Key_State = ~t >> 4;
k = 0;
while(Key_State != 0)
{
k++;
Key_State >>= 1;
}
switch(k)
{
case 1: if(P0 == 0x00)
P0 = 0xff;
P0 <<= 1;
DelayMS(200);
break;
case 2: P0 = 0xf0;
break;
case 3: P0 = 0x0f;
break;
case 4: P0 = 0xff;
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
程序将4只按键所在的P1端口高4位移到低4位,如果有键按下,则这4位中必有一位为0,为便于对这一位0所在位置进行判断,代码将其预先取反,然后再右移4位,这样处理后的8位中,仅低4位中有一位为1,其他7位均为0,接下来的循环在该值不等于全0时累加按键号,并将该值向右移位,循环中止时即可得出按键号1~4,最后根据按键号执行相应操作。 资料包含程序源文件和仿真源文件
资源推荐
资源详情
资源评论
收起资源包目录
13 K1-K4 分组控制LED.rar (16个子文件)
13 K1-K4 分组控制LED
Last Loaded K1-K4-分组控制LED.DBK 41KB
K1-K4-分组控制LED.PWI 742B
K1-K4-分组控制LED.DSN 41KB
Keil C
K1-K4 分组控制LED.hex 414B
K1-K4 分组控制LED 833B
code
key-led.Uv2 2KB
key-led.c 653B
key-led.M51 4KB
key-led 2KB
key-led_Opt.Bak 989B
key-led.Opt 1KB
key-led.plg 356B
key-led.LST 3KB
key-led.lnp 46B
key-led_Uv2.Bak 2KB
key-led.OBJ 2KB
共 16 条
- 1
资源评论
达西西66
- 粉丝: 1208
- 资源: 544
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Golang实现的加权pagerank算法实现.zip
- 基于Java实现的pagerank算法.zip
- 基于C++实现的pagerank算法.zip
- 基于Python实现的pagerank算法.zip
- java面试题-leetcode题解之第14题最长公共前缀.zip
- java面试题-leetcode题解之第28题找出字符串中第一个匹配项的下标.zip
- java面试题-leetcode题解之第31题下一个排列.zip
- java面试题-leetcode题解之第6题Z字形变换.zip
- java面试题-leetcode题解之第8题字符串转换整数atoi.zip
- java面试题-leetcode题解之第13题罗马数字转整数.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功