| 看起来很复杂,难度很大 |
某1个宝上1快多的遥控器???![]() |
|
这段代码是做什么用的呢? /*if(S2 == 0) { delay(5); if(S2 == 0) { if(i < 9) { pwm_left_val = pwm_left_val + 8; i++; P0 = discode[i]; } while(!S2); } } if(S3 == 0) { delay(5); if(S3 == 0) { if(i > 0) { pwm_left_val = pwm_left_val - 8; i--; P0 = discode[i]; } while(!S3); } }*/ |
| 请问有原理图吗 |
| 可以发一份原理图吗 |
|
请楼主有433红外解码对码的程序和讲解吗 |
323 发表于 2019-4-29 09:59 您好 关于“51单片机红外遥控控制灯的亮暗程序(用PWM控制)”的资料可以分享一下吗 谢谢 |
liudi1990 发表于 2019-9-1 11:27 我的红外信号发送是用那个红外遥控器的。如果你想自己做一个的话可以在百度上搜“红外信号发送的程序”可以看下。我没试过哦。 |
| 谢谢楼主分享 |
| value = value | 0x80;为什么要或,不加也不会有问题吧,例如接收10100011,value的值怎么接收 |
| 用户码与引导码看不明白,请指教一下 |
| 楼主 有没有红外信号发送的程序啊 |
| 对初学者太实用了 |
| 谢谢你的分享 |
roachwz 发表于 2019-5-5 21:46 嘻嘻,没看懂的话我给你讲一遍吧,在这个程序中PWM主要出现在void timer1() interrupt 3里,那我们就讨论这里就行了,pwm_t是定时器溢出一次,他加1,现在假设pwm_left_val现在为25。现在定时器在不断的溢出, pwm_t也在不断的加1,当pwm_t等于25时,执行P1 = 0xff; 灯全灭了,现在pwm_t还是在不断的加1。然后灯是一直灭的,直到pwm_t == 250,执行pwm_t = P1 = 0;现在灯全亮了。pwm_t现在又从1开始加了。那么可以看出,0-25灯是亮的,25-250是灭的,然后他们亮灭的非常快,你眼睛里看到的灯是一直亮的,但亮度是由 pwm_left_val决定的,这就是占空比。现在应该明白了吧,嘻嘻。 |
yfpc2006 发表于 2019-5-6 02:47 谢谢啦~ |
|
不用谢啦~ |
| 感谢分享 |
| 挺好的资料,希望多学习~! |
| 没看懂pwm的那段程序,注释写的少。红外遥控接收的倒是懂了 |
|
大家有问题可以问哈,我时不时就会登陆,看到了就会回的哈!! |