找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

请教一个红外遥控的问题

[复制链接]
admin 发表于 2012-9-2 13:46:33 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
if((Im[2]==0x16)&&(shi==1))
{
a=0;
ge=1;
shi=0;
delay_ms(150);
} //这是一段用红外遥控修改时间的程序
if((Im[2]==0x0c)&&(shi==1)) //我的本意是先给十位赋值,再给各位赋值
{ //
a=1;
ge=1;
shi=0;
delay_ms(500);
}
……………………
if((Im[2]==0x16)&&(shi==1))
{
a=0;
ge=1;
shi=0;
delay_ms(150);
}
if((Im[2]==0x0c)&&(shi==1))
{
a=1;
ge=1;
shi=0;
delay_ms(500);
}

writeds_add(0x8e,0x00);
writeds_add(0x80+(key1-1)*2,tab_1302[key1-1]);
writeds_add(0x8e,0x80); //把改变的值送给DS1302
现在出现的问题是,我摁下第一个键,想改变十位上的值,结果十位和个位上的值都变成我想要改变的值了,我只恩了一次键,怎么把十位个位的值都改变了,是不是红外一个会发出多个32位数据信号,我的程序该怎么修改。。。。
我补充一下,如果程序中不加delay_ms(500);每次摁键,比如恩1,,,那么DS1602上的显示会立刻变成11,但是如果我加了延时程序,恩下1,在500ms内摁下2的话,时间会改成12,如果不摁2,过了500ms数值依然是11.。。。这个让我很奇怪,,是我对遥控器的信号输出特性不熟悉吗?
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-25 03:41 , Processed in 0.048719 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表