单片机红外遥控原理控

查看: 2068|回复: 0
基于51单片机的红外遥控系统接收程序设计
#include &reg52.h&
#define uint unsigned int
#define uchar unsigned char
//时间计算
#define Imax 14000& & //此处为晶振为11.0592时的取值,
#define Imin 8000& & //如用其它频率的晶振时,
#define Inum1 1450& & //要改变相应的取值。
#define Inum2 700
#define Inum3 3000
//解码变量
unsigned char Im[4]={0x00,0x00,0x00,0x00};
//全局变量
unsigned long m,Tc;
unsigned char IrOK;
void main()
& & & & P2=0
& & & & EA=1;//开启总中断
& & & & IT1=1;//下降沿有效
& & & & EX1=1;//外部中断1开
& & & & TMOD=0x11;//定时器初始化&&
& & & & TH0=0;//T0赋初值
& & & & TL0=0;
& & & & TR0=0;//t0开始计时
& & & & while(1)
& & & & & & & & if(IrOK==1)
& & & & & & & & {
& & & & & & & & & & & & //1键
& & & & & & & & & & & & if(Im[2]==0x0c)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0
& & & & & & & & & & & & }
& & & & & & & & & & & & //2键
& & & & & & & & & & & & else if(Im[2]==0x18)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0xa2;
& & & & & & & & & & & & }
& & & & & & & & & & & & //3键
& & & & & & & & & & & & else if(Im[2]==0x5e)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0xb0;
& & & & & & & & & & & & }
& & & & & & & & & & & & //4
& & & & & & & & & & & & else if(Im[2]==0x08)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0x9c;
& & & & & & & & & & & & }
& & & & & & & & & & & & //5
& & & & & & & & & & & & else if(Im[2]==0x1c)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0x91;
& & & & & & & & & & & & }
& & & & & & & & & & & & //6
& & & & & & & & & & & & else if(Im[2]==0x5a)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0x81;
& & & & & & & & & & & & }
& & & & & & & & & & & & //7键
& & & & & & & & & & & & else if(Im[2]==0x42)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0xf8;
& & & & & & & & & & & & }
& & & & & & & & & & & & //8
& & & & & & & & & & & & else if(Im[2]==0x52)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0x80;
& & & & & & & & & & & & }
& & & & & & & & & & & & //9
& & & & & & & & & & & & else if(Im[2]==0x4a)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0x90;
& & & & & & & & & & & & }
& & & & & & & & & & & & //0
& & & & & & & & & & & & else if(Im[2]==0x16)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0xc0;
& & & & & & & & & & & & }
& & & & & & & & & & & & //关机
& & & & & & & & & & & & else if(Im[2]==0x45)
& & & & & & & & & & & & {
& & & & & & & & & & & && & P2=0
& & & & & & & & & & & & }
& & & & & & & && & IrOK=0;& & & && &
& & & & & & & & }
//外部中断解码程序_外部中断1
void intersvr1(void) interrupt 2 using 1
Tc=TH0*256+TL0;//提取中断时间间隔时长
TL0=0;& && && &//定时中断重新置零
if((Tc&Imin)&&(Tc&Imax))
& & & & m=0;
& & & & f=1;
}& && & //找到启始码
& & if(Tc&Inum1&&Tc&Inum3)
& && & & & Im[m/8]=Im[m/8]&&1|0x80; m++;
& & if(Tc&Inum2&&Tc&Inum1)
& && &Im[m/8]=Im[m/8]&&1; m++; //取码
&&& & & &&&}
&&& & & &&&if(m==32)
& && &m=0;&&
& && &f=0;
& && &if(Im[2]==~Im[3])
& && && &&&IrOK=1;
& & & & & & & & & & & && &TR0=0;
& && & & & }
& && &else IrOK=0;& &//取码完成后判断读码是否正确
& && && && && &//准备读下一码
共享资料的黑币奖励!
Powered by查看: 453|回复: 1
单片机红外遥控系统代码
红外遥控系统代码
单片机源程序如下:
#include &reg52.h&& & //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include&&&1602.h&
#include&&&delay.h&
#include&&&stdio.h&
sbit IR=P3^2;&&//红外接口标志
/*------------------------------------------------
& && && && && & 全局变量声明
------------------------------------------------*/
unsigned char&&//红外用全局变量
bit irpro_ok,
unsigned char IRcord[4];
unsigned char irdata[33];
unsigned char TempData[16];
char code Tab[16]=&ABCDEF&;
//选定的红外遥控器按键,键值为提前读取的
unsigned char code LED_data[16][4]={
{0x00,0xff,0x16,0xe9},//0
{0x00,0xff,0x0C,0xf3},//1
{0x00,0xff,0x18,0xe7},//2
{0x00,0xff,0x5e,0xa1},//3
{0x00,0xff,0x08,0xf7},//4
{0x00,0xff,0x1c,0xe3},//5
{0x00,0xff,0x5a,0xa5},//6
{0x00,0xff,0x42,0xbd},//7
{0x00,0xff,0x52,0xad},//8
{0x00,0xff,0x4a,0xb5},//9
{0x00,0xff,0x45,0xba},//关闭
{0x00,0xff,0x46,0xb9},//Mode
{0x00,0xff,0x47,0xb8},//静音
{0x00,0xff,0x44,0xbb},//下一首
{0x00,0xff,0x40,0xbf},//后退
{0x00,0xff,0x43,0xbc} //前进
bit check_array(unsigned char *array1,unsigned char *array2,unsigned char len)
{
& & & &
& & & & for(i=0;i&i++)
& & & & {
& & & & & & & & if(array1[i]!=array2[i])
& & & & & & & &//如果不等,结束循环,此时i的值是小于5的
& & & & }
& & & & if(i==len) //相同返回1,不同返回0
& & & & & & & & return 1;
& & & & else
& & & & & & & & return 0;
unsigned char&&KEY_SCANF()
{
& & & & unsigned char KEY_i=0;
& & & & for(KEY_i=0;KEY_i&16;KEY_i++)
& & & & if(check_array(IRcord,LED_data[KEY_i],4))& & & & & & & & //如果是选定的按键&&
& & & & & & & & return KEY_i;
& & & & return 20;
}
/*------------------------------------------------
& && && && && && &定时器0中断处理
------------------------------------------------*/
void tim0_isr (void) interrupt 1
{
&&irtime++;&&//用于计数2个下降沿之间的时间
}
/*------------------------------------------------
& && && && && && &外部中断0中断处理
------------------------------------------------*/
void EX0_ISR (void) interrupt 0 //外部中断0服务函数
{
&&static unsigned char&&i;& && && && & //接收红外信号处理
&&& && && && && & //是否开始处理标志位
if(startflag)& && && && && && && && &
& &{
& & if(irtime&63&&irtime&=33)//引导码 TC9012的头码,9ms+4.5ms
& && && && && && && && &i=0;
& & & & & & & & & & irdata[i]=//存储每个电平的持续时间,用于以后判断是0还是1
& & & & & & & & & & irtime=0;
& & & & & & & & & & i++;
& && & & & & & & & & & & &&&if(i==33)
& && && & & & & & & & & & & & {
& & & && && & & & & & & & & & & &&&irok=1;
& & & & & & & & & & & & & & & &&&i=0;
& & & && && & & & & & & & & & & & }
& && && & }
&&& & & &&&else
& & & & & & & & {
& & & & & & & & irtime=0;
& & & & & & & & startflag=1;
& & & & & & & & }
/*------------------------------------------------
& && && && && & 定时器0初始化
------------------------------------------------*/
void TIM0init(void)//定时器0初始化
{
&&TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值
&&TH0=0x00; //重载值
&&TL0=0x00; //初始化值
&&ET0=1;& & //开中断
&&TR0=1;& &
}
/*------------------------------------------------
& && && && && && &外部中断0初始化
------------------------------------------------*/
void EX0init(void)
{
IT0 = 1;& &//指定外部中断0下降沿触发,INT0 (P3.2)
EX0 = 1;& &//使能外部中断
EA = 1;& & //开总中断
}
/*------------------------------------------------
& && && && && && &键值处理
------------------------------------------------*/
void Ir_work(void)
{
& & & & unsigned char temp[16],
& &&&TempData[0] = Tab[IRcord[0]/16];& &//处理客户码
& & & && & TempData[1] = Tab[IRcord[0]%16];
& &&&TempData[2] = '-';
& & & && & TempData[3] = Tab[IRcord[1]/16];& &//处理客户码
& & & && & TempData[4] = Tab[IRcord[1]%16];
& & & && & TempData[5] = '-';
& & & && & TempData[6] = Tab[IRcord[2]/16];& &//处理数据码
& & & && & TempData[7] = Tab[IRcord[2]%16];
& & & && & TempData[8] = '-';
& & & && & TempData[9] = Tab[IRcord[3]/16];& &//处理数据反码
& & & && & TempData[10] = Tab[IRcord[3]%16];
& &&&LCD_Write_String(5,0,TempData);
& & & & & & & & & & & && &yyy=KEY_SCANF();
& & & & & & & & if(yyy!=20)
& & & & & & & & {
& & & & & & & &&&sprintf(temp,&%d& && && ,(unsigned int)yyy);
& &&&LCD_Write_String(10,1,temp);
& & & & & & & & & & & & switch(yyy)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & case 0: {P1=0X7F;P2=0XFF;};
& & & & & & & & & & & & & & & & case 1: {P1=0XBF;P2=0XFF;};
& & & & & & & & & & & & & & & & case 2: {P1=0XDF;P2=0XFF;};
& & & & & & & & & & & & & & & & case 3: {P1=0XEF;P2=0XFF;};
& & & & & & & & & & & & & & & & case 4: {P1=0XF7;P2=0XFF;};
& & & & & & & & & & & & & & & & case 5: {P1=0XFB;P2=0XFF;};
& & & & & & & & & & & & & & & & case 6: {P1=0XFD;P2=0XFF;};
& & & & & & & & & & & & & & & & case 7: {P1=0XFe;P2=0XFF;};
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & case 8: {P1=0XFF;P2=0XFE;};
& & & & & & & & & & & & & & & & case 9: {P1=0XFF;P2=0XFD;};
& & & & & & & & & & & & & & & & case 10: {P1=0XFF;P2=0XFB;};
& & & & & & & & & & & & & & & & case 11: {P1=0XFF;P2=0XF7;};
& & & & & & & & & & & & & & & & case 12: {P1=0XFF;P2=0XEF;};
& & & & & & & & & & & & & & & & case 13: {P1=0XFF;P2=0XDF;};
& & & & & & & & & & & & & & & & case 14: {P1=0XFF;P2=0XBF;};
& & & & & & & & & & & & & & & & case 15: {P1=0XFF;P2=0X7F;};
& & & & & & & & & & & & & & & & default: {P1=0XFF;P2=0XfF;};
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & else
& & & & & & & & {
& &&&LCD_Write_String(10,1,&Error!&);
& & & & & & & & }
& & & & & & & & & & & &
& & & && & irpro_ok=0;//处理完成标志
&&}
/*------------------------------------------------
& && && && && & 红外码值处理
------------------------------------------------*/
void Ircordpro(void)//红外码值处理函数
{
&&unsigned char i, j,
&&unsigned char cord,
&&k=1;
&&for(i=0;i&4;i++)& && &//处理4个字节
& &&&{
& && &for(j=1;j&=8;j++) //处理1个字节8位
& && && &{
& && && & cord=irdata[k];
& && && & if(cord&7)//大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差
& && && && & value|=0x80;
& && && & if(j&8)
& & & & & & & && &&&{
& & & & & & & & & & & &&&value&&=1;
& & & & & & & & & & & & }
& && && &&&k++;
& && && &}
& &&&IRcord[i]=
& &&&value=0;& &&&
& &&&}
& & & &&&irpro_ok=1;//处理完毕标志位置1
}
/*------------------------------------------------
& && && && && && &&&主函数
------------------------------------------------*/
void main(void)
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
(59.74 KB, 下载次数: 9)
15:53 上传
点击文件名下载附件
有msp430f6638的有吗?分享一下吧谢谢
Powered by您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
[基于单片机红外遥控器.doc 16页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
[基于单片机红外遥控器
你可能关注的文档:
··········
··········
单片机原理及系统课程设计
考勤(10) 守纪(10) 过程(40) 设计报告(30) 答辩(10) 总成绩(100)
自动化1202
指导教师:
兰州交通大学自动化与电气工程学院
2014 年 12 月 31日
基于单片机的红外遥控器
基于单片机的红外遥控器。
1.2设计目的
通过本次设计对所学的单片机知识有更深入的了解;特别是单片机的红外发送,红外接收,中断,定时,计数,频率,矩阵键盘以及红外遥控NEC协议的理解和掌握。同时也能熟练掌握keil软件和protues仿真软件,主要目的是让我们把所学的基础知识运用到实际当中去。
本设计主要应用了AT89C51单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外线的优点。遥控操作的不同,遥控发射器通过对红外线发射频率的控制来区别不同的操作。遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程。
发射模块:单片机不工作时一直处于低功耗状态,采用了空闲节电工作方式。当遥控器的某一按键被按下以后,外部中断1产生中断,唤醒单片机进入工作状态,查询键盘按下的是哪一个按键,当确认按键后,控制软件启动定时器T0、T1,T11所示,红外接收部对应模块图如图2所示,其功能为方案所述。
发射部分模块图
接收部分模块图
2.1单片机最小系统
单片机的最小系统是指用最少的元件组成的单片机可以工作的系统,对51单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。
单片机的最小系统
2.2矩阵键盘电路
图3为矩阵键盘电路。矩阵键盘的行线分别与单片机的p1.7, p1.6, p1.5
p1.4 相连接,列线分别与单片机的的p1.3, p1.2, p1.1,p1.0相连接。行列线的低为分别为p1.7,p1.3
矩阵键盘电路
2.3红外发射电路
图4为红外发射电路,当原始信号为低电平的时候,38KHZ载波输出,当信号为低电平的时候不发送载波。用38KHZ的载波去装载原始信号。
红外发射电路
2.4红外接收电路
图5为红外接收电路,红外接收完成对红外信号的接收、放大、检波、整形,并解调出遥控编码脉冲,为了减少干扰,采用的是一体化红外接收头,它接收的红外信号频率为38KHZ。
图5红外接收电路
2.5 仿真发射接收电路
图6位为仿真发射接收电路,由于proteus仿真无线传输,故利用中断在单片机产生频率为38KHZ的载波信号,,把发射部分和接收部分用红外接收发射管连接,再在单片机内部进行解调。
仿真发射接收电路
2.6接收状态反映电路
图7所示为输出状态反映电路,当按下矩阵开关的四个不同按键,继电器分别响应开关状态。
输出状态反映电路
2.7整体仿真电路
图8所示为整体仿真电路,红外遥控就是把红外线作为载体的遥控方式。由于红外线的波长远小于无线电波的波长,因此在采用红外遥控方式时,不会干扰其他电器的正常工作,也不会影响临近的无线电设备。常用的红外遥控系统一般分发射和接收两个部分。当按下遥控器按钮就会产生具有不同的编码数字脉冲,这种代码指令信号调制在38kHz的截波上,激励红外光二级管产生具有脉冲串的红外波,通过空间的传送到受控机内的遥控接收器。在接收过程中,红外波信号通过光电二级管转换为38kHz的电信号,此信号经过放大、检波、整形、解调、送到解码与接口电路,从而完成相应的遥控功能。但由于proteus仿真软件无法进行无线仿真,故利用中断在单片机产生频率为38KHZ的载波信号,装载原始信号,再在接收部分进行解调。控制继电器的开关。
整体仿真电路
流程图有两部分组成,分别为发射部分和接收部分。
发送部分(左)接收部分(右)流程图
源程序见附录。
4.1仿真截图
图9所示为整体仿真结果,按下矩阵键盘的按键,相应的会有继电器的闭合,LED灯的亮灭。
整体仿真电路
[1] 王思明,张金敏,张鑫等.单片机原理及应用系统设计.北京:科学出版社,2012.
[2] 张金敏,董海棠,高博等,单片机原理应用系统设计.成都:西南交通大学出版社,2010.
[3]谭浩强.C程序设计(第四版).北京.清华大学出版社,2010.
正在加载中,请稍后...电力改变了世界,也造福了我们的生产生活。电力安全大于……
近日尼吉康在北京召开了关于锂离子二次电池的新品发布会……
1930年首届世界杯没有预选赛,只有13支国家队报名参赛。……
秉承&创新&的设计理念,罗德与施瓦茨公司不……
作为业界最强大的电源技术供应商Vicor最近有点忙,自从谷……
演讲人:黄科涛时间: 10:00:00
演讲人:Tracy Ma时间: 10:00:00
演讲人:Jim时间: 10:00:00
预算:小于¥10000预算:¥50000
广东省江苏省
基于单片机红外遥控多功能电子钟设计
[导读]摘要
设计以AT89C51单片机为核心,软件部分采用C语言模块化设计,具有显示年、月、日、时、分、秒和温度以及闹钟和整点报时的功能,并且可通过红外遥控器进行基本时间的调整和闹钟的设定。全部信息可通过1602点阵式
设计以AT89C51单片机为核心,软件部分采用C语言模块化设计,具有显示年、月、日、时、分、秒和温度以及闹钟和整点报时的功能,并且可通过红外遥控器进行基本时间的调整和闹钟的设定。全部信息可通过1602点阵式液晶直观显示,采用家电通用的红外遥控器进行控制,方便使用,具有广阔的市场前景。本文引用地址:
关键词 单片机;电子钟;红外遥控;DS18B20;LCD;DS1302
目前,单片机进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。本文以AT89C51单片机为主控芯片,DS1302为时钟控制芯片、DS18B20为温度采集芯片和LCD液晶显示模块为显示器进行多功能电子钟系统的设计,系统具有时间、星期、温度、闹铃等功能,并可以实现红外遥控时间校准。该电路采用AT89C51单片机作为核心,功耗小,+5
V电压供电,有掉电保护功能,可长时间稳定工作。
1 系统总体设计
系统设计有以下模块:AT89C51单片机控制模块,时钟芯片DS1302模块,温度采集DS18B20模块,液晶显示屏LCD1602模块,红外发射接收模块以及声光报警模块。其系统总体设计框图如图1所示。
2 系统硬件设计
2.1 单片机最小系统
主控芯片使用Atmel公司的单片机AT89C51,采用40引脚双列直插封装(DIP),内部由CPU;4 kBROM;256 Byte
RAM;2个16位定时/计数器T0和T1;4个8位I/O端口;1个全双功串行通信口等组成。
2.2 DS18B20驱动电路
温度采集采用美国Dallas公司的智能温度传感器DS18B20,其特性有:(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)在使用中无需任何外围元件。(3)可用数据线供电,电压范围3.0~5.5
V。(4)测温范围-55~+125℃。固有测温分辨率为0.5℃。(5)通过编程可实现9~12位的数字读数方式。(6)用户可自行设定非易失性的报警上下限值。(7)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
2.3 时钟电路
DS1302是美国Dallas公司推出的一种高性能、低功耗的实时时钟芯片,附加31
Byte静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多Byte的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月&31天时可以自动调整,且具有闰年补偿功能。工作电压2.5~5.5
V,采用双电源供电,可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。
2.4 1602LCD驱动电路
系统采用1602LCD显示模块,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它由若干个5&7或5&11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以不能显示图形。
2.5 声光报警模块的设计
闹钟模块采用蜂鸣器实现,用单片机的定时器去生成各种不同音律。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。通过单片机的引脚输出的电平变化来控制蜂鸣器的导通与否,如当前时刻与闹铃时间相同,蜂鸣器发声和指示灯闪光。
2.6 红外遥控系统
由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,采用红外线遥控不仅运行可靠而且能有效地隔离电气干扰。
通用红外遥控系统由发射和接收两部分组成,应用编/解码专用集成电路芯片来进行控制操作,发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路,其系统如图2所示。
系统采用NEC公司的uPD6121G芯片发射码格式的芯片组成发射电路。当发射器按键按下后,即有遥控码发出,按键不同遥控编码也不同。
一体化红外线接收器TL1838是一种集红外线接收和放大于一体,无需外接元件,就能完成从红外线接收到输出、并与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。它仅有3条管脚,分别是电源正极、电源负极以及信号输出端,其工作电压约为5
V,接收频率为38 kHz。
3 系统软件设计
系统由单片机控制,系统初始化部分主要是对系统的时钟芯片、液晶显示器进行设置,时间由时钟芯片取得后送入主控芯片,通过液晶显示器1602LCD来显示,时间、日期、闹铃的修改通过红外遥控器控制。系统软件设计主要由DSl302时钟控制、DS18B20温度采集、红外遥控、1602液晶驱动等程序模块组成,整个系统的主程序如图3所示。硬件仿真结果如图4所示。
系统以单片机的C语言进行软件设计,为便于扩展和更改,增加了程序的可读性和可移植性。功能设计齐全,可显示时间、日期、星期、温度、闹铃以及红外遥控等功能,具有读取方便、显示直观、功能多样、成本低廉等优点。
现在想起来,当时的情形还历历在目。当时工作非常艰辛,累得我是满地找牙。记得进厂的第一天,就加班通霄,以后天天晚上加班至12点,早上7点起床。......关键字:
在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......关键字:
对于搞单片机的特别用8051系列工程师来说,谈到单片机的RTOS,很多时候会问一句:“为什么要用RTOS?单片机就这一点资源,使用RTOS能保证效率吗?”......关键字:
我 要 评 论
热门关键词
深圳市中悦科技有限公司25K-35K | 广东省 深圳市
深圳市中悦科技有限公司10K-15K | 广东省 深圳市
深圳安科高技术股份有限公司南京分公司面议 | 江苏省 南京市
北京建工京精大房工程建设监理公司深圳市分公司6K-8K | 广东省 深圳市
深圳金鑫世纪实业有限公司8K-10K | 广东省 深圳市}

我要回帖

更多关于 单片机红外遥控小车 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信