c# 求助 !电视机-遥控器仿真程序

c# 求助 !电视机-遥控器仿真程序,第1张

这个东西给个设计思路,之后茄春你自己完成。

1、做两个窗体程序,一个代表电视机,一个肢拦代表遥控器(里面的功能可通过按钮实现)

2、两个窗体间如何通信,这是这个程序的关键点,网上有也有很多实现两个程序通信,不过你可选择Socket进行实验。具体方法:在表视机中加入Socket监听,等待接收遥控器的信号,并且解析遥控器的信号,进行相应的处理;在遥控器程序当中,根据不同的功能向电视机发送信号。

3、至于打开、关闭等功能,仔细考虑设计好每个功能的相应的顺序和关系即可搞定

4、自历纳胡动搜索,这个只要设定一个最大值,Random生成一些数值即可

总体思路可以这样,且体的思节再考虑吧,这个也是一个挺好的题目。

雅马哈YAS-203是雅马哈旗下一款家庭影院音箱,它的高颜值和优秀的音质,在市场上赢得了很好的口碑。但是有些用户对于使用遥控器进行编程不太了解,接下来我给大家带来相关设置教程。

雅马哈YAS-203家庭影院音箱怎么使用遥控器进行编程

条形音箱进行编程后,即可使用电视机的遥控器控制其功能,如同时打开 / 关闭电视机和条形音箱,或调高 / 调低条形音箱的音量和使其静音 / 取消静音。

1、关闭电视机。

2、关闭条形音箱。

3、按住条形音箱遥控器上的LEARN键3秒以上,将条形音箱设置为学习模式。

当条形音箱进入学习模式饥槐判后,前面板上的指示灯将按如下所示闪烁。

注:

• 步骤 4 至 7 仅明滚需要电视遥控器和条形音箱前面板上的按键。不需要条形音箱遥控器。

• 如果条形音箱已经学习了功能,以下指示灯将点亮。

静音:BD/DVD,音量 (-):ANALOG,音量 (+):BLUETOOTH,电源:SURROUND

4、教条形音箱获得电视遥控器的 “ 静音 ” 代码。

4-1、按条形音箱前面板上的 MUTE。

4-2、将电视遥控器对准遥控传感器,同时按住静音键 1 秒以上两次或三次。

5、教条形音箱获得电视遥控器的 “ 音量 (–) ” 代码。

5-1、按条形音箱前面板上的 VOLUME (–)。

5-2、将电视遥控器对准遥控传感器,同时按住音量 (–)键 1 秒以上两次或三次。

6、教条形音箱获得电视遥控器的 “ 音量 (+) ” 代码。

6-1、按条形音箱前面板上的 VOLUME (+)。

6-2、将电视遥控器对准遥控传感器,同时按住音量 (+)键 1 秒以上两次或三次。

7、教条形音箱获得电视遥控器的 “ 电源 ” 代码。

7-1、按条形音箱前面板上的(电源)。

7-2、将电视遥控器对准遥控传感器,同时按住电源键 1 秒以上两次或三次。

8、若要结束学习模式,请按条形音箱遥控器上的 LEARN 键。

至此即完成所需设置。烂改现在您就可以使用电视遥控器的静音键、音量键或电源键 *** 作条形音箱了。

提示:

• 如果 5 分钟未执行任何 *** 作,学习模式将自动结束。

• 将电视机音量设定至最小。当使用电视遥控器增大条形音箱的音量时,可能会同时增大电视机音量。在这种情况下,请按照 “ 连接 ”中的步骤 3 更改电视机设置。

• 您可以按条形音箱遥控器上的 (电源)键来结束学习模式。

下面是一个用C写的遥控器漏巧漏程序.能在数码管上显示键码.

#include <reg52.h>

#define c(x) (x*110592/120000)

sbit Ir_Pin=P3^3

unsigned char code Led_Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,

0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E} //共阳极数码显示码0-F.

unsigned char code Led_Sel[]={0xe,0xd,0xb,0x7}

unsigned char Led_Buf[4]//宽桐显示缓冲区

char Led_Index //位选

unsigned char Ir_Buf[4]//用于保存解码结果

//==============================================================

//数码管扫描

timer0() interrupt 1 using 1

{

TL0=65536-1000

TH0=(65536-1000)/256//定时器0设定约1000us中断一次,用于数码管扫描

P0=0xff

P2=Led_Sel[Led_Index] //位选

P0=Led_Tab[Led_Buf[Led_Index]] //段选

if(++Led_Index>3) Led_Index=0 //四个扫描完了,到第一个数码管

}

//==============================================================

unsigned int Ir_Get_Low()

{

TL1=0

TH1=0

TR1=1

while(!Ir_Pin &&(TH1&0x80)==0)

TR1=0

return TH1*256+TL1

}

//=============================================================

unsigned int Ir_Get_High()

{

TL1=0

TH1=0

TR1=1

while(Ir_Pin &&(TH1&0x80)==0)

TR1=0

return TH1*256+TL1

}

//==============================================================

main()

{

unsigned int temp

char i,j

Led_Index=1

TMOD=0x11

TL0=65536-1000

TH0=(65536-1000)/256//定时器0设定约1000us中断一次,用于数码管扫描

EA=1

ET0=1

TR0=1

Led_Buf[0]=0

Led_Buf[1]=0

Led_Buf[2]=0

Led_Buf[3]=0//显示区返烂设成0

do{

restart:

while(Ir_Pin)

temp=Ir_Get_Low()

if(temp<c(8500) || temp>c(9500)) continue//引导脉冲低电平9000

temp=Ir_Get_High()

if(temp<c(4000) || temp>c(5000)) continue//引导脉冲高电平4500

for(i=0i<4i++) //4个字节

for(j=0j<8j++) //每个字节8位

{

temp=Ir_Get_Low()

if(temp<c(200) || temp>c(800)) goto restart

temp=Ir_Get_High()

if(temp<c(200) || temp>c(2000)) goto restart

Ir_Buf[i]>>=1

if(temp>c(1120)) Ir_Buf[i]|=0x80

}

Led_Buf[0]=Ir_Buf[2]&0xf

Led_Buf[1]=(Ir_Buf[2]/16)&0xf

Led_Buf[2]=Ir_Buf[3]&0xf

Led_Buf[3]=(Ir_Buf[3]/16)&0xf//显示结果

}while(1)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12227180.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存